1. 20 Sep, 2011 8 commits
    • Benjamin Herrenschmidt's avatar
      Merge remote-tracking branch 'origin/master' into next · 1cce058b
      Benjamin Herrenschmidt authored
      (Merge in order to get the PCIe mps/mrss code fixes)
      1cce058b
    • Linus Torvalds's avatar
      Merge branch 'irq-fixes-for-linus' of git://tesla.tglx.de/git/linux-2.6-tip · 9d037a77
      Linus Torvalds authored
      * 'irq-fixes-for-linus' of git://tesla.tglx.de/git/linux-2.6-tip:
        x86, iommu: Mark DMAR IRQ as non-threaded
        genirq: Make irq_shutdown() symmetric vs. irq_startup again
      9d037a77
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://github.com/chrismason/linux · 50f2d407
      Linus Torvalds authored
      * 'for-linus' of git://github.com/chrismason/linux:
        Btrfs: only clear the need lookup flag after the dentry is setup
        BTRFS: Fix lseek return value for error
        Btrfs: don't change inode flag of the dest clone file
        Btrfs: don't make a file partly checksummed through file clone
        Btrfs: fix pages truncation in btrfs_ioctl_clone()
        btrfs: fix d_off in the first dirent
      50f2d407
    • Andiry Xu's avatar
      USB: xHCI: prevent infinite loop when processing MSE event · c2d7b49f
      Andiry Xu authored
      When a xHC host is unable to handle isochronous transfer in the
      interval, it reports a Missed Service Error event and skips some tds.
      
      Currently xhci driver handles MSE event in the following ways:
      
      1. When encounter a MSE event, set ep->skip flag, update event ring
         dequeue pointer and return.
      
      2. When encounter the next event on this ep, the driver will run the
         do-while loop, fetch td from ep's td_list to find the td
         corresponding to this event.  All tds missed are marked as short
         transfer(-EXDEV).
      
      The do-while loop will end in two ways:
      
      1. If the td pointed by the event trb is found;
      
      2. If the ep ring's td_list is empty.
      
      However, if a buggy HW reports some unpredicted event (for example, an
      overrun event following a MSE event while the ep ring is actually not
      empty), the driver will never find the td, and it will loop until the
      td_list is empty.
      
      Unfortunately, the spinlock is dropped when give back a urb in the
      do-while loop.  During the spinlock released period, the class driver
      may still submit urbs and add tds to the td_list.  This may cause
      disaster, since the td_list will never be empty and the loop never ends,
      and the system hangs.
      
      To fix this, count the number of TDs on the ep ring before skipping TDs,
      and quit the loop when skipped that number of tds.  This guarantees the
      do-while loop will end after certain number of cycles, and driver will
      not be trapped in an infinite loop.
      Signed-off-by: default avatarAndiry Xu <andiry.xu@amd.com>
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c2d7b49f
    • Greg KH's avatar
      USB: xhci: Set change bit when warm reset change is set. · 44f4c3ed
      Greg KH authored
      Sometimes, when a USB 3.0 device is disconnected, the Intel Panther
      Point xHCI host controller will report a link state change with the
      state set to "SS.Inactive".  This causes the xHCI host controller to
      issue a warm port reset, which doesn't finish before the USB core times
      out while waiting for it to complete.
      
      When the warm port reset does complete, and the xHC gives back a port
      status change event, the xHCI driver kicks khubd.  However, it fails to
      set the bit indicating there is a change event for that port because the
      logic in xhci-hub.c doesn't check for the warm port reset bit.
      
      After that, the warm port status change bit is never cleared by the USB
      core, and the xHC stops reporting port status change bits.  (The xHCI
      spec says it shouldn't report more port events until all change bits are
      cleared.) This means any port changes when a new device is connected
      will never be reported, and the port will seem "dead" until the xHCI
      driver is unloaded and reloaded, or the computer is rebooted.  Fix this
      by making the xHCI driver set the port change bit when a warm port reset
      change bit is set.
      
      A better solution would be to make the USB core handle warm port reset
      in differently, merging the current code with the standard port reset
      code that does an incremental backoff on the timeout, and tries to
      complete the port reset two more times before giving up.  That more
      complicated fix will be merged next window, and this fix will be
      backported to stable.
      
      This should be backported to kernels as old as 3.0, since that was the
      first kernel with commit a11496eb ("xHCI: warm reset support").
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      44f4c3ed
    • Randy Dunlap's avatar
      staging: fix comedi build when ISA_DMA_API is enabled but COMEDI_PCI is not enabled · c19cc78e
      Randy Dunlap authored
      Fix build when CONFIG_ISA_DMA_API is enabled but
      CONFIG_COMEDI_PCI[_DRIVERS] is not enabled.
      
      Fixes these build errors:
      
        drivers/staging/comedi/drivers/ni_labpc.c: In function 'labpc_ai_cmd':
        drivers/staging/comedi/drivers/ni_labpc.c:1351: error: implicit declaration of function 'labpc_suggest_transfer_size'
        drivers/staging/comedi/drivers/ni_labpc.c: At top level:
        drivers/staging/comedi/drivers/ni_labpc.c:1802: error: conflicting types for 'labpc_suggest_transfer_size'
        drivers/staging/comedi/drivers/ni_labpc.c:1351: note: previous implicit declaration of 'labpc_suggest_transfer_size' was here
      Signed-off-by: default avatarRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c19cc78e
    • Linus Torvalds's avatar
      Make taskstats round statistics down to nearest 1k bytes/events · 58c3c3aa
      Linus Torvalds authored
      Even with just the interface limited to admin, there really is little to
      reason to give byte-per-byte counts for taskstats.  So round it down to
      something less intrusive.
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      58c3c3aa
    • Linus Torvalds's avatar
      Make TASKSTATS require root access · 1a51410a
      Linus Torvalds authored
      Ok, this isn't optimal, since it means that 'iotop' needs admin
      capabilities, and we may have to work on this some more.  But at the
      same time it is very much not acceptable to let anybody just read
      anybody elses IO statistics quite at this level.
      
      Use of the GENL_ADMIN_PERM suggested by Johannes Berg as an alternative
      to checking the capabilities by hand.
      Reported-by: default avatarVasiliy Kulikov <segoon@openwall.com>
      Cc: Johannes Berg <johannes.berg@intel.com>
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1a51410a
  2. 19 Sep, 2011 25 commits
  3. 18 Sep, 2011 7 commits