All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: netdev <netdev@vger.kernel.org>,
	allen.pais@oracle.com, Andrew Lunn <andrew@lunn.ch>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net] net: dsa: Do not leave DSA master with NULL netdev_ops
Date: Mon, 4 May 2020 13:40:32 -0700	[thread overview]
Message-ID: <b32f205a-6ff3-e1db-33d1-6518091f90b4@gmail.com> (raw)
In-Reply-To: <CA+h21ho50twA=D=kZYxVuE=C6gf=8JeXmTEHhV30p_30oQZjjA@mail.gmail.com>



On 5/4/2020 1:34 PM, Vladimir Oltean wrote:
> Hi Florian,
> 
> On Mon, 4 May 2020 at 23:19, Florian Fainelli <f.fainelli@gmail.com> wrote:
>>
>> When ndo_get_phys_port_name() for the CPU port was added we introduced
>> an early check for when the DSA master network device in
>> dsa_master_ndo_setup() already implements ndo_get_phys_port_name(). When
>> we perform the teardown operation in dsa_master_ndo_teardown() we would
>> not be checking that cpu_dp->orig_ndo_ops was successfully allocated and
>> non-NULL initialized.
>>
>> With network device drivers such as virtio_net, this leads to a NPD as
>> soon as the DSA switch hanging off of it gets torn down because we are
>> now assigning the virtio_net device's netdev_ops a NULL pointer.
>>
>> Fixes: da7b9e9b00d4 ("net: dsa: Add ndo_get_phys_port_name() for CPU port")
>> Reported-by: Allen Pais <allen.pais@oracle.com>
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
>> ---
> 
> The fix makes complete sense.
> But on another note, if we don't overlay an ndo_get_phys_port_name if
> the master already has one, doesn't that render the entire mechanism
> of having a reliable way for user space to determine the CPU port
> number pointless?

For the CPU port I would consider ndo_get_phys_port_name() to be more
best effort than an absolute need unlike the user facing ports, where
this is necessary for a variety of actions (e.g.: determining
queues/port numbers etc.) which is why there was no overlay being done
in that case. There is not a good way to cascade the information other
than do something like pX.Y and defining what the X and Y are, what do
you think?
-- 
Florian

  reply	other threads:[~2020-05-04 20:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-04 20:18 [PATCH net] net: dsa: Do not leave DSA master with NULL netdev_ops Florian Fainelli
2020-05-04 20:34 ` Vladimir Oltean
2020-05-04 20:40   ` Florian Fainelli [this message]
2020-05-04 20:49     ` Vladimir Oltean
2020-05-04 21:03       ` Florian Fainelli
2020-05-05  6:07 ` Allen
2020-05-07  0:32 ` David Miller

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=b32f205a-6ff3-e1db-33d1-6518091f90b4@gmail.com \
    --to=f.fainelli@gmail.com \
    --cc=allen.pais@oracle.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=vivien.didelot@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.