Thread (18 messages) 18 messages, 5 authors, 2012-03-01

Re: [PATCH 2/8] bnx2x: adopt bnx2x_validate_addr() to .ndo_validate_addr changes

From: Dmitry Kravkov <hidden>
Date: 2012-02-29 17:20:37
Also in: lkml

On Wed, 2012-02-29 at 18:08 +0100, Danny Kukawka wrote:
On Mittwoch, 29. Februar 2012, Dmitry Kravkov wrote:
quoted
On Wed, 2012-02-29 at 16:42 +0100, Danny Kukawka wrote:
quoted
Adopted bnx2x_validate_addr() to changes in .ndo_validate_addr,
handle second parameter to be validated.

Signed-off-by: Danny Kukawka <redacted>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index b4afef6..d25ef1e
100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -10532,12 +10532,19 @@ static void poll_bnx2x(struct net_device *dev)
 }
 #endif

-static int bnx2x_validate_addr(struct net_device *dev)
+static int bnx2x_validate_addr(struct net_device *dev, void *addr)
 {
 	struct bnx2x *bp = netdev_priv(dev);
+	struct sockaddr *saddr;

-	if (!bnx2x_is_valid_ether_addr(bp, dev->dev_addr))
-		return -EADDRNOTAVAIL;
+	if (addr) {
+		saddr = addr;
+		if (!bnx2x_is_valid_ether_addr(bp, saddr->sa_data))
+			return -EADDRNOTAVAIL;
+	} else {
+		if (!bnx2x_is_valid_ether_addr(bp, dev->dev_addr))
+			return -EADDRNOTAVAIL;
+	}
 	return 0;
 }
Isn't it preferred to calculate the correct address for test and then
call bnx2x_is_valid_ether_addr() at the end?
Do you mean something like this: 
BUT:
int eth_validate_addr(struct net_device *dev, void *addr)
{
You still need to extract bp here:
	struct bnx2x *bp = netdev_priv(dev);
 u8 *vaddr;

 if (addr)
    vaddr = ((struct sockaddr *) addr)->sa_data;
 else
    vaddr = dev->dev_addr;

 if (!is_valid_ether_addr(vaddr))
and call internal function here:
	if (!bnx2x_is_valid_ether_addr(bp, vaddr))
    return -EADDRNOTAVAIL;

 return 0;
}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help