* [Drbd-dev] [PATCH 0/1] usermodehelper: use UMH_WAIT_PROC consistently [not found] ` <201202080227.q182RnCp077670@www262.sakura.ne.jp> @ 2012-02-08 14:03 ` Oleg Nesterov 2012-02-08 14:04 ` [Drbd-dev] [PATCH 1/1] " Oleg Nesterov 0 siblings, 1 reply; 2+ messages in thread From: Oleg Nesterov @ 2012-02-08 14:03 UTC (permalink / raw) To: Tetsuo Handa Cc: john.johansen, Greg Kroah-Hartman, fhrbata, rusty, apw, Michal Januszewski, rientjes, tj, akpm, arjan, Lars Ellenberg On 02/08, Tetsuo Handa wrote: > > Oleg Nesterov wrote: > > > Subject: [PATCH 1/5] usermodehelper: kill umh_wait, renumber UMH_* constants > > > > No functional changes, preparation. > > > > umh_wait doesn't can't be used as a bitmask, and we do not want > > to add another argument call_usermodehelper_* helpers. > > > > Kill this enum and redefine the UMH_* constants. > > There are several users that call call_usermodehelper() without using this > enum. security/tomoyo/load_policy.c is one of such users ... and there are more. Thanks a lot Tetsuo. > and there will be some > in out-of-tree code. Well, they should be fixed imho. > Since I think distro kernels want > to backport this killable request_module() patchset, this patch should not > change the constants in a way that makes impossible to detect kABI changes. Good point, but I think the backporter should take care to not break the KABI. I do not think we should defer the possible cleanups for the sake of backporting. It is possible to skip the first patch and add UMH_KILLABLE, just call_usermodehelper_exec() needs the additional wait != UMH_NO_WAIT check before testind/clearing UMH_KILLABLE. UMH_NO_WAIT | KILLABLE is not possible. > #define UMH_WAIT_EXEC 0 /* wait for the exec, but not the process */ > #define UMH_WAIT_PROC 1 /* wait for the process to complete */ > #define UMH_KILLABLE 2 /* wait for EXEC/PROC killable */ > #define UMH_NO_WAIT 4 /* don't wait at all */ > > might be acceptable because we can remap -1 -> UMH_NO_WAIT on > call_usermodehelper_exec() side. Yes... but I think it is better to fix the users. Perhaps we can do something like #define UMH_NO_WAIT 0x8000 #define UMH_WAIT_EXEC 0x8001 #define UMH_WAIT_ 0x8002 and then call_usermodehelper_exec() does /* catch the old buggy users */ BUG_ON(!(wait & 0x8000) || (wait < 0)) In any case. Whatever we do, I think we should fix the current ab-users. Andrew, could you take this patch? Or should I split this trivial change by file/maintainer? Oleg. ^ permalink raw reply [flat|nested] 2+ messages in thread
* [Drbd-dev] [PATCH 1/1] usermodehelper: use UMH_WAIT_PROC consistently 2012-02-08 14:03 ` [Drbd-dev] [PATCH 0/1] usermodehelper: use UMH_WAIT_PROC consistently Oleg Nesterov @ 2012-02-08 14:04 ` Oleg Nesterov 0 siblings, 0 replies; 2+ messages in thread From: Oleg Nesterov @ 2012-02-08 14:04 UTC (permalink / raw) To: Tetsuo Handa Cc: john.johansen, Greg Kroah-Hartman, fhrbata, rusty, apw, Michal Januszewski, rientjes, tj, akpm, arjan, Lars Ellenberg A few call_usermodehelper() callers use the hardcoded constant instead of the proper UMH_WAIT_PROC, fix them. Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> Signed-off-by: Oleg Nesterov <oleg@redhat.com> --- drivers/block/drbd/drbd_nl.c | 2 +- drivers/staging/rtl8187se/r8180_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- drivers/video/uvesafb.c | 2 +- security/tomoyo/load_policy.c | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c index af2a250..e407da6 100644 --- a/drivers/block/drbd/drbd_nl.c +++ b/drivers/block/drbd/drbd_nl.c @@ -179,7 +179,7 @@ int drbd_khelper(struct drbd_conf *mdev, char *cmd) dev_info(DEV, "helper command: %s %s %s\n", usermode_helper, cmd, mb); drbd_bcast_ev_helper(mdev, cmd); - ret = call_usermodehelper(usermode_helper, argv, envp, 1); + ret = call_usermodehelper(usermode_helper, argv, envp, UMH_WAIT_PROC); if (ret) dev_warn(DEV, "helper command: %s %s %s exit code %u (0x%x)\n", usermode_helper, cmd, mb, diff --git a/drivers/staging/rtl8187se/r8180_core.c b/drivers/staging/rtl8187se/r8180_core.c index 04c2391..24072f7 100644 --- a/drivers/staging/rtl8187se/r8180_core.c +++ b/drivers/staging/rtl8187se/r8180_core.c @@ -4144,7 +4144,7 @@ void GPIOChangeRFWorkItemCallBack(struct work_struct *work) argv[0] = RadioPowerPath; argv[2] = NULL; - call_usermodehelper(RadioPowerPath, argv, envp, 1); + call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC); } } diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index a7fa9aa..f026b71 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -208,7 +208,7 @@ static void dm_check_ac_dc_power(struct net_device *dev) if (priv->rtllib->state != RTLLIB_LINKED) return; - call_usermodehelper(ac_dc_check_script_path, argv, envp, 1); + call_usermodehelper(ac_dc_check_script_path, argv, envp, UMH_WAIT_PROC); return; }; @@ -2296,7 +2296,7 @@ void dm_CheckRfCtrlGPIO(void *data) argv[0] = RadioPowerPath; argv[2] = NULL; - call_usermodehelper(RadioPowerPath, argv, envp, 1); + call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC); } } diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c index e7f69ef..506d16e 100644 --- a/drivers/video/uvesafb.c +++ b/drivers/video/uvesafb.c @@ -121,7 +121,7 @@ static int uvesafb_helper_start(void) NULL, }; - return call_usermodehelper(v86d_path, argv, envp, 1); + return call_usermodehelper(v86d_path, argv, envp, UMH_WAIT_PROC); } /* diff --git a/security/tomoyo/load_policy.c b/security/tomoyo/load_policy.c index 6797540..078fac0 100644 --- a/security/tomoyo/load_policy.c +++ b/security/tomoyo/load_policy.c @@ -102,7 +102,7 @@ void tomoyo_load_policy(const char *filename) envp[0] = "HOME=/"; envp[1] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin"; envp[2] = NULL; - call_usermodehelper(argv[0], argv, envp, 1); + call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); tomoyo_check_profile(); } -- 1.5.5.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-02-08 14:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20120202173504.GA25528@redhat.com>
[not found] ` <201202032254.GCJ30240.SLMOVFFHtJOFOQ@I-love.SAKURA.ne.jp>
[not found] ` <20120203151534.GB32503@redhat.com>
[not found] ` <201202041426.ICI23458.FFFtOMLOJOVSQH@I-love.SAKURA.ne.jp>
[not found] ` <201202051415.JEB43260.SFMJOHLtOFVQOF@I-love.SAKURA.ne.jp>
[not found] ` <201202072055.GEC05251.FFMSVHOLOFOQJt@I-love.SAKURA.ne.jp>
[not found] ` <20120207171031.GA11215@redhat.com>
[not found] ` <201202080227.q182RnCp077670@www262.sakura.ne.jp>
2012-02-08 14:03 ` [Drbd-dev] [PATCH 0/1] usermodehelper: use UMH_WAIT_PROC consistently Oleg Nesterov
2012-02-08 14:04 ` [Drbd-dev] [PATCH 1/1] " Oleg Nesterov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox