Adding Luis Chamberlain as he maintains the user mode helper code. Just so everyone who is relevant is at least aware of what is going on. ebiederm@xxxxxxxxxxxx (Eric W. Biederman) writes: > Asking for people to fix their bugs in this user mode driver code has > been remarkably unproductive. So here are my bug fixes. > > I have tested them by booting with the code compiled in and > by killing "bpfilter_umh" and running iptables -vnL to restart > the userspace driver. > > I have split the changes into small enough pieces so they should be > easily readable and testable. > > The changes lean into the preexisting interfaces in the kernel and > remove special cases for user mode driver code in favor of solutions > that don't need special cases. This results in smaller code with > fewer bugs. > > At a practical level this removes the maintenance burden of the > user mode drivers from the user mode helper code and from exec as > the special cases are removed. > > Similarly the LSM interaction bugs are fixed by not having unnecessary > special cases for user mode drivers. > > Please let me know if you see any bugs. Once the code review is > finished I plan to take this through my tree. > > Eric W. Biederman (14): > umh: Capture the pid in umh_pipe_setup > umh: Move setting PF_UMH into umh_pipe_setup > umh: Rename the user mode driver helpers for clarity > umh: Remove call_usermodehelper_setup_file. > umh: Separate the user mode driver and the user mode helper support > umd: For clarity rename umh_info umd_info > umd: Rename umd_info.cmdline umd_info.driver_name > umd: Transform fork_usermode_blob into fork_usermode_driver > umh: Stop calling do_execve_file > exec: Remove do_execve_file > bpfilter: Move bpfilter_umh back into init data > umd: Track user space drivers with struct pid > bpfilter: Take advantage of the facilities of struct pid > umd: Remove exit_umh > > fs/exec.c | 38 ++------ > include/linux/binfmts.h | 1 - > include/linux/bpfilter.h | 7 +- > include/linux/sched.h | 9 -- > include/linux/umd.h | 18 ++++ > include/linux/umh.h | 15 ---- > kernel/Makefile | 1 + > kernel/exit.c | 1 - > kernel/umd.c | 183 +++++++++++++++++++++++++++++++++++++++ > kernel/umh.c | 171 +----------------------------------- > net/bpfilter/bpfilter_kern.c | 38 ++++---- > net/bpfilter/bpfilter_umh_blob.S | 2 +- > net/ipv4/bpfilter/sockopt.c | 20 +++-- > 13 files changed, 249 insertions(+), 255 deletions(-) > > Eric