Roland Vossen [Wed, 23 Feb 2011 11:48:53 +0000 (12:48 +0100)]
staging: brcm80211: added locks in wl_mac80211.c
Increasing robustness of the code, although no problem has been reported
in the field. Several code paths were unshielded for multi thread access.
Several lock acquisitions have been added to wl_mac80211.c
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Wed, 23 Feb 2011 11:48:52 +0000 (12:48 +0100)]
staging: brcm80211: removed locks around Mac80211 calls
A spinlock was acquired prior to calling the Mac80211 functions
ieee80211_wake_queues() and ieee80211_stop_queues() and Cfg80211 functions
wiphy_rfkill_set_hw_state() and wiphy_rfkill_start_polling().
This is not required and could even lead to instability. Therefore the locks
were removed.
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Tue, 22 Feb 2011 10:12:09 +0000 (11:12 +0100)]
staging: brcm80211: allow changing channel by mac80211 when associated
When associated on 5G the driver receives a probe request for 2G with
a 2G rate specified. The driver asserts as the operating band is still
5G when the probe request packet is given. Root cause was that ioctl
function did fail upon setting the channel as requested by mac80211
when we are associated.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Mon, 21 Feb 2011 08:07:12 +0000 (09:07 +0100)]
staging: brcm80211: bugfix for crash on heavy transmit traffic
With heavy transmit traffic, once in a while (range 15mins-1hr)
a tx packet was added to a full transmit queue. Under certain
conditions an other packet in the queue gets bumped to make room
for the new packet. This is not considered an error condition, but
normal operation. Despite that, there was an ASSERT(0) that caused
the driver to oops. The ASSERT(0) has been removed. Driver was tested
afterwards.
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Nitin Gupta [Fri, 18 Feb 2011 22:33:18 +0000 (17:33 -0500)]
staging: Allow sharing xvmalloc for zram and zcache
Both zram and zcache use xvmalloc allocator. If xvmalloc
is compiled separately for both of them, we will get linker
error if they are both selected as "built-in". We can also
get linker error regarding missing xvmalloc symbols if zram
is not built.
So, we now compile xvmalloc separately and export its symbols
which are then used by both of zram and zcache.
Vipin Mehta [Sun, 20 Feb 2011 15:00:38 +0000 (07:00 -0800)]
staging: ath6kl: Eliminate cfg80211 warnings
Cancel the pending scan operation once the interface is going down to
avoid warnings from the cfg80211 module. Once the interface is down,
cfg80211 checks for any pending scan requests and dumps a warning if it
finds one. It expects the driver to abort any ongoing scan operation
once the driver detects that the interface is going down.
Dan Carpenter [Sun, 20 Feb 2011 12:49:08 +0000 (15:49 +0300)]
staging: ath6kl: cleanup in SEND_FRAME ioctl
The original code was written in a funny way where every statement was
part of else if blocks. I broke them up into separate statements by
adding breaks on failure conditions.
Alan Cox [Tue, 22 Feb 2011 14:27:58 +0000 (14:27 +0000)]
staging: gma500: Intel GMA500 staging driver
This is an initial staging driver for the GMA500. It's been stripped out
of the PVR drivers and crunched together from various bits of code and
different kernels.
Currently it's unaccelerated but still pretty snappy even compositing with
the frame buffer X server.
Lots of work is needed to rework the ttm and bo interfaces from being
ripped out and then 2D acceleration wants putting back for framebuffer and
somehow eventually via DRM.
There is no support for the parts without open source userspace (video
accelerators, 3D) as per kernel policy.
Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Haiyang Zhang [Fri, 18 Feb 2011 23:05:52 +0000 (15:05 -0800)]
staging: hv: Remove unnecessary ASSERTs in netvsc_initialize()
These fields have been assigned in netvsc_drv_init() before calling
netvsc_initialize(), so there is no need to check them.
The ASSERTs were already commented out, and this patch removes
them.
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Vipin Mehta [Fri, 18 Feb 2011 21:13:16 +0000 (13:13 -0800)]
staging: ath6kl: Fixing disappearing of scan list due to jiffies wrap over
When jiffies wrap-over, all the BSS in the cache is removed. Wrap-over of
jiffies is not handled in the correct way. This cause the scan list to go
empty during this time for a small duration
Vipin Mehta [Fri, 18 Feb 2011 21:13:15 +0000 (13:13 -0800)]
staging: ath6kl: Fixing accidental overwriting of probed ssid list in the hardware
Fixing the code to avoid overwriting of the first index in the probed ssid
list maintained by the hardware. This index is used to store broadcast SSID.
Vipin Mehta [Fri, 18 Feb 2011 21:13:14 +0000 (13:13 -0800)]
staging: ath6kl: Adding state in driver to track the sme state
Adding state in driver to track the sme state. The connect/disconnect
events from the driver were messing up the state maintained within the
cfg80211 module.
Vipin Mehta [Fri, 18 Feb 2011 21:13:11 +0000 (13:13 -0800)]
staging: ath6kl: Add configuration for excessive TX retry threshold
Adding host side interface to configure the excessive TX retry threshold.
It is used by the target to determine disconnection triggers. Additionally,
some definitions have been added to header file wmi.h to bridge the gap
for the newly added command.
Vipin Mehta [Fri, 18 Feb 2011 21:13:05 +0000 (13:13 -0800)]
staging: ath6kl: Fixing target crash due to mismatch connect/disconnect
Firmware design requires a WMI_DISCONNECT_CMD for every WMI_CONNECT_CMD to
clear the firmware previous profile state. There is one case in linux host
driver where two WMI_CONNECT_CMD are given without a WMI_DISCONNECT_CMD.
This causes firmware state to mismatch causing an ASSERT. Use the driver
state variable arConnectPending to track whether a WMI_CONNECT_CMD is
issued to firmware.
Vipin Mehta [Fri, 18 Feb 2011 21:13:03 +0000 (13:13 -0800)]
staging: ath6kl: Fixing key settings for WPA/WPA2
A bug was observed during the reconnection phase in the WPA/WPA2-PSK scenario
where the EAPOL frames were going encrypted during an auto reconnection
attempt. The initial 4-way handshake would go fine but then the driver
was getting a command to set default keys sometime later. Setting of an
incorrect flag (TX_USAGE) in the hadrware was causing the EAPOL frames during
the subsequent 4-way handshake attempts to go encrypted causing the AP to
reject the station.
Vipin Mehta [Fri, 18 Feb 2011 21:13:02 +0000 (13:13 -0800)]
staging: ath6kl: Fixing a NULL pointer exception
The driver was dereferencing a NULL pointer because of the device instance
being registered via the set_wiphy_dev() function. The function
ar6000_avail_ev() was passing the argument as NULL instead of using the one
returned by the MMC stack through the probe callback.
Jerome Marchand [Thu, 17 Feb 2011 16:11:49 +0000 (17:11 +0100)]
Staging: zram: initialize device on first read
Currently the device is initialized when first write is done to the
device. Any read attempt before the first write would fail, including
"hidden" read the user may not know about (as for example if he tries
to write a partial block).
This patch initializes the device on first request, whether read or
write.
Jonathan Cameron [Fri, 11 Feb 2011 14:20:00 +0000 (14:20 +0000)]
staging:iio:gyro:adis16060 cleanup and dead code removal
Removed stubs related to buffering and triggering. Put them back
when they are actually needed.
Fixed line length issues.
Made a number of functions static as no longer in header.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
K. Y. Srinivasan [Fri, 11 Feb 2011 18:00:12 +0000 (10:00 -0800)]
Staging: hv: Remove osd layer
The OSD layer was a wrapper around native interfaces
adding little value and was infact buggy -
refer to the osd_wait.patch for details.
This patch gets rid of the OSD abstraction.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
K. Y. Srinivasan [Fri, 11 Feb 2011 17:59:43 +0000 (09:59 -0800)]
Staging: hv: Use native wait primitives
In preperation for getting rid of the osd layer; change
the code to use native wait interfaces. As part of this,
fixed the buggy implementation in the osd_wait_primitive
where the condition was cleared potentially after the
condition was signalled.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Tue, 15 Feb 2011 11:35:40 +0000 (12:35 +0100)]
staging: brcm80211: improved checks on incompatible firmware
The return status of wl_ucode_init_buf() is now being used. Also a bug in
firmware validation, which could lead to incompatible firmware not being
rejected by the driver, has been fixed. Comment from Dan Carpenter on using
negative error values has been incorporated in this commit.
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Tue, 15 Feb 2011 10:13:51 +0000 (11:13 +0100)]
staging: brcm80211: bugfix for stack dump on firmware load problems
If there is a problem with the firmware load (eg, firmware not present in
/lib/firmware/brcm), then the driver would dump its stack instead of bailing
out gracefully. Root cause was an uninitialized variable (wl->pub) being
dereferenced in the rfkill portion of a cleanup routine (wl_remove). Fix was
to move the rfkill calls into the correct spot in wl_remove().
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Tue, 15 Feb 2011 10:13:50 +0000 (11:13 +0100)]
staging: brcm80211: bugfix for oops on firmware load problems
Upon firmware load failure, wl_release_fw() was called multiple
times. This caused the driver to oops. Solution was to remove redundant
wl_release_fw() calls.
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Mon, 14 Feb 2011 11:16:47 +0000 (12:16 +0100)]
staging: brcm80211: removed unused code because of mac rev cleanup
Code cleanup. Removed more defines, data structures and functions that were
unused because this driver supports mac core rev 22 and up. Got rid of redundant
brackets in wlc_bmac_txstatus() by moving locally defined variables above {}
scope.
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Thu, 10 Feb 2011 14:27:45 +0000 (15:27 +0100)]
staging: brcm80211: remove #ifdef BCMDBG from regular functions
Under error condition debug functions are being called which
only have implementation when BCMDBG is defined. This result
in #ifdef BCMDBG blocks in functions. This patch fixes this by
mapping the debug functions to empty macro when BCMDBG is not
defined. This makes the calling function easier to read.
Reviewed-by: Brett Rudley <brudley@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Thu, 10 Feb 2011 14:27:44 +0000 (15:27 +0100)]
staging: brcm80211: remove warning introduced by rfkill implementation
During rfkill implementation the content of wlc_radio_upd function
was removed for testing purposes only. This ended up in the patch
sent out. This commit restores the function content, which was the
only function calling static function wlc_radio_enable. This removes
the compilation warning observed.
Reviewed-by: Brett Rudley <brudley@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Thu, 10 Feb 2011 11:03:51 +0000 (12:03 +0100)]
staging: brcm80211: store BSSID in driver config information
When mac80211 informs about new BSSID this was configured toward
the hardware device, but the information is also needed inside
the driver itself. This patch takes care of that.
Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Reviewed-by: Henry Ptasinski <henryp@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The implementation for bss_info_changed was not handling all
changes as provided by mac80211 module. These have been added
and will log message with changed parameters.
Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Reviewed-by: Henry Ptasinski <henryp@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The 802.11 core in the chipsets provides counters that are now
used to provide counter values to mac80211 through get_stats
callback. Counters related to ampdu and wmm (aka. wme) are not
yet incorporated.
Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Reviewed-by: Henry Ptasinski <henryp@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Allocation of buffer in function wl_ucode_init_buf can fail. This was
signalled by an error message, but code continued to access the null
pointer. This is now avoided by jumping to failure label.
Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Reviewed-by: Henry Ptasinski <henryp@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Thu, 10 Feb 2011 11:03:44 +0000 (12:03 +0100)]
staging: brcm80211: remove usage of printf (macro) from driver
The driver contained several calls to printf which was mapped
to printk using a macro. These have been changed to explicit
call to printk or use an appropropriate macro.
Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Reviewed-by: Henry Ptasinski <henryp@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>