linux/drivers
Corinna Vinschen 6e85d5ad36 r8169: Add values missing in @get_stats64 from HW counters
The r8169 driver collects statistical information returned by
@get_stats64 by counting them in the driver itself, even though many
(but not all) of the values are already collected by tally counters
(TCs) in the NIC.  Some of these TC values are not returned by
@get_stats64.  Especially the received multicast packages are missing
from /proc/net/dev.

Rectify this by fetching the TCs and returning them from
rtl8169_get_stats64.

The counters collected in the driver obviously disappear as soon as the
driver is unloaded so after a driver is loaded the counters always start
at 0. The TCs on the other hand are only reset by a power cycle.  Without
further considerations the values collected by the driver would not match
up against the TC values.

This patch introduces a new function rtl8169_reset_counters which
resets the TCs.  Also, since rtl8169_reset_counters shares most of
its code with rtl8169_update_counters, refactor the shared code into
two new functions  rtl8169_map_counters and rtl8169_unmap_counters.

Unfortunately chip versions prior to RTL_GIGA_MAC_VER_19 don't allow
to reset the TCs programatically.  Therefore introduce an addition to
the rtl8169_private struct and a function rtl8169_init_counter_offsets
to store the TCs at first rtl_open.  Use these values as offsets in
rtl8169_get_stats64.  Propagate a failure to reset *and* update the
counters up to rtl_open and emit a warning message, if so.

Signed-off-by: Corinna Vinschen <vinschen@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-08-25 16:02:35 -07:00
..
accessibility
acpi ACPI / video: Fix circular lock dependency issue in the video-detect code 2015-08-14 11:20:20 +02:00
amba
android
ata Merge branch 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2015-08-17 16:20:45 -07:00
atm
auxdisplay
base device property: Add ETH_ALEN check, update comments. 2015-08-20 14:36:25 -07:00
bcma bcma: switch GPIO portions to use GPIOLIB_IRQCHIP 2015-08-18 09:08:47 +03:00
block zram: fix pool name truncation 2015-08-14 15:56:32 -07:00
bluetooth Bluetooth: btusb: mark 0c10:0000 devices with BTUSB_SWAVE 2015-08-15 23:25:25 +02:00
bus ARM: SoC: driver updates for v4.2 2015-06-26 11:54:29 -07:00
cdrom
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2015-08-03 10:53:58 -07:00
clk A one-liner for a regression found in the PXA clock driver. 2015-08-14 16:10:04 -07:00
clocksource clockevents/drivers/sh_cmt: Only perform clocksource suspend/resume if enabled 2015-08-08 10:50:08 +02:00
connector
cpufreq cpufreq: exynos: Fix for memory leak in case SoC name does not match 2015-08-14 11:33:47 +02:00
cpuidle suspend-to-idle: Prevent RCU from complaining about tick_freeze() 2015-07-09 22:59:49 +02:00
crypto crypto: caam - fix memory corruption in ahash_final_ctx 2015-08-13 15:08:25 +08:00
dca
devfreq
dio
dma dmaengine: fix balance of privatecnt inc/dec operations 2015-08-17 22:47:43 +05:30
dma-buf
edac EDAC, ppc4xx: Access mci->csrows array elements properly 2015-08-13 06:02:19 +02:00
eisa
extcon extcon: Fix extcon_cable_get_state() from getting old state after notification 2015-07-31 15:18:41 +09:00
firewire
firmware efi: Check for NULL efi kernel parameters 2015-07-30 18:07:11 +01:00
fmc
gpio Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-07-18 10:27:12 -07:00
gpu Merge tag 'topic/drm-fixes-2015-08-14' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-08-15 14:52:12 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2015-08-10 15:16:48 -07:00
hsi Fix up implicit <module.h> users that will break later. 2015-07-02 10:25:22 -07:00
hv
hwmon hwmon: (g762) Export OF module alias information 2015-08-05 08:31:59 -07:00
hwspinlock hwspinlock: qcom: Correct msb in regmap_field 2015-07-01 16:15:05 +03:00
hwtracing/coresight
i2c i2c: fix leaked device refcount on of_find_i2c_* error path 2015-08-01 12:11:58 +02:00
ide Minor merge needed, due to function move. 2015-07-01 10:49:25 -07:00
idle
iio iio:light:stk3310: make endianness independent of host 2015-07-19 14:54:45 +01:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-08-21 11:44:04 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2015-08-09 09:38:42 +02:00
iommu iommu/amd: Allow non-ATS devices in IOMMUv2 domains 2015-07-31 15:15:41 +02:00
ipack
irqchip MIPS: SMP: Don't increment irq_count multiple times for call function IPIs 2015-08-03 09:25:12 +02:00
isdn isdn: Remove reverse_bits(), use revbit8() 2015-08-10 14:29:04 -07:00
leds Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2015-07-01 19:09:11 -07:00
lguest Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-06-22 17:59:09 -07:00
macintosh macintosh/ans-lcd: fix build failure after module_init/exit relocation 2015-07-23 20:00:35 +10:00
mailbox Replace module_init with appropriate alternate initcall in non modules. 2015-07-02 10:36:29 -07:00
mcb
md dm cache policy smq: move 'dm-cache-default' module alias to SMQ 2015-08-12 11:27:29 -04:00
media x86/mm/pat, drivers/media/ivtv: Move the PAT warning and replace WARN() with pr_warn() 2015-07-21 09:42:54 +02:00
memory memory: omap-gpmc: Don't try to save uninitialized GPMC context 2015-08-12 01:43:49 -07:00
memstick memstick: remove deprecated use of pci api 2015-06-30 19:44:57 -07:00
message
mfd - Fix dependency issues on ChromeOS platforms 2015-08-10 10:48:11 -07:00
misc Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2015-08-03 14:51:30 -07:00
mmc mmc: sdhci-pxav3: fix platform_data is not initialized 2015-07-24 10:18:39 +02:00
mtd Minor merge needed, due to function move. 2015-07-01 10:49:25 -07:00
net r8169: Add values missing in @get_stats64 from HW counters 2015-08-25 16:02:35 -07:00
nfc nfc: s3fwrn5: Add driver for Samsung S3FWRN5 NFC Chip 2015-08-20 21:23:39 +02:00
ntb ntb: avoid format string in dev_set_name 2015-08-09 16:32:22 -04:00
nubus
nvdimm libnvdimm: fix namespace seed creation 2015-07-25 09:57:56 -07:00
of Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-07-31 23:52:20 -07:00
oprofile
parisc
parport parport: Revert "parport: fix memory leak" 2015-07-25 12:48:05 -07:00
pci Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-07-01 15:19:35 -07:00
pcmcia Fix up implicit <module.h> users that will break later. 2015-07-02 10:25:22 -07:00
phy phy: ti-pipe3: i783 workaround for SATA lockup after dpll unlock/relock 2015-08-01 15:52:58 +05:30
pinctrl Pin control fixes for the v4.2 series: 2015-07-21 15:27:27 -07:00
platform - Fix dependency issues on ChromeOS platforms 2015-08-10 10:48:11 -07:00
pnp ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage 2015-07-06 23:52:21 +02:00
power Replace module_platform_driver with builtin_platform driver in non modules. 2015-07-02 10:42:13 -07:00
powercap
pps
ps3
ptp
pwm pwm: Changes for v4.2-rc1 2015-06-23 13:32:38 -07:00
rapidio Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2015-06-23 14:08:54 -07:00
ras
regulator Merge remote-tracking branches 'regulator/fix/88pm800', 'regulator/fix/max8973', 'regulator/fix/s2mps11' and 'regulator/fix/supply' into regulator-linus 2015-07-24 16:19:25 +01:00
remoteproc remoteproc: fix !CONFIG_OF build breakage 2015-06-18 11:44:41 +03:00
reset
rpmsg
rtc rtc: armada38x: Remove unused variable from armada38x_rtc_set_time() 2015-07-18 00:42:31 +02:00
s390 virtio/vhost: fixes for 4.2 2015-07-23 13:07:04 -07:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-08-21 11:44:04 -07:00
sfi
sh Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-07-01 15:19:35 -07:00
sn
soc ARM: SoC: late fixes and dependencies 2015-07-02 14:40:49 -07:00
spi Merge remote-tracking branches 'spi/fix/gqspi', 'spi/fix/imx', 'spi/fix/mg-spfi' and 'spi/fix/spidev' into spi-linus 2015-07-24 16:19:50 +01:00
spmi
ssb
staging staging: wilc1000: convert to using IFF_NO_QUEUE 2015-08-18 11:55:07 -07:00
target target: Fix handling of small allocation lengths in REPORT LUNS 2015-08-18 21:51:54 -07:00
tc
thermal thermal/cpu_cooling: update policy limits if clipped_freq < policy->max 2015-08-14 18:26:23 -07:00
thunderbolt
tty tty: vt: Fix !TASK_RUNNING diagnostic warning from paste_selection() 2015-07-23 18:08:29 -07:00
uio
usb drivers/usb: Delete XHCI command timer if necessary 2015-08-03 14:41:48 -07:00
uwb
vfio vfio: Fix lockdep issue 2015-07-24 15:14:04 -06:00
vhost vhost: fix error handling for memory region alloc 2015-07-27 18:05:05 +03:00
video fbcon: unconditionally initialize cursor blink interval 2015-08-10 17:20:32 +03:00
virt
virtio virtio-input: reset device and detach unused during remove 2015-08-06 10:40:35 +03:00
vlynq
vme
w1
watchdog Update Viresh Kumar's email address 2015-07-17 16:39:53 -07:00
xen xen: bug fixes for 4.2-rc6 2015-08-13 13:36:22 -07:00
zorro
Kconfig libnvdimm, nfit: initial libnvdimm infrastructure and NFIT support 2015-06-24 21:24:10 -04:00
Makefile The libnvdimm sub-system introduces, in addition to the libnvdimm-core, 2015-06-29 10:34:42 -07:00