Changeset 26843


Ignore:
Timestamp:
2011-05-07T14:40:26+02:00 (7 years ago)
Author:
juhosg
Message:

ar71xx: ag71xx: use dynamically allocated buffer for napi_stats

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_debugfs.c

    r26842 r26843  
    100100        struct ag71xx *ag = file->private_data; 
    101101        struct ag71xx_napi_stats *stats = &ag->debug.napi_stats; 
    102         char buf[2048]; 
     102        char *buf; 
     103        unsigned int buflen; 
    103104        unsigned int len = 0; 
    104105        unsigned long rx_avg = 0; 
    105106        unsigned long tx_avg = 0; 
     107        int ret; 
    106108        int i; 
     109 
     110        buflen = 2048; 
     111        buf = kmalloc(buflen, GFP_KERNEL); 
     112        if (!buf) 
     113                return -ENOMEM; 
    107114 
    108115        if (stats->rx_count) 
     
    112119                tx_avg = stats->tx_packets / stats->tx_count; 
    113120 
    114         len += snprintf(buf + len, sizeof(buf) - len, "%3s  %10s %10s\n", 
     121        len += snprintf(buf + len, buflen - len, "%3s  %10s %10s\n", 
    115122                        "len", "rx", "tx"); 
    116123 
    117124        for (i = 1; i <= AG71XX_NAPI_WEIGHT; i++) 
    118                 len += snprintf(buf + len, sizeof(buf) - len, 
     125                len += snprintf(buf + len, buflen - len, 
    119126                                "%3d: %10lu %10lu\n", 
    120127                                i, stats->rx[i], stats->tx[i]); 
    121128 
    122         len += snprintf(buf + len, sizeof(buf) - len, "\n"); 
     129        len += snprintf(buf + len, buflen - len, "\n"); 
    123130 
    124         len += snprintf(buf + len, sizeof(buf) - len, "%3s: %10lu %10lu\n", 
     131        len += snprintf(buf + len, buflen - len, "%3s: %10lu %10lu\n", 
    125132                        "sum", stats->rx_count, stats->tx_count); 
    126         len += snprintf(buf + len, sizeof(buf) - len, "%3s: %10lu %10lu\n", 
     133        len += snprintf(buf + len, buflen - len, "%3s: %10lu %10lu\n", 
    127134                        "avg", rx_avg, tx_avg); 
    128         len += snprintf(buf + len, sizeof(buf) - len, "%3s: %10lu %10lu\n", 
     135        len += snprintf(buf + len, buflen - len, "%3s: %10lu %10lu\n", 
    129136                        "max", stats->rx_packets_max, stats->tx_packets_max); 
    130         len += snprintf(buf + len, sizeof(buf) - len, "%3s: %10lu %10lu\n", 
     137        len += snprintf(buf + len, buflen - len, "%3s: %10lu %10lu\n", 
    131138                        "pkt", stats->rx_packets, stats->tx_packets); 
    132139 
    133         return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
     140        ret = simple_read_from_buffer(user_buf, count, ppos, buf, len); 
     141        kfree(buf); 
     142 
     143        return ret; 
    134144} 
    135145 
Note: See TracChangeset for help on using the changeset viewer.