Since it's forbidden to use a multicast address as ethernet address, the driver should check the addresses before they got written.
Signed-off-by: Daniel Schultz <d.schu...@phytec.de> --- arch/arm/mach-imx/ocotp.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm/mach-imx/ocotp.c b/arch/arm/mach-imx/ocotp.c index 9efa46a..f8978c0 100644 --- a/arch/arm/mach-imx/ocotp.c +++ b/arch/arm/mach-imx/ocotp.c @@ -452,6 +452,12 @@ static int imx_ocotp_set_mac(unsigned int mac_no, struct param_d *param, for (i = 0; i < 6; i++) buf[5 - i + offset] = ocotp_priv->ethaddr[mac_no][i]; + if (0x01 & buf[5 + offset]) { + dev_err(&ocotp_priv->dev, + "this MAC address is a broadcast/multicast\n"); + return -EINVAL; + } + ret = regmap_bulk_write(ocotp_priv->map, (mac_no == 0) ? MAC0_OFFSET : MAC1_OFFSET, buf, MAC_BYTES); -- 1.9.1 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox