diff mbox series

[net-next,v4] net: openvswitch: Check vport netdev name

Message ID 20240419061425.132723-1-jun.gu@easystack.cn (mailing list archive)
State Accepted
Commit 2540088b836f9e208f7f722a67f9b168737036e8
Delegated to: Netdev Maintainers
Headers show
Series [net-next,v4] net: openvswitch: Check vport netdev name | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net-next
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 926 this patch: 926
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers warning 3 maintainers not CCed: pabeni@redhat.com edumazet@google.com pshelar@ovn.org
netdev/build_clang success Errors and warnings before: 937 this patch: 937
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 937 this patch: 937
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 11 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2024-04-21--03-00 (tests: 995)

Commit Message

Jun Gu April 19, 2024, 6:14 a.m. UTC
Ensure that the provided netdev name is not one of its aliases to
prevent unnecessary creation and destruction of the vport by
ovs-vswitchd.

Signed-off-by: Jun Gu <jun.gu@easystack.cn>
Acked-by: Eelco Chaudron <echaudro@redhat.com>
---
 net/openvswitch/vport-netdev.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Jakub Kicinski April 23, 2024, 12:38 a.m. UTC | #1
On Fri, 19 Apr 2024 14:14:25 +0800 Jun Gu wrote:
>  	vport->dev = dev_get_by_name(ovs_dp_get_net(vport->dp), name);
> -	if (!vport->dev) {
> +	/* Ensure that the device exists and that the provided
> +	 * name is not one of its aliases.
> +	 */
> +	if (!vport->dev || strcmp(name, ovs_vport_name(vport))) {
>  		err = -ENODEV;
>  		goto error_free_vport;
>  	}

Sorry I applied this before I realised that it's buggy.
dev_get_by_name() will give you a reference on the device.
You must free it, so the error handling is different.
Please follow up ASAP to fix that.
patchwork-bot+netdevbpf@kernel.org April 23, 2024, 12:53 a.m. UTC | #2
Hello:

This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Fri, 19 Apr 2024 14:14:25 +0800 you wrote:
> Ensure that the provided netdev name is not one of its aliases to
> prevent unnecessary creation and destruction of the vport by
> ovs-vswitchd.
> 
> Signed-off-by: Jun Gu <jun.gu@easystack.cn>
> Acked-by: Eelco Chaudron <echaudro@redhat.com>
> 
> [...]

Here is the summary with links:
  - [net-next,v4] net: openvswitch: Check vport netdev name
    https://git.kernel.org/netdev/net-next/c/2540088b836f

You are awesome, thank you!
Jun Gu April 23, 2024, 2:34 a.m. UTC | #3
My mistake, I'm wondering that I need to submit a new patch or a v5 
version based on this patch?

在 4/23/24 08:38, Jakub Kicinski 写道:
> On Fri, 19 Apr 2024 14:14:25 +0800 Jun Gu wrote:
>>   	vport->dev = dev_get_by_name(ovs_dp_get_net(vport->dp), name);
>> -	if (!vport->dev) {
>> +	/* Ensure that the device exists and that the provided
>> +	 * name is not one of its aliases.
>> +	 */
>> +	if (!vport->dev || strcmp(name, ovs_vport_name(vport))) {
>>   		err = -ENODEV;
>>   		goto error_free_vport;
>>   	}
> 
> Sorry I applied this before I realised that it's buggy.
> dev_get_by_name() will give you a reference on the device.
> You must free it, so the error handling is different.
> Please follow up ASAP to fix that.
>
diff mbox series

Patch

diff --git a/net/openvswitch/vport-netdev.c b/net/openvswitch/vport-netdev.c
index 903537a5da22..618edc346c0f 100644
--- a/net/openvswitch/vport-netdev.c
+++ b/net/openvswitch/vport-netdev.c
@@ -78,7 +78,10 @@  struct vport *ovs_netdev_link(struct vport *vport, const char *name)
 	int err;
 
 	vport->dev = dev_get_by_name(ovs_dp_get_net(vport->dp), name);
-	if (!vport->dev) {
+	/* Ensure that the device exists and that the provided
+	 * name is not one of its aliases.
+	 */
+	if (!vport->dev || strcmp(name, ovs_vport_name(vport))) {
 		err = -ENODEV;
 		goto error_free_vport;
 	}