Re: [PATCH v2] staging: unisys: Add s-Par visorhba

2015-07-31 Thread Ben Romer

Hi Greg,

I was wondering if you'd had a chance to take a look at this patch, and 
if you had any additional comments? It should have all of your previous 
comments addressed. :)


-- Ben
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2] staging: unisys: Add s-Par visorhba

2015-07-31 Thread Greg KH
On Fri, Jul 31, 2015 at 12:18:12PM -0400, Ben Romer wrote:
 Hi Greg,
 
 I was wondering if you'd had a chance to take a look at this patch, and if
 you had any additional comments? It should have all of your previous
 comments addressed. :)

Nope, no time to do that yet, sorry, it takes a lot to review a driver
like that...
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2] staging: unisys: Add s-Par visorhba

2015-07-24 Thread Benjamin Romer
From: David Kershner david.kersh...@unisys.com

This driver create a host bus adapter device when s-Par sends a
device create message to create a storage adapter on the visorbus.
When the message is received by visorbus, the visorhba_probe function
is called and the hba device is created and managed by the visorhba
driver.

Signed-off-by: Erik Arfvidson erik.arfvid...@unisys.com
Signed-off-by: Benjamin Romer benjamin.ro...@unisys.com
Signed-off-by: David Kershner david.kersh...@unisys.com

---

v2:
* address comments from Greg, Jes, Dan, and David Milburn
---
 drivers/staging/unisys/Kconfig  |1 +
 drivers/staging/unisys/Makefile |1 +
 drivers/staging/unisys/include/iochannel.h  |   26 +-
 drivers/staging/unisys/visorhba/Kconfig |   14 +
 drivers/staging/unisys/visorhba/Makefile|   10 +
 drivers/staging/unisys/visorhba/visorhba_main.c | 1241 +++
 6 files changed, 1280 insertions(+), 13 deletions(-)
 create mode 100644 drivers/staging/unisys/visorhba/Kconfig
 create mode 100644 drivers/staging/unisys/visorhba/Makefile
 create mode 100644 drivers/staging/unisys/visorhba/visorhba_main.c

diff --git a/drivers/staging/unisys/Kconfig b/drivers/staging/unisys/Kconfig
index ca850a8..5cbb791 100644
--- a/drivers/staging/unisys/Kconfig
+++ b/drivers/staging/unisys/Kconfig
@@ -14,5 +14,6 @@ if UNISYSSPAR
 source drivers/staging/unisys/visorbus/Kconfig
 source drivers/staging/unisys/visornic/Kconfig
 source drivers/staging/unisys/visorhid/Kconfig
+source drivers/staging/unisys/visorhba/Kconfig
 
 endif # UNISYSSPAR
diff --git a/drivers/staging/unisys/Makefile b/drivers/staging/unisys/Makefile
index d071094..79c9036 100644
--- a/drivers/staging/unisys/Makefile
+++ b/drivers/staging/unisys/Makefile
@@ -4,3 +4,4 @@
 obj-$(CONFIG_UNISYS_VISORBUS)  += visorbus/
 obj-$(CONFIG_UNISYS_VISORNIC)  += visornic/
 obj-$(CONFIG_UNISYS_VISORHID)  += visorhid/
+obj-$(CONFIG_UNISYS_VISORHBA)  += visorhba/
diff --git a/drivers/staging/unisys/include/iochannel.h 
b/drivers/staging/unisys/include/iochannel.h
index a559812..14e656f 100644
--- a/drivers/staging/unisys/include/iochannel.h
+++ b/drivers/staging/unisys/include/iochannel.h
@@ -147,6 +147,10 @@ struct phys_info {
u16 pi_len;
 } __packed;
 
+#define MIN_NUMSIGNALS 64
+
+/* structs with pragma pack  */
+
 struct guest_phys_info {
u64 address;
u64 length;
@@ -183,7 +187,7 @@ struct vhba_config_max {/* 20 bytes */
 } __packed;
 
 struct uiscmdrsp_scsi {
-   void *scsicmd;  /* the handle to the cmd that was received -
+   u64 handle; /* the handle to the cmd that was received -
 * send it back as is in the rsp packet.  */
u8 cmnd[MAX_CMND_SIZE]; /* the cdb for the command */
u32 bufflen;/* length of data to be transferred out or in */
@@ -437,24 +441,22 @@ struct uiscmdrsp_scsitaskmgmt {
struct uisscsi_dest vdest;
 
/* the vdisk for which this task mgmt is generated */
-   void *scsicmd;
+   u64 handle;
 
-   /* This is some handle that the guest has saved off for its own use.
+   /* This is a handle that the guest has saved off for its own use.
 * Its value is preserved by iopart  returned as is in the task
 * mgmt rsp.
 */
-   void *notify;
+   u64 notify_handle;
 
   /* For linux guests, this is a pointer to wait_queue_head that a
* thread is waiting on to see if the taskmgmt command has completed.
-   * For windows guests, this is a pointer to a location that a waiting
-   * thread is testing to see if the taskmgmt command has completed.
* When the rsp is received by guest, the thread receiving the
* response uses this to notify the thread waiting for taskmgmt
* command completion.  Its value is preserved by iopart  returned
* as is in the task mgmt rsp.
*/
-   void *notifyresult;
+   u64 notifyresult_handle;
 
/* this is a handle to location in guest where the result of the
 * taskmgmt command (result field) is to saved off when the response
@@ -486,24 +488,22 @@ struct uiscmdrsp_vdiskmgmt {
struct uisscsi_dest vdest;
 
/* the vdisk for which this task mgmt is generated */
-   void *scsicmd;
+   u64 handle;
 
-   /* This is some handle that the guest has saved off for its own use.
+   /* This is a handle that the guest has saved off for its own use.
 * Its value is preserved by iopart  returned as is in the task
 * mgmt rsp.
 */
-   void *notify;
+   u64 notify_handle;
 
/* For linux guests, this is a pointer to wait_queue_head that a
 * thread is waiting on to see if the tskmgmt command has completed.
-* For win32