Commit d9d660f6 authored by Juergen Gross's avatar Juergen Gross Committed by Stefano Stabellini
Browse files

xen-scsiback: Add Xen PV SCSI backend driver



Introduces the Xen pvSCSI backend. With pvSCSI it is possible for a
Xen domU to issue SCSI commands to a SCSI LUN assigned to that
domU. The SCSI commands are passed to the pvSCSI backend in a driver
domain (usually Dom0) which is owner of the physical device. This
allows e.g. to use SCSI tape drives in a Xen domU.

The code is taken from the pvSCSI implementation in Xen done by
Fujitsu based on Linux kernel 2.6.18.

Changes from the original version are:
- port to upstream kernel
- put all code in just one source file
- adapt to Linux style guide
- use target core infrastructure instead doing pure pass-through
- enable module unloading
- support SG-list in grant page(s)
- support task abort
- remove redundant struct backend
- allocate resources dynamically
- correct minor error in scsiback_fast_flush_area
- free allocated resources in case of error during I/O preparation
- remove CDB emulation, now handled by target core infrastructure

Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Reviewed-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
parent 8beb8d4c
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -172,6 +172,15 @@ config XEN_PCIDEV_BACKEND

	  If in doubt, say m.

config XEN_SCSI_BACKEND
	tristate "XEN SCSI backend driver"
	depends on XEN && XEN_BACKEND && TARGET_CORE
	help
	  The SCSI backend driver allows the kernel to export its SCSI Devices
	  to other guests via a high-performance shared-memory interface.
	  Only needed for systems running as XEN driver domains (e.g. Dom0) and
	  if guests need generic access to SCSI devices.

config XEN_PRIVCMD
	tristate
	depends on XEN
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ obj-$(CONFIG_XEN_ACPI_HOTPLUG_MEMORY) += xen-acpi-memhotplug.o
obj-$(CONFIG_XEN_ACPI_HOTPLUG_CPU)	+= xen-acpi-cpuhotplug.o
obj-$(CONFIG_XEN_ACPI_PROCESSOR)	+= xen-acpi-processor.o
obj-$(CONFIG_XEN_EFI)			+= efi.o
obj-$(CONFIG_XEN_SCSI_BACKEND)		+= xen-scsiback.o
xen-evtchn-y				:= evtchn.o
xen-gntdev-y				:= gntdev.o
xen-gntalloc-y				:= gntalloc.o
+2124 −0

File added.

Preview size limit exceeded, changes collapsed.