diff options
author | Simon Glass <sjg@chromium.org> | 2015-07-06 16:47:55 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-07-21 17:39:41 -0600 |
commit | b86f795a378fdeb873cdc464367660fb3b49c443 (patch) | |
tree | 55eb85ffe39700247dc4b31b544d49abf33add96 /net | |
parent | fbc4b8af469459425de72530dbded0ddbe157004 (diff) |
net: Allow drivers to return -ENOSYS with the write_hwaddr() method
Some drivers may want to implement this method for some of their devices but
not for others. So it is not possible to just leave the operation out of
the table. Drivers could get around this by masquerading as two separate
drivers but that seems unpleasant.
Allow the driver to return an error when it does not want to process the
write_hwaddr() method.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/eth.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/eth.c b/net/eth.c index 72ce91c9d0b..d3ec8d64d59 100644 --- a/net/eth.c +++ b/net/eth.c @@ -287,7 +287,13 @@ static int eth_write_hwaddr(struct udevice *dev) return -EINVAL; } + /* + * Drivers are allowed to decide not to implement this at + * run-time. E.g. Some devices may use it and some may not. + */ ret = eth_get_ops(dev)->write_hwaddr(dev); + if (ret == -ENOSYS) + ret = 0; if (ret) printf("\nWarning: %s failed to set MAC address\n", dev->name); |