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>
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>
This patch delete the 'rtl8192_beacon_stop' 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:1332:6: warning: symbol 'rtl8192_beacon_stop' 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>
This patch delete the 'rtl8192_proc_module_remove' function that is not
used in anywhere in the driver.
Fix the following sparse warnings in r8192U_core.c
drivers/staging/rtl8192u/r8192U_core.c:595:6: warning: symbol 'rtl8192_proc_module_remove' 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>
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>
This patch delete the 'rtl819xU_cmd_isr' 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:1516:6: warning: symbol 'rtl819xU_cmd_isr' 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>
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>
Make some local functions static.
These are the local functions that were made static:
IsHTHalfNmode40Bandwidth, IsHTHalfNmodeSGI, HTIOTPeerDetermine,
HTIOTActIsDisableMCS14, HTIOTActIsDisableMCS15,
HTIOTActIsDisableMCSTwoSpatialStream, HTIOTActIsDisableEDCATurbo,
HTIOTActIsMgntUseCCK6M, HTIOTActIsCCDFsync, HT_PickMCSRate,
HTFilterMCSRate, HTUseDefaultSetting
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>
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>
This patch delete the 'alloc_tx_beacon_desc_ring' 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:883:5: warning: symbol 'alloc_tx_beacon_desc_ring' 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>
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>
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>
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>
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>
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>
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>
Make some local functions static.
The local functions are CamResetAllEntry, tx_timeout,
rtl8192_data_hard_stop, rtl8192_data_hard_resume, rtl8192_hard_data_xmit,
rtl8192_hard_start_xmit, rtl8192_config_rate, rtl8192_update_cap,
rtl8192_net_update, MRateToHwRate8190Pci, tl8192_link_change,
rtl8192_update_beacon, WDCAPARA_ADD, rtl8192_qos_activate,
GetHalfNmodeSupportByAPs819xUsb, rtl8192_refresh_supportrate,
rtl8192_getSupportedWireleeMode, rtl8192_SetWirelessMode,
rtl8192_get_channel_map, rtl8192_init,
rtl8192_hwconfig, rtl8192_adapter_start, TxCheckStuck,
rtl819x_ifcheck_resetornot, CamRestoreAllEntry, rtl819x_ifsilentreset,
rtl819x_update_rxcounts, rtl8192_open, r8192_set_mac_adr, rtl8192_ioctl,
HwRateToMRate90, rtl819x_translate_todbm, rtl8192_process_phyinfo,
rtl8192_record_rxdesc_forlateruse, rtl8192_rx_nomal,
rtl819xusb_process_received_packet, rtl8192_rx_cmd.
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>
Fix checkpatch.pl issues with line over 80 characters in solo6x10-v4l2-enc.c
Signed-off-by: Aybuke Ozdemir <aybuke.147@gmail.com>
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
This patch fixes the following sparse warnings:
drivers/staging/vt6656/usbpipe.c:147:24: warning: context imbalance in 'PIPEnsControlOut' - unexpected unlock
drivers/staging/vt6656/usbpipe.c:209:24: warning: context imbalance in 'PIPEnsControlIn' - unexpected unlock
Signed-off-by: Iulia Manda <iulia.manda21@gmail.com>
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
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>
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
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
While testing and documenting the msgrcv() MSG_COPY flag that Stanislav
Kinsbursky added in commit 4a674f34ba ("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:
(A) MSG_COPY + MSG_EXCEPT
(B) MSG_COPY + !IPC_NOWAIT
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 3a665531a3 ("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>
This is a set of six fixes. Two are instant crash/null deref types (storvsc
and isci). The two qla2xxx are initialisation problems that cause MSI-X
failures and card misdetection, the isci erroneous macro is actually illegal C
that's causing a miscompile with certain gcc versions and the be2iscsi bad if
expression is a static checker fix.
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQEcBAABAgAGBQJTJI/eAAoJEDeqqVYsXL0MSLkH/2uYBN9YkO6rkafxcIUYY0Ck
8+3xf7qdLVaEYoERkXQOncHg8r0BYWaUl0oi/K5nzq4chvMH3SW5L360SYRLT6Hs
0F2pFZ2bO192FPBSB2zxrkSDYmEtzBviUFbiWwVH2i1GJCGDMvI9TfDVbdnfF5Eh
YB5INjZQ0r5eS45uR5xo5VTotMOUd/3lfYCfcOLDB77SzkX280+OUXJOxRND4QtM
xKcWCahSR2ALzxy4+OUsSHsQNizjEufeDiTij1h9GJctbtPXgm4hRO04AEB2a0aQ
OBI5kKZobqh5DJgknBsASvYNDOaVOVlzML5Qs9m+ie1IEQBOtV6u1rQAONThy/8=
=1qQW
-----END PGP SIGNATURE-----
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley:
"This is a set of six fixes. Two are instant crash/null deref types
(storvsc and isci). The two qla2xxx are initialisation problems that
cause MSI-X failures and card misdetection, the isci erroneous macro
is actually illegal C that's causing a miscompile with certain gcc
versions and the be2iscsi bad if expression is a static checker fix"
* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
[SCSI] storvsc: NULL pointer dereference fix
[SCSI] qla2xxx: Poll during initialization for ISP25xx and ISP83xx
[SCSI] isci: correct erroneous for_each_isci_host macro
[SCSI] isci: fix reset timeout handling
[SCSI] be2iscsi: fix bad if expression
[SCSI] qla2xxx: Fix multiqueue MSI-X registration.
Avoid a spurious device get/put pair by cleaning up scsi_requeue_command
and folding scsi_unprep_request into it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Eliminate a get_device() / put_device() pair from scsi_next_command().
Both are atomic operations hence removing these slightly improves
performance.
[hch: slight changes due to different context]
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
SCSI devices may only be removed by calling scsi_remove_device().
That function must invoke blk_cleanup_queue() before the final put
of sdev->sdev_gendev. Since blk_cleanup_queue() waits for the
block queue to drain and then tears it down, scsi_request_fn cannot
be active anymore after blk_cleanup_queue() has returned and hence
the get_device()/put_device() pair in scsi_request_fn is unnecessary.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Many callers won't need this and we can optimize them away. In addition
the handling in the __-prefixed variants was inconsistant to start with.
Based on an earlier patch from Bart Van Assche.
[jejb: fix kerneldoc probelm picked up by Fengguang Wu]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
If we don't have starved devices we don't need to take the host lock
to iterate over them. Also split the function up to be more clear.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Avoid hitting the host-wide free_list lock unless we need to put a command
back onto the freelist.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Structure was already memset to zero at the top
of hpsa_scsi_ioaccel2_queue_command
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This allows exposing physical disks behind Smart
Array controllers to the OS (if the controller
has the right firmware and is in "hba" mode)
Signed-off-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
rc is set in the loop, and it isn't set back to zero anywhere
this patch fixes it
Signed-off-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Do not expose drives that are undergoing a format immediately
to the OS, instead wait until they are ready before bringing
them online. This is so that logical drives created with
"rapid parity initialization" do not get immediately kicked
off the system for being unresponsive.
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Evidently some wacky USB-ATA bridges don't recognize the SYNCHRONIZE
CACHE command, as shown in this email thread:
http://marc.info/?t=138978356200002&r=1&w=2
The fact that we can't tell them to drain their caches shouldn't
prevent the system from going into suspend. Therefore sd_sync_cache()
shouldn't return an error if the device replies with an Invalid
Command ASC.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Sven Neumann <s.neumann@raumfeld.com>
Tested-by: Daniel Mack <zonque@gmail.com>
CC: <stable@vger.kernel.org>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
If a phy device is removed, the device can get error of I/O and HBA maybe
receieve IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS of event which causes pm8001_work_fn
to reset the phy device but in pm8001_task_exec we don't assign a value for
the device field of the ccb and in other case a ccb used have device field
set, when ccb is freed the field device of the ccb don't be set NULL.So there
is possibility of getting another device reset in function mpi_ssp_completion.
Signed-off-by: zhuxh <zxh3737@163.com>
Acked-by: Lindar Liu <lindar_liu@usish.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
In function pm8001_dev_gone_notify we consume a tag from bitmap resource and
later don't free that tag resource, so the tag resource will never be
freed. In the function we don't need to use any tag to issue command for
unregistering the device .
Signed-off-by: XinHong Zhu <zxh3737@163.com>
Acked-by: Lindar Liu <lindar_liu@usish.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
The following patch for megaraid_sas updates the driver version to
v06.803.01.00-rc1, and updates Documentation/scsi/ChangeLog.megaraid_sas.
Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
The following patch for megaraid_sas adds Dell PowerEdge VRTS SR-IOV VF
support (Device ID 0x002f).
This patch has some > 80 column lines that need to be left in place
for code readability purposes.
Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
The following patch for megaraid_sas will return leaked MPT frames from any
polled DCMD's that timeout to the MPT frame pool.
Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
The following patch for megaraid_sas fixes the megasas_ioc_init_fusion
function to use a local stack variable for the IOCinit frame physical address
instead of clobbering the first request descriptor.
Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
The following patch for megaraid_sas loads the correct raid context timeout
value for multpathing and clustering.
Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Host lock is added back around queuecommand. Host lock removal can create race
conditon between ISR path(when RAID map update interrupt is raised) and IO
build path of driver, since IO build path is making use of RAID map, and in
case of RAID map update interrupt, old RAID map copy is memset to zero, which
some IOs may be referencing in build IO path. Changes done for performance
boost- 1) Added code to set SMP IRQ affinity per CPU. 2) Pass MSI-x index,
while issuing sysPD IO.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: Sumit Saxena <sumit.saxena@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
If consistent DMA mask is set to 64 bit, fall back to 32bit DMA mask and 32bit consistent DMA mask.
64bit consistent DMA mask may be set on some 64bit DMA slot, which causes DMA offset "10000000000000" and
MFI_INIT and IOCTL frames will have high memory addresses, leads to firmware FAULT.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: Sumit Saxena <sumit.saxena@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Don't wait forever for firmware response for internal DCMDs sent from driver
firmware. Such DCMDs will be posted to firmware with timeout. Timeout is also
introduced for DCMD sent to abort the commands. DCMD sent via IOCTL path will
still be always blocking to keep the IOCTL design intact.
Signed-off-by: Sumit Saxena <sumit.saxena@lsi.com>
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
The original code always set the upper 32 bits to zero because it was
doing a shift of the wrong variable.
Fixes: 1a4f550a09 ('[SCSI] arcmsr: 1.20.00.15: add SATA RAID plus other fixes')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>