Chaehyun Lim [Tue, 11 Aug 2015 01:32:42 +0000 (10:32 +0900)]
staging: wilc1000: remove WILC_FREE
Remove WILC_FREE that is replaced by kfree.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Tue, 11 Aug 2015 01:32:41 +0000 (10:32 +0900)]
staging: wilc1000: use kfree instead of WILC_FREE
Use kfree instead of WILC_FREE.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Tue, 11 Aug 2015 01:32:40 +0000 (10:32 +0900)]
staging: wilc1000: remove unused memory functions
This patch remove unused memory functions because some macros with this
memory function are deleted.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Tue, 11 Aug 2015 01:32:39 +0000 (10:32 +0900)]
staging: wilc1000: wilc_memory.h: remove unused define
Remove unused define macro that is never used.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Raphaël Beamonte [Fri, 14 Aug 2015 17:08:32 +0000 (13:08 -0400)]
Staging: gdm72xx: usb_ids: fix a macro coding style error
Fix a macro with complex value coding style error.
Signed-off-by: Raphaël Beamonte <raphael.beamonte@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Mateusz Kulikowski [Wed, 12 Aug 2015 19:54:49 +0000 (21:54 +0200)]
staging: rtl8192e: Fix log spamming in rtl8192_hard_data_xmit
This patch fixes issue generated by commit
ca93dcba3a92
("staging: rtl8192e: Remove assert() macro")
One negation was missed in conversion, therefore
asserted message was always printed.
For 1MB file downloaded via http, ~500 messages
were generated.
Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Junsu Shin [Tue, 11 Aug 2015 22:44:56 +0000 (17:44 -0500)]
staging: vme: devices: add spaces around '-'
This is a patch to the vme_pio2_core.c that adds spaces around '-'.
Signed-off-by: Junsu Shin <jjunes0@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Junsu Shin [Tue, 11 Aug 2015 22:07:14 +0000 (17:07 -0500)]
staging: vme: devices: fix NULL comparison style
This is a patch to vme_pio2_core.c that fixes up the NULL comparison style.
Signed-off-by: Junsu Shin <jjunes0@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Junsu Shin [Tue, 11 Aug 2015 21:36:05 +0000 (16:36 -0500)]
staging: vme: devices: remove blank line after open brace
This is a patch to the vme_pio2_core.c that removes blank line after open brace '{'.
Signed-off-by: Junsu Shin <jjunes0@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Junsu Shin [Tue, 11 Aug 2015 20:02:07 +0000 (15:02 -0500)]
staging: vme: devices: remove multiple blank lines
This is a patch to vm2_pio2_core.c that removes multiple blanks lines.
Signed-off-by: Junsu Shin <jjunes0@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Michał Kępień [Tue, 11 Aug 2015 12:07:00 +0000 (14:07 +0200)]
staging: unisys: make visorbus_dev_groups static
visorbus_dev_groups is not referenced outside visorbus_main.c, so it can
be declared static.
Found using sparse.
Signed-off-by: Michał Kępień <kernel@kempniu.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Prarit Bhargava [Mon, 10 Aug 2015 22:34:10 +0000 (18:34 -0400)]
drivers: staging: unisys: add MODULE_DEVICE_TABLE and temporary MODULE_ALIAS lines to visornic
This patch adds an module alias and a MODULE_DEVICE_TABLE to autoload the
visornic driver when an appropriate device is created by the visorbus.
Note, the correct way of fixing this is adding functionality to
scripts/mod/file2alias.c for the visorbus bus type.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:30 +0000 (14:51 -0700)]
staging: rtl8192u: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:23 +0000 (14:51 -0700)]
staging: mt29f_spinand: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:17 +0000 (14:51 -0700)]
staging: dgnc: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:19 +0000 (14:51 -0700)]
staging: ft1000: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignment
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:33 +0000 (14:51 -0700)]
staging: wilc1000: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:29 +0000 (14:51 -0700)]
staging: rtl8192e: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:28 +0000 (14:51 -0700)]
staging: rtl8188eu: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:25 +0000 (14:51 -0700)]
staging: nvec: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:18 +0000 (14:51 -0700)]
staging: fbtft: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:26 +0000 (14:51 -0700)]
staging: octeon: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: David Daney <david.daney@cavium.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:31 +0000 (14:51 -0700)]
staging: rtl8712: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:34 +0000 (14:51 -0700)]
staging: xgifb: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ioan-Adrian Ratiu [Fri, 14 Aug 2015 09:57:06 +0000 (12:57 +0300)]
staging: lustre: ptlrpc: add missing include directive
Without including ptlrpc_internal.h, GCC gives prototype warnings
"pack_generic.c:642:5: warning: no previous prototype for ..."
and sparse also complains "pack_generic.c:642:5: warning: symbol
'lustre_unpack_req_ptlrpc_body' was not declared. ..."
Signed-off-by: Ioan-Adrian Ratiu <adi@adirat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Swee Hua Law [Tue, 11 Aug 2015 13:32:29 +0000 (21:32 +0800)]
staging: lustre: Do not init global to NULL
Remove "= NULL" in global variable
Signed-off-by: Swee Hua Law <sweehua81@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:21 +0000 (14:51 -0700)]
staging: lustre: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Swee Hua Law [Mon, 10 Aug 2015 13:54:18 +0000 (21:54 +0800)]
staging: lustre: checkpatch: argument alignment for readability
Fix checkpatch problem: move last argument of the hlist..() back to same line
Signed-off-by: Swee Hua Law <sweehua81@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Swee Hua Law [Mon, 10 Aug 2015 13:54:17 +0000 (21:54 +0800)]
staging: lustre: checkpatch: move */ block comment to next line
Fix checkpatch problem: move */ from end of line to new line
Signed-off-by: Swee Hua Law <sweehua81@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Swee Hua Law [Mon, 10 Aug 2015 13:54:16 +0000 (21:54 +0800)]
staging: lustre: checkpatch: symbol == NULL should be !symbol
Fix checkpatch problem: change == NULL comparison to !symbol
Signed-off-by: Swee Hua Law <sweehua81@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Swee Hua Law [Mon, 10 Aug 2015 13:54:15 +0000 (21:54 +0800)]
staging: lustre: checkpatch: do not init global to NULL
Fix checkpatch problem: remove NULL assignment fro global variable
Signed-off-by: Swee Hua Law <sweehua81@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Patrick Boettcher [Mon, 10 Aug 2015 08:25:09 +0000 (10:25 +0200)]
staging: lustre-libcfs: make static-variable constant
This static can be made constant as it is never modified.
Found during sparse-cleanup.
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Patrick Boettcher [Mon, 10 Aug 2015 08:25:08 +0000 (10:25 +0200)]
staging: lustre-libcfs: fix sparse warning
Fix sparse warnings of the following type:
warning: symbol '....' was not declared. Should it be static?
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Shraddha Barke [Mon, 10 Aug 2015 08:00:35 +0000 (13:30 +0530)]
Staging: unisys: Remove useless cast on void pointer
void pointers do not need to be cast to other pointer types.
The semantic patch used to find this:
@r@
expression x;
void* e;
type T;
identifier f;
@@
(
*((T *)e)
|
((T *)x)[...]
|
((T *)x)->f
|
- (T *)
e
)
Signed-off-by: Shraddha Barke <shraddha.6596@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Shraddha Barke [Mon, 10 Aug 2015 08:00:34 +0000 (13:30 +0530)]
Staging: lustre: libcfs: Remove unnecessary cast on void*
This patch does away with the cast on void * as it is unnecessary.
Semantic patch used is as follows:
@r@
expression x;
void* e;
type T;
identifier f;
@@
(
*((T *)e)
|
((T *)x)[...]
|
((T *)x)->f
|
- (void *)
e
)
Signed-off-by: Shraddha Barke <shraddha.6596@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Shraddha Barke [Mon, 10 Aug 2015 08:00:33 +0000 (13:30 +0530)]
Staging: wilc1000: Remove null check before kfree
kfree on NULL pointer is a no-op.
This patch uses the following semantic patch to find such an instance
where NULL check is present before kfree.
// <smpl>
@@ expression E; @@
- if (E != NULL) { kfree(E); }
+ kfree(E);
@@ expression E; @@
- if (E != NULL) { kfree(E); E = NULL; }
+ kfree(E);
+ E = NULL;
// </smpl>smpl>
Signed-off-by: Shraddha Barke <shraddha.6596@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jacob Kiefer [Sun, 9 Aug 2015 19:20:28 +0000 (15:20 -0400)]
staging: rtl8723au: Fix Sparse errors in rtw_security.c
This patch fixes the following sparse errors:
CHECK drivers/staging/rtl8723au/core/rtw_security.c
drivers/staging/rtl8723au/core/rtw_security.c:189:39: \
warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_security.c:189:39: \
expected unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:189:39: \
got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:197:39: \
warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_security.c:197:39: \
expected unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:197:39: \
got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:682:39: \
warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_security.c:682:39: \
expected unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:682:39: \
got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:694:39: \
warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_security.c:694:39: \
expected unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:694:39: \
got restricted __le32 [usertype] <noident>
Signed-off-by: Jacob Kiefer <jtk54@cornell.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:22 +0000 (11:33 +0900)]
staging: wilc1000: remove wilc_strutils.c and wilc_strutils.h
Remove wilc_strutils.c and wilc_strutils.h that are not needed.
wilc_strutils.o is also removed in Makefile.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:21 +0000 (11:33 +0900)]
staging: wilc1000: remove WILC_memcpy_INTERNAL
Remove WILC_memcpy_INTERNAL that is used in the WILC_memcpy
because WILC_memcpy is replaced by memcpy.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:20 +0000 (11:33 +0900)]
staging: wilc1000: remove WILC_memcpy function
Remove WILC_memcpy function that is changed to memcpy.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:19 +0000 (11:33 +0900)]
staging: wilc1000: use memcpy instead of WILC_memcpy
Use memcpy instead of WILC_memcpy that is a custom function.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:18 +0000 (11:33 +0900)]
staging: wilc1000: remove WILC_strncmp function
Remove WILC_strncmp function that is changed to strncmp.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:17 +0000 (11:33 +0900)]
staging: wilc1000: use strncmp instead of WILC_strncmp
Use strncmp instead of WILC_strncmp.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:16 +0000 (11:33 +0900)]
staging: wilc1000: remove WILC_strncpy function
Remove WILC_strncpy function that is changed to strncpy.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:15 +0000 (11:33 +0900)]
staging: wilc1000: Use strncpy instead of WILC_strncpy
Use strncpy instead of WILC_strncpy that is a custom function
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:14 +0000 (11:33 +0900)]
staging: wilc1000: remove WILC_strlen function
Remove WILC_strlen function that is changed to strlen.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:13 +0000 (11:33 +0900)]
staging: wilc1000: use strlen instead of WILC_strlen
Use strlen instead of WILC_strlen that is a custom function.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chaehyun Lim [Mon, 10 Aug 2015 02:33:12 +0000 (11:33 +0900)]
staging: wilc1000: remove commented code
Remove commented code that is not used.
Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Dan Carpenter [Fri, 14 Aug 2015 08:54:05 +0000 (11:54 +0300)]
staging: comedi: me4000: use bitwise AND instead of logical
This was supposed to bitwise AND but there is a typo.
Fixes: 1a02387063fb ('staging: comedi: me4000: remove 'board' from me4000_ai_insn_read()')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Tue, 11 Aug 2015 12:05:10 +0000 (13:05 +0100)]
staging: comedi: adl_pci7x3x: fix digital output on PCI-7230
The "adl_pci7x3x" driver replaced the "adl_pci7230" and "adl_pci7432"
drivers in commits
8f567c373c4b ("staging: comedi: new adl_pci7x3x
driver") and
657f77d173d3 ("staging: comedi: remove adl_pci7230 and
adl_pci7432 drivers"). Although the new driver code agrees with the
user manuals for the respective boards, digital outputs stopped working
on the PCI-7230. This has 16 digital output channels and the previous
adl_pci7230 driver shifted the 16 bit output state left by 16 bits
before writing to the hardware register. The new adl_pci7x3x driver
doesn't do that. Fix it in `adl_pci7x3x_do_insn_bits()` by checking
for the special case of the subdevice having only 16 channels and
duplicating the 16 bit output state into both halves of the 32-bit
register. That should work both for what the board actually does and
for what the user manual says it should do.
Fixes: 8f567c373c4b ("staging: comedi: new adl_pci7x3x driver")
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Cc: <stable@vger.kernel.org> # 3.13+, needs backporting for 3.7 to 3.12
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:50 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: remove "magic" numbers in apci3501_read_insn_timer()
Use register bit defines from addi_tcw.h to remove the "magic" numbers.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:49 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: remove "magic" numbers in apci3501_write_insn_timer()
Use register bit defines from addi_tcw.h to remove the "magic" numbers.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:48 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: remove "magic" numbers in apci3501_config_insn_timer()
Use register bit defines from addi_tcw.h to remove the "magic" numbers.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:47 +0000 (13:25 -0700)]
staging: comedi: addi_apci_3501: remove "magic" numbers in apci3501_interrupt()
Use register bit defines from addi_tcw.h to remove the "magic" numbers.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:46 +0000 (13:25 -0700)]
staging: comedi: addi_apci_3501: use addi_tcw.h for the timer registers
The APCI3501_TIMER_* register defines in this driver are that same as
the ADDI_TCW_* defines with an additional offset.
Add a 'tcw' (timer/counter/watchdog) member to the private data to
hold the address for the iobase of the registers. Use that and the
defines from addi_tcw.h to address the registers.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:45 +0000 (13:25 -0700)]
staging: comedi: addi_apci_3501: rename CamelCase vars in apci3501_interrupt()
Rename the CamelCase local variables.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:44 +0000 (13:25 -0700)]
staging: comedi: addi_apci_3501: prefer using the BIT macro
Change the register bit defines to use the BIT macro.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:43 +0000 (13:25 -0700)]
staging: comedi: addi_apci_3501: rename private data 'i_IobaseAmcc'
Rename this CamelCase member of the private data.
Also, fix the type of the member, it holds a pci_resource_start()
address and should be an unsigned long.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:42 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: refactor apci3501_config_insn_timer()
The handling for the watchdog and timer modes is very similar. Refactor
this function to use a common code path for both modes.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:41 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: rename 'ul_Command1' in apci3501_config_insn_timer()
Rename this CamelCase local variable.
For aesthetics, split the mask/set operations.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:40 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: refactor apci3501_read_insn_timer()
The handling of the ADDIDATA_WATCHDOG and ADDIDATA_TIMER is identical.
Refactor this function to use a common code path for both timer modes.
Remove the incorrect dev_err() noise. The subdevice is valid but the
timer_mode is not supported.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:39 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: refactor apci3501_write_insn_timer()
The handling of the ADDIDATA_WATCHDOG and ADDIDATA_TIMER is identical
except for the "stop" operation. Refactor this function to use a common
code path for both timer modes.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:38 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: rename 'ul_Command1' in apci3501_write_insn_timer()
Rename this CamelCase local variable.
For aesthetics, split the mask/set operations.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:37 +0000 (13:25 -0700)]
staging: comedi: addi_apci_3501: rename private data 'b_TimerSelectMode'
Rename this CamelCase member of the private data.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Wed, 12 Aug 2015 20:25:36 +0000 (13:25 -0700)]
staging: comedi: hwdrv_apci3501: remove useless read/mask to stop watchdog
The watchdog is stopped in apci3501_write_insn_timer() by writing a 0 to
the timer control register. There is no need to read the register first
and mask it (as done when the timer is used as a timer).
Reported-by: coverity (CID 1227052)
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Mon, 10 Aug 2015 20:13:59 +0000 (13:13 -0700)]
staging: comedi: comedi_fops: absorb comedi_free_board_minor()
This function is only called by comedi_cleanup_board_minors() and the
'minor' parameter will always be < COMEDI_NUM_BOARD_MINORS.
For aesthetics, absorb the function and remove the unnecessary BUG_ON().
Split the comedi_clear_board_minor() out to clarify that the return value
is a comedi_device pointer.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Mon, 10 Aug 2015 20:14:00 +0000 (13:14 -0700)]
staging: comedi: comedi_fops: remove BUG_ON() in comedi_dev_get_from_board_minor()
This function is only called by comedi_dev_get_from_minor() and the 'minor'
value will always be < COMEDI_NUM_BOARD_MINORS. Remove the unnecessary
BUG_ON().
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Mon, 10 Aug 2015 20:14:01 +0000 (13:14 -0700)]
staging: comedi: comedi_fops: remove BUG_ON() in comedi_free_subdevice_minor()
Drivers should not crash the kernel.
This function is only called by comedi_device_detach_cleanup() and the
s->minor will always be valid or the device wouldn't have attached in
the first place.
Leave the checks for safety in accessing the comedi_subdevice_minor_table
array but remove the BUG_ON() calls.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Mon, 10 Aug 2015 20:14:02 +0000 (13:14 -0700)]
staging: comedi: comedi_fops: remove BUG_ON() in comedi_cleanup()
The BUG_ON() checks in this function are not necessary.
comedi_cleanup_board_minors() clears all the entries in the
comedi_board_minor_table array and will call comedi_device_cleanup()
for all attached devices. comedi_device_cleanup() will then
clear the entries in the comedi_subdevice_minor_table array with
comedi_free_subdevice_minor().
Remove the BUG_ON(), drivers should not crash the kernel.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Mon, 10 Aug 2015 20:14:03 +0000 (13:14 -0700)]
staging: comedi: comedi_fops: remove remaining BUG_ON() checks
The BUG_ON() checks in comedi_subdevice_from_minor() and
comedi_dev_get_from_subdevice_minor() are not necessary.
The 'minor' numbers for a given comedi driver are setup by
comedi_dev_get_from_subdevice_minor() and will always be in
the correct range.
Drivers should not crash the kernel, remove the BUG_ON() checks.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:14 +0000 (11:45 -0700)]
staging: comedi: hwdrv_apci1564: remove magic numbers in apci1564_counter_insn_read()
Use the bit defines from addi_tcw.h to remove the magic numbers in this
function.
Add the missing define for ADDI_TCW_STATUS_HARDWARE_TRIG.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:13 +0000 (11:45 -0700)]
staging: comedi: hwdrv_apci1564: tidy up apci1564_counter_insn_write()
Clear the gate and trig bits in the common code path.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:12 +0000 (11:45 -0700)]
staging: comedi: hwdrv_apci1564: fix counter "mode" setting
According to the (broken) original driver, data[4] passed to this function
is the "timer mode". It appears the original code used the wrong shift to
set the bits.
Use the ADDI_TCW_CTRL_MODE() macro so that the correct bits get set.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:11 +0000 (11:45 -0700)]
staging: comedi: hwdrv_apci1564: remove useless code in apci1564_counter_insn_config()
The gate, trig, and ena, bits in the 'ctrl' are cleared at the start of
the function. There is no reason clear these bits for each step.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:10 +0000 (11:45 -0700)]
staging: comedi: hwdrv_apci1564: remove magic number in apci1564_timer_insn_read()
Use the bit define from addi_tcw.h to remove the magic number.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:09 +0000 (11:45 -0700)]
staging: comedi: hwdrv_apci1564: tidy up apci1564_timer_insn_write()
Clear the gate and trig bits in the common code path.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:08 +0000 (11:45 -0700)]
staging: comedi: hwdrv_apci1564: use addi_tcw.h defines
Use the ADDI_TCW_CTRL_REG bit defines in addi_tcw.h to remove the "magic"
numbers.
Add some missing bit defines and mask defines to addi_tcw.h to help
cleanup the code.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:07 +0000 (11:45 -0700)]
staging: comedi: addi_apci_1564: tidy up APCI1564_EEPROM_REG bit defines
Use the BIT() macro to define the bits.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:06 +0000 (11:45 -0700)]
staging: comedi: addi_apci_1564: define the APCI1564_DI_IRQ_REG bits
Define the bits in this register. Remove the old defines in hwdrv_apci1564.c.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:05 +0000 (11:45 -0700)]
staging: comedi: addi_apci_1564: define the APCI1564_DO_IRQ_REG bits
Define the bits in this register.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:04 +0000 (11:45 -0700)]
staging: comedi: addi_apci_1564: define the APCI1564_DO_INT_STATUS_REG bits
Define the bits in this register.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:03 +0000 (11:45 -0700)]
staging: comedi: addi_apci_1564: define the APCI1564_DO_INT_CTRL_REG bits
Define the bits in this register. Remove the old defines in hwdrv_apci1564.c.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:02 +0000 (11:45 -0700)]
staging: comedi: hwdrv_apci1564: remove unused defines
These defines are not used. Remove them.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten [Fri, 7 Aug 2015 18:45:01 +0000 (11:45 -0700)]
staging: comedi: addi_tcw.h: prefer using the BIT macro
Use the BIT macro to define the register bits.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Aleksei Fedotov [Fri, 14 Aug 2015 19:34:37 +0000 (22:34 +0300)]
staging: speakup: Fix warning reported by checkpatch
This patch fixes the checkpatch.pl warnings:
WARNING: Block comments use a trailing */ on a separate line
WARNING: Block comments use * on subsequent lines
Signed-off-by: Aleksey Fedotov <lexa@cfotr.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:32 +0000 (14:51 -0700)]
staging: speakup: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:27 +0000 (14:51 -0700)]
staging: olpc_dcon: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:24 +0000 (14:51 -0700)]
staging: netlogic: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Mike Rapoport [Wed, 12 Aug 2015 18:08:50 +0000 (21:08 +0300)]
staging: android: update TODO
- remove "make sure things build as modules properly"
- remove kuid_t related remarks, they were relevant for logger, but it
is gone half year ago
- remove dead e-mail address of Brian Swetland
- add e-mail addresses of Arve Hjønnevåg and Riley Andrews
Signed-off-by: Mike Rapoport <mike.rapoport@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:16 +0000 (14:51 -0700)]
staging: android: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cristina Opriceana [Tue, 11 Aug 2015 10:20:53 +0000 (13:20 +0300)]
Staging: iio: trigger: Use braces on both branches of if statement
Fix style issue related to missing braces, detected by checkpatch.pl.
Signed-off-by: Cristina Opriceana <cristina.opriceana@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cristina Opriceana [Tue, 11 Aug 2015 10:18:18 +0000 (13:18 +0300)]
Staging: iio: trigger: Alignment should match open parenthesis
Fix alignment for function parameters as suggested by checkpatch.pl.
Signed-off-by: Cristina Opriceana <cristina.opriceana@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:20 +0000 (14:51 -0700)]
staging: iio: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Adrian Remonda [Fri, 14 Aug 2015 10:18:04 +0000 (12:18 +0200)]
Staging: most: aim-cdev/cdev.c. Fix "missing static keyword" warnings
This is a patch to the most/aim_cdev.c file. It makes several
local functions and structures static to prevent global visibility.
Signed-off-by: Adrian Remonda <adrianremonda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Adrian Remonda [Fri, 14 Aug 2015 10:18:02 +0000 (12:18 +0200)]
Staging: most: hdm-usb/hdm_usb.c. Fix "missing static keyword" warnings
This is a patch to the most/hdm-usb/hdm_usb.c file. It
makes several local functions and structures static to prevent global
visibility.
Signed-off-by: Adrian Remonda <adrianremonda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Adrian Remonda [Fri, 14 Aug 2015 10:18:01 +0000 (12:18 +0200)]
Staging: most: mostcore/core.c. Fix "Using plain integer as NULL pointer" warnings
This patch fixes the warning generated by sparse: "Using plain integer
as NULL pointer" by replacing the pointer test against 0 with a logical test.
Signed-off-by: Adrian Remonda <adrianremonda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Adrian Remonda [Fri, 14 Aug 2015 10:18:00 +0000 (12:18 +0200)]
Staging: most: mostcore/core.c. Fix "missing static keyword" warnings
This is a patch to the mostcore/core.c file. It makes
several local functions and structures static to prevent global
visibility.
Signed-off-by: Adrian Remonda <adrianremonda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Joe Perches [Mon, 10 Aug 2015 21:51:22 +0000 (14:51 -0700)]
staging: most: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tomas Melin [Sun, 9 Aug 2015 14:08:41 +0000 (17:08 +0300)]
staging/most: fix return value for DIM_GetChannelState
Return NULL instead of 0 for invalid input.
Signed-off-by: Tomas Melin <tomas.melin@iki.fi>
Acked-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Oleg Drokin [Sun, 9 Aug 2015 00:09:06 +0000 (20:09 -0400)]
staging/lustre/llite: get rid of unused ll_super_blocks list
ll_super_blocks became unused quite a while ago with switch
to the new CLIO code.
So this patch removes the list, ll_sb_lock spinlock that guards it
and superblock info ll_list linkage.
Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>