staging: comedi: jr3_pci: factor subdevice private data init out of (*attach)
Factor the code that allocates and initializes the subdevice private data
out of the (*attach) to reduce the indent level and make the code easier
to follow.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
staging: comedi: jr3_pci: use comedi_alloc_spriv()
Use the helper function to allocate the subdevice private data. This
sets the s->private variable for us and allows the comedi core to
automatically kfree() the memory during the (*detach).
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The COMEDI_CMD and COMEDI_CMDTEST ioctl functions both copy the chanlist
passed by the user from __user memory space to kernel memory space. They
then do some sanity checking of the chanlist with comedi_check_chanlist()
before the subdevice (*do_cmdtest) and (*do_cmd) operations are called.
Introduce a helper function to handle the memdup_user() and the sanity
checking.
Also, remove the unnecessary dev_dbg() when the memdup_user() or
comedi_check_chanlist() fail.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The COMEDI_CMD and COMEDI_CMDTEST ioctl functions both copy the
comedi_cmd passed by the user from __user memory space to kernel
memory space. They then do some basic sanity checking of the cmd
before the subdevice (*do_cmdtest) and (*do_cmd) operations are
called.
Introduce a helper function to handle the copy_from_user() and
do the basic sanity checking.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Himangi Saraogi [Sat, 15 Mar 2014 21:44:57 +0000 (03:14 +0530)]
staging:keucr: Remove typedefs
As suggested by Pablo, this patch uses a coccinelle script to remove the
typedefs:
typedef u8 BOOLEAN; <-- use "bool" instead.
typedef u8 BYTE; <-- use "u8"
typedef u8 *PBYTE; <-- use "u8 *"
typedef u16 WORD; <-- use "u16"
typedef u16 *PWORD; <-- use "u16 *"
typedef u32 DWORD; <-- use "u32"
typedef u32 *PDWORD; <-- use "u32 *"
in common.h.
Ana Rey [Sun, 16 Mar 2014 19:44:40 +0000 (20:44 +0100)]
staging: rtl8187se: Delete some innecesary whitespaces
Delete some whitespaces (whitespace before a quoted newline, space
at the start of a line and space before a tabs) as the codingStyle of
the kernel recommends.
Fix checkpatch.pl errors:
WARNING: unnecessary whitespace before a quoted newline
WARNING: please, no spaces at the start of a line
WARNING: please, no space before tabs
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Sun, 16 Mar 2014 19:44:39 +0000 (20:44 +0100)]
staging: rtl8187se: Add whitespaces around '&', '||' and '&&'
Add whitespaces around '&', '||' and '&&' as the codingStyle of the kernel
recommends.
Fix checkpatch.pl errors:
ERROR: spaces required around that '||' (ctx:VxV)
ERROR: spaces required around that '&&' (ctx:VxV)
ERROR: need consistent spacing around '&'
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Sun, 16 Mar 2014 19:44:35 +0000 (20:44 +0100)]
staging: rtl8187se: Add whitespaces around '+', '-' and '='
Add whitespaces around '+', '-' and '=' as the codingStyle of the kernel
recommends.
Fix checkpatch.pl errors:
ERROR: need consistent spacing around '+'
ERROR: spaces required around that '=' (ctx:VxV)
ERROR: need consistent spacing around '-'
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Sun, 16 Mar 2014 19:44:34 +0000 (20:44 +0100)]
staging: rtl8187se: Delete spaces prohibited around semicolons, colons and exclamations
Delete spaces prohibited before semicolon, before ':' and after '!' and
fix coding style in these lines when It is necessary.
Fix checkpàtch.pl error and warning messages:
WARNING: space prohibited before semicolon
ERROR: space prohibited before that ':'
ERROR: space prohibited after that '!'
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Sun, 16 Mar 2014 19:44:27 +0000 (20:44 +0100)]
staging: rtl8187se: Fix whitespace around else-statements
Fix whitespaces around else-statements and fix coding style in the
lines when It is necessary as the codingStyle of the kernel recommends
in ieee80211/ieee80211_softmac.c
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Sun, 16 Mar 2014 19:44:26 +0000 (20:44 +0100)]
staging: rtl8187se: Fix whitespaces in if-statement.
Fix whitespaces around braces in if-statement as the
codingStyle of the kernel recommends in ieee80211/ieee80211_softmac.c
Also, fix coding style in these lines when It is necessary.
Fix checkpatch.pl errors:
ERROR: space required before the open brace '{'
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Sun, 16 Mar 2014 19:44:25 +0000 (20:44 +0100)]
staging: rtl8187se: Remove unused functions 'rsn_authen_cipher_suite' and 'ext_ieee80211_send_beacon_wq'
Remove unused functions rsn_authen_cipher_suite() and
ext_ieee80211_send_beacon_wq() from ieee80211_softmac.c.
Fix sparse warnings:
drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c:27:11: warning: ‘rsn_authen_cipher_suite’ defined but not used [-Wunused-variable]
drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c:327:13: warning: ‘ext_ieee80211_send_beacon_wq’ defined but not used [-Wunused-function]
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Gulsah Kose [Sat, 15 Mar 2014 01:06:06 +0000 (03:06 +0200)]
staging: crystalhd: Fix no space before tabs
This patch fixes no spaces before tabs warning in crystalhd_misc.h
Signed-off-by: Gulsah Kose <gulsah.1004@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ebru Akagunduz [Thu, 13 Mar 2014 08:34:20 +0000 (10:34 +0200)]
Staging: bcm: Removed unreachable code line in Bcmchar.c
This patch removes unreachable code line and
unnecessary braces in Bcmchar.c
Signed-off-by: Ebru Akagunduz <ebru.akagunduz@gmail.com> Acked-by: Bob Copeland <me@bobcopeland.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ashley Smith [Fri, 14 Mar 2014 23:10:22 +0000 (19:10 -0400)]
staging: lustre: Remove extern keyword from function prototypes
A function prototype is always a declaration and thus has "extern" prepended by default.
Signed-off-by: Ashley Smith <ashley@eclipso.ch> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Remove an item from the TODO file since it appears to have been
completed by the following commits:
* 1839c7ebd9 "staging/gdm72xx: usb_boot: replace firmware upgrade API"
* 3afcb91c41 "staging/gdm72xx: usb_boot: replace firmware upgrade API in
em_download"
* 9e412a0a58 "staging/gdm72xx: sdio_boot: replace firmware upgrade API"
Signed-off-by: Kristina Martšenko <kristina.martsenko@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
staging: gdm72xx: replace printk() and debug macros with dynamic debugging
Replace printk(KERN_DEBUG ...) with netdev_dbg and dev_dbg. Remove
debug macros which become unnecessary.
This removes the following types of checkpatch warnings from the driver:
drivers/staging/gdm72xx/gdm_sdio.c:461: WARNING: Prefer netdev_dbg(netdev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ...
Signed-off-by: Kristina Martšenko <kristina.martsenko@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
staging: gdm72xx: use print_hex_dump_debug and remove debug macros
Since the kernel already has a function for hex dumps, use that instead
of the driver's own versions. The function supports dynamic debugging,
so also remove some unnecessary debug macros.
Signed-off-by: Kristina Martšenko <kristina.martsenko@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Jelena Bjelja [Fri, 14 Mar 2014 15:47:06 +0000 (16:47 +0100)]
staging: vt6655: Remove unnecessary braces in aes_ccmp.c
This patch fixes the checkpatch warnings:
WARNING: braces {} are not necessary for single statement blocks
Signed-off-by: Jelena Bjelja <jelena.bjelja.ing@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Himangi Saraogi [Fri, 14 Mar 2014 10:58:00 +0000 (16:28 +0530)]
static: keucr: Fix sparse warning of static declarations
This patch fixes the warning:
drivers/staging/keucr/smilsub.c:603:6: warning: symbol '_Check_D_DevCode' was not declared. Should it be static?
by making function static as it is used within the file.
Signed-off-by: Himangi Saraogi <himangi774@gmail.com> Acked-by: Pablo Neira Ayuso <pablo@gnumonks.org> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Fri, 14 Mar 2014 17:59:58 +0000 (18:59 +0100)]
staging: rtl8192u: make in r819xU_phy.c some local functions static
Make some local functions static and fix coding style in these function
declarations when It is necessary
These are the local functions that were made static:
rtl8192_CalculateBitShift, rtl8192_phy_RFSerialRead,
rtl8192_phy_RFSerialWrite, rtl8192_InitBBRFRegDef,
rtl8192_BB_Config_ParaFile,rtl8192_SetTxPowerLevel,
rtl8192_phy_SetSwChnlCmdArray, rtl8192_phy_SwChnlStepByStep,
rtl8192_phy_FinishSwChnlNow
Fixed the following sparse warnings in r819xU_phy.c
drivers/staging/rtl8192u/r819xU_phy.c:47:5: warning: symbol 'rtl8192_CalculateBitShift' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_phy.c:147:5: warning: symbol 'rtl8192_phy_RFSerialRead' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_phy.c:232:6: warning: symbol 'rtl8192_phy_RFSerialWrite' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_phy.c:574:6: warning: symbol 'rtl8192_InitBBRFRegDef' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_phy.c:783:6: warning: symbol 'rtl8192_BB_Config_ParaFile' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_phy.c:1073:6: warning: symbol 'rtl8192_SetTxPowerLevel' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_phy.c:1242:4: warning: symbol 'rtl8192_phy_SetSwChnlCmdArray' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_phy.c:1279:4: warning: symbol 'rtl8192_phy_SwChnlStepByStep' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_phy.c:1436:6: warning: symbol 'rtl8192_phy_FinishSwChnlNow' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Jelena Bjelja [Fri, 14 Mar 2014 15:10:12 +0000 (16:10 +0100)]
staging:vt6655: Fix open brace placement related error
This patch fixes the following checkpatch error in aes_ccmp.c:
ERROR: that open brace { should be on the previous line
Signed-off-by: Jelena Bjelja <jelena.bjelja.ing@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Since q_ops is only referenced in dt3155v4l.c, mark it as static.
This removes the following sparse warning:
drivers/staging/media/dt3155v4l//dt3155v4l.c:302:22: warning: symbol 'q_ops' was not declared. Should it be static?
Signed-off-by: Kristina Martšenko <kristina.martsenko@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Himangi Saraogi [Fri, 14 Mar 2014 11:18:14 +0000 (16:48 +0530)]
staging: dgap: Fix mismatch in function argument types
This patch fixes the following error reported by sparse:
drivers/staging/dgap/dgap.c:4428:13: error: symbol 'dgap_do_fep_load' redeclared with different type (originally declared at drivers/staging/dgap/dgap.c:215) - incompatible argument 2 (different address spaces)
Signed-off-by: Himangi Saraogi <himangi774@gmail.com> Acked-by: Pablo Neira Ayuso <pablo@gnumonks.org> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Fri, 14 Mar 2014 11:34:43 +0000 (12:34 +0100)]
staging: rtl8192u: make in ieee80211/ieee80211_rx.c some local functions static
Make some local functions (AddReorderEntry, RxReorderIndicate and
parse_subframe) static and fix coding style in this function
declarations when It is necessary.
Fix the following sparse warnings in ieee80211/ieee80211_rx.c
drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c:521:1: warning: symbol 'AddReorderEntry' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c:604:6: warning: symbol 'RxReorderIndicatePacket' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c:774:4: warning: symbol 'parse_subframe' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Fix the following sparse warnings in ieee80211/ieee80211_softmac.c
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:41:14: warning: symbol 'ieee80211_MFIE_rate_len' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:59:6: warning: symbol 'ieee80211_MFIE_Brate' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:76:6: warning: symbol 'ieee80211_MFIE_Grate' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:100:6: warning: symbol 'ieee80211_WMM_Info' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:142:6: warning: symbol 'enqueue_mgmt' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:160:16: warning: symbol 'dequeue_mgmt' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:175:6: warning: symbol 'init_mgmt_queue' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:180:4: warning: symbol 'MgntQuery_MgntFrameTxRate' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:359:6: warning: symbol 'ieee80211_send_beacon' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:385:6: warning: symbol 'ieee80211_send_beacon_cb' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:488:6: warning: symbol 'ieee80211_softmac_scan_wq' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:532:6: warning: symbol 'ieee80211_beacons_start' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:543:6: warning: symbol 'ieee80211_beacons_stop' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:575:6: warning: symbol 'ieee80211_softmac_stop_scan' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:890:16: warning: symbol 'ieee80211_auth_resp' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:918:16: warning: symbol 'ieee80211_null_func' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:944:6: warning: symbol 'ieee80211_resp_to_assoc_rq' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:953:6: warning: symbol 'ieee80211_resp_to_auth' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:962:6: warning: symbol 'ieee80211_resp_to_probe' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1244:6: warning: symbol 'ieee80211_associate_abort_cb' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1250:6: warning: symbol 'ieee80211_associate_step1' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1276:6: warning: symbol 'ieee80211_auth_challenge' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1306:6: warning: symbol 'ieee80211_associate_step2' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1325:6: warning: symbol 'ieee80211_associate_complete_wq' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1372:6: warning: symbol 'ieee80211_associate_complete' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1383:6: warning: symbol 'ieee80211_associate_procedure_wq' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1556:5: warning: symbol 'auth_rq_parse' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1612:5: warning: symbol 'assoc_rq_parse' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1706:6: warning: symbol 'ieee80211_sta_ps_send_null_frame' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1717:7: warning: symbol 'ieee80211_sta_ps_sleep' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1882:6: warning: symbol 'ieee80211_process_action' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2185:6: warning: symbol 'ieee80211_resume_tx' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2314:6: warning: symbol 'ieee80211_start_monitor_mode' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2324:6: warning: symbol 'ieee80211_start_ibss_wq' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2497:6: warning: symbol 'ieee80211_associate_retry_wq' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2768:6: warning: symbol 'ieee80211_wpa_assoc_frame' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1765:13: warning: symbol 'ieee80211_sta_ps' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:398:6: warning: symbol 'ieee80211_send_probe' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:604:6: warning: symbol 'ieee80211_start_scan' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:836:16: warning: symbol 'ieee80211_assoc_resp' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Fri, 14 Mar 2014 11:34:45 +0000 (12:34 +0100)]
staging: rtl8192u: make in ieee80211/ieee80211_tx.c some local functions static
Make some local functions (ieee80211_qurey_ShortPreambleMode and
ieee80211_query_HTCapShortGI) static and fix coding style in these
function declarations when It is necessary.
Fix the following sparse warnings in ieee80211/ieee80211_tx.c
drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c:381:6: warning: symbol 'ieee80211_qurey_ShortPreambleMode' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c:395:1: warning: symbol 'ieee80211_query_HTCapShortGI' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Fri, 14 Mar 2014 11:34:41 +0000 (12:34 +0100)]
staging: rtl8192u: Added in r819xU_firmware_img.c an include to fix a sparse warning
Fix the following warnings from sparse in r819xU_firmware_img.c
due to the missing include of r819xU_firmware_img.h
CHECK drivers/staging/rtl8192u/r819xU_firmware_img.c
drivers/staging/rtl8192u/r819xU_firmware_img.c:4:5: warning: symbol 'Rtl8192UsbPHY_REGArray' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_firmware_img.c:7:5: warning: symbol 'Rtl8192UsbPHY_REG_1T2RArray' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_firmware_img.c:158:5: warning: symbol 'Rtl8192UsbRadioA_Array' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_firmware_img.c:284:5: warning: symbol 'Rtl8192UsbRadioB_Array' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_firmware_img.c:326:5: warning: symbol 'Rtl8192UsbRadioC_Array' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_firmware_img.c:329:5: warning: symbol 'Rtl8192UsbRadioD_Array' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_firmware_img.c:332:5: warning: symbol 'Rtl8192UsbMACPHY_Array' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_firmware_img.c:341:5: warning: symbol 'Rtl8192UsbMACPHY_Array_PG' was not declared. Should it be static?
drivers/staging/rtl8192u/r819xU_firmware_img.c:354:5: warning: symbol 'Rtl8192UsbAGCTAB_Array' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Staging: solo6x10: Replace expressions that don't use ALIGN macro
There are some expressions that compute the roundup of a number, but don't use
the existing macro defined in /include/kernel.h. This patch uses the following
Coccinelle semantic patch:
@ haskernel @
@@
@ depends on haskernel @
expression E1, E2;
@@
- (E1 + (E2 - 1)) & ~(E2 - 1)
+ ALIGN(E1, E2)
Signed-off-by: Andreea-Cristina Bernat <bernat.ada@gmail.com> Acked-by: Bob Copeland <me@bobcopeland.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Tugce Sirin [Thu, 13 Mar 2014 18:02:46 +0000 (20:02 +0200)]
Staging: bcm: Fix sparse non-static symbol warning
Fix sparse non-static symbol warning in bcm driver.
Signed-off-by: Tugce Sirin <ztugcesirin@gmail.com> Acked-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Tugce Sirin [Thu, 13 Mar 2014 17:47:44 +0000 (19:47 +0200)]
Staging: wlan-ng: Fix sparse non-static symbol warning
Fix sparse non-static symbol warning in wlan-ng driver.
Signed-off-by: Tugce Sirin <ztugcesirin@gmail.com> Acked-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
This patch solves the warning "possible switch/case default not preceded by
break or fallthrough comment".
Signed-off-by: Andreea-Cristina Bernat <bernat.ada@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Himangi Saraogi [Thu, 13 Mar 2014 17:51:23 +0000 (23:21 +0530)]
staging:lustre: Fix sparse warning of plain integer as NULL
This patch fixes the following sparse warning:
drivers/staging/lustre/lustre/lov/lov_request.c:53:28: warning: Using plain integer as NULL pointer
Signed-off-by: Himangi Saraogi <himangi774@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Thu, 13 Mar 2014 16:54:55 +0000 (17:54 +0100)]
staging: rtl8192u: Deleted 'rtl8192_set_mode' function in r8192U_core.c
This patch delete the 'rtl8192_set_mode' function that is not used in
anywhere in the driver.
Fix the following sparse warning in r8192U_core.c
drivers/staging/rtl8192u/r8192U_core.c:692:6: warning: symbol 'rtl8192_set_mode' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Thu, 13 Mar 2014 16:54:57 +0000 (17:54 +0100)]
staging: rtl8192u: make in ieee80211/rtl819x_BAProc.c some local functions static
Make some local functions (ActivateBAEntry, DeActivateBAEntry,
TxTsDeleteBA ,RxTsDeleteBA and ieee80211_send_DELBA) static and fix
coding style in this function declarations when It is necessary
Fix the following sparse warnings in ieee80211/rtl819x_BAProc.c
drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c:16:6: warning: symbol 'ActivateBAEntry' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c:28:6: warning: symbol 'DeActivateBAEntry' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c:40:4: warning: symbol 'TxTsDeleteBA' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c:70:4: warning: symbol 'RxTsDeleteBA' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c:310:6: warning: symbol 'ieee80211_send_DELBA' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Fix the following sparse warnings in ieee80211/rtl819x_HTProc.c
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:222:6: warning: symbol 'IsHTHalfNmode40Bandwidth' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:241:6: warning: symbol 'IsHTHalfNmodeSGI' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:379:6: warning: symbol 'HTIOTPeerDetermine' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:416:4: warning: symbol 'HTIOTActIsDisableMCS14' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:435:6: warning: symbol 'HTIOTActIsDisableMCS15' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:472:6: warning: symbol 'HTIOTActIsDisableMCSTwoSpatialStream' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:489:4: warning: symbol 'HTIOTActIsDisableEDCATurbo' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:503:4: warning: symbol 'HTIOTActIsMgntUseCCK6M' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:518:4: warning: symbol 'HTIOTActIsCCDFsync' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:795:4: warning: symbol 'HT_PickMCSRate' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:910:4: warning: symbol 'HTFilterMCSRate' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:1320:6: warning: symbol 'HTUseDefaultSetting' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Thu, 13 Mar 2014 16:54:59 +0000 (17:54 +0100)]
staging: rtl8192u: make in ieee80211/rtl819x_TSProc.c some local functions static
Make some local functions static and fix coding style in this function
declarations when It is necessary.
These are the local functions that were made static:
TsSetupTimeOut, TsInactTimeout RxPktPendingTimeout, TsAddBaProcess,
ResetTsCommonInfo, ResetTxTsEntry, ResetRxTsEntry, AdmitTS,
SearchAdmitTRStream, MakeTSEntry, RemoveTsEntry.
Fix the following sparse warnings in ieee80211/rtl819x_TSProc.c
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:6:6: warning: symbol 'TsSetupTimeOut' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:12:6: warning: symbol 'TsInactTimeout' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:25:6: warning: symbol 'RxPktPendingTimeout' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:102:6: warning: symbol 'TsAddBaProcess' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:113:6: warning: symbol 'ResetTsCommonInfo' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:122:6: warning: symbol 'ResetTxTsEntry' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:133:6: warning: symbol 'ResetRxTsEntry' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:227:6: warning: symbol 'AdmitTS' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:237:17: warning: symbol 'SearchAdmitTRStream' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:312:6: warning: symbol 'MakeTSEntry' was not declared. Should it be static?
drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c:475:6: warning: symbol 'RemoveTsEntry' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Monam Agarwal [Sun, 9 Mar 2014 05:28:08 +0000 (10:58 +0530)]
Staging: ft1000-usb: Fix Smatch Warning in ft1000_hw.c
This patch fixes following smatch warning:
/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c:1148 ft1000_proc_drvmsg() warn: returning -1 instead of -ENOMEM is sloppy
Signed-off-by: Monam Agarwal <monamagarwal123@gmail.com> Acked-by: Nick Kossifidis <mickflemm@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Thu, 13 Mar 2014 09:53:12 +0000 (10:53 +0100)]
staging: rts5139: Added in sd_cprm.c an include to fix a sparse warning
Fix the following warnings from sparse in drivers/staging/rts5139/sd_cprm.c
due to the missing include of sd_cprm.h
Signed-off-by: Ana Rey <anarey@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Thu, 13 Mar 2014 09:53:13 +0000 (10:53 +0100)]
staging: rts5139: make thrts5139_usb_idse local variable static in rts51x.c
Make the local variable rts5139_usb_ids static
Fix the following sparse warnings in rts51x.c
CHECK drivers/staging/rts5139/rts51x.c
drivers/staging/rts5139/rts51x.c:835:22: warning: symbol 'rts5139_usb_ids' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Thu, 13 Mar 2014 09:53:11 +0000 (10:53 +0100)]
staging: rts5139: Added in ms_mg.c an include to fix a sparse warning
Fix the following warnings from sparse in drivers/staging/rts5139/ms_mg.c
due to the missing include of ms_mg.h
drivers/staging/rts5139/ms_mg.c:81:5: warning: symbol 'mg_set_tpc_para_sub' was not declared. Should it be static?
drivers/staging/rts5139/ms_mg.c:122:5: warning: symbol 'rts51x_mg_set_leaf_id' was not declared. Should it be static?
drivers/staging/rts5139/ms_mg.c:173:5: warning: symbol 'rts51x_mg_get_local_EKB' was not declared. Should it be static?
drivers/staging/rts5139/ms_mg.c:232:5: warning: symbol 'rts51x_mg_chg' was not declared. Should it be static?
drivers/staging/rts5139/ms_mg.c:323:5: warning: symbol 'rts51x_mg_get_rsp_chg' was not declared. Should it be static?
drivers/staging/rts5139/ms_mg.c:392:5: warning: symbol 'rts51x_mg_rsp' was not declared. Should it be static?
drivers/staging/rts5139/ms_mg.c:450:5: warning: symbol 'rts51x_mg_get_ICV' was not declared. Should it be static?
drivers/staging/rts5139/ms_mg.c:514:5: warning: symbol 'rts51x_mg_set_ICV' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Thu, 13 Mar 2014 09:47:51 +0000 (10:47 +0100)]
staging: rts5139: make the local variable static
Make the local variable (media_not_present and invalid_cmd_field) static
Fix the following sparse warnings in rts51x_transport.c
drivers/staging/rts5139/rts51x_transport.c:649:4: warning: symbol 'media_not_present' was not declared. Should it be static?
drivers/staging/rts5139/rts51x_transport.c:651:4: warning: symbol 'invalid_cmd_field' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Ana Rey [Thu, 13 Mar 2014 11:36:37 +0000 (12:36 +0100)]
staging: rtl8192u: make in r8180_93cx6.c some local functions static
Make some local functions (eprom_cs, eprom_ck_cycle, eprom_w, eprom_r
and eprom_send_bits_string) static
Fix the following sparse warnings in r8180_93cx6.c
drivers/staging/rtl8192u/r8180_93cx6.c:23:6: warning: symbol 'eprom_cs' was not declared. Should it be static?
drivers/staging/rtl8192u/r8180_93cx6.c:40:6: warning: symbol 'eprom_ck_cycle' was not declared. Should it be static?
drivers/staging/rtl8192u/r8180_93cx6.c:56:6: warning: symbol 'eprom_w' was not declared. Should it be static?
drivers/staging/rtl8192u/r8180_93cx6.c:71:7: warning: symbol 'eprom_r' was not declared. Should it be static?
drivers/staging/rtl8192u/r8180_93cx6.c:85:6: warning: symbol 'eprom_send_bits_string' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Fix the following sparse warnings in r8192U_core.c
drivers/staging/rtl8192u/r8192U_core.c:241:6: warning: symbol 'CamResetAllEntry' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:676:6: warning: symbol 'tx_timeout' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:1014:6: warning: symbol 'rtl8192_data_hard_stop' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:1020:6: warning: symbol 'rtl8192_data_hard_resume' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:1028:6: warning: symbol 'rtl8192_hard_data_xmit' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:1056:5: warning: symbol 'rtl8192_hard_start_xmit' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:1380:6: warning: symbol 'rtl8192_config_rate' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:1427:6: warning: symbol 'rtl8192_update_cap' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:1449:6: warning: symbol 'rtl8192_net_update' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:1677:4: warning: symbol 'MRateToHwRate8190Pci' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2043:6: warning: symbol 'rtl8192_link_change' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2075:6: warning: symbol 'rtl8192_update_beacon' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2090:5: warning: symbol 'WDCAPARA_ADD' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2091:6: warning: symbol 'rtl8192_qos_activate' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2319:6: warning: symbol 'GetHalfNmodeSupportByAPs819xUsb' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2333:6: warning: symbol 'rtl8192_refresh_supportrate' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2344:4: warning: symbol 'rtl8192_getSupportedWireleeMode' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2363:6: warning: symbol 'rtl8192_SetWirelessMode' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2783:7: warning: symbol 'rtl8192_get_channel_map' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2796:7: warning: symbol 'rtl8192_init' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2844:6: warning: symbol 'rtl8192_hwconfig' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:2927:6: warning: symbol 'rtl8192_adapter_start' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3183:12: warning: symbol 'TxCheckStuck' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3286:12: warning: symbol 'rtl819x_ifcheck_resetornot' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3325:6: warning: symbol 'CamRestoreAllEntry' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3401:6: warning: symbol 'rtl819x_ifsilentreset' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3521:6: warning: symbol 'rtl819x_update_rxcounts' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3638:5: warning: symbol 'rtl8192_open' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3758:5: warning: symbol 'r8192_set_mac_adr' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3774:5: warning: symbol 'rtl8192_ioctl' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3865:4: warning: symbol 'HwRateToMRate90' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3951:6: warning: symbol 'rtl819x_translate_todbm' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:3967:6: warning: symbol 'rtl8192_process_phyinfo' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:4453:6: warning: symbol 'rtl8192_record_rxdesc_forlateruse' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:4725:6: warning: symbol 'rtl8192_rx_nomal' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:4875:6: warning: symbol 'rtl819xusb_process_received_packet' was not declared. Should it be static?
drivers/staging/rtl8192u/r8192U_core.c:4936:6: warning: symbol 'rtl8192_rx_cmd' was not declared. Should it be static?
Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Gulsah Kose [Wed, 12 Mar 2014 22:34:53 +0000 (00:34 +0200)]
staging: slicoss: Fix unnecessary line continuations
Removed unnecessary line continuations in slicoss.c
Signed-off-by: Gulsah Kose <gulsah.1004@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Linus Torvalds [Sun, 16 Mar 2014 17:42:07 +0000 (10:42 -0700)]
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fixes from Ingo Molnar:
"Three small fixes"
* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched/clock: Prevent tracing recursion in sched_clock_cpu()
stop_machine: Fix^2 race between stop_two_cpus() and stop_cpus()
sched/deadline: Deny unprivileged users to set/change SCHED_DEADLINE policy
Linus Torvalds [Sun, 16 Mar 2014 17:41:21 +0000 (10:41 -0700)]
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo Molnar:
"Misc smaller fixes"
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf/x86: Fix leak in uncore_type_init failure paths
perf machine: Use map as success in ip__resolve_ams
perf symbols: Fix crash in elf_section_by_name
perf trace: Decode architecture-specific signal numbers
Michael Kerrisk [Mon, 10 Mar 2014 13:46:07 +0000 (14:46 +0100)]
ipc: Fix 2 bugs in msgrcv() MSG_COPY implementation
While testing and documenting the msgrcv() MSG_COPY flag that Stanislav
Kinsbursky added in commit 4a674f34ba04 ("ipc: introduce message queue
copy feature" => kernel 3.8), I discovered a couple of bugs in the
implementation. The two bugs concern MSG_COPY interactions with other
msgrcv() flags, namely:
The bugs are distinct (and the fix for the first one is obvious),
however my fix for both is a single-line patch, which is why I'm
combining them in a single mail, rather than writing two mails+patches.
===== (A) MSG_COPY + MSG_EXCEPT =====
With the addition of the MSG_COPY flag, there are now two msgrcv()
flags--MSG_COPY and MSG_EXCEPT--that modify the meaning of the 'msgtyp'
argument in unrelated ways. Specifying both in the same call is a
logical error that is currently permitted, with the effect that MSG_COPY
has priority and MSG_EXCEPT is ignored. The call should give an error
if both flags are specified. The patch below implements that behavior.
===== (B) (B) MSG_COPY + !IPC_NOWAIT =====
The test code that was submitted in commit 3a665531a3b7 ("selftests: IPC
message queue copy feature test") shows MSG_COPY being used in
conjunction with IPC_NOWAIT. In other words, if there is no message at
the position 'msgtyp'. return immediately with the error in ENOMSG.
What was not (fully) tested is the behavior if MSG_COPY is specified
*without* IPC_NOWAIT, and there is an odd behavior. If the queue
contains less than 'msgtyp' messages, then the call blocks until the
next message is written to the queue. At that point, the msgrcv() call
returns a copy of the newly added message, regardless of whether that
message is at the ordinal position 'msgtyp'. This is clearly bogus, and
problematic for applications that might want to make use of the MSG_COPY
flag.
I considered the following possible solutions to this problem:
(1) Force the call to block until a message *does* appear at the
position 'msgtyp'.
(2) If the MSG_COPY flag is specified, the kernel should implicitly add
IPC_NOWAIT, so that the call fails with ENOMSG for this case.
(3) If the MSG_COPY flag is specified, but IPC_NOWAIT is not, generate
an error (probably, EINVAL is the right one).
I do not know if any application would really want to have the
functionality of solution (1), especially since an application can
determine in advance the number of messages in the queue using msgctl()
IPC_STAT. Obviously, this solution would be the most work to implement.
Solution (2) would have the effect of silently fixing any applications
that tried to employ broken behavior. However, it would mean that if we
later decided to implement solution (1), then user-space could not
easily detect what the kernel supports (but, since I'm somewhat doubtful
that solution (1) is needed, I'm not sure that this is much of a
problem).
Solution (3) would have the effect of informing broken applications that
they are doing something broken. The downside is that this would cause
a ABI breakage for any applications that are currently employing the
broken behavior. However:
a) Those applications are almost certainly not getting the results they
expect.
b) Possibly, those applications don't even exist, because MSG_COPY is
currently hidden behind CONFIG_CHECKPOINT_RESTORE.
The upside of solution (3) is that if we later decided to implement
solution (1), user-space could determine what the kernel supports, via
the error return.
In my view, solution (3) is mildly preferable to solution (2), and
solution (1) could still be done later if anyone really cares. The
patch below implements solution (3).
PS. For anyone out there still listening, it's the usual story:
documenting an API (and the thinking about, and the testing of the API,
that documentation entails) is the one of the single best ways of
finding bugs in the API, as I've learned from a lot of experience. Best
to do that documentation before releasing the API.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com> Acked-by: Stanislav Kinsbursky <skinsbursky@parallels.com> Cc: Stanislav Kinsbursky <skinsbursky@parallels.com> Cc: stable@vger.kernel.org Cc: Serge Hallyn <serge.hallyn@canonical.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Pavel Emelyanov <xemul@parallels.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>