1. 24 10月, 2007 2 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest · 0d681009
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest: (45 commits)
        Use "struct boot_params" in example launcher
        Loading bzImage directly.
        Revert lguest magic and use hook in head.S
        Update lguest documentation to reflect the new virtual block device name.
        generalize lgread_u32/lgwrite_u32.
        Example launcher handle guests not being ready for input
        Update example launcher for virtio
        Lguest support for Virtio
        Remove old lguest I/O infrrasructure.
        Remove old lguest bus and drivers.
        Virtio helper routines for a descriptor ringbuffer implementation
        Module autoprobing support for virtio drivers.
        Virtio console driver
        Block driver using virtio.
        Net driver using virtio
        Virtio interface
        Boot with virtual == physical to get closer to native Linux.
        Allow guest to specify syscall vector to use.
        Rename "cr3" to "gpgdir" to avoid x86-specific naming.
        Pagetables to use normal kernel types
        ...
      0d681009
    • H
      Fix synchronize_irq races with IRQ handler · a98ce5c6
      Herbert Xu 提交于
      As it is some callers of synchronize_irq rely on memory barriers
      to provide synchronisation against the IRQ handlers.  For example,
      the tg3 driver does
      
      	tp->irq_sync = 1;
      	smp_mb();
      	synchronize_irq();
      
      and then in the IRQ handler:
      
      	if (!tp->irq_sync)
      		netif_rx_schedule(dev, &tp->napi);
      
      Unfortunately memory barriers only work well when they come in
      pairs.  Because we don't actually have memory barriers on the
      IRQ path, the memory barrier before the synchronize_irq() doesn't
      actually protect us.
      
      In particular, synchronize_irq() may return followed by the
      result of netif_rx_schedule being made visible.
      
      This patch (mostly written by Linus) fixes this by using spin
      locks instead of memory barries on the synchronize_irq() path.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a98ce5c6
  2. 23 10月, 2007 38 次提交