On Tue, Aug 5, 2008 at 10:23 PM, Austin Zhang <austin_zhang@xxxxxxxxxxxxxxx> wrote: > +#ifdef CONFIG_X86_64 > +#define REX_PRE "0x48, " > +#define SCALE_F 8 > +#else > +#define REX_PRE > +#define SCALE_F 4 > +#endif [...] > +static u32 __pure crc32c_intel_le_hw(u32 crc, unsigned char const *p, size_t len) > +{ > + unsigned int iquotient = len / SCALE_F; > + unsigned int iremainder = len % SCALE_F; > + unsigned long *ptmp = (unsigned long *)p; > + > + while (iquotient--) { > + __asm__ __volatile__( > + ".byte 0xf2, " REX_PRE "0xf, 0x38, 0xf1, 0xf1;" > + :"=S"(crc) > + :"0"(crc), "c"(*ptmp) > + ); > + ptmp++; I think you want to use #define SCALE_F sizeof(unsigned long) Since the loop iteration count etc depends on ptmp++ which depends on the type being unsigned long. -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html