[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1386851936-1582-1-git-send-email-qais.yousef@imgtec.com>
Date: Thu, 12 Dec 2013 12:38:56 +0000
From: Qais Yousef <qais.yousef@...tec.com>
To: Yang Yingliang <yangyingliang@...wei.com>
CC: Qais Yousef <qais.yousef@...tec.com>,
Eric Dumazet <edumazet@...gle.com>,
Jamal Hadi Salim <jhs@...atatu.com>,
"David S. Miller" <davem@...emloft.net>, <netdev@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-next@...r.kernel.org>
Subject: [PATCH] net/sched/sch_tbf.c: fix linking error
ERROR: "__udivdi3" [net/sched/sch_tbf.ko] undefined!
introduced by: cc106e441a63 (net: sched: tbf: fix the calculation of max_size)
which adds a 64 by 32 bit division without using do_div().
Fix it by using do_div(len/ 53) instead of len/53.
Signed-off-by: Qais Yousef <qais.yousef@...tec.com>
Cc: Eric Dumazet <edumazet@...gle.com>
Cc: Jamal Hadi Salim <jhs@...atatu.com>
Cc: "David S. Miller" <davem@...emloft.net>
Cc: netdev@...r.kernel.org
Cc: linux-kernel@...r.kernel.org
Cc: linux-next@...r.kernel.org
---
We caught this error on linux-next today. This is my quick attemp of a fix.
If it's not appropriate or doesn't make sense my apologies and feel free to
resend a better fix :)
net/sched/sch_tbf.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/sched/sch_tbf.c b/net/sched/sch_tbf.c
index a44928c..771cbec 100644
--- a/net/sched/sch_tbf.c
+++ b/net/sched/sch_tbf.c
@@ -131,8 +131,10 @@ static u64 psched_ns_t2l(const struct psched_ratecfg *r,
do_div(len, NSEC_PER_SEC);
- if (unlikely(r->linklayer == TC_LINKLAYER_ATM))
- len = (len / 53) * 48;
+ if (unlikely(r->linklayer == TC_LINKLAYER_ATM)) {
+ do_div(len, 53);
+ len *= 48;
+ }
if (len > r->overhead)
len -= r->overhead;
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists