Hi,
The commit 591a22c14d3f ("proc: Track /proc/$pid/attr/ opener mm_struct") that we got in v5.13-rc6 broke our regression to pieces. The NIC interfaces fail to start when using NetworkManager.
There is nothing in dmesg except error that NetworkManager failed to start.
Our setups are: * VMs with virtio-net NICs * Fedora 29
The revert fixes the issue and VMs boot with network working.
Thanks
On Tue, Jun 15, 2021 at 9:21 AM Leon Romanovsky leon@kernel.org wrote:
The commit 591a22c14d3f ("proc: Track /proc/$pid/attr/ opener mm_struct") that we got in v5.13-rc6 broke our regression to pieces. The NIC interfaces fail to start when using NetworkManager.
Does the attached patch fix it?
It just makes the open always succeed, and then the private_data that the open did (that may or may not then have been filled in) is only used on write.
Linus
On Tue, Jun 15, 2021 at 09:26:19AM -0700, Linus Torvalds wrote:
On Tue, Jun 15, 2021 at 9:21 AM Leon Romanovsky leon@kernel.org wrote:
The commit 591a22c14d3f ("proc: Track /proc/$pid/attr/ opener mm_struct") that we got in v5.13-rc6 broke our regression to pieces. The NIC interfaces fail to start when using NetworkManager.
Does the attached patch fix it?
I pushed it for testing, will update shortly.
Thanks
It just makes the open always succeed, and then the private_data that the open did (that may or may not then have been filled in) is only used on write.
Linus
fs/proc/base.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/proc/base.c b/fs/proc/base.c index 7118ebe38fa6..9cbd915025ad 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2676,7 +2676,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx, #ifdef CONFIG_SECURITY static int proc_pid_attr_open(struct inode *inode, struct file *file) {
- return __mem_open(inode, file, PTRACE_MODE_READ_FSCREDS);
- file->private_data = NULL;
- __mem_open(inode, file, PTRACE_MODE_READ_FSCREDS);
- return 0;
} static ssize_t proc_pid_attr_read(struct file * file, char __user * buf,
On Tue, Jun 15, 2021 at 09:26:19AM -0700, Linus Torvalds wrote:
On Tue, Jun 15, 2021 at 9:21 AM Leon Romanovsky leon@kernel.org wrote:
The commit 591a22c14d3f ("proc: Track /proc/$pid/attr/ opener mm_struct") that we got in v5.13-rc6 broke our regression to pieces. The NIC interfaces fail to start when using NetworkManager.
Does the attached patch fix it?
Yes, this patch fixed the issue. Tested-by: Leon Romanovsky leonro@nvidia.com
Thanks
It just makes the open always succeed, and then the private_data that the open did (that may or may not then have been filled in) is only used on write.
Linus
fs/proc/base.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/proc/base.c b/fs/proc/base.c index 7118ebe38fa6..9cbd915025ad 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2676,7 +2676,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx, #ifdef CONFIG_SECURITY static int proc_pid_attr_open(struct inode *inode, struct file *file) {
- return __mem_open(inode, file, PTRACE_MODE_READ_FSCREDS);
- file->private_data = NULL;
- __mem_open(inode, file, PTRACE_MODE_READ_FSCREDS);
- return 0;
} static ssize_t proc_pid_attr_read(struct file * file, char __user * buf,
On Tue, Jun 15, 2021 at 10:45 AM Leon Romanovsky leon@kernel.org wrote:
Yes, this patch fixed the issue. Tested-by: Leon Romanovsky leonro@nvidia.com
Thanks.
I've committed that minimal fix, although we still seem to have some unexplained failure in this area for android 7 cm14.1 user space.
This has turned out to be fairly painful, with multiple fixes on top of fixes, and there's still something odd going on. Grr.
Linus
linux-stable-mirror@lists.linaro.org