diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2011-07-25 14:48:44 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-08-27 10:36:12 -0400 |
commit | b78dbba0053c6f14384d55b929d21b85d03c38bb (patch) | |
tree | 1d9515de2d7dd44fc0538cbaca1041731aef2636 | |
parent | 1d063c17298d7cd26cfe350f1e93e1727b4aa53f (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.c | 27 | ||||
-rw-r--r-- | drivers/scsi/scsi_transport_iscsi.c | 45 | ||||
-rw-r--r-- | include/scsi/iscsi_if.h | 17 | ||||
-rw-r--r-- | include/scsi/scsi_transport_iscsi.h | 1 |
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 | ||
373 | static struct attribute *iscsi_iface_attrs[] = { | 370 | static 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, |