S2io: Statistics fix
Subsystems (3)
PATCH 1/3 S2io: Statistics fix
Hello,
Below patch fixes the statistics problem on big-endian systems(such as IBM PPC).
Basically, the problem was "ethtool -s" was reporting huge values on counters like no. of Tx frames, no. of Rx packets etc. The fix has been tested on little-endian and big-endian systems.
Thanks,
Ravi
Signed-off-by Ravinandan Arakali <[email protected]>
---
drivers/net/s2io.c +39 -39
@@ -3920,45 +3920,45 @@nic_t *sp = dev->priv;StatInfo_t *stat_info = sp->mac_control.stats_info; - tmp_stats[i++] = stat_info->tmac_frms; - tmp_stats[i++] = stat_info->tmac_data_octets; - tmp_stats[i++] = stat_info->tmac_drop_frms; - tmp_stats[i++] = stat_info->tmac_mcst_frms; - tmp_stats[i++] = stat_info->tmac_bcst_frms; - tmp_stats[i++] = stat_info->tmac_pause_ctrl_frms; - tmp_stats[i++] = stat_info->tmac_any_err_frms; - tmp_stats[i++] = stat_info->tmac_vld_ip_octets; - tmp_stats[i++] = stat_info->tmac_vld_ip; - tmp_stats[i++] = stat_info->tmac_drop_ip; - tmp_stats[i++] = stat_info->tmac_icmp; - tmp_stats[i++] = stat_info->tmac_rst_tcp; - tmp_stats[i++] = stat_info->tmac_tcp; - tmp_stats[i++] = stat_info->tmac_udp; - tmp_stats[i++] = stat_info->rmac_vld_frms; - tmp_stats[i++] = stat_info->rmac_data_octets; - tmp_stats[i++] = stat_info->rmac_fcs_err_frms; - tmp_stats[i++] = stat_info->rmac_drop_frms; - tmp_stats[i++] = stat_info->rmac_vld_mcst_frms; - tmp_stats[i++] = stat_info->rmac_vld_bcst_frms; - tmp_stats[i++] = stat_info->rmac_in_rng_len_err_frms; - tmp_stats[i++] = stat_info->rmac_long_frms; - tmp_stats[i++] = stat_info->rmac_pause_ctrl_frms; - tmp_stats[i++] = stat_info->rmac_discarded_frms; - tmp_stats[i++] = stat_info->rmac_usized_frms; - tmp_stats[i++] = stat_info->rmac_osized_frms; - tmp_stats[i++] = stat_info->rmac_frag_frms; - tmp_stats[i++] = stat_info->rmac_jabber_frms; - tmp_stats[i++] = stat_info->rmac_ip; - tmp_stats[i++] = stat_info->rmac_ip_octets; - tmp_stats[i++] = stat_info->rmac_hdr_err_ip; - tmp_stats[i++] = stat_info->rmac_drop_ip; - tmp_stats[i++] = stat_info->rmac_icmp; - tmp_stats[i++] = stat_info->rmac_tcp; - tmp_stats[i++] = stat_info->rmac_udp; - tmp_stats[i++] = stat_info->rmac_err_drp_udp; - tmp_stats[i++] = stat_info->rmac_pause_cnt; - tmp_stats[i++] = stat_info->rmac_accepted_ip; - tmp_stats[i++] = stat_info->rmac_err_tcp; + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_data_octets); + tmp_stats[i++] =le64_to_cpu (stat_info->tmac_drop_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_mcst_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_bcst_frms); + tmp_stats[i++] =le64_to_cpu (stat_info->tmac_pause_ctrl_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_any_err_frms); + tmp_stats[i++] =le64_to_cpu (stat_info->tmac_vld_ip_octets); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_vld_ip); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_drop_ip); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_icmp); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_rst_tcp); + tmp_stats[i++] =le64_to_cpu (stat_info->tmac_tcp); + tmp_stats[i++] =le32_to_cpu (stat_info->tmac_udp); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_vld_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_data_octets); + tmp_stats[i++] =le64_to_cpu (stat_info->rmac_fcs_err_frms); + tmp_stats[i++] =le64_to_cpu (stat_info->rmac_drop_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_vld_mcst_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_vld_bcst_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_in_rng_len_err_frms); + tmp_stats[i++] =le64_to_cpu (stat_info->rmac_long_frms); + tmp_stats[i++] =le64_to_cpu (stat_info->rmac_pause_ctrl_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_discarded_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_usized_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_osized_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_frag_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_jabber_frms); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_ip); + tmp_stats[i++] =le64_to_cpu (stat_info->rmac_ip_octets); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_hdr_err_ip); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_drop_ip); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_icmp); + tmp_stats[i++] =le64_to_cpu (stat_info->rmac_tcp); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_udp); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_err_drp_udp); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_pause_cnt); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_accepted_ip); + tmp_stats[i++] =le32_to_cpu (stat_info->rmac_err_tcp); }static int s2io_ethtool_get_regs_len (struct net_device *dev)
drivers/net/s2io.h +0 -116
128 lines not on this page · raw message
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
applied 1-3
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors