staging: virthba driver to access shared SCSI hba
The virthba module provides access to a shared SCSI host bus adapter and one or more disk devices, by proxying SCSI commands between the guest and the service partition that owns the shared SCSI adapter, using a channel between the guest and the service partition. The disks that appear on the shared bus are defined by the s-Par configuration and enforced by the service partition, while the guest driver handles sending commands and handling responses. Each disk is shared as a whole to a guest. Sharing the bus adapter in this way provides resiliency; should the device encounter an error, only the service partition is rebooted, and the device is reinitialized. This allows guests to continue running and to recover from the error. Signed-off-by: Ken Cox <jkc@redhat.com> Cc: Ben Romer <sparmaintainer@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
af86526b22
commit
dc95086172
@ -15,5 +15,6 @@ source "drivers/staging/unisys/visorchipset/Kconfig"
|
||||
source "drivers/staging/unisys/channels/Kconfig"
|
||||
source "drivers/staging/unisys/uislib/Kconfig"
|
||||
source "drivers/staging/unisys/virtpci/Kconfig"
|
||||
source "drivers/staging/unisys/virthba/Kconfig"
|
||||
|
||||
endif # UNISYSSPAR
|
||||
|
@ -7,3 +7,4 @@ obj-$(CONFIG_UNISYS_VISORCHIPSET) += visorchipset/
|
||||
obj-$(CONFIG_UNISYS_CHANNELSTUB) += channels/
|
||||
obj-$(CONFIG_UNISYS_UISLIB) += uislib/
|
||||
obj-$(CONFIG_UNISYS_VIRTPCI) += virtpci/
|
||||
obj-$(CONFIG_UNISYS_VIRTHBA) += virthba/
|
||||
|
10
drivers/staging/unisys/virthba/Kconfig
Normal file
10
drivers/staging/unisys/virthba/Kconfig
Normal file
@ -0,0 +1,10 @@
|
||||
#
|
||||
# Unisys virthba configuration
|
||||
#
|
||||
|
||||
config UNISYS_VIRTHBA
|
||||
tristate "Unisys virthba driver"
|
||||
depends on UNISYSSPAR && UNISYS_VISORCHIPSET && UNISYS_CHANNELSTUB && UNISYS_UISLIB && UNISYS_VIRTPCI
|
||||
---help---
|
||||
If you say Y here, you will enable the Unisys virthba driver.
|
||||
|
16
drivers/staging/unisys/virthba/Makefile
Normal file
16
drivers/staging/unisys/virthba/Makefile
Normal file
@ -0,0 +1,16 @@
|
||||
#
|
||||
# Makefile for Unisys virthba
|
||||
#
|
||||
|
||||
obj-$(CONFIG_UNISYS_VIRTHBA) += virthba.o
|
||||
|
||||
ccflags-y += -Idrivers/staging/unisys/include
|
||||
ccflags-y += -Idrivers/staging/unisys/uislib
|
||||
ccflags-y += -Idrivers/staging/unisys/timskmod
|
||||
ccflags-y += -Idrivers/staging/unisys/visorchipset
|
||||
ccflags-y += -Idrivers/staging/unisys/virtpci
|
||||
ccflags-y += -Idrivers/staging/unisys/common-spar/include
|
||||
ccflags-y += -Idrivers/staging/unisys/common-spar/include/channels
|
||||
|
||||
ccflags-y += -DCONFIG_SPAR_GUEST -DGUESTDRIVERBUILD -DNOAUTOVERSION
|
||||
|
1813
drivers/staging/unisys/virthba/virthba.c
Normal file
1813
drivers/staging/unisys/virthba/virthba.c
Normal file
File diff suppressed because it is too large
Load Diff
31
drivers/staging/unisys/virthba/virthba.h
Normal file
31
drivers/staging/unisys/virthba/virthba.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* virthba.h
|
||||
*
|
||||
* Copyright © 2010 - 2013 UNISYS CORPORATION
|
||||
* All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for more
|
||||
* details.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Unisys Virtual HBA driver header
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef __VIRTHBA_H__
|
||||
#define __VIRTHBA_H__
|
||||
|
||||
|
||||
#define VIRTHBA_VERSION "01.00"
|
||||
|
||||
|
||||
#endif /* __VIRTHBA_H__ */
|
Loading…
Reference in New Issue
Block a user