lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211230175112.7daeb74e@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net>
Date:   Thu, 30 Dec 2021 17:51:12 -0800
From:   Jakub Kicinski <kuba@...nel.org>
To:     Gagan Kumar <gagan1kumar.cs@...il.com>, jk@...econstruct.com.au
Cc:     matt@...econstruct.com.au, davem@...emloft.net,
        netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mctp: Remove only static neighbour on RTM_DELNEIGH

On Tue, 28 Dec 2021 18:39:56 +0530 Gagan Kumar wrote:
> Add neighbour source flag in mctp_neigh_remove(...) to allow removal of
> only static neighbours.

Which are the only ones that exist today right?

Can you clarify the motivation and practical impact of the change 
in the commit message to make it clear? AFAICT this is a no-op / prep
for some later changes, right Jeremy?

> diff --git a/net/mctp/neigh.c b/net/mctp/neigh.c
> index 5cc042121493..a90723ae66d7 100644
> --- a/net/mctp/neigh.c
> +++ b/net/mctp/neigh.c
> @@ -85,8 +85,8 @@ void mctp_neigh_remove_dev(struct mctp_dev *mdev)
>  	mutex_unlock(&net->mctp.neigh_lock);
>  }
>  
> -// TODO: add a "source" flag so netlink can only delete static neighbours?
> -static int mctp_neigh_remove(struct mctp_dev *mdev, mctp_eid_t eid)
> +static int mctp_neigh_remove(struct mctp_dev *mdev, mctp_eid_t eid,
> +			     enum mctp_neigh_source source)
>  {
>  	struct net *net = dev_net(mdev->dev);
>  	struct mctp_neigh *neigh, *tmp;
> @@ -94,7 +94,7 @@ static int mctp_neigh_remove(struct mctp_dev *mdev, mctp_eid_t eid)
>  
>  	mutex_lock(&net->mctp.neigh_lock);
>  	list_for_each_entry_safe(neigh, tmp, &net->mctp.neighbours, list) {
> -		if (neigh->dev == mdev && neigh->eid == eid) {
> +		if (neigh->dev == mdev && neigh->eid == eid && neigh->source == source) {
>  			list_del_rcu(&neigh->list);
>  			/* TODO: immediate RTM_DELNEIGH */
>  			call_rcu(&neigh->rcu, __mctp_neigh_free);
> @@ -202,7 +202,7 @@ static int mctp_rtm_delneigh(struct sk_buff *skb, struct nlmsghdr *nlh,
>  	if (!mdev)
>  		return -ENODEV;
>  
> -	return mctp_neigh_remove(mdev, eid);
> +	return mctp_neigh_remove(mdev, eid, MCTP_NEIGH_STATIC);
>  }
>  
>  static int mctp_fill_neigh(struct sk_buff *skb, u32 portid, u32 seq, int event,

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ