summaryrefslogtreecommitdiff
path: root/drivers/staging/rtl8187se
AgeCommit message (Collapse)Author
2013-10-28staging: rtl8187se: use netdev_warn instead of printkTeodora Baluta
This patch fixes this type of checkpatch warnings: WARNING: Prefer netdev_warn(netdev, ... then dev_warn(dev, ... then pr_warn(... to printk(KERN_WARNING ... Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: use netdev_info instead of printkTeodora Baluta
WARNING: Prefer netdev_info(netdev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: prefer netdev_dbg to printkTeodora Baluta
This patch fixes the following checkpatch warning: WARNING: Prefer netdev_dbg(netdev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: fix lines over 80 charactersTeodora Baluta
This patch fixes lines that are well over 80 characters long and silences the checkpatch warning. Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: fixup multi-line commentTeodora Baluta
This patch ensures that all multi-line comments are consistent with the Linux kernel coding style for long (multi-line) comments. Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: remove an unnecessary line continuationTeodora Baluta
This patch fixed the following checkpatch warning: WARNING: Avoid unnecessary line continuations Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: fix conditional statement indentTeodora Baluta
This patch fixes the following checkpatch warning: WARNING: suspect code indent for conditional statements (24, 26) Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: else should follow close brace '}Teodora Baluta
This patch fixes the following checkpatch warning: ERROR: else should follow close brace '}' Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: fix comments over 80 charactersTeodora Baluta
This patch rearranges comments that are over 80 characters. Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: open brace following function declarations go on the ↵Teodora Baluta
next line This patch fixes the following checkpatch error: staging/rtl8187se/ieee80211/ieee80211_tx.c:232: ERROR: open brace '{' following function declarations go on the next line Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: fix checkpatch space and tab warningsTeodora Baluta
This patch fixes checkpatch issues regarding space and tab like: WARNING: please, no spaces at the start of a line ERROR: code indent should use tabs where possible WARNING: suspect code indent for conditional statements (2, 4) ERROR: space required before the open parenthesis '(' ERROR: space required after that ',' (ctx:VxO) Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: use C89 comment style instead of C99-styleTeodora Baluta
This patch fixes the comments in file ieee80211/ieee80211_tx.c from driver rtl8187se, as reported by checkpatch. The C89 comments that contain code are deleted. Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-28staging: rtl8187se: (foo*) should be (foo *)Teodora Baluta
Fix checkpatch error: ERROR: "(foo*)" should be "(foo *)" Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-19staging: rtl8187se: checkpatch cleanupsTeodora Baluta
Fix the following checkpatch.pl errors: drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c:890: "foo* bar" should be "foo *bar" drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c:944: "foo* bar" should be "foo *bar" Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-19staging: rtl8187se: fix static sparse warningsTeodora Baluta
This patch fixes sparse warnings regarding functions that should be static in driver rtl8187se. Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-19staging: rtl8187se: add missing __iomem annotationTeodora Baluta
Fix the following type of sparse warnings: drivers/staging/rtl8187se/r8180_core.c:163:48: warning: incorrect type in argument 1 (different address spaces) drivers/staging/rtl8187se/r8180_core.c:163:48: expected void const volatile [noderef] <asn:2>*addr drivers/staging/rtl8187se/r8180_core.c:163:48: got unsigned char [usertype] * Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-19staging: rtl8187se: use gfp_t instead of intTeodora Baluta
Fix the following type of sparse warnings: drivers/staging/rtl8187se/ieee80211/ieee80211_tx.c:249:17: warning: incorrect type in argument 2 (different base types) drivers/staging/rtl8187se/ieee80211/ieee80211_tx.c:249:17: expected restricted gfp_t [usertype] flags drivers/staging/rtl8187se/ieee80211/ieee80211_tx.c:249:17: got int [signed] gfp_mask Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-11Staging: rtl8187se: suspect code indent for conditional statements in ↵Ebru Akagunduz
r8185b_init.c Fix checkpatch.pl issues with suspect code indent for conditional statements in r8185b_init.c Signed-off-by: Ebru Akagunduz <ebru.akagunduz@gmail.com> Reviewed-by: Zach Brown <zab@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-11Staging: rtl8187se: fix avoid unnecessary line continuations in r8185b_init.cEbru Akagunduz
Fix checkpatch.pl issues with avoid unnecessary line continuations in r8185b_init.c Signed-off-by: Ebru Akagunduz <ebru.akagunduz@gmail.com> Reviewed-by: Zach Brown <zab@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-01Staging: rtl8187se: fixed coding style issuesAdam Rall
Fixed checkpatch.pl errors in r8180_dm.c. Signed-off-by: Adam Rall <adam.rall4@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25staging: rtl8187se: Remove redundant pci_set_drvdataSachin Kamat
Driver core sets driver data to NULL upon failure or remove. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25staging: rtl8187se: Change variable type to boolPeter Senna Tschudin
The variable ownbit_flag is only assigned the values true and false. Change its type to bool. The simplified semantic patch that find this problem is as follows (http://coccinelle.lip6.fr/): @exists@ type T; identifier b; @@ - T + bool b = ...; ... when any b = \(true\|false\) Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-28staging: Update e-mail address for Andrea MerelloAndrea Merello
A lot of files contain reference to my old e-mail address. Now I'm going not to read mail from it anymore, so update it with my current address everywhere. Signed-off-by: Andrea Merello <andrea.merello@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-23staging: rtl8187se: Remove pt_regs * irq handler parameternavin patidar
struct pt_regs pointer is no longer passed as a irq handler argument. v2: remove rtl8180_interrupt cast to (void *) . Signed-off-by: navin patidar <navinp@cdac.in> Cc: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-06-18staging/rtl8187se: Convert __list_for_each use to list_for_eachDave Jones
Also remove commented out list manipulation Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-05-05staging: single_open() leaksAl Viro
Cc: stable@vger.kernel.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-05-01proc: Supply an accessor for getting the data from a PDE's parentDavid Howells
Supply an accessor function for getting the private data from the parent proc_dir_entry struct of the proc_dir_entry struct associated with an inode. ReiserFS, for instance, stores the super_block pointer in the proc directory it makes for that super_block, and a pointer to the respective seq_file show function in each of the proc files in that directory. This allows a reduction in the number of file_operations structs, open functions and seq_operations structs required. The problem otherwise is that each show function requires two pieces of data but only has storage for one per PDE (and this has no release function). Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> cc: Jerry Chuang <jerry-chuang@realtek.com> cc: Maxim Mikityanskiy <maxtram95@gmail.com> cc: YAMANE Toshiaki <yamanetoshi@gmail.com> cc: linux-wireless@vger.kernel.org cc: linux-scsi@vger.kernel.org cc: devel@driverdev.osuosl.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-05-01rtl8187se: Use a dir under /proc/net/r8180/David Howells
Create a dir under /proc/net/r8180/ named for the device and create that device's files under there. This means that there won't be a problem for multiple devices in the system (if such is possible) and it means we don't need to save the 'device directory' PDE any more as we can just do a proc subtree removal. Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> cc: Maxim Mikityanskiy <maxtram95@gmail.com> cc: YAMANE Toshiaki <yamanetoshi@gmail.com> cc: linux-wireless@vger.kernel.org cc: devel@driverdev.osuosl.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-04-29rtl8187se: Don't use create_proc_read_entry()David Howells
Don't use create_proc_read_entry() as that is deprecated, but rather use proc_create_data() and seq_file instead. Whilst we're at it, reduce the number of show functions where we can share them. Question: Do any of the registers read by proc_get_registers() have side effects upon reading? If so, locking will be required. Signed-off-by: David Howells <dhowells@redhat.com> cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> cc: Maxim Mikityanskiy <maxtram95@gmail.com> cc: YAMANE Toshiaki <yamanetoshi@gmail.com> cc: Bill Pemberton <wfp5p@virginia.edu> cc: Andrea Merello <andreamrl@tiscali.it> cc: linux-wireless@vger.kernel.org cc: devel@driverdev.osuosl.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-02-15staging/rtl8187se: Mark functions as static to silence sparsePeter Huewe
Sparse complains that some functions can be declared as static: 123:6: warning: symbol 'PlatformIOWrite1Byte' was not declared. Should it be static? 129:6: warning: symbol 'PlatformIOWrite2Byte' was not declared. Should it be static? 135:6: warning: symbol 'PlatformIOWrite4Byte' was not declared. Should it be static? 178:6: warning: symbol 'SetOutputEnableOfRfPins' was not declared. Should it be static? 354:6: warning: symbol 'ZEBRA_Config_85BASIC_HardCode' was not declared. Should it be static? 655:6: warning: symbol 'InitTxPwrTracking87SE' was not declared. Should it be static? 665:6: warning: symbol 'PhyConfig8185' was not declared. Should it be static? 692:6: warning: symbol 'HwConfigureRTL8185' was not declared. Should it be static? 817:4: warning: symbol 'GetSupportedWirelessMode8185' was not declared. Should it be static? 822:6: warning: symbol 'ActUpdateChannelAccessSetting' was not declared. Should it be static? 857:6: warning: symbol 'ActSetWirelessMode8185' was not declared. Should it be static? 914:6: warning: symbol 'MgntDisconnectIBSS' was not declared. Should it be static? 940:6: warning: symbol 'MlmeDisassociateRequest' was not declared. Should it be static? 957:6: warning: symbol 'MgntDisconnectAP' was not declared. Should it be static? 975:6: warning: symbol 'MgntDisconnect' was not declared. Should it be static? 1011:6: warning: symbol 'SetRFPowerState' was not declared. Should it be static? 1115:6: warning: symbol 'InactivePowerSave' was not declared. Should it be static? -> Add the static keyword. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-15staging/rtl8187se: Remove duplicated code by using an offsetPeter Huewe
In SetAntennaConfig87SE both branches of if (bAntDiversity) do exactly the same, except that there is an offset of 0x80 for the register values if bAntDiversity is true. -> Consolidate both branches and assign the offset if necessary. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-15staging/rtl8187se: Remove unused functions PlatformIORead2Byte / ↵Peter Huewe
PlatformIORead4Byte These two functions PlatformIORead2Byte and PlatformIORead4Byte are unused and thus can be removed. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-15staging/rtl8187se: Remove temporary variable for return valuePeter Huewe
The simple PlatformIORead1Byte function doesn't need to store its return value in a temporary variable; rather simply return the value directly. By moving the function to the top we can also get rid of the forward declaration. The wrapper functions could be easily replaced by direct calls to read_nic_byte but is kept for readability. Since this functions is local only we can mark it as static. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-15staging/rtl8187se: Reuse ReadBBPortUchar to avoid duplicated codePeter Huewe
WriteBBPortUchar reimplements ReadBBPortUchar in its body, so we can remove the duplicated code by calling ReadBBPortUchar directly. Unfortunately we have to move ReadBBPortUchar around; while at it we can also get rid of the temporary variable for the return value. Also we can remove the local variables UCharData and RegisterContent in WriteBBPortUchar as they are not used / without effect. Both functions are only 'local' so we can mark them as static. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-15staging/rtl8187se: Remove unused/unnecessary variablesPeter Huewe
The local variables priv and ieee are not used and thus can be removed. The local variable u1bAIFS is not used/read after assignment and thus can be removed. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-15staging/rtl8187se: Remove code without effectPeter Huewe
The local variable AcParam is only assigned to but not read/used afterwards, thus it and all related code can be removed. The bFollowLegacySetting variable and check can also be removed as it is always true. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-15staging/rtl8187se: Remove code without effectPeter Huewe
The local variable u4bAcParam is never read/used after assignment, thus we can remove the declaration, assignment and any related code. -> the local variables u1bAIFS, eACI and pAcParam can also be removed. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-15staging/rtl8187se: Remove code without effectPeter Huewe
Local variable AcmCtrl is never read/used after assignment so we can remove all assignments to it and the related code around the assignments. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-11staging: Remove unnecessary OOM messagesJoe Perches
alloc failures already get standardized OOM messages and a dump_stack. For the affected mallocs around these OOM messages: Converted kzallocs with multiplies to kcalloc. Converted kmallocs with multiplies to kmalloc_array. Converted a kmalloc/strlen/strncpy to kstrdup. Moved a spin_lock below a removed OOM message and removed a now unnecessary spin_unlock. Neatened alignment and whitespace. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07Merge branch 'staging-linus' into staging-nextGreg Kroah-Hartman
This is to get the comedi fixes, and resolve the issue in comdi_test.c and comedi_fops.c that were caused by changes in both branches. It also allows the fwserial driver changes to be applied, as they required the fixes that are in staging-linus. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07staging: rtl8187se: Fix failure to check pci_map_single()Larry Finger
Beginning with kernel 3.8, the DMA mapping routines issue a warning for the first call to pci_map_single() that is not checked with a pci_dma_mapping_error() call. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07staging/rtl8187se: Fix spacing coding style in ieee80211/dot11d.cYAMANE Toshiaki
The following errors fixed. - ERROR: "foo * bar" should be "foo *bar" - ERROR: "(foo*)" should be "(foo *)" Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07staging/rtl8187se: Fix spacing coding style in ieee80211/dot11d.cYAMANE Toshiaki
The following errors and warnings fixed. - WARNING: braces {} are not necessary for single statement blocks - ERROR: that open brace { should be on the previous line - ERROR: space required before the open parenthesis '(' - ERROR: space prohibited after that open parenthesis '(' Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07staging/rtl8187se: Fix spacing coding style in ieee80211/dot11d.cYAMANE Toshiaki
The following errors fixed. - ERROR: spaces required around that '=' (ctx:VxV) - ERROR: spaces required around that '<=' (ctx:VxV) - ERROR: space required after that ',' (ctx:VxV) Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07staging/rtl8187se: Use netdev_ printks in ieee80211/ieee80211_wx.cYAMANE Toshiaki
The following warnings fixed. -WARNING: Prefer netdev_warn(netdev, ... then dev_warn(dev, ... then pr_warn(... to printk(KERN_WARNING ... -WARNING: Prefer netdev_dbg(netdev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07staging/rtl8187se: Fix spacing coding style in ieee80211/ieee80211_wx.cYAMANE Toshiaki
The following errors fixed. -ERROR: spaces required around that '<' (ctx:VxV) -ERROR: spaces required around that '?' (ctx:VxV) -ERROR: spaces required around that ':' (ctx:VxV) -ERROR: spaces required around that '>' (ctx:VxV) Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07staging/rtl8187se: Fix spacing coding style in ieee80211/ieee80211_wx.cYAMANE Toshiaki
The following errors fixed. -ERROR: that open brace { should be on the previous line -ERROR: space required before the open parenthesis '(' -ERROR: else should follow close brace '}' -ERROR: space required before the open brace '{' Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-07staging/rtl8187se: Fix spacing coding style in ieee80211/ieee80211_wx.cYAMANE Toshiaki
The following errors and warnings fixed. - ERROR: code indent should use tabs where possible - WARNING: please, no spaces at the start of a line - WARNING: please, no space before tabs Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-28staging/rtl8187se: Fix spacing coding style in ieee80211/ieee80211_rx.cYAMANE Toshiaki
The following warnings fixed. - WARNING: please, no spaces at the start of a line - WARNING: please, no space before tabs Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-28staging/rtl8187se: Fix spacing coding style in ieee80211/ieee80211_rx.cYAMANE Toshiaki
The following warnings fixed. - WARNING: braces {} are not necessary for single statement blocks Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>