1. 08 May, 2008 18 commits
  2. 07 May, 2008 15 commits
  3. 06 May, 2008 7 commits
    • David S. Miller's avatar
      sparc64: Fix initrd regression. · d45100f7
      David S. Miller authored
      We die because we forget to convert initrd_start and
      initrd_end to virtual addresses.
      
      Reported by Mikael Pettersson
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d45100f7
    • David S. Miller's avatar
      usb: Sparc build fix, make USB_ISP1760_OF depend on PPC_OF · 3eb6753e
      David S. Miller authored
      Sparc doesn't have some of the OF interfaces this driver
      wants to use.
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3eb6753e
    • OGAWA Hirofumi's avatar
      Fix bogus warning in sysdev_driver_register() · db176c6e
      OGAWA Hirofumi authored
              if ((drv->entry.next != drv->entry.prev) ||
                  (drv->entry.next != NULL)) {
      
      warns list_empty(&drv->entry).
      Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Greg KH <gregkh@suse.de>
      Cc: Len Brown <lenb@kernel.org>
      [ Version 2 totally redone based on suggestions from Linus & Greg ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      db176c6e
    • Linus Torvalds's avatar
      VFS: fix unused variable warning · 6ce07c7b
      Linus Torvalds authored
      Commit 33dcdac2 ("kill ->put_inode")
      removed the final use of i_op->put_inode, but left the now totally
      unused "op" variable in iput().
      
      Get rid of it.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6ce07c7b
    • Hugh Dickins's avatar
      x86: fix PAE pmd_bad bootup warning · aeed5fce
      Hugh Dickins authored
      Fix warning from pmd_bad() at bootup on a HIGHMEM64G HIGHPTE x86_32.
      
      That came from 9fc34113 x86: debug pmd_bad();
      but we understand now that the typecasting was wrong for PAE in the previous
      version: pagetable pages above 4GB looked bad and stopped Arjan from booting.
      
      And revert that cded932b x86: fix pmd_bad
      and pud_bad to support huge pages.  It was the wrong way round: we shouldn't
      weaken every pmd_bad and pud_bad check to let huge pages slip through - in
      part they check that we _don't_ have a huge page where it's not expected.
      
      Put the x86 pmd_bad() and pud_bad() definitions back to what they have long
      been: they can be improved (x86_32 should use PTE_MASK, to stop PAE thinking
      junk in the upper word is good; and x86_64 should follow x86_32's stricter
      comparison, to stop thinking any subset of required bits is good); but that
      should be a later patch.
      
      Fix Hans' good observation that follow_page() will never find pmd_huge()
      because that would have already failed the pmd_bad test: test pmd_huge in
      between the pmd_none and pmd_bad tests.  Tighten x86's pmd_huge() check?
      No, once it's a hugepage entry, it can get quite far from a good pmd: for
      example, PROT_NONE leaves it with only ACCESSED of the KERN_PGTABLE bits.
      
      However... though follow_page() contains this and another test for huge
      pages, so it's nice to keep it working on them, where does it actually get
      called on a huge page?  get_user_pages() checks is_vm_hugetlb_page(vma) to
      to call alternative hugetlb processing, as does unmap_vmas() and others.
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Earlier-version-tested-by: default avatarIngo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jeff Chua <jeff.chua.linux@gmail.com>
      Cc: Hans Rosenfeld <hans.rosenfeld@amd.com>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aeed5fce
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · bb78be83
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        [PATCH] fix SMP ordering hole in fcntl_setlk()
        [PATCH] kill ->put_inode
        [PATCH] fix reservation discarding in affs
      bb78be83
    • Al Viro's avatar
      [PATCH] fix SMP ordering hole in fcntl_setlk() · 0b2bac2f
      Al Viro authored
      fcntl_setlk()/close() race prevention has a subtle hole - we need to
      make sure that if we *do* have an fcntl/close race on SMP box, the
      access to descriptor table and inode->i_flock won't get reordered.
      
      As it is, we get STORE inode->i_flock, LOAD descriptor table entry vs.
      STORE descriptor table entry, LOAD inode->i_flock with not a single
      lock in common on both sides.  We do have BKL around the first STORE,
      but check in locks_remove_posix() is outside of BKL and for a good
      reason - we don't want BKL on common path of close(2).
      
      Solution is to hold ->file_lock around fcheck() in there; that orders
      us wrt removal from descriptor table that preceded locks_remove_posix()
      on close path and we either come first (in which case eviction will be
      handled by the close side) or we'll see the effect of close and do
      eviction ourselves.  Note that even though it's read-only access,
      we do need ->file_lock here - rcu_read_lock() won't be enough to
      order the things.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      0b2bac2f