remarkable-linux/include
Rusty Russell c45a6816c1 virtio: explicit advertisement of driver features
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: Rusty Russell <rusty@rustcorp.com.au>
2008-05-02 21:50:50 +10:00
..
acpi
asm-alpha kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
asm-arm rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
asm-avr32 kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
asm-blackfin kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
asm-cris kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
asm-frv frv: unbreak misalignment handling changes 2008-05-01 08:03:58 -07:00
asm-generic rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
asm-h8300 kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
asm-ia64 dmi: clean-up dmi helper declarations 2008-05-01 08:04:01 -07:00
asm-m32r kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
asm-m68k rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
asm-m68knommu m68knommu: rework definition of HZ 2008-05-01 08:08:36 -07:00
asm-mips rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
asm-mn10300 rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
asm-parisc asm-*/futex.h should include linux/uaccess.h 2008-04-30 08:29:52 -07:00
asm-powerpc asm-*/futex.h should include linux/uaccess.h 2008-04-30 08:29:52 -07:00
asm-ppc [RAPIDIO] Move include/asm-ppc/rio.h to asm-powerpc 2008-04-29 19:40:27 +10:00
asm-s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-30 08:45:48 -07:00
asm-sh asm-*/futex.h should include linux/uaccess.h 2008-04-30 08:29:52 -07:00
asm-sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-04-30 08:46:16 -07:00
asm-sparc64 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-04-30 08:46:16 -07:00
asm-um rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
asm-v850 kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
asm-x86 dmi: clean-up dmi helper declarations 2008-05-01 08:04:01 -07:00
asm-xtensa kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
crypto [CRYPTO] api: Fix scatterwalk_sg_chain 2008-05-01 18:22:28 +08:00
keys
linux virtio: explicit advertisement of driver features 2008-05-02 21:50:50 +10:00
math-emu
media Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb 2008-04-29 14:53:40 -07:00
mtd
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-30 08:45:48 -07:00
pcmcia
rdma IB: expand ib_umem_get() prototype 2008-04-29 08:06:12 -07:00
rxrpc
scsi IB/iser: Count FMR alignment violations per session 2008-04-29 13:46:52 -07:00
sound [ALSA] Add MPU401_INFO_NO_ACK bitflag 2008-04-29 19:01:56 +02:00
video
xen
Kbuild