From: yajun.deng@linux.dev
To: davem@davemloft.net, kuba@kernel.org
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next] net: dev_addr_list: Introduce __dev_addr_add() and __dev_addr_del()
Date: Fri, 08 Oct 2021 09:02:12 +0000 [thread overview]
Message-ID: <25d22c8ed06748bb5b0d4968b737351b@linux.dev> (raw)
In-Reply-To: <20211008085354.9961-1-yajun.deng@linux.dev>
Sorry, There are still some problems with this patch.
October 8, 2021 4:53 PM, "Yajun Deng" <yajun.deng@linux.dev> 写到:
> Introduce helper functions __dev_addr_add() and __dev_addr_del() for
> the same code, make the code more concise.
>
> Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
> ---
> net/core/dev_addr_lists.c | 117 ++++++++++++++++----------------------
> 1 file changed, 48 insertions(+), 69 deletions(-)
>
> diff --git a/net/core/dev_addr_lists.c b/net/core/dev_addr_lists.c
> index f0cb38344126..f6e33bdc0a30 100644
> --- a/net/core/dev_addr_lists.c
> +++ b/net/core/dev_addr_lists.c
> @@ -614,6 +614,38 @@ int dev_addr_del(struct net_device *dev, const unsigned char *addr,
> }
> EXPORT_SYMBOL(dev_addr_del);
>
> +static int __dev_addr_add(struct net_device *dev, const unsigned char *addr,
> + unsigned char addr_type, bool global, bool sync,
> + bool exclusive)
> +{
> + int err;
> +
> + netif_addr_lock_bh(dev);
> + err = __hw_addr_add_ex(&dev->uc, addr, dev->addr_len,
> + addr_type, global, sync,
> + 0, exclusive);
> + if (!err)
> + __dev_set_rx_mode(dev);
> + netif_addr_unlock_bh(dev);
> +
> + return err;
> +}
> +
> +static int __dev_addr_del(struct net_device *dev, const unsigned char *addr,
> + unsigned char addr_type, bool global, bool sync)
> +{
> + int err;
> +
> + netif_addr_lock_bh(dev);
> + err = __hw_addr_del_ex(&dev->uc, addr, dev->addr_len,
> + addr_type, global, sync);
> + if (!err)
> + __dev_set_rx_mode(dev);
> + netif_addr_unlock_bh(dev);
> +
> + return err;
> +}
> +
> /*
> * Unicast list handling functions
> */
> @@ -625,16 +657,9 @@ EXPORT_SYMBOL(dev_addr_del);
> */
> int dev_uc_add_excl(struct net_device *dev, const unsigned char *addr)
> {
> - int err;
>
> - netif_addr_lock_bh(dev);
> - err = __hw_addr_add_ex(&dev->uc, addr, dev->addr_len,
> - NETDEV_HW_ADDR_T_UNICAST, true, false,
> - 0, true);
> - if (!err)
> - __dev_set_rx_mode(dev);
> - netif_addr_unlock_bh(dev);
> - return err;
> + return __dev_addr_add(dev, addr, NETDEV_HW_ADDR_T_UNICAST,
> + true, false, true);
> }
> EXPORT_SYMBOL(dev_uc_add_excl);
>
> @@ -648,15 +673,8 @@ EXPORT_SYMBOL(dev_uc_add_excl);
> */
> int dev_uc_add(struct net_device *dev, const unsigned char *addr)
> {
> - int err;
> -
> - netif_addr_lock_bh(dev);
> - err = __hw_addr_add(&dev->uc, addr, dev->addr_len,
> - NETDEV_HW_ADDR_T_UNICAST);
> - if (!err)
> - __dev_set_rx_mode(dev);
> - netif_addr_unlock_bh(dev);
> - return err;
> + return __dev_addr_add(dev, addr, NETDEV_HW_ADDR_T_UNICAST,
> + false, false, false);
> }
> EXPORT_SYMBOL(dev_uc_add);
>
> @@ -670,15 +688,8 @@ EXPORT_SYMBOL(dev_uc_add);
> */
> int dev_uc_del(struct net_device *dev, const unsigned char *addr)
> {
> - int err;
> -
> - netif_addr_lock_bh(dev);
> - err = __hw_addr_del(&dev->uc, addr, dev->addr_len,
> - NETDEV_HW_ADDR_T_UNICAST);
> - if (!err)
> - __dev_set_rx_mode(dev);
> - netif_addr_unlock_bh(dev);
> - return err;
> + return __dev_addr_del(dev, addr, NETDEV_HW_ADDR_T_UNICAST,
> + false, false);
> }
> EXPORT_SYMBOL(dev_uc_del);
>
> @@ -810,33 +821,11 @@ EXPORT_SYMBOL(dev_uc_init);
> */
> int dev_mc_add_excl(struct net_device *dev, const unsigned char *addr)
> {
> - int err;
> -
> - netif_addr_lock_bh(dev);
> - err = __hw_addr_add_ex(&dev->mc, addr, dev->addr_len,
> - NETDEV_HW_ADDR_T_MULTICAST, true, false,
> - 0, true);
> - if (!err)
> - __dev_set_rx_mode(dev);
> - netif_addr_unlock_bh(dev);
> - return err;
> + return __dev_addr_add(dev, addr, NETDEV_HW_ADDR_T_MULTICAST,
> + true, false, true);
> }
> EXPORT_SYMBOL(dev_mc_add_excl);
>
> -static int __dev_mc_add(struct net_device *dev, const unsigned char *addr,
> - bool global)
> -{
> - int err;
> -
> - netif_addr_lock_bh(dev);
> - err = __hw_addr_add_ex(&dev->mc, addr, dev->addr_len,
> - NETDEV_HW_ADDR_T_MULTICAST, global, false,
> - 0, false);
> - if (!err)
> - __dev_set_rx_mode(dev);
> - netif_addr_unlock_bh(dev);
> - return err;
> -}
> /**
> * dev_mc_add - Add a multicast address
> * @dev: device
> @@ -847,7 +836,8 @@ static int __dev_mc_add(struct net_device *dev, const unsigned char *addr,
> */
> int dev_mc_add(struct net_device *dev, const unsigned char *addr)
> {
> - return __dev_mc_add(dev, addr, false);
> + return __dev_addr_add(dev, addr, NETDEV_HW_ADDR_T_MULTICAST,
> + false, false, false);
> }
> EXPORT_SYMBOL(dev_mc_add);
>
> @@ -860,24 +850,11 @@ EXPORT_SYMBOL(dev_mc_add);
> */
> int dev_mc_add_global(struct net_device *dev, const unsigned char *addr)
> {
> - return __dev_mc_add(dev, addr, true);
> + return __dev_addr_add(dev, addr, NETDEV_HW_ADDR_T_MULTICAST,
> + true, false, false);
> }
> EXPORT_SYMBOL(dev_mc_add_global);
>
> -static int __dev_mc_del(struct net_device *dev, const unsigned char *addr,
> - bool global)
> -{
> - int err;
> -
> - netif_addr_lock_bh(dev);
> - err = __hw_addr_del_ex(&dev->mc, addr, dev->addr_len,
> - NETDEV_HW_ADDR_T_MULTICAST, global, false);
> - if (!err)
> - __dev_set_rx_mode(dev);
> - netif_addr_unlock_bh(dev);
> - return err;
> -}
> -
> /**
> * dev_mc_del - Delete a multicast address.
> * @dev: device
> @@ -888,7 +865,8 @@ static int __dev_mc_del(struct net_device *dev, const unsigned char *addr,
> */
> int dev_mc_del(struct net_device *dev, const unsigned char *addr)
> {
> - return __dev_mc_del(dev, addr, false);
> + return __dev_addr_del(dev, addr, NETDEV_HW_ADDR_T_MULTICAST,
> + false, false);
> }
> EXPORT_SYMBOL(dev_mc_del);
>
> @@ -902,7 +880,8 @@ EXPORT_SYMBOL(dev_mc_del);
> */
> int dev_mc_del_global(struct net_device *dev, const unsigned char *addr)
> {
> - return __dev_mc_del(dev, addr, true);
> + return __dev_addr_del(dev, addr, NETDEV_HW_ADDR_T_MULTICAST,
> + true, false);
> }
> EXPORT_SYMBOL(dev_mc_del_global);
>
> --
> 2.32.0
prev parent reply other threads:[~2021-10-08 9:02 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-08 8:53 [PATCH net-next] net: dev_addr_list: Introduce __dev_addr_add() and __dev_addr_del() Yajun Deng
2021-10-08 9:02 ` yajun.deng [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=25d22c8ed06748bb5b0d4968b737351b@linux.dev \
--to=yajun.deng@linux.dev \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox