[PATCH] staging: lustre: ptlrpc: lproc_ptlrpc.c - fix dereferenceing user space buffer
- this fixes sparse warning for directly deferencing user space buffer drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c:652:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c:652:33:expected void const [noderef] asn:1*from drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c:652:33:got char const *buffer Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 6b9c6db..455c6c7 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -628,7 +628,8 @@ out: * if the optional token is omitted, the operation is performed on both the * regular and high-priority (if the service has one) NRS head. */ -static ssize_t ptlrpc_lprocfs_nrs_seq_write(struct file *file, const char *buffer, +static ssize_t ptlrpc_lprocfs_nrs_seq_write(struct file *file, + const char __user *buffer, size_t count, loff_t *off) { struct ptlrpc_service *svc = ((struct seq_file *)file-private_data)-private; -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v2 1/1] staging: vt6655: ioctl.c - missing __user annotation
From: Anil Belur ask...@gmail.com v2: - private_ioctl() internally calls copy_{to,from}_user() and does not use '__user' which gives out several sparse warnings - this patch adds __user annotation to the data member of struct tagSCmdRequest as suggested by tklau...@distanz.ch - sparse warnings fixed: drivers/staging/vt6655/ioctl.c:78:51: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:78:51:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:78:51:got void *data drivers/staging/vt6655/ioctl.c:117:55: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:117:55:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:117:55:got void *data drivers/staging/vt6655/ioctl.c:149:46: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:149:46:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:149:46:got void *data drivers/staging/vt6655/ioctl.c:166:51: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:166:51:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:166:51:got void *data drivers/staging/vt6655/ioctl.c:212:50: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:212:50:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:212:50:got void *data drivers/staging/vt6655/ioctl.c:276:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:276:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:276:38:got void *data drivers/staging/vt6655/ioctl.c:292:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:292:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:292:38:got void *data drivers/staging/vt6655/ioctl.c:300:48: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:300:48:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:300:48:got void *data drivers/staging/vt6655/ioctl.c:344:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:344:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:344:38:got void *data drivers/staging/vt6655/ioctl.c:353:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:353:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:353:38:got void *data drivers/staging/vt6655/ioctl.c:360:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:360:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:360:38:got void *data drivers/staging/vt6655/ioctl.c:401:49: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:401:49:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:401:49:got void *data drivers/staging/vt6655/ioctl.c:424:49: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:424:49:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:424:49:got void *data drivers/staging/vt6655/ioctl.c:440:49: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:440:49:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:440:49:got void *data drivers/staging/vt6655/ioctl.c:457:49: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:457:49:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:457:49:got void *data drivers/staging/vt6655/ioctl.c:479:54: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:479:54:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:479:54:got void *data drivers/staging/vt6655/ioctl.c:563:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:563:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:563:38:got void *data drivers/staging/vt6655/ioctl.c:571:52: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:571:52:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:571:52:got void *data drivers/staging/vt6655/ioctl.c:615:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:615:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:615:38:got void *data drivers/staging/vt6655/ioctl.c:631
[PATCH v3] staging: vt6655: ioctl.c - missing __user annotation
- private_ioctl() internally calls copy_{to,from}_user() and does not use '__user' which gives out several sparse warnings - these sparse warnings were fixed by adding __user annotation to the data member of struct tagSCmdRequest: drivers/staging/vt6655/ioctl.c:78:51: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:78:51:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:78:51:got void *data Signed-off-by: Anil Belur ask...@gmail.com --- v2: - replaced the 'void __user *' casts by adding '__user' annotation to the data member of struct tagSCmdRequest which is much cleaner approach as suggested by tklau...@distanz.ch v1: - added 'void __user *' casts to supress the warnings drivers/staging/vt6655/iocmd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/iocmd.h b/drivers/staging/vt6655/iocmd.h index e499f1b..dd12498 100644 --- a/drivers/staging/vt6655/iocmd.h +++ b/drivers/staging/vt6655/iocmd.h @@ -100,7 +100,7 @@ typedef enum tagWZONETYPE { #pragma pack(1) typedef struct tagSCmdRequest { u8 name[16]; - void*data; + void __user *data; u16 wResult; u16 wCmdCode; } SCmdRequest, *PSCmdRequest; -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/1] drivers: staging: vt6655: ioctl.c - missing __user annotation
From: Anil Belur ask...@gmail.com - private_ioctl() the internally calls copy_{to,from}_user() and does not use '__user' while refrencing user space pointers. - this patch passes __user annotation as a cast, when the pointer is being refernced. - this patch fixes the following sparse errors: drivers/staging/vt6655/ioctl.c:44:12: warning: symbol 'wpa_Result' was not declared. Should it be static? drivers/staging/vt6655/ioctl.c:78:51: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:78:51:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:78:51:got void *data drivers/staging/vt6655/ioctl.c:117:55: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:117:55:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:117:55:got void *data drivers/staging/vt6655/ioctl.c:149:46: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:149:46:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:149:46:got void *data drivers/staging/vt6655/ioctl.c:166:51: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:166:51:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:166:51:got void *data drivers/staging/vt6655/ioctl.c:212:50: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:212:50:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:212:50:got void *data drivers/staging/vt6655/ioctl.c:276:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:276:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:276:38:got void *data drivers/staging/vt6655/ioctl.c:292:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:292:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:292:38:got void *data drivers/staging/vt6655/ioctl.c:300:48: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:300:48:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:300:48:got void *data drivers/staging/vt6655/ioctl.c:344:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:344:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:344:38:got void *data drivers/staging/vt6655/ioctl.c:353:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:353:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:353:38:got void *data drivers/staging/vt6655/ioctl.c:360:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:360:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:360:38:got void *data drivers/staging/vt6655/ioctl.c:401:49: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:401:49:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:401:49:got void *data drivers/staging/vt6655/ioctl.c:424:49: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:424:49:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:424:49:got void *data drivers/staging/vt6655/ioctl.c:440:49: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:440:49:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:440:49:got void *data drivers/staging/vt6655/ioctl.c:457:49: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:457:49:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:457:49:got void *data drivers/staging/vt6655/ioctl.c:479:54: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:479:54:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:479:54:got void *data drivers/staging/vt6655/ioctl.c:563:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:563:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:563:38:got void *data drivers/staging/vt6655/ioctl.c:571:52: warning: incorrect type in argument 2 (different address spaces) drivers/staging/vt6655/ioctl.c:571:52:expected void const [noderef] asn:1*from drivers/staging/vt6655/ioctl.c:571:52:got void *data drivers/staging/vt6655/ioctl.c:615:38: warning: incorrect type in argument 1 (different address spaces) drivers/staging/vt6655/ioctl.c:615:38:expected void [noderef] asn:1*to drivers/staging/vt6655/ioctl.c:615:38:got void
[PATCH 1/1] drivers: staging: cxt1e1: linux.c - missing __user annotation
From: Anil Belur ask...@gmail.com - Some of the functions internally call copy_{to,from}_user() but does not use '__user'. this patch fixes missing __user annotations. - this patch fixes the following sparse errors: drivers/staging/cxt1e1/linux.c:488:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:488:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:488:33:got void *data drivers/staging/cxt1e1/linux.c:499:26: warning: incorrect type in argument 1 (different address spaces) drivers/staging/cxt1e1/linux.c:499:26:expected void [noderef] asn:1*to drivers/staging/cxt1e1/linux.c:499:26:got void *data drivers/staging/cxt1e1/linux.c:512:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:512:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:512:33:got void *data drivers/staging/cxt1e1/linux.c:534:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:534:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:534:33:got void *data drivers/staging/cxt1e1/linux.c:550:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:550:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:550:33:got void *data drivers/staging/cxt1e1/linux.c:558:26: warning: incorrect type in argument 1 (different address spaces) drivers/staging/cxt1e1/linux.c:558:26:expected void [noderef] asn:1*to drivers/staging/cxt1e1/linux.c:558:26:got void *data drivers/staging/cxt1e1/linux.c:571:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:571:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:571:33:got void *data drivers/staging/cxt1e1/linux.c:580:26: warning: incorrect type in argument 1 (different address spaces) drivers/staging/cxt1e1/linux.c:580:26:expected void [noderef] asn:1*to drivers/staging/cxt1e1/linux.c:580:26:got void *data drivers/staging/cxt1e1/linux.c:593:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:593:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:593:33:got void *data drivers/staging/cxt1e1/linux.c:601:26: warning: incorrect type in argument 1 (different address spaces) drivers/staging/cxt1e1/linux.c:601:26:expected void [noderef] asn:1*to drivers/staging/cxt1e1/linux.c:601:26:got void *data drivers/staging/cxt1e1/linux.c:612:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:612:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:612:33:got void *data drivers/staging/cxt1e1/linux.c:620:26: warning: incorrect type in argument 1 (different address spaces) drivers/staging/cxt1e1/linux.c:620:26:expected void [noderef] asn:1*to drivers/staging/cxt1e1/linux.c:620:26:got void *data drivers/staging/cxt1e1/linux.c:631:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:631:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:631:33:got void *data drivers/staging/cxt1e1/linux.c:647:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:647:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:647:33:got void *data drivers/staging/cxt1e1/linux.c:673:34: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:673:34:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:673:34:got void *data drivers/staging/cxt1e1/linux.c:681:26: warning: incorrect type in argument 1 (different address spaces) drivers/staging/cxt1e1/linux.c:681:26:expected void [noderef] asn:1*to drivers/staging/cxt1e1/linux.c:681:26:got void *data drivers/staging/cxt1e1/linux.c:691:47: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:691:47:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:691:47:got void *data drivers/staging/cxt1e1/linux.c:738:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:738:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:738:33:got void *data drivers/staging/cxt1e1/linux.c:785:33: warning: incorrect type in argument 2 (different address spaces) drivers/staging/cxt1e1/linux.c:785:33:expected void const [noderef] asn:1*from drivers/staging/cxt1e1/linux.c:785:33:got void *data drivers/staging/cxt1e1/linux.c:839:14: warning: incorrect type in assignment (different address spaces) drivers/staging/cxt1e1/linux.c:839:14:expected
[PATCH 2/2] staging: nokia_h4p: nokia_core.c - removed IRQF_DISABLED macro
From: Anil Belur ask...@gmail.com - this patch removes the IRQF_DISABLED macro, as this is deprecated/noop. Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/nokia_h4p/nokia_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/nokia_h4p/nokia_core.c b/drivers/staging/nokia_h4p/nokia_core.c index 5e19cd6..840cc66 100644 --- a/drivers/staging/nokia_h4p/nokia_core.c +++ b/drivers/staging/nokia_h4p/nokia_core.c @@ -1141,7 +1141,7 @@ static int hci_h4p_probe(struct platform_device *pdev) err = devm_request_irq(pdev-dev, gpio_to_irq(info-host_wakeup_gpio), hci_h4p_wakeup_interrupt, IRQF_TRIGGER_FALLING | - IRQF_TRIGGER_RISING | IRQF_DISABLED, + IRQF_TRIGGER_RISING, hci_h4p_wkup, info); if (err 0) { dev_err(info-dev, hci_h4p: unable to get wakeup IRQ %d\n, -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/2] staging: media: bcm2048: radio-bcm2048.c - removed IRQF_DISABLED macro
From: Anil Belur ask...@gmail.com - this patch removes IRQF_DISABLED macro, as this is deprecated/noop. Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/media/bcm2048/radio-bcm2048.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/bcm2048/radio-bcm2048.c b/drivers/staging/media/bcm2048/radio-bcm2048.c index bbf236e..8760eca 100644 --- a/drivers/staging/media/bcm2048/radio-bcm2048.c +++ b/drivers/staging/media/bcm2048/radio-bcm2048.c @@ -2618,7 +2618,7 @@ static int bcm2048_i2c_driver_probe(struct i2c_client *client, if (client-irq) { err = request_irq(client-irq, - bcm2048_handler, IRQF_TRIGGER_FALLING | IRQF_DISABLED, + bcm2048_handler, IRQF_TRIGGER_FALLING, client-name, bdev); if (err 0) { dev_err(client-dev, Could not request IRQ\n); -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/2] staging: rtl8723au: core: rtw_ap.c - removed NULL pointer check before kfree()
From: Anil Belur ask...@gmail.com - as kfree() internally check for NULL, additional check it not required. Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/rtl8723au/core/rtw_ap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c b/drivers/staging/rtl8723au/core/rtw_ap.c index c8700b3..8714ae3 100644 --- a/drivers/staging/rtl8723au/core/rtw_ap.c +++ b/drivers/staging/rtl8723au/core/rtw_ap.c @@ -1270,8 +1270,7 @@ static void update_bcn_wps_ie(struct rtw_adapter *padapter) pnetwork-IELength = wps_offset + (wps_ielen+2) + remainder_ielen; } - if (pbackup_remainder_ie) - kfree(pbackup_remainder_ie); + kfree(pbackup_remainder_ie); } static void update_bcn_p2p_ie(struct rtw_adapter *padapter) -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 2/2] staging: rtl8723au: core: rtw_cmd.c - removed NULL pointer check before kfree()
From: Anil Belur ask...@gmail.com - as kfree() internally checks for NULL, additional check it not required. Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/rtl8723au/core/rtw_cmd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_cmd.c b/drivers/staging/rtl8723au/core/rtw_cmd.c index 1696cb8..b160780 100644 --- a/drivers/staging/rtl8723au/core/rtw_cmd.c +++ b/drivers/staging/rtl8723au/core/rtw_cmd.c @@ -516,8 +516,7 @@ int rtw_joinbss_cmd23a(struct rtw_adapter *padapter, psecnetwork = psecuritypriv-sec_bss; if (!psecnetwork) { - if (pcmd) - kfree(pcmd); + kfree(pcmd); res = _FAIL; -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v2 1/1] staging: lustre: libcfs: nidstrings.c - use ARRAY_SIZE macro
From: Anil Belur ask...@gmail.com - this patch replaces sizeof(a)/sizeof(a[0]) with the ARRAY_SIZE macro to get the number of nidstrings (and netstrfns) - v2: also for netstrfns Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/lustre/lustre/libcfs/nidstrings.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/nidstrings.c b/drivers/staging/lustre/lustre/libcfs/nidstrings.c index 87705ae..4fc7b45 100644 --- a/drivers/staging/lustre/lustre/libcfs/nidstrings.c +++ b/drivers/staging/lustre/lustre/libcfs/nidstrings.c @@ -74,8 +74,7 @@ libcfs_next_nidstring(void) spin_lock_irqsave(libcfs_nidstring_lock, flags); str = libcfs_nidstrings[libcfs_nidstring_idx++]; - if (libcfs_nidstring_idx == - sizeof(libcfs_nidstrings)/sizeof(libcfs_nidstrings[0])) + if (libcfs_nidstring_idx == ARRAY_SIZE(libcfs_nidstrings)) libcfs_nidstring_idx = 0; spin_unlock_irqrestore(libcfs_nidstring_lock, flags); @@ -198,7 +197,7 @@ static struct netstrfns libcfs_netstrfns[] = { {/* .nf_type */ -1}, }; -const int libcfs_nnetstrfns = sizeof(libcfs_netstrfns)/sizeof(libcfs_netstrfns[0]); +const int libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns); int libcfs_lo_str2addr(const char *str, int nob, __u32 *addr) -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/1] staging: speakup: main.c - use time_after()
From: Anil Belur ask...@gmail.com - this patch fixes jiffies comparision with a safer function to prevent any overflows Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/speakup/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c index 7de79d5..0cd3cdb 100644 --- a/drivers/staging/speakup/main.c +++ b/drivers/staging/speakup/main.c @@ -2067,7 +2067,7 @@ speakup_key(struct vc_data *vc, int shift_state, int keycode, u_short keysym, if (up_flag) goto out; if (last_keycode == keycode - last_spk_jiffy + MAX_DELAY jiffies) { + time_after(last_spk_jiffy + MAX_DELAY, jiffies)) { spk_close_press = 1; offset = spk_shift_table[shift_info + 32]; /* double press? */ -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/1] staging: speakup: speakup_dectlk.c - use time_before_eq()
From: Anil Belur ask...@gmail.com - this replaces jiffies comparision with safer function using time_after_eq() Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/speakup/speakup_dectlk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/speakup/speakup_dectlk.c b/drivers/staging/speakup/speakup_dectlk.c index af84868..c07c967 100644 --- a/drivers/staging/speakup/speakup_dectlk.c +++ b/drivers/staging/speakup/speakup_dectlk.c @@ -267,7 +267,7 @@ static void do_catch_up(struct spk_synth *synth) else if (ch = SPACE) { if (!in_escape strchr(,.!?;:, last)) spk_serial_out(PROCSPEECH); - if (jiffies = jiff_max) { + if (time_after_eq(jiffies, jiff_max)) { if (!in_escape) spk_serial_out(PROCSPEECH); spin_lock_irqsave(speakup_info.spinlock, -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/1] staging: lustre: libcfs: nidstrings.c - use ARRAY_SIZE macro
From: Anil Belur ask...@gmail.com - this patch replaces sizeof(a)/sizeof(a[0]) with the ARRAY_SIZE macro to get the number of nidstrings Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/lustre/lustre/libcfs/nidstrings.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/nidstrings.c b/drivers/staging/lustre/lustre/libcfs/nidstrings.c index 87705ae..13a2791 100644 --- a/drivers/staging/lustre/lustre/libcfs/nidstrings.c +++ b/drivers/staging/lustre/lustre/libcfs/nidstrings.c @@ -74,8 +74,7 @@ libcfs_next_nidstring(void) spin_lock_irqsave(libcfs_nidstring_lock, flags); str = libcfs_nidstrings[libcfs_nidstring_idx++]; - if (libcfs_nidstring_idx == - sizeof(libcfs_nidstrings)/sizeof(libcfs_nidstrings[0])) + if (libcfs_nidstring_idx == ARRAY_SIZE(libcfs_nidstrings)) libcfs_nidstring_idx = 0; spin_unlock_irqrestore(libcfs_nidstring_lock, flags); -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v2 1/1] staging: lustre: lnet: api-ni.c: fixed sparse warnings
From: Anil Belur ask...@gmail.com - this fixes few sparse warnings for missing static in functions: drivers/staging/lustre/lnet/lnet/api-ni.c:63:6: warning: symbol 'lnet_get_routes' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:69:6: warning: symbol 'lnet_get_networks' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:93:1: warning: symbol 'lnet_init_locks' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:102:1: warning: symbol 'lnet_fini_locks' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:180:6: warning: symbol 'lnet_assert_wire_constants' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:273:7: warning: symbol 'lnet_find_lnd_by_type' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:419:1: warning: symbol 'lnet_create_interface_cookie' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:450:1: warning: symbol 'lnet_res_container_cleanup' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:494:1: warning: symbol 'lnet_res_container_setup' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:612:1: warning: symbol 'lnet_prepare' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:917:1: warning: symbol 'lnet_shutdown_lndnis' was not declared. Should it be static? drivers/staging/lustre/lnet/lnet/api-ni.c:1034:1: warning: symbol 'lnet_startup_lndnis' was not declared. Should it be static? Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/lustre/lnet/lnet/api-ni.c | 24 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c index 3f878de..cd6792e 100644 --- a/drivers/staging/lustre/lnet/lnet/api-ni.c +++ b/drivers/staging/lustre/lnet/lnet/api-ni.c @@ -60,13 +60,13 @@ static int rnet_htable_size = LNET_REMOTE_NETS_HASH_DEFAULT; module_param(rnet_htable_size, int, 0444); MODULE_PARM_DESC(rnet_htable_size, size of remote network hash table); -char * +static char * lnet_get_routes(void) { return routes; } -char * +static char * lnet_get_networks(void) { char *nets; @@ -89,7 +89,7 @@ lnet_get_networks(void) return tcp; } -void +static void lnet_init_locks(void) { spin_lock_init(the_lnet.ln_eq_wait_lock); @@ -98,7 +98,7 @@ lnet_init_locks(void) mutex_init(the_lnet.ln_api_mutex); } -void +static void lnet_fini_locks(void) { } @@ -177,7 +177,7 @@ lnet_create_locks(void) return -ENOMEM; } -void lnet_assert_wire_constants (void) +static void lnet_assert_wire_constants (void) { /* Wire protocol assertions generated by 'wirecheck' * running on Linux robert.bartonsoftware.com 2.6.8-1.521 @@ -270,7 +270,7 @@ void lnet_assert_wire_constants (void) CLASSERT ((int)sizeof(((lnet_hdr_t *)0)-msg.hello.type) == 4); } -lnd_t * +static lnd_t * lnet_find_lnd_by_type (int type) { lnd_t *lnd; @@ -415,7 +415,7 @@ lnet_freelist_fini (lnet_freelist_t *fl) #endif /* LNET_USE_LIB_FREELIST */ -__u64 +static __u64 lnet_create_interface_cookie (void) { /* NB the interface cookie in wire handles guards against delayed @@ -446,7 +446,7 @@ lnet_res_type2str(int type) } } -void +static void lnet_res_container_cleanup(struct lnet_res_container *rec) { int count = 0; @@ -490,7 +490,7 @@ lnet_res_container_cleanup(struct lnet_res_container *rec) rec-rec_type = 0; /* mark it as finalized */ } -int +static int lnet_res_container_setup(struct lnet_res_container *rec, int cpt, int type, int objnum, int objsz) { @@ -608,7 +608,7 @@ lnet_res_lh_initialize(struct lnet_res_container *rec, lnet_libhandle_t *lh) int lnet_unprepare(void); -int +static int lnet_prepare(lnet_pid_t requested_pid) { /* Prepare to bring up the network */ @@ -913,7 +913,7 @@ lnet_ni_tq_credits(lnet_ni_t *ni) return credits; } -void +static void lnet_shutdown_lndnis (void) { int i; @@ -1030,7 +1030,7 @@ lnet_shutdown_lndnis (void) } } -int +static int lnet_startup_lndnis (void) { lnd_t *lnd; -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/1] staging: media: msi3101: sdr-msi3101.c - replace with time_before_eq()
From: Anil Belur ask...@gmail.com - this fix replaces jiffies interval comparision with safer function to avoid any overflow and wrap around ? Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/media/msi3101/sdr-msi3101.c | 16 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/msi3101/sdr-msi3101.c b/drivers/staging/media/msi3101/sdr-msi3101.c index 08d0d09..b828857 100644 --- a/drivers/staging/media/msi3101/sdr-msi3101.c +++ b/drivers/staging/media/msi3101/sdr-msi3101.c @@ -180,6 +180,7 @@ static int msi3101_convert_stream_504(struct msi3101_state *s, u8 *dst, { int i, i_max, dst_len = 0; u32 sample_num[3]; + unsigned long expires; /* There could be 1-3 1024 bytes URB frames */ i_max = src_len / 1024; @@ -208,7 +209,8 @@ static int msi3101_convert_stream_504(struct msi3101_state *s, u8 *dst, } /* calculate samping rate and output it in 10 seconds intervals */ - if ((s-jiffies_next + msecs_to_jiffies(1)) = jiffies) { + expires = s-jiffies_next + msecs_to_jiffies(1); + if (time_before_eq(expires, jiffies)) { unsigned long jiffies_now = jiffies; unsigned long msecs = jiffies_to_msecs(jiffies_now) - jiffies_to_msecs(s-jiffies_next); unsigned int samples = sample_num[i_max - 1] - s-sample; @@ -332,6 +334,7 @@ static int msi3101_convert_stream_384(struct msi3101_state *s, u8 *dst, { int i, i_max, dst_len = 0; u32 sample_num[3]; + unsigned long expires; /* There could be 1-3 1024 bytes URB frames */ i_max = src_len / 1024; @@ -360,7 +363,8 @@ static int msi3101_convert_stream_384(struct msi3101_state *s, u8 *dst, } /* calculate samping rate and output it in 10 seconds intervals */ - if ((s-jiffies_next + msecs_to_jiffies(1)) = jiffies) { + expires = s-jiffies_next + msecs_to_jiffies(1); + if (time_before_eq(expires, jiffies)) { unsigned long jiffies_now = jiffies; unsigned long msecs = jiffies_to_msecs(jiffies_now) - jiffies_to_msecs(s-jiffies_next); unsigned int samples = sample_num[i_max - 1] - s-sample; @@ -397,6 +401,7 @@ static int msi3101_convert_stream_336(struct msi3101_state *s, u8 *dst, { int i, i_max, dst_len = 0; u32 sample_num[3]; + unsigned long expires; /* There could be 1-3 1024 bytes URB frames */ i_max = src_len / 1024; @@ -425,7 +430,8 @@ static int msi3101_convert_stream_336(struct msi3101_state *s, u8 *dst, } /* calculate samping rate and output it in 10 seconds intervals */ - if ((s-jiffies_next + msecs_to_jiffies(1)) = jiffies) { + expires = s-jiffies_next + msecs_to_jiffies(1); + if (time_before_eq(expires, jiffies)) { unsigned long jiffies_now = jiffies; unsigned long msecs = jiffies_to_msecs(jiffies_now) - jiffies_to_msecs(s-jiffies_next); unsigned int samples = sample_num[i_max - 1] - s-sample; @@ -460,6 +466,7 @@ static int msi3101_convert_stream_252(struct msi3101_state *s, u8 *dst, { int i, i_max, dst_len = 0; u32 sample_num[3]; + unsigned long expires; /* There could be 1-3 1024 bytes URB frames */ i_max = src_len / 1024; @@ -488,7 +495,8 @@ static int msi3101_convert_stream_252(struct msi3101_state *s, u8 *dst, } /* calculate samping rate and output it in 10 seconds intervals */ - if ((s-jiffies_next + msecs_to_jiffies(1)) = jiffies) { + expires = s-jiffies_next + msecs_to_jiffies(1); + if (time_before_eq(expires, jiffies)) { unsigned long jiffies_now = jiffies; unsigned long msecs = jiffies_to_msecs(jiffies_now) - jiffies_to_msecs(s-jiffies_next); unsigned int samples = sample_num[i_max - 1] - s-sample; -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/1] staging: ozwpan: ozproto.c fix for WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2)
From: Anil Belur ask...@gmail.com Fixed the warning message by replacing memcpy() with ether_addr_copy() Signed-off-by: Anil Belur ask...@gmail.com --- drivers/staging/ozwpan/ozproto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/ozwpan/ozproto.c b/drivers/staging/ozwpan/ozproto.c index f09acd0..1c80132 100644 --- a/drivers/staging/ozwpan/ozproto.c +++ b/drivers/staging/ozwpan/ozproto.c @@ -792,7 +792,7 @@ int oz_get_pd_list(struct oz_mac_addr *addr, int max_count) if (count = max_count) break; pd = container_of(e, struct oz_pd, link); - memcpy(addr[count++], pd-mac_addr, ETH_ALEN); + ether_addr_copy((u8 *)addr[count++], pd-mac_addr); } spin_unlock_bh(g_polling_lock); return count; -- 1.9.0 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel