1. Mar 18, 2008
  2. Mar 17, 2008
    • Jose Alberto Reguero's avatar
      c40e7cb8
    • Tejun Heo's avatar
      pata_ali: use atapi_cmd_type() to determine cmd type instead of transfer size · 4a38e733
      Tejun Heo authored
      
      
      pata_ali was using qc->nbytes to determine whether a command is
      data transfer type or not.  As now qc->nbytes can be extended by
      padding and draining buffers, these tests are not useful anymore.
      
      Use atapi_cmd_type() instead.
      
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      4a38e733
    • Tejun Heo's avatar
      ahci: implement skip_host_reset parameter · a22e6444
      Tejun Heo authored
      
      
      Under certain circumstances (SSP turned off by the BIOS) and for
      debugging purposes, skipping global controller reset is helpful.  Add
      a kernel parameter for it.
      
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      a22e6444
    • Tejun Heo's avatar
      ahci: request all PCI BARs · dea55137
      Tejun Heo authored
      
      
      ahci is often implemented with accompanying SFF compatible interface
      and legacy IDE driver may attach to the legacy IO ports when the
      controller is already claimed by ahci and vice-versa.  This patch
      makes ahci use pcim_iomap_regions_request_all() so that all IO regions
      are claimed on attach.
      
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      dea55137
    • Tejun Heo's avatar
      devres: implement pcim_iomap_regions_request_all() · 916fbfb7
      Tejun Heo authored
      
      
      Some drivers need to reserve all PCI BARs to prevent other drivers
      misusing unoccupied BARs.  pcim_iomap_regions_request_all() requests
      all BARs and iomap specified BARs.
      
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@suse.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      916fbfb7
    • Tejun Heo's avatar
      libata-acpi: improve dock event handling · 233f1120
      Tejun Heo authored
      
      
      Improve ACPI hotplug handling such that dock event is handled properly.
      
      * Register handlers for dock events.
      
      * Directly detach device on EJECT_REQUEST instead of signaling hotplug
        event.  This prevents libata from accessing severed controller
        and/or device.
      
      * While at it, use named constants for ACPI events and move uevent
        signaling inside host lock.
      
      Original patch and testing by Holger Macht.
      
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Cc: Holger Macht <hmacht@suse.de>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      233f1120
    • Christian Borntraeger's avatar
      virtio: fix race in enable_cb · 4265f161
      Christian Borntraeger authored
      
      
      There is a race in virtio_net, dealing with disabling/enabling the callback.
      I saw the following oops:
      
      kernel BUG at /space/kvm/drivers/virtio/virtio_ring.c:218!
      illegal operation: 0001 [#1] SMP
      Modules linked in: sunrpc dm_mod
      CPU: 2 Not tainted 2.6.25-rc1zlive-host-10623-gd358142-dirty #99
      Process swapper (pid: 0, task: 000000000f85a610, ksp: 000000000f873c60)
      Krnl PSW : 0404300180000000 00000000002b81a6 (vring_disable_cb+0x16/0x20)
                 R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:3 PM:0 EA:3
      Krnl GPRS: 0000000000000001 0000000000000001 0000000010005800 0000000000000001
                 000000000f3a0900 000000000f85a610 0000000000000000 0000000000000000
                 0000000000000000 000000000f870000 0000000000000000 0000000000001237
                 000000000f3a0920 000000000010ff74 00000000002846f6 000000000fa0bcd8
      Krnl Code: 00000000002b819a: a7110001           tmll    %r1,1
                 00000000002b819e: a7840004           brc     8,2b81a6
                 00000000002b81a2: a7f40001           brc     15,2b81a4
                >00000000002b81a6: a51b0001           oill    %r1,1
                 00000000002b81aa: 40102000           sth     %r1,0(%r2)
                 00000000002b81ae: 07fe               bcr     15,%r14
                 00000000002b81b0: eb7ff0380024       stmg    %r7,%r15,56(%r15)
                 00000000002b81b6: a7f13e00           tmll    %r15,15872
      Call Trace:
      ([<000000000fa0bcd0>] 0xfa0bcd0)
       [<00000000002b8350>] vring_interrupt+0x5c/0x6c
       [<000000000010ab08>] do_extint+0xb8/0xf0
       [<0000000000110716>] ext_no_vtime+0x16/0x1a
       [<0000000000107e72>] cpu_idle+0x1c2/0x1e0
      
      The problem can be triggered with a high amount of host->guest traffic.
      I think its the following race:
      
      poll says netif_rx_complete
      poll calls enable_cb
      enable_cb opens the interrupt mask
      a new packet comes, an interrupt is triggered----\
      enable_cb sees that there is more work           |
      enable_cb disables the interrupt                 |
             .                                         V
             .                            interrupt is delivered
             .                            skb_recv_done does atomic napi test, ok
       some waiting                       disable_cb is called->check fails->bang!
             .
      poll would do napi check
      poll would do disable_cb
      
      The fix is to let enable_cb not disable the interrupt again, but expect the
      caller to do the cleanup if it returns false. In that case, the interrupt is
      only disabled, if the napi test_set_bit was successful.
      
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (cleaned up doco)
      4265f161
    • Amit Shah's avatar
      virtio: Enable netpoll interface for netconsole logging · da74e89d
      Amit Shah authored
      
      
      Add a new poll_controller handler that the netpoll interface needs.
      
      This enables netconsole logging from a kvm guest over the virtio
      net interface.
      
      Signed-off-by: default avatarAmit Shah <amitshah@gmx.net>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      da74e89d
    • Rusty Russell's avatar
      virtio: handle > 2 billion page balloon targets · bdc1681c
      Rusty Russell authored
      
      
      If the host asks for a huge target towards_target() can overflow, and
      we up oops as we try to release more pages than we have.  The simple
      fix is to use a 64-bit value.
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      bdc1681c
    • Jeremy Katz's avatar
      virtio: Fix sysfs bits to have proper block symlink · c4839346
      Jeremy Katz authored
      
      
      Fix up so that the virtio_blk devices in sysfs link correctly to their
      block device.  This then allows them to be detected by hal, etc
      
      Signed-off-by: default avatarJeremy Katz <katzj@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      c4839346
    • Anthony Liguori's avatar
      virtio: Use spin_lock_irqsave/restore for virtio-pci · 27ebe308
      Anthony Liguori authored
      
      
      virtio-pci acquires its spin lock in an interrupt context so it's necessary
      to use spin_lock_irqsave/restore variants.  This patch fixes guest SMP when
      using virtio devices in KVM.
      
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      27ebe308
    • Linus Torvalds's avatar
      Linux 2.6.25-rc6 · a978b30a
      Linus Torvalds authored
      a978b30a
    • Linus Torvalds's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 · 69d1d523
      Linus Torvalds authored
      * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
        [PARISC] make ptr_to_pide() static
        [PARISC] head.S: section mismatch fixes
        [PARISC] add back Crestone Peak cpu
        [PARISC] futex: special case cmpxchg NULL in kernel space
        [PARISC] clean up show_stack
        [PARISC] add pa8900 CPUs to hardware inventory
        [PARISC] clean up include/asm-parisc/elf.h
        [PARISC] move defconfig to arch/parisc/configs/
        [PARISC] add back AD1889 MAINTAINERS entry
        [PARISC] pdc_console: fix bizarre panic on boot
        [PARISC] dump_stack in show_regs
        [PARISC] pdc_stable: fix compile errors
        [PARISC] remove unused pdc_iodc_printf function
        [PARISC] bump __NR_syscalls
        [PARISC] unbreak pgalloc.h
        [PARISC] move VMALLOC_* definitions to fixmap.h
        [PARISC] wire up timerfd syscalls
        [PARISC] remove old timerfd syscall
      69d1d523
  3. Mar 16, 2008
  4. Mar 15, 2008