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

Configure Feed

Select the types of activity you want to include in your feed.

net: bridge: use sysfs_emit instead of sprintf

Replace sprintf with sysfs_emit in sysfs show() methods as outlined in
Documentation/filesystems/sysfs.rst.

sysfs_emit is preferred to sprintf in sysfs show() methods as it is safer
with buffer handling.

Signed-off-by: David Corvaglia <david@corvaglia.dev>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/0100019c1fc2bcc3-bc9ca2f1-22d7-4250-8441-91e4af57117b-000000@email.amazonses.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

David Corvaglia and committed by
Jakub Kicinski
6dfa3df7 1384a81e

+73 -75
+4 -4
net/bridge/br_stp_if.c
··· 344 344 345 345 ssize_t br_show_bridge_id(char *buf, const struct bridge_id *id) 346 346 { 347 - return sprintf(buf, "%.2x%.2x.%.2x%.2x%.2x%.2x%.2x%.2x\n", 348 - id->prio[0], id->prio[1], 349 - id->addr[0], id->addr[1], id->addr[2], 350 - id->addr[3], id->addr[4], id->addr[5]); 347 + return sysfs_emit(buf, "%.2x%.2x.%.2x%.2x%.2x%.2x%.2x%.2x\n", 348 + id->prio[0], id->prio[1], 349 + id->addr[0], id->addr[1], id->addr[2], 350 + id->addr[3], id->addr[4], id->addr[5]); 351 351 }
+53 -55
net/bridge/br_sysfs_br.c
··· 67 67 struct device_attribute *attr, char *buf) 68 68 { 69 69 struct net_bridge *br = to_bridge(d); 70 - return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->forward_delay)); 70 + return sysfs_emit(buf, "%lu\n", jiffies_to_clock_t(br->forward_delay)); 71 71 } 72 72 73 73 static int set_forward_delay(struct net_bridge *br, unsigned long val, ··· 87 87 static ssize_t hello_time_show(struct device *d, struct device_attribute *attr, 88 88 char *buf) 89 89 { 90 - return sprintf(buf, "%lu\n", 91 - jiffies_to_clock_t(to_bridge(d)->hello_time)); 90 + return sysfs_emit(buf, "%lu\n", 91 + jiffies_to_clock_t(to_bridge(d)->hello_time)); 92 92 } 93 93 94 94 static int set_hello_time(struct net_bridge *br, unsigned long val, ··· 108 108 static ssize_t max_age_show(struct device *d, struct device_attribute *attr, 109 109 char *buf) 110 110 { 111 - return sprintf(buf, "%lu\n", 112 - jiffies_to_clock_t(to_bridge(d)->max_age)); 111 + return sysfs_emit(buf, "%lu\n", 112 + jiffies_to_clock_t(to_bridge(d)->max_age)); 113 113 } 114 114 115 115 static int set_max_age(struct net_bridge *br, unsigned long val, ··· 129 129 struct device_attribute *attr, char *buf) 130 130 { 131 131 struct net_bridge *br = to_bridge(d); 132 - return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->ageing_time)); 132 + return sysfs_emit(buf, "%lu\n", jiffies_to_clock_t(br->ageing_time)); 133 133 } 134 134 135 135 static int set_ageing_time(struct net_bridge *br, unsigned long val, ··· 150 150 struct device_attribute *attr, char *buf) 151 151 { 152 152 struct net_bridge *br = to_bridge(d); 153 - return sprintf(buf, "%d\n", br->stp_enabled); 153 + return sysfs_emit(buf, "%d\n", br->stp_enabled); 154 154 } 155 155 156 156 ··· 173 173 char *buf) 174 174 { 175 175 struct net_bridge *br = to_bridge(d); 176 - return sprintf(buf, "%#x\n", br->group_fwd_mask); 176 + return sysfs_emit(buf, "%#x\n", br->group_fwd_mask); 177 177 } 178 178 179 179 static int set_group_fwd_mask(struct net_bridge *br, unsigned long val, ··· 200 200 char *buf) 201 201 { 202 202 struct net_bridge *br = to_bridge(d); 203 - return sprintf(buf, "%d\n", 204 - (br->bridge_id.prio[0] << 8) | br->bridge_id.prio[1]); 203 + return sysfs_emit(buf, "%d\n", 204 + (br->bridge_id.prio[0] << 8) | br->bridge_id.prio[1]); 205 205 } 206 206 207 207 static int set_priority(struct net_bridge *br, unsigned long val, ··· 235 235 static ssize_t root_port_show(struct device *d, struct device_attribute *attr, 236 236 char *buf) 237 237 { 238 - return sprintf(buf, "%d\n", to_bridge(d)->root_port); 238 + return sysfs_emit(buf, "%d\n", to_bridge(d)->root_port); 239 239 } 240 240 static DEVICE_ATTR_RO(root_port); 241 241 242 242 static ssize_t root_path_cost_show(struct device *d, 243 243 struct device_attribute *attr, char *buf) 244 244 { 245 - return sprintf(buf, "%d\n", to_bridge(d)->root_path_cost); 245 + return sysfs_emit(buf, "%d\n", to_bridge(d)->root_path_cost); 246 246 } 247 247 static DEVICE_ATTR_RO(root_path_cost); 248 248 249 249 static ssize_t topology_change_show(struct device *d, 250 250 struct device_attribute *attr, char *buf) 251 251 { 252 - return sprintf(buf, "%d\n", to_bridge(d)->topology_change); 252 + return sysfs_emit(buf, "%d\n", to_bridge(d)->topology_change); 253 253 } 254 254 static DEVICE_ATTR_RO(topology_change); 255 255 ··· 258 258 char *buf) 259 259 { 260 260 struct net_bridge *br = to_bridge(d); 261 - return sprintf(buf, "%d\n", br->topology_change_detected); 261 + return sysfs_emit(buf, "%d\n", br->topology_change_detected); 262 262 } 263 263 static DEVICE_ATTR_RO(topology_change_detected); 264 264 ··· 266 266 struct device_attribute *attr, char *buf) 267 267 { 268 268 struct net_bridge *br = to_bridge(d); 269 - return sprintf(buf, "%ld\n", br_timer_value(&br->hello_timer)); 269 + return sysfs_emit(buf, "%ld\n", br_timer_value(&br->hello_timer)); 270 270 } 271 271 static DEVICE_ATTR_RO(hello_timer); 272 272 ··· 274 274 char *buf) 275 275 { 276 276 struct net_bridge *br = to_bridge(d); 277 - return sprintf(buf, "%ld\n", br_timer_value(&br->tcn_timer)); 277 + return sysfs_emit(buf, "%ld\n", br_timer_value(&br->tcn_timer)); 278 278 } 279 279 static DEVICE_ATTR_RO(tcn_timer); 280 280 ··· 283 283 char *buf) 284 284 { 285 285 struct net_bridge *br = to_bridge(d); 286 - return sprintf(buf, "%ld\n", br_timer_value(&br->topology_change_timer)); 286 + return sysfs_emit(buf, "%ld\n", br_timer_value(&br->topology_change_timer)); 287 287 } 288 288 static DEVICE_ATTR_RO(topology_change_timer); 289 289 ··· 291 291 char *buf) 292 292 { 293 293 struct net_bridge *br = to_bridge(d); 294 - return sprintf(buf, "%ld\n", br_timer_value(&br->gc_work.timer)); 294 + return sysfs_emit(buf, "%ld\n", br_timer_value(&br->gc_work.timer)); 295 295 } 296 296 static DEVICE_ATTR_RO(gc_timer); 297 297 ··· 299 299 struct device_attribute *attr, char *buf) 300 300 { 301 301 struct net_bridge *br = to_bridge(d); 302 - return sprintf(buf, "%pM\n", br->group_addr); 302 + return sysfs_emit(buf, "%pM\n", br->group_addr); 303 303 } 304 304 305 305 static ssize_t group_addr_store(struct device *d, ··· 365 365 char *buf) 366 366 { 367 367 struct net_bridge *br = to_bridge(d); 368 - return sprintf(buf, "%d\n", br_boolopt_get(br, BR_BOOLOPT_NO_LL_LEARN)); 368 + return sysfs_emit(buf, "%d\n", br_boolopt_get(br, BR_BOOLOPT_NO_LL_LEARN)); 369 369 } 370 370 371 371 static int set_no_linklocal_learn(struct net_bridge *br, unsigned long val, ··· 387 387 struct device_attribute *attr, char *buf) 388 388 { 389 389 struct net_bridge *br = to_bridge(d); 390 - return sprintf(buf, "%d\n", br->multicast_ctx.multicast_router); 390 + return sysfs_emit(buf, "%d\n", br->multicast_ctx.multicast_router); 391 391 } 392 392 393 393 static int set_multicast_router(struct net_bridge *br, unsigned long val, ··· 409 409 char *buf) 410 410 { 411 411 struct net_bridge *br = to_bridge(d); 412 - return sprintf(buf, "%d\n", br_opt_get(br, BROPT_MULTICAST_ENABLED)); 412 + return sysfs_emit(buf, "%d\n", br_opt_get(br, BROPT_MULTICAST_ENABLED)); 413 413 } 414 414 415 415 static ssize_t multicast_snooping_store(struct device *d, ··· 425 425 char *buf) 426 426 { 427 427 struct net_bridge *br = to_bridge(d); 428 - return sprintf(buf, "%d\n", 429 - br_opt_get(br, BROPT_MULTICAST_QUERY_USE_IFADDR)); 428 + return sysfs_emit(buf, "%d\n", 429 + br_opt_get(br, BROPT_MULTICAST_QUERY_USE_IFADDR)); 430 430 } 431 431 432 432 static int set_query_use_ifaddr(struct net_bridge *br, unsigned long val, ··· 450 450 char *buf) 451 451 { 452 452 struct net_bridge *br = to_bridge(d); 453 - return sprintf(buf, "%d\n", br->multicast_ctx.multicast_querier); 453 + return sysfs_emit(buf, "%d\n", br->multicast_ctx.multicast_querier); 454 454 } 455 455 456 456 static int set_multicast_querier(struct net_bridge *br, unsigned long val, ··· 470 470 static ssize_t hash_elasticity_show(struct device *d, 471 471 struct device_attribute *attr, char *buf) 472 472 { 473 - return sprintf(buf, "%u\n", RHT_ELASTICITY); 473 + return sysfs_emit(buf, "%u\n", RHT_ELASTICITY); 474 474 } 475 475 476 476 static int set_elasticity(struct net_bridge *br, unsigned long val, ··· 494 494 char *buf) 495 495 { 496 496 struct net_bridge *br = to_bridge(d); 497 - return sprintf(buf, "%u\n", br->hash_max); 497 + return sysfs_emit(buf, "%u\n", br->hash_max); 498 498 } 499 499 500 500 static int set_hash_max(struct net_bridge *br, unsigned long val, ··· 517 517 { 518 518 struct net_bridge *br = to_bridge(d); 519 519 520 - return sprintf(buf, "%u\n", br->multicast_ctx.multicast_igmp_version); 520 + return sysfs_emit(buf, "%u\n", br->multicast_ctx.multicast_igmp_version); 521 521 } 522 522 523 523 static int set_multicast_igmp_version(struct net_bridge *br, unsigned long val, ··· 539 539 char *buf) 540 540 { 541 541 struct net_bridge *br = to_bridge(d); 542 - return sprintf(buf, "%u\n", br->multicast_ctx.multicast_last_member_count); 542 + return sysfs_emit(buf, "%u\n", br->multicast_ctx.multicast_last_member_count); 543 543 } 544 544 545 545 static int set_last_member_count(struct net_bridge *br, unsigned long val, ··· 561 561 struct device *d, struct device_attribute *attr, char *buf) 562 562 { 563 563 struct net_bridge *br = to_bridge(d); 564 - return sprintf(buf, "%u\n", br->multicast_ctx.multicast_startup_query_count); 564 + return sysfs_emit(buf, "%u\n", br->multicast_ctx.multicast_startup_query_count); 565 565 } 566 566 567 567 static int set_startup_query_count(struct net_bridge *br, unsigned long val, ··· 583 583 struct device *d, struct device_attribute *attr, char *buf) 584 584 { 585 585 struct net_bridge *br = to_bridge(d); 586 - return sprintf(buf, "%lu\n", 587 - jiffies_to_clock_t(br->multicast_ctx.multicast_last_member_interval)); 586 + return sysfs_emit(buf, "%lu\n", 587 + jiffies_to_clock_t(br->multicast_ctx.multicast_last_member_interval)); 588 588 } 589 589 590 590 static int set_last_member_interval(struct net_bridge *br, unsigned long val, ··· 606 606 struct device *d, struct device_attribute *attr, char *buf) 607 607 { 608 608 struct net_bridge *br = to_bridge(d); 609 - return sprintf(buf, "%lu\n", 610 - jiffies_to_clock_t(br->multicast_ctx.multicast_membership_interval)); 609 + return sysfs_emit(buf, "%lu\n", 610 + jiffies_to_clock_t(br->multicast_ctx.multicast_membership_interval)); 611 611 } 612 612 613 613 static int set_membership_interval(struct net_bridge *br, unsigned long val, ··· 630 630 char *buf) 631 631 { 632 632 struct net_bridge *br = to_bridge(d); 633 - return sprintf(buf, "%lu\n", 634 - jiffies_to_clock_t(br->multicast_ctx.multicast_querier_interval)); 633 + return sysfs_emit(buf, "%lu\n", 634 + jiffies_to_clock_t(br->multicast_ctx.multicast_querier_interval)); 635 635 } 636 636 637 637 static int set_querier_interval(struct net_bridge *br, unsigned long val, ··· 654 654 char *buf) 655 655 { 656 656 struct net_bridge *br = to_bridge(d); 657 - return sprintf(buf, "%lu\n", 658 - jiffies_to_clock_t(br->multicast_ctx.multicast_query_interval)); 657 + return sysfs_emit(buf, "%lu\n", 658 + jiffies_to_clock_t(br->multicast_ctx.multicast_query_interval)); 659 659 } 660 660 661 661 static int set_query_interval(struct net_bridge *br, unsigned long val, ··· 677 677 struct device *d, struct device_attribute *attr, char *buf) 678 678 { 679 679 struct net_bridge *br = to_bridge(d); 680 - return sprintf( 681 - buf, "%lu\n", 682 - jiffies_to_clock_t(br->multicast_ctx.multicast_query_response_interval)); 680 + return sysfs_emit(buf, "%lu\n", 681 + jiffies_to_clock_t(br->multicast_ctx.multicast_query_response_interval)); 683 682 } 684 683 685 684 static int set_query_response_interval(struct net_bridge *br, unsigned long val, ··· 700 701 struct device *d, struct device_attribute *attr, char *buf) 701 702 { 702 703 struct net_bridge *br = to_bridge(d); 703 - return sprintf( 704 - buf, "%lu\n", 705 - jiffies_to_clock_t(br->multicast_ctx.multicast_startup_query_interval)); 704 + return sysfs_emit(buf, "%lu\n", 705 + jiffies_to_clock_t(br->multicast_ctx.multicast_startup_query_interval)); 706 706 } 707 707 708 708 static int set_startup_query_interval(struct net_bridge *br, unsigned long val, ··· 725 727 { 726 728 struct net_bridge *br = to_bridge(d); 727 729 728 - return sprintf(buf, "%d\n", 729 - br_opt_get(br, BROPT_MULTICAST_STATS_ENABLED)); 730 + return sysfs_emit(buf, "%d\n", 731 + br_opt_get(br, BROPT_MULTICAST_STATS_ENABLED)); 730 732 } 731 733 732 734 static int set_stats_enabled(struct net_bridge *br, unsigned long val, ··· 752 754 { 753 755 struct net_bridge *br = to_bridge(d); 754 756 755 - return sprintf(buf, "%u\n", br->multicast_ctx.multicast_mld_version); 757 + return sysfs_emit(buf, "%u\n", br->multicast_ctx.multicast_mld_version); 756 758 } 757 759 758 760 static int set_multicast_mld_version(struct net_bridge *br, unsigned long val, ··· 775 777 struct device *d, struct device_attribute *attr, char *buf) 776 778 { 777 779 struct net_bridge *br = to_bridge(d); 778 - return sprintf(buf, "%u\n", br_opt_get(br, BROPT_NF_CALL_IPTABLES)); 780 + return sysfs_emit(buf, "%u\n", br_opt_get(br, BROPT_NF_CALL_IPTABLES)); 779 781 } 780 782 781 783 static int set_nf_call_iptables(struct net_bridge *br, unsigned long val, ··· 797 799 struct device *d, struct device_attribute *attr, char *buf) 798 800 { 799 801 struct net_bridge *br = to_bridge(d); 800 - return sprintf(buf, "%u\n", br_opt_get(br, BROPT_NF_CALL_IP6TABLES)); 802 + return sysfs_emit(buf, "%u\n", br_opt_get(br, BROPT_NF_CALL_IP6TABLES)); 801 803 } 802 804 803 805 static int set_nf_call_ip6tables(struct net_bridge *br, unsigned long val, ··· 819 821 struct device *d, struct device_attribute *attr, char *buf) 820 822 { 821 823 struct net_bridge *br = to_bridge(d); 822 - return sprintf(buf, "%u\n", br_opt_get(br, BROPT_NF_CALL_ARPTABLES)); 824 + return sysfs_emit(buf, "%u\n", br_opt_get(br, BROPT_NF_CALL_ARPTABLES)); 823 825 } 824 826 825 827 static int set_nf_call_arptables(struct net_bridge *br, unsigned long val, ··· 843 845 char *buf) 844 846 { 845 847 struct net_bridge *br = to_bridge(d); 846 - return sprintf(buf, "%d\n", br_opt_get(br, BROPT_VLAN_ENABLED)); 848 + return sysfs_emit(buf, "%d\n", br_opt_get(br, BROPT_VLAN_ENABLED)); 847 849 } 848 850 849 851 static ssize_t vlan_filtering_store(struct device *d, ··· 859 861 char *buf) 860 862 { 861 863 struct net_bridge *br = to_bridge(d); 862 - return sprintf(buf, "%#06x\n", ntohs(br->vlan_proto)); 864 + return sysfs_emit(buf, "%#06x\n", ntohs(br->vlan_proto)); 863 865 } 864 866 865 867 static ssize_t vlan_protocol_store(struct device *d, ··· 875 877 char *buf) 876 878 { 877 879 struct net_bridge *br = to_bridge(d); 878 - return sprintf(buf, "%d\n", br->default_pvid); 880 + return sysfs_emit(buf, "%d\n", br->default_pvid); 879 881 } 880 882 881 883 static ssize_t default_pvid_store(struct device *d, ··· 891 893 char *buf) 892 894 { 893 895 struct net_bridge *br = to_bridge(d); 894 - return sprintf(buf, "%u\n", br_opt_get(br, BROPT_VLAN_STATS_ENABLED)); 896 + return sysfs_emit(buf, "%u\n", br_opt_get(br, BROPT_VLAN_STATS_ENABLED)); 895 897 } 896 898 897 899 static int set_vlan_stats_enabled(struct net_bridge *br, unsigned long val, ··· 913 915 char *buf) 914 916 { 915 917 struct net_bridge *br = to_bridge(d); 916 - return sprintf(buf, "%u\n", br_opt_get(br, BROPT_VLAN_STATS_PER_PORT)); 918 + return sysfs_emit(buf, "%u\n", br_opt_get(br, BROPT_VLAN_STATS_PER_PORT)); 917 919 } 918 920 919 921 static int set_vlan_stats_per_port(struct net_bridge *br, unsigned long val,
+16 -16
net/bridge/br_sysfs_if.c
··· 47 47 #define BRPORT_ATTR_FLAG(_name, _mask) \ 48 48 static ssize_t show_##_name(struct net_bridge_port *p, char *buf) \ 49 49 { \ 50 - return sprintf(buf, "%d\n", !!(p->flags & _mask)); \ 50 + return sysfs_emit(buf, "%d\n", !!(p->flags & _mask)); \ 51 51 } \ 52 52 static int store_##_name(struct net_bridge_port *p, unsigned long v) \ 53 53 { \ ··· 83 83 84 84 static ssize_t show_path_cost(struct net_bridge_port *p, char *buf) 85 85 { 86 - return sprintf(buf, "%d\n", p->path_cost); 86 + return sysfs_emit(buf, "%d\n", p->path_cost); 87 87 } 88 88 89 89 static BRPORT_ATTR(path_cost, 0644, ··· 91 91 92 92 static ssize_t show_priority(struct net_bridge_port *p, char *buf) 93 93 { 94 - return sprintf(buf, "%d\n", p->priority); 94 + return sysfs_emit(buf, "%d\n", p->priority); 95 95 } 96 96 97 97 static BRPORT_ATTR(priority, 0644, ··· 111 111 112 112 static ssize_t show_designated_port(struct net_bridge_port *p, char *buf) 113 113 { 114 - return sprintf(buf, "%d\n", p->designated_port); 114 + return sysfs_emit(buf, "%d\n", p->designated_port); 115 115 } 116 116 static BRPORT_ATTR(designated_port, 0444, show_designated_port, NULL); 117 117 118 118 static ssize_t show_designated_cost(struct net_bridge_port *p, char *buf) 119 119 { 120 - return sprintf(buf, "%d\n", p->designated_cost); 120 + return sysfs_emit(buf, "%d\n", p->designated_cost); 121 121 } 122 122 static BRPORT_ATTR(designated_cost, 0444, show_designated_cost, NULL); 123 123 124 124 static ssize_t show_port_id(struct net_bridge_port *p, char *buf) 125 125 { 126 - return sprintf(buf, "0x%x\n", p->port_id); 126 + return sysfs_emit(buf, "0x%x\n", p->port_id); 127 127 } 128 128 static BRPORT_ATTR(port_id, 0444, show_port_id, NULL); 129 129 130 130 static ssize_t show_port_no(struct net_bridge_port *p, char *buf) 131 131 { 132 - return sprintf(buf, "0x%x\n", p->port_no); 132 + return sysfs_emit(buf, "0x%x\n", p->port_no); 133 133 } 134 134 135 135 static BRPORT_ATTR(port_no, 0444, show_port_no, NULL); 136 136 137 137 static ssize_t show_change_ack(struct net_bridge_port *p, char *buf) 138 138 { 139 - return sprintf(buf, "%d\n", p->topology_change_ack); 139 + return sysfs_emit(buf, "%d\n", p->topology_change_ack); 140 140 } 141 141 static BRPORT_ATTR(change_ack, 0444, show_change_ack, NULL); 142 142 143 143 static ssize_t show_config_pending(struct net_bridge_port *p, char *buf) 144 144 { 145 - return sprintf(buf, "%d\n", p->config_pending); 145 + return sysfs_emit(buf, "%d\n", p->config_pending); 146 146 } 147 147 static BRPORT_ATTR(config_pending, 0444, show_config_pending, NULL); 148 148 149 149 static ssize_t show_port_state(struct net_bridge_port *p, char *buf) 150 150 { 151 - return sprintf(buf, "%d\n", p->state); 151 + return sysfs_emit(buf, "%d\n", p->state); 152 152 } 153 153 static BRPORT_ATTR(state, 0444, show_port_state, NULL); 154 154 155 155 static ssize_t show_message_age_timer(struct net_bridge_port *p, 156 156 char *buf) 157 157 { 158 - return sprintf(buf, "%ld\n", br_timer_value(&p->message_age_timer)); 158 + return sysfs_emit(buf, "%ld\n", br_timer_value(&p->message_age_timer)); 159 159 } 160 160 static BRPORT_ATTR(message_age_timer, 0444, show_message_age_timer, NULL); 161 161 162 162 static ssize_t show_forward_delay_timer(struct net_bridge_port *p, 163 163 char *buf) 164 164 { 165 - return sprintf(buf, "%ld\n", br_timer_value(&p->forward_delay_timer)); 165 + return sysfs_emit(buf, "%ld\n", br_timer_value(&p->forward_delay_timer)); 166 166 } 167 167 static BRPORT_ATTR(forward_delay_timer, 0444, show_forward_delay_timer, NULL); 168 168 169 169 static ssize_t show_hold_timer(struct net_bridge_port *p, 170 170 char *buf) 171 171 { 172 - return sprintf(buf, "%ld\n", br_timer_value(&p->hold_timer)); 172 + return sysfs_emit(buf, "%ld\n", br_timer_value(&p->hold_timer)); 173 173 } 174 174 static BRPORT_ATTR(hold_timer, 0444, show_hold_timer, NULL); 175 175 ··· 182 182 183 183 static ssize_t show_group_fwd_mask(struct net_bridge_port *p, char *buf) 184 184 { 185 - return sprintf(buf, "%#x\n", p->group_fwd_mask); 185 + return sysfs_emit(buf, "%#x\n", p->group_fwd_mask); 186 186 } 187 187 188 188 static int store_group_fwd_mask(struct net_bridge_port *p, ··· 205 205 rcu_read_lock(); 206 206 backup_p = rcu_dereference(p->backup_port); 207 207 if (backup_p) 208 - ret = sprintf(buf, "%s\n", backup_p->dev->name); 208 + ret = sysfs_emit(buf, "%s\n", backup_p->dev->name); 209 209 rcu_read_unlock(); 210 210 211 211 return ret; ··· 244 244 #ifdef CONFIG_BRIDGE_IGMP_SNOOPING 245 245 static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf) 246 246 { 247 - return sprintf(buf, "%d\n", p->multicast_ctx.multicast_router); 247 + return sysfs_emit(buf, "%d\n", p->multicast_ctx.multicast_router); 248 248 } 249 249 250 250 static int store_multicast_router(struct net_bridge_port *p,