Commit Graph

439 Commits

Author SHA1 Message Date
Malcolm Priestley 9df682927c staging: vt6656: [BUG] Fix for TX USB resets from vendors driver.
This fixes resets on heavy TX data traffic.

Vendor driver
VT6656_Linux_src_v1.21.03_x86_11.04.zip
http://www.viaembedded.com/servlet/downloadSvl?id=1890&download_file_id=14704
This is GPL-licensed code.

original code
BBbVT3184Init
...
//2007-0725, RobertChang add, Enable Squelch detect reset option(SQ_RST_Opt), USB (register4, bit1)
CONTROLnsRequestIn(pDevice,
                                 MESSAGE_TYPE_READ,
                                 (WORD)0x600+4,     // USB's Reg4's bit1
                                 MESSAGE_REQUEST_MEM,
                                 1,
                                 (PBYTE) &byData);
byData = byData|2 ;
CONTROLnsRequestOut(pDevice,
                              MESSAGE_TYPE_WRITE,
                              (WORD)0x600+4,     // USB's Reg4's bit1
                              MESSAGE_REQUEST_MEM,
                              1,
                              (PBYTE) &byData);

return TRUE;//ntStatus;
....

A back port patch is needed for kernels less than 3.10.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Cc: stable@vger.kernel.org # v3.10+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-25 09:14:29 -08:00
Dan Carpenter cb4855b49d Staging: vt6655-6: potential NULL dereference in hostap_disable_hostapd()
We fixed this to use free_netdev() instead of kfree() but unfortunately
free_netdev() doesn't accept NULL pointers.  Smatch complains about
this, it's not something I discovered through testing.

Fixes: 3030d40b50 ('staging: vt6655: use free_netdev instead of kfree')
Fixes: 0a438d5b38 ('staging: vt6656: use free_netdev instead of kfree')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-25 09:14:29 -08:00
Nandini Hanumanthagowda afd4dfbc06 staging: vt6656: removed space after '*' in pointer declaration
space after '*' in pointer declaration is not preferred in linux
and results in checkpatch error. Hence removed the spaces present
after the '*' in pointer declarations to fix the checkpatch errors

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Reviewed-by: Lisa Nguyen <lisa@xenapiadmin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-27 20:38:24 -07:00
Johannes Löthberg f27d2be41d Staging: vt6656: fix code indenting error in power.c
This patch fixes a code indentation error found by checkpatch.pl
where a line was indented with spaces instead of tabs

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-27 20:36:44 -07:00
Ebru Akagunduz 6dfd609b4d Staging: vt6656: Fix Sparse Warning: cast from restricted gfp_t in hostap.c
This patch fixes the following type of sparse warnings:

drivers/staging/vt6656/hostap.c:688:42: warning: cast from restricted gfp_t
drivers/staging/vt6656/hostap.c:688:42: warning: incorrect type in argument 2 (different base types)
drivers/staging/vt6656/hostap.c:688:42: expected restricted gfp_t [usertype] flags
drivers/staging/vt6656/hostap.c:688:42: got int [signed] <noident>

Signed-off-by: Ebru Akagunduz <ebru.akagunduz@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-27 20:36:44 -07:00
Johannes Löthberg 0f783c9db6 Staging: vt6656: fix a brace coding style issue in power.c
This patch fixes a brace warning in power.c found by checkpatch.pl

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-27 06:53:18 -07:00
Nandini Hanumanthagowda 05aaf1ac5f staging: vt6656: removed braces from single line if-statement
removed braces from if-control flow structs whenever it
contained only one statement to comply with the coding style

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Reviewed-by: Lisa Nguyen <lisa@xenapiadmin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-27 06:51:25 -07:00
Nandini Hanumanthagowda 3cef1a2e8c staging: vt6656: fixed indentation and unnecessary space errors
Fixed the indentation errors and removed unnecessary space
warnings to comply with coding style

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Reviewed-by: Lisa Nguyen <lisa@xenapiadmin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-27 06:51:25 -07:00
Malcolm Priestley 2467635ee3 staging: vt6656: call usb_device_reset before netdev registration
The USB reset occurs after netdev registration if network manager
calls device_open too fast causing USB fails in main_usb.c: device_init_registers.

Move the usb reset to before register_netdev.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-27 06:50:10 -07:00
Nandini Hanumanthagowda 1c3e56f99c staging: vt6656: removed line over 80 chars warning
Removed the checkpatch warning of line over 80 chars
by breaking the long line into sensible chunks of 2 lines
to comply with coding style

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-17 13:34:23 -07:00
Nandini Hanumanthagowda efbe51829f staging: vt6656: removed C99-style comments
Linux style for comment is C89 style "/* */" and it
doesn't prefer C99-style comment "//...". Hence replaced
C99-style comments used in code by C89 style comment to
comply with linux coding style

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-17 13:34:23 -07:00
Nandini Hanumanthagowda 5a69f36db3 staging: vt6656: removed unnecessary parentheses in return statement
There was parentheses around return statement's value which
was not required since return statement is not a function.
Hence removed the parentheses to eliminate the checkpatch error
which states:
	ERROR: return is not a function, parentheses are not required

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-17 13:34:22 -07:00
Nandini Hanumanthagowda fc044ac39c staging: vt6656: removal of braces under if-control statement
Removed braces under if-else control flow statement whenever
there is only one statement under if-else control statement
to comply with linux coding style

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-17 13:34:22 -07:00
Nandini Hanumanthagowda 1266ed7633 staging: vt6656: indentation and removal of unnecessary spaces
Removed unnecessary white spaces at beginning of line
and added proper indentation to fix checkpatch warnings/errors
to improve the readability of code

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-17 13:34:16 -07:00
Malcolm Priestley 3ba0938c16 staging: vt6656: rxtx.c s_vFillTxKey replace u8 *pbyBuf.
Replace with struct vnt_tx_fifo_head and attach pbyBuf to
adwTxKey[0]

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-16 12:45:50 -07:00
Malcolm Priestley ecd80240af staging: vt6656: rxtx.c clean up s_uGetRTSCTSDuration
White space clean up.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-16 12:40:37 -07:00
Malcolm Priestley 3dec8f1654 staging: vt6656: rxtx.c s_uGetRTSCTSDuration allow fall-through duplicates
Allow switch fall-through of duplicate case.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-16 12:40:37 -07:00
Malcolm Priestley f84cdf65a7 staging: vt6656: rxtx.c s_bPacketToWirelessUsb set fallback tx rates
Set the two TX fall back rates in s_bPacketToWirelessUsb and
pass to private area of driver in variables tx_rate_fb0
and tx_rate_fb1 from the wFB_Opt0/wFB_Opt1 array.

Apply these rates were needed in the TX structure and
remove byFBOption settings in s_uGetRTSCTSDuration.

This greatly simplifies s_uGetRTSCTSDuration and
more future flexibility of setting rates from
upper levels of driver.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-16 12:40:36 -07:00
Nandini Hanumanthagowda c744fd5fa8 staging: vt6656: Removed checkpatch whitespace errors
Removed whitespace related errors and warnings by removing
unnecessary spaces before new line in the quoted string
and spaces at start of any line or before tab to comply
with the coding style.

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-16 09:26:20 -07:00
Nandini Hanumanthagowda a96f5ba6f9 staging: vt6656: removed space related checkpatch warnings
Removed spaces around operators where it was not required
as per coding style
Added spaces around operators where it was necessary as
per coding style

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-16 09:26:20 -07:00
Malcolm Priestley e1feda132f staging: vt6656: return if pControlURB->hcpriv not NULL
Fixes occasional urb submitted while active.

Even thought the fMP_CONTROL_WRITES/fMP_CONTROL_READS flags
are cleared in the return context urb->hcpriv is not NULL.

check for hcpriv and return STATUS_FAILURE if not NULL.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-15 09:42:13 -07:00
Malcolm Priestley 60cc27472c staging: vt6656: Remove 10 second timer and move to BSSvSecondCallBack
Remove sTimerTxData 10 second timer which triggers PSbSendNullPacket
every 40 seconds when bLinkPass == true.

Move the 40 second timer to the existing BSSvSecondCallBack
one second delayed workqueue and trigger every 40 seconds when
bLinkPass == true.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-15 09:42:12 -07:00
Malcolm Priestley 17f3ced05f staging: vt6656: return from workqueues on fMP_DISCONNECTED
Return from work queues on flag fMP_DISCONNECTED to prevent
any scheduling threads past closing of device.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-15 09:42:12 -07:00
Malcolm Priestley 759e9eba43 staging: vt6656: main_usb.c correct pDevice->pControlURB goto
Correct goto of patch
staging: vt6656: make pControlURB available life time of driver.

Which should free_netdev.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-15 09:42:12 -07:00
Ashvini Varatharaj e7ed40fb26 Staging: vt6656: adding spaces around '='
Fix checkpatch error: ERROR: spaces required around that '=' (ctx:WxV)

Signed-off-by: Ashvini Varatharaj <ashvinivaratharaj@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-15 09:24:37 -07:00
Nandini Hanumanthagowda f19454f877 staging: vt6656: Removed redundant code from iwctl file
There was one line which was added twice in the
definition of iwctl_handler and hence was redundant.
It was defined at line nos 1798 and 1818. Removed
the code at line 1818.
The redundant code was:
IW_HANDLER(SIOCSIWMLME, iwctl_siwmlme)
which was defined twice.

Signed-off-by: Nandini Hanumanthagowda <nandu.hgowda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-14 09:15:26 -07:00
Malcolm Priestley 4ad0fdb0e2 staging: vt6656: make pControlURB available life time of driver.
There is no need remove and add the control urb in device open/close.

Move to the probe and disconnect. This make the USB control in/out
functions always available to driver.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-11 15:23:14 -07:00
Malcolm Priestley 92928f1318 staging: vt6656: rxtx.c cleanup s_vGenerateTxParameter
Remove white space and commented out code.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-07 19:01:53 -07:00
Malcolm Priestley c545e6a6f0 staging: vt6656: rxtx.c remove dead code s_uFillDataHead/pvTxDataHd.
uFillDataHead in is now dead so remove and pvTxDataHd.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-03 13:56:10 -07:00
Malcolm Priestley c12dca0946 staging: vt6656: rxtx.c add no rts struct vnt_tx_datahead_ab
Add no rts/cts vnt_tx_datahead_ab to union vnt_tx_data_head.

The need_mic now applies to all modes of packet type PK_TYPE_11B.

and return vnt_rxtx_datahead_ab in s_vGenerateTxParameter

This removes pvTxDataHd pointer assignment and calls to s_uFillDataHead.

Since pvTxDataHd is now null a small vendor hack to vDMA0_tx_80211/csMgmt_xmit
to do with Disassociation-packet is also changed correct head position.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-03 13:56:09 -07:00
Malcolm Priestley 5634a5ab6a staging: vt6656: rxtx.c parse out vnt_rxtx_datahead_ab
Parse struct vnt_tx_datahead_ab from s_uFillDataHead and
move to struct vnt_rts_ab structure returning duration down
functions.

Both are returned in s_uFillDataHead at this stage as pvTxDataHd
is only null in s_bPacketToWirelessUsb.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-03 13:56:09 -07:00
Malcolm Priestley a90186e458 staging: vt6656: rxtx.c add no rts struct vnt_tx_datahead_a_fb
Add no rts/cts vnt_tx_datahead_a_fb to union vnt_tx_data_head.

The need_mic now applies to all modes of packet type PK_TYPE_11A.

and return vnt_rxtx_datahead_a_fb in s_vGenerateTxParameter

This removes pvTxDataHd pointer assignment.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-03 13:56:09 -07:00
Malcolm Priestley bd3f51f1ad staging: vt6656: rxtx.c parse out struct vnt_tx_datahead_a_fb
Parse struct vnt_tx_datahead_a_fb from s_uFillDataHead and
move to struct vnt_rts_a_fb structure returning duration down
functions.

This removes pvTxDataHd pointer assignment.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-03 13:56:09 -07:00
Malcolm Priestley 5b852f5352 staging: vt6656: rxtx.c Parse struct vnt_tx_datahead_g_fb
Parse struct vnt_tx_datahead_g_fb from s_uFillDataHead and
move to struct vnt_rts_g_fb/struct vnt_cts_fb structure returning
duration down functions.

This removes pvTxDataHd pointer assignment.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-03 13:56:09 -07:00
Malcolm Priestley 78363fd187 staging: vt6656: rxtx.c Parse struct vnt_tx_datahead_g
Parse struct vnt_tx_datahead_g from s_uFillDataHead and
move to struct vnt_rts_g/struct vnt_cts structure.

This removes pvTxDataHd pointer assignment.

The duration_id(uDuration) field is now returned in s_vGenerateTxParameter.

The return of s_uFillDataHead temporary or'ed to retain functionality of
other functions and is removed at the end of this patch series.

Since pvTxDataHd is now null a small vendor hack to vDMA0_tx_80211/csMgmt_xmit
to do with Disassociation-packet is also changed correct head position.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-03 13:56:09 -07:00
Malcolm Priestley 0a0f4b6959 staging: vt6656: rxtx.c change tx functions to return u16
s_vGenerateTxParameter, s_vFillCTSHead, s_vFillRTSHead, vnt_rxtx_rts* functions
to return u16

Initially this is the duration_id field for ieee80211_hdr

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-03 13:56:08 -07:00
Malcolm Priestley a21fc2f5be staging: vt6656: covert RXvMngWorkItem to work queue
Tasklet to workqueue.
RxMngWorkItem -> rx_mng_work_item

Reduce atomic area of driver and dependency on system timer.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-30 18:33:14 -07:00
Malcolm Priestley 81d720d315 staging: vt6656: convert RXvWorkItem to work queue
Tasklet to workqueue.
ReadWorkItem -> read_work_item

Reduce atomic area of driver.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-30 18:33:13 -07:00
Malcolm Priestley bd9a6dbada staging: vt6656: covert BSSvSecondCallBack to delayed_work.
timer to delay workqueue.
sTimerSecondCallback -> second_callback_work

The delayed work queue is declared in device.h

This timer is very heavy on the system.

Improves over performance of driver and reduce the atomic
area of driver.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-30 18:33:13 -07:00
Malcolm Priestley 94488a7ebf staging: vt6656: device.h convert sTimerCommand to delayed_work
timer to delay workqueue.
sTimerCommand -> run_command_work

sTimerCommand is very heavy on the system timer.

Improves over performance of driver and reduce the atomic
area of driver.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-30 18:33:13 -07:00
Greg Kroah-Hartman 73b2277718 Merge 3.12-rc3 into staging-next
We want the staging fixes in here as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-29 18:42:21 -07:00
Malcolm Priestley fa57560c5d staging: vt6656: rxtx.c remove dead code rts_cts void
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-26 16:40:13 -07:00
Malcolm Priestley b9cc2fc020 staging: vt6656: rxtx.c Move rts_cts pointer assignment to s_vGenerateTxParameter
Move rts/cts pointers to relevant vnt_tx_data_head position.

Remove old rts_cts pointers in calling functions.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-26 16:40:13 -07:00
Malcolm Priestley f0e0d5051c staging: vt6656: rxtx.c s_vGenerateTxParameter Create vnt_mic_hdr structure
Create double pointer to pass back vnt_mic_hdr address position
of relevant structure if need_mic is more than 0. Otherwise it
is NULL.

This replaces the pMICHDR void pointer with struct vnt_mic_hdr
and assignments in the calling functions.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-26 16:40:13 -07:00
Malcolm Priestley 56c60e4f1c staging: vt6656: rxtx.c create structure to join vnt_tx_data_head with vnt_tx_head.
Create struct vnt_tx_mic_hdr for with union vnt_tx_data_head
for mic mode.

Create union vnt_tx for mic and non mic mode.

Attach vnt_rrv_time_* to relevant tx_head.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-26 16:40:13 -07:00
Malcolm Priestley 9e38a5c105 staging: vt6656: rxtx.c Create union of struct vnt_rrv_time* stuctures
Attach union vnt_tx_head to structure vnt_tx_buffer replacing pointer
pvRrvTime.

In s_vGenerateTxParameter the relevant struct vnt_rrv_time_*
structure is attached to the vnt_tx_head.

The NULL check is now pFifoHead.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-26 16:40:12 -07:00
Malcolm Priestley 5e8c3d3e41 staging: vt6656: [BUG] iwctl_siwencodeext return if device not open
Don't allow entry to iwctl_siwencodeext if device not open.

This fixes a race condition where wpa supplicant/network manager
enters the function when the device is already closed.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Cc: stable@vger.kernel.org # 3.8+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25 16:53:40 -07:00
Malcolm Priestley e3eb270fab staging: vt6656: [BUG] main_usb.c oops on device_close move flag earlier.
The vt6656 is prone to resetting on the usb bus.

It seems there is a race condition and wpa supplicant is
trying to open the device via iw_handlers before its actually
closed at a stage that the buffers are being removed.

The device is longer considered open when the
buffers are being removed. So move ~DEVICE_FLAGS_OPENED
flag to before freeing the device buffers.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25 16:53:40 -07:00
Malcolm Priestley 18e35e081e staging: vt6656: rxtx.c [BUG] s_vGetFreeContext dead lock on null apTD.
There seems to be race condition that the device is ndo_start_xmit
at a point where the device is closing and apTD is NULL resulting
in dead lock.

Add a NULL check to apTD and return NULL to calling functions.

This is more likely on 64 bit systems.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25 16:53:39 -07:00
Peter Senna Tschudin d7eede022e staging: vt6656: Change variable type to bool
The variables bMultiBand and bKeyTableFull are 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-09-25 16:28:59 -07:00