diff options
Diffstat (limited to 'drivers/net/bonding/bond_sysfs.c')
-rw-r--r-- | drivers/net/bonding/bond_sysfs.c | 66 |
1 files changed, 30 insertions, 36 deletions
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index b29330d8e309..a3f1b4afb40a 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c | |||
@@ -86,14 +86,13 @@ static ssize_t bonding_show_bonds(struct class *cls, char *buffer) | |||
86 | /* not enough space for another interface name */ | 86 | /* not enough space for another interface name */ |
87 | if ((PAGE_SIZE - res) > 10) | 87 | if ((PAGE_SIZE - res) > 10) |
88 | res = PAGE_SIZE - 10; | 88 | res = PAGE_SIZE - 10; |
89 | res += sprintf(buffer + res, "++more++"); | 89 | res += sprintf(buffer + res, "++more++ "); |
90 | break; | 90 | break; |
91 | } | 91 | } |
92 | res += sprintf(buffer + res, "%s ", | 92 | res += sprintf(buffer + res, "%s ", |
93 | bond->dev->name); | 93 | bond->dev->name); |
94 | } | 94 | } |
95 | res += sprintf(buffer + res, "\n"); | 95 | if (res) buffer[res-1] = '\n'; /* eat the leftover space */ |
96 | res++; | ||
97 | up_read(&(bonding_rwsem)); | 96 | up_read(&(bonding_rwsem)); |
98 | return res; | 97 | return res; |
99 | } | 98 | } |
@@ -235,14 +234,13 @@ static ssize_t bonding_show_slaves(struct device *d, | |||
235 | /* not enough space for another interface name */ | 234 | /* not enough space for another interface name */ |
236 | if ((PAGE_SIZE - res) > 10) | 235 | if ((PAGE_SIZE - res) > 10) |
237 | res = PAGE_SIZE - 10; | 236 | res = PAGE_SIZE - 10; |
238 | res += sprintf(buf + res, "++more++"); | 237 | res += sprintf(buf + res, "++more++ "); |
239 | break; | 238 | break; |
240 | } | 239 | } |
241 | res += sprintf(buf + res, "%s ", slave->dev->name); | 240 | res += sprintf(buf + res, "%s ", slave->dev->name); |
242 | } | 241 | } |
243 | read_unlock(&bond->lock); | 242 | read_unlock(&bond->lock); |
244 | res += sprintf(buf + res, "\n"); | 243 | if (res) buf[res-1] = '\n'; /* eat the leftover space */ |
245 | res++; | ||
246 | return res; | 244 | return res; |
247 | } | 245 | } |
248 | 246 | ||
@@ -406,7 +404,7 @@ static ssize_t bonding_show_mode(struct device *d, | |||
406 | 404 | ||
407 | return sprintf(buf, "%s %d\n", | 405 | return sprintf(buf, "%s %d\n", |
408 | bond_mode_tbl[bond->params.mode].modename, | 406 | bond_mode_tbl[bond->params.mode].modename, |
409 | bond->params.mode) + 1; | 407 | bond->params.mode); |
410 | } | 408 | } |
411 | 409 | ||
412 | static ssize_t bonding_store_mode(struct device *d, | 410 | static ssize_t bonding_store_mode(struct device *d, |
@@ -463,11 +461,11 @@ static ssize_t bonding_show_xmit_hash(struct device *d, | |||
463 | if ((bond->params.mode != BOND_MODE_XOR) && | 461 | if ((bond->params.mode != BOND_MODE_XOR) && |
464 | (bond->params.mode != BOND_MODE_8023AD)) { | 462 | (bond->params.mode != BOND_MODE_8023AD)) { |
465 | // Not Applicable | 463 | // Not Applicable |
466 | count = sprintf(buf, "NA\n") + 1; | 464 | count = sprintf(buf, "NA\n"); |
467 | } else { | 465 | } else { |
468 | count = sprintf(buf, "%s %d\n", | 466 | count = sprintf(buf, "%s %d\n", |
469 | xmit_hashtype_tbl[bond->params.xmit_policy].modename, | 467 | xmit_hashtype_tbl[bond->params.xmit_policy].modename, |
470 | bond->params.xmit_policy) + 1; | 468 | bond->params.xmit_policy); |
471 | } | 469 | } |
472 | 470 | ||
473 | return count; | 471 | return count; |
@@ -527,7 +525,7 @@ static ssize_t bonding_show_arp_validate(struct device *d, | |||
527 | 525 | ||
528 | return sprintf(buf, "%s %d\n", | 526 | return sprintf(buf, "%s %d\n", |
529 | arp_validate_tbl[bond->params.arp_validate].modename, | 527 | arp_validate_tbl[bond->params.arp_validate].modename, |
530 | bond->params.arp_validate) + 1; | 528 | bond->params.arp_validate); |
531 | } | 529 | } |
532 | 530 | ||
533 | static ssize_t bonding_store_arp_validate(struct device *d, | 531 | static ssize_t bonding_store_arp_validate(struct device *d, |
@@ -627,7 +625,7 @@ static ssize_t bonding_show_arp_interval(struct device *d, | |||
627 | { | 625 | { |
628 | struct bonding *bond = to_bond(d); | 626 | struct bonding *bond = to_bond(d); |
629 | 627 | ||
630 | return sprintf(buf, "%d\n", bond->params.arp_interval) + 1; | 628 | return sprintf(buf, "%d\n", bond->params.arp_interval); |
631 | } | 629 | } |
632 | 630 | ||
633 | static ssize_t bonding_store_arp_interval(struct device *d, | 631 | static ssize_t bonding_store_arp_interval(struct device *d, |
@@ -711,10 +709,7 @@ static ssize_t bonding_show_arp_targets(struct device *d, | |||
711 | res += sprintf(buf + res, "%u.%u.%u.%u ", | 709 | res += sprintf(buf + res, "%u.%u.%u.%u ", |
712 | NIPQUAD(bond->params.arp_targets[i])); | 710 | NIPQUAD(bond->params.arp_targets[i])); |
713 | } | 711 | } |
714 | if (res) | 712 | if (res) buf[res-1] = '\n'; /* eat the leftover space */ |
715 | res--; /* eat the leftover space */ | ||
716 | res += sprintf(buf + res, "\n"); | ||
717 | res++; | ||
718 | return res; | 713 | return res; |
719 | } | 714 | } |
720 | 715 | ||
@@ -815,7 +810,7 @@ static ssize_t bonding_show_downdelay(struct device *d, | |||
815 | { | 810 | { |
816 | struct bonding *bond = to_bond(d); | 811 | struct bonding *bond = to_bond(d); |
817 | 812 | ||
818 | return sprintf(buf, "%d\n", bond->params.downdelay * bond->params.miimon) + 1; | 813 | return sprintf(buf, "%d\n", bond->params.downdelay * bond->params.miimon); |
819 | } | 814 | } |
820 | 815 | ||
821 | static ssize_t bonding_store_downdelay(struct device *d, | 816 | static ssize_t bonding_store_downdelay(struct device *d, |
@@ -872,7 +867,7 @@ static ssize_t bonding_show_updelay(struct device *d, | |||
872 | { | 867 | { |
873 | struct bonding *bond = to_bond(d); | 868 | struct bonding *bond = to_bond(d); |
874 | 869 | ||
875 | return sprintf(buf, "%d\n", bond->params.updelay * bond->params.miimon) + 1; | 870 | return sprintf(buf, "%d\n", bond->params.updelay * bond->params.miimon); |
876 | 871 | ||
877 | } | 872 | } |
878 | 873 | ||
@@ -936,7 +931,7 @@ static ssize_t bonding_show_lacp(struct device *d, | |||
936 | 931 | ||
937 | return sprintf(buf, "%s %d\n", | 932 | return sprintf(buf, "%s %d\n", |
938 | bond_lacp_tbl[bond->params.lacp_fast].modename, | 933 | bond_lacp_tbl[bond->params.lacp_fast].modename, |
939 | bond->params.lacp_fast) + 1; | 934 | bond->params.lacp_fast); |
940 | } | 935 | } |
941 | 936 | ||
942 | static ssize_t bonding_store_lacp(struct device *d, | 937 | static ssize_t bonding_store_lacp(struct device *d, |
@@ -992,7 +987,7 @@ static ssize_t bonding_show_miimon(struct device *d, | |||
992 | { | 987 | { |
993 | struct bonding *bond = to_bond(d); | 988 | struct bonding *bond = to_bond(d); |
994 | 989 | ||
995 | return sprintf(buf, "%d\n", bond->params.miimon) + 1; | 990 | return sprintf(buf, "%d\n", bond->params.miimon); |
996 | } | 991 | } |
997 | 992 | ||
998 | static ssize_t bonding_store_miimon(struct device *d, | 993 | static ssize_t bonding_store_miimon(struct device *d, |
@@ -1083,9 +1078,9 @@ static ssize_t bonding_show_primary(struct device *d, | |||
1083 | struct bonding *bond = to_bond(d); | 1078 | struct bonding *bond = to_bond(d); |
1084 | 1079 | ||
1085 | if (bond->primary_slave) | 1080 | if (bond->primary_slave) |
1086 | count = sprintf(buf, "%s\n", bond->primary_slave->dev->name) + 1; | 1081 | count = sprintf(buf, "%s\n", bond->primary_slave->dev->name); |
1087 | else | 1082 | else |
1088 | count = sprintf(buf, "\n") + 1; | 1083 | count = sprintf(buf, "\n"); |
1089 | 1084 | ||
1090 | return count; | 1085 | return count; |
1091 | } | 1086 | } |
@@ -1149,7 +1144,7 @@ static ssize_t bonding_show_carrier(struct device *d, | |||
1149 | { | 1144 | { |
1150 | struct bonding *bond = to_bond(d); | 1145 | struct bonding *bond = to_bond(d); |
1151 | 1146 | ||
1152 | return sprintf(buf, "%d\n", bond->params.use_carrier) + 1; | 1147 | return sprintf(buf, "%d\n", bond->params.use_carrier); |
1153 | } | 1148 | } |
1154 | 1149 | ||
1155 | static ssize_t bonding_store_carrier(struct device *d, | 1150 | static ssize_t bonding_store_carrier(struct device *d, |
@@ -1198,9 +1193,9 @@ static ssize_t bonding_show_active_slave(struct device *d, | |||
1198 | read_unlock(&bond->curr_slave_lock); | 1193 | read_unlock(&bond->curr_slave_lock); |
1199 | 1194 | ||
1200 | if (USES_PRIMARY(bond->params.mode) && curr) | 1195 | if (USES_PRIMARY(bond->params.mode) && curr) |
1201 | count = sprintf(buf, "%s\n", curr->dev->name) + 1; | 1196 | count = sprintf(buf, "%s\n", curr->dev->name); |
1202 | else | 1197 | else |
1203 | count = sprintf(buf, "\n") + 1; | 1198 | count = sprintf(buf, "\n"); |
1204 | return count; | 1199 | return count; |
1205 | } | 1200 | } |
1206 | 1201 | ||
@@ -1295,7 +1290,7 @@ static ssize_t bonding_show_mii_status(struct device *d, | |||
1295 | curr = bond->curr_active_slave; | 1290 | curr = bond->curr_active_slave; |
1296 | read_unlock(&bond->curr_slave_lock); | 1291 | read_unlock(&bond->curr_slave_lock); |
1297 | 1292 | ||
1298 | return sprintf(buf, "%s\n", (curr) ? "up" : "down") + 1; | 1293 | return sprintf(buf, "%s\n", (curr) ? "up" : "down"); |
1299 | } | 1294 | } |
1300 | static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL); | 1295 | static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL); |
1301 | 1296 | ||
@@ -1312,10 +1307,10 @@ static ssize_t bonding_show_ad_aggregator(struct device *d, | |||
1312 | 1307 | ||
1313 | if (bond->params.mode == BOND_MODE_8023AD) { | 1308 | if (bond->params.mode == BOND_MODE_8023AD) { |
1314 | struct ad_info ad_info; | 1309 | struct ad_info ad_info; |
1315 | count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.aggregator_id) + 1; | 1310 | count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.aggregator_id); |
1316 | } | 1311 | } |
1317 | else | 1312 | else |
1318 | count = sprintf(buf, "\n") + 1; | 1313 | count = sprintf(buf, "\n"); |
1319 | 1314 | ||
1320 | return count; | 1315 | return count; |
1321 | } | 1316 | } |
@@ -1334,10 +1329,10 @@ static ssize_t bonding_show_ad_num_ports(struct device *d, | |||
1334 | 1329 | ||
1335 | if (bond->params.mode == BOND_MODE_8023AD) { | 1330 | if (bond->params.mode == BOND_MODE_8023AD) { |
1336 | struct ad_info ad_info; | 1331 | struct ad_info ad_info; |
1337 | count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0: ad_info.ports) + 1; | 1332 | count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0: ad_info.ports); |
1338 | } | 1333 | } |
1339 | else | 1334 | else |
1340 | count = sprintf(buf, "\n") + 1; | 1335 | count = sprintf(buf, "\n"); |
1341 | 1336 | ||
1342 | return count; | 1337 | return count; |
1343 | } | 1338 | } |
@@ -1356,10 +1351,10 @@ static ssize_t bonding_show_ad_actor_key(struct device *d, | |||
1356 | 1351 | ||
1357 | if (bond->params.mode == BOND_MODE_8023AD) { | 1352 | if (bond->params.mode == BOND_MODE_8023AD) { |
1358 | struct ad_info ad_info; | 1353 | struct ad_info ad_info; |
1359 | count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.actor_key) + 1; | 1354 | count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.actor_key); |
1360 | } | 1355 | } |
1361 | else | 1356 | else |
1362 | count = sprintf(buf, "\n") + 1; | 1357 | count = sprintf(buf, "\n"); |
1363 | 1358 | ||
1364 | return count; | 1359 | return count; |
1365 | } | 1360 | } |
@@ -1378,10 +1373,10 @@ static ssize_t bonding_show_ad_partner_key(struct device *d, | |||
1378 | 1373 | ||
1379 | if (bond->params.mode == BOND_MODE_8023AD) { | 1374 | if (bond->params.mode == BOND_MODE_8023AD) { |
1380 | struct ad_info ad_info; | 1375 | struct ad_info ad_info; |
1381 | count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.partner_key) + 1; | 1376 | count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.partner_key); |
1382 | } | 1377 | } |
1383 | else | 1378 | else |
1384 | count = sprintf(buf, "\n") + 1; | 1379 | count = sprintf(buf, "\n"); |
1385 | 1380 | ||
1386 | return count; | 1381 | return count; |
1387 | } | 1382 | } |
@@ -1403,12 +1398,11 @@ static ssize_t bonding_show_ad_partner_mac(struct device *d, | |||
1403 | struct ad_info ad_info; | 1398 | struct ad_info ad_info; |
1404 | if (!bond_3ad_get_active_agg_info(bond, &ad_info)) { | 1399 | if (!bond_3ad_get_active_agg_info(bond, &ad_info)) { |
1405 | count = sprintf(buf,"%s\n", | 1400 | count = sprintf(buf,"%s\n", |
1406 | print_mac(mac, ad_info.partner_system)) | 1401 | print_mac(mac, ad_info.partner_system)); |
1407 | + 1; | ||
1408 | } | 1402 | } |
1409 | } | 1403 | } |
1410 | else | 1404 | else |
1411 | count = sprintf(buf, "\n") + 1; | 1405 | count = sprintf(buf, "\n"); |
1412 | 1406 | ||
1413 | return count; | 1407 | return count; |
1414 | } | 1408 | } |