]> Git Repo - linux.git/log
linux.git
11 years agodrivers: usb: core: devio.c: Spaces to tabs for proc_reapurbnonblock()
Matthias Beyer [Mon, 14 Oct 2013 19:46:36 +0000 (21:46 +0200)]
drivers: usb: core: devio.c: Spaces to tabs for proc_reapurbnonblock()

Replaced spaces by tabs for proc_reapurbnonblock() function.

Signed-off-by: Matthias Beyer <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agousb-storage: add quirk for mandatory READ_CAPACITY_16
Oliver Neukum [Mon, 14 Oct 2013 13:24:55 +0000 (15:24 +0200)]
usb-storage: add quirk for mandatory READ_CAPACITY_16

Some USB drive enclosures do not correctly report an
overflow condition if they hold a drive with a capacity
over 2TB and are confronted with a READ_CAPACITY_10.
They answer with their capacity modulo 2TB.
The generic layer cannot cope with that. It must be told
to use READ_CAPACITY_16 from the beginning.

Signed-off-by: Oliver Neukum <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agousb: serial: option: blacklist Olivetti Olicard200
Enrico Mioso [Tue, 15 Oct 2013 13:06:47 +0000 (15:06 +0200)]
usb: serial: option: blacklist Olivetti Olicard200

Interface 6 of this device speaks QMI as per tests done by us.
Credits go to Antonella for providing the hardware.

Signed-off-by: Enrico Mioso <[email protected]>
Signed-off-by: Antonella Pellizzari <[email protected]>
Tested-by: Dan Williams <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agoserial: vt8500: add missing braces
Roel Kluin [Mon, 14 Oct 2013 21:21:15 +0000 (23:21 +0200)]
serial: vt8500: add missing braces

Due to missing braces on an if statement, in presence of a device_node a
port was always assigned -1, regardless of any alias entries in the
device tree. Conversely, if device_node was NULL, an unitialized port
ended up being used.

This patch adds the missing braces, fixing the issues.

Signed-off-by: Roel Kluin <[email protected]>
Acked-by: Tony Prisk <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agoxhci: replace 'event' with 'cmd_comp_code' in set_deq and reset_ep handlers
Xenia Ragiadakou [Mon, 9 Sep 2013 10:30:01 +0000 (13:30 +0300)]
xhci: replace 'event' with 'cmd_comp_code' in set_deq and reset_ep handlers

This patch replaces the 'event' argument of xhci_handle_cmd_set_deq() and
xhci_handle_cmd_reset_ep(), which is used to retrieve the command completion
status code, with the cmd_comp_code directly, since it is available.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Acked-by: Sarah Sharp <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: add argument 'slot_id' in stop_ep, set_deq and reset_ep cmd handlers
Xenia Ragiadakou [Mon, 9 Sep 2013 10:30:00 +0000 (13:30 +0300)]
xhci: add argument 'slot_id' in stop_ep, set_deq and reset_ep cmd handlers

Since the Slot ID field in the command completion event matches the Slot ID
field in the associated command TRB for the Stop Endpoint, Set Dequeue Pointer
and Reset Endpoint commands, this patch adds in the handlers of their
completion events a 'slot_id' argument and removes the slot id calculation
in each of them.
Also, a WARN_ON() was added in case the slot ids reported by command TRB and
event TRB differ (although according to xhci spec rev1.0 that should not happen)

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: replace 'xhci->cmd_ring->dequeue' with 'trb' in stop_ep cmd handler
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:59 +0000 (13:29 +0300)]
xhci: replace 'xhci->cmd_ring->dequeue' with 'trb' in stop_ep cmd handler

This patch replaces 'xhci->cmd_ring->dequeue' with 'trb', the address of
the command TRB, since it is available to reduce line length.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Acked-by: Sarah Sharp <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: add variable 'cmd_type' in handle_cmd_completion()
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:58 +0000 (13:29 +0300)]
xhci: add variable 'cmd_type' in handle_cmd_completion()

This patch adds a new variable 'cmd_type' to hold the command type so that
switch cases can be simplified by removing TRB_TYPE() macro improving
code readability.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: add variable 'cmd_trb' in handle_cmd_completion()
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:57 +0000 (13:29 +0300)]
xhci: add variable 'cmd_trb' in handle_cmd_completion()

This patch adds a new variable 'cmd_trb' to hold the address of the
command TRB, that is associated with the command completion event,
and to replace repetitions of xhci->cmd_ring->dequeue into the code.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Acked-by: Sarah Sharp <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: add variable 'cmd_comp_code' in handle_cmd_completion()
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:56 +0000 (13:29 +0300)]
xhci: add variable 'cmd_comp_code' in handle_cmd_completion()

This patch adds a new variable 'cmd_comp_code' to hold the command completion
status code aiming to reduce code duplication and to improve code readability.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Acked-by: Sarah Sharp <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: refactor TRB_CONFIG_EP case into function
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:55 +0000 (13:29 +0300)]
xhci: refactor TRB_CONFIG_EP case into function

The function that handles xHCI command completion is much too long and
there is need to be broken up into individual functions for each command
completion to improve code readablity.
This patch refactors the code in TRB_CONFIG_EP switch case, in
handle_cmd_completion(), into a fuction named xhci_handle_cmd_config_ep().

There were added two additional variables, 'add_flags' and 'drop_flags',
to reduce line length below 80 chars and improve code readability.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: remove unused 'ep_ring' variable in handle_cmd_completion()
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:54 +0000 (13:29 +0300)]
xhci: remove unused 'ep_ring' variable in handle_cmd_completion()

This patch removes the variable 'ep_ring' that is assigned in
TRB_CONFIG_EP switch case but never used.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: refactor TRB_EVAL_CONTEXT case into function
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:53 +0000 (13:29 +0300)]
xhci: refactor TRB_EVAL_CONTEXT case into function

The function that handles xHCI command completion is much too long and
there is need to be broken up into individual functions for each command
completion to improve code readablity.
This patch refactors the code in TRB_EVAL_CONTEXT switch case in
handle_cmd_completion() into a fuction named xhci_handle_cmd_eval_ctx().

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: refactor TRB_NEC_GET_FW case into function
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:52 +0000 (13:29 +0300)]
xhci: refactor TRB_NEC_GET_FW case into function

The function that handles xHCI command completion is much too long and
there is need to be broken up into individual functions for each command
completion to improve code readablity.
This patch refactors the code in TRB_NEC_GET_FW switch case in
handle_cmd_completion() into a fuction named xhci_handle_cmd_nec_get_fw().

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: refactor TRB_RESET_DEV case into function
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:51 +0000 (13:29 +0300)]
xhci: refactor TRB_RESET_DEV case into function

The function that handles xHCI command completion is much too long and
there is need to be broken up into individual functions for each command
completion to improve code readablity.
This patch refactors the code in TRB_RESET_DEV switch case in
handle_cmd_completion() into a fuction named xhci_handle_cmd_reset_dev().

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: use completion event's slot id rather than dig it out of command
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:50 +0000 (13:29 +0300)]
xhci: use completion event's slot id rather than dig it out of command

Since the slot id retrieved from the Reset Device TRB matches the slot id in
the command completion event, which is available, there is no need to determine
it again.
This patch removes the uneccessary reassignment to slot id and adds a WARN_ON
in case the two Slot ID fields differ (although according xhci spec rev1.0
they should not differ).

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: refactor TRB_ADDR_DEV case into function
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:49 +0000 (13:29 +0300)]
xhci: refactor TRB_ADDR_DEV case into function

The function that handles xHCI command completion is much too long and
there is need to be broken up into individual functions for each command
completion to improve code readablity.
This patch refactors the code in TRB_ADDR_DEV switch case in
handle_cmd_completion() into a fuction named xhci_handle_cmd_addr_dev().

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: refactor TRB_DISABLE_SLOT case into function
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:48 +0000 (13:29 +0300)]
xhci: refactor TRB_DISABLE_SLOT case into function

The function that handles xHCI command completion is much too long and
there is need to be broken up into individual functions for each command
completion to improve code readablity.
This patch refactors the code in TRB_DISABLE_SLOT switch case in
handle_cmd_completion() into a fuction named xhci_handle_cmd_disable_slot().

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: refactor TRB_ENABLE_SLOT case into function
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:47 +0000 (13:29 +0300)]
xhci: refactor TRB_ENABLE_SLOT case into function

The function that handles xHCI command completion is much too long and
there is need to be broken up into individual functions for each command
completion to improve code readablity.
This patch refactors the code in TRB_ENABLE_SLOT switch case in
handle_cmd_completion() into a fuction named xhci_handle_cmd_enable_slot().

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: rename existing Command Completion Event handlers
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:46 +0000 (13:29 +0300)]
xhci: rename existing Command Completion Event handlers

This patch renames the function handlers of a triggered Command Completion
Event that correspond to each command type into 'xhci_handle_cmd_<type>'.
That is done to give a consistent naming space to all the functions that
handle Command Completion Events and that will permit the code reader to
reference to them more easily.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Acked-by: Sarah Sharp <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: remove unused argument from xhci_giveback_urb_in_irq()
Xenia Ragiadakou [Mon, 9 Sep 2013 10:29:45 +0000 (13:29 +0300)]
xhci: remove unused argument from xhci_giveback_urb_in_irq()

This patch removes the "adjective" argument from xhci_giveback_urb_in_irq(),
since it is not used in the function anymore.

Signed-off-by: Xenia Ragiadakou <[email protected]>
Acked-by: Sarah Sharp <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: correct the usage of USB_CTRL_SET_TIMEOUT
xiao jin [Fri, 11 Oct 2013 00:57:03 +0000 (08:57 +0800)]
xhci: correct the usage of USB_CTRL_SET_TIMEOUT

The usage of USB_CTRL_SET_TIMEOUT in xhci is incorrect.
The definition of USB_CTRL_SET_TIMEOUT is 5000ms. The
input timeout to wait_for_completion_interruptible_timeout
is jiffies. That makes the timeout be longer than what
we want, such as 50s in some platform.

The patch is to use XHCI_CMD_DEFAULT_TIMEOUT instead of
USB_CTRL_SET_TIMEOUT as command completion event timeout.

Signed-off-by: xiao jin <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agousb: xhci: Staticize xhci_del_comp_mod_timer
Sachin Kamat [Mon, 16 Sep 2013 06:31:34 +0000 (12:01 +0530)]
usb: xhci: Staticize xhci_del_comp_mod_timer

'xhci_del_comp_mod_timer' is local to this file.

Signed-off-by: Sachin Kamat <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
11 years agousb: Push USB2 LPM disable on disconnect into USB core.
Sarah Sharp [Tue, 8 Oct 2013 15:28:43 +0000 (08:28 -0700)]
usb: Push USB2 LPM disable on disconnect into USB core.

The USB core currently handles enabling and disabling optional USB power
management features during device transitions (device suspend/resume,
driver bind/unbind, device reset, and device disconnect).  Those
optional power features include Latency Tolerance Messaging (LTM),
USB 3.0 Link PM, and USB 2.0 Link PM.

The USB core currently enables LPM on device enumeration and disables
USB 2.0 Link PM when the device is reset.  However, the xHCI driver
disables LPM when the device is disconnected and the device context is
freed.  Push the call up into the USB core, in order to be consistent
with the core handling all power management enabling and disabling.

Signed-off-by: Sarah Sharp <[email protected]>
11 years agoxhci: Enable LPM support only for hardwired or BESL devices
Mathias Nyman [Mon, 30 Sep 2013 14:26:31 +0000 (17:26 +0300)]
xhci: Enable LPM support only for hardwired or BESL devices

Some usb3 devices falsely claim they support usb2 hardware Link PM
when connected to a usb2 port. We only trust hardwired devices
or devices with the later BESL LPM support to be LPM enabled as default.

[Note: Sarah re-worked the original patch to move the code into the USB
core, and updated it to check whether the USB device supports BESL,
instead of checking if the xHCI port it's connected to supports BESL
encoding.]

This patch should be backported to kernels as old as 3.11, that
contain the commit a558ccdcc71c7770c5e80c926a31cfe8a3892a09 "usb: xhci:
add USB2 Link power management BESL support".  Without this fix, some
USB 3.0 devices will not enumerate or work properly under USB 2.0 ports
on Haswell-ULT systems.

Signed-off-by: Mathias Nyman <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
Cc: [email protected]
11 years agousb: Don't enable USB 2.0 Link PM by default.
Sarah Sharp [Mon, 30 Sep 2013 14:26:28 +0000 (17:26 +0300)]
usb: Don't enable USB 2.0 Link PM by default.

How it's supposed to work:
--------------------------

USB 2.0 Link PM is a lower power state that some newer USB 2.0 devices
support.  USB 3.0 devices certified by the USB-IF are required to
support it if they are plugged into a USB 2.0 only port, or a USB 2.0
cable is used.  USB 2.0 Link PM requires both a USB device and a host
controller that supports USB 2.0 hardware-enabled LPM.

USB 2.0 Link PM is designed to be enabled once by software, and the host
hardware handles transitions to the L1 state automatically.  The premise
of USB 2.0 Link PM is to be able to put the device into a lower power
link state when the bus is idle or the device NAKs USB IN transfers for
a specified amount of time.

...but hardware is broken:
--------------------------

It turns out many USB 3.0 devices claim to support USB 2.0 Link PM (by
setting the LPM bit in their USB 2.0 BOS descriptor), but they don't
actually implement it correctly.  This manifests as the USB device
refusing to respond to transfers when it is plugged into a USB 2.0 only
port under the Haswell-ULT/Lynx Point LP xHCI host.

These devices pass the xHCI driver's simple test to enable USB 2.0 Link
PM, wait for the port to enter L1, and then bring it back into L0.  They
only start to break when L1 entry is interleaved with transfers.

Some devices then fail to respond to the next control transfer (usually
a Set Configuration).  This results in devices never enumerating.

Other mass storage devices (such as a later model Western Digital My
Passport USB 3.0 hard drive) respond fine to going into L1 between
control transfers.  They ACK the entry, come out of L1 when the host
needs to send a control transfer, and respond properly to those control
transfers.  However, when the first READ10 SCSI command is sent, the
device NAKs the data phase while it's reading from the spinning disk.
Eventually, the host requests to put the link into L1, and the device
ACKs that request.  Then it never responds to the data phase of the
READ10 command.  This results in not being able to read from the drive.

Some mass storage devices (like the Corsair Survivor USB 3.0 flash
drive) are well behaved.  They ACK the entry into L1 during control
transfers, and when SCSI commands start coming in, they NAK the requests
to go into L1, because they need to be at full power.

Not all USB 3.0 devices advertise USB 2.0 link PM support.  My Point
Grey USB 3.0 webcam advertises itself as a USB 2.1 device, but doesn't
have a USB 2.0 BOS descriptor, so we don't enable USB 2.0 Link PM.  I
suspect that means the device isn't certified.

What do we do about it?
-----------------------

There's really no good way for the kernel to test these devices.
Therefore, the kernel needs to disable USB 2.0 Link PM by default, and
distros will have to enable it by writing 1 to the sysfs file
/sys/bus/usb/devices/../power/usb2_hardware_lpm.  Rip out the xHCI Link
PM test, since it's not sufficient to detect these buggy devices, and
don't automatically enable LPM after the device is addressed.

This patch should be backported to kernels as old as 3.11, that
contain the commit a558ccdcc71c7770c5e80c926a31cfe8a3892a09 "usb: xhci:
add USB2 Link power management BESL support".  Without this fix, some
USB 3.0 devices will not enumerate or work properly under USB 2.0 ports
on Haswell-ULT systems.

Signed-off-by: Sarah Sharp <[email protected]>
Cc: [email protected]
11 years agoxhci: Set L1 device slot on USB2 LPM enable/disable.
Sarah Sharp [Tue, 8 Oct 2013 00:17:20 +0000 (17:17 -0700)]
xhci: Set L1 device slot on USB2 LPM enable/disable.

To enable USB 2.0 Link Power Management (LPM), the xHCI host controller
needs the device slot ID to generate the device address used in L1 entry
tokens.  That information is set in the L1 device slot ID field of the
USB 2.0 LPM registers.

Currently, the L1 device slot ID is overwritten when the xHCI driver
initiates the software test of USB 2.0 Link PM in
xhci_usb2_software_lpm_test.  It is never cleared when USB 2.0 Link PM
is disabled for the device.  That should be harmless, because the
Hardware LPM Enable (HLE) bit is cleared when USB 2.0 Link PM is
disabled, so the host should not pay attention to the slot ID.

This patch should have no effect on host behavior, but since
xhci_usb2_software_lpm_test is going away in an upcoming bug fix patch,
we need to move that code to the function that enables and disables USB
2.0 Link PM.

This patch should be backported to kernels as old as 3.11, that contain
the commit a558ccdcc71c7770c5e80c926a31cfe8a3892a09 "usb: xhci: add USB2
Link power management BESL support".  The upcoming bug fix patch is also
marked for that stable kernel.

Signed-off-by: Sarah Sharp <[email protected]>
Cc: [email protected]
11 years agousb: Disable USB 2.0 Link PM before device reset.
Sarah Sharp [Mon, 30 Sep 2013 14:26:29 +0000 (17:26 +0300)]
usb: Disable USB 2.0 Link PM before device reset.

Before the USB core resets a device, we need to disable the L1 timeout
for the roothub, if USB 2.0 Link PM is enabled.  Otherwise the port may
transition into L1 in between descriptor fetches, before we know if the
USB device descriptors changed.  LPM will be re-enabled after the
full device descriptors are fetched, and we can confirm the device still
supports USB 2.0 LPM after the reset.

We don't need to wait for the USB device to exit L1 before resetting the
device, since the xHCI roothub port diagrams show a transition to the
Reset state from any of the Ux states (see Figure 34 in the 2012-08-14
xHCI specification update).

This patch should be backported to kernels as old as 3.2, that contain
the commit 65580b4321eb36f16ae8b5987bfa1bb948fc5112 "xHCI: set USB2
hardware LPM".  That was the first commit to enable USB 2.0
hardware-driven Link Power Management.

Signed-off-by: Sarah Sharp <[email protected]>
Cc: [email protected]
11 years agoUSB: quirks: add touchscreen that is dazzeled by remote wakeup
Oliver Neukum [Wed, 16 Oct 2013 10:26:07 +0000 (12:26 +0200)]
USB: quirks: add touchscreen that is dazzeled by remote wakeup

The device descriptors are messed up after remote wakeup

Signed-off-by: Oliver Neukum <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agoALSA: hdsp - info leak in snd_hdsp_hwdep_ioctl()
Dan Carpenter [Wed, 16 Oct 2013 08:44:25 +0000 (11:44 +0300)]
ALSA: hdsp - info leak in snd_hdsp_hwdep_ioctl()

In GCC the sizeof(hdsp_version) is 8 because there is a 2 byte hole at
the end of the struct after ->firmware_rev.

Signed-off-by: Dan Carpenter <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
11 years agodm snapshot: fix data corruption
Mikulas Patocka [Wed, 16 Oct 2013 02:17:47 +0000 (03:17 +0100)]
dm snapshot: fix data corruption

This patch fixes a particular type of data corruption that has been
encountered when loading a snapshot's metadata from disk.

When we allocate a new chunk in persistent_prepare, we increment
ps->next_free and we make sure that it doesn't point to a metadata area
by further incrementing it if necessary.

When we load metadata from disk on device activation, ps->next_free is
positioned after the last used data chunk. However, if this last used
data chunk is followed by a metadata area, ps->next_free is positioned
erroneously to the metadata area. A newly-allocated chunk is placed at
the same location as the metadata area, resulting in data or metadata
corruption.

This patch changes the code so that ps->next_free skips the metadata
area when metadata are loaded in function read_exceptions.

The patch also moves a piece of code from persistent_prepare_exception
to a separate function skip_metadata to avoid code duplication.

CVE-2013-4299

Signed-off-by: Mikulas Patocka <[email protected]>
Cc: [email protected]
Cc: Mike Snitzer <[email protected]>
Signed-off-by: Alasdair G Kergon <[email protected]>
11 years agoapparmor: fix bad lock balance when introspecting policy
John Johansen [Mon, 14 Oct 2013 18:46:27 +0000 (11:46 -0700)]
apparmor: fix bad lock balance when introspecting policy

BugLink: http://bugs.launchpad.net/bugs/1235977
The profile introspection seq file has a locking bug when policy is viewed
from a virtual root (task in a policy namespace), introspection from the
real root is not affected.

The test for root
    while (parent) {
is correct for the real root, but incorrect for tasks in a policy namespace.
This allows the task to walk backup the policy tree past its virtual root
causing it to be unlocked before the virtual root should be in the p_stop
fn.

This results in the following lockdep back trace:
[   78.479744] [ BUG: bad unlock balance detected! ]
[   78.479792] 3.11.0-11-generic #17 Not tainted
[   78.479838] -------------------------------------
[   78.479885] grep/2223 is trying to release lock (&ns->lock) at:
[   78.479952] [<ffffffff817bf3be>] mutex_unlock+0xe/0x10
[   78.480002] but there are no more locks to release!
[   78.480037]
[   78.480037] other info that might help us debug this:
[   78.480037] 1 lock held by grep/2223:
[   78.480037]  #0:  (&p->lock){+.+.+.}, at: [<ffffffff812111bd>] seq_read+0x3d/0x3d0
[   78.480037]
[   78.480037] stack backtrace:
[   78.480037] CPU: 0 PID: 2223 Comm: grep Not tainted 3.11.0-11-generic #17
[   78.480037] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[   78.480037]  ffffffff817bf3be ffff880007763d60 ffffffff817b97ef ffff8800189d2190
[   78.480037]  ffff880007763d88 ffffffff810e1c6e ffff88001f044730 ffff8800189d2190
[   78.480037]  ffffffff817bf3be ffff880007763e00 ffffffff810e5bd6 0000000724fe56b7
[   78.480037] Call Trace:
[   78.480037]  [<ffffffff817bf3be>] ? mutex_unlock+0xe/0x10
[   78.480037]  [<ffffffff817b97ef>] dump_stack+0x54/0x74
[   78.480037]  [<ffffffff810e1c6e>] print_unlock_imbalance_bug+0xee/0x100
[   78.480037]  [<ffffffff817bf3be>] ? mutex_unlock+0xe/0x10
[   78.480037]  [<ffffffff810e5bd6>] lock_release_non_nested+0x226/0x300
[   78.480037]  [<ffffffff817bf2fe>] ? __mutex_unlock_slowpath+0xce/0x180
[   78.480037]  [<ffffffff817bf3be>] ? mutex_unlock+0xe/0x10
[   78.480037]  [<ffffffff810e5d5c>] lock_release+0xac/0x310
[   78.480037]  [<ffffffff817bf2b3>] __mutex_unlock_slowpath+0x83/0x180
[   78.480037]  [<ffffffff817bf3be>] mutex_unlock+0xe/0x10
[   78.480037]  [<ffffffff81376c91>] p_stop+0x51/0x90
[   78.480037]  [<ffffffff81211408>] seq_read+0x288/0x3d0
[   78.480037]  [<ffffffff811e9d9e>] vfs_read+0x9e/0x170
[   78.480037]  [<ffffffff811ea8cc>] SyS_read+0x4c/0xa0
[   78.480037]  [<ffffffff817ccc9d>] system_call_fastpath+0x1a/0x1f

Signed-off-by: John Johansen <[email protected]>
Signed-off-by: James Morris <[email protected]>
11 years agoapparmor: fix memleak of the profile hash
John Johansen [Mon, 14 Oct 2013 18:44:34 +0000 (11:44 -0700)]
apparmor: fix memleak of the profile hash

BugLink: http://bugs.launchpad.net/bugs/1235523
This fixes the following kmemleak trace:
unreferenced object 0xffff8801e8c35680 (size 32):
  comm "apparmor_parser", pid 691, jiffies 4294895667 (age 13230.876s)
  hex dump (first 32 bytes):
    e0 d3 4e b5 ac 6d f4 ed 3f cb ee 48 1c fd 40 cf  ..N..m..?..H..@.
    5b cc e9 93 00 00 00 00 00 00 00 00 00 00 00 00  [...............
  backtrace:
    [<ffffffff817a97ee>] kmemleak_alloc+0x4e/0xb0
    [<ffffffff811ca9f3>] __kmalloc+0x103/0x290
    [<ffffffff8138acbc>] aa_calc_profile_hash+0x6c/0x150
    [<ffffffff8138074d>] aa_unpack+0x39d/0xd50
    [<ffffffff8137eced>] aa_replace_profiles+0x3d/0xd80
    [<ffffffff81376937>] profile_replace+0x37/0x50
    [<ffffffff811e9f2d>] vfs_write+0xbd/0x1e0
    [<ffffffff811ea96c>] SyS_write+0x4c/0xa0
    [<ffffffff817ccb1d>] system_call_fastpath+0x1a/0x1f
    [<ffffffffffffffff>] 0xffffffffffffffff

Signed-off-by: John Johansen <[email protected]>
Signed-off-by: James Morris <[email protected]>
11 years agoMerge tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux
Linus Torvalds [Wed, 16 Oct 2013 00:14:13 +0000 (17:14 -0700)]
Merge tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux

Pull device tree fixes and reverts from Grant Likely:
 "One bug fix and three reverts.  The reverts back out the slightly
  controversial feeding the entire device tree into the random pool and
  the reserved-memory binding which isn't fully baked yet.  Expect the
  reserved-memory patches at least to resurface for v3.13.

  The bug fixes removes a scary but harmless warning on SPARC that was
  introduced in the v3.12 merge window.  v3.13 will contain a proper fix
  that makes the new code work on SPARC.

  On the plus side, the diffstat looks *awesome*.  I love removing lines
  of code"

* tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux:
  Revert "drivers: of: add initialization code for dma reserved memory"
  Revert "ARM: init: add support for reserved memory defined by device tree"
  Revert "of: Feed entire flattened device tree into the random pool"
  of: fix unnecessary warning on missing /cpus node

11 years agoMerge branch 'fixes-for-v3.12' of git://git.linaro.org/people/mszyprowski/linux-dma...
Linus Torvalds [Wed, 16 Oct 2013 00:13:34 +0000 (17:13 -0700)]
Merge branch 'fixes-for-v3.12' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping

Pull DMA-mapping fix from Marek Szyprowski:
 "A bugfix for the IOMMU-based implementation of dma-mapping subsystem
  for ARM architecture"

* 'fixes-for-v3.12' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
  ARM: dma-mapping: Always pass proper prot flags to iommu_map()

11 years agocpufreq / intel_pstate: Fix max_perf_pct on resume
Dirk Brandewie [Tue, 15 Oct 2013 18:06:14 +0000 (11:06 -0700)]
cpufreq / intel_pstate: Fix max_perf_pct on resume

If the system is suspended while max_perf_pct is less than 100 percent
or no_turbo set policy->{min,max} will be set incorrectly with scaled
values which turn the scaled values into hard limits.

References: https://bugzilla.kernel.org/show_bug.cgi?id=61241
Reported-by: Patrick Bartels <[email protected]>
Signed-off-by: Dirk Brandewie <[email protected]>
Cc: 3.9+ <[email protected]> # 3.9+
Signed-off-by: Rafael J. Wysocki <[email protected]>
11 years agoMerge git://git.kernel.org/pub/scm/virt/kvm/kvm
Linus Torvalds [Tue, 15 Oct 2013 23:22:51 +0000 (16:22 -0700)]
Merge git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull kvm fix from Gleb Natapov.

* git://git.kernel.org/pub/scm/virt/kvm/kvm:
  KVM: Enable pvspinlock after jump_label_init() to avoid VM hang

11 years agoMerge tag 'stable/for-linus-3.12-rc4-tag' of git://git.kernel.org/pub/scm/linux/kerne...
Linus Torvalds [Tue, 15 Oct 2013 23:22:11 +0000 (16:22 -0700)]
Merge tag 'stable/for-linus-3.12-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull Xen fixes from Stefano Stabellini:
 "A small fix for Xen on x86_32 and a build fix for xen-tpmfront on
  arm64"

* tag 'stable/for-linus-3.12-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen: Fix possible user space selector corruption
  tpm: xen-tpmfront: fix missing declaration of xen_domain

11 years agoACPI: remove /proc/acpi/event from ACPI_BUTTON help
Krzysztof Mazur [Sat, 12 Oct 2013 22:11:00 +0000 (00:11 +0200)]
ACPI: remove /proc/acpi/event from ACPI_BUTTON help

Commit 1696d9d (ACPI: Remove the old /proc/acpi/event interface)
left /proc/acpi/event in the ACPI_BUTTON help in Kconfig, so
remove it from there.

[rjw: Changelog]
Signed-off-by: Krzysztof Mazur <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
11 years agoACPI / power: Release resource_lock after acpi_power_get_state() return error
Lan Tianyu [Tue, 15 Oct 2013 11:48:11 +0000 (19:48 +0800)]
ACPI / power: Release resource_lock after acpi_power_get_state() return error

In acpi_resume_power_resources() resource_lock should be released
when acpi_power_get_state() fails and before passing to next power
resource on the list.

Signed-off-by: Lan Tianyu <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
11 years agoiio:buffer: Free active scan mask in iio_disable_all_buffers()
Lars-Peter Clausen [Tue, 15 Oct 2013 08:38:00 +0000 (09:38 +0100)]
iio:buffer: Free active scan mask in iio_disable_all_buffers()

Usually the active scan mask is freed in __iio_update_buffers() when the buffer
is disabled. But when the device is still sampling when it is removed we'll end
up disabling the buffers in iio_disable_all_buffers(). So we also need to free
the active scan mask here, otherwise it will be leaked.

Signed-off-by: Lars-Peter Clausen <[email protected]>
Signed-off-by: Jonathan Cameron <[email protected]>
11 years agoext[34]: fix double put in tmpfile
Miklos Szeredi [Thu, 10 Oct 2013 14:48:19 +0000 (16:48 +0200)]
ext[34]: fix double put in tmpfile

d_tmpfile() already swallowed the inode ref.

Signed-off-by: Miklos Szeredi <[email protected]>
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
11 years agousb: gadget: s3c-hsotg: fix can_write limit for non-periodic endpoints
Robert Baldyga [Tue, 24 Sep 2013 09:24:28 +0000 (11:24 +0200)]
usb: gadget: s3c-hsotg: fix can_write limit for non-periodic endpoints

Value of can_write variable in s3c_hsotg_write_fifo function should be limited
to 512 only for non-periodic endpoints. There was some discrepancy between
comment and code, becouse comment suggests correct behavior, but in the code
limit was applied to periodic endpoints too. So there is additional check
causing the limitation concerns only non-periodic endpoints.

Signed-off-by: Robert Baldyga <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: s3c-hsotg: fix interrupt configuration in dedicated-fifo mode
Robert Baldyga [Thu, 19 Sep 2013 09:50:23 +0000 (11:50 +0200)]
usb: gadget: s3c-hsotg: fix interrupt configuration in dedicated-fifo mode

In dedicated-fifo mode TxFIFOEmpty interrupt should be asserted when TxFIFO
for this endpoint is completly empty, so NPTxFEmpLvl and PTxFEmpLvl bits are
set in GAHBCFG register.
In DIEPMSK register INTknTXFEmpMsk is set, becouse it's needed to indicate
FIFO Empty state.

Signed-off-by: Robert Baldyga <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: s3c-hsotg: fix clear feature ENDPOINT_HALT
Robert Baldyga [Thu, 19 Sep 2013 09:50:22 +0000 (11:50 +0200)]
usb: gadget: s3c-hsotg: fix clear feature ENDPOINT_HALT

All requests for endpoint are completed when it was halted and the halt was
cleared by CLEAR_FEATURE, but not when new state is same as previous.

Signed-off-by: Robert Baldyga <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: s3c-hsotg: fix "halted" property updating
Robert Baldyga [Thu, 19 Sep 2013 09:50:21 +0000 (11:50 +0200)]
usb: gadget: s3c-hsotg: fix "halted" property updating

Property "halted" of s3c_hsotg_ep structure is actually initialised when ep
enabled, and changed when halt is set/cleared.

Signed-off-by: Robert Baldyga <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: s3c-hsotg: add DAINT masking
Robert Baldyga [Thu, 19 Sep 2013 09:50:20 +0000 (11:50 +0200)]
usb: gadget: s3c-hsotg: add DAINT masking

In OEPInt/IEPInt interrupts handling added bitwise and of DAINT and
DAINTMSK, because we should handle masked interrupts only.

Signed-off-by: Robert Baldyga <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: s3c-hsotg: fix endpoint interrupts handling
Robert Baldyga [Thu, 19 Sep 2013 09:50:19 +0000 (11:50 +0200)]
usb: gadget: s3c-hsotg: fix endpoint interrupts handling

When s3c_hsotg_trytx is called for ep without enqueued request, interrupts
for this ep are disabled, to prevent interrupt flooding. Interrupts are
enabled when new request for this ep is starting.

Signed-off-by: Robert Baldyga <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: s3c-hsotg: fix s3c_hsotg_write_fifo function for dedicated fifo mode
Robert Baldyga [Thu, 19 Sep 2013 09:50:18 +0000 (11:50 +0200)]
usb: gadget: s3c-hsotg: fix s3c_hsotg_write_fifo function for dedicated fifo mode

In s3c_hsotg_write_fifo function PTxFEmp/NPTxFEmp interrupts are enabled
only in shared-fifo mode. In dedicated-fifo mode they should not be used
(when enabled then cause interrupt storm).

Signed-off-by: Robert Baldyga <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: s3c-hsotg: fix "protocol stall" handling
Robert Baldyga [Thu, 19 Sep 2013 09:50:17 +0000 (11:50 +0200)]
usb: gadget: s3c-hsotg: fix "protocol stall" handling

After normal handling of SetupDone interrupt, XferCompl interrupt occurs, and
then we enqueue new setup request. But when ep0 is stalled, there is no
XferCompl, so we have to enqueue setup request immediately after stalling ep.
Otherwise incoming control requests won't be processed correctly.

Signed-off-by: Robert Baldyga <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: storage_common: pass filesem to fsg_store_cdrom
Andrzej Pietrasiewicz [Tue, 15 Oct 2013 06:33:13 +0000 (08:33 +0200)]
usb: gadget: storage_common: pass filesem to fsg_store_cdrom

If cdrom flag is set ro flag is implied. Try setting the ro first, and
only if it succeeds set the cdrom flag.

Signed-off-by: Andrzej Pietrasiewicz <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Acked-by: Michal Nazarewicz <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agousb: gadget: storage_common: use strtobool instead of kstrtouint
Andrzej Pietrasiewicz [Tue, 15 Oct 2013 06:33:12 +0000 (08:33 +0200)]
usb: gadget: storage_common: use strtobool instead of kstrtouint

strtobool is more flexible for the user and is more appropriate in the
context.

Signed-off-by: Andrzej Pietrasiewicz <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Acked-by: Michal Nazarewicz <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
11 years agoKVM: Enable pvspinlock after jump_label_init() to avoid VM hang
Raghavendra K T [Wed, 9 Oct 2013 09:03:21 +0000 (14:33 +0530)]
KVM: Enable pvspinlock after jump_label_init() to avoid VM hang

We use jump label to enable pv-spinlock. With the changes in (442e0973e927
Merge branch 'x86/jumplabel'), the jump label behaviour has changed
that would result in eventual hang of the VM since we would end up in a
situation where slow path locks would halt the vcpus but we will not be
able to wakeup the vcpu by lock releaser using unlock kick.

Similar problem in Xen and more detailed description is available in
a945928ea270 (xen: Do not enable spinlocks before jump_label_init()
has executed)

This patch splits kvm_spinlock_init to separate jump label changes with
pvops patching and also make jump label enabling after jump_label_init().

Signed-off-by: Raghavendra K T <[email protected]>
Reviewed-by: Paolo Bonzini <[email protected]>
Reviewed-by: Steven Rostedt <[email protected]>
Signed-off-by: Gleb Natapov <[email protected]>
11 years agoALSA: us122l: Fix pcm_usb_stream mmapping regression
Takashi Iwai [Mon, 14 Oct 2013 14:02:15 +0000 (16:02 +0200)]
ALSA: us122l: Fix pcm_usb_stream mmapping regression

The pcm_usb_stream plugin requires the mremap explicitly for the read
buffer, as it expands itself once after reading the required size.
But the commit [314e51b9: mm: kill vma flag VM_RESERVED and
mm->reserved_vm counter] converted blindly to a combination of
VM_DONTEXPAND | VM_DONTDUMP like other normal drivers, and this
resulted in the failure of mremap().

For fixing this regression, we need to remove VM_DONTEXPAND for the
read-buffer mmap.

Reported-and-tested-by: James Miller <[email protected]>
Cc: <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
11 years agoRevert "drivers: of: add initialization code for dma reserved memory"
Marek Szyprowski [Fri, 11 Oct 2013 07:27:28 +0000 (09:27 +0200)]
Revert "drivers: of: add initialization code for dma reserved memory"

This reverts commit 9d8eab7af79cb4ce2de5de39f82c455b1f796963. There is
still no consensus on the bindings for the reserved memory and various
drawbacks of the proposed solution has been shown, so the best now is to
revert it completely and start again from scratch later.

Signed-off-by: Marek Szyprowski <[email protected]>
Signed-off-by: Grant Likely <[email protected]>
11 years agoRevert "ARM: init: add support for reserved memory defined by device tree"
Marek Szyprowski [Fri, 11 Oct 2013 07:27:27 +0000 (09:27 +0200)]
Revert "ARM: init: add support for reserved memory defined by device tree"

This reverts commit 10bcdfb8ba24760f715f0a700c3812747eddddf5. There is
no consensus on the bindings for the reserved memory, so the code for
handing it will be reverted.

Signed-off-by: Marek Szyprowski <[email protected]>
Signed-off-by: Grant Likely <[email protected]>
11 years agox86: Update UV3 hub revision ID
Russ Anderson [Mon, 14 Oct 2013 16:17:34 +0000 (11:17 -0500)]
x86: Update UV3 hub revision ID

The UV3 hub revision ID is different than expected.  The first
revision was supposed to start at 1 but instead will start at 0.

Signed-off-by: Russ Anderson <[email protected]>
Cc: <[email protected]> # v3.9, v3.10, v3.11
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
11 years agoMerge tag 'vfio-v3.12-rc5' of git://github.com/awilliam/linux-vfio
Linus Torvalds [Tue, 15 Oct 2013 01:11:28 +0000 (18:11 -0700)]
Merge tag 'vfio-v3.12-rc5' of git://github.com/awilliam/linux-vfio

Pull vfio fix from Alex Williamson:
 "Fix an incorrect break out of nested loop in iommu mapping code"

* tag 'vfio-v3.12-rc5' of git://github.com/awilliam/linux-vfio:
  VFIO: vfio_iommu_type1: fix bug caused by break in nested loop

11 years agoMerge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
Linus Torvalds [Tue, 15 Oct 2013 00:43:33 +0000 (17:43 -0700)]
Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband

Pull infiniband updates from Roland Dreier:
 "Last batch of IB changes for 3.12: many mlx5 hardware driver fixes
  plus one trivial semicolon cleanup"

* tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  IB: Remove unnecessary semicolons
  IB/mlx5: Ensure proper synchronization accessing memory
  IB/mlx5: Fix alignment of reg umr gather buffers
  IB/mlx5: Fix eq names to display nicely in /proc/interrupts
  mlx5: Fix error code translation from firmware to driver
  IB/mlx5: Fix opt param mask according to firmware spec
  mlx5: Fix opt param mask for sq err to rts transition
  IB/mlx5: Disable atomic operations
  mlx5: Fix layout of struct mlx5_init_seg
  mlx5: Keep polling to reclaim pages while any returned
  IB/mlx5: Avoid async events on invalid port number
  IB/mlx5: Decrease memory consumption of mr caches
  mlx5: Remove checksum on command interface commands
  IB/mlx5: Fix memory leak in mlx5_ib_create_srq
  IB/mlx5: Flush cache workqueue before destroying it
  IB/mlx5: Fix send work queue size calculation

11 years agoRevert "usb: musb: gadget: fix otg active status flag"
Greg Kroah-Hartman [Mon, 14 Oct 2013 20:06:15 +0000 (13:06 -0700)]
Revert "usb: musb: gadget: fix otg active status flag"

This reverts commit 9b0a1de3c85d99d881c86a29b3d52da7b9c7bd61.

Aaro writes:
With v3.12-rc4 I can no longer connect to N800 (OMAP2) with USB
(peripheral, g_ether).

According to git bisect this is caused by:

9b0a1de3c85d99d881c86a29b3d52da7b9c7bd61 is the first bad commit

So revert this patch, as Felipe says:
It's unfortunate that tusb6010 is so messed up

Reported-by: Aaro Koskinen <[email protected]>
Acked-by: Felipe Balbi <[email protected]>
Cc: Bin Liu <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agoUSB: quirks.c: add one device that cannot deal with suspension
Oliver Neukum [Mon, 14 Oct 2013 14:22:40 +0000 (16:22 +0200)]
USB: quirks.c: add one device that cannot deal with suspension

The device is not responsive when resumed, unless it is reset.

Signed-off-by: Oliver Neukum <[email protected]>
CC: [email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agoUSB: ohci-exynos: Remove non-DT support
Jingoo Han [Mon, 14 Oct 2013 00:18:54 +0000 (09:18 +0900)]
USB: ohci-exynos: Remove non-DT support

The non-DT for EXYNOS SoCs is not supported from v3.11.
Thus, there is no need to support non-DT for Exynos OHCI driver.

The 'include/linux/platform_data/usb-ohci-exynos.h' file has been
used for non-DT support. Thus, the 'usb-ohci-exynos.h' file can
be removed.

Signed-off-by: Jingoo Han <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agousb/hcd: remove unnecessary local_irq_save
Michael Opdenacker [Sun, 13 Oct 2013 07:14:19 +0000 (09:14 +0200)]
usb/hcd: remove unnecessary local_irq_save

Remove the use of local_irq_save() and IRQF_DISABLED, no longer needed since
interrupt handlers are always run with interrupts disabled on the
current CPU.

Tested successfully with 3.12.0-rc4 on my PC. Didn't find
any issue because of this change.

Signed-off-by: Michael Opdenacker <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agoUSB: EHCI: start new isochronous streams ASAP
Alan Stern [Fri, 11 Oct 2013 15:29:36 +0000 (11:29 -0400)]
USB: EHCI: start new isochronous streams ASAP

This patch changes the initial delay before the startup of a newly
scheduled isochronous stream.  Currently the stream doesn't start
for at least 5 ms (40 microframes).  This value is just an estimate;
it has no real justification.

Instead, we can start the stream as soon as possible after the
scheduling computations are complete.  Essentially this requires
nothing more than reading the frame counter after the stream is
scheduled, instead of before.

Signed-off-by: Alan Stern <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agoUSB: EHCI: create per-TT bandwidth tables
Alan Stern [Sat, 12 Oct 2013 02:16:21 +0000 (22:16 -0400)]
USB: EHCI: create per-TT bandwidth tables

This patch continues the scheduling changes in ehci-hcd by adding a
table to store the bandwidth allocation below each TT.  This will
speed up the scheduling code, as it will no longer need to read
through the entire schedule to compute the bandwidth currently in use.

Properly speaking, the FS/LS budget calculations should be done in
terms of full-speed bytes per microframe, as described in the USB-2
spec.  However the driver currently uses microseconds per microframe,
and the scheduling code isn't robust enough at this point to change
over.  For the time being, we leave the calculations as they are.

Signed-off-by: Alan Stern <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
11 years agoRevert "USB: OHCI: Properly handle OHCI controller suspend"
Greg Kroah-Hartman [Mon, 14 Oct 2013 17:19:10 +0000 (10:19 -0700)]
Revert "USB: OHCI: Properly handle OHCI controller suspend"

This reverts commit 476e4bf939c9b947ea49923700fbac655cc9057c.

Manjunath is no longer at Linaro, the email address bounces.  Given
that, and the fact that others have reported problems with these
patches, I'm reverting them until someone from Linaro who can SUPPORT
THEM submits them.

I will no longer accept patches from linaro.com developers unless a
senior Linaro developer has signed off on them, which did not happen
with this patch set.

Reported-by: Olof Johansson <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Arnd Bergmann <[email protected]>
11 years agoRevert "USB: OHCI: Properly handle ohci-at91 suspend"
Greg Kroah-Hartman [Mon, 14 Oct 2013 17:18:55 +0000 (10:18 -0700)]
Revert "USB: OHCI: Properly handle ohci-at91 suspend"

This reverts commit 056ca85dab838bf064485b6cd73ddfcd9bf707e7.

Manjunath is no longer at Linaro, the email address bounces.  Given
that, and the fact that others have reported problems with these
patches, I'm reverting them until someone from Linaro who can SUPPORT
THEM submits them.

I will no longer accept patches from linaro.com developers unless a
senior Linaro developer has signed off on them, which did not happen
with this patch set.

Reported-by: Olof Johansson <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Arnd Bergmann <[email protected]>
11 years agoRevert "USB: OHCI: Properly handle ohci-s3c2410 suspend"
Greg Kroah-Hartman [Mon, 14 Oct 2013 17:18:39 +0000 (10:18 -0700)]
Revert "USB: OHCI: Properly handle ohci-s3c2410 suspend"

This reverts commit 19d339430403336f2f3c9d502db5f4e51fa21729.

Manjunath is no longer at Linaro, the email address bounces.  Given
that, and the fact that others have reported problems with these
patches, I'm reverting them until someone from Linaro who can SUPPORT
THEM submits them.

I will no longer accept patches from linaro.com developers unless a
senior Linaro developer has signed off on them, which did not happen
with this patch set.

Reported-by: Olof Johansson <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Arnd Bergmann <[email protected]>
11 years agoRevert "USB: OHCI: Properly handle ohci-da8xx suspend"
Greg Kroah-Hartman [Mon, 14 Oct 2013 17:18:25 +0000 (10:18 -0700)]
Revert "USB: OHCI: Properly handle ohci-da8xx suspend"

This reverts commit 86a63f10211ba7d249763bbe10b52073273affa8.

Manjunath is no longer at Linaro, the email address bounces.  Given
that, and the fact that others have reported problems with these
patches, I'm reverting them until someone from Linaro who can SUPPORT
THEM submits them.

I will no longer accept patches from linaro.com developers unless a
senior Linaro developer has signed off on them, which did not happen
with this patch set.

Reported-by: Olof Johansson <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Arnd Bergmann <[email protected]>
11 years agoRevert "USB: OHCI: Properly handle ohci-ep93xx suspend"
Greg Kroah-Hartman [Mon, 14 Oct 2013 17:18:10 +0000 (10:18 -0700)]
Revert "USB: OHCI: Properly handle ohci-ep93xx suspend"

This reverts commit 018258b4360b99b41c50ece917111f138e2314e7.

Manjunath is no longer at Linaro, the email address bounces.  Given
that, and the fact that others have reported problems with these
patches, I'm reverting them until someone from Linaro who can SUPPORT
THEM submits them.

I will no longer accept patches from linaro.com developers unless a
senior Linaro developer has signed off on them, which did not happen
with this patch set.

Reported-by: Olof Johansson <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Arnd Bergmann <[email protected]>
11 years agoRevert "USB: OHCI: Properly handle ohci-exynos suspend"
Greg Kroah-Hartman [Mon, 14 Oct 2013 17:16:58 +0000 (10:16 -0700)]
Revert "USB: OHCI: Properly handle ohci-exynos suspend"

This reverts commit fea0896fd36cff487685970bfc36ddd96352d95b.

Manjunath is no longer at Linaro, the email address bounces.  Given
that, and the fact that others have reported problems with these
patches, I'm reverting them until someone from Linaro who can SUPPORT
THEM submits them.

I will no longer accept patches from linaro.com developers unless a
senior Linaro developer has signed off on them, which did not happen
with this patch set.

Reported-by: Olof Johansson <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Arnd Bergmann <[email protected]>
11 years agoRevert "USB: OHCI: Properly handle ohci-spear suspend"
Greg Kroah-Hartman [Mon, 14 Oct 2013 17:15:50 +0000 (10:15 -0700)]
Revert "USB: OHCI: Properly handle ohci-spear suspend"

This reverts commit 36a8758736238c9354f46b39ca506e9acabe82d0.

Manjunath is no longer at Linaro, the email address bounces.  Given
that, and the fact that others have reported problems with these
patches, I'm reverting them until someone from Linaro who can SUPPORT
THEM submits them.

I will no longer accept patches from linaro.com developers unless a
senior Linaro developer has signed off on them, which did not happen
with this patch set.

Reported-by: Olof Johansson <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Manjunath Goudar <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Arnd Bergmann <[email protected]>
11 years agocifs: ntstatus_to_dos_map[] is not terminated
Tim Gardner [Sun, 13 Oct 2013 19:29:03 +0000 (13:29 -0600)]
cifs: ntstatus_to_dos_map[] is not terminated

Functions that walk the ntstatus_to_dos_map[] array could
run off the end. For example, ntstatus_to_dos() loops
while ntstatus_to_dos_map[].ntstatus is not 0. Granted,
this is mostly theoretical, but could be used as a DOS attack
if the error code in the SMB header is bogus.

[Might consider adding to stable, as this patch is low risk - Steve]

Reviewed-by: Jeff Layton <[email protected]>
Signed-off-by: Tim Gardner <[email protected]>
Signed-off-by: Steve French <[email protected]>
11 years agoMerge branch 'misc' into for-next
Roland Dreier [Mon, 14 Oct 2013 17:10:46 +0000 (10:10 -0700)]
Merge branch 'misc' into for-next

11 years agoIB: Remove unnecessary semicolons
Joe Perches [Tue, 8 Oct 2013 23:07:22 +0000 (16:07 -0700)]
IB: Remove unnecessary semicolons

These aren't necessary after switch blocks.

Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Roland Dreier <[email protected]>
11 years agoMerge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm
Linus Torvalds [Mon, 14 Oct 2013 17:02:23 +0000 (10:02 -0700)]
Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm

Pull ARM fixes from Russell King:
 "Some more ARM fixes, nothing particularly major here.  The biggest
  change is to fix the SMP_ON_UP code so that it works with TI's Aegis
  cores"

* 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
  ARM: 7851/1: check for number of arguments in syscall_get/set_arguments()
  ARM: 7846/1: Update SMP_ON_UP code to detect A9MPCore with 1 CPU devices
  ARM: 7845/1: sharpsl_param.c: fix invalid memory access for pxa devices
  ARM: 7843/1: drop asm/types.h from generic-y
  ARM: 7842/1: MCPM: don't explode if invoked without being initialized first

11 years agoMerge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg...
Linus Torvalds [Mon, 14 Oct 2013 17:00:36 +0000 (10:00 -0700)]
Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux

Pull SLAB fix from Pekka Enberg:
 "A regression fix for overly eager slab cache name checks"

* 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
  slab_common: Do not check for duplicate slab names

11 years agoMerge tag 'pm+acpi-3.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
Linus Torvalds [Mon, 14 Oct 2013 16:31:08 +0000 (09:31 -0700)]
Merge tag 'pm+acpi-3.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI and power management fixes from Rafael Wysocki:
 "These fix two recent bugs in ACPIPHP (ACPI-based PCI hotplug) and
  update a bunch of web links and e-mail addresses in MAINTAINERS, docs
  and Kconfig that either are stale or will expire soon.

  Specifics:

   - The WARN_ON() in acpiphp_enumerate_slots() triggers as a false
     positive in some cases, so drop it.

   - Add a missing pci_dev_put() to an error code path in
     acpiphp_enumerate_slots().

   - Replace my old e-mail address that's going to expire with a new
     one.

   - Update ACPI web links and git tree information in MAINTAINERS.

   - Update links to the Linux-ACPI project's page in MAINTAINERS.

   - Update some stale links and e-mail addresses under Documentation
     and in the ACPI Kconfig file"

* tag 'pm+acpi-3.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI / hotplug / PCI: Drop WARN_ON() from acpiphp_enumerate_slots()
  ACPI / hotplug / PCI: Fix error code path in acpiphp_enumerate_slots()
  ACPI / PM / Documentation: Replace outdated project links and addresses
  MAINTAINERS / ACPI: Update links to the Linux-ACPI project web page
  MAINTAINERS / ACPI: Update links and git tree information
  MAINTAINERS / Documentation: Update Rafael's e-mail address

11 years agoRevert "of: Feed entire flattened device tree into the random pool"
Grant Likely [Mon, 14 Oct 2013 11:46:04 +0000 (12:46 +0100)]
Revert "of: Feed entire flattened device tree into the random pool"

This reverts commit 109b6236294b53d8eaa50be7d9e9ad37079f5f7e.

Tim Bird expressed concern that this will have a bad effect on boot
time, and while simple tests have shown it to be okay with simple tree,
a device tree blob can potentially be quite large and
add_device_randomness() is not a fast function. Rather than do this for
all platforms unconditionally, I'm reverting this patch and would like
to see it revisited. Instead of feeding the entire tree into the random
pool, it would probably be appropriate to hash the tree and feed the
hash result into the pool. There really isn't a lot of randomness in a
device tree anyway. In the majority of cases only a handful of
properties are going to be different between machines with the same
baseboard.

Signed-off-by: Grant Likely <[email protected]>
11 years agoof: fix unnecessary warning on missing /cpus node
Grant Likely [Thu, 3 Oct 2013 20:04:31 +0000 (21:04 +0100)]
of: fix unnecessary warning on missing /cpus node

Not all DT platforms have all the cpus collected under a /cpus node.
That just happens to be a details of FDT, ePAPR and PowerPC platforms.
Sparc does something different, but unfortunately the current code
complains with a warning if /cpus isn't there. This became a problem
with commit f86e4718, "driver/core cpu: initialize of_node in cpu's
device structure", which caused the function to get called for all
architectures.

This commit is a temporary fix to fail silently if the cpus node isn't
present. A proper fix will come later to allow arch code to provide a
custom mechanism for decoding the CPU hwid if the 'reg' property isn't
appropriate.

Signed-off-by: Grant Likely <[email protected]>
Cc: David Miller <[email protected]>
Cc: Sudeep KarkadaNagesha <[email protected]>
Cc: Rob Herring <[email protected]>
11 years agoALSA: hda - Fix inverted internal mic not indicated on some machines
David Henningsson [Mon, 14 Oct 2013 08:16:22 +0000 (10:16 +0200)]
ALSA: hda - Fix inverted internal mic not indicated on some machines

The create_bind_cap_vol_ctl does not create any control indicating
that an inverted dmic is present. Therefore, create multiple
capture volumes in this scenario, so we always have some indication
that the internal mic is inverted.

This happens on the Lenovo Ideapad U310 as well as the Lenovo Yoga 13
(both are based on the CX20590 codec), but the fix is generic and
could be needed for other codecs/machines too.

Thanks to Szymon Acedański for the pointer and a draft patch.

BugLink: https://bugs.launchpad.net/bugs/1239392
BugLink: https://bugs.launchpad.net/bugs/1227491
Reported-by: Szymon Acedański <[email protected]>
Signed-off-by: David Henningsson <[email protected]>
Cc: <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
11 years agox86/microcode: Correct Kconfig dependencies
Borislav Petkov [Sun, 13 Oct 2013 16:36:29 +0000 (18:36 +0200)]
x86/microcode: Correct Kconfig dependencies

I have a randconfig here which has enabled only

  CONFIG_MICROCODE=y
  CONFIG_MICROCODE_OLD_INTERFACE=y

with both

  # CONFIG_MICROCODE_INTEL is not set
  # CONFIG_MICROCODE_AMD is not set

off. Which makes building the microcode functionality a little
pointless. Don't do that in such cases then.

Signed-off-by: Borislav Petkov <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
11 years agoLinux 3.12-rc5 v3.12-rc5
Linus Torvalds [Sun, 13 Oct 2013 22:41:28 +0000 (15:41 -0700)]
Linux 3.12-rc5

11 years agoMerge git://www.linux-watchdog.org/linux-watchdog
Linus Torvalds [Sun, 13 Oct 2013 18:41:26 +0000 (11:41 -0700)]
Merge git://www.linux-watchdog.org/linux-watchdog

Pull watchdog fixes from Wim Van Sebroeck:
 "This will fix a deadlock on the ts72xx_wdt driver, fix bitmasks in the
  kempld_wdt driver and fix a section mismatch in the sunxi_wdt driver"

* git://www.linux-watchdog.org/linux-watchdog:
  watchdog: sunxi: Fix section mismatch
  watchdog: kempld_wdt: Fix bit mask definition
  watchdog: ts72xx_wdt: locking bug in ioctl

11 years agowatchdog: sunxi: Fix section mismatch
Maxime Ripard [Sat, 5 Oct 2013 14:20:17 +0000 (16:20 +0200)]
watchdog: sunxi: Fix section mismatch

This driver has a section mismatch, for probe and remove functions,
leading to the following warning during the compilation.

WARNING: drivers/watchdog/built-in.o(.data+0x24): Section mismatch in
reference from the variable sunxi_wdt_driver to the function
.init.text:sunxi_wdt_probe()
The variable sunxi_wdt_driver references
the function __init sunxi_wdt_probe()

Signed-off-by: Maxime Ripard <[email protected]>
Reviewed-by: Guenter Roeck <[email protected]>
Signed-off-by: Wim Van Sebroeck <[email protected]>
11 years agowatchdog: kempld_wdt: Fix bit mask definition
Jingoo Han [Mon, 23 Sep 2013 10:16:57 +0000 (19:16 +0900)]
watchdog: kempld_wdt: Fix bit mask definition

STAGE_CFG bits are defined as [5:4] bits. However, '(((x) & 0x30) << 4)'
handles [9:8] bits. Thus, it should be fixed in order to handle
[5:4] bits.

Signed-off-by: Jingoo Han <[email protected]>
Reviewed-by: Guenter Roeck <[email protected]>
Signed-off-by: Wim Van Sebroeck <[email protected]>
11 years agowatchdog: ts72xx_wdt: locking bug in ioctl
Dan Carpenter [Fri, 23 Aug 2013 08:40:59 +0000 (11:40 +0300)]
watchdog: ts72xx_wdt: locking bug in ioctl

Calling the WDIOC_GETSTATUS & WDIOC_GETBOOTSTATUS and twice will cause a
interruptible deadlock.

Signed-off-by: Dan Carpenter <[email protected]>
Reviewed-by: Guenter Roeck <[email protected]>
Signed-off-by: Wim Van Sebroeck <[email protected]>
11 years agoARM: 7851/1: check for number of arguments in syscall_get/set_arguments()
AKASHI Takahiro [Wed, 9 Oct 2013 14:58:29 +0000 (15:58 +0100)]
ARM: 7851/1: check for number of arguments in syscall_get/set_arguments()

In ftrace_syscall_enter(),
    syscall_get_arguments(..., 0, n, ...)
        if (i == 0) { <handle ORIG_r0> ...; n--;}
        memcpy(..., n * sizeof(args[0]));
If 'number of arguments(n)' is zero and 'argument index(i)' is also zero in
syscall_get_arguments(), none of arguments should be copied by memcpy().
Otherwise 'n--' can be a big positive number and unexpected amount of data
will be copied. Tracing system calls which take no argument, say sync(void),
may hit this case and eventually make the system corrupted.
This patch fixes the issue both in syscall_get_arguments() and
syscall_set_arguments().

Cc: <[email protected]>
Acked-by: Will Deacon <[email protected]>
Signed-off-by: AKASHI Takahiro <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
Signed-off-by: Russell King <[email protected]>
11 years agoMerge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
Linus Torvalds [Sun, 13 Oct 2013 16:59:10 +0000 (09:59 -0700)]
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC fixes from Olof Johansson:
 "A small batch of fixes this week, mostly OMAP related.  Nothing stands
  out as particularly controversial.

  Also a fix for a 3.12-rc1 timer regression for Exynos platforms,
  including the Chromebooks"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: exynos: dts: Update 5250 arch timer node with clock frequency
  ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config
  ARM: mach-omap2: board-generic: fix undefined symbol
  ARM: dts: Fix pinctrl mask for omap3
  ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree
  ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT

11 years agoARM: exynos: dts: Update 5250 arch timer node with clock frequency
Yuvaraj Kumar C D [Wed, 18 Sep 2013 10:11:53 +0000 (15:41 +0530)]
ARM: exynos: dts: Update 5250 arch timer node with clock frequency

Without the "clock-frequency" property in arch timer node, could able
to see the below crash dump.

[<c0014e28>] (unwind_backtrace+0x0/0xf4) from [<c0011808>] (show_stack+0x10/0x14)
[<c0011808>] (show_stack+0x10/0x14) from [<c036ac1c>] (dump_stack+0x7c/0xb0)
[<c036ac1c>] (dump_stack+0x7c/0xb0) from [<c01ab760>] (Ldiv0_64+0x8/0x18)
[<c01ab760>] (Ldiv0_64+0x8/0x18) from [<c0062f60>] (clockevents_config.part.2+0x1c/0x74)
[<c0062f60>] (clockevents_config.part.2+0x1c/0x74) from [<c0062fd8>] (clockevents_config_and_register+0x20/0x2c)
[<c0062fd8>] (clockevents_config_and_register+0x20/0x2c) from [<c02b8e8c>] (arch_timer_setup+0xa8/0x134)
[<c02b8e8c>] (arch_timer_setup+0xa8/0x134) from [<c04b47b4>] (arch_timer_init+0x1f4/0x24c)
[<c04b47b4>] (arch_timer_init+0x1f4/0x24c) from [<c04b40d8>] (clocksource_of_init+0x34/0x58)
[<c04b40d8>] (clocksource_of_init+0x34/0x58) from [<c049ed8c>] (time_init+0x20/0x2c)
[<c049ed8c>] (time_init+0x20/0x2c) from [<c049b95c>] (start_kernel+0x1e0/0x39c)

THis is because the Exynos u-boot, for example on the Chromebooks, doesn't set
up the CNTFRQ register as expected by arch_timer. Instead, we have to specify
the frequency in the device tree like this.

Signed-off-by: Yuvaraj Kumar C D <[email protected]>
[olof: Changed subject, added comment, elaborated on commit message]
Signed-off-by: Olof Johansson <[email protected]>
11 years agoMerge tag 'fixes-against-v3.12-rc3-take2' of git://git.kernel.org/pub/scm/linux/kerne...
Olof Johansson [Sun, 13 Oct 2013 16:33:32 +0000 (09:33 -0700)]
Merge tag 'fixes-against-v3.12-rc3-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes

From Tony Lindgren:

Few fixes for omap3 related hangs and errors that people have
noticed now that people are actually using the device tree
based booting for omap3.

Also one regression fix for timer compile for dra7xx when
omap5 is not selected, and a LED regression fix for n900.

* tag 'fixes-against-v3.12-rc3-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config
  ARM: mach-omap2: board-generic: fix undefined symbol
  ARM: dts: Fix pinctrl mask for omap3
  ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree
  ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT

Signed-off-by: Olof Johansson <[email protected]>
11 years agoMerge branch 'parisc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
Linus Torvalds [Sun, 13 Oct 2013 16:13:28 +0000 (09:13 -0700)]
Merge branch 'parisc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc fixes from Helge Deller:
 "This patchset includes a bugfix to prevent a kernel crash when memory
  in page zero is accessed by the kernel itself, e.g.  via
  probe_kernel_read().

  Furthermore we now export flush_cache_page() which is needed
  (indirectly) by the lustre filesystem.  The other patches remove
  unused functions and optimizes the page fault handler to only evaluate
  variables if needed, which again protects against possible kernel
  crashes"

* 'parisc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: let probe_kernel_read() capture access to page zero
  parisc: optimize variable initialization in do_page_fault
  parisc: fix interruption handler to respect pagefault_disable()
  parisc: mark parisc_terminate() noreturn and cold.
  parisc: remove unused syscall_ipi() function.
  parisc: kill SMP single function call interrupt
  parisc: Export flush_cache_page() (needed by lustre)

11 years agoMerge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma
Linus Torvalds [Sun, 13 Oct 2013 16:02:03 +0000 (09:02 -0700)]
Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma

Pull slave-dmaengine fixes from Vinod Koul:
 "Another week, time to send another fixes request taking time out of
  extended weekend for the festivities in this part of the world.

  We have two fixes from Sergei for rcar driver and one fixing memory
  leak of edma driver by Geyslan"

* 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
  dma: edma.c: remove edma_desc leakage
  rcar-hpbdma: add parameter to set_slave() method
  rcar-hpbdma: remove shdma_free_irq() calls

11 years agoparisc: let probe_kernel_read() capture access to page zero
Helge Deller [Wed, 9 Oct 2013 21:47:03 +0000 (23:47 +0200)]
parisc: let probe_kernel_read() capture access to page zero

Signed-off-by: Helge Deller <[email protected]>
11 years agoparisc: optimize variable initialization in do_page_fault
John David Anglin [Sat, 5 Oct 2013 14:55:36 +0000 (10:55 -0400)]
parisc: optimize variable initialization in do_page_fault

The attached change defers the initialization of the variables tsk, mm
and flags until they are needed. As a result, the code won't crash if a
kernel probe is done with a corrupt context and the code will be better
optimized.

Signed-off-by: John David Anglin <[email protected]>
Signed-off-by: Helge Deller <[email protected]>
11 years agoparisc: fix interruption handler to respect pagefault_disable()
Helge Deller [Tue, 1 Oct 2013 19:54:46 +0000 (21:54 +0200)]
parisc: fix interruption handler to respect pagefault_disable()

Running an "echo t > /proc/sysrq-trigger" crashes the parisc kernel.  The
problem is, that in print_worker_info() we try to read the workqueue info via
the probe_kernel_read() functions which use pagefault_disable() to avoid
crashes like this:
    probe_kernel_read(&pwq, &worker->current_pwq, sizeof(pwq));
    probe_kernel_read(&wq, &pwq->wq, sizeof(wq));
    probe_kernel_read(name, wq->name, sizeof(name) - 1);

The problem here is, that the first probe_kernel_read(&pwq) might return zero
in pwq and as such the following probe_kernel_reads() try to access contents of
the page zero which is read protected and generate a kernel segfault.

With this patch we fix the interruption handler to call parisc_terminate()
directly only if pagefault_disable() was not called (in which case
preempt_count()==0).  Otherwise we hand over to the pagefault handler which
will try to look up the faulting address in the fixup tables.

Signed-off-by: Helge Deller <[email protected]>
Cc: <[email protected]> # v3.0+
Signed-off-by: John David Anglin <[email protected]>
Signed-off-by: Helge Deller <[email protected]>
11 years agoparisc: mark parisc_terminate() noreturn and cold.
Helge Deller [Wed, 9 Oct 2013 21:12:46 +0000 (23:12 +0200)]
parisc: mark parisc_terminate() noreturn and cold.

Signed-off-by: Helge Deller <[email protected]>
11 years agoparisc: remove unused syscall_ipi() function.
Helge Deller [Wed, 9 Oct 2013 21:10:14 +0000 (23:10 +0200)]
parisc: remove unused syscall_ipi() function.

Signed-off-by: Helge Deller <[email protected]>
11 years agoparisc: kill SMP single function call interrupt
Jiang Liu [Wed, 11 Sep 2013 16:07:18 +0000 (00:07 +0800)]
parisc: kill SMP single function call interrupt

Commit 9a46ad6d6df3b54 "smp: make smp_call_function_many() use logic
similar to smp_call_function_single()" has unified the way to handle
single and multiple cross-CPU function calls. Now only one interrupt
is needed for architecture specific code to support generic SMP function
call interfaces, so kill the redundant single function call interrupt.

Signed-off-by: Jiang Liu <[email protected]>
Cc: Jiang Liu <[email protected]>
Signed-off-by: Helge Deller <[email protected]>
11 years agoparisc: Export flush_cache_page() (needed by lustre)
Geert Uytterhoeven [Thu, 5 Sep 2013 09:33:15 +0000 (11:33 +0200)]
parisc: Export flush_cache_page() (needed by lustre)

ERROR: "flush_cache_page" [drivers/staging/lustre/lustre/libcfs/libcfs.ko] undefined!

Signed-off-by: Geert Uytterhoeven <[email protected]>
Signed-off-by: Helge Deller <[email protected]>
This page took 0.181313 seconds and 4 git commands to generate.