lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Thu, 1 May 2008 14:50:48 -0700
From:	"Mark Harvey" <mark_harvey@...antec.com>
To:	"James Bottomley" <James.Bottomley@...senPartnership.com>,
	"Harvey Harrison" <harvey.harrison@...il.com>
Cc:	"Andrew Morton" <akpm@...ux-foundation.org>,
	"LKML" <linux-kernel@...r.kernel.org>,
	"linux-scsi" <linux-scsi@...r.kernel.org>
Subject: RE: [PATCH 02/10] scsi: fix integer as NULL pointer warnings

-----Original Message-----
From: linux-scsi-owner@...r.kernel.org
[mailto:linux-scsi-owner@...r.kernel.org] On Behalf Of James Bottomley
Sent: Thursday, May 01, 2008 8:29 AM
To: Harvey Harrison
Cc: Andrew Morton; LKML; linux-scsi
Subject: Re: [PATCH 02/10] scsi: fix integer as NULL pointer warnings

On Wed, 2008-04-30 at 15:03 -0700, Harvey Harrison wrote:
> drivers/scsi/FlashPoint.c:906:9: warning: Using plain integer as NULL
pointer
> drivers/scsi/FlashPoint.c:907:53: warning: Using plain integer as NULL
pointer
> drivers/scsi/FlashPoint.c:922:1: warning: Using plain integer as NULL
pointer
> drivers/scsi/aha152x.c:3585:60: warning: Using plain integer as NULL
pointer
> drivers/scsi/aha152x.c:3845:56: warning: Using plain integer as NULL
pointer
> drivers/scsi/qla1280.c:2814:37: warning: Using plain integer as NULL
pointer
> drivers/scsi/atp870u.c:750:47: warning: Using plain integer as NULL
pointer
> drivers/scsi/3w-9xxx.c:1281:36: warning: Using plain integer as NULL
pointer
> drivers/scsi/3w-9xxx.c:1293:36: warning: Using plain integer as NULL
pointer
> drivers/scsi/3w-9xxx.c:1301:35: warning: Using plain integer as NULL
pointer
> drivers/scsi/hptiop.c:447:10: warning: Using plain integer as NULL
pointer
> drivers/scsi/hptiop.c:457:10: warning: Using plain integer as NULL
pointer
> drivers/scsi/hptiop.c:479:24: warning: Using plain integer as NULL
pointer
> drivers/scsi/hptiop.c:483:22: warning: Using plain integer as NULL
pointer
> drivers/scsi/hptiop.c:1213:23: warning: Using plain integer as NULL
pointer
> drivers/scsi/hptiop.c:1214:23: warning: Using plain integer as NULL
pointer
> 
> Signed-off-by: Harvey Harrison <harvey.harrison@...il.com>
> ---
> James, please look at the FlashPoint.c changes in particular.

Could you please Cc linux-scsi?  That way interested parties get to
check their drivers.

The flashpoint initialiser changes look wrong:  {0} is a conventional
notation for zero initialise this structure.  Sparse should probably be
taught to recognise that.

James


>  drivers/scsi/3w-9xxx.c    |    6 +++---
>  drivers/scsi/FlashPoint.c |    7 +++----
>  drivers/scsi/aha152x.c    |    4 ++--
>  drivers/scsi/atp870u.c    |    2 +-
>  drivers/scsi/hptiop.c     |   12 ++++++------
>  drivers/scsi/qla1280.c    |    2 +-
>  6 files changed, 16 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
> index b31faec..626d6e1 100644
> --- a/drivers/scsi/3w-9xxx.c
> +++ b/drivers/scsi/3w-9xxx.c
> @@ -1278,7 +1278,7 @@ static irqreturn_t twa_interrupt(int irq, void
*dev_instance)
>  			error = 0;
>  			/* Check for command packet errors */
>  			if
(full_command_packet->command.newcommand.status != 0) {
> -				if (tw_dev->srb[request_id] != 0) {
> +				if (tw_dev->srb[request_id]) {
>  					error = twa_fill_sense(tw_dev,
request_id, 1, 1);
>  				} else {
>  					/* Skip ioctl error prints */
> @@ -1290,7 +1290,7 @@ static irqreturn_t twa_interrupt(int irq, void
*dev_instance)
>  
>  			/* Check for correct state */
>  			if (tw_dev->state[request_id] != TW_S_POSTED) {
> -				if (tw_dev->srb[request_id] != 0) {
> +				if (tw_dev->srb[request_id]) {
>  					TW_PRINTK(tw_dev->host,
TW_DRIVER, 0x1a, "Received a request id that wasn't posted");
>  					TW_CLEAR_ALL_INTERRUPTS(tw_dev);
>  					goto twa_interrupt_bail;
> @@ -1298,7 +1298,7 @@ static irqreturn_t twa_interrupt(int irq, void
*dev_instance)
>  			}
>  
>  			/* Check for internal command completion */
> -			if (tw_dev->srb[request_id] == 0) {
> +			if (tw_dev->srb[request_id]) {

Swapped the test from zero to non-zero ?

>  				if (request_id !=
tw_dev->chrdev_request_id) {
>  					if (twa_aen_complete(tw_dev,
request_id))
>  						TW_PRINTK(tw_dev->host,
TW_DRIVER, 0x1b, "Error completing AEN during attention interrupt");
> diff --git a/drivers/scsi/FlashPoint.c b/drivers/scsi/FlashPoint.c
> index b898d38..b252ac5 100644
> --- a/drivers/scsi/FlashPoint.c
> +++ b/drivers/scsi/FlashPoint.c
> @@ -903,8 +903,8 @@ static void FPT_autoCmdCmplt(unsigned long p_port,
unsigned char p_card);
>  static void FPT_autoLoadDefaultMap(unsigned long p_port);
>  
>  static struct sccb_mgr_tar_info
FPT_sccbMgrTbl[MAX_CARDS][MAX_SCSI_TAR] =
> -    { {{0}} };
> -static struct sccb_card FPT_BL_Card[MAX_CARDS] = { {0} };
> +    { {{NULL}} };
> +static struct sccb_card FPT_BL_Card[MAX_CARDS] = { {NULL} };
>  static SCCBSCAM_INFO FPT_scamInfo[MAX_SCSI_TAR] = { {{0}} };
>  static struct nvram_info FPT_nvRamInfo[MAX_MB_CARDS] = { {0} };
>  
> @@ -918,8 +918,7 @@ static unsigned char FPT_scamHAString[] =
>  
>  static unsigned short FPT_default_intena = 0;
>  
> -static void (*FPT_s_PhaseTbl[8]) (unsigned long, unsigned char) = {
> -0};
> +static void (*FPT_s_PhaseTbl[8]) (unsigned long, unsigned char) =
{NULL};
>  
>
/*---------------------------------------------------------------------
>   *
> diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
> index f5215fd..0c93a49 100644
> --- a/drivers/scsi/aha152x.c
> +++ b/drivers/scsi/aha152x.c
> @@ -3582,7 +3582,7 @@ static int checksetup(struct aha152x_setup
*setup)
>  	if (i == ARRAY_SIZE(ports))
>  		return 0;
>  
> -	if ( request_region(setup->io_port, IO_RANGE, "aha152x")==0 ) {
> +	if (!request_region(setup->io_port, IO_RANGE, "aha152x")) {
>  		printk(KERN_ERR "aha152x: io port 0x%x busy.\n",
setup->io_port);
>  		return 0;
>  	}
> @@ -3842,7 +3842,7 @@ static int __init aha152x_init(void)
>  			if ((setup_count == 1) && (setup[0].io_port ==
ports[i]))
>  				continue;
>  
> -			if ( request_region(ports[i], IO_RANGE,
"aha152x")==0 ) {
> +			if (!request_region(ports[i], IO_RANGE,
"aha152x")) {
>  				printk(KERN_ERR "aha152x: io port 0x%x
busy.\n", ports[i]);
>  				continue;
>  			}
> diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c
> index db6de5e..571b43b 100644
> --- a/drivers/scsi/atp870u.c
> +++ b/drivers/scsi/atp870u.c
> @@ -747,7 +747,7 @@ static void send_s870(struct atp_unit
*dev,unsigned char c)
>  		dev->quhd[c] = 0;
>  	}
>  	workreq = dev->quereq[c][dev->quhd[c]];
> -	if (dev->id[c][scmd_id(workreq)].curr_req == 0) {	
> +	if (!dev->id[c][scmd_id(workreq)].curr_req) {	
>  		dev->id[c][scmd_id(workreq)].curr_req = workreq;
>  		dev->last_cmd[c] = scmd_id(workreq);
>  		goto cmd_subp;
> diff --git a/drivers/scsi/hptiop.c b/drivers/scsi/hptiop.c
> index 5b7be1e..bc5fb5c 100644
> --- a/drivers/scsi/hptiop.c
> +++ b/drivers/scsi/hptiop.c
> @@ -444,7 +444,7 @@ static void __iomem *hptiop_map_pci_bar(struct
hptiop_hba *hba, int index)
>  	if (!(pci_resource_flags(pcidev, index) & IORESOURCE_MEM)) {
>  		printk(KERN_ERR "scsi%d: pci resource invalid\n",
>  				hba->host->host_no);
> -		return 0;
> +		return NULL;
>  	}
>  
>  	mem_base_phy = pci_resource_start(pcidev, index);
> @@ -454,7 +454,7 @@ static void __iomem *hptiop_map_pci_bar(struct
hptiop_hba *hba, int index)
>  	if (!mem_base_virt) {
>  		printk(KERN_ERR "scsi%d: Fail to ioremap memory
space\n",
>  				hba->host->host_no);
> -		return 0;
> +		return NULL;
>  	}
>  	return mem_base_virt;
>  }
> @@ -476,11 +476,11 @@ static void hptiop_unmap_pci_bar_itl(struct
hptiop_hba *hba)
>  static int hptiop_map_pci_bar_mv(struct hptiop_hba *hba)
>  {
>  	hba->u.mv.regs = hptiop_map_pci_bar(hba, 0);
> -	if (hba->u.mv.regs == 0)
> +	if (!hba->u.mv.regs)
>  		return -1;
>  
>  	hba->u.mv.mu = hptiop_map_pci_bar(hba, 2);
> -	if (hba->u.mv.mu == 0) {
> +	if (!hba->u.mv.mu) {
>  		iounmap(hba->u.mv.regs);
>  		return -1;
>  	}
> @@ -1210,8 +1210,8 @@ static void hptiop_remove(struct pci_dev
*pcidev)
>  
>  static struct hptiop_adapter_ops hptiop_itl_ops = {
>  	.iop_wait_ready    = iop_wait_ready_itl,
> -	.internal_memalloc = 0,
> -	.internal_memfree  = 0,
> +	.internal_memalloc = NULL,
> +	.internal_memfree  = NULL,
>  	.map_pci_bar       = hptiop_map_pci_bar_itl,
>  	.unmap_pci_bar     = hptiop_unmap_pci_bar_itl,
>  	.enable_intr       = hptiop_enable_intr_itl,
> diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
> index 09ab3ea..d2bc60a 100644
> --- a/drivers/scsi/qla1280.c
> +++ b/drivers/scsi/qla1280.c
> @@ -2811,7 +2811,7 @@ qla1280_64bit_start_scsi(struct scsi_qla_host
*ha, struct srb * sp)
>  
>  	/* Check for room in outstanding command list. */
>  	for (cnt = 0; cnt < MAX_OUTSTANDING_COMMANDS &&
> -		     ha->outstanding_cmds[cnt] != 0; cnt++);
> +		     ha->outstanding_cmds[cnt] != NULL; cnt++);
>  
>  	if (cnt >= MAX_OUTSTANDING_COMMANDS) {
>  		status = 1;

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ