mirror of
https://github.com/torvalds/linux.git
synced 2025-11-09 21:20:04 +02:00
Rather than reading the stats64 counters directly from the 32-bit
hardware, it's better to rely on the output produced by the periodic
ocelot_port_update_stats().
It would be even better to call ocelot_port_update_stats() right from
ocelot_get_stats64() to make sure we report the current values rather
than the ones from 2 seconds ago. But we need to export
ocelot_port_update_stats() from the switch lib towards the switchdev
driver for that, and future work will largely undo that.
There are more ocelot-based drivers waiting to be introduced, an example
of which is the SPI-controlled VSC7512. In that driver's case, it will
be impossible to call ocelot_port_update_stats() from ndo_get_stats64
context, since the latter is atomic, and reading the stats over SPI is
sleepable. So the compromise taken here, which will also hold going
forward, is to report 64-bit counters to stats64, which are not 100% up
to date.
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| ocelot.c | ||
| ocelot.h | ||
| ocelot_devlink.c | ||
| ocelot_fdma.c | ||
| ocelot_fdma.h | ||
| ocelot_flower.c | ||
| ocelot_io.c | ||
| ocelot_mrp.c | ||
| ocelot_net.c | ||
| ocelot_police.c | ||
| ocelot_police.h | ||
| ocelot_ptp.c | ||
| ocelot_qs.h | ||
| ocelot_rew.h | ||
| ocelot_vcap.c | ||
| ocelot_vcap.h | ||
| ocelot_vsc7514.c | ||
| vsc7514_regs.c | ||