1. 03 5月, 2008 27 次提交
  2. 02 5月, 2008 12 次提交
    • R
      virtio: add virtio disk geometry feature · 48e4043d
      Ryan Harper 提交于
      Rather than faking up some geometry, allow the backend to push the disk
      geometry via virtio pci config option.  Keep the old geo code around for
      compatibility.
      Signed-off-by: NRyan Harper <ryanh@us.ibm.com>
      Reviewed-by: NAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (modified to single struct)
      48e4043d
    • R
      virtio: explicit advertisement of driver features · c45a6816
      Rusty Russell 提交于
      A recent proposed feature addition to the virtio block driver revealed
      some flaws in the API: in particular, we assume that feature
      negotiation is complete once a driver's probe function returns.
      
      There is nothing in the API to require this, however, and even I
      didn't notice when it was violated.
      
      So instead, we require the driver to specify what features it supports
      in a table, we can then move the feature negotiation into the virtio
      core.  The intersection of device and driver features are presented in
      a new 'features' bitmap in the struct virtio_device.
      
      Note that this highlights the difference between Linux unsigned-long
      bitmaps where each unsigned long is in native endian, and a
      straight-forward little-endian array of bytes.
      
      Drivers can still remove feature bits in their probe routine if they
      really have to.
      
      API changes:
      - dev->config->feature() no longer gets and acks a feature.
      - drivers should advertise their features in the 'feature_table' field
      - use virtio_has_feature() for extra sanity when checking feature bits
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      c45a6816
    • R
      virtio: change config to guest endian. · 72e61eb4
      Rusty Russell 提交于
      A recent proposed feature addition to the virtio block driver revealed
      some flaws in the API, in particular how easy it is to break big
      endian machines.
      
      The virtio config space was originally chosen to be little-endian,
      because we thought the config might be part of the PCI config space
      for virtio_pci.  It's actually a separate mmio region, so that
      argument holds little water; as only x86 is currently using the virtio
      mechanism, we can change this (but must do so now, before the
      impending s390 merge).
      
      API changes:
      - __virtio_config_val() just becomes a striaght vdev->config_get() call.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      72e61eb4
    • R
      virtio: finer-grained features for virtio_net · 5539ae96
      Rusty Russell 提交于
      So, we previously had a 'VIRTIO_NET_F_GSO' bit which meant that 'the
      host can handle csum offload, and any TSO (v4&v6 incl ECN) or UFO
      packets you might want to send.  I thought this was good enough for
      Linux, but it actually isn't, since we don't do UFO in software.
      
      So, add separate feature bits for what the host can handle.  Add
      equivalent ones for the guest to say what it can handle, because LRO
      is coming too (thanks Herbert!).
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      5539ae96
    • R
      virtio: de-structify virtio_block status byte · cb38fa23
      Rusty Russell 提交于
      Ron Minnich points out that a struct containing a char is not always
      sizeof(char); simplest to remove the structure to avoid confusion.
      
      Cc: "ron minnich" <rminnich@gmail.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      cb38fa23
    • C
      virtio: export more headers to userspace · 81473132
      Christian Borntraeger 提交于
      Rusty,
      
      is there a reason why we dont export the virtio headers for
      9p, balloon, console, pci, and virtio_ring? kvm uses make sync,
      but I think it is still useful to heave these headers exported
      as they might be useful for other userspace tools.
      
      I dont export virtio.h, because it does not seem to have useful
      information for userspace and it requires scatterlist.h which is
      also not exported. See also my other mail about your "virtio:
      change config to guest endian." patch.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      81473132
    • T
      genirq: reenable a nobody cared disabled irq when a new driver arrives · 1adb0850
      Thomas Gleixner 提交于
      Uwe Kleine-Koenig has some strange hardware where one of the shared
      interrupts can be asserted during boot before the appropriate driver
      loads. Requesting the shared irq line from another driver result in a
      spurious interrupt storm which finally disables the interrupt line.
      
      I have seen similar behaviour on resume before (the hardware does not
      work anymore so I can not verify).
      
      Change the spurious disable logic to increment the disable depth and
      mark the interrupt with an extra flag which allows us to reenable the
      interrupt when a new driver arrives which requests the same irq
      line. In the worst case this will disable the irq again via the
      spurious trap, but there is a decent chance that the new driver is the
      one which can handle the already asserted interrupt and makes the box
      usable again.
      
      Eric Biederman said further: This case also happens on a regular basis
      in kdump kernels where we deliberately don't shutdown the hardware
      before starting the new kernel.  This patch should reduce the need for
      using irqpoll in that situation by a small amount.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Tested-and-Acked-by: NUwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
      1adb0850
    • R
      [IA64] TS_RESTORE_SIGMASK · 848376c7
      Roland McGrath 提交于
      Replace TIF_RESTORE_SIGMASK with TS_RESTORE_SIGMASK and define
      our own set_restore_sigmask() function.  This saves the costly
      SMP-safe set_bit operation, which we do not need for the sigmask
      flag since TIF_SIGPENDING always has to be set too.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      848376c7
    • J
      [MTD][NOR] Add physical address to point() method · a98889f3
      Jared Hulbert 提交于
      Adding the ability to get a physical address from point() in addition
      to virtual address.  This physical address is required for XIP of
      userspace code from flash.
      Signed-off-by: NJared Hulbert <jaredeh@gmail.com>
      Reviewed-by: NJörn Engel <joern@logfs.org>
      Acked-by: NNicolas Pitre <nico@cam.org>
      Acked-by: NGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      a98889f3
    • A
      [PATCH] sanitize anon_inode_getfd() · 2030a42c
      Al Viro 提交于
      a) none of the callers even looks at inode or file returned by anon_inode_getfd()
      b) any caller that would try to look at those would be racy, since by the time
      it returns we might have raced with close() from another thread and that
      file would be pining for fjords.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      2030a42c
    • A
      [PATCH] split linux/file.h · 9f3acc31
      Al Viro 提交于
      Initial splitoff of the low-level stuff; taken to fdtable.h
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      9f3acc31
    • A
      [PATCH] make osf_select() use core_sys_select() · a2dcb44c
      Al Viro 提交于
      ... instead of open-coding it
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      a2dcb44c
  3. 01 5月, 2008 1 次提交