staging: gpib: Clean up types and struct initialization
cover staging: gpib: Clean up types and struct initialization
These patches address a series of sparse warnings.
Patch 1: Add missing __iomem attribute to io address space pointers
Patch 2: Add missing __user attribute for user address space pointers
and buffers.
Patch 3: Avoid using plain integers in pointer comparison and
initialization.
Patch 4: Modernize the remaining old style struct initialization
and declare local arrays and structs static
Dave Penkler (4):
staging: gpib: Use __iomem attribute for PCI memory pointers
staging: gpib: Use __user for user space pointers
staging: gpib: Avoid plain integers as NULL pointers
staging: gpib: Use C99 syntax and make static
.../gpib/agilent_82350b/agilent_82350b.c | 10 +- .../gpib/agilent_82350b/agilent_82350b.h | 10 +- .../gpib/agilent_82357a/agilent_82357a.c | 2 +- drivers/staging/gpib/cb7210/cb7210.c | 6 +- drivers/staging/gpib/common/gpib_os.c | 119 +++++++++--------- drivers/staging/gpib/common/iblib.c | 2 +- drivers/staging/gpib/eastwood/fluke_gpib.h | 2 +- drivers/staging/gpib/fmh_gpib/fmh_gpib.h | 2 +- drivers/staging/gpib/gpio/gpib_bitbang.c | 8 +- drivers/staging/gpib/ines/ines_gpib.c | 66 +++++----- .../gpib/lpvo_usb_gpib/lpvo_usb_gpib.c | 4 +- drivers/staging/gpib/pc2/pc2_gpib.c | 2 +- drivers/staging/gpib/tnt4882/tnt4882_gpib.c | 8 +- 13 files changed, 121 insertions(+), 120 deletions(-)
Signature · 1 line
2.47.1
PATCH 1/4 staging: gpib: Use __iomem attribute for io addresses
In a number of drivers the PCI memory pointers were declared simply as void *.
This caused sparse to emit the following warning, for example:
agilent_82350b/agilent_82350b.c:44:58: warning: incorrect type in argument 2 (different address spaces)agilent_82350b/agilent_82350b.c:44:58: expected void volatile [noderef] __iomem *addr
Declare the PCI memory pointers as void __iomem *addr.
--- drivers/staging/gpib/agilent_82350b/agilent_82350b.c | 10 +++++----- drivers/staging/gpib/agilent_82350b/agilent_82350b.h | 10 +++++----- drivers/staging/gpib/eastwood/fluke_gpib.h | 2 +- drivers/staging/gpib/fmh_gpib/fmh_gpib.h | 2 +- drivers/staging/gpib/ines/ines_gpib.c | 4 ++-- drivers/staging/gpib/tnt4882/tnt4882_gpib.c | 4 ++-- 6 files changed, 16 insertions(+), 16 deletions(-)
drivers/staging/gpib/agilent_82350b/agilent_82350b.c +5 -5
@@ -808,15 +808,15 @@ void agilent_82350b_detach(gpib_board_t *board)if (a_priv->gpib_base) {tms9914_board_reset (tms_priv);if (a_priv->misc_base) -iounmap ((void *)a_priv->misc_base); +iounmap (a_priv->misc_base);if (a_priv->borg_base) -iounmap ((void *)a_priv->borg_base); +iounmap (a_priv->borg_base);if (a_priv->sram_base) -iounmap ((void *)a_priv->sram_base); +iounmap (a_priv->sram_base);if (a_priv->gpib_base) -iounmap ((void *)a_priv->gpib_base); +iounmap (a_priv->gpib_base);if (a_priv->plx_base) -iounmap ((void *)a_priv->plx_base); +iounmap (a_priv->plx_base);pci_release_regions (a_priv->pci_device); }if (a_priv->pci_device)
drivers/staging/gpib/agilent_82350b/agilent_82350b.h +5 -5
@@ -45,11 +45,11 @@ enum board_model {struct agilent_82350b_priv {struct tms9914_priv tms9914_priv;struct pci_dev *pci_device; -void *plx_base;//82350a only -void *gpib_base; -void *sram_base; -void *misc_base; -void *borg_base; +void __iomem *plx_base;//82350a only +void __iomem *gpib_base; +void __iomem *sram_base; +void __iomem *misc_base; +void __iomem *borg_base;int irq;unsigned short card_mode_bits;unsigned short event_status_bits;
drivers/staging/gpib/eastwood/fluke_gpib.h +1 -1
@@ -21,7 +21,7 @@ struct fluke_priv {struct dma_chan *dma_channel;u8 *dma_buffer;int dma_buffer_size; -void *write_transfer_counter; +void __iomem *write_transfer_counter; };// cb7210 specific registers and bits
drivers/staging/gpib/fmh_gpib/fmh_gpib.h +1 -1
@@ -33,7 +33,7 @@ struct fmh_priv {u8 *dma_buffer;int dma_buffer_size;int dma_burst_length; -void *fifo_base; +void __iomem *fifo_base; unsigned supports_fifo_interrupts : 1; };
drivers/staging/gpib/ines/ines_gpib.c +2 -2
@@ -1122,7 +1122,7 @@ static int ines_gpib_config(struct pcmcia_device *link) {struct local_info *dev;int retval; -void *virt; +void __iomem *virt; dev = link->priv;DEBUG (0 ,"%s(0x%p)\n" , __func__, link);
@@ -1156,7 +1156,7 @@ static int ines_gpib_config(struct pcmcia_device *link) } virt =ioremap (link->resource[2 ]->start,resource_size (link->resource[2 ]));writeb ((link->resource[2 ]->start >>2 ) &0xff , virt +0xf0 );// IOWindow base -iounmap ((void *)virt); +iounmap (virt);/* * This actually configures the PCMCIA socket -- setting up
drivers/staging/gpib/tnt4882/tnt4882_gpib.c +2 -2
@@ -116,7 +116,7 @@ static inline void tnt_paged_writeb(struct tnt4882_priv *priv, unsigned int valu/* readb/writeb wrappers */ static inline unsigned short tnt_readb (struct tnt4882_priv *priv,unsigned long offset) { -void *address = priv->nec7210_priv.mmiobase + offset; +void __iomem *address = priv->nec7210_priv.mmiobase + offset;unsigned long flags;unsigned short retval;spinlock_t *register_lock = &priv->nec7210_priv.register_page_lock;
@@ -154,7 +154,7 @@ static inline unsigned short tnt_readb(struct tnt4882_priv *priv, unsigned longstatic inline void tnt_writeb (struct tnt4882_priv *priv,unsigned short value,unsigned long offset) { -void *address = priv->nec7210_priv.mmiobase + offset; +void __iomem *address = priv->nec7210_priv.mmiobase + offset;unsigned long flags;spinlock_t *register_lock = &priv->nec7210_priv.register_page_lock;
Signature · 1 line
2.47.1
PATCH 2/4 staging: gpib: Use __user for user space pointers
In reply to Dave PenklerThe user buffers in copy_from_user, copy_to_user and some file ops did not use the __user address space attribute.
This led to the following sparse warning, for example:common/gpib_os.c:838:40: warning: incorrect type in argument 2 (different address spaces)common/gpib_os.c:838:40: expected void const [noderef] __user *fromcommon/gpib_os.c:838:40: got void *
Add the __user address space attribute where needed.
--- drivers/staging/gpib/common/gpib_os.c | 103 +++++++++--------- .../gpib/lpvo_usb_gpib/lpvo_usb_gpib.c | 4 +- 2 files changed, 54 insertions(+), 53 deletions(-)
drivers/staging/gpib/common/gpib_os.c +52 -51
@@ -835,7 +835,7 @@ static int board_type_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board,return -EBUSY ; } - retval =copy_from_user (&cmd, (void *)arg,sizeof (board_type_ioctl_t)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (board_type_ioctl_t));if (retval)return retval;
@@ -879,7 +879,7 @@ static int read_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board, unsigned long arg) {read_write_ioctl_t read_cmd; -u8 *userbuf; +u8 __user *userbuf;unsigned long remain;int end_flag =0 ;int retval;
@@ -887,7 +887,7 @@ static int read_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board,gpib_descriptor_t *desc;size_t nbytes; - retval =copy_from_user (&read_cmd, (void *)arg,sizeof (read_cmd)); + retval =copy_from_user (&read_cmd, (void __user *)arg,sizeof (read_cmd));if (retval)return -EFAULT ;
@@ -901,7 +901,7 @@ static int read_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board,if (WARN_ON_ONCE (sizeof (userbuf) >sizeof (read_cmd.buffer_ptr)))return -EFAULT ; - userbuf = (u8 *)(unsigned long )read_cmd.buffer_ptr; + userbuf = (u8 __user *)(unsigned long )read_cmd.buffer_ptr; userbuf += read_cmd.completed_transfer_count; remain = read_cmd.requested_transfer_count - read_cmd.completed_transfer_count;
@@ -939,7 +939,7 @@ static int read_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board,if (remain ==0 || end_flag) read_ret =0 ;if (retval ==0 ) - retval =copy_to_user ((void *)arg, &read_cmd,sizeof (read_cmd)); + retval =copy_to_user ((void __user *)arg, &read_cmd,sizeof (read_cmd));atomic_set (&desc->io_in_progress,0 );
@@ -954,7 +954,7 @@ static int command_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board, unsigned long arg) {read_write_ioctl_t cmd; -u8 *userbuf; +u8 __user *userbuf;unsigned long remain;int retval;int fault =0 ;
@@ -962,7 +962,7 @@ static int command_ioctl(gpib_file_private_t *file_priv,size_t bytes_written;int no_clear_io_in_prog; - retval =copy_from_user (&cmd, (void *)arg,sizeof (cmd)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (cmd));if (retval)return -EFAULT ;
@@ -973,7 +973,7 @@ static int command_ioctl(gpib_file_private_t *file_priv,if (!desc)return -EINVAL ; - userbuf = (u8 *)(unsigned long )cmd.buffer_ptr; + userbuf = (u8 __user *)(unsigned long )cmd.buffer_ptr; userbuf += cmd.completed_transfer_count; no_clear_io_in_prog = cmd.end;
@@ -1016,7 +1016,7 @@ static int command_ioctl(gpib_file_private_t *file_priv, cmd.completed_transfer_count = cmd.requested_transfer_count - remain;if (fault ==0 ) - fault =copy_to_user ((void *)arg, &cmd,sizeof (cmd)); + fault =copy_to_user ((void __user *)arg, &cmd,sizeof (cmd));/* * no_clear_io_in_prog (cmd.end) is true when io_in_progress should
@@ -1038,13 +1038,13 @@ static int write_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board, unsigned long arg) {read_write_ioctl_t write_cmd; -u8 *userbuf; +u8 __user *userbuf;unsigned long remain;int retval =0 ;int fault;gpib_descriptor_t *desc; - fault =copy_from_user (&write_cmd, (void *)arg,sizeof (write_cmd)); + fault =copy_from_user (&write_cmd, (void __user *)arg,sizeof (write_cmd));if (fault)return -EFAULT ;
@@ -1055,7 +1055,7 @@ static int write_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board,if (!desc)return -EINVAL ; - userbuf = (u8 *)(unsigned long )write_cmd.buffer_ptr; + userbuf = (u8 __user *)(unsigned long )write_cmd.buffer_ptr; userbuf += write_cmd.completed_transfer_count; remain = write_cmd.requested_transfer_count - write_cmd.completed_transfer_count;
@@ -1094,7 +1094,7 @@ static int write_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board,if (remain ==0 ) retval =0 ;if (fault ==0 ) - fault =copy_to_user ((void *)arg, &write_cmd,sizeof (write_cmd)); + fault =copy_to_user ((void __user *)arg, &write_cmd,sizeof (write_cmd));atomic_set (&desc->io_in_progress,0 );
@@ -1111,7 +1111,7 @@ static int status_bytes_ioctl(gpib_board_t *board, unsigned long arg)spoll_bytes_ioctl_t cmd;int retval; - retval =copy_from_user (&cmd, (void *)arg,sizeof (cmd)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (cmd));if (retval)return -EFAULT ;
@@ -1121,7 +1121,7 @@ static int status_bytes_ioctl(gpib_board_t *board, unsigned long arg)else cmd.num_bytes =num_status_bytes (device); - retval =copy_to_user ((void *)arg, &cmd,sizeof (cmd)); + retval =copy_to_user ((void __user *)arg, &cmd,sizeof (cmd));if (retval)return -EFAULT ;
@@ -1231,7 +1231,7 @@ static int open_dev_ioctl(struct file *filep, gpib_board_t *board, unsigned longgpib_file_private_t *file_priv = filep->private_data;int i; - retval =copy_from_user (&open_dev_cmd, (void *)arg,sizeof (open_dev_cmd)); + retval =copy_from_user (&open_dev_cmd, (void __user *)arg,sizeof (open_dev_cmd));if (retval)return -EFAULT ;
@@ -1267,7 +1267,7 @@ static int open_dev_ioctl(struct file *filep, gpib_board_t *board, unsigned longatomic_set (&board->stuck_srq,0 ); open_dev_cmd.handle = i; - retval =copy_to_user ((void *)arg, &open_dev_cmd,sizeof (open_dev_cmd)); + retval =copy_to_user ((void __user *)arg, &open_dev_cmd,sizeof (open_dev_cmd));if (retval)return -EFAULT ;
@@ -1280,7 +1280,7 @@ static int close_dev_ioctl(struct file *filep, gpib_board_t *board, unsigned longpib_file_private_t *file_priv = filep->private_data;int retval; - retval =copy_from_user (&cmd, (void *)arg,sizeof (cmd)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (cmd));if (retval)return -EFAULT ;
@@ -1308,7 +1308,7 @@ static int serial_poll_ioctl(gpib_board_t *board, unsigned long arg)dev_dbg (board->gpib_dev,"pid %i, entering %s()\n" , current->pid, __func__); - retval =copy_from_user (&serial_cmd, (void *)arg,sizeof (serial_cmd)); + retval =copy_from_user (&serial_cmd, (void __user *)arg,sizeof (serial_cmd));if (retval)return -EFAULT ;
@@ -1317,7 +1317,7 @@ static int serial_poll_ioctl(gpib_board_t *board, unsigned long arg)if (retval <0 )return retval; - retval =copy_to_user ((void *)arg, &serial_cmd,sizeof (serial_cmd)); + retval =copy_to_user ((void __user *)arg, &serial_cmd,sizeof (serial_cmd));if (retval)return -EFAULT ;
@@ -1331,7 +1331,7 @@ static int wait_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board,int retval;gpib_descriptor_t *desc; - retval =copy_from_user (&wait_cmd, (void *)arg,sizeof (wait_cmd)); + retval =copy_from_user (&wait_cmd, (void __user *)arg,sizeof (wait_cmd));if (retval)return -EFAULT ;
@@ -1344,7 +1344,7 @@ static int wait_ioctl(gpib_file_private_t *file_priv, gpib_board_t *board,if (retval <0 )return retval; - retval =copy_to_user ((void *)arg, &wait_cmd,sizeof (wait_cmd)); + retval =copy_to_user ((void __user *)arg, &wait_cmd,sizeof (wait_cmd));if (retval)return -EFAULT ;
@@ -1360,7 +1360,7 @@ static int parallel_poll_ioctl(gpib_board_t *board, unsigned long arg)if (retval <0 )return retval; - retval =copy_to_user ((void *)arg, &poll_byte,sizeof (poll_byte)); + retval =copy_to_user ((void __user *)arg, &poll_byte,sizeof (poll_byte));if (retval)return -EFAULT ;
@@ -1371,14 +1371,14 @@ static int online_ioctl(gpib_board_t *board, unsigned long arg) {online_ioctl_t online_cmd;int retval; -void *init_data =NULL ; +void __user *init_data =NULL ; board->config.init_data =NULL ;if (!capable (CAP_SYS_ADMIN ))return -EPERM ; - retval =copy_from_user (&online_cmd, (void *)arg,sizeof (online_cmd)); + retval =copy_from_user (&online_cmd, (void __user *)arg,sizeof (online_cmd));if (retval)return -EFAULT ;if (online_cmd.init_data_length >0 ) {
@@ -1387,7 +1387,7 @@ static int online_ioctl(gpib_board_t *board, unsigned long arg)return -ENOMEM ;if (WARN_ON_ONCE (sizeof (init_data) >sizeof (online_cmd.init_data_ptr)))return -EFAULT ; - init_data = (void *)(unsigned long )(online_cmd.init_data_ptr); + init_data = (void __user *)(unsigned long )(online_cmd.init_data_ptr); retval =copy_from_user (board->config.init_data, init_data, online_cmd.init_data_length);if (retval) {
@@ -1416,7 +1416,7 @@ static int remote_enable_ioctl(gpib_board_t *board, unsigned long arg)int enable;int retval; - retval =copy_from_user (&enable, (void *)arg,sizeof (enable)); + retval =copy_from_user (&enable, (void __user *)arg,sizeof (enable));if (retval)return -EFAULT ;
@@ -1428,7 +1428,7 @@ static int take_control_ioctl(gpib_board_t *board, unsigned long arg)int synchronous;int retval; - retval =copy_from_user (&synchronous, (void *)arg,sizeof (synchronous)); + retval =copy_from_user (&synchronous, (void __user *)arg,sizeof (synchronous));if (retval)return -EFAULT ;
@@ -1444,7 +1444,7 @@ static int line_status_ioctl(gpib_board_t *board, unsigned long arg)if (retval <0 )return retval; - retval =copy_to_user ((void *)arg, &lines,sizeof (lines)); + retval =copy_to_user ((void __user *)arg, &lines,sizeof (lines));if (retval)return -EFAULT ;
@@ -1458,7 +1458,7 @@ static int pad_ioctl(gpib_board_t *board, gpib_file_private_t *file_priv,int retval;gpib_descriptor_t *desc; - retval =copy_from_user (&cmd, (void *)arg,sizeof (cmd)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (cmd));if (retval)return -EFAULT ;
@@ -1494,7 +1494,7 @@ static int sad_ioctl(gpib_board_t *board, gpib_file_private_t *file_priv,int retval;gpib_descriptor_t *desc; - retval =copy_from_user (&cmd, (void *)arg,sizeof (cmd)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (cmd));if (retval)return -EFAULT ;
@@ -1527,7 +1527,7 @@ static int eos_ioctl(gpib_board_t *board, unsigned long arg)eos_ioctl_t eos_cmd;int retval; - retval =copy_from_user (&eos_cmd, (void *)arg,sizeof (eos_cmd)); + retval =copy_from_user (&eos_cmd, (void __user *)arg,sizeof (eos_cmd));if (retval)return -EFAULT ;
@@ -1539,7 +1539,7 @@ static int request_service_ioctl(gpib_board_t *board, unsigned long arg)u8 status_byte;int retval; - retval =copy_from_user (&status_byte, (void *)arg,sizeof (status_byte)); + retval =copy_from_user (&status_byte, (void __user *)arg,sizeof (status_byte));if (retval)return -EFAULT ;
@@ -1551,7 +1551,8 @@ static int request_service2_ioctl(gpib_board_t *board, unsigned long arg)request_service2_t request_service2_cmd;int retval; - retval =copy_from_user (&request_service2_cmd, (void *)arg,sizeof (request_service2_t)); + retval =copy_from_user (&request_service2_cmd, (void __user *)arg, +sizeof (request_service2_t));if (retval)return -EFAULT ;
@@ -1567,7 +1568,7 @@ static int iobase_ioctl(gpib_board_config_t *config, unsigned long arg)if (!capable (CAP_SYS_ADMIN ))return -EPERM ; - retval =copy_from_user (&base_addr, (void *)arg,sizeof (base_addr)); + retval =copy_from_user (&base_addr, (void __user *)arg,sizeof (base_addr));if (retval)return -EFAULT ;
@@ -1586,7 +1587,7 @@ static int irq_ioctl(gpib_board_config_t *config, unsigned long arg)if (!capable (CAP_SYS_ADMIN ))return -EPERM ; - retval =copy_from_user (&irq, (void *)arg,sizeof (irq)); + retval =copy_from_user (&irq, (void __user *)arg,sizeof (irq));if (retval)return -EFAULT ;
@@ -1603,7 +1604,7 @@ static int dma_ioctl(gpib_board_config_t *config, unsigned long arg)if (!capable (CAP_SYS_ADMIN ))return -EPERM ; - retval =copy_from_user (&dma_channel, (void *)arg,sizeof (dma_channel)); + retval =copy_from_user (&dma_channel, (void __user *)arg,sizeof (dma_channel));if (retval)return -EFAULT ;
@@ -1619,7 +1620,7 @@ static int autospoll_ioctl(gpib_board_t *board, gpib_file_private_t *file_priv,int retval;gpib_descriptor_t *desc; - retval =copy_from_user (&enable, (void *)arg,sizeof (enable)); + retval =copy_from_user (&enable, (void __user *)arg,sizeof (enable));if (retval)return -EFAULT ;
@@ -1654,7 +1655,7 @@ static int mutex_ioctl(gpib_board_t *board, gpib_file_private_t *file_priv, {int retval, lock_mutex; - retval =copy_from_user (&lock_mutex, (void *)arg,sizeof (lock_mutex)); + retval =copy_from_user (&lock_mutex, (void __user *)arg,sizeof (lock_mutex));if (retval)return -EFAULT ;
@@ -1698,7 +1699,7 @@ static int timeout_ioctl(gpib_board_t *board, unsigned long arg)unsigned int timeout;int retval; - retval =copy_from_user (&timeout, (void *)arg,sizeof (timeout)); + retval =copy_from_user (&timeout, (void __user *)arg,sizeof (timeout));if (retval)return -EFAULT ;
@@ -1713,7 +1714,7 @@ static int ppc_ioctl(gpib_board_t *board, unsigned long arg)ppoll_config_ioctl_t cmd;int retval; - retval =copy_from_user (&cmd, (void *)arg,sizeof (cmd)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (cmd));if (retval)return -EFAULT ;
@@ -1739,7 +1740,7 @@ static int set_local_ppoll_mode_ioctl(gpib_board_t *board, unsigned long arg)local_ppoll_mode_ioctl_t cmd;int retval; - retval =copy_from_user (&cmd, (void *)arg,sizeof (cmd)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (cmd));if (retval)return -EFAULT ;
@@ -1759,7 +1760,7 @@ static int get_local_ppoll_mode_ioctl(gpib_board_t *board, unsigned long arg)int retval; cmd = board->local_ppoll_mode; - retval =copy_to_user ((void *)arg, &cmd,sizeof (cmd)); + retval =copy_to_user ((void __user *)arg, &cmd,sizeof (cmd));if (retval)return -EFAULT ;
@@ -1773,7 +1774,7 @@ static int query_board_rsv_ioctl(gpib_board_t *board, unsigned long arg) status = board->interface->serial_poll_status (board); - retval =copy_to_user ((void *)arg, &status,sizeof (status)); + retval =copy_to_user ((void __user *)arg, &status,sizeof (status));if (retval)return -EFAULT ;
@@ -1796,7 +1797,7 @@ static int board_info_ioctl(const gpib_board_t *board, unsigned long arg) info.t1_delay = board->t1_nano_sec; info.ist = board->ist; info.no_7_bit_eos = board->interface->no_7_bit_eos; - retval =copy_to_user ((void *)arg, &info,sizeof (info)); + retval =copy_to_user ((void __user *)arg, &info,sizeof (info));if (retval)return -EFAULT ;
@@ -1808,7 +1809,7 @@ static int interface_clear_ioctl(gpib_board_t *board, unsigned long arg)unsigned int usec_duration;int retval; - retval =copy_from_user (&usec_duration, (void *)arg,sizeof (usec_duration)); + retval =copy_from_user (&usec_duration, (void __user *)arg,sizeof (usec_duration));if (retval)return -EFAULT ;
@@ -1823,7 +1824,7 @@ static int select_pci_ioctl(gpib_board_config_t *config, unsigned long arg)if (!capable (CAP_SYS_ADMIN ))return -EPERM ; - retval =copy_from_user (&selection, (void *)arg,sizeof (selection)); + retval =copy_from_user (&selection, (void __user *)arg,sizeof (selection));if (retval)return -EFAULT ;
@@ -1845,7 +1846,7 @@ static int select_device_path_ioctl(gpib_board_config_t *config, unsigned long aif (!selection)return -ENOMEM ; - retval =copy_from_user (selection, (void *)arg,sizeof (select_device_path_ioctl_t)); + retval =copy_from_user (selection, (void __user *)arg,sizeof (select_device_path_ioctl_t));if (retval) {vfree (selection);return -EFAULT ;
@@ -1979,7 +1980,7 @@ static int event_ioctl(gpib_board_t *board, unsigned long arg) user_event = event; - retval =copy_to_user ((void *)arg, &user_event,sizeof (user_event)); + retval =copy_to_user ((void __user *)arg, &user_event,sizeof (user_event));if (retval)return -EFAULT ;
@@ -1991,7 +1992,7 @@ static int request_system_control_ioctl(gpib_board_t *board, unsigned long arg)rsc_ioctl_t request_control;int retval; - retval =copy_from_user (&request_control, (void *)arg,sizeof (request_control)); + retval =copy_from_user (&request_control, (void __user *)arg,sizeof (request_control));if (retval)return -EFAULT ;
@@ -2011,7 +2012,7 @@ static int t1_delay_ioctl(gpib_board_t *board, unsigned long arg)return -EIO ; } - retval =copy_from_user (&cmd, (void *)arg,sizeof (cmd)); + retval =copy_from_user (&cmd, (void __user *)arg,sizeof (cmd));if (retval)return -EFAULT ;
drivers/staging/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c +2 -2
@@ -1880,7 +1880,7 @@ static int skel_release(struct inode *inode, struct file *file)* user space access to read function */ -static ssize_t skel_read (struct file *file,char *buffer,size_t count, +static ssize_t skel_read (struct file *file,char __user *buffer,size_t count,loff_t *ppos) {struct usb_skel *dev;
@@ -1911,7 +1911,7 @@ static ssize_t skel_read(struct file *file, char *buffer, size_t count,* user space access to write function */ -static ssize_t skel_write (struct file *file,const char *user_buffer, +static ssize_t skel_write (struct file *file,const char __user *user_buffer,size_t count,loff_t *ppos) {struct usb_skel *dev;
Signature · 1 line
2.47.1
PATCH 3/4 staging: gpib: Avoid plain integers as NULL pointers
In reply to Dave PenklerA number of drivers were comparing request_region() with 0, others were passing 0 instead of NULL as a pointer argument.
This led to the following sparse warning, for example:
cb7210/cb7210.c:1043:72: warning: Using plain integer as NULL pointer
Use !request_region() to test for NULL return and use NULL instead of 0 as pointer parameter.
--- drivers/staging/gpib/cb7210/cb7210.c | 6 +++--- drivers/staging/gpib/common/gpib_os.c | 2 +- drivers/staging/gpib/common/iblib.c | 2 +- drivers/staging/gpib/gpio/gpib_bitbang.c | 4 ++-- drivers/staging/gpib/ines/ines_gpib.c | 4 ++-- drivers/staging/gpib/pc2/pc2_gpib.c | 2 +- drivers/staging/gpib/tnt4882/tnt4882_gpib.c | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-)
drivers/staging/gpib/cb7210/cb7210.c +3 -3
@@ -1040,7 +1040,7 @@ int cb_isa_attach(gpib_board_t *board, const gpib_board_config_t *config)return retval; cb_priv = board->private_data; nec_priv = &cb_priv->nec7210_priv; -if (request_region (config->ibbase, cb7210_iosize,"cb7210" ) ==0 ) { +if (!request_region (config->ibbase, cb7210_iosize,"cb7210" )) {pr_err ("gpib: ioports starting at 0x%u are already in use\n" , config->ibbase);return -EIO ; }
@@ -1459,8 +1459,8 @@ int cb_pcmcia_attach(gpib_board_t *board, const gpib_board_config_t *config) cb_priv = board->private_data; nec_priv = &cb_priv->nec7210_priv; -if (request_region (curr_dev->resource[0 ]->start,resource_size (curr_dev->resource[0 ]), -"cb7210" ) ==0 ) { +if (!request_region (curr_dev->resource[0 ]->start,resource_size (curr_dev->resource[0 ]), +"cb7210" )) {pr_err ("gpib: ioports starting at 0x%lx are already in use\n" , (unsigned long )curr_dev->resource[0 ]->start);return -EIO ;
drivers/staging/gpib/common/gpib_os.c +1 -1
@@ -2197,7 +2197,7 @@ static int __init gpib_common_init_module(void)return PTR_ERR (gpib_class); }for (i =0 ; i <GPIB_MAX_NUM_BOARDS ; ++i) - board_array[i].gpib_dev =device_create (gpib_class,0 , + board_array[i].gpib_dev =device_create (gpib_class,NULL ,MKDEV (GPIB_CODE , i),NULL ,"gpib%i" , i);return 0 ;
drivers/staging/gpib/common/iblib.c +1 -1
@@ -695,7 +695,7 @@ int ibwait(gpib_board_t *board, int wait_mask, int clear_mask, int set_mask,/* make sure we only clear status bits that we are reporting */ if (*status & clear_mask || set_mask) -general_ibstatus (board, status_queue, *status & clear_mask, set_mask,0 ); +general_ibstatus (board, status_queue, *status & clear_mask, set_mask,NULL );return 0 ; }
drivers/staging/gpib/gpio/gpib_bitbang.c +2 -2
@@ -265,7 +265,7 @@ static struct gpiod_lookup_table gpib_gpio_table_0 = {static struct gpiod_lookup_table *lookup_tables[] = { &gpib_gpio_table_0, &gpib_gpio_table_1, -0 +NULL };/* struct which defines private_data for gpio driver */
@@ -1119,7 +1119,7 @@ static void release_gpios(void)for (j =0 ; j <NUM_PINS ; j++) {if (all_descriptors[j]) {gpiod_put (all_descriptors[j]); - all_descriptors[j] =0 ; + all_descriptors[j] =NULL ; } } }
drivers/staging/gpib/ines/ines_gpib.c +2 -2
@@ -1342,8 +1342,8 @@ int ines_common_pcmcia_attach(gpib_board_t *board) ines_priv = board->private_data; nec_priv = &ines_priv->nec7210_priv; -if (request_region (curr_dev->resource[0 ]->start, -resource_size (curr_dev->resource[0 ]),"ines_gpib" ) ==0 ) { +if (!request_region (curr_dev->resource[0 ]->start, +resource_size (curr_dev->resource[0 ]),"ines_gpib" )) {pr_err ("ines_gpib: ioports at 0x%lx already in use\n" , (unsigned long )(curr_dev->resource[0 ]->start));return -1 ;
drivers/staging/gpib/pc2/pc2_gpib.c +1 -1
@@ -426,7 +426,7 @@ int pc2_attach(gpib_board_t *board, const gpib_board_config_t *config) nec_priv = &pc2_priv->nec7210_priv; nec_priv->offset = pc2_reg_offset; -if (request_region (config->ibbase, pc2_iosize,"pc2" ) ==0 ) { +if (!request_region (config->ibbase, pc2_iosize,"pc2" )) {pr_err ("gpib: ioports are already in use\n" );return -1 ; }
drivers/staging/gpib/tnt4882/tnt4882_gpib.c +2 -2
@@ -1896,8 +1896,8 @@ int ni_pcmcia_attach(gpib_board_t *board, const gpib_board_config_t *config) nec_priv->offset = atgpib_reg_offset;DEBUG (0 ,"ioport1 window attributes: 0x%lx\n" , curr_dev->resource[0 ]->flags); -if (request_region (curr_dev->resource[0 ]->start,resource_size (curr_dev->resource[0 ]), -"tnt4882" ) ==0 ) { +if (!request_region (curr_dev->resource[0 ]->start,resource_size (curr_dev->resource[0 ]), +"tnt4882" )) {pr_err ("gpib: ioports starting at 0x%lx are already in use\n" , (unsigned long )curr_dev->resource[0 ]->start);return -EIO ;
Signature · 1 line
2.47.1
PATCH 4/4 staging: gpib: Use C99 syntax and make static
In reply to Dave PenklerSome drivers were still using the old syntax for initializing structs:
field : value;
This caused sparse to emit the following warning, for example:common/gpib_os.c:2026:1: warning: obsolete struct initializer, use C99 syntax
Use C99 syntax:
.field = value;
Some local structs and arrays were not declared static causing sparse to emit the following warning, for example:
warning: symbol 'ib_fops' was not declared. Should it be static?
Declare the local structs and arrays as static.
--- .../gpib/agilent_82357a/agilent_82357a.c | 2 +- drivers/staging/gpib/common/gpib_os.c | 14 ++--- drivers/staging/gpib/gpio/gpib_bitbang.c | 4 +- drivers/staging/gpib/ines/ines_gpib.c | 58 +++++++++---------- 4 files changed, 39 insertions(+), 39 deletions(-)
drivers/staging/gpib/agilent_82357a/agilent_82357a.c +1 -1
@@ -19,7 +19,7 @@ MODULE_DESCRIPTION("GPIB driver for Agilent 82357A/B usb adapters");#define MAX_NUM_82357A_INTERFACES 128static struct usb_interface *agilent_82357a_driver_interfaces[MAX_NUM_82357A_INTERFACES ]; -DEFINE_MUTEX (agilent_82357a_hotplug_lock);// protect board insertion and removal +static DEFINE_MUTEX (agilent_82357a_hotplug_lock);// protect board insertion and removal static unsigned int agilent_82357a_update_status (gpib_board_t *board,unsigned int clear_mask);
drivers/staging/gpib/common/gpib_os.c +7 -7
@@ -2023,13 +2023,13 @@ static int t1_delay_ioctl(gpib_board_t *board, unsigned long arg)return 0 ; } -const struct file_operations ib_fops = { -owner:THIS_MODULE , -llseek :NULL , -unlocked_ioctl : &ibioctl, -compat_ioctl : &ibioctl, -open : &ibopen, -release : &ibclose, +static const struct file_operations ib_fops = { + .owner =THIS_MODULE , + .llseek =NULL , + .unlocked_ioctl = &ibioctl, + .compat_ioctl = &ibioctl, + .open = &ibopen, + .release = &ibclose, };gpib_board_t board_array[GPIB_MAX_NUM_BOARDS ];
drivers/staging/gpib/gpio/gpib_bitbang.c +2 -2
@@ -147,7 +147,7 @@ DEFINE_LED_TRIGGER(ledtrig_gpib);led_trigger_event (ledtrig_gpib,LED_OFF ); } \while (0 ) -struct gpio_desc *all_descriptors[GPIB_PINS + SN7516X_PINS]; +static struct gpio_desc *all_descriptors[GPIB_PINS + SN7516X_PINS];#define D01 all_descriptors[0]#define D02 all_descriptors[1]
@@ -175,7 +175,7 @@ struct gpio_desc *all_descriptors[GPIB_PINS + SN7516X_PINS];/* YOGA dapter uses a global enable for the buffer chips, re-using the TE pin */ #define YOGA_ENABLE TE -int gpios_vector[] = { +static int gpios_vector[] = { D01_pin_nr, D02_pin_nr, D03_pin_nr,
drivers/staging/gpib/ines/ines_gpib.c +29 -29
67 lines not on this page · raw message
Signature · 1 line
2.47.1