From ccb8e920efcf93f5a0acafe9ef177bb47f91fb4a Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Tue, 19 May 2009 18:27:17 +0000 Subject: [PATCH] --- yaml --- r: 150353 b: refs/heads/master c: d95ed9275edcb8995bda31005bb3f55e087626d7 h: refs/heads/master i: 150351: 95572375ab54915d738fffce1b8819d57a3fb71b v: v3 --- [refs] | 2 +- trunk/include/linux/if_packet.h | 1 + trunk/net/packet/af_packet.c | 10 ++++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 79b1895c57fb..36a0cbf86881 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ca0f31125c5cf0d48f47c2e1a3785a08876a7e87 +refs/heads/master: d95ed9275edcb8995bda31005bb3f55e087626d7 diff --git a/trunk/include/linux/if_packet.h b/trunk/include/linux/if_packet.h index 5b2badeb9497..dea7d6b7cf98 100644 --- a/trunk/include/linux/if_packet.h +++ b/trunk/include/linux/if_packet.h @@ -145,5 +145,6 @@ struct packet_mreq #define PACKET_MR_MULTICAST 0 #define PACKET_MR_PROMISC 1 #define PACKET_MR_ALLMULTI 2 +#define PACKET_MR_UNICAST 3 #endif diff --git a/trunk/net/packet/af_packet.c b/trunk/net/packet/af_packet.c index 766e6b41f7ca..c7c5d524967e 100644 --- a/trunk/net/packet/af_packet.c +++ b/trunk/net/packet/af_packet.c @@ -1570,9 +1570,9 @@ static int packet_dev_mc(struct net_device *dev, struct packet_mclist *i, switch (i->type) { case PACKET_MR_MULTICAST: if (what > 0) - dev_mc_add(dev, i->addr, i->alen, 0); + return dev_mc_add(dev, i->addr, i->alen, 0); else - dev_mc_delete(dev, i->addr, i->alen, 0); + return dev_mc_delete(dev, i->addr, i->alen, 0); break; case PACKET_MR_PROMISC: return dev_set_promiscuity(dev, what); @@ -1580,6 +1580,12 @@ static int packet_dev_mc(struct net_device *dev, struct packet_mclist *i, case PACKET_MR_ALLMULTI: return dev_set_allmulti(dev, what); break; + case PACKET_MR_UNICAST: + if (what > 0) + return dev_unicast_add(dev, i->addr, i->alen); + else + return dev_unicast_delete(dev, i->addr, i->alen); + break; default:; } return 0;