David Cross [Fri, 24 Sep 2010 00:24:45 +0000 (17:24 -0700)]
Staging: west bridge, removal of " " before ";"
This patch fixes removes all of the the " ;"'s in the west bridge driver
and instead replaces them with ";" only. Although this is a large patch,
this is the only thing that it does. I can break it up on a file basis
if needed.
Signed-off-by: David Cross <david.cross@cypress.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
David Cross [Fri, 24 Sep 2010 00:20:00 +0000 (17:20 -0700)]
Staging: west bridge, cyasgadget fix for usb_gadget_probe_driver
This patch fixes the west bridge cyasgadget driver in order to allow for
compilation against the linux-next tree. This changes
usb_gadget_register_driver to usb_gadget_probe_driver and updates this
function based on the new function definition (bind call).
Signed-off-by: David Cross <david.cross@cypress.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Andres Salomon [Sun, 26 Sep 2010 02:06:30 +0000 (19:06 -0700)]
staging: olpc_dcon: drop old VT switch code, watch for CONBLANK event
Eons ago, in a galaxy far far away, Jordan committed code to work around
the fact that X might have put the DCON to sleep and then crashed (in that
galaxy, X crashed a lot; crazy, right?)
This code was based on a custom API. These days, we have code which watches
for FB unblanks, and should perform the same function.. Therefore, the older
code can be dropped. We should probably be watching for CONBLANK events to,
so allow those to turn the DCON back on.
Dropping the old code is necessary for building the driver.
Signed-off-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This comment about killing power to the backlight is ancient, and incorrect
(the code that follows actually does the opposite of what the comment says).
This was due to hardware changes; the comment was for the original OLPC GX2
boards, but when the OLPC LX boards came out, the code was updated for that
hardware.
Signed-off-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Andres Salomon [Sat, 25 Sep 2010 02:14:38 +0000 (19:14 -0700)]
staging: olpc_dcon: drop XO-1.5 support for now
The vx855 stuff isn't upstream yet; for now, drop support for XO-1.5.
This will come back once the 1.5 code is in place (and will be in a form
that allows both 1.0 and 1.5 support to be compiled in at the same time),
but for now just remove it. This is necessary to get the driver building.
Signed-off-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Andres Salomon [Sat, 25 Sep 2010 02:13:42 +0000 (19:13 -0700)]
staging: olpc_dcon: add OLPC display controller (DCON) support
This adds DCON support for the OLPC XO. The DCON is found in XO-1 and
XO-1.5 hardware. The XO-1 has a CS5536 southbridge, while the XO-1.5
has a Via chipset; the GPIO magic that's necessary to communicate with
the DCON chip is unfortunately different across both platforms. This
driver supports both.
This driver is in bad state atm, so I'm requesting its inclusion into
staging so it can be cleaned up while staying in the kernel tree.
Original driver by Dave Woodhouse, and modified extensively by
Jordan Crouse, myself, Deepak Saxena, Paul Fox, Daniel Drake, and
probably others that I've missed.
Signed-off-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Staging: brcm80211: remove driver specific -W options
A single driver shouldn't be overriding the kernel-wide -W options.
This removes them from the Makefile.
Bonus is that the code at least now will build on a 64bit platform.
Problem is that both drivers can't be built at the same time right now
or bad things happen when linking.
Cc: Henry Ptasinski <henryp@broadcom.com> Cc: Nohee Ko <noheek@broadcom.com> Cc: jason <jason@lakedaemon.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Change to use the proper ccflags-y option, as well as splitting the
options out one-per-line so that we can see what is needed to be cleaned
up and removed over time.
Cc: Henry Ptasinski <henryp@broadcom.com> Cc: Nohee Ko <noheek@broadcom.com> Cc: jason <jason@lakedaemon.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The driver hasn't been updated since the .30 kernel release and will
not build due to pcmcia api changes. Mark it broken for now so no
one hits it in their build accidentally.
Cc: Marek Belisko <marek.belisko@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- Event thread wakes up and passes the event to
event_handler() to process.
- It processes and clears the USBIP_EH_SHUTDOWN
flag then returns.
- The outer event loop (event_handler_loop()) calls
wait_event_interruptible().
The processing of the second flag which is part of
VDEV_EVENT_DOWN (USBIP_EH_RESET) did not happen yet.
It is delayed until the next event.
This means the ->reset callback may not happen for
a long time (if ever), leaving the usbip port in a
weird state which prevents its reuse.
This patch changes the handler to process all flags
before waiting for another wakeup.
I have verified this change to fix a problem which
prevented reattach of a usbip device. It also helps
for socket errors which missed the RESET as well.
The delayed event processing also affects the stub
side of usbip and the error handling there.
Signed-off-by: Max Vozeler <mvz@vozeler.com> Reported-by: Marco Lancione <marco@optikam.com> Tested-by: Luc Jalbert <ljalbert@optikam.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 10:04:21 +0000 (13:04 +0300)]
staging: w35und: Add locking problems to TODO list
The w35und uses atomics such as "ThreadCount" and "FireCount" to emulate
locking in the TX paths, for example. Document this bug in the TODO list.
Cc: Lars Lindley <lindley@coyote.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 10:01:03 +0000 (13:01 +0300)]
staging: w35und: Inline MLMESendFrame() to wbsoft_tx()
The wbsoft_tx() function is a simple wrapper on top of MLMESendFrame() so
inline the latter to the former.
Cc: Lars Lindley <lindley@coyote.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 10:01:02 +0000 (13:01 +0300)]
staging: w35und: Use NETDEV_TX_BUSY if MLMESendFrame fails
This patch changes MLMESendFrame to return NETDEV_TX_BUSY if MLME frame is in
use so that wbsoft_tx() doesn't blindly return NETDEV_TX_OK in that case.
Cc: Sandro Bonazzola <sandro.bonazzola@gmail.com> Cc: Lars Lindley <lindley@coyote.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 09:28:43 +0000 (12:28 +0300)]
staging: w35und: Remove unused fields from struct wbsoft_priv
This patch removes unused fields from "struct wbsoft_priv".
Cc: Lars Lindley <lindley@coyote.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 09:28:42 +0000 (12:28 +0300)]
staging: w35und: Remove unused spinlocks
This patch removes unused spinlocks from "struct mlme_frame" and "struct
wbsoft_priv".
Cc: Lars Lindley <lindley@coyote.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 09:28:41 +0000 (12:28 +0300)]
staging: w35und: Inline mlme_s.h to core.h
The mlme_s.h header is included in one place. As the header is very small, just
inline it to core.h.
Cc: Lars Lindley <lindley@coyote.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 09:28:40 +0000 (12:28 +0300)]
staging: w35und: Remove dead code from mlme_s.h
There's bunch of macros in mlme_s.h that aren't used for anything. Kill them
off.
Cc: Lars Lindley <lindley@coyote.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 09:28:39 +0000 (12:28 +0300)]
staging: w35und: Kill unused scan_s.h header
The scan_s.h header is not actually used for anything so just kill it off.
Cc: Lars Lindley <lindley@coyote.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch removes remaining typedef declarations from the w35und driver. Most
of them were unused so I just killed them off completely.
Cc: Lars Lindley <lindley@coyote.org> Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pekka Enberg [Sun, 19 Sep 2010 09:28:37 +0000 (12:28 +0300)]
staging: w35und: Kill dead HAL macros in wbhal_f.h
Fixes an uninitialized variable access in _rx_iq_calibration_loop_winbond():
CC [M] drivers/staging/winbond/phy_calibration.o
drivers/staging/winbond/phy_calibration.c: In function ‘_rx_iq_calibration_loop_winbond’:
drivers/staging/winbond/phy_calibration.c:1138: warning: ‘val’ is used uninitialized in this function
Cc: Lars Lindley <lindley@coyote.org> Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Jonathan Cameron [Tue, 21 Sep 2010 13:40:57 +0000 (14:40 +0100)]
staging: iio: amend macros for SCAN_EL creation to add separate index attr
As Manuel Stahl observed, putting data into the naming of an attribute
(beyond what it is for) breaks the one value per attribute rule (in spirit
at least). Hence we introduce a separate _index attribute for each scan
element to tell userspace the ordering in output from the buffer.
This will generate a lot of sparse warnings as all drivers will have unused
iio_const_attrs created. The rest of the set will clean these up.
The final patch will remove the old indexing method. It is not here so
as to maintain one or other interface for all devices as this set
progresses.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Manuel Stahl <manuel.stahl@iis.fraunhofer.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Jonathan Cameron [Tue, 21 Sep 2010 13:40:53 +0000 (14:40 +0100)]
staging: iio: adis16300 add _type attributes for all scan elements
Note some of the in driver type specifications do not match the
data sheet. I am assuming the datasheet is correct. This bug
would not have been apparent in the driver as these values were
unusued.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Manuel Stahl <manuel.stahl@iis.fraunhofer.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Henry Ptasinski [Tue, 21 Sep 2010 05:33:12 +0000 (22:33 -0700)]
staging: brcm80211: add fullmac driver
This patch to the existing bcm80211 directory in the staging tree adds fullmac
driver support for the BCM4329 SDIO chip from Broadcom. Configuration of the
mac80211 driver or the fullmac driver can be done through menuconfig.
Signed-off-by: Henry Ptasinski <henryp@broadcom.com> Signed-off-by: Nohee Ko <noheek@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
move all the header information to ti_wilink_st.h.
This header would then not only serve the local modules like the st_core.c,
st_kim.c and st_ll.c but also the external modules/protocol drivers that are
dependent on the shared transport driver.
Modify the source files to include the new header ti_wilink_st.h,
replace uint and family by a much more proper u8/u16 types.
This is required specifically for data members of structures coming
in from the chip and data members parsed from the binary firmware file.
staging: ath6kl: Fixing a race condition during initialization
The commit fixes a race condition in the initialization portion of the
driver. The problem was observed while testing with the kernel in the
staging-next tree. The wait on the ready event is signalled prematurely
before setting the arVersion.wlan_ver and arVersion.abi_ver. The code
waiting on this semaphore checks for the validity of these values and
hence may proceed with an un-updated values of these fields. The wakeup
signal is now sent after these values are set.
The commit fixes a compilation error that was encountered while using
a specific kernel configuration file. The problem was the use of some
functions defined in <linux/semaphore.h> without including the header
file explicitly. It was probably working before because of the
dependency getting implicitly satisfied via some other header file.
Marek Lindner [Sat, 18 Sep 2010 19:01:22 +0000 (21:01 +0200)]
Staging: batman-adv: Introduce update_primary_addr to update mac address
set_primary_if is currently misused to update the mac address in vis
packets. This unneeded and introduces overhead due to other operations
which must be done when updating the primary interface.
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de> Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Sven Eckelmann [Sat, 18 Sep 2010 19:01:21 +0000 (21:01 +0200)]
Staging: batman-adv: Track references of batman_if in set_primary_if
set_primary_if exchanges the current primary interfaces with a new one.
This is a new reference and thus we have to count it and decrease the
count of the old primary interface.
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Sven Eckelmann [Sat, 18 Sep 2010 19:01:20 +0000 (21:01 +0200)]
Staging: batman-adv: count batman_if list queries as reference
The return of get_batman_if_by_netdev and get_active_batman_if leaks a
pointer from the rcu protected list of interfaces. We must protect it to
prevent a too early release of the memory. Those functions must increase
the reference counter before rcu_read_unlock or it may be to late to
prevent a free.
hardif_add_interface must also increase the reference count for the
returned batman_if to make the behaviour consistent.
Reported-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Sven Eckelmann [Sat, 18 Sep 2010 19:01:19 +0000 (21:01 +0200)]
Staging: batman-adv: Use refcnt to track usage count of batman_if
get_batman_if_by_netdev and get_active_batman_if may leak data from the
rcu protected list of interfaces. The rcu protected list of all gateway
nodes leaks the actual data outside the read-side critical area. This is
not valid as we may free the data using a call_rcu created callback
after we unlock using rcu_read_unlock. A workaround is to provide a
reference count to be sure that the memory isn't freed to early.
It is currently only to implement the already existing functionality and
doesn't provide the full tracking of all usage cases.
Additionally, we must hardif_hold inside the
rcu_read_lock()..rcu_read_unlock() before we attach to the structure
which "leaks" it. When another function now removed it from its usage
context (primary_if, usage on stack, ...) then we must hardif_put it. If
it is decremented to zero then we can issue the call_rcu to the freeing
function. So "put" is not allowed inside an rcu_read_lock.
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Sven Eckelmann [Sat, 18 Sep 2010 19:01:18 +0000 (21:01 +0200)]
Staging: batman-adv: Use synchronize_rcu instead of call_rcu
It is recommended [1] to use synchronize_rcu to simplify the code -
especially when otherwise extra locking is needed to protect other code
from picking stale elements. It also protects us for emitting to many
callbacks which may results in OOM conditions.
The only reason not to use it, would be in performance critical sections
or when we are not allowed to block.
[1] Documentation/RCU/checklist.txt
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Regions which do not use rcu functions don't need to protected by
rcu_read_lock. If we want to protect data from being freed than it must
be covered by the same read-side critical section or otherwise the grace
period may already ended and freed the memory before we called
rcu_read_lock again.
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Sven Eckelmann [Sat, 18 Sep 2010 19:01:15 +0000 (21:01 +0200)]
Staging: batman-adv: Introduce if_list_lock to protect if_list
The update critical sections of if_list must be protected by a locking
primitive other than RCU. The iterator must also be protected by the
chosen locking mechanism.
The rtnl_lock in hardif_remove_interfaces must also be moved outside the
iterator primitive to ensure that we don't deadlock the kernel due to
differently nested locks in hardif_remove_interfaces and hard_if_event.
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Sven Eckelmann [Sat, 18 Sep 2010 19:01:14 +0000 (21:01 +0200)]
Staging: batman-adv: wait for call_rcu before unloading module
synchronize_rcu respective synchronize_net only waits for the rcu grace
period to elapse and we may fail to finish the calls which were made to
call_rcu in that time. In result the module could be unloaded during the
execution of the RCU callbacks.
rcu_barrier[1] will now wait for all outstanding RCU callbacks to finish
before continuing.
[1] Documentation/RCU/rcubarrier.txt
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>