aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2011-07-25 14:48:44 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-08-27 10:36:12 -0400
commitb78dbba0053c6f14384d55b929d21b85d03c38bb (patch)
tree1d9515de2d7dd44fc0538cbaca1041731aef2636
parent1d063c17298d7cd26cfe350f1e93e1727b4aa53f (diff)
[SCSI] iscsi class: remove iface param mask
We can replace the iface param mask with the attr_is_visible callback. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r--drivers/scsi/qla4xxx/ql4_os.c27
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c45
-rw-r--r--include/scsi/iscsi_if.h17
-rw-r--r--include/scsi/scsi_transport_iscsi.h1
4 files changed, 37 insertions, 53 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 3022c1534156..df6da3cb124d 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -141,17 +141,6 @@ static struct iscsi_transport qla4xxx_iscsi_transport = {
141 .host_param_mask = ISCSI_HOST_HWADDRESS | 141 .host_param_mask = ISCSI_HOST_HWADDRESS |
142 ISCSI_HOST_IPADDRESS | 142 ISCSI_HOST_IPADDRESS |
143 ISCSI_HOST_INITIATOR_NAME, 143 ISCSI_HOST_INITIATOR_NAME,
144 .iface_param_mask = ISCSI_NET_IPV4_ADDR |
145 ISCSI_NET_IPV4_SUBNET |
146 ISCSI_NET_IPV4_GW |
147 ISCSI_NET_IPV4_BOOTPROTO |
148 ISCSI_NET_IFACE_ENABLE |
149 ISCSI_NET_IPV6_LINKLOCAL |
150 ISCSI_NET_IPV6_ADDR |
151 ISCSI_NET_IPV6_ROUTER |
152 ISCSI_NET_IPV6_ADDR_AUTOCFG |
153 ISCSI_NET_IPV6_LINKLOCAL_AUTOCFG |
154 ISCSI_NET_IFACE_ENABLE,
155 .tgt_dscvr = qla4xxx_tgt_dscvr, 144 .tgt_dscvr = qla4xxx_tgt_dscvr,
156 .attr_is_visible = ql4_attr_is_visible, 145 .attr_is_visible = ql4_attr_is_visible,
157 .get_conn_param = qla4xxx_conn_get_param, 146 .get_conn_param = qla4xxx_conn_get_param,
@@ -178,6 +167,22 @@ static mode_t ql4_attr_is_visible(int param_type, int param)
178 default: 167 default:
179 return 0; 168 return 0;
180 } 169 }
170 case ISCSI_NET_PARAM:
171 switch (param) {
172 case ISCSI_NET_PARAM_IPV4_ADDR:
173 case ISCSI_NET_PARAM_IPV4_SUBNET:
174 case ISCSI_NET_PARAM_IPV4_GW:
175 case ISCSI_NET_PARAM_IPV4_BOOTPROTO:
176 case ISCSI_NET_PARAM_IFACE_ENABLE:
177 case ISCSI_NET_PARAM_IPV6_LINKLOCAL:
178 case ISCSI_NET_PARAM_IPV6_ADDR:
179 case ISCSI_NET_PARAM_IPV6_ROUTER:
180 case ISCSI_NET_PARAM_IPV6_ADDR_AUTOCFG:
181 case ISCSI_NET_PARAM_IPV6_LINKLOCAL_AUTOCFG:
182 return S_IRUGO;
183 default:
184 return 0;
185 }
181 } 186 }
182 187
183 return 0; 188 return 0;
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 75d7f6e93b67..a8dd85dc77b1 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -329,45 +329,42 @@ static mode_t iscsi_iface_attr_is_visible(struct kobject *kobj,
329 struct device *dev = container_of(kobj, struct device, kobj); 329 struct device *dev = container_of(kobj, struct device, kobj);
330 struct iscsi_iface *iface = iscsi_dev_to_iface(dev); 330 struct iscsi_iface *iface = iscsi_dev_to_iface(dev);
331 struct iscsi_transport *t = iface->transport; 331 struct iscsi_transport *t = iface->transport;
332 int param;
332 333
333 if (attr == &dev_attr_iface_enabled.attr) 334 if (attr == &dev_attr_iface_enabled.attr)
334 return (t->iface_param_mask & ISCSI_NET_IFACE_ENABLE) ? 335 param = ISCSI_NET_PARAM_IFACE_ENABLE;
335 S_IRUGO : 0;
336 else if (attr == &dev_attr_iface_vlan.attr) 336 else if (attr == &dev_attr_iface_vlan.attr)
337 return (t->iface_param_mask & ISCSI_NET_VLAN_ID) ? S_IRUGO : 0; 337 param = ISCSI_NET_PARAM_VLAN_ID;
338 338 else if (iface->iface_type == ISCSI_IFACE_TYPE_IPV4) {
339 if (iface->iface_type == ISCSI_IFACE_TYPE_IPV4) {
340 if (attr == &dev_attr_ipv4_iface_ipaddress.attr) 339 if (attr == &dev_attr_ipv4_iface_ipaddress.attr)
341 return (t->iface_param_mask & ISCSI_NET_IPV4_ADDR) ? 340 param = ISCSI_NET_PARAM_IPV4_ADDR;
342 S_IRUGO : 0;
343 else if (attr == &dev_attr_ipv4_iface_gateway.attr) 341 else if (attr == &dev_attr_ipv4_iface_gateway.attr)
344 return (t->iface_param_mask & ISCSI_NET_IPV4_GW) ? 342 param = ISCSI_NET_PARAM_IPV4_GW;
345 S_IRUGO : 0;
346 else if (attr == &dev_attr_ipv4_iface_subnet.attr) 343 else if (attr == &dev_attr_ipv4_iface_subnet.attr)
347 return (t->iface_param_mask & ISCSI_NET_IPV4_SUBNET) ? 344 param = ISCSI_NET_PARAM_IPV4_SUBNET;
348 S_IRUGO : 0;
349 else if (attr == &dev_attr_ipv4_iface_bootproto.attr) 345 else if (attr == &dev_attr_ipv4_iface_bootproto.attr)
350 return (t->iface_param_mask & ISCSI_NET_IPV4_BOOTPROTO) ? 346 param = ISCSI_NET_PARAM_IPV4_BOOTPROTO;
351 S_IRUGO : 0; 347 else
348 return 0;
352 } else if (iface->iface_type == ISCSI_IFACE_TYPE_IPV6) { 349 } else if (iface->iface_type == ISCSI_IFACE_TYPE_IPV6) {
353 if (attr == &dev_attr_ipv6_iface_ipaddress.attr) 350 if (attr == &dev_attr_ipv6_iface_ipaddress.attr)
354 return (t->iface_param_mask & ISCSI_NET_IPV6_ADDR) ? 351 param = ISCSI_NET_PARAM_IPV6_ADDR;
355 S_IRUGO : 0;
356 else if (attr == &dev_attr_ipv6_iface_link_local_addr.attr) 352 else if (attr == &dev_attr_ipv6_iface_link_local_addr.attr)
357 return (t->iface_param_mask & ISCSI_NET_IPV6_LINKLOCAL) ? 353 param = ISCSI_NET_PARAM_IPV6_LINKLOCAL;
358 S_IRUGO : 0;
359 else if (attr == &dev_attr_ipv6_iface_router_addr.attr) 354 else if (attr == &dev_attr_ipv6_iface_router_addr.attr)
360 return (t->iface_param_mask & ISCSI_NET_IPV6_ROUTER) ? 355 param = ISCSI_NET_PARAM_IPV6_ROUTER;
361 S_IRUGO : 0;
362 else if (attr == &dev_attr_ipv6_iface_ipaddr_autocfg.attr) 356 else if (attr == &dev_attr_ipv6_iface_ipaddr_autocfg.attr)
363 return (t->iface_param_mask & ISCSI_NET_IPV6_ADDR_AUTOCFG) ? 357 param = ISCSI_NET_PARAM_IPV6_ADDR_AUTOCFG;
364 S_IRUGO : 0;
365 else if (attr == &dev_attr_ipv6_iface_linklocal_autocfg.attr) 358 else if (attr == &dev_attr_ipv6_iface_linklocal_autocfg.attr)
366 return (t->iface_param_mask & ISCSI_NET_IPV6_LINKLOCAL_AUTOCFG) ? 359 param = ISCSI_NET_PARAM_IPV6_LINKLOCAL_AUTOCFG;
367 S_IRUGO : 0; 360 else
361 return 0;
362 } else {
363 WARN_ONCE(1, "Invalid iface attr");
364 return 0;
368 } 365 }
369 366
370 return 0; 367 return t->attr_is_visible(ISCSI_NET_PARAM, param);
371} 368}
372 369
373static struct attribute *iscsi_iface_attrs[] = { 370static struct attribute *iscsi_iface_attrs[] = {
diff --git a/include/scsi/iscsi_if.h b/include/scsi/iscsi_if.h
index a4353ff563f2..164a753fdd3a 100644
--- a/include/scsi/iscsi_if.h
+++ b/include/scsi/iscsi_if.h
@@ -300,23 +300,6 @@ enum iscsi_net_param {
300 ISCSI_NET_PARAM_IFACE_NAME = 15, 300 ISCSI_NET_PARAM_IFACE_NAME = 15,
301}; 301};
302 302
303#define ISCSI_NET_IPV4_ADDR (1ULL << ISCSI_NET_PARAM_IPV4_ADDR)
304#define ISCSI_NET_IPV4_SUBNET (1ULL << ISCSI_NET_PARAM_IPV4_SUBNET)
305#define ISCSI_NET_IPV4_GW (1ULL << ISCSI_NET_PARAM_IPV4_GW)
306#define ISCSI_NET_IPV4_BOOTPROTO (1ULL << ISCSI_NET_PARAM_IPV4_BOOTPROTO)
307#define ISCSI_NET_MAC (1ULL << ISCSI_NET_PARAM_MAC)
308#define ISCSI_NET_IPV6_LINKLOCAL (1ULL << ISCSI_NET_PARAM_IPV6_LINKLOCAL)
309#define ISCSI_NET_IPV6_ADDR (1ULL << ISCSI_NET_PARAM_IPV6_ADDR)
310#define ISCSI_NET_IPV6_ROUTER (1ULL << ISCSI_NET_PARAM_IPV6_ROUTER)
311#define ISCSI_NET_IPV6_ADDR_AUTOCFG \
312 (1ULL << ISCSI_NET_PARAM_IPV6_ADDR_AUTOCFG)
313#define ISCSI_NET_IPV6_LINKLOCAL_AUTOCFG \
314 (1ULL << ISCSI_NET_PARAM_IPV6_LINKLOCAL_AUTOCFG)
315#define ISCSI_NET_IPV6_ROUTER_AUTOCFG \
316 (1ULL << ISCSI_NET_PARAM_IPV6_ROUTER_AUTOCFG)
317#define ISCSI_NET_IFACE_ENABLE (1ULL << ISCSI_NET_PARAM_IFACE_ENABLE)
318#define ISCSI_NET_VLAN_ID (1ULL << ISCSI_NET_PARAM_VLAN_ID)
319
320/* 303/*
321 * Common error codes 304 * Common error codes
322 */ 305 */
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index 53eb93849377..b9e9ef5a881f 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -87,7 +87,6 @@ struct iscsi_transport {
87 unsigned int caps; 87 unsigned int caps;
88 /* LLD sets this to indicate what values it can export to sysfs */ 88 /* LLD sets this to indicate what values it can export to sysfs */
89 uint64_t host_param_mask; 89 uint64_t host_param_mask;
90 uint64_t iface_param_mask;
91 90
92 struct iscsi_cls_session *(*create_session) (struct iscsi_endpoint *ep, 91 struct iscsi_cls_session *(*create_session) (struct iscsi_endpoint *ep,
93 uint16_t cmds_max, uint16_t qdepth, 92 uint16_t cmds_max, uint16_t qdepth,