Message ID | 1506544822-2632-3-git-send-email-jonathan.derrick@intel.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Wed, Sep 27, 2017 at 1:40 PM, Jon Derrick <jonathan.derrick@intel.com> wrote: > The PCI driver delete_id parameter is handled in each individual driver > registration callback. > > Signed-off-by: Jon Derrick <jonathan.derrick@intel.com> > --- > kernel/module.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/kernel/module.c b/kernel/module.c > index de66ec8..2b2dccf 100644 > --- a/kernel/module.c > +++ b/kernel/module.c > @@ -3620,6 +3620,13 @@ static int unknown_module_param_cb(char *param, char *val, const char *modname, > return 0; > } > > + /* > + * Ignore driver delete list arguments. They are handled by driver > + * registration callbacks > + */ > + if (strcmp(param, "delete_id") == 0) > + return 0; > + Does this preclude something like: modprobe ahci delete_id=1234:5678?
On Wed, Sep 27, 2017 at 04:40:21PM -0400, Jon Derrick wrote: > The PCI driver delete_id parameter is handled in each individual driver > registration callback. > > Signed-off-by: Jon Derrick <jonathan.derrick@intel.com> > --- > kernel/module.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/kernel/module.c b/kernel/module.c > index de66ec8..2b2dccf 100644 > --- a/kernel/module.c > +++ b/kernel/module.c > @@ -3620,6 +3620,13 @@ static int unknown_module_param_cb(char *param, char *val, const char *modname, > return 0; > } > > + /* > + * Ignore driver delete list arguments. They are handled by driver > + * registration callbacks > + */ > + if (strcmp(param, "delete_id") == 0) > + return 0; Why? This is only for the PCI core as you have defined it in this patchset, but you just broke this module id for all other kernel modules in the system :( If you want to do this, you need to provide this feature for _all_ kernel drivers... thanks, greg k-h
On 09/28/2017 03:02 AM, Greg Kroah-Hartman wrote: > On Wed, Sep 27, 2017 at 04:40:21PM -0400, Jon Derrick wrote: >> The PCI driver delete_id parameter is handled in each individual driver >> registration callback. >> >> Signed-off-by: Jon Derrick <jonathan.derrick@intel.com> >> --- >> kernel/module.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/kernel/module.c b/kernel/module.c >> index de66ec8..2b2dccf 100644 >> --- a/kernel/module.c >> +++ b/kernel/module.c >> @@ -3620,6 +3620,13 @@ static int unknown_module_param_cb(char *param, char *val, const char *modname, >> return 0; >> } >> >> + /* >> + * Ignore driver delete list arguments. They are handled by driver >> + * registration callbacks >> + */ >> + if (strcmp(param, "delete_id") == 0) >> + return 0; > > Why? This is only for the PCI core as you have defined it in this > patchset, but you just broke this module id for all other kernel modules > in the system :( > > If you want to do this, you need to provide this feature for _all_ > kernel drivers... > > thanks, > > greg k-h > Yes I'm not particularly happy about this one either. I will make this more robust if the blacklisting idea is sound.
On 09/28/2017 12:03 AM, Dan Williams wrote: > On Wed, Sep 27, 2017 at 1:40 PM, Jon Derrick <jonathan.derrick@intel.com> wrote: >> The PCI driver delete_id parameter is handled in each individual driver >> registration callback. >> >> Signed-off-by: Jon Derrick <jonathan.derrick@intel.com> >> --- >> kernel/module.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/kernel/module.c b/kernel/module.c >> index de66ec8..2b2dccf 100644 >> --- a/kernel/module.c >> +++ b/kernel/module.c >> @@ -3620,6 +3620,13 @@ static int unknown_module_param_cb(char *param, char *val, const char *modname, >> return 0; >> } >> >> + /* >> + * Ignore driver delete list arguments. They are handled by driver >> + * registration callbacks >> + */ >> + if (strcmp(param, "delete_id") == 0) >> + return 0; >> + > > Does this preclude something like: > > modprobe ahci delete_id=1234:5678? > It does seem like it would. I can look into calling into the pci callback for this, but val is a struct module here and I haven't figured out the plumbing to get the [correct] driver from that. Maybe if I enforce the format of 'modprobe ahci ahci.delete_id=xxxx' to ensure the driver is specified (and would be required in cases with multi-driver modules).
diff --git a/kernel/module.c b/kernel/module.c index de66ec8..2b2dccf 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3620,6 +3620,13 @@ static int unknown_module_param_cb(char *param, char *val, const char *modname, return 0; } + /* + * Ignore driver delete list arguments. They are handled by driver + * registration callbacks + */ + if (strcmp(param, "delete_id") == 0) + return 0; + /* Check for magic 'dyndbg' arg */ ret = ddebug_dyndbg_module_param_cb(param, val, modname); if (ret != 0)
The PCI driver delete_id parameter is handled in each individual driver registration callback. Signed-off-by: Jon Derrick <jonathan.derrick@intel.com> --- kernel/module.c | 7 +++++++ 1 file changed, 7 insertions(+)