All of lore.kernel.org
 help / color / mirror / Atom feed
From: mark gross <mgross@linux.intel.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Mark Gross <mgross@linux.intel.com>,
	Andy Shevchenko <andy@infradead.org>,
	Dell.Client.Kernel@dell.com, platform-driver-x86@vger.kernel.org,
	Mario Limonciello <mario.limonciello@outlook.com>
Subject: Re: [PATCH] platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios
Date: Tue, 18 May 2021 16:08:05 -0700	[thread overview]
Message-ID: <20210518230805.GE47806@linux.intel.com> (raw)
In-Reply-To: <20210518224026.GD47806@linux.intel.com>

On Tue, May 18, 2021 at 03:40:26PM -0700, mark gross wrote:
> On Tue, May 18, 2021 at 02:50:27PM +0200, Hans de Goede wrote:
> > init_dell_smbios_wmi() only registers the dell_smbios_wmi_driver on systems
> > where the Dell WMI interface is support. While exit_dell_smbios_wmi()
> > unregisters it unconditionally, this leads to the following oops:
> > 
> > [  175.722921] ------------[ cut here ]------------
> > [  175.722925] Unexpected driver unregister!
> > [  175.722939] WARNING: CPU: 1 PID: 3630 at drivers/base/driver.c:194 driver_unregister+0x38/0x40
> > ...
> > [  175.723089] Call Trace:
> > [  175.723094]  cleanup_module+0x5/0xedd [dell_smbios]
> > ...
> > [  175.723148] ---[ end trace 064c34e1ad49509d ]---
> > 
> > Make the unregister happen on the same condition the register happens
> > to fix this.
> > 
> > Cc: Mario Limonciello <mario.limonciello@outlook.com>
> > Fixes: 1a258e670434 ("platform/x86: dell-smbios-wmi: Add new WMI dispatcher driver")
> > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > ---
> >  drivers/platform/x86/dell/dell-smbios-wmi.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/platform/x86/dell/dell-smbios-wmi.c b/drivers/platform/x86/dell/dell-smbios-wmi.c
> > index a1753485159c..33f823772733 100644
> > --- a/drivers/platform/x86/dell/dell-smbios-wmi.c
> > +++ b/drivers/platform/x86/dell/dell-smbios-wmi.c
> > @@ -270,7 +270,8 @@ int init_dell_smbios_wmi(void)
> >  
> >  void exit_dell_smbios_wmi(void)
> >  {
> > -	wmi_driver_unregister(&dell_smbios_wmi_driver);
> > +	if (wmi_supported)
> Something is fishy with this.  wmi_supported is used in the
> init_dell_smbios_wmi function so we shouldn't even be able to call this
> function if wmi_supported == 0
> 
> is there a bug in the wmi framework where drivers that fail to init are not
> removed from a list resulting in a failure to unregister?  Is your fix hiding a
> higher level issue?
> 
> Looking more shouldn't the prob function NOT get called if the init function
> fails?

Never mind.  After thinking it over this fix makes sence the init and exit
functions get called regardless of registering.

the fix looks good.

Reviewed-by: mark gross <mgross@linux.intel.com>

--mrak

> 
> > +		wmi_driver_unregister(&dell_smbios_wmi_driver);
> >  }
> >  
> >  MODULE_DEVICE_TABLE(wmi, dell_smbios_wmi_id_table);
> > -- 
> > 2.31.1
> > 

  reply	other threads:[~2021-05-18 23:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-18 12:50 [PATCH] platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios Hans de Goede
2021-05-18 22:40 ` mark gross
2021-05-18 23:08   ` mark gross [this message]
2021-05-19 13:29 ` Hans de Goede

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210518230805.GE47806@linux.intel.com \
    --to=mgross@linux.intel.com \
    --cc=Dell.Client.Kernel@dell.com \
    --cc=andy@infradead.org \
    --cc=hdegoede@redhat.com \
    --cc=mario.limonciello@outlook.com \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.