1. 29 9月, 2008 5 次提交
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 3c1370a3
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        sata_nv: reinstate nv_hardreset() for non generic controllers
      3c1370a3
    • Z
      kconfig: readd lost change count · 661b0680
      zippel@linux-m68k.org 提交于
      Commit f072181e ("kconfig: drop the
      ""trying to assign nonexistent symbol" warning") simply dropped the
      warnings, but it does a little more than that, it also marks the current
      .config as needed saving, so add this back.
      Signed-off-by: NRoman Zippel <zippel@linux-m68k.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      661b0680
    • Z
      kconfig: fix silentoldconfig · 204c96f6
      zippel@linux-m68k.org 提交于
      Recent changes to oldconfig have mixed up the silentoldconfig handling,
      so this fixes that by clearly separating that special mode, e.g.
      KCONFIG_NOSILENTUPDATE is only relevant here, the .config is written as
      needed.
      
      This will also properly close Bug 11230.
      Signed-off-by: NRoman Zippel <zippel@linux-m68k.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      204c96f6
    • L
      Fix NULL pointer dereference in proc_sys_compare · d0185c08
      Linus Torvalds 提交于
      The VFS interface for the 'd_compare()' is a bit special (read: 'odd'),
      because it really just essentially replaces a memcmp().  The filesystem
      is supposed to just compare the two names with whatever case-independent
      or other function.
      
      And when I say 'is supposed to', I obviously mean that 'procfs does odd
      things, and actually looks at the dentry that we don't even pass down,
      rather than just the name'.  Which results in problems, because we
      actually call d_compare before we have even verified that the dentry is
      still hashed at all.
      
      And that causes a problm since the inode that procfs looks at may have
      been free'd and the d_inode pointer is NULL.  procfs just assumes that
      all dentries are positive, since procfs itself never generates a
      negative one.  But memory pressure will still result in the dentry
      getting torn down, and as it is removed by RCU, it still remains visible
      on some lists - and to d_compare.
      
      If the filesystem just did a name comparison, we wouldn't care.  And we
      could just fix procfs to know about negative dentries too.  But rather
      than have the low-level filesystems know about internal VFS details,
      just move the check for a unhashed dentry up a bit, so that we will only
      call d_compare on dentries that are still active.
      
      The actual oops this caused didn't look like a NULL pointer dereference
      because procfs did a 'container_of(inode, struct proc_inode, vfs_inode)'
      to get at its internal proc_inode information from the inode pointer,
      and accessed a field below the inode. So the oops would look something
      like
      
      	BUG: unable to handle kernel paging request at fffffffffffffff0
      	IP: [<ffffffff802bc6c6>] proc_sys_compare+0x36/0x50
      
      and was seen on both x86-64 (Alexey Dobriyan and Hugh Dickins) and
      ppc64 (Hugh Dickins).
      Reported-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Acked-by: NHugh Dickins <hugh@veritas.com>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Reviewed-by: N"Eric W. Biederman" <ebiederm@xmission.com>
      Signed-of-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d0185c08
    • T
      sata_nv: reinstate nv_hardreset() for non generic controllers · 4c1eb90a
      Tejun Heo 提交于
      Commit 2fd673ec which tried to remove
      hardreset for generic accidentally removed it for all flavors as all
      others were inheriting from nv_generic_ops.  This patch reinstates
      nv_hardreset() and puts it into nv_common_ops which all flavors
      inherit from.  nv_generic_ops now inherits from nv_common_ops and
      overrides .hardreset to ATA_OP_NULL.
      
      While at it, explain why nv_hardreset and ATA_OP_NULL override are
      necessary.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      4c1eb90a
  2. 27 9月, 2008 1 次提交
  3. 26 9月, 2008 6 次提交
  4. 25 9月, 2008 20 次提交
  5. 24 9月, 2008 8 次提交