diff options
author | Karen Xie <kxie@chelsio.com> | 2009-04-01 14:11:23 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-04-03 10:23:11 -0400 |
commit | 515f1c885af2ba8a9500c8a7aa4ed16bbbfa3ef4 (patch) | |
tree | 5d6833dc4f2ecc26a72fd72f560286cc847a74a9 /drivers/scsi/cxgb3i/cxgb3i_iscsi.c | |
parent | d8e965076514dcb16410c0d18c6c8de4dcba19fc (diff) |
[SCSI] cxgb3i: subscribe to error notification from cxgb3 driver
Add error notification handling function which is called during chip reset.
Signed-off-by: Karen Xie <kxie@chelsio.com>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/cxgb3i/cxgb3i_iscsi.c')
-rw-r--r-- | drivers/scsi/cxgb3i/cxgb3i_iscsi.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c index e185dedc4c1f..ff6bfd66733f 100644 --- a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c +++ b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c | |||
@@ -53,11 +53,30 @@ static LIST_HEAD(cxgb3i_snic_list); | |||
53 | static DEFINE_RWLOCK(cxgb3i_snic_rwlock); | 53 | static DEFINE_RWLOCK(cxgb3i_snic_rwlock); |
54 | 54 | ||
55 | /** | 55 | /** |
56 | * cxgb3i_adapter_add - init a s3 adapter structure and any h/w settings | 56 | * cxgb3i_adpater_find_by_tdev - find the cxgb3i_adapter structure via t3cdev |
57 | * @tdev: t3cdev pointer | ||
58 | */ | ||
59 | struct cxgb3i_adapter *cxgb3i_adapter_find_by_tdev(struct t3cdev *tdev) | ||
60 | { | ||
61 | struct cxgb3i_adapter *snic; | ||
62 | |||
63 | read_lock(&cxgb3i_snic_rwlock); | ||
64 | list_for_each_entry(snic, &cxgb3i_snic_list, list_head) { | ||
65 | if (snic->tdev == tdev) { | ||
66 | read_unlock(&cxgb3i_snic_rwlock); | ||
67 | return snic; | ||
68 | } | ||
69 | } | ||
70 | read_unlock(&cxgb3i_snic_rwlock); | ||
71 | return NULL; | ||
72 | } | ||
73 | |||
74 | /** | ||
75 | * cxgb3i_adapter_open - init a s3 adapter structure and any h/w settings | ||
57 | * @t3dev: t3cdev adapter | 76 | * @t3dev: t3cdev adapter |
58 | * return the resulting cxgb3i_adapter struct | 77 | * return the resulting cxgb3i_adapter struct |
59 | */ | 78 | */ |
60 | struct cxgb3i_adapter *cxgb3i_adapter_add(struct t3cdev *t3dev) | 79 | struct cxgb3i_adapter *cxgb3i_adapter_open(struct t3cdev *t3dev) |
61 | { | 80 | { |
62 | struct cxgb3i_adapter *snic; | 81 | struct cxgb3i_adapter *snic; |
63 | struct adapter *adapter = tdev2adap(t3dev); | 82 | struct adapter *adapter = tdev2adap(t3dev); |
@@ -101,10 +120,10 @@ free_snic: | |||
101 | } | 120 | } |
102 | 121 | ||
103 | /** | 122 | /** |
104 | * cxgb3i_adapter_remove - release the resources held and cleanup h/w settings | 123 | * cxgb3i_adapter_close - release the resources held and cleanup h/w settings |
105 | * @t3dev: t3cdev adapter | 124 | * @t3dev: t3cdev adapter |
106 | */ | 125 | */ |
107 | void cxgb3i_adapter_remove(struct t3cdev *t3dev) | 126 | void cxgb3i_adapter_close(struct t3cdev *t3dev) |
108 | { | 127 | { |
109 | int i; | 128 | int i; |
110 | struct cxgb3i_adapter *snic; | 129 | struct cxgb3i_adapter *snic; |