Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Jules Irenge <jbi.octave@gmail.com>
Reported-by: Joe Perches <joe@perches.com>
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: Thorsten Winkler <twinkler@linux.ibm.com>
Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Thorsten Winkler and committed by
Jakub Kicinski
dde8769b 180f5131

+73 -98
+34 -32
drivers/s390/net/qeth_core_sys.c
··· 23 23 24 24 switch (card->state) { 25 25 case CARD_STATE_DOWN: 26 - return sprintf(buf, "DOWN\n"); 26 + return sysfs_emit(buf, "DOWN\n"); 27 27 case CARD_STATE_SOFTSETUP: 28 28 if (card->dev->flags & IFF_UP) 29 - return sprintf(buf, "UP (LAN %s)\n", 30 - netif_carrier_ok(card->dev) ? "ONLINE" : 31 - "OFFLINE"); 32 - return sprintf(buf, "SOFTSETUP\n"); 29 + return sysfs_emit(buf, "UP (LAN %s)\n", 30 + netif_carrier_ok(card->dev) ? 31 + "ONLINE" : "OFFLINE"); 32 + return sysfs_emit(buf, "SOFTSETUP\n"); 33 33 default: 34 - return sprintf(buf, "UNKNOWN\n"); 34 + return sysfs_emit(buf, "UNKNOWN\n"); 35 35 } 36 36 } 37 37 ··· 42 42 { 43 43 struct qeth_card *card = dev_get_drvdata(dev); 44 44 45 - return sprintf(buf, "%02X\n", card->info.chpid); 45 + return sysfs_emit(buf, "%02X\n", card->info.chpid); 46 46 } 47 47 48 48 static DEVICE_ATTR(chpid, 0444, qeth_dev_chpid_show, NULL); ··· 52 52 { 53 53 struct qeth_card *card = dev_get_drvdata(dev); 54 54 55 - return sprintf(buf, "%s\n", netdev_name(card->dev)); 55 + return sysfs_emit(buf, "%s\n", netdev_name(card->dev)); 56 56 } 57 57 58 58 static DEVICE_ATTR(if_name, 0444, qeth_dev_if_name_show, NULL); ··· 62 62 { 63 63 struct qeth_card *card = dev_get_drvdata(dev); 64 64 65 - return sprintf(buf, "%s\n", qeth_get_cardname_short(card)); 65 + return sysfs_emit(buf, "%s\n", qeth_get_cardname_short(card)); 66 66 } 67 67 68 68 static DEVICE_ATTR(card_type, 0444, qeth_dev_card_type_show, NULL); ··· 86 86 { 87 87 struct qeth_card *card = dev_get_drvdata(dev); 88 88 89 - return sprintf(buf, "%s\n", qeth_get_bufsize_str(card)); 89 + return sysfs_emit(buf, "%s\n", qeth_get_bufsize_str(card)); 90 90 } 91 91 92 92 static DEVICE_ATTR(inbuf_size, 0444, qeth_dev_inbuf_size_show, NULL); ··· 96 96 { 97 97 struct qeth_card *card = dev_get_drvdata(dev); 98 98 99 - return sprintf(buf, "%i\n", card->dev->dev_port); 99 + return sysfs_emit(buf, "%i\n", card->dev->dev_port); 100 100 } 101 101 102 102 static ssize_t qeth_dev_portno_store(struct device *dev, ··· 134 134 static ssize_t qeth_dev_portname_show(struct device *dev, 135 135 struct device_attribute *attr, char *buf) 136 136 { 137 - return sprintf(buf, "no portname required\n"); 137 + return sysfs_emit(buf, "no portname required\n"); 138 138 } 139 139 140 140 static ssize_t qeth_dev_portname_store(struct device *dev, ··· 157 157 158 158 switch (card->qdio.do_prio_queueing) { 159 159 case QETH_PRIO_Q_ING_PREC: 160 - return sprintf(buf, "%s\n", "by precedence"); 160 + return sysfs_emit(buf, "%s\n", "by precedence"); 161 161 case QETH_PRIO_Q_ING_TOS: 162 - return sprintf(buf, "%s\n", "by type of service"); 162 + return sysfs_emit(buf, "%s\n", "by type of service"); 163 163 case QETH_PRIO_Q_ING_SKB: 164 - return sprintf(buf, "%s\n", "by skb-priority"); 164 + return sysfs_emit(buf, "%s\n", "by skb-priority"); 165 165 case QETH_PRIO_Q_ING_VLAN: 166 - return sprintf(buf, "%s\n", "by VLAN headers"); 166 + return sysfs_emit(buf, "%s\n", "by VLAN headers"); 167 167 case QETH_PRIO_Q_ING_FIXED: 168 - return sprintf(buf, "always queue %i\n", 168 + return sysfs_emit(buf, "always queue %i\n", 169 169 card->qdio.default_out_queue); 170 170 default: 171 - return sprintf(buf, "disabled\n"); 171 + return sysfs_emit(buf, "disabled\n"); 172 172 } 173 173 } 174 174 ··· 242 242 { 243 243 struct qeth_card *card = dev_get_drvdata(dev); 244 244 245 - return sprintf(buf, "%i\n", card->qdio.in_buf_pool.buf_count); 245 + return sysfs_emit(buf, "%i\n", card->qdio.in_buf_pool.buf_count); 246 246 } 247 247 248 248 static ssize_t qeth_dev_bufcnt_store(struct device *dev, ··· 298 298 static ssize_t qeth_dev_performance_stats_show(struct device *dev, 299 299 struct device_attribute *attr, char *buf) 300 300 { 301 - return sprintf(buf, "1\n"); 301 + return sysfs_emit(buf, "1\n"); 302 302 } 303 303 304 304 static ssize_t qeth_dev_performance_stats_store(struct device *dev, ··· 335 335 { 336 336 struct qeth_card *card = dev_get_drvdata(dev); 337 337 338 - return sprintf(buf, "%i\n", card->options.layer); 338 + return sysfs_emit(buf, "%i\n", card->options.layer); 339 339 } 340 340 341 341 static ssize_t qeth_dev_layer2_store(struct device *dev, ··· 470 470 int rc = 0; 471 471 472 472 if (!qeth_card_hw_is_reachable(card)) 473 - return sprintf(buf, "n/a\n"); 473 + return sysfs_emit(buf, "n/a\n"); 474 474 475 475 rc = qeth_query_switch_attributes(card, &sw_info); 476 476 if (rc) 477 477 return rc; 478 478 479 479 if (!sw_info.capabilities) 480 - rc = sprintf(buf, "unknown"); 480 + rc = sysfs_emit(buf, "unknown"); 481 481 482 482 if (sw_info.capabilities & QETH_SWITCH_FORW_802_1) 483 - rc = sprintf(buf, (sw_info.settings & QETH_SWITCH_FORW_802_1 ? 484 - "[802.1]" : "802.1")); 483 + rc = sysfs_emit(buf, 484 + (sw_info.settings & QETH_SWITCH_FORW_802_1 ? 485 + "[802.1]" : "802.1")); 485 486 if (sw_info.capabilities & QETH_SWITCH_FORW_REFL_RELAY) 486 - rc += sprintf(buf + rc, 487 - (sw_info.settings & QETH_SWITCH_FORW_REFL_RELAY ? 488 - " [rr]" : " rr")); 489 - rc += sprintf(buf + rc, "\n"); 487 + rc += sysfs_emit_at(buf, rc, 488 + (sw_info.settings & 489 + QETH_SWITCH_FORW_REFL_RELAY ? 490 + " [rr]" : " rr")); 491 + rc += sysfs_emit_at(buf, rc, "\n"); 490 492 491 493 return rc; 492 494 } ··· 575 573 { 576 574 struct qeth_card *card = dev_get_drvdata(dev); 577 575 578 - return sprintf(buf, "%i\n", card->info.blkt.time_total); 576 + return sysfs_emit(buf, "%i\n", card->info.blkt.time_total); 579 577 } 580 578 581 579 static ssize_t qeth_dev_blkt_total_store(struct device *dev, ··· 595 593 { 596 594 struct qeth_card *card = dev_get_drvdata(dev); 597 595 598 - return sprintf(buf, "%i\n", card->info.blkt.inter_packet); 596 + return sysfs_emit(buf, "%i\n", card->info.blkt.inter_packet); 599 597 } 600 598 601 599 static ssize_t qeth_dev_blkt_inter_store(struct device *dev, ··· 615 613 { 616 614 struct qeth_card *card = dev_get_drvdata(dev); 617 615 618 - return sprintf(buf, "%i\n", card->info.blkt.inter_packet_jumbo); 616 + return sysfs_emit(buf, "%i\n", card->info.blkt.inter_packet_jumbo); 619 617 } 620 618 621 619 static ssize_t qeth_dev_blkt_inter_jumbo_store(struct device *dev,
+14 -14
drivers/s390/net/qeth_l2_sys.c
··· 19 19 char *word; 20 20 21 21 if (!qeth_bridgeport_allowed(card)) 22 - return sprintf(buf, "n/a (VNIC characteristics)\n"); 22 + return sysfs_emit(buf, "n/a (VNIC characteristics)\n"); 23 23 24 24 mutex_lock(&card->sbp_lock); 25 25 if (qeth_card_hw_is_reachable(card) && ··· 53 53 QETH_CARD_TEXT_(card, 2, "SBP%02x:%02x", 54 54 card->options.sbp.role, state); 55 55 else 56 - rc = sprintf(buf, "%s\n", word); 56 + rc = sysfs_emit(buf, "%s\n", word); 57 57 } 58 58 mutex_unlock(&card->sbp_lock); 59 59 ··· 66 66 struct qeth_card *card = dev_get_drvdata(dev); 67 67 68 68 if (!qeth_bridgeport_allowed(card)) 69 - return sprintf(buf, "n/a (VNIC characteristics)\n"); 69 + return sysfs_emit(buf, "n/a (VNIC characteristics)\n"); 70 70 71 71 return qeth_bridge_port_role_state_show(dev, attr, buf, 0); 72 72 } ··· 117 117 struct qeth_card *card = dev_get_drvdata(dev); 118 118 119 119 if (!qeth_bridgeport_allowed(card)) 120 - return sprintf(buf, "n/a (VNIC characteristics)\n"); 120 + return sysfs_emit(buf, "n/a (VNIC characteristics)\n"); 121 121 122 122 return qeth_bridge_port_role_state_show(dev, attr, buf, 1); 123 123 } ··· 132 132 int enabled; 133 133 134 134 if (!qeth_bridgeport_allowed(card)) 135 - return sprintf(buf, "n/a (VNIC characteristics)\n"); 135 + return sysfs_emit(buf, "n/a (VNIC characteristics)\n"); 136 136 137 137 enabled = card->options.sbp.hostnotification; 138 138 139 - return sprintf(buf, "%d\n", enabled); 139 + return sysfs_emit(buf, "%d\n", enabled); 140 140 } 141 141 142 142 static ssize_t qeth_bridgeport_hostnotification_store(struct device *dev, ··· 180 180 char *state; 181 181 182 182 if (!qeth_bridgeport_allowed(card)) 183 - return sprintf(buf, "n/a (VNIC characteristics)\n"); 183 + return sysfs_emit(buf, "n/a (VNIC characteristics)\n"); 184 184 185 185 if (card->options.sbp.reflect_promisc) { 186 186 if (card->options.sbp.reflect_promisc_primary) ··· 190 190 } else 191 191 state = "none"; 192 192 193 - return sprintf(buf, "%s\n", state); 193 + return sysfs_emit(buf, "%s\n", state); 194 194 } 195 195 196 196 static ssize_t qeth_bridgeport_reflect_store(struct device *dev, ··· 280 280 281 281 rc = qeth_l2_vnicc_get_timeout(card, &timeout); 282 282 if (rc == -EBUSY) 283 - return sprintf(buf, "n/a (BridgePort)\n"); 283 + return sysfs_emit(buf, "n/a (BridgePort)\n"); 284 284 if (rc == -EOPNOTSUPP) 285 - return sprintf(buf, "n/a\n"); 286 - return rc ? rc : sprintf(buf, "%d\n", timeout); 285 + return sysfs_emit(buf, "n/a\n"); 286 + return rc ? rc : sysfs_emit(buf, "%d\n", timeout); 287 287 } 288 288 289 289 /* change timeout setting */ ··· 318 318 rc = qeth_l2_vnicc_get_state(card, vnicc, &state); 319 319 320 320 if (rc == -EBUSY) 321 - return sprintf(buf, "n/a (BridgePort)\n"); 321 + return sysfs_emit(buf, "n/a (BridgePort)\n"); 322 322 if (rc == -EOPNOTSUPP) 323 - return sprintf(buf, "n/a\n"); 324 - return rc ? rc : sprintf(buf, "%d\n", state); 323 + return sysfs_emit(buf, "n/a\n"); 324 + return rc ? rc : sysfs_emit(buf, "%d\n", state); 325 325 } 326 326 327 327 /* change setting of characteristic */
+25 -52
drivers/s390/net/qeth_l3_sys.c
··· 32 32 { 33 33 switch (route->type) { 34 34 case PRIMARY_ROUTER: 35 - return sprintf(buf, "%s\n", "primary router"); 35 + return sysfs_emit(buf, "%s\n", "primary router"); 36 36 case SECONDARY_ROUTER: 37 - return sprintf(buf, "%s\n", "secondary router"); 37 + return sysfs_emit(buf, "%s\n", "secondary router"); 38 38 case MULTICAST_ROUTER: 39 39 if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO) 40 - return sprintf(buf, "%s\n", "multicast router+"); 40 + return sysfs_emit(buf, "%s\n", "multicast router+"); 41 41 else 42 - return sprintf(buf, "%s\n", "multicast router"); 42 + return sysfs_emit(buf, "%s\n", "multicast router"); 43 43 case PRIMARY_CONNECTOR: 44 44 if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO) 45 - return sprintf(buf, "%s\n", "primary connector+"); 45 + return sysfs_emit(buf, "%s\n", "primary connector+"); 46 46 else 47 - return sprintf(buf, "%s\n", "primary connector"); 47 + return sysfs_emit(buf, "%s\n", "primary connector"); 48 48 case SECONDARY_CONNECTOR: 49 49 if (card->info.broadcast_capable == QETH_BROADCAST_WITHOUT_ECHO) 50 - return sprintf(buf, "%s\n", "secondary connector+"); 50 + return sysfs_emit(buf, "%s\n", "secondary connector+"); 51 51 else 52 - return sprintf(buf, "%s\n", "secondary connector"); 52 + return sysfs_emit(buf, "%s\n", "secondary connector"); 53 53 default: 54 - return sprintf(buf, "%s\n", "no"); 54 + return sysfs_emit(buf, "%s\n", "no"); 55 55 } 56 56 } 57 57 ··· 138 138 { 139 139 struct qeth_card *card = dev_get_drvdata(dev); 140 140 141 - return sprintf(buf, "%i\n", card->options.sniffer ? 1 : 0); 141 + return sysfs_emit(buf, "%i\n", card->options.sniffer ? 1 : 0); 142 142 } 143 143 144 144 static ssize_t qeth_l3_dev_sniffer_store(struct device *dev, ··· 200 200 201 201 memcpy(tmp_hsuid, card->options.hsuid, sizeof(tmp_hsuid)); 202 202 EBCASC(tmp_hsuid, 8); 203 - return sprintf(buf, "%s\n", tmp_hsuid); 203 + return sysfs_emit(buf, "%s\n", tmp_hsuid); 204 204 } 205 205 206 206 static ssize_t qeth_l3_dev_hsuid_store(struct device *dev, ··· 285 285 { 286 286 struct qeth_card *card = dev_get_drvdata(dev); 287 287 288 - return sprintf(buf, "%u\n", card->ipato.enabled ? 1 : 0); 288 + return sysfs_emit(buf, "%u\n", card->ipato.enabled ? 1 : 0); 289 289 } 290 290 291 291 static ssize_t qeth_l3_dev_ipato_enable_store(struct device *dev, ··· 330 330 { 331 331 struct qeth_card *card = dev_get_drvdata(dev); 332 332 333 - return sprintf(buf, "%u\n", card->ipato.invert4 ? 1 : 0); 333 + return sysfs_emit(buf, "%u\n", card->ipato.invert4 ? 1 : 0); 334 334 } 335 335 336 336 static ssize_t qeth_l3_dev_ipato_invert4_store(struct device *dev, ··· 367 367 enum qeth_prot_versions proto) 368 368 { 369 369 struct qeth_ipato_entry *ipatoe; 370 - int str_len = 0; 370 + char addr_str[INET6_ADDRSTRLEN]; 371 + int offset = 0; 371 372 372 373 mutex_lock(&card->ip_lock); 373 374 list_for_each_entry(ipatoe, &card->ipato.entries, entry) { 374 - char addr_str[INET6_ADDRSTRLEN]; 375 - int entry_len; 376 - 377 375 if (ipatoe->proto != proto) 378 376 continue; 379 377 380 - entry_len = qeth_l3_ipaddr_to_string(proto, ipatoe->addr, 381 - addr_str); 382 - if (entry_len < 0) 383 - continue; 384 - 385 - /* Append /%mask to the entry: */ 386 - entry_len += 1 + ((proto == QETH_PROT_IPV4) ? 2 : 3); 387 - /* Enough room to format %entry\n into null terminated page? */ 388 - if (entry_len + 1 > PAGE_SIZE - str_len - 1) 389 - break; 390 - 391 - entry_len = scnprintf(buf, PAGE_SIZE - str_len, 392 - "%s/%i\n", addr_str, ipatoe->mask_bits); 393 - str_len += entry_len; 394 - buf += entry_len; 378 + qeth_l3_ipaddr_to_string(proto, ipatoe->addr, addr_str); 379 + offset += sysfs_emit_at(buf, offset, "%s/%i\n", 380 + addr_str, ipatoe->mask_bits); 395 381 } 396 382 mutex_unlock(&card->ip_lock); 397 383 398 - return str_len ? str_len : scnprintf(buf, PAGE_SIZE, "\n"); 384 + return offset ? offset : sysfs_emit(buf, "\n"); 399 385 } 400 386 401 387 static ssize_t qeth_l3_dev_ipato_add4_show(struct device *dev, ··· 487 501 { 488 502 struct qeth_card *card = dev_get_drvdata(dev); 489 503 490 - return sprintf(buf, "%u\n", card->ipato.invert6 ? 1 : 0); 504 + return sysfs_emit(buf, "%u\n", card->ipato.invert6 ? 1 : 0); 491 505 } 492 506 493 507 static ssize_t qeth_l3_dev_ipato_invert6_store(struct device *dev, ··· 572 586 enum qeth_ip_types type) 573 587 { 574 588 struct qeth_card *card = dev_get_drvdata(dev); 589 + char addr_str[INET6_ADDRSTRLEN]; 575 590 struct qeth_ipaddr *ipaddr; 576 - int str_len = 0; 591 + int offset = 0; 577 592 int i; 578 593 579 594 mutex_lock(&card->ip_lock); 580 595 hash_for_each(card->ip_htable, i, ipaddr, hnode) { 581 - char addr_str[INET6_ADDRSTRLEN]; 582 - int entry_len; 583 - 584 596 if (ipaddr->proto != proto || ipaddr->type != type) 585 597 continue; 586 598 587 - entry_len = qeth_l3_ipaddr_to_string(proto, (u8 *)&ipaddr->u, 588 - addr_str); 589 - if (entry_len < 0) 590 - continue; 591 - 592 - /* Enough room to format %addr\n into null terminated page? */ 593 - if (entry_len + 1 > PAGE_SIZE - str_len - 1) 594 - break; 595 - 596 - entry_len = scnprintf(buf, PAGE_SIZE - str_len, "%s\n", 597 - addr_str); 598 - str_len += entry_len; 599 - buf += entry_len; 599 + qeth_l3_ipaddr_to_string(proto, (u8 *)&ipaddr->u, addr_str); 600 + offset += sysfs_emit_at(buf, offset, "%s\n", addr_str); 600 601 } 601 602 mutex_unlock(&card->ip_lock); 602 603 603 - return str_len ? str_len : scnprintf(buf, PAGE_SIZE, "\n"); 604 + return offset ? offset : sysfs_emit(buf, "\n"); 604 605 } 605 606 606 607 static ssize_t qeth_l3_dev_vipa_add4_show(struct device *dev,