24 Mar, 2009

24 commits


23 Mar, 2009

11 commits

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc:
    powerpc/mm: Fix Respect _PAGE_COHERENT on classic ppc32 SW TLB load machines

    Linus Torvalds
     
  • Grant picked up the wrong version of "Respect _PAGE_COHERENT on classic
    ppc32 SW" (commit a4bd6a93c3f14691c8a29e53eb04dc734b27f0db)

    It was missing the code to actually deal with the fixup of
    _PAGE_COHERENT based on the CPU feature.

    Signed-off-by: Kumar Gala

    Kumar Gala
     
  • commit b1c4a9dddf09fe99b8f88252718ac5b357363dc4 ("ucc_geth: Change
    uec phy id to the same format as gianfar's") introduced a regression
    in the ucc_geth driver that causes this oops when fixed-link is used:

    Unable to handle kernel paging request for data at address 0x00000000
    Faulting instruction address: 0xc0151270
    Oops: Kernel access of bad area, sig: 11 [#1]
    TMCUTU
    NIP: c0151270 LR: c0151270 CTR: c0017760
    REGS: cf81fa60 TRAP: 0300 Not tainted (2.6.29-rc8)
    MSR: 00009032 CR: 24024042 XER: 20000000
    DAR: 00000000, DSISR: 20000000
    TASK = cf81cba0[1] 'swapper' THREAD: cf81e000
    GPR00: c0151270 cf81fb10 cf81cba0 00000000 c0272e20 c025f354 00001e80
    cf86b08c
    GPR08: d1068200 cffffb74 06000000 d106c200 42024042 10085148 0fffd000
    0ffc81a0
    GPR16: 00000001 00000001 00000000 007ffeb0 00000000 0000c000 cf83f36c
    cf83f000
    GPR24: 00000030 cf83f360 cf81fb20 00000000 d106c200 20000000 00001e80
    cf83f360
    NIP [c0151270] ucc_geth_open+0x330/0x1efc
    LR [c0151270] ucc_geth_open+0x330/0x1efc
    Call Trace:
    [cf81fb10] [c0151270] ucc_geth_open+0x330/0x1efc (unreliable)
    [cf81fba0] [c0187638] dev_open+0xbc/0x12c
    [cf81fbc0] [c0187e38] dev_change_flags+0x8c/0x1b0

    This patch fixes the issue by removing offending (and somewhat
    duplicate) code from init_phy() routine, and changes _probe()
    function to use uec_mdio_bus_name().

    Also, since we fully construct phy_bus_id in the _probe() routine,
    we no longer need ->phy_address and ->mdio_bus fields in
    ucc_geth_info structure.

    I wish the patch would be a bit shorter, but it seems like the only
    way to fix the issue in a sane way. Luckily, the patch has been
    tested with real PHYs and fixed-link, so no further regressions
    expected.

    Reported-by: Joakim Tjernlund
    Signed-off-by: Anton Vorontsov
    Tested-by: Joakim Tjernlund
    Signed-off-by: David S. Miller

    Anton Vorontsov
     
  • This fixes a locking bug in the dm9000 driver. It calls
    request_irq() without setting IRQF_DISABLED ... which is
    correct for handlers that support IRQ sharing, since that
    behavior is not guaranteed for shared IRQs. However, its
    IRQ handler then wrongly assumes that IRQs are blocked.
    So the fix just uses the right spinlock primitives in the
    IRQ handler.

    NOTE: this is a classic example of the type of bug which
    lockdep currently masks by forcibly setting IRQF_DISABLED
    on IRQ handlers that did not request that flag.

    Signed-off-by: David Brownell
    Signed-off-by: David S. Miller

    David Brownell
     
  • Signed-off-by: Stephen Rothwell
    Signed-off-by: David S. Miller

    Stephen Rothwell
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
    kconfig: improve seed in randconfig
    kconfig: fix randconfig for choice blocks

    Linus Torvalds
     
  • * 'fix-includes' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68k: merge the non-MMU and MMU versions of siginfo.h
    m68k: use the MMU version of unistd.h for all m68k platforms
    m68k: merge the non-MMU and MMU versions of signal.h
    m68k: merge the non-MMU and MMU versions of ptrace.h
    m68k: use MMU version of setup.h for both MMU and non-MMU
    m68k: merge the non-MMU and MMU versions of sigcontext.h
    m68k: merge the non-MMU and MMU versions of swab.h
    m68k: merge the non-MMU and MMU versions of param.h

    Linus Torvalds
     
  • Update all previous incarnations of my email address to the correct one.

    Signed-off-by: Gertjan van Wingerde
    Signed-off-by: Linus Torvalds

    Gertjan van Wingerde
     
  • If ecryptfs_encrypted_view or ecryptfs_xattr_metadata were being
    specified as mount options, a NULL pointer dereference of crypt_stat
    was possible during lookup.

    This patch moves the crypt_stat assignment into
    ecryptfs_lookup_and_interpose_lower(), ensuring that crypt_stat
    will not be NULL before we attempt to dereference it.

    Thanks to Dan Carpenter and his static analysis tool, smatch, for
    finding this bug.

    Signed-off-by: Tyler Hicks
    Acked-by: Dustin Kirkland
    Cc: Dan Carpenter
    Cc: Serge Hallyn
    Signed-off-by: Linus Torvalds

    Tyler Hicks
     
  • When allocating the memory used to store the eCryptfs header contents, a
    single, zeroed page was being allocated with get_zeroed_page().
    However, the size of an eCryptfs header is either PAGE_CACHE_SIZE or
    ECRYPTFS_MINIMUM_HEADER_EXTENT_SIZE (8192), whichever is larger, and is
    stored in the file's private_data->crypt_stat->num_header_bytes_at_front
    field.

    ecryptfs_write_metadata_to_contents() was using
    num_header_bytes_at_front to decide how many bytes should be written to
    the lower filesystem for the file header. Unfortunately, at least 8K
    was being written from the page, despite the chance of the single,
    zeroed page being smaller than 8K. This resulted in random areas of
    kernel memory being written between the 0x1000 and 0x1FFF bytes offsets
    in the eCryptfs file headers if PAGE_SIZE was 4K.

    This patch allocates a variable number of pages, calculated with
    num_header_bytes_at_front, and passes the number of allocated pages
    along to ecryptfs_write_metadata_to_contents().

    Thanks to Florian Streibelt for reporting the data leak and working with
    me to find the problem. 2.6.28 is the only kernel release with this
    vulnerability. Corresponds to CVE-2009-0787

    Signed-off-by: Tyler Hicks
    Acked-by: Dustin Kirkland
    Reviewed-by: Eric Sandeen
    Reviewed-by: Eugene Teo
    Cc: Greg KH
    Cc: dann frazier
    Cc: Serge E. Hallyn
    Cc: Florian Streibelt
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Tyler Hicks
     
  • This fixes a regression introduced when we switched to using the core
    pci_set_power_state(). The chip seems to need the state to be written
    over and over again until it sticks, so we do that.

    Note that the code is a bit blunt, without timeout, etc... but that's
    pretty much because I put back in there the code exactly as it used to
    be before the regression. I still add a call to pci_set_power_state()
    at the end so that ACPI gets called appropriately on x86.

    Signed-off-by: Benjamin Herrenschmidt
    Tested-by: Raymond Wooninck
    Acked-by: Rafael J. Wysocki
    Cc: Jesse Barnes
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

22 Mar, 2009

2 commits


21 Mar, 2009

2 commits


20 Mar, 2009

1 commit