| From 3accbfdc36130282f5ae9e6eecfdf820169fedce Mon Sep 17 00:00:00 2001 |
| From: Zhang Changzhong <zhangchangzhong@huawei.com> |
| Date: Tue, 14 Jul 2020 14:44:50 +0800 |
| Subject: can: proc: can_remove_proc(): silence remove_proc_entry warning |
| |
| From: Zhang Changzhong <zhangchangzhong@huawei.com> |
| |
| commit 3accbfdc36130282f5ae9e6eecfdf820169fedce upstream. |
| |
| If can_init_proc() fail to create /proc/net/can directory, can_remove_proc() |
| will trigger a warning: |
| |
| WARNING: CPU: 6 PID: 7133 at fs/proc/generic.c:672 remove_proc_entry+0x17b0 |
| Kernel panic - not syncing: panic_on_warn set ... |
| |
| Fix to return early from can_remove_proc() if can proc_dir does not exists. |
| |
| Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com> |
| Link: https://lore.kernel.org/r/1594709090-3203-1-git-send-email-zhangchangzhong@huawei.com |
| Fixes: 8e8cda6d737d ("can: initial support for network namespaces") |
| Acked-by: Oliver Hartkopp <socketcan@hartkopp.net> |
| Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/can/proc.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/net/can/proc.c |
| +++ b/net/can/proc.c |
| @@ -471,6 +471,9 @@ void can_init_proc(struct net *net) |
| */ |
| void can_remove_proc(struct net *net) |
| { |
| + if (!net->can.proc_dir) |
| + return; |
| + |
| if (net->can.pde_version) |
| remove_proc_entry(CAN_PROC_VERSION, net->can.proc_dir); |
| |
| @@ -498,6 +501,5 @@ void can_remove_proc(struct net *net) |
| if (net->can.pde_rcvlist_sff) |
| remove_proc_entry(CAN_PROC_RCVLIST_SFF, net->can.proc_dir); |
| |
| - if (net->can.proc_dir) |
| - remove_proc_entry("can", net->proc_net); |
| + remove_proc_entry("can", net->proc_net); |
| } |