|
@@ -11,6 +11,7 @@
|
|
|
/* FIXME(tune): free space should be one max. SBAL chain plus what? */
|
|
|
#define ZFCP_QDIO_PCI_INTERVAL (QDIO_MAX_BUFFERS_PER_Q \
|
|
|
- (ZFCP_MAX_SBALS_PER_REQ + 4))
|
|
|
+#define QBUFF_PER_PAGE (PAGE_SIZE / sizeof(struct qdio_buffer))
|
|
|
|
|
|
static int zfcp_qdio_buffers_enqueue(struct qdio_buffer **sbal)
|
|
|
{
|
|
@@ -63,6 +64,16 @@ static void zfcp_qdio_handler_error(struct zfcp_adapter *adapter, u8 id)
|
|
|
ZFCP_STATUS_COMMON_ERP_FAILED, id, NULL);
|
|
|
}
|
|
|
|
|
|
+static void zfcp_qdio_zero_sbals(struct qdio_buffer *sbal[], int first, int cnt)
|
|
|
+{
|
|
|
+ int i, sbal_idx;
|
|
|
+
|
|
|
+ for (i = first; i < first + cnt; i++) {
|
|
|
+ sbal_idx = i % QDIO_MAX_BUFFERS_PER_Q;
|
|
|
+ memset(sbal[sbal_idx], 0, sizeof(struct qdio_buffer));
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static void zfcp_qdio_int_req(struct ccw_device *cdev, unsigned int status,
|
|
|
unsigned int qdio_err, unsigned int siga_err,
|
|
|
unsigned int queue_no, int first, int count,
|
|
@@ -365,22 +376,6 @@ int zfcp_qdio_send(struct zfcp_fsf_req *fsf_req)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * zfcp_qdio_zero_sbals - zero all sbals of the specified area and queue
|
|
|
- * @buf: pointer to array of SBALS
|
|
|
- * @first: integer specifying the SBAL number to start
|
|
|
- * @count: integer specifying the number of SBALS to process
|
|
|
- */
|
|
|
-void zfcp_qdio_zero_sbals(struct qdio_buffer *sbal[], int first, int count)
|
|
|
-{
|
|
|
- int i, sbal_idx;
|
|
|
-
|
|
|
- for (i = first; i < first + count; i++) {
|
|
|
- sbal_idx = i % QDIO_MAX_BUFFERS_PER_Q;
|
|
|
- memset(sbal[sbal_idx], 0, sizeof(struct qdio_buffer));
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* zfcp_qdio_allocate - allocate queue memory and initialize QDIO data
|
|
|
* @adapter: pointer to struct zfcp_adapter
|