1. 03 May, 2012 1 commit
    • Linus Torvalds's avatar
      vfs: make word-at-a-time accesses handle a non-existing page · e419b4cc
      Linus Torvalds authored
      It turns out that there are more cases than CONFIG_DEBUG_PAGEALLOC that
      can have holes in the kernel address space: it seems to happen easily
      with Xen, and it looks like the AMD gart64 code will also punch holes
      dynamically.
      
      Actually hitting that case is still very unlikely, so just do the
      access, and take an exception and fix it up for the very unlikely case
      of it being a page-crosser with no next page.
      
      And hey, this abstraction might even help other architectures that have
      other issues with unaligned word accesses than the possible missing next
      page.  IOW, this could do the byte order magic too.
      
      Peter Anvin fixed a thinko in the shifting for the exception case.
      Reported-and-tested-by: default avatarJana Saout <jana@saout.de>
      Cc:  Peter Anvin <hpa@zytor.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e419b4cc
  2. 02 May, 2012 5 commits
  3. 01 May, 2012 5 commits
    • Stephen Warren's avatar
      USB: ehci-tegra: remove redundant gpio_set_value · 04c235c9
      Stephen Warren authored
      The immediately preceding gpio_direction_output() already set the value,
      so there's no need to repeat it. This also prevents gpio_set_value() from
      WARNing when the GPIO is sleepable (e.g. is on an I2C expander); the set
      direction API is always sleepable, but plain set_value isn't.
      
      Cc: <stable@vger.kernel.org> # v3.3
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      04c235c9
    • Alan Stern's avatar
      EHCI: update PM methods in ehci-tegra.c · ebf20de4
      Alan Stern authored
      This patch (as1547) rearranges the Power Management parts of the
      ehci-tegra driver to match the conventions used in other EHCI platform
      drivers.  In particular, the controller should not be powered down by
      the root hub's suspend routine; the controller's power level should be
      managed by the controller's own PM methods.
      
      The end result of the patch is that the standard ehci_bus_suspend()
      and ehci_bus_resume() methods can be used instead of special-purpose
      routines.  The driver now uses the standard dev_pm_ops methods instead
      of legacy power management.  Since there is no supported wakeup
      mechanism for the controller, runtime suspend is forbidden by default
      (this can be overridden via sysfs, if desired).
      
      These adjustments are needed in order to make ehci-tegra compatible
      with recent changes to the USB core.  The core now checks the root
      hub's status following bus suspend; if the controller is automatically
      powered down during bus suspend then the check will fail and the root
      hub will be resumed immediately.  Doing the controller power-down in a
      separate method avoids this problem.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Tested-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ebf20de4
    • Alan Cox's avatar
      vt: Fix deadlock on scroll-lock · 84f904ec
      Alan Cox authored
      Fixing the locking accidentally replaced a race in the scroll
      lock handling with a deadlock. Turn it back into a race for
      now.
      
      The basic problem is that there are two paths into the tty
      stop/start helpers. One via the tty layer ^S/^Q handling
      where we need to take the kbd_event_lock and one via the
      special keyboard handler for fn_hold where we already hold
      it. Probably we need to split out into a separate LED lock
      but for now just go back to the race as it's a bit close
      to release.
      Reported-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      84f904ec
    • Steven Rostedt's avatar
      ktest: Fix reboot on success stopping all reboots · 759a3cc6
      Steven Rostedt authored
      The change to let individual tests decide to reboot the machine on
      success of the entire test also prevented errors from rebooting
      when an error was detected.
      
      The "no_reboot" variable was only cleared if the test had
      reboot_on_success set. But the no_reboot variable also prevents the test
      rebooting when an error was detected even when REBOOT_ON_ERROR was set.
      
      Add a new "reboot_success" variable that is used to determine if the
      test should reboot on success and not touch the no_reboot variable.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      759a3cc6
    • Russ Dill's avatar
      ktest.pl: Fix combined usage of BISECT_REVERSE and BISECT_SKIP · 5158ba3e
      Russ Dill authored
      When BISECT_REVERSE and BISECT_SKIP are used together with boot or test
      testing, build failures are treated as boot or test failures and
      'git bisect bad' is executed instead of 'git bisect skip'. This is because
      the $ret value of -1 is treated as a build failure, but the $reverse_bisect
      logic does not properly handle this.
      
      Simple fix, only invert it if it is positive.
      
      Link: http://lkml.kernel.org/r/1335235380-8509-1-git-send-email-Russ.Dill@ti.comSigned-off-by: default avatarRuss Dill <Russ.Dill@ti.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      5158ba3e
  4. 30 Apr, 2012 13 commits
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · 655861e3
      Linus Torvalds authored
      Pull ARM fixes from Russell King.
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating IRQs
        ARM: 7405/1: kexec: call platform_cpu_kill on the killer rather than the victim
        ARM: 7403/1: tls: remove covert channel via TPIDRURW
        ARM: 7401/1: mm: Fix section mismatches
        ARM: OMAP: fix DMA vs memory ordering
        ARM: 7390/1: dts: versatile-pb/ab fix MMC IRQs
        ARM: 7400/1: vfp: clear fpscr length and stride bits on entry to sig handler
        ARM: 7399/1: vfp: move user vfp state save/restore code out of signal.c
        ARM: 7398/1: l2x0: only write to debug registers on PL310
        ARM: 7397/1: l2x0: only apply workaround for erratum #753970 on PL310
        ARM: 7396/1: errata: only handle ARM erratum #326103 on affected cores
      655861e3
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · e7a7c9ab
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of SAS and SATA fixes; there are one or two longstanding
        bug fixes, but most of this is regression fixes."
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] libfc: update mfs boundry checking
        [SCSI] Revert "[SCSI] libsas: fix sas port naming"
        [SCSI] libsas: fix false positive 'device attached' conditions
        [SCSI] libsas, libata: fix start of life for a sas ata_port
        [SCSI] libsas: fix ata_eh clobbering ex_phys via smp_ata_check_ready
        [SCSI] libsas: unify domain_device sas_rphy lifetimes
        [SCSI] libsas: fix sas_get_port_device regression
        [SCSI] libsas: fix sas_find_bcast_phy() in the presence of 'vacant' phys
        [SCSI] libsas: introduce sas_work to fix sas_drain_work vs sas_queue_work
        [SCSI] libata: Pass correct DMA device to scsi host
        [SCSI] scsi_lib: use correct DMA device in __scsi_alloc_queue
      e7a7c9ab
    • Matthew Garrett's avatar
      efi: Validate UEFI boot variables · fec6c20b
      Matthew Garrett authored
      A common flaw in UEFI systems is a refusal to POST triggered by a malformed
      boot variable. Once in this state, machines may only be restored by
      reflashing their firmware with an external hardware device. While this is
      obviously a firmware bug, the serious nature of the outcome suggests that
      operating systems should filter their variable writes in order to prevent
      a malicious user from rendering the machine unusable.
      Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fec6c20b
    • Matthew Garrett's avatar
      efi: Add new variable attributes · 41b3254c
      Matthew Garrett authored
      More recent versions of the UEFI spec have added new attributes for
      variables. Add them.
      Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      41b3254c
    • Randy Dunlap's avatar
      nfsd: fix nfs4recover.c printk format warning · 8a7dc4b0
      Randy Dunlap authored
      Fix printk format warnings -- both items are size_t,
      so use %zu to print them.
      
      fs/nfsd/nfs4recover.c:580:3: warning: format '%lu' expects type 'long unsigned int', but argument 3 has type 'size_t'
      fs/nfsd/nfs4recover.c:580:3: warning: format '%lu' expects type 'long unsigned int', but argument 4 has type 'unsigned int'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@xenotime.net>
      Cc: "J. Bruce Fields" <bfields@fieldses.org>
      Cc: linux-nfs@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8a7dc4b0
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · fbf71762
      Linus Torvalds authored
      Pull powerpc fixes from Benjamin Herrenschmidt:
       "Here are a handful more fixes for powerpc.  The irq stuff are all
        regression fixes, and Gavin's patch is a simple compile fix."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        tty/serial/pmac_zilog: Fix "nobody cared" IRQ message
        powerpc/pseries: Rivet CONFIG_EEH for pSeries platform
        powerpc/irqdomain: Fix broken NR_IRQ references
        powerpc/8xx: Fix NR_IRQ bugs and refactor 8xx interrupt controller
      fbf71762
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 84e92ef4
      Linus Torvalds authored
      Pull input fix from Dmitry Torokhov:
       "A simple fix for a recent regression in Synaptics driver"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: synaptics - fix regression with "image sensor" trackpads
      84e92ef4
    • Trond Myklebust's avatar
      NFSv4.1: Use the correct hostname in the client identifier string · 3617e503
      Trond Myklebust authored
      We need to use the hostname of the process that created the nfs_client.
      That hostname is now stored in the rpc_client->cl_nodename.
      
      Also remove the utsname()->domainname component. There is no reason
      to include the NIS/YP domainname in a client identifier string.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      3617e503
    • Trond Myklebust's avatar
      SUNRPC: RPC client must use the current utsname hostname string · cbbb3449
      Trond Myklebust authored
      Now that the rpc client is namespace aware, it needs to use the
      utsname of the process that created it instead of using the
      init_utsname. Both rpc_new_client and rpc_clone_client need to
      be fixed.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
      cbbb3449
    • Larry Finger's avatar
      tty/serial/pmac_zilog: Fix "nobody cared" IRQ message · 810b4de2
      Larry Finger authored
      Following commit a79dd5ae titled "tty/serial/pmac_zilog: Fix suspend & resume",
      my Powerbook G4 Titanium showed the following stack dump:
      
      [   36.878225] irq 23: nobody cared (try booting with the "irqpoll" option)
      [   36.878251] Call Trace:
      [   36.878291] [dfff3f00] [c000984c] show_stack+0x7c/0x194 (unreliable)
      [   36.878322] [dfff3f40] [c00a6868] __report_bad_irq+0x44/0xf4
      [   36.878339] [dfff3f60] [c00a6b04] note_interrupt+0x1ec/0x2ac
      [   36.878356] [dfff3f80] [c00a48d0] handle_irq_event_percpu+0x250/0x2b8
      [   36.878372] [dfff3fd0] [c00a496c] handle_irq_event+0x34/0x54
      [   36.878389] [dfff3fe0] [c00a753c] handle_fasteoi_irq+0xb4/0x124
      [   36.878412] [dfff3ff0] [c000f5bc] call_handle_irq+0x18/0x28
      [   36.878428] [deef1f10] [c000719c] do_IRQ+0x114/0x1cc
      [   36.878446] [deef1f40] [c0015868] ret_from_except+0x0/0x1c
      [   36.878484] --- Exception: 501 at 0xf497610
      [   36.878489]     LR = 0xfdc3dd0
      [   36.878497] handlers:
      [   36.878510] [<c02b7424>] pmz_interrupt
      [   36.878520] Disabling IRQ #23
      
      From an E-mail exchange about this problem, Andreas Schwab noticed a typo
      that resulted in the wrong condition being tested.
      
      The patch also corrects 2 typos that incorrectly report why an error branch
      is being taken.
      Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      810b4de2
    • Gavin Shan's avatar
      powerpc/pseries: Rivet CONFIG_EEH for pSeries platform · e49f7a99
      Gavin Shan authored
      Recently, Ryan Wang tried to compile PPC pSeries platform without
      CONFIG_EEH and eventually run into errors. Nishanth Aravamudan
      helped to narrow down the root cause. Actually, the pSeries platform
      depends on CONFIG_EEH heavily and that won't work properly without
      EEH support.
      
      According to Ben's suggestion, the patch make CONFIG_EEH invisible
      and keep it as always selected on pSeries platform.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      e49f7a99
    • Grant Likely's avatar
      powerpc/irqdomain: Fix broken NR_IRQ references · 4013369f
      Grant Likely authored
      The switch from using irq_map to irq_alloc_desc*() for managing irq
      number allocations introduced new bugs in some of the powerpc
      interrupt code.  Several functions rely on the value of NR_IRQS to
      determine the maximum irq number that could get allocated.  However,
      with sparse_irq and using irq_alloc_desc*() the maximum possible irq
      number is now specified with 'nr_irqs' which may be a number larger
      than NR_IRQS.  This has caused breakage on powermac when
      CONFIG_NR_IRQS is set to 32.
      
      This patch removes most of the direct references to NR_IRQS in the
      powerpc code and replaces them with either a nr_irqs reference or by
      using the common for_each_irq_desc() macro.  The powerpc-specific
      for_each_irq() macro is removed at the same time.
      
      Also, the Cell axon_msi driver is refactored to remove the global
      build assumption on the size of NR_IRQS and instead add a limit to the
      maximum irq number when calling irq_domain_add_nomap().
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      4013369f
    • Grant Likely's avatar
      powerpc/8xx: Fix NR_IRQ bugs and refactor 8xx interrupt controller · 8751ed14
      Grant Likely authored
      The mpc8xx driver uses a reference to NR_IRQS that is buggy.  It uses
      NR_IRQs for the array size of the ppc_cached_irq_mask bitmap, but
      NR_IRQs could be smaller than the number of hardware irqs that
      ppc_cached_irq_mask tracks.
      
      Also, while fixing that problem, it became apparent that the interrupt
      controller only supports 32 interrupt numbers, but it is written as if
      it supports multiple register banks which is more complicated.
      
      This patch pulls out the buggy reference to NR_IRQs and fixes the size
      of the ppc_cached_irq_mask to match the number of HW irqs.  It also
      drops the now-unnecessary code since ppc_cached_irq_mask is no longer
      an array.
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8751ed14
  5. 29 Apr, 2012 7 commits
    • Linus Torvalds's avatar
      Linux 3.4-rc5 · 69964ea4
      Linus Torvalds authored
      69964ea4
    • Linus Torvalds's avatar
      Merge tag 'pm-for-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 6cfdd02b
      Linus Torvalds authored
      Pull power management fixes from Rafael J. Wysocki:
       "Fix for an issue causing hibernation to hang on systems with highmem
        (that practically means i386) due to broken memory management (bug
        introduced in 3.2, so -stable material) and PM documentation update
        making the freezer documentation follow the code again after some
        recent updates."
      
      * tag 'pm-for-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM / Freezer / Docs: Update documentation about freezing of tasks
        PM / Hibernate: fix the number of pages used for hibernate/thaw buffering
      6cfdd02b
    • Linus Torvalds's avatar
      autofs: make the autofsv5 packet file descriptor use a packetized pipe · 64f371bc
      Linus Torvalds authored
      The autofs packet size has had a very unfortunate size problem on x86:
      because the alignment of 'u64' differs in 32-bit and 64-bit modes, and
      because the packet data was not 8-byte aligned, the size of the autofsv5
      packet structure differed between 32-bit and 64-bit modes despite
      looking otherwise identical (300 vs 304 bytes respectively).
      
      We first fixed that up by making the 64-bit compat mode know about this
      problem in commit a32744d4 ("autofs: work around unhappy compat
      problem on x86-64"), and that made a 32-bit 'systemd' work happily on a
      64-bit kernel because everything then worked the same way as on a 32-bit
      kernel.
      
      But it turned out that 'automount' had actually known and worked around
      this problem in user space, so fixing the kernel to do the proper 32-bit
      compatibility handling actually *broke* 32-bit automount on a 64-bit
      kernel, because it knew that the packet sizes were wrong and expected
      those incorrect sizes.
      
      As a result, we ended up reverting that compatibility mode fix, and
      thus breaking systemd again, in commit fcbf94b9.
      
      With both automount and systemd doing a single read() system call, and
      verifying that they get *exactly* the size they expect but using
      different sizes, it seemed that fixing one of them inevitably seemed to
      break the other.  At one point, a patch I seriously considered applying
      from Michael Tokarev did a "strcmp()" to see if it was automount that
      was doing the operation.  Ugly, ugly.
      
      However, a prettier solution exists now thanks to the packetized pipe
      mode.  By marking the communication pipe as being packetized (by simply
      setting the O_DIRECT flag), we can always just write the bigger packet
      size, and if user-space does a smaller read, it will just get that
      partial end result and the extra alignment padding will simply be thrown
      away.
      
      This makes both automount and systemd happy, since they now get the size
      they asked for, and the kernel side of autofs simply no longer needs to
      care - it could pad out the packet arbitrarily.
      
      Of course, if there is some *other* user of autofs (please, please,
      please tell me it ain't so - and we haven't heard of any) that tries to
      read the packets with multiple writes, that other user will now be
      broken - the whole point of the packetized mode is that one system call
      gets exactly one packet, and you cannot read a packet in pieces.
      Tested-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Thomas Meyer <thomas@m3y3r.de>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      64f371bc
    • Marcos Paulo de Souza's avatar
      PM / Freezer / Docs: Update documentation about freezing of tasks · 26e0f90f
      Marcos Paulo de Souza authored
      The file Documentation/power/freezing-of-tasks.txt was still referencing
      the TIF_FREEZE flag, that was removed by the commit
      d88e4cb6(freezer: remove now unused
      TIF_FREEZE).
      
      This patch removes all the references of TIF_FREEZE that were left
      behind.
      Signed-off-by: default avatarMarcos Paulo de Souza <marcos.souza.org@gmail.com>
      Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      26e0f90f
    • Linus Torvalds's avatar
      pipes: add a "packetized pipe" mode for writing · 9883035a
      Linus Torvalds authored
      The actual internal pipe implementation is already really about
      individual packets (called "pipe buffers"), and this simply exposes that
      as a special packetized mode.
      
      When we are in the packetized mode (marked by O_DIRECT as suggested by
      Alan Cox), a write() on a pipe will not merge the new data with previous
      writes, so each write will get a pipe buffer of its own.  The pipe
      buffer is then marked with the PIPE_BUF_FLAG_PACKET flag, which in turn
      will tell the reader side to break the read at that boundary (and throw
      away any partial packet contents that do not fit in the read buffer).
      
      End result: as long as you do writes less than PIPE_BUF in size (so that
      the pipe doesn't have to split them up), you can now treat the pipe as a
      packet interface, where each read() system call will read one packet at
      a time.  You can just use a sufficiently big read buffer (PIPE_BUF is
      sufficient, since bigger than that doesn't guarantee atomicity anyway),
      and the return value of the read() will naturally give you the size of
      the packet.
      
      NOTE! We do not support zero-sized packets, and zero-sized reads and
      writes to a pipe continue to be no-ops.  Also note that big packets will
      currently be split at write time, but that the size at which that
      happens is not really specified (except that it's bigger than PIPE_BUF).
      Currently that limit is the system page size, but we might want to
      explicitly support bigger packets some day.
      
      The main user for this is going to be the autofs packet interface,
      allowing us to stop having to care so deeply about exact packet sizes
      (which have had bugs with 32/64-bit compatibility modes).  But user
      space can create packetized pipes with "pipe2(fd, O_DIRECT)", which will
      fail with an EINVAL on kernels that do not support this interface.
      Tested-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Thomas Meyer <thomas@m3y3r.de>
      Cc: stable@kernel.org  # needed for systemd/autofs interaction fix
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9883035a
    • Linus Torvalds's avatar
      Merge tag 'staging-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · de9e24ed
      Linus Torvalds authored
      Pull staging tree fixes from Greg Kroah-Hartman:
       "Here are some tiny drivers/staging/ bugfixes.  Some build fixes that
        were recently reported, as well as one kfree bug that is hitting a
        number of users."
      
      * tag 'staging-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: ozwpan: Fix bug where kfree is called twice.
        staging: octeon-ethernet: fix build errors by including interrupt.h
        staging: zcache: fix Kconfig crypto dependency
        staging: tidspbridge: remove usage of OMAP2_L4_IO_ADDRESS
      de9e24ed
    • Linus Torvalds's avatar
      Merge tag 'usb-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 8d7d1adc
      Linus Torvalds authored
      Pull USB fixes from Greg Kroah-Hartman:
       "Here are a number of small USB fixes for 3.4-rc5.
      
        Nothing major, as before, some USB gadget fixes.  There's a crash fix
        for a number of ASUS laptops on resume that had been reported by a
        number of different people.  We think the fix might also pertain to
        other machines, as this was a BIOS bug, and they seem to travel to
        different models and manufacturers quite easily.  Other than that,
        some other reported problems fixed as well."
      
      * tag 'usb-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: gadget: udc-core: fix incompatibility with dummy-hcd
        usb: gadget: udc-core: fix wrong call order
        USB: cdc-wdm: fix race leading leading to memory corruption
        USB: EHCI: fix crash during suspend on ASUS computers
        usb gadget: uvc: uvc_request_data::length field must be signed
        usb: gadget: dummy: do not call pullup() on udc_stop()
        usb: musb: davinci.c: add missing unregister
        usb: musb: drop __deprecated flag
        USB: gadget: storage gadgets send wrong error code for unknown commands
        usb: otg: gpio_vbus: Add otg transceiver events and notifiers
      8d7d1adc
  6. 28 Apr, 2012 9 commits
    • Stanislav Kinsbursky's avatar
      NFS: get module in idmap PipeFS notifier callback · 71dfc5fa
      Stanislav Kinsbursky authored
      This is bug fix.
      Notifier callback is called from SUNRPC module. So before dereferencing NFS
      module we have to make sure, that it's alive.
      Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      71dfc5fa
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · f7b00693
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "This has our collection of bug fixes.  I missed the last rc because I
        thought our patches were making NFS crash during my xfs test runs.
        Turns out it was an NFS client bug fixed by someone else while I tried
        to bisect it.
      
        All of these fixes are small, but some are fairly high impact.  The
        biggest are fixes for our mount -o remount handling, a deadlock due to
        GFP_KERNEL allocations in readdir, and a RAID10 error handling bug.
      
        This was tested against both 3.3 and Linus' master as of this morning."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (26 commits)
        Btrfs: reduce lock contention during extent insertion
        Btrfs: avoid deadlocks from GFP_KERNEL allocations during btrfs_real_readdir
        Btrfs: Fix space checking during fs resize
        Btrfs: fix block_rsv and space_info lock ordering
        Btrfs: Prevent root_list corruption
        Btrfs: fix repair code for RAID10
        Btrfs: do not start delalloc inodes during sync
        Btrfs: fix that check_int_data mount option was ignored
        Btrfs: don't count CRC or header errors twice while scrubbing
        Btrfs: fix btrfs_ioctl_dev_info() crash on missing device
        btrfs: don't return EINTR
        Btrfs: double unlock bug in error handling
        Btrfs: always store the mirror we read the eb from
        fs/btrfs/volumes.c: add missing free_fs_devices
        btrfs: fix early abort in 'remount'
        Btrfs: fix max chunk size check in chunk allocator
        Btrfs: add missing read locks in backref.c
        Btrfs: don't call free_extent_buffer twice in iterate_irefs
        Btrfs: Make free_ipath() deal gracefully with NULL pointers
        Btrfs: avoid possible use-after-free in clear_extent_bit()
        ...
      f7b00693
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b990f9b3
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Nothing controversial, just another batch of fixes:
      
         - Samsung/exynos fixes for more merge window fallout: build errors
           and warnings mostly, but also some clock/device setup issues on
           exynos4/5
         - PXA bug and warning fixes related to gpio and pinmux
         - IRQ domain conversion bugfixes for U300 and MSM
         - A regulator setup fix for U300"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: PXA2xx: MFP: fix potential direction bug
        ARM: PXA2xx: MFP: fix bug with MFP_LPM_KEEP_OUTPUT
        arm/sa1100: fix sa1100-rtc memory resource
        ARM: pxa: fix gpio wakeup setting
        ARM: SAMSUNG: add missing MMC_CAP2_BROKEN_VOLTAGE capability
        ARM: EXYNOS: Fix compilation error when CONFIG_OF is not defined
        ARM: EXYNOS: Fix resource on dev-dwmci.c
        ARM: S3C24XX: Fix build warning for S3C2410_PM
        ARM: mini2440_defconfig: Fix build error
        ARM: msm: Fix gic irqdomain support
        ARM: EXYNOS: Fix incorrect initialization of GIC
        ARM: EXYNOS: use 'exynos4-sdhci' as device name for sdhci controllers
        ARM: u300: bump all IRQ numbers by one
        ARM: ux300: Fix unimplementable regulation constraints
      b990f9b3
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · cd88e3a6
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "As soon as I sent the non-urgent stack, two important fixes come in:
      
         - i915: fixes SNB GPU hangs in a number of 3D apps
      
         - radeon: initial fix for VGA on LLano system, 3 or 4 of us have
           spent time debugging this, and Jerome finally figured out the magic
           bit the BIOS/fglrx set that we didn't.  This at least should get
           things working, there may be future reliability fixes."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/i915: Set the Stencil Cache eviction policy to non-LRA mode.
        drm/radeon/kms: need to set up ss on DP bridges as well
      cd88e3a6
    • Linus Torvalds's avatar
      Revert "autofs: work around unhappy compat problem on x86-64" · fcbf94b9
      Linus Torvalds authored
      This reverts commit a32744d4.
      
      While that commit was technically the right thing to do, and made the
      x86-64 compat mode work identically to native 32-bit mode (and thus
      fixing the problem with a 32-bit systemd install on a 64-bit kernel), it
      turns out that the automount binaries had workarounds for this compat
      problem.
      
      Now, the workarounds are disgusting: doing an "uname()" to find out the
      architecture of the kernel, and then comparing it for the 64-bit cases
      and fixing up the size of the read() in automount for those.  And they
      were confused: it's not actually a generic 64-bit issue at all, it's
      very much tied to just x86-64, which has different alignment for an
      'u64' in 64-bit mode than in 32-bit mode.
      
      But the end result is that fixing the compat layer actually breaks the
      case of a 32-bit automount on a x86-64 kernel.
      
      There are various approaches to fix this (including just doing a
      "strcmp()" on current->comm and comparing it to "automount"), but I
      think that I will do the one that teaches pipes about a special "packet
      mode", which will allow user space to not have to care too deeply about
      the padding at the end of the autofs packet.
      
      That change will make the compat workaround unnecessary, so let's revert
      it first, and get automount working again in compat mode.  The
      packetized pipes will then fix autofs for systemd.
      Reported-and-requested-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Cc: Ian Kent <raven@themaw.net>
      Cc: stable@kernel.org # for 3.3
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fcbf94b9
    • Will Deacon's avatar
      ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating IRQs · 5e7371de
      Will Deacon authored
      When a CPU is hotplugged off, we migrate any IRQs currently affine to it
      away and onto another online CPU by calling the irq_set_affinity
      function of the relevant interrupt controller chip. This function
      returns either IRQ_SET_MASK_OK or IRQ_SET_MASK_OK_NOCOPY, to indicate
      whether irq_data.affinity was updated.
      
      If we are forcefully migrating an interrupt (because the affinity mask
      no longer identifies any online CPUs) then we should update the IRQ
      affinity mask to reflect the new CPU set. Failure to do so can
      potentially leave /proc/irq/n/smp_affinity identifying only offline
      CPUs, which may confuse userspace IRQ balancing daemons.
      
      This patch updates migrate_one_irq to copy the affinity mask when
      the interrupt chip returns IRQ_SET_MASK_OK after forcefully changing the
      affinity of an interrupt.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarLeif Lindholm <leif.lindholm@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      5e7371de
    • Will Deacon's avatar
      ARM: 7405/1: kexec: call platform_cpu_kill on the killer rather than the victim · 6fa99b7f
      Will Deacon authored
      When performing a kexec on an SMP system, the secondary cores are stopped
      by calling machine_shutdown(), which in turn issues IPIs to offline the
      other CPUs. Unfortunately, this isn't enough to reboot the cores into
      a new kernel (since they are just executing a cpu_relax loop somewhere
      in memory) so we make use of platform_cpu_kill, part of the CPU hotplug
      implementation, to place the cores somewhere safe. This function expects
      to be called on the killing CPU for each core that it takes out.
      
      This patch moves the platform_cpu_kill callback out of the IPI handler
      and into smp_send_stop, therefore ensuring that it executes on the
      killing CPU rather than on the victim, matching what the hotplug code
      requires.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      6fa99b7f
    • Will Deacon's avatar
      ARM: 7403/1: tls: remove covert channel via TPIDRURW · 6a1c5312
      Will Deacon authored
      TPIDRURW is a user read/write register forming part of the group of
      thread registers in more recent versions of the ARM architecture (~v6+).
      
      Currently, the kernel does not touch this register, which allows tasks
      to communicate covertly by reading and writing to the register without
      context-switching affecting its contents.
      
      This patch clears TPIDRURW when TPIDRURO is updated via the set_tls
      macro, which is called directly from __switch_to. Since the current
      behaviour makes the register useless to userspace as far as thread
      pointers are concerned, simply clearing the register (rather than saving
      and restoring it) will not cause any problems to userspace.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      6a1c5312
    • Stephen Boyd's avatar
      ARM: 7401/1: mm: Fix section mismatches · 14904927
      Stephen Boyd authored
      WARNING: vmlinux.o(.text+0x111b8): Section mismatch in reference
      from the function arm_memory_present() to the function
      .init.text:memory_present()
      The function arm_memory_present() references
      the function __init memory_present().
      This is often because arm_memory_present lacks a __init
      annotation or the annotation of memory_present is wrong.
      
      WARNING: arch/arm/mm/built-in.o(.text+0x1edc): Section mismatch
      in reference from the function alloc_init_pud() to the function
      .init.text:alloc_init_section()
      The function alloc_init_pud() references
      the function __init alloc_init_section().
      This is often because alloc_init_pud lacks a __init
      annotation or the annotation of alloc_init_section is wrong.
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      14904927