On Fri, Aug 26, 2011 at 10:16:11AM -0400, Sedat Dilek wrote: > ( UNTESTED, just followed patches like "[PATCH] p54: Use do_div for > 64-bit division to fix 32-bit kernels" or "[PATCH v1] carl9170: Use > do_div for 64-bit division to fix 32-bit kernels" ) > > Regards, > - Sedat - > diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c > index 7cb68de..4d4f3a5 100644 > --- a/drivers/edac/i7core_edac.c > +++ b/drivers/edac/i7core_edac.c > @@ -37,6 +37,7 @@ > #include <linux/smp.h> > #include <asm/mce.h> > #include <asm/processor.h> > +#include <asm/div64.h> > > #include "edac_core.h" > > @@ -2102,7 +2103,8 @@ static int set_sdram_scrub_rate(struct mem_ctl_info *mci, u32 new_bw) > * program the corresponding register value. > */ > scrub_interval = (unsigned long long)freq_dclk_mhz * > - cache_line_size * 1000000 / new_bw; > + cache_line_size * 1000000); > + do_div(scrub_interval, new_bw); This has been an issue pretty often lately on lkml. Instead of doing 64-bit division on 32-bit (which is really slow), you could try to use the commutative property of integer multiplication and thus reorder the operations so that the division is 32-bit only. Maybe ((freq_dclk_mhz * cache_line_size) / new_bw) * 1000000 for example. You have to make sure though that new_bw as divisor can never be bigger than the dividend because otherwise you get the 0. One question would be what is the interval of freq_dclk_mhz and can (new_bw >> 6) be ever bigger than it. And while at it, the cache_line_size is pretty solidly staying 64 Byte in the short-term future so no need for a local variable. Also, shifting left by 6 should be a faster equivalent than multiplying by 64. -- Regards/Gruss, Boris. Advanced Micro Devices GmbH Einsteinring 24, 85609 Dornach GM: Alberto Bozzo Reg: Dornach, Landkreis Muenchen HRB Nr. 43632 WEEE Registernr: 129 19551 -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html