1. 20 9月, 2011 10 次提交
    • S
      Fix the conflict between rwpidforward and rw mount options · c9c7fa00
      Steve French 提交于
      Both these options are started with "rw" - that's why the first one
      isn't switched on even if it is specified. Fix this by adding a length
      check for "rw" option check.
      
      Cc: <stable@kernel.org>
      Signed-off-by: NPavel Shilovsky <piastry@etersoft.ru>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      c9c7fa00
    • P
      CIFS: Fix ERR_PTR dereference in cifs_get_root · 5b980b01
      Pavel Shilovsky 提交于
      move it to the beginning of the loop.
      Signed-off-by: NPavel Shilovsky <piastryyy@gmail.com>
      Reviewed-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      5b980b01
    • J
      cifs: fix possible memory corruption in CIFSFindNext · 9438fabb
      Jeff Layton 提交于
      The name_len variable in CIFSFindNext is a signed int that gets set to
      the resume_name_len in the cifs_search_info. The resume_name_len however
      is unsigned and for some infolevels is populated directly from a 32 bit
      value sent by the server.
      
      If the server sends a very large value for this, then that value could
      look negative when converted to a signed int. That would make that
      value pass the PATH_MAX check later in CIFSFindNext. The name_len would
      then be used as a length value for a memcpy. It would then be treated
      as unsigned again, and the memcpy scribbles over a ton of memory.
      
      Fix this by making the name_len an unsigned value in CIFSFindNext.
      
      Cc: <stable@kernel.org>
      Reported-by: NDarren Lavender <dcl@hppine99.gbr.hp.com>
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      9438fabb
    • L
      Merge branch 'irq-fixes-for-linus' of git://tesla.tglx.de/git/linux-2.6-tip · 9d037a77
      Linus Torvalds 提交于
      * '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
    • L
      Merge branch 'for-linus' of git://github.com/chrismason/linux · 50f2d407
      Linus Torvalds 提交于
      * '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
    • A
      USB: xHCI: prevent infinite loop when processing MSE event · c2d7b49f
      Andiry Xu 提交于
      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: NAndiry Xu <andiry.xu@amd.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c2d7b49f
    • G
      USB: xhci: Set change bit when warm reset change is set. · 44f4c3ed
      Greg KH 提交于
      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: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@kernel.org
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      44f4c3ed
    • R
      staging: fix comedi build when ISA_DMA_API is enabled but COMEDI_PCI is not enabled · c19cc78e
      Randy Dunlap 提交于
      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: NRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c19cc78e
    • L
      Make taskstats round statistics down to nearest 1k bytes/events · 58c3c3aa
      Linus Torvalds 提交于
      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: NBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      58c3c3aa
    • L
      Make TASKSTATS require root access · 1a51410a
      Linus Torvalds 提交于
      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: NVasiliy Kulikov <segoon@openwall.com>
      Cc: Johannes Berg <johannes.berg@intel.com>
      Acked-by: NBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1a51410a
  2. 19 9月, 2011 9 次提交
  3. 18 9月, 2011 9 次提交
  4. 17 9月, 2011 12 次提交