On Wed, 2012-06-20 at 12:52 -0500, Ben Collins wrote: > On Jun 20, 2012, at 12:44 PM, Ben Collins wrote: > > > On Jun 20, 2012, at 12:12 PM, wfg@xxxxxxxxxxxxxxx wrote: > > > >> Hi Ben, > >> > >> There are new compile warnings show up in > >> > >> tree: git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git pending > >> head: e766db42f45c7685fce5c0d48ba74eaa97e6d715 > >> commit: e766db42f45c7685fce5c0d48ba74eaa97e6d715 [3/3] [SCSI] aacraid: Fix endian issues in core and SRC portions of driver > >> > >> All warnings: > >> > >> drivers/scsi/aacraid/src.c: In function 'aac_src_deliver_message': > >> drivers/scsi/aacraid/src.c:425:2: warning: right shift count >= width of type [enabled by default] > > > > Hrmm, pretty innocuous, but I guess it could be rewritten as: > > > > #if BITS_PER_LONG > 32 > > src_writel(dev, MUnit.IQ_H, (address >> 32) & 0xffffffff); > > #else > > src_writel(dev, MUnit.IQ_H, 0); > > #endif > > Actually, this is wrong too, since it's a dma_addr_t, not an unsigned long, so: > > #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT > src_writel(dev, MUnit.IQ_H, (address >> 32) & 0xffffffff); > #else > src_writel(dev, MUnit.IQ_H, 0); > #endif Heh, three strikes and you're out. To forestall this, the actual answer is src_writel(dev, MUnit.IQ_H, upper_32_bits(address)); James ��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f