* [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 @ 2013-08-07 3:55 Jingoo Han 2013-08-07 6:50 ` Oliver Neukum 0 siblings, 1 reply; 9+ messages in thread From: Jingoo Han @ 2013-08-07 3:55 UTC (permalink / raw) To: 'James Bottomley' Cc: 'Oliver Neukum', 'Ali Akcaagac', 'Jamie Lenehan', dc395x, 'James Bottomley', linux-scsi, Jingoo Han %p is used, thus NULL should be used instead of 0. Also, bit maskings are added in order to fix the following sparse warnings: drivers/scsi/dc395x.c:1525:17: warning: Using plain integer as NULL pointer drivers/scsi/dc395x.c:4186:48: warning: cast truncates bits from constant value (1de1 becomes e1) drivers/scsi/dc395x.c:4188:45: warning: cast truncates bits from constant value (391 becomes 91) drivers/scsi/dc395x.c:4192:44: warning: cast truncates bits from constant value (1de1 becomes e1) drivers/scsi/dc395x.c:4194:44: warning: cast truncates bits from constant value (391 becomes 91) Signed-off-by: Jingoo Han <jg1.han@samsung.com> --- drivers/scsi/dc395x.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c index e73445b..3b09c16 100644 --- a/drivers/scsi/dc395x.c +++ b/drivers/scsi/dc395x.c @@ -1526,7 +1526,7 @@ static u8 start_scsi(struct AdapterCtlBlk* acb, struct DeviceCtlBlk* dcb, "command while another command (0x%p) is active.", srb->cmd, acb->active_dcb->active_srb ? - acb->active_dcb->active_srb->cmd : 0); + acb->active_dcb->active_srb->cmd : NULL); return 1; } if (DC395x_read16(acb, TRM_S1040_SCSI_STATUS) & SCSIINTERRUPT) { @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long io_port) */ dprintkl(KERN_WARNING, "EEProm checksum error: using default values and options.\n"); - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); eeprom->sub_vendor_id[1] = (u8)(PCI_VENDOR_ID_TEKRAM >> 8); - eeprom->sub_sys_id[0] = (u8)PCI_DEVICE_ID_TEKRAM_TRMS1040; + eeprom->sub_sys_id[0] = + (u8)(PCI_DEVICE_ID_TEKRAM_TRMS1040 & 0xff); eeprom->sub_sys_id[1] = (u8)(PCI_DEVICE_ID_TEKRAM_TRMS1040 >> 8); eeprom->sub_class = 0x00; - eeprom->vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; + eeprom->vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); eeprom->vendor_id[1] = (u8)(PCI_VENDOR_ID_TEKRAM >> 8); - eeprom->device_id[0] = (u8)PCI_DEVICE_ID_TEKRAM_TRMS1040; + eeprom->device_id[0] = + (u8)(PCI_DEVICE_ID_TEKRAM_TRMS1040 & 0xff); eeprom->device_id[1] = (u8)(PCI_DEVICE_ID_TEKRAM_TRMS1040 >> 8); eeprom->reserved = 0x00; -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 2013-08-07 3:55 [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 Jingoo Han @ 2013-08-07 6:50 ` Oliver Neukum 2013-08-07 6:58 ` Jingoo Han 2013-08-07 7:45 ` Jingoo Han 0 siblings, 2 replies; 9+ messages in thread From: Oliver Neukum @ 2013-08-07 6:50 UTC (permalink / raw) To: Jingoo Han Cc: 'James Bottomley', 'Ali Akcaagac', 'Jamie Lenehan', dc395x, 'James Bottomley', linux-scsi On Wed, 2013-08-07 at 12:55 +0900, Jingoo Han wrote: > @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long io_port) > */ > dprintkl(KERN_WARNING, > "EEProm checksum error: using default values and options.\n"); > - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); Hi, if you are fixing these issues please use the proper macros for conversion of endianness. Regards Oliver ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 2013-08-07 6:50 ` Oliver Neukum @ 2013-08-07 6:58 ` Jingoo Han 2013-08-07 10:14 ` Oliver Neukum 2013-08-07 7:45 ` Jingoo Han 1 sibling, 1 reply; 9+ messages in thread From: Jingoo Han @ 2013-08-07 6:58 UTC (permalink / raw) To: 'Oliver Neukum' Cc: 'James Bottomley', 'Ali Akcaagac', 'Jamie Lenehan', dc395x, 'James Bottomley', linux-scsi, Jingoo Han On Wednesday, August 07, 2013 3:50 PM, Oliver Neukum wrote: > On Wed, 2013-08-07 at 12:55 +0900, Jingoo Han wrote: > > > @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long io_port) > > */ > > dprintkl(KERN_WARNING, > > "EEProm checksum error: using default values and options.\n"); > > - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > > + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); > > Hi, > > if you are fixing these issues please use the proper macros for > conversion of endianness. Sorry, I cannot understand exactly what you mean. :( Would you please let me know which macros can be used? Best regards, Jingoo Han ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 2013-08-07 6:58 ` Jingoo Han @ 2013-08-07 10:14 ` Oliver Neukum 0 siblings, 0 replies; 9+ messages in thread From: Oliver Neukum @ 2013-08-07 10:14 UTC (permalink / raw) To: Jingoo Han Cc: 'James Bottomley', 'Ali Akcaagac', 'Jamie Lenehan', dc395x, 'James Bottomley', linux-scsi On Wed, 2013-08-07 at 15:58 +0900, Jingoo Han wrote: > On Wednesday, August 07, 2013 3:50 PM, Oliver Neukum wrote: > > On Wed, 2013-08-07 at 12:55 +0900, Jingoo Han wrote: > > > > > @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long io_port) > > > */ > > > dprintkl(KERN_WARNING, > > > "EEProm checksum error: using default values and options.\n"); > > > - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > > > + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); > > > > Hi, > > > > if you are fixing these issues please use the proper macros for > > conversion of endianness. > > Sorry, I cannot understand exactly what you mean. :( > Would you please let me know which macros can be used? In this case constant_cpu_to_le16() would be the macro you want. Have a look at include/uapi/linux/byteorder/ Regards Oliver ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 2013-08-07 6:50 ` Oliver Neukum 2013-08-07 6:58 ` Jingoo Han @ 2013-08-07 7:45 ` Jingoo Han 2013-08-07 8:20 ` Julian Calaby 1 sibling, 1 reply; 9+ messages in thread From: Jingoo Han @ 2013-08-07 7:45 UTC (permalink / raw) To: 'Oliver Neukum' Cc: 'James Bottomley', 'Ali Akcaagac', 'Jamie Lenehan', dc395x, 'James Bottomley', linux-scsi, Jingoo Han On Wednesday, August 07, 2013 3:50 PM, Oliver Neukum wrote: > On Wed, 2013-08-07 at 12:55 +0900, Jingoo Han wrote: > > > @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long io_port) > > */ > > dprintkl(KERN_WARNING, > > "EEProm checksum error: using default values and options.\n"); > > - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > > + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); > > Hi, > > if you are fixing these issues please use the proper macros for > conversion of endianness. Then, do you mean the following? :) - prom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; + eprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & le16_to_cpu(0xff)); Best regards, Jingoo Han ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 2013-08-07 7:45 ` Jingoo Han @ 2013-08-07 8:20 ` Julian Calaby 2013-08-07 8:36 ` Jingoo Han 0 siblings, 1 reply; 9+ messages in thread From: Julian Calaby @ 2013-08-07 8:20 UTC (permalink / raw) To: Jingoo Han Cc: Oliver Neukum, James Bottomley, Ali Akcaagac, Jamie Lenehan, dc395x, James Bottomley, linux-scsi Hi Jingoo, On Wed, Aug 7, 2013 at 5:45 PM, Jingoo Han <jg1.han@samsung.com> wrote: > On Wednesday, August 07, 2013 3:50 PM, Oliver Neukum wrote: >> On Wed, 2013-08-07 at 12:55 +0900, Jingoo Han wrote: >> >> > @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long io_port) >> > */ >> > dprintkl(KERN_WARNING, >> > "EEProm checksum error: using default values and options.\n"); >> > - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; >> > + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); >> >> Hi, >> >> if you are fixing these issues please use the proper macros for >> conversion of endianness. > > Then, do you mean the following? :) > > - prom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > + eprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & le16_to_cpu(0xff)); No. The issue is that the driver is doing things like this: eeprom->member[0] = (u8)(CONSTANT & 0xff); eeprom->member[1] = (u8)(CONSTANT >> 8); Which is exactly the same as code along the lines of: eeprom->member = cpu_to_le16(CONSTANT); Thanks, -- Julian Calaby Email: julian.calaby@gmail.com Profile: http://www.google.com/profiles/julian.calaby/ .Plan: http://sites.google.com/site/juliancalaby/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 2013-08-07 8:20 ` Julian Calaby @ 2013-08-07 8:36 ` Jingoo Han 2013-08-07 8:39 ` Julian Calaby 0 siblings, 1 reply; 9+ messages in thread From: Jingoo Han @ 2013-08-07 8:36 UTC (permalink / raw) To: 'Julian Calaby' Cc: 'Oliver Neukum', 'James Bottomley', 'Ali Akcaagac', 'Jamie Lenehan', dc395x, 'James Bottomley', 'linux-scsi', Jingoo Han > -----Original Message----- > From: Julian Calaby [mailto:julian.calaby@gmail.com] > Sent: Wednesday, August 07, 2013 5:21 PM > To: Jingoo Han > Cc: Oliver Neukum; James Bottomley; Ali Akcaagac; Jamie Lenehan; dc395x@twibble.org; James Bottomley; > linux-scsi > Subject: Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 > > Hi Jingoo, > > On Wed, Aug 7, 2013 at 5:45 PM, Jingoo Han <jg1.han@samsung.com> wrote: > > On Wednesday, August 07, 2013 3:50 PM, Oliver Neukum wrote: > >> On Wed, 2013-08-07 at 12:55 +0900, Jingoo Han wrote: > >> > >> > @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long io_port) > >> > */ > >> > dprintkl(KERN_WARNING, > >> > "EEProm checksum error: using default values and options.\n"); > >> > - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > >> > + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); > >> > >> Hi, > >> > >> if you are fixing these issues please use the proper macros for > >> conversion of endianness. > > > > Then, do you mean the following? :) > > > > - prom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > > + eprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & le16_to_cpu(0xff)); > > No. > > The issue is that the driver is doing things like this: > > eeprom->member[0] = (u8)(CONSTANT & 0xff); > eeprom->member[1] = (u8)(CONSTANT >> 8); > > Which is exactly the same as code along the lines of: > > eeprom->member = cpu_to_le16(CONSTANT); However, when I compile the following, it makes build error. - eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); - eeprom->sub_vendor_id[1] = (u8)(PCI_VENDOR_ID_TEKRAM >> 8); + eeprom->sub_vendor_id = cpu_to_le16(PCI_VENDOR_ID_TEKRAM); Best regards, Jingoo Han ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 2013-08-07 8:36 ` Jingoo Han @ 2013-08-07 8:39 ` Julian Calaby 2013-08-07 8:51 ` Jingoo Han 0 siblings, 1 reply; 9+ messages in thread From: Julian Calaby @ 2013-08-07 8:39 UTC (permalink / raw) To: Jingoo Han Cc: Oliver Neukum, James Bottomley, Ali Akcaagac, Jamie Lenehan, dc395x, James Bottomley, linux-scsi Hi Jingoo, On Wed, Aug 7, 2013 at 6:36 PM, Jingoo Han <jg1.han@samsung.com> wrote: > > >> -----Original Message----- >> From: Julian Calaby [mailto:julian.calaby@gmail.com] >> Sent: Wednesday, August 07, 2013 5:21 PM >> To: Jingoo Han >> Cc: Oliver Neukum; James Bottomley; Ali Akcaagac; Jamie Lenehan; dc395x@twibble.org; James Bottomley; >> linux-scsi >> Subject: Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 >> >> Hi Jingoo, >> >> On Wed, Aug 7, 2013 at 5:45 PM, Jingoo Han <jg1.han@samsung.com> wrote: >> > On Wednesday, August 07, 2013 3:50 PM, Oliver Neukum wrote: >> >> On Wed, 2013-08-07 at 12:55 +0900, Jingoo Han wrote: >> >> >> >> > @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long io_port) >> >> > */ >> >> > dprintkl(KERN_WARNING, >> >> > "EEProm checksum error: using default values and options.\n"); >> >> > - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; >> >> > + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); >> >> >> >> Hi, >> >> >> >> if you are fixing these issues please use the proper macros for >> >> conversion of endianness. >> > >> > Then, do you mean the following? :) >> > >> > - prom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; >> > + eprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & le16_to_cpu(0xff)); >> >> No. >> >> The issue is that the driver is doing things like this: >> >> eeprom->member[0] = (u8)(CONSTANT & 0xff); >> eeprom->member[1] = (u8)(CONSTANT >> 8); >> >> Which is exactly the same as code along the lines of: >> >> eeprom->member = cpu_to_le16(CONSTANT); > > However, when I compile the following, it makes build error. > > - eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); > - eeprom->sub_vendor_id[1] = (u8)(PCI_VENDOR_ID_TEKRAM >> 8); > + eeprom->sub_vendor_id = cpu_to_le16(PCI_VENDOR_ID_TEKRAM); Of course it does. I said code along the lines of. You'll need to do more than just what I suggested, including changing the definition of the eeprom struct and fixing any other places where it's used / set. Thanks, -- Julian Calaby Email: julian.calaby@gmail.com Profile: http://www.google.com/profiles/julian.calaby/ .Plan: http://sites.google.com/site/juliancalaby/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 2013-08-07 8:39 ` Julian Calaby @ 2013-08-07 8:51 ` Jingoo Han 0 siblings, 0 replies; 9+ messages in thread From: Jingoo Han @ 2013-08-07 8:51 UTC (permalink / raw) To: 'Julian Calaby' Cc: 'Oliver Neukum', 'James Bottomley', 'Ali Akcaagac', 'Jamie Lenehan', dc395x, 'James Bottomley', 'linux-scsi', Jingoo Han On Wed, Wednesday, August 07, 2013 5:40 PM, Julian Calaby > wrote: > On Wed, Aug 7, 2013 at 6:36 PM, Jingoo Han <jg1.han@samsung.com> wrote: > > On Wednesday, August 07, 2013 5:21 PM, Julian Calaby wrote: > >> On Wed, Aug 7, 2013 at 5:45 PM, Jingoo Han <jg1.han@samsung.com> wrote: > >> > On Wednesday, August 07, 2013 3:50 PM, Oliver Neukum wrote: > >> >> On Wed, 2013-08-07 at 12:55 +0900, Jingoo Han wrote: > >> >> > >> >> > @@ -4183,15 +4183,17 @@ static void check_eeprom(struct NvRamType *eeprom, unsigned long > io_port) > >> >> > */ > >> >> > dprintkl(KERN_WARNING, > >> >> > "EEProm checksum error: using default values and options.\n"); > >> >> > - eeprom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > >> >> > + eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); > >> >> > >> >> Hi, > >> >> > >> >> if you are fixing these issues please use the proper macros for > >> >> conversion of endianness. > >> > > >> > Then, do you mean the following? :) > >> > > >> > - prom->sub_vendor_id[0] = (u8)PCI_VENDOR_ID_TEKRAM; > >> > + eprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & le16_to_cpu(0xff)); > >> > >> No. > >> > >> The issue is that the driver is doing things like this: > >> > >> eeprom->member[0] = (u8)(CONSTANT & 0xff); > >> eeprom->member[1] = (u8)(CONSTANT >> 8); > >> > >> Which is exactly the same as code along the lines of: > >> > >> eeprom->member = cpu_to_le16(CONSTANT); > > > > However, when I compile the following, it makes build error. > > > > - eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); > > - eeprom->sub_vendor_id[1] = (u8)(PCI_VENDOR_ID_TEKRAM >> 8); > > + eeprom->sub_vendor_id = cpu_to_le16(PCI_VENDOR_ID_TEKRAM); > > Of course it does. > > I said code along the lines of. You'll need to do more than just what > I suggested, including changing the definition of the eeprom struct > and fixing any other places where it's used / set. I fixed it as below. In this case, it does not make any warnings. Oliver Neukum, do you mean the following? struct NvRamType { - u8 sub_vendor_id[2]; /* 0,1 Sub Vendor ID */ + u16 sub_vendor_id; /* 0,1 Sub Vendor ID */ - eeprom->sub_vendor_id[0] = (u8)(PCI_VENDOR_ID_TEKRAM & 0xff); - eeprom->sub_vendor_id[1] = (u8)(PCI_VENDOR_ID_TEKRAM >> 8); + eeprom->sub_vendor_id = cpu_to_le16(PCI_VENDOR_ID_TEKRAM); Best regards, Jingoo Han ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-08-07 10:15 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-08-07 3:55 [PATCH 3/8] [SCSI] dc395x: use NULL instead of 0 Jingoo Han 2013-08-07 6:50 ` Oliver Neukum 2013-08-07 6:58 ` Jingoo Han 2013-08-07 10:14 ` Oliver Neukum 2013-08-07 7:45 ` Jingoo Han 2013-08-07 8:20 ` Julian Calaby 2013-08-07 8:36 ` Jingoo Han 2013-08-07 8:39 ` Julian Calaby 2013-08-07 8:51 ` Jingoo Han
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox