On Fri, Jan 08, 2021 at 06:31:54PM +0200, Vladimir Oltean wrote: > From: Vladimir Oltean <vladimir.olt...@nxp.com> > > dev_get_stats can now return error codes. Take the remaining call sites > where those errors can be propagated, which are all trivial, and convert > them to look at that error code and stop processing. > > The effects of simulating a kernel error (returning -ENOMEM) upon > existing programs or kernel interfaces: > > - cat /proc/net/dev prints up until the interface that failed, and there > it returns: > cat: read error: Cannot allocate memory > > - ifstat simply returns this and prints nothing: > Error: Buffer too small for object. > Dump terminated > > - ip -s -s link show behaves the same as ifstat.
Note that at first I did not understand why ifstat and "ip -s -s link show" return this message. But in the meantime I figured that it was due to rtnetlink still returning -EMSGSIZE. That is fixed in this patch series, but I forgot to update the commit message to reflect it. The current output from these two commands is: $ ifstat RTNETLINK answers: Cannot allocate memory Dump terminated $ ip -s -s link show RTNETLINK answers: Cannot allocate memory Dump terminated > > - ifconfig prints only the info for the interfaces whose statistics did > not fail. > > Signed-off-by: Vladimir Oltean <vladimir.olt...@nxp.com> > --- > Changes in v5: > - Actually propagate errors from bonding and net_failover from within > this patch. > - Properly propagating the dev_get_stats() error code from > rtnl_fill_stats now, and not -EMSGSIZE. > > Changes in v4: > Patch is new (Eric's suggestion).