diff options
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvfc.h')
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvfc.h | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h index fb3177ab6691..babdf3db59df 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.h +++ b/drivers/scsi/ibmvscsi/ibmvfc.h | |||
@@ -29,11 +29,11 @@ | |||
29 | #include "viosrp.h" | 29 | #include "viosrp.h" |
30 | 30 | ||
31 | #define IBMVFC_NAME "ibmvfc" | 31 | #define IBMVFC_NAME "ibmvfc" |
32 | #define IBMVFC_DRIVER_VERSION "1.0.2" | 32 | #define IBMVFC_DRIVER_VERSION "1.0.4" |
33 | #define IBMVFC_DRIVER_DATE "(August 14, 2008)" | 33 | #define IBMVFC_DRIVER_DATE "(November 14, 2008)" |
34 | 34 | ||
35 | #define IBMVFC_DEFAULT_TIMEOUT 15 | 35 | #define IBMVFC_DEFAULT_TIMEOUT 15 |
36 | #define IBMVFC_INIT_TIMEOUT 30 | 36 | #define IBMVFC_INIT_TIMEOUT 120 |
37 | #define IBMVFC_MAX_REQUESTS_DEFAULT 100 | 37 | #define IBMVFC_MAX_REQUESTS_DEFAULT 100 |
38 | 38 | ||
39 | #define IBMVFC_DEBUG 0 | 39 | #define IBMVFC_DEBUG 0 |
@@ -43,7 +43,8 @@ | |||
43 | #define IBMVFC_MAX_DISC_THREADS 4 | 43 | #define IBMVFC_MAX_DISC_THREADS 4 |
44 | #define IBMVFC_TGT_MEMPOOL_SZ 64 | 44 | #define IBMVFC_TGT_MEMPOOL_SZ 64 |
45 | #define IBMVFC_MAX_CMDS_PER_LUN 64 | 45 | #define IBMVFC_MAX_CMDS_PER_LUN 64 |
46 | #define IBMVFC_MAX_INIT_RETRIES 3 | 46 | #define IBMVFC_MAX_HOST_INIT_RETRIES 6 |
47 | #define IBMVFC_MAX_TGT_INIT_RETRIES 3 | ||
47 | #define IBMVFC_DEV_LOSS_TMO (5 * 60) | 48 | #define IBMVFC_DEV_LOSS_TMO (5 * 60) |
48 | #define IBMVFC_DEFAULT_LOG_LEVEL 2 | 49 | #define IBMVFC_DEFAULT_LOG_LEVEL 2 |
49 | #define IBMVFC_MAX_CDB_LEN 16 | 50 | #define IBMVFC_MAX_CDB_LEN 16 |
@@ -109,6 +110,7 @@ enum ibmvfc_vios_errors { | |||
109 | IBMVFC_TRANS_CANCELLED = 0x0006, | 110 | IBMVFC_TRANS_CANCELLED = 0x0006, |
110 | IBMVFC_TRANS_CANCELLED_IMPLICIT = 0x0007, | 111 | IBMVFC_TRANS_CANCELLED_IMPLICIT = 0x0007, |
111 | IBMVFC_INSUFFICIENT_RESOURCE = 0x0008, | 112 | IBMVFC_INSUFFICIENT_RESOURCE = 0x0008, |
113 | IBMVFC_PLOGI_REQUIRED = 0x0010, | ||
112 | IBMVFC_COMMAND_FAILED = 0x8000, | 114 | IBMVFC_COMMAND_FAILED = 0x8000, |
113 | }; | 115 | }; |
114 | 116 | ||
@@ -337,7 +339,6 @@ struct ibmvfc_tmf { | |||
337 | #define IBMVFC_TMF_LUA_VALID 0x40 | 339 | #define IBMVFC_TMF_LUA_VALID 0x40 |
338 | u32 cancel_key; | 340 | u32 cancel_key; |
339 | u32 my_cancel_key; | 341 | u32 my_cancel_key; |
340 | #define IBMVFC_TMF_CANCEL_KEY 0x80000000 | ||
341 | u32 pad; | 342 | u32 pad; |
342 | u64 reserved[2]; | 343 | u64 reserved[2]; |
343 | }__attribute__((packed, aligned (8))); | 344 | }__attribute__((packed, aligned (8))); |
@@ -524,10 +525,10 @@ enum ibmvfc_async_event { | |||
524 | }; | 525 | }; |
525 | 526 | ||
526 | struct ibmvfc_crq { | 527 | struct ibmvfc_crq { |
527 | u8 valid; | 528 | volatile u8 valid; |
528 | u8 format; | 529 | volatile u8 format; |
529 | u8 reserved[6]; | 530 | u8 reserved[6]; |
530 | u64 ioba; | 531 | volatile u64 ioba; |
531 | }__attribute__((packed, aligned (8))); | 532 | }__attribute__((packed, aligned (8))); |
532 | 533 | ||
533 | struct ibmvfc_crq_queue { | 534 | struct ibmvfc_crq_queue { |
@@ -537,13 +538,13 @@ struct ibmvfc_crq_queue { | |||
537 | }; | 538 | }; |
538 | 539 | ||
539 | struct ibmvfc_async_crq { | 540 | struct ibmvfc_async_crq { |
540 | u8 valid; | 541 | volatile u8 valid; |
541 | u8 pad[3]; | 542 | u8 pad[3]; |
542 | u32 pad2; | 543 | u32 pad2; |
543 | u64 event; | 544 | volatile u64 event; |
544 | u64 scsi_id; | 545 | volatile u64 scsi_id; |
545 | u64 wwpn; | 546 | volatile u64 wwpn; |
546 | u64 node_name; | 547 | volatile u64 node_name; |
547 | u64 reserved; | 548 | u64 reserved; |
548 | }__attribute__((packed, aligned (8))); | 549 | }__attribute__((packed, aligned (8))); |
549 | 550 | ||
@@ -606,6 +607,7 @@ struct ibmvfc_event { | |||
606 | struct srp_direct_buf *ext_list; | 607 | struct srp_direct_buf *ext_list; |
607 | dma_addr_t ext_list_token; | 608 | dma_addr_t ext_list_token; |
608 | struct completion comp; | 609 | struct completion comp; |
610 | struct completion *eh_comp; | ||
609 | struct timer_list timer; | 611 | struct timer_list timer; |
610 | }; | 612 | }; |
611 | 613 | ||
@@ -626,6 +628,7 @@ enum ibmvfc_host_action { | |||
626 | IBMVFC_HOST_ACTION_TGT_DEL, | 628 | IBMVFC_HOST_ACTION_TGT_DEL, |
627 | IBMVFC_HOST_ACTION_ALLOC_TGTS, | 629 | IBMVFC_HOST_ACTION_ALLOC_TGTS, |
628 | IBMVFC_HOST_ACTION_TGT_INIT, | 630 | IBMVFC_HOST_ACTION_TGT_INIT, |
631 | IBMVFC_HOST_ACTION_TGT_DEL_FAILED, | ||
629 | IBMVFC_HOST_ACTION_TGT_ADD, | 632 | IBMVFC_HOST_ACTION_TGT_ADD, |
630 | }; | 633 | }; |
631 | 634 | ||
@@ -671,6 +674,7 @@ struct ibmvfc_host { | |||
671 | int discovery_threads; | 674 | int discovery_threads; |
672 | int client_migrated; | 675 | int client_migrated; |
673 | int reinit; | 676 | int reinit; |
677 | int delay_init; | ||
674 | int events_to_log; | 678 | int events_to_log; |
675 | #define IBMVFC_AE_LINKUP 0x0001 | 679 | #define IBMVFC_AE_LINKUP 0x0001 |
676 | #define IBMVFC_AE_LINKDOWN 0x0002 | 680 | #define IBMVFC_AE_LINKDOWN 0x0002 |
@@ -700,7 +704,7 @@ struct ibmvfc_host { | |||
700 | 704 | ||
701 | #define ibmvfc_log(vhost, level, ...) \ | 705 | #define ibmvfc_log(vhost, level, ...) \ |
702 | do { \ | 706 | do { \ |
703 | if (level >= (vhost)->log_level) \ | 707 | if ((vhost)->log_level >= level) \ |
704 | dev_err((vhost)->dev, ##__VA_ARGS__); \ | 708 | dev_err((vhost)->dev, ##__VA_ARGS__); \ |
705 | } while (0) | 709 | } while (0) |
706 | 710 | ||