diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2018-04-25 16:21:51 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-04-27 13:14:44 -0400 |
commit | 1f3ccc3c3fc26468be00392ef0b2c215f9c9d054 (patch) | |
tree | 18ebf5096f3245e128f803cfdefd7c8df98687bd /net | |
parent | 9faedd643fd9f3a53f10ca270d3bbd436b908766 (diff) |
net: systemport: Correclty disambiguate driver instances
While adding the DSA notifier, we will be sending DSA notifications with
info->master that is going to point to a particular net_device instance.
Our logic in bcm_sysport_map_queues() correctly disambiguates net_device
instances that are not covered by our own driver, but it will not make
sure that info->master points to a particular driver instance that we
are interested in. In a system where e.g: two or more SYSTEMPORT
instances are registered, this would lead in programming two or more
times the queue mapping, completely messing with the logic which does
the queue/port allocation and tracking.
Fix this by looking at the notifier_block pointer which is unique per
instance and allows us to go back to our driver private structure, and
in turn to the backing net_device instance.
Fixes: d156576362c0 ("net: systemport: Establish lower/upper queue mapping")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions