On Thu, 2005-08-04 at 07:40 -0400, Salyzyn, Mark wrote: > In these cases, the 'addr' is an u64, so is it necessary to perform this > modification? Arjan, Do you agree with the above? If so, is the patch OK as is? Thanks, Mark. > > I will do a critical analysis of the remaining code in the driver for > any values that are, or have a risk of being on some platforms, a 32 bit > entity and undergo this kind of shift action. > > Sincerely -- Mark Salyzyn > > -----Original Message----- > From: Arjan van de Ven [mailto:arjan@xxxxxxxxxxxxx] > Sent: Thursday, August 04, 2005 4:17 AM > To: Mark Haverkamp > Cc: Salyzyn, Mark; linux-scsi; James Bottomley > Subject: Re: [PATCH 7/7] aacraid: sgraw command support > > On Wed, 2005-08-03 at 15:39 -0700, Mark Haverkamp wrote: > > + psg->sg[0].addr[1] = cpu_to_le32((u32)(addr>>32)); > > this is very risky code; if addr is a 32 bit entity, then this is > undefined behavior (which due to the vagities of x86 asm might get > optimized out entirely). It is a lot safer to do (addr>>16)>>16 > > gcc will optimize that just fine, the difference is that it's still > defined C behavior regardless of the type of addr. > -- Mark Haverkamp <markh@xxxxxxxx> - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html