1. 24 Nov, 2008 5 commits
  2. 20 Nov, 2008 5 commits
  3. 17 Nov, 2008 12 commits
  4. 16 Nov, 2008 5 commits
  5. 15 Nov, 2008 13 commits
    • Linus Torvalds's avatar
      Linux 2.6.28-rc5 · 9bf1a244
      Linus Torvalds authored
      9bf1a244
    • Al Viro's avatar
      Fix inotify watch removal/umount races · 8f7b0ba1
      Al Viro authored
      Inotify watch removals suck violently.
      
      To kick the watch out we need (in this order) inode->inotify_mutex and
      ih->mutex.  That's fine if we have a hold on inode; however, for all
      other cases we need to make damn sure we don't race with umount.  We can
      *NOT* just grab a reference to a watch - inotify_unmount_inodes() will
      happily sail past it and we'll end with reference to inode potentially
      outliving its superblock.
      
      Ideally we just want to grab an active reference to superblock if we
      can; that will make sure we won't go into inotify_umount_inodes() until
      we are done.  Cleanup is just deactivate_super().
      
      However, that leaves a messy case - what if we *are* racing with
      umount() and active references to superblock can't be acquired anymore?
      We can bump ->s_count, grab ->s_umount, which will almost certainly wait
      until the superblock is shut down and the watch in question is pining
      for fjords.  That's fine, but there is a problem - we might have hit the
      window between ->s_active getting to 0 / ->s_count - below S_BIAS (i.e.
      the moment when superblock is past the point of no return and is heading
      for shutdown) and the moment when deactivate_super() acquires
      ->s_umount.
      
      We could just do drop_super() yield() and retry, but that's rather
      antisocial and this stuff is luser-triggerable.  OTOH, having grabbed
      ->s_umount and having found that we'd got there first (i.e.  that
      ->s_root is non-NULL) we know that we won't race with
      inotify_umount_inodes().
      
      So we could grab a reference to watch and do the rest as above, just
      with drop_super() instead of deactivate_super(), right? Wrong.  We had
      to drop ih->mutex before we could grab ->s_umount.  So the watch
      could've been gone already.
      
      That still can be dealt with - we need to save watch->wd, do idr_find()
      and compare its result with our pointer.  If they match, we either have
      the damn thing still alive or we'd lost not one but two races at once,
      the watch had been killed and a new one got created with the same ->wd
      at the same address.  That couldn't have happened in inotify_destroy(),
      but inotify_rm_wd() could run into that.  Still, "new one got created"
      is not a problem - we have every right to kill it or leave it alone,
      whatever's more convenient.
      
      So we can use idr_find(...) == watch && watch->inode->i_sb == sb as
      "grab it and kill it" check.  If it's been our original watch, we are
      fine, if it's a newcomer - nevermind, just pretend that we'd won the
      race and kill the fscker anyway; we are safe since we know that its
      superblock won't be going away.
      
      And yes, this is far beyond mere "not very pretty"; so's the entire
      concept of inotify to start with.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Acked-by: default avatarGreg KH <greg@kroah.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8f7b0ba1
    • Huang Weiyi's avatar
      LIS3LV02Dx: remove unused #include <version.h> · 0d3b7100
      Huang Weiyi authored
      The file(s) below do not use LINUX_VERSION_CODE nor KERNEL_VERSION.
        drivers/hwmon/lis3lv02d.c
      
      This patch removes the said #include <version.h>.
      Signed-off-by: default avatarHuang Weiyi <weiyi.huang@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0d3b7100
    • Linus Torvalds's avatar
      Merge branch 'sh/for-2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · 537a2f88
      Linus Torvalds authored
      * 'sh/for-2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
        serial: sh-sci: Reorder the SCxTDR write after the TDxE clear.
        sh: __copy_user function can corrupt the stack in case of exception
        sh: Fixed the TMU0 reload value on resume
        sh: Don't factor in PAGE_OFFSET for valid_phys_addr_range() check.
        sh: early printk port type fix
        i2c: fix i2c-sh_mobile rx underrun
        sh: Provide a sane valid_phys_addr_range() to prevent TLB reset with PMB.
        usb: r8a66597-hcd: fix wrong data access in SuperH on-chip USB
        fix sci type for SH7723
        serial: sh-sci: fix cannot work SH7723 SCIFA
        sh: Handle fixmap TLB eviction more coherently.
      537a2f88
    • Linus Torvalds's avatar
      Merge branch 'doc-subdirs' of git://git.kernel.org/pub/scm/linux/kernel/git/rdunlap/linux-docs · fab349cc
      Linus Torvalds authored
      * 'doc-subdirs' of git://git.kernel.org/pub/scm/linux/kernel/git/rdunlap/linux-docs:
        Create/use more directory structure in the Documentation/ tree.
      fab349cc
    • Martin Schwidefsky's avatar
      Add 'pr_fmt()' format modifier to pr_xyz macros. · d091c2f5
      Martin Schwidefsky authored
      A common reason for device drivers to implement their own printk macros
      is the lack of a printk prefix with the standard pr_xyz macros.
      Introduce a pr_fmt() macro that is applied for every pr_xyz macro to the
      format string.
      
      The most common use of the pr_fmt macro would be to add the name of the
      device driver to all pr_xyz messages in a source file.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d091c2f5
    • Linus Torvalds's avatar
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 · 6ca2cb99
      Linus Torvalds authored
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
        V4L/DVB (9624): CVE-2008-5033: fix OOPS on tvaudio when controlling bass/treble
        V4L/DVB (9623): tvaudio: Improve debug msg by printing something more human
        V4L/DVB (9622): tvaudio: Improve comments and remove a unneeded prototype
        V4L/DVB (9621): Avoid writing outside shadow.bytes[] array
        V4L/DVB (9620): tvaudio: use a direct reference for chip description
        V4L/DVB (9619): tvaudio: update initial comments
        V4L/DVB (9618): tvaudio: add additional logic to avoid OOPS
        V4L/DVB (9617): tvtime: remove generic_checkmode callback
        V4L/DVB (9616): tvaudio: cleanup - group all callbacks together
        V4L/DVB (9615): tvaudio: instead of using a magic number, use ARRAY_SIZE
        V4L/DVB (9613): tvaudio: fix a memory leak
      6ca2cb99
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 · 01133148
      Linus Torvalds authored
      * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
        [S390] fix s390x_newuname
        [S390] dasd: log sense for fatal errors
        [S390] cpu topology: fix locking
        [S390] cio: Fix refcount after moving devices.
        [S390] ftrace: fix kernel stack backchain walking
        [S390] ftrace: disable tracing on idle psw
        [S390] lockdep: fix compile bug
        [S390] kvm_s390: Fix oops in virtio device detection with "mem="
        [S390] sclp: emit error message if assign storage fails
        [S390] Fix range for add_active_range() in setup_memory()
      01133148
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 · c98114db
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
        [SCSI] dpt_i2o: fix transferred data length for scsi_set_resid()
        [SCSI] scsi_error regression: Fix idempotent command handling
        [SCSI] zfcp: Fix hexdump data in s390dbf traces
        [SCSI] zfcp: fix erp timeout cleanup for port open requests
        [SCSI] zfcp: Wait for port scan to complete when setting adapter online
        [SCSI] zfcp: Fix cast warning
        [SCSI] zfcp: Fix request list handling in error path
        [SCSI] zfcp: fix mempool usage for status_read requests
        [SCSI] zfcp: fix req_list_locking.
        [SCSI] zfcp: Dont clear reference from SCSI device to unit
        [SCSI] qla2xxx: Update version number to 8.02.01-k9.
        [SCSI] qla2xxx: Return a FAILED status when abort mailbox-command fails.
        [SCSI] qla2xxx: Do not honour max_vports from firmware for 2G ISPs and below.
        [SCSI] qla2xxx: Use pci_disable_rom() to manipulate PCI config space.
        [SCSI] qla2xxx: Correct Atmel flash-part handling.
        [SCSI] megaraid: fix mega_internal_command oops
      c98114db
    • David Woodhouse's avatar
      Revert "x86: blacklist DMAR on Intel G31/G33 chipsets" · 52168e60
      David Woodhouse authored
      This reverts commit e51af663, which was
      wrongly hoovered up and submitted about a month after a better fix had
      already been merged.
      
      The better fix is commit cbda1ba8
      ("PCI/iommu: blacklist DMAR on Intel G31/G33 chipsets"), where we do
      this blacklisting based on the DMI identification for the offending
      motherboard, since sometimes this chipset (or at least a chipset with
      the same PCI ID) apparently _does_ actually have an IOMMU.
      Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      52168e60
    • KOSAKI Motohiro's avatar
      mm: remove unevictable's show_page_path · 748f1a2e
      KOSAKI Motohiro authored
      Hugh Dickins reported show_page_path() is buggy and unsafe because
      
       - lack dput() against d_find_alias()
       - don't concern vma->vm_mm->owner == NULL
       - lack lock_page()
      
      it was only for debugging, so rather than trying to fix it, just remove
      it now.
      Reported-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      CC: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      CC: Rik van Riel <riel@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      748f1a2e
    • Geert Uytterhoeven's avatar
      misc: C2port needs <linux/sched.h> · fb751098
      Geert Uytterhoeven authored
      m68k allmodconfig:
      
      | drivers/misc/c2port/core.c: In function 'c2port_reset':
      | drivers/misc/c2port/core.c:73: error: dereferencing pointer to incomplete type
      | drivers/misc/c2port/core.c: In function 'c2port_strobe_ck':
      | drivers/misc/c2port/core.c:91: error: dereferencing pointer to incomplete type
      
      Include <linux/sched.h> to fix it, as m68k's local_irq_enable() needs to know
      about struct task_struct.
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fb751098