Spotted by Jean Delvare : it has its memset arguments the wrong way round. --- 25-akpm/drivers/net/sk_mca.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/net/sk_mca.c~sk_mca-multicast-fix drivers/net/sk_mca.c --- 25/drivers/net/sk_mca.c~sk_mca-multicast-fix 2004-04-10 01:42:29.464928112 -0700 +++ 25-akpm/drivers/net/sk_mca.c 2004-04-10 01:57:20.106530008 -0700 @@ -997,13 +997,13 @@ static void skmca_set_multicast_list(str block.Mode &= ~LANCE_INIT_PROM; if (dev->flags & IFF_ALLMULTI) { /* get all multicasts */ - memset(block.LAdrF, 8, 0xff); + memset(block.LAdrF, 0xff, sizeof(block.LAdrF)); } else { /* get selected/no multicasts */ struct dev_mc_list *mptr; int code; - memset(block.LAdrF, 8, 0x00); + memset(block.LAdrF, 0, sizeof(block.LAdrF)); for (mptr = dev->mc_list; mptr != NULL; mptr = mptr->next) { code = GetHash(mptr->dmi_addr); block.LAdrF[(code >> 3) & 7] |= 1 << (code & 7); _