Message ID | 1386814923-56180-1-git-send-email-yangyingliang@huawei.com |
---|---|
State | Superseded, archived |
Delegated to: | David Miller |
Headers | show |
Hello. On 12-12-2013 6:22, Yang Yingliang wrote: > It's doing a 64-bit divide which is not supported > on 32-bit architectures in psched_ns_t2l(). The > correct way to do this is to use do_div(). > Reported-by: kbuild test robot <fengguang.wu@intel.com> > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > --- > net/sched/sch_tbf.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > diff --git a/net/sched/sch_tbf.c b/net/sched/sch_tbf.c > index a44928c..887e672 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 = len * 48; Why not simply len *= 48? You're coding in C, after all. :-) WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/sched/sch_tbf.c b/net/sched/sch_tbf.c index a44928c..887e672 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 = len * 48; + } if (len > r->overhead) len -= r->overhead;
It's doing a 64-bit divide which is not supported on 32-bit architectures in psched_ns_t2l(). The correct way to do this is to use do_div(). Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- net/sched/sch_tbf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)