diff options
author | Christof Schmitt <christof.schmitt@de.ibm.com> | 2009-03-02 07:09:05 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-03-12 13:58:21 -0400 |
commit | 21ddaa53f92dba820a3778978e617f20ecb6ab6f (patch) | |
tree | 5ea11c90c4a8d76b4a2875146e56549783611add /drivers/s390/scsi/zfcp_qdio.c | |
parent | 5ffd51a5e495a2a002efd523aef0001912b080bd (diff) |
[SCSI] zfcp: Remove PCI flag
The usage of the PCI flag to trigger interrupts is optional. Even
without setting the flag, qdio still receives interrupts to continue
working on the queue. Remove the PCI flag from zfcp, it is not
necessary.
Acked-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_qdio.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_qdio.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c index c2eb94f6370f..e0a215309df0 100644 --- a/drivers/s390/scsi/zfcp_qdio.c +++ b/drivers/s390/scsi/zfcp_qdio.c | |||
@@ -11,9 +11,6 @@ | |||
11 | 11 | ||
12 | #include "zfcp_ext.h" | 12 | #include "zfcp_ext.h" |
13 | 13 | ||
14 | /* FIXME(tune): free space should be one max. SBAL chain plus what? */ | ||
15 | #define ZFCP_QDIO_PCI_INTERVAL (QDIO_MAX_BUFFERS_PER_Q \ | ||
16 | - (FSF_MAX_SBALS_PER_REQ + 4)) | ||
17 | #define QBUFF_PER_PAGE (PAGE_SIZE / sizeof(struct qdio_buffer)) | 14 | #define QBUFF_PER_PAGE (PAGE_SIZE / sizeof(struct qdio_buffer)) |
18 | 15 | ||
19 | static int zfcp_qdio_buffers_enqueue(struct qdio_buffer **sbal) | 16 | static int zfcp_qdio_buffers_enqueue(struct qdio_buffer **sbal) |
@@ -364,23 +361,12 @@ int zfcp_qdio_send(struct zfcp_fsf_req *fsf_req) | |||
364 | struct zfcp_qdio_queue *req_q = &adapter->req_q; | 361 | struct zfcp_qdio_queue *req_q = &adapter->req_q; |
365 | int first = fsf_req->sbal_first; | 362 | int first = fsf_req->sbal_first; |
366 | int count = fsf_req->sbal_number; | 363 | int count = fsf_req->sbal_number; |
367 | int retval, pci, pci_batch; | 364 | int retval; |
368 | struct qdio_buffer_element *sbale; | 365 | unsigned int qdio_flags = QDIO_FLAG_SYNC_OUTPUT; |
369 | |||
370 | /* acknowledgements for transferred buffers */ | ||
371 | pci_batch = adapter->req_q_pci_batch + count; | ||
372 | if (unlikely(pci_batch >= ZFCP_QDIO_PCI_INTERVAL)) { | ||
373 | pci_batch %= ZFCP_QDIO_PCI_INTERVAL; | ||
374 | pci = first + count - (pci_batch + 1); | ||
375 | pci %= QDIO_MAX_BUFFERS_PER_Q; | ||
376 | sbale = zfcp_qdio_sbale(req_q, pci, 0); | ||
377 | sbale->flags |= SBAL_FLAGS0_PCI; | ||
378 | } | ||
379 | 366 | ||
380 | zfcp_qdio_account(adapter); | 367 | zfcp_qdio_account(adapter); |
381 | 368 | ||
382 | retval = do_QDIO(adapter->ccw_device, QDIO_FLAG_SYNC_OUTPUT, 0, first, | 369 | retval = do_QDIO(adapter->ccw_device, qdio_flags, 0, first, count); |
383 | count); | ||
384 | if (unlikely(retval)) { | 370 | if (unlikely(retval)) { |
385 | zfcp_qdio_zero_sbals(req_q->sbal, first, count); | 371 | zfcp_qdio_zero_sbals(req_q->sbal, first, count); |
386 | return retval; | 372 | return retval; |
@@ -390,7 +376,6 @@ int zfcp_qdio_send(struct zfcp_fsf_req *fsf_req) | |||
390 | atomic_sub(count, &req_q->count); | 376 | atomic_sub(count, &req_q->count); |
391 | req_q->first += count; | 377 | req_q->first += count; |
392 | req_q->first %= QDIO_MAX_BUFFERS_PER_Q; | 378 | req_q->first %= QDIO_MAX_BUFFERS_PER_Q; |
393 | adapter->req_q_pci_batch = pci_batch; | ||
394 | return 0; | 379 | return 0; |
395 | } | 380 | } |
396 | 381 | ||
@@ -461,7 +446,6 @@ void zfcp_qdio_close(struct zfcp_adapter *adapter) | |||
461 | } | 446 | } |
462 | req_q->first = 0; | 447 | req_q->first = 0; |
463 | atomic_set(&req_q->count, 0); | 448 | atomic_set(&req_q->count, 0); |
464 | adapter->req_q_pci_batch = 0; | ||
465 | adapter->resp_q.first = 0; | 449 | adapter->resp_q.first = 0; |
466 | atomic_set(&adapter->resp_q.count, 0); | 450 | atomic_set(&adapter->resp_q.count, 0); |
467 | } | 451 | } |
@@ -499,7 +483,6 @@ int zfcp_qdio_open(struct zfcp_adapter *adapter) | |||
499 | /* set index of first avalable SBALS / number of available SBALS */ | 483 | /* set index of first avalable SBALS / number of available SBALS */ |
500 | adapter->req_q.first = 0; | 484 | adapter->req_q.first = 0; |
501 | atomic_set(&adapter->req_q.count, QDIO_MAX_BUFFERS_PER_Q); | 485 | atomic_set(&adapter->req_q.count, QDIO_MAX_BUFFERS_PER_Q); |
502 | adapter->req_q_pci_batch = 0; | ||
503 | 486 | ||
504 | return 0; | 487 | return 0; |
505 | 488 | ||