Commit dde8769b authored by Thorsten Winkler's avatar Thorsten Winkler Committed by Jakub Kicinski

s390/qeth: Convert sysfs sprintf to sysfs_emit

Following the advice of the Documentation/filesystems/sysfs.rst.
All sysfs related show()-functions should only use sysfs_emit() or
sysfs_emit_at() when formatting the value to be returned to user space.
Reported-by: default avatarJules Irenge <jbi.octave@gmail.com>
Reported-by: default avatarJoe Perches <joe@perches.com>
Reviewed-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
Signed-off-by: default avatarThorsten Winkler <twinkler@linux.ibm.com>
Signed-off-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 180f5131
...@@ -23,15 +23,15 @@ static ssize_t qeth_dev_state_show(struct device *dev, ...@@ -23,15 +23,15 @@ static ssize_t qeth_dev_state_show(struct device *dev,
switch (card->state) { switch (card->state) {
case CARD_STATE_DOWN: case CARD_STATE_DOWN:
return sprintf(buf, "DOWN\n"); return sysfs_emit(buf, "DOWN\n");
case CARD_STATE_SOFTSETUP: case CARD_STATE_SOFTSETUP:
if (card->dev->flags & IFF_UP) if (card->dev->flags & IFF_UP)
return sprintf(buf, "UP (LAN %s)\n", return sysfs_emit(buf, "UP (LAN %s)\n",
netif_carrier_ok(card->dev) ? "ONLINE" : netif_carrier_ok(card->dev) ?
"OFFLINE"); "ONLINE" : "OFFLINE");
return sprintf(buf, "SOFTSETUP\n"); return sysfs_emit(buf, "SOFTSETUP\n");
default: default:
return sprintf(buf, "UNKNOWN\n"); return sysfs_emit(buf, "UNKNOWN\n");
} }
} }
...@@ -42,7 +42,7 @@ static ssize_t qeth_dev_chpid_show(struct device *dev, ...@@ -42,7 +42,7 @@ static ssize_t qeth_dev_chpid_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%02X\n", card->info.chpid); return sysfs_emit(buf, "%02X\n", card->info.chpid);
} }
static DEVICE_ATTR(chpid, 0444, qeth_dev_chpid_show, NULL); static DEVICE_ATTR(chpid, 0444, qeth_dev_chpid_show, NULL);
...@@ -52,7 +52,7 @@ static ssize_t qeth_dev_if_name_show(struct device *dev, ...@@ -52,7 +52,7 @@ static ssize_t qeth_dev_if_name_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%s\n", netdev_name(card->dev)); return sysfs_emit(buf, "%s\n", netdev_name(card->dev));
} }
static DEVICE_ATTR(if_name, 0444, qeth_dev_if_name_show, NULL); static DEVICE_ATTR(if_name, 0444, qeth_dev_if_name_show, NULL);
...@@ -62,7 +62,7 @@ static ssize_t qeth_dev_card_type_show(struct device *dev, ...@@ -62,7 +62,7 @@ static ssize_t qeth_dev_card_type_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%s\n", qeth_get_cardname_short(card)); return sysfs_emit(buf, "%s\n", qeth_get_cardname_short(card));
} }
static DEVICE_ATTR(card_type, 0444, qeth_dev_card_type_show, NULL); static DEVICE_ATTR(card_type, 0444, qeth_dev_card_type_show, NULL);
...@@ -86,7 +86,7 @@ static ssize_t qeth_dev_inbuf_size_show(struct device *dev, ...@@ -86,7 +86,7 @@ static ssize_t qeth_dev_inbuf_size_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%s\n", qeth_get_bufsize_str(card)); return sysfs_emit(buf, "%s\n", qeth_get_bufsize_str(card));
} }
static DEVICE_ATTR(inbuf_size, 0444, qeth_dev_inbuf_size_show, NULL); static DEVICE_ATTR(inbuf_size, 0444, qeth_dev_inbuf_size_show, NULL);
...@@ -96,7 +96,7 @@ static ssize_t qeth_dev_portno_show(struct device *dev, ...@@ -96,7 +96,7 @@ static ssize_t qeth_dev_portno_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%i\n", card->dev->dev_port); return sysfs_emit(buf, "%i\n", card->dev->dev_port);
} }
static ssize_t qeth_dev_portno_store(struct device *dev, static ssize_t qeth_dev_portno_store(struct device *dev,
...@@ -134,7 +134,7 @@ static DEVICE_ATTR(portno, 0644, qeth_dev_portno_show, qeth_dev_portno_store); ...@@ -134,7 +134,7 @@ static DEVICE_ATTR(portno, 0644, qeth_dev_portno_show, qeth_dev_portno_store);
static ssize_t qeth_dev_portname_show(struct device *dev, static ssize_t qeth_dev_portname_show(struct device *dev,
struct device_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
return sprintf(buf, "no portname required\n"); return sysfs_emit(buf, "no portname required\n");
} }
static ssize_t qeth_dev_portname_store(struct device *dev, static ssize_t qeth_dev_portname_store(struct device *dev,
...@@ -157,18 +157,18 @@ static ssize_t qeth_dev_prioqing_show(struct device *dev, ...@@ -157,18 +157,18 @@ static ssize_t qeth_dev_prioqing_show(struct device *dev,
switch (card->qdio.do_prio_queueing) { switch (card->qdio.do_prio_queueing) {
case QETH_PRIO_Q_ING_PREC: case QETH_PRIO_Q_ING_PREC:
return sprintf(buf, "%s\n", "by precedence"); return sysfs_emit(buf, "%s\n", "by precedence");
case QETH_PRIO_Q_ING_TOS: case QETH_PRIO_Q_ING_TOS:
return sprintf(buf, "%s\n", "by type of service"); return sysfs_emit(buf, "%s\n", "by type of service");
case QETH_PRIO_Q_ING_SKB: case QETH_PRIO_Q_ING_SKB:
return sprintf(buf, "%s\n", "by skb-priority"); return sysfs_emit(buf, "%s\n", "by skb-priority");
case QETH_PRIO_Q_ING_VLAN: case QETH_PRIO_Q_ING_VLAN:
return sprintf(buf, "%s\n", "by VLAN headers"); return sysfs_emit(buf, "%s\n", "by VLAN headers");
case QETH_PRIO_Q_ING_FIXED: case QETH_PRIO_Q_ING_FIXED:
return sprintf(buf, "always queue %i\n", return sysfs_emit(buf, "always queue %i\n",
card->qdio.default_out_queue); card->qdio.default_out_queue);
default: default:
return sprintf(buf, "disabled\n"); return sysfs_emit(buf, "disabled\n");
} }
} }
...@@ -242,7 +242,7 @@ static ssize_t qeth_dev_bufcnt_show(struct device *dev, ...@@ -242,7 +242,7 @@ static ssize_t qeth_dev_bufcnt_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%i\n", card->qdio.in_buf_pool.buf_count); return sysfs_emit(buf, "%i\n", card->qdio.in_buf_pool.buf_count);
} }
static ssize_t qeth_dev_bufcnt_store(struct device *dev, static ssize_t qeth_dev_bufcnt_store(struct device *dev,
...@@ -298,7 +298,7 @@ static DEVICE_ATTR(recover, 0200, NULL, qeth_dev_recover_store); ...@@ -298,7 +298,7 @@ static DEVICE_ATTR(recover, 0200, NULL, qeth_dev_recover_store);
static ssize_t qeth_dev_performance_stats_show(struct device *dev, static ssize_t qeth_dev_performance_stats_show(struct device *dev,
struct device_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
return sprintf(buf, "1\n"); return sysfs_emit(buf, "1\n");
} }
static ssize_t qeth_dev_performance_stats_store(struct device *dev, static ssize_t qeth_dev_performance_stats_store(struct device *dev,
...@@ -335,7 +335,7 @@ static ssize_t qeth_dev_layer2_show(struct device *dev, ...@@ -335,7 +335,7 @@ static ssize_t qeth_dev_layer2_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%i\n", card->options.layer); return sysfs_emit(buf, "%i\n", card->options.layer);
} }
static ssize_t qeth_dev_layer2_store(struct device *dev, static ssize_t qeth_dev_layer2_store(struct device *dev,
...@@ -470,23 +470,25 @@ static ssize_t qeth_dev_switch_attrs_show(struct device *dev, ...@@ -470,23 +470,25 @@ static ssize_t qeth_dev_switch_attrs_show(struct device *dev,
int rc = 0; int rc = 0;
if (!qeth_card_hw_is_reachable(card)) if (!qeth_card_hw_is_reachable(card))
return sprintf(buf, "n/a\n"); return sysfs_emit(buf, "n/a\n");
rc = qeth_query_switch_attributes(card, &sw_info); rc = qeth_query_switch_attributes(card, &sw_info);
if (rc) if (rc)
return rc; return rc;
if (!sw_info.capabilities) if (!sw_info.capabilities)
rc = sprintf(buf, "unknown"); rc = sysfs_emit(buf, "unknown");
if (sw_info.capabilities & QETH_SWITCH_FORW_802_1) if (sw_info.capabilities & QETH_SWITCH_FORW_802_1)
rc = sprintf(buf, (sw_info.settings & QETH_SWITCH_FORW_802_1 ? rc = sysfs_emit(buf,
(sw_info.settings & QETH_SWITCH_FORW_802_1 ?
"[802.1]" : "802.1")); "[802.1]" : "802.1"));
if (sw_info.capabilities & QETH_SWITCH_FORW_REFL_RELAY) if (sw_info.capabilities & QETH_SWITCH_FORW_REFL_RELAY)
rc += sprintf(buf + rc, rc += sysfs_emit_at(buf, rc,
(sw_info.settings & QETH_SWITCH_FORW_REFL_RELAY ? (sw_info.settings &
QETH_SWITCH_FORW_REFL_RELAY ?
" [rr]" : " rr")); " [rr]" : " rr"));
rc += sprintf(buf + rc, "\n"); rc += sysfs_emit_at(buf, rc, "\n");
return rc; return rc;
} }
...@@ -573,7 +575,7 @@ static ssize_t qeth_dev_blkt_total_show(struct device *dev, ...@@ -573,7 +575,7 @@ static ssize_t qeth_dev_blkt_total_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%i\n", card->info.blkt.time_total); return sysfs_emit(buf, "%i\n", card->info.blkt.time_total);
} }
static ssize_t qeth_dev_blkt_total_store(struct device *dev, static ssize_t qeth_dev_blkt_total_store(struct device *dev,
...@@ -593,7 +595,7 @@ static ssize_t qeth_dev_blkt_inter_show(struct device *dev, ...@@ -593,7 +595,7 @@ static ssize_t qeth_dev_blkt_inter_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%i\n", card->info.blkt.inter_packet); return sysfs_emit(buf, "%i\n", card->info.blkt.inter_packet);
} }
static ssize_t qeth_dev_blkt_inter_store(struct device *dev, static ssize_t qeth_dev_blkt_inter_store(struct device *dev,
...@@ -613,7 +615,7 @@ static ssize_t qeth_dev_blkt_inter_jumbo_show(struct device *dev, ...@@ -613,7 +615,7 @@ static ssize_t qeth_dev_blkt_inter_jumbo_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%i\n", card->info.blkt.inter_packet_jumbo); return sysfs_emit(buf, "%i\n", card->info.blkt.inter_packet_jumbo);
} }
static ssize_t qeth_dev_blkt_inter_jumbo_store(struct device *dev, static ssize_t qeth_dev_blkt_inter_jumbo_store(struct device *dev,
......
...@@ -19,7 +19,7 @@ static ssize_t qeth_bridge_port_role_state_show(struct device *dev, ...@@ -19,7 +19,7 @@ static ssize_t qeth_bridge_port_role_state_show(struct device *dev,
char *word; char *word;
if (!qeth_bridgeport_allowed(card)) if (!qeth_bridgeport_allowed(card))
return sprintf(buf, "n/a (VNIC characteristics)\n"); return sysfs_emit(buf, "n/a (VNIC characteristics)\n");
mutex_lock(&card->sbp_lock); mutex_lock(&card->sbp_lock);
if (qeth_card_hw_is_reachable(card) && if (qeth_card_hw_is_reachable(card) &&
...@@ -53,7 +53,7 @@ static ssize_t qeth_bridge_port_role_state_show(struct device *dev, ...@@ -53,7 +53,7 @@ static ssize_t qeth_bridge_port_role_state_show(struct device *dev,
QETH_CARD_TEXT_(card, 2, "SBP%02x:%02x", QETH_CARD_TEXT_(card, 2, "SBP%02x:%02x",
card->options.sbp.role, state); card->options.sbp.role, state);
else else
rc = sprintf(buf, "%s\n", word); rc = sysfs_emit(buf, "%s\n", word);
} }
mutex_unlock(&card->sbp_lock); mutex_unlock(&card->sbp_lock);
...@@ -66,7 +66,7 @@ static ssize_t qeth_bridge_port_role_show(struct device *dev, ...@@ -66,7 +66,7 @@ static ssize_t qeth_bridge_port_role_show(struct device *dev,
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
if (!qeth_bridgeport_allowed(card)) if (!qeth_bridgeport_allowed(card))
return sprintf(buf, "n/a (VNIC characteristics)\n"); return sysfs_emit(buf, "n/a (VNIC characteristics)\n");
return qeth_bridge_port_role_state_show(dev, attr, buf, 0); return qeth_bridge_port_role_state_show(dev, attr, buf, 0);
} }
...@@ -117,7 +117,7 @@ static ssize_t qeth_bridge_port_state_show(struct device *dev, ...@@ -117,7 +117,7 @@ static ssize_t qeth_bridge_port_state_show(struct device *dev,
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
if (!qeth_bridgeport_allowed(card)) if (!qeth_bridgeport_allowed(card))
return sprintf(buf, "n/a (VNIC characteristics)\n"); return sysfs_emit(buf, "n/a (VNIC characteristics)\n");
return qeth_bridge_port_role_state_show(dev, attr, buf, 1); return qeth_bridge_port_role_state_show(dev, attr, buf, 1);
} }
...@@ -132,11 +132,11 @@ static ssize_t qeth_bridgeport_hostnotification_show(struct device *dev, ...@@ -132,11 +132,11 @@ static ssize_t qeth_bridgeport_hostnotification_show(struct device *dev,
int enabled; int enabled;
if (!qeth_bridgeport_allowed(card)) if (!qeth_bridgeport_allowed(card))
return sprintf(buf, "n/a (VNIC characteristics)\n"); return sysfs_emit(buf, "n/a (VNIC characteristics)\n");
enabled = card->options.sbp.hostnotification; enabled = card->options.sbp.hostnotification;
return sprintf(buf, "%d\n", enabled); return sysfs_emit(buf, "%d\n", enabled);
} }
static ssize_t qeth_bridgeport_hostnotification_store(struct device *dev, static ssize_t qeth_bridgeport_hostnotification_store(struct device *dev,
...@@ -180,7 +180,7 @@ static ssize_t qeth_bridgeport_reflect_show(struct device *dev, ...@@ -180,7 +180,7 @@ static ssize_t qeth_bridgeport_reflect_show(struct device *dev,
char *state; char *state;
if (!qeth_bridgeport_allowed(card)) if (!qeth_bridgeport_allowed(card))
return sprintf(buf, "n/a (VNIC characteristics)\n"); return sysfs_emit(buf, "n/a (VNIC characteristics)\n");
if (card->options.sbp.reflect_promisc) { if (card->options.sbp.reflect_promisc) {
if (card->options.sbp.reflect_promisc_primary) if (card->options.sbp.reflect_promisc_primary)
...@@ -190,7 +190,7 @@ static ssize_t qeth_bridgeport_reflect_show(struct device *dev, ...@@ -190,7 +190,7 @@ static ssize_t qeth_bridgeport_reflect_show(struct device *dev,
} else } else
state = "none"; state = "none";
return sprintf(buf, "%s\n", state); return sysfs_emit(buf, "%s\n", state);
} }
static ssize_t qeth_bridgeport_reflect_store(struct device *dev, static ssize_t qeth_bridgeport_reflect_store(struct device *dev,
...@@ -280,10 +280,10 @@ static ssize_t qeth_vnicc_timeout_show(struct device *dev, ...@@ -280,10 +280,10 @@ static ssize_t qeth_vnicc_timeout_show(struct device *dev,
rc = qeth_l2_vnicc_get_timeout(card, &timeout); rc = qeth_l2_vnicc_get_timeout(card, &timeout);
if (rc == -EBUSY) if (rc == -EBUSY)
return sprintf(buf, "n/a (BridgePort)\n"); return sysfs_emit(buf, "n/a (BridgePort)\n");
if (rc == -EOPNOTSUPP) if (rc == -EOPNOTSUPP)
return sprintf(buf, "n/a\n"); return sysfs_emit(buf, "n/a\n");
return rc ? rc : sprintf(buf, "%d\n", timeout); return rc ? rc : sysfs_emit(buf, "%d\n", timeout);
} }
/* change timeout setting */ /* change timeout setting */
...@@ -318,10 +318,10 @@ static ssize_t qeth_vnicc_char_show(struct device *dev, ...@@ -318,10 +318,10 @@ static ssize_t qeth_vnicc_char_show(struct device *dev,
rc = qeth_l2_vnicc_get_state(card, vnicc, &state); rc = qeth_l2_vnicc_get_state(card, vnicc, &state);
if (rc == -EBUSY) if (rc == -EBUSY)
return sprintf(buf, "n/a (BridgePort)\n"); return sysfs_emit(buf, "n/a (BridgePort)\n");
if (rc == -EOPNOTSUPP) if (rc == -EOPNOTSUPP)
return sprintf(buf, "n/a\n"); return sysfs_emit(buf, "n/a\n");
return rc ? rc : sprintf(buf, "%d\n", state); return rc ? rc : sysfs_emit(buf, "%d\n", state);
} }
/* change setting of characteristic */ /* change setting of characteristic */
......
...@@ -32,26 +32,26 @@ static ssize_t qeth_l3_dev_route_show(struct qeth_card *card, ...@@ -32,26 +32,26 @@ static ssize_t qeth_l3_dev_route_show(struct qeth_card *card,
{ {
switch (route->type) { switch (route->type) {
case PRIMARY_ROUTER: case PRIMARY_ROUTER:
return sprintf(buf, "%s\n", "primary router"); return sysfs_emit(buf, "%s\n", "primary router");
case SECONDARY_ROUTER: case SECONDARY_ROUTER:
return sprintf(buf, "%s\n", "secondary router"); return sysfs_emit(buf, "%s\n", "secondary router");
case MULTICAST_ROUTER: case MULTICAST_ROUTER:
if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO) if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO)
return sprintf(buf, "%s\n", "multicast router+"); return sysfs_emit(buf, "%s\n", "multicast router+");
else else
return sprintf(buf, "%s\n", "multicast router"); return sysfs_emit(buf, "%s\n", "multicast router");
case PRIMARY_CONNECTOR: case PRIMARY_CONNECTOR:
if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO) if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO)
return sprintf(buf, "%s\n", "primary connector+"); return sysfs_emit(buf, "%s\n", "primary connector+");
else else
return sprintf(buf, "%s\n", "primary connector"); return sysfs_emit(buf, "%s\n", "primary connector");
case SECONDARY_CONNECTOR: case SECONDARY_CONNECTOR:
if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO) if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO)
return sprintf(buf, "%s\n", "secondary connector+"); return sysfs_emit(buf, "%s\n", "secondary connector+");
else else
return sprintf(buf, "%s\n", "secondary connector"); return sysfs_emit(buf, "%s\n", "secondary connector");
default: default:
return sprintf(buf, "%s\n", "no"); return sysfs_emit(buf, "%s\n", "no");
} }
} }
...@@ -138,7 +138,7 @@ static ssize_t qeth_l3_dev_sniffer_show(struct device *dev, ...@@ -138,7 +138,7 @@ static ssize_t qeth_l3_dev_sniffer_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%i\n", card->options.sniffer ? 1 : 0); return sysfs_emit(buf, "%i\n", card->options.sniffer ? 1 : 0);
} }
static ssize_t qeth_l3_dev_sniffer_store(struct device *dev, static ssize_t qeth_l3_dev_sniffer_store(struct device *dev,
...@@ -200,7 +200,7 @@ static ssize_t qeth_l3_dev_hsuid_show(struct device *dev, ...@@ -200,7 +200,7 @@ static ssize_t qeth_l3_dev_hsuid_show(struct device *dev,
memcpy(tmp_hsuid, card->options.hsuid, sizeof(tmp_hsuid)); memcpy(tmp_hsuid, card->options.hsuid, sizeof(tmp_hsuid));
EBCASC(tmp_hsuid, 8); EBCASC(tmp_hsuid, 8);
return sprintf(buf, "%s\n", tmp_hsuid); return sysfs_emit(buf, "%s\n", tmp_hsuid);
} }
static ssize_t qeth_l3_dev_hsuid_store(struct device *dev, static ssize_t qeth_l3_dev_hsuid_store(struct device *dev,
...@@ -285,7 +285,7 @@ static ssize_t qeth_l3_dev_ipato_enable_show(struct device *dev, ...@@ -285,7 +285,7 @@ static ssize_t qeth_l3_dev_ipato_enable_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%u\n", card->ipato.enabled ? 1 : 0); return sysfs_emit(buf, "%u\n", card->ipato.enabled ? 1 : 0);
} }
static ssize_t qeth_l3_dev_ipato_enable_store(struct device *dev, static ssize_t qeth_l3_dev_ipato_enable_store(struct device *dev,
...@@ -330,7 +330,7 @@ static ssize_t qeth_l3_dev_ipato_invert4_show(struct device *dev, ...@@ -330,7 +330,7 @@ static ssize_t qeth_l3_dev_ipato_invert4_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%u\n", card->ipato.invert4 ? 1 : 0); return sysfs_emit(buf, "%u\n", card->ipato.invert4 ? 1 : 0);
} }
static ssize_t qeth_l3_dev_ipato_invert4_store(struct device *dev, static ssize_t qeth_l3_dev_ipato_invert4_store(struct device *dev,
...@@ -367,35 +367,21 @@ static ssize_t qeth_l3_dev_ipato_add_show(char *buf, struct qeth_card *card, ...@@ -367,35 +367,21 @@ static ssize_t qeth_l3_dev_ipato_add_show(char *buf, struct qeth_card *card,
enum qeth_prot_versions proto) enum qeth_prot_versions proto)
{ {
struct qeth_ipato_entry *ipatoe; struct qeth_ipato_entry *ipatoe;
int str_len = 0; char addr_str[INET6_ADDRSTRLEN];
int offset = 0;
mutex_lock(&card->ip_lock); mutex_lock(&card->ip_lock);
list_for_each_entry(ipatoe, &card->ipato.entries, entry) { list_for_each_entry(ipatoe, &card->ipato.entries, entry) {
char addr_str[INET6_ADDRSTRLEN];
int entry_len;
if (ipatoe->proto != proto) if (ipatoe->proto != proto)
continue; continue;
entry_len = qeth_l3_ipaddr_to_string(proto, ipatoe->addr, qeth_l3_ipaddr_to_string(proto, ipatoe->addr, addr_str);
addr_str); offset += sysfs_emit_at(buf, offset, "%s/%i\n",
if (entry_len < 0) addr_str, ipatoe->mask_bits);
continue;
/* Append /%mask to the entry: */
entry_len += 1 + ((proto == QETH_PROT_IPV4) ? 2 : 3);
/* Enough room to format %entry\n into null terminated page? */
if (entry_len + 1 > PAGE_SIZE - str_len - 1)
break;
entry_len = scnprintf(buf, PAGE_SIZE - str_len,
"%s/%i\n", addr_str, ipatoe->mask_bits);
str_len += entry_len;
buf += entry_len;
} }
mutex_unlock(&card->ip_lock); mutex_unlock(&card->ip_lock);
return str_len ? str_len : scnprintf(buf, PAGE_SIZE, "\n"); return offset ? offset : sysfs_emit(buf, "\n");
} }
static ssize_t qeth_l3_dev_ipato_add4_show(struct device *dev, static ssize_t qeth_l3_dev_ipato_add4_show(struct device *dev,
...@@ -501,7 +487,7 @@ static ssize_t qeth_l3_dev_ipato_invert6_show(struct device *dev, ...@@ -501,7 +487,7 @@ static ssize_t qeth_l3_dev_ipato_invert6_show(struct device *dev,
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
return sprintf(buf, "%u\n", card->ipato.invert6 ? 1 : 0); return sysfs_emit(buf, "%u\n", card->ipato.invert6 ? 1 : 0);
} }
static ssize_t qeth_l3_dev_ipato_invert6_store(struct device *dev, static ssize_t qeth_l3_dev_ipato_invert6_store(struct device *dev,
...@@ -586,35 +572,22 @@ static ssize_t qeth_l3_dev_ip_add_show(struct device *dev, char *buf, ...@@ -586,35 +572,22 @@ static ssize_t qeth_l3_dev_ip_add_show(struct device *dev, char *buf,
enum qeth_ip_types type) enum qeth_ip_types type)
{ {
struct qeth_card *card = dev_get_drvdata(dev); struct qeth_card *card = dev_get_drvdata(dev);
char addr_str[INET6_ADDRSTRLEN];
struct qeth_ipaddr *ipaddr; struct qeth_ipaddr *ipaddr;
int str_len = 0; int offset = 0;
int i; int i;
mutex_lock(&card->ip_lock); mutex_lock(&card->ip_lock);
hash_for_each(card->ip_htable, i, ipaddr, hnode) { hash_for_each(card->ip_htable, i, ipaddr, hnode) {
char addr_str[INET6_ADDRSTRLEN];
int entry_len;
if (ipaddr->proto != proto || ipaddr->type != type) if (ipaddr->proto != proto || ipaddr->type != type)
continue; continue;
entry_len = qeth_l3_ipaddr_to_string(proto, (u8 *)&ipaddr->u, qeth_l3_ipaddr_to_string(proto, (u8 *)&ipaddr->u, addr_str);
addr_str); offset += sysfs_emit_at(buf, offset, "%s\n", addr_str);
if (entry_len < 0)
continue;
/* Enough room to format %addr\n into null terminated page? */
if (entry_len + 1 > PAGE_SIZE - str_len - 1)
break;
entry_len = scnprintf(buf, PAGE_SIZE - str_len, "%s\n",
addr_str);
str_len += entry_len;
buf += entry_len;
} }
mutex_unlock(&card->ip_lock); mutex_unlock(&card->ip_lock);
return str_len ? str_len : scnprintf(buf, PAGE_SIZE, "\n"); return offset ? offset : sysfs_emit(buf, "\n");
} }
static ssize_t qeth_l3_dev_vipa_add4_show(struct device *dev, static ssize_t qeth_l3_dev_vipa_add4_show(struct device *dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment