aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/cxgb3i/cxgb3i_iscsi.c
diff options
context:
space:
mode:
authorKaren Xie <kxie@chelsio.com>2009-04-01 14:11:23 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-04-03 10:23:11 -0400
commit515f1c885af2ba8a9500c8a7aa4ed16bbbfa3ef4 (patch)
tree5d6833dc4f2ecc26a72fd72f560286cc847a74a9 /drivers/scsi/cxgb3i/cxgb3i_iscsi.c
parentd8e965076514dcb16410c0d18c6c8de4dcba19fc (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.c27
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);
53static DEFINE_RWLOCK(cxgb3i_snic_rwlock); 53static 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 */
59struct 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 */
60struct cxgb3i_adapter *cxgb3i_adapter_add(struct t3cdev *t3dev) 79struct 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 */
107void cxgb3i_adapter_remove(struct t3cdev *t3dev) 126void cxgb3i_adapter_close(struct t3cdev *t3dev)
108{ 127{
109 int i; 128 int i;
110 struct cxgb3i_adapter *snic; 129 struct cxgb3i_adapter *snic;