)]}'
{
  "commit": "f06b71fe4d4cd0a4ad7e183b777564f696f6bb36",
  "tree": "ab7c8a13fa7b10a9586ca1104534a009b2e41333",
  "parents": [
    "b3a9e3b9622ae10064826dccb4f7a52bd88c7407",
    "33c326014fe69304244868cc793c2c77be533125"
  ],
  "author": {
    "name": "Eric W. Biederman",
    "email": "ebiederm@xmission.com",
    "time": "Tue Jul 07 23:48:48 2020 -0500"
  },
  "committer": {
    "name": "Eric W. Biederman",
    "email": "ebiederm@xmission.com",
    "time": "Tue Jul 07 23:52:29 2020 -0500"
  },
  "message": "Make the user mode driver code a better citizen\n\nThis is the third round of my changeset to split the user mode driver\ncode from the user mode helper code, and to make the code use common\nfacilities to get things done instead of recreating them just\nfor the user mode driver code.\n\nI have split the changes into small enough pieces so they should be\neasily readable and testable.\n\nThe changes lean into the preexisting interfaces in the kernel and\nremove special cases for user mode driver code in favor of solutions\nthat don\u0027t need special cases.  This results in smaller code with fewer\nbugs.\n\nAt a practical level this removes the maintenance burden of the user\nmode drivers from the user mode helper code and from exec as the special\ncases are removed.\n\nSimilarly the LSM interaction bugs are fixed by not having unnecessary\nspecial cases for user mode drivers.\n\nI have tested thes changes by booting with the code compiled in and\nby killing \"bpfilter_umh\" and \"running iptables -vnL\" to restart\nthe userspace driver, also by running \"while true; do iptables -L;rmmod\nbpfilter; done\" to verify the module load and unload work properly.\n\nI have compiled tested each change with and without CONFIG_BPFILTER\nenabled.\n\nFrom v2 to v3 I have made two siginficant changes.\n- I factored thread_group_exit out of pidfd_poll to allow the test\n  to be used by the bpfilter code.\n- I renamed umd.c and umd.h to usermode_driver.c and usermode_driver.h\n  respectively.\n\nI made a few very small changes from v1 to v2:\n- Updated the function name in a comment when the function is renamed\n- Moved some more code so that the the !CONFIG_BPFILTER case continues\n  to compile when I moved the code into umd.c\n- A fix for the module loading case to really flush the file descriptor.\n- Removed split_argv entirely from fork_usermode_driver.\n  There was nothing to split so it was just confusing.\n\nPlease let me know if you see any bugs.  Once the code review is\nfinished I plan to place the code in a non-rebasing branch\nso I can pull it into my tree and so it can also be pulled into\nthe bpf-next tree.\n\nv1: https://lkml.kernel.org/r/87pn9mgfc2.fsf_-_@x220.int.ebiederm.org\nv2: https://lkml.kernel.org/r/87bll17ili.fsf_-_@x220.int.ebiederm.org\n\nEric W. Biederman (16):\n      umh: Capture the pid in umh_pipe_setup\n      umh: Move setting PF_UMH into umh_pipe_setup\n      umh: Rename the user mode driver helpers for clarity\n      umh: Remove call_usermodehelper_setup_file.\n      umh: Separate the user mode driver and the user mode helper support\n      umd: For clarity rename umh_info umd_info\n      umd: Rename umd_info.cmdline umd_info.driver_name\n      umd: Transform fork_usermode_blob into fork_usermode_driver\n      umh: Stop calling do_execve_file\n      exec: Remove do_execve_file\n      bpfilter: Move bpfilter_umh back into init data\n      umd: Track user space drivers with struct pid\n      exit: Factor thread_group_exited out of pidfd_poll\n      bpfilter: Take advantage of the facilities of struct pid\n      umd: Remove exit_umh\n      umd: Stop using split_argv\n\nLink: https://lkml.kernel.org/r/87y2o1swee.fsf_-_@x220.int.ebiederm.org\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n",
  "tree_diff": []
}
