02 Nov, 2005

23 commits


01 Nov, 2005

8 commits

  • Anton Altaparmakov
     
  • Signed-off-by: Anton Altaparmakov

    Anton Altaparmakov
     
  • The USB "handoff" code is an early PCI quirk to make sure we own the USB
    controller (as opposed to the BIOS/SMM). But if the controller isn't
    even enabled yet, don't try to access it.

    Acked-by: Paul Mackerras (who had an alternate patch)
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Commit f2b36db692b7ff6972320ad9839ae656a3b0ee3e causes a bootup hang on
    at least one machine. Revert for now until we understand why. The old
    code may be ugly, but it works.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • This adds the magic IO wakeup code for the CardBus version of the
    Creative Labs Audigy 2 to the snd-emu10k1 driver.

    Without the magic IO enable sequence, reading from the IO region of the
    card will fail spectacularly, and the machine will hang.

    My next task will be getting the driver to actually play sound without
    distortion.

    Signed-off-by: James Courtier-Dutton

    [ This is a work-in-progress, but since it avoids a total lockup
    if the emu10k module is loaded on a machine with the cardbus
    card inserted, we're better off with it than without it, even
    if sound quality is bad right now ]

    Signed-off-by: Linus Torvalds

    James Courtier-Dutton
     
  • When the inode count is zero in inode writeback, the

    WARN_ON(!(inode->i_state & I_WILL_FREE));

    is broken, and needs to test for either I_WILL_FREE|I_FREEING.

    When the inode is in I_FREEING state, it's already out of the visibility
    of the vm so it can't be freed so it doesn't require the __iget and the
    generic_delete_inode path can call the sync internally to the lowlevel
    fs callback during the last iput. So the inode being in I_FREEING is
    also a valid condition for calling the sync with i_count == 0.

    The specific stack trace is this:

    0xc00000007b8fb6e0 0xc00000000010118c .__writeback_single_inode +0x5c
    0xc00000007b8fb6e0 0xc0000000001014dc (lr) .sync_inode +0x3c
    0xc00000007b8fb790 0xc0000000001014dc .sync_inode +0x3c
    0xc00000007b8fb820 0xc0000000001a5020 .ext2_sync_inode +0x64
    0xc00000007b8fb8f0 0xc0000000001a65b4 .ext2_truncate +0x3f8
    0xc00000007b8fba40 0xc0000000001a6940 .ext2_delete_inode +0xdc
    0xc00000007b8fbac0 0xc0000000000f7a5c .generic_delete_inode +0x124
    0xc00000007b8fbb50 0xc0000000000f5fe0 .iput +0xb8
    0xc00000007b8fbbe0 0xc0000000000e9fd4 .sys_unlink +0x2a8
    0xc00000007b8fbd10 0xc00000000001048c .ret_from_syscall_1 +0x0

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Arcangeli
     
  • Jeff Garzik points out that this was wrong: we need to
    disable local interrupts while holding KM_IRQ0 due to IRQ sharing.

    And holding interrupts off during a big PIO opration is expensive, so we only
    want to do that if we know the page was highmem.

    So revert commit 17fd47ab4d33e764216b87006d8118fa050b4c92

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • CONFIG_PC is left-over cruft after the introduction of CONFIG_X86_PC with
    the subarch split. Remove it, and fixup the remaining users to depend on
    CONFIG_X86_PC instead.

    Signed-off-by: Arthur Othieno
    Signed-off-by: Linus Torvalds

    Arthur Othieno
     

31 Oct, 2005

9 commits