summaryrefslogtreecommitdiffstats
path: root/drivers/staging/vt6656/mac.c
diff options
context:
space:
mode:
authorMalcolm Priestley <tvboxspy@gmail.com>2014-02-12 19:18:26 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-14 09:20:51 -0800
commit0ca3e288ddd5b9a42728cdb984a68d86d45dd09a (patch)
tree469b1db39d24cded8c674b1f88d627499f4638d1 /drivers/staging/vt6656/mac.c
parentbacb6de62cce0af3be40248c89f980b604b8a54f (diff)
downloadop-kernel-dev-0ca3e288ddd5b9a42728cdb984a68d86d45dd09a.zip
op-kernel-dev-0ca3e288ddd5b9a42728cdb984a68d86d45dd09a.tar.gz
staging: vt6656: device_set_multi: covert mc_filter to u64
Convert mc_filter to u64, preform netdev_for_each_mc_addr mask filtering. In MACvWriteMultiAddr endian correct mc_filter and write the entire multicast once. Reported-by: Joe Perches <joe@perches.com> Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/vt6656/mac.c')
-rw-r--r--drivers/staging/vt6656/mac.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/staging/vt6656/mac.c b/drivers/staging/vt6656/mac.c
index 54414ed27..3ce19dd 100644
--- a/drivers/staging/vt6656/mac.c
+++ b/drivers/staging/vt6656/mac.c
@@ -47,25 +47,19 @@ static int msglevel =MSG_LEVEL_INFO;
*
* Parameters:
* In:
- * uByteidx - Index of Mask
- * byData - Mask Value to write
+ * mc_filter (mac filter)
* Out:
* none
*
* Return Value: none
*
*/
-void MACvWriteMultiAddr(struct vnt_private *pDevice, u32 uByteIdx, u8 byData)
+void MACvWriteMultiAddr(struct vnt_private *pDevice, u64 mc_filter)
{
- u8 byData1;
+ __le64 le_mc = cpu_to_le64(mc_filter);
- byData1 = byData;
- CONTROLnsRequestOut(pDevice,
- MESSAGE_TYPE_WRITE,
- (u16) (MAC_REG_MAR0 + uByteIdx),
- MESSAGE_REQUEST_MACREG,
- 1,
- &byData1);
+ CONTROLnsRequestOut(pDevice, MESSAGE_TYPE_WRITE, MAC_REG_MAR0,
+ MESSAGE_REQUEST_MACREG, sizeof(le_mc), (u8 *)&le_mc);
}
/*
OpenPOWER on IntegriCloud