Neil Horman | 3 Jan 2012 16:29
Favicon

[PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

This warning was recently reported to me:

------------[ cut here ]------------
WARNING: at lib/kobject.c:595 kobject_put+0x50/0x60()
Hardware name: VMware Virtual Platform
kobject: '(null)' (ffff880027b0df40): is not initialized, yet kobject_put() is
being called.
Modules linked in: vmxnet3(+) vmw_balloon i2c_piix4 i2c_core shpchp raid10
vmw_pvscsi
Pid: 630, comm: modprobe Tainted: G        W   3.1.6-1.fc16.x86_64 #1
Call Trace:
 [<ffffffff8106b73f>] warn_slowpath_common+0x7f/0xc0
 [<ffffffff8106b836>] warn_slowpath_fmt+0x46/0x50
 [<ffffffff810da293>] ? free_desc+0x63/0x70
 [<ffffffff812a9aa0>] kobject_put+0x50/0x60
 [<ffffffff812e4c25>] free_msi_irqs+0xd5/0x120
 [<ffffffff812e524c>] pci_enable_msi_block+0x24c/0x2c0
 [<ffffffffa017c273>] vmxnet3_alloc_intr_resources+0x173/0x240 [vmxnet3]
 [<ffffffffa0182e94>] vmxnet3_probe_device+0x615/0x834 [vmxnet3]
 [<ffffffff812d141c>] local_pci_probe+0x5c/0xd0
 [<ffffffff812d2cb9>] pci_device_probe+0x109/0x130
 [<ffffffff8138ba2c>] driver_probe_device+0x9c/0x2b0
 [<ffffffff8138bceb>] __driver_attach+0xab/0xb0
 [<ffffffff8138bc40>] ? driver_probe_device+0x2b0/0x2b0
 [<ffffffff8138bc40>] ? driver_probe_device+0x2b0/0x2b0
 [<ffffffff8138a8ac>] bus_for_each_dev+0x5c/0x90
 [<ffffffff8138b63e>] driver_attach+0x1e/0x20
 [<ffffffff8138b240>] bus_add_driver+0x1b0/0x2a0
 [<ffffffffa0188000>] ? 0xffffffffa0187fff
 [<ffffffff8138c246>] driver_register+0x76/0x140
(Continue reading)

David Miller | 3 Jan 2012 19:05
Favicon

Re: [PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

From: Neil Horman <nhorman <at> tuxdriver.com>
Date: Tue,  3 Jan 2012 10:29:54 -0500

> This warning was recently reported to me:

I've hit this too, see:

http://marc.info/?l=linux-kernel&m=132458146927890&w=2

and my analysis at:

http://marc.info/?l=linux-arch&m=132458391128660&w=2
Neil Horman | 3 Jan 2012 19:53
Favicon

Re: [PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

On Tue, Jan 03, 2012 at 01:05:26PM -0500, David Miller wrote:
> From: Neil Horman <nhorman <at> tuxdriver.com>
> Date: Tue,  3 Jan 2012 10:29:54 -0500
> 
> > This warning was recently reported to me:
> 
> I've hit this too, see:
> 
> http://marc.info/?l=linux-kernel&m=132458146927890&w=2
> 
> and my analysis at:
> 
> http://marc.info/?l=linux-arch&m=132458391128660&w=2
> 
Yup, your analysis is correct. Regardless of the why behind msi enablement
failing, we need to gate the kobject_del/put in free_msi_irqs on successful
completion of kobject_init_and_add in populate_msi_sysfs.  This patch does that,
using the parent pointer as a flag.

Thanks
Neil

Jesse Barnes | 4 Jan 2012 18:19
Favicon

Re: [PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

On Tue, 3 Jan 2012 13:53:05 -0500
Neil Horman <nhorman <at> tuxdriver.com> wrote:

> On Tue, Jan 03, 2012 at 01:05:26PM -0500, David Miller wrote:
> > From: Neil Horman <nhorman <at> tuxdriver.com>
> > Date: Tue,  3 Jan 2012 10:29:54 -0500
> > 
> > > This warning was recently reported to me:
> > 
> > I've hit this too, see:
> > 
> > http://marc.info/?l=linux-kernel&m=132458146927890&w=2
> > 
> > and my analysis at:
> > 
> > http://marc.info/?l=linux-arch&m=132458391128660&w=2
> > 
> Yup, your analysis is correct. Regardless of the why behind msi enablement
> failing, we need to gate the kobject_del/put in free_msi_irqs on successful
> completion of kobject_init_and_add in populate_msi_sysfs.  This patch does that,
> using the parent pointer as a flag.

I applied this to my -next branch; doesn't seem critical to land
immediately.  If you disagree let me know and I'll pull it over to my
for-linus branch instead.

Thanks,
--

-- 
Jesse Barnes, Intel Open Source Technology Center
(Continue reading)

Neil Horman | 4 Jan 2012 20:51
Favicon

Re: [PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

On Wed, Jan 04, 2012 at 09:19:52AM -0800, Jesse Barnes wrote:
> On Tue, 3 Jan 2012 13:53:05 -0500
> Neil Horman <nhorman <at> tuxdriver.com> wrote:
> 
> > On Tue, Jan 03, 2012 at 01:05:26PM -0500, David Miller wrote:
> > > From: Neil Horman <nhorman <at> tuxdriver.com>
> > > Date: Tue,  3 Jan 2012 10:29:54 -0500
> > > 
> > > > This warning was recently reported to me:
> > > 
> > > I've hit this too, see:
> > > 
> > > http://marc.info/?l=linux-kernel&m=132458146927890&w=2
> > > 
> > > and my analysis at:
> > > 
> > > http://marc.info/?l=linux-arch&m=132458391128660&w=2
> > > 
> > Yup, your analysis is correct. Regardless of the why behind msi enablement
> > failing, we need to gate the kobject_del/put in free_msi_irqs on successful
> > completion of kobject_init_and_add in populate_msi_sysfs.  This patch does that,
> > using the parent pointer as a flag.
> 
> I applied this to my -next branch; doesn't seem critical to land
> immediately.  If you disagree let me know and I'll pull it over to my
> for-linus branch instead.
> 
> Thanks,
I'm ok with it waiting, but I'll defer to Dave and others who have seen it
occur.  It sounds like its alot of log noise.
(Continue reading)

David Miller | 4 Jan 2012 20:56
Favicon

Re: [PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

From: Neil Horman <nhorman <at> tuxdriver.com>
Date: Wed, 4 Jan 2012 14:51:34 -0500

> On Wed, Jan 04, 2012 at 09:19:52AM -0800, Jesse Barnes wrote:
>> On Tue, 3 Jan 2012 13:53:05 -0500
>> Neil Horman <nhorman <at> tuxdriver.com> wrote:
>> 
>> > On Tue, Jan 03, 2012 at 01:05:26PM -0500, David Miller wrote:
>> > > From: Neil Horman <nhorman <at> tuxdriver.com>
>> > > Date: Tue,  3 Jan 2012 10:29:54 -0500
>> > > 
>> > > > This warning was recently reported to me:
>> > > 
>> > > I've hit this too, see:
>> > > 
>> > > http://marc.info/?l=linux-kernel&m=132458146927890&w=2
>> > > 
>> > > and my analysis at:
>> > > 
>> > > http://marc.info/?l=linux-arch&m=132458391128660&w=2
>> > > 
>> > Yup, your analysis is correct. Regardless of the why behind msi enablement
>> > failing, we need to gate the kobject_del/put in free_msi_irqs on successful
>> > completion of kobject_init_and_add in populate_msi_sysfs.  This patch does that,
>> > using the parent pointer as a flag.
>> 
>> I applied this to my -next branch; doesn't seem critical to land
>> immediately.  If you disagree let me know and I'll pull it over to my
>> for-linus branch instead.
>> 
(Continue reading)

Jesse Barnes | 4 Jan 2012 21:02
Favicon

Re: [PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

On Wed, 04 Jan 2012 14:56:19 -0500 (EST)
David Miller <davem <at> davemloft.net> wrote:

> From: Neil Horman <nhorman <at> tuxdriver.com>
> Date: Wed, 4 Jan 2012 14:51:34 -0500
> 
> > On Wed, Jan 04, 2012 at 09:19:52AM -0800, Jesse Barnes wrote:
> >> On Tue, 3 Jan 2012 13:53:05 -0500
> >> Neil Horman <nhorman <at> tuxdriver.com> wrote:
> >> 
> >> > On Tue, Jan 03, 2012 at 01:05:26PM -0500, David Miller wrote:
> >> > > From: Neil Horman <nhorman <at> tuxdriver.com>
> >> > > Date: Tue,  3 Jan 2012 10:29:54 -0500
> >> > > 
> >> > > > This warning was recently reported to me:
> >> > > 
> >> > > I've hit this too, see:
> >> > > 
> >> > > http://marc.info/?l=linux-kernel&m=132458146927890&w=2
> >> > > 
> >> > > and my analysis at:
> >> > > 
> >> > > http://marc.info/?l=linux-arch&m=132458391128660&w=2
> >> > > 
> >> > Yup, your analysis is correct. Regardless of the why behind msi enablement
> >> > failing, we need to gate the kobject_del/put in free_msi_irqs on successful
> >> > completion of kobject_init_and_add in populate_msi_sysfs.  This patch does that,
> >> > using the parent pointer as a flag.
> >> 
> >> I applied this to my -next branch; doesn't seem critical to land
(Continue reading)

Josh Boyer | 4 Jan 2012 22:18
Picon

Re: [PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

On Wed, Jan 4, 2012 at 3:02 PM, Jesse Barnes <jbarnes <at> virtuousgeek.org> wrote:
> On Wed, 04 Jan 2012 14:56:19 -0500 (EST)
> David Miller <davem <at> davemloft.net> wrote:
>
>> From: Neil Horman <nhorman <at> tuxdriver.com>
>> Date: Wed, 4 Jan 2012 14:51:34 -0500
>>
>> > On Wed, Jan 04, 2012 at 09:19:52AM -0800, Jesse Barnes wrote:
>> >> On Tue, 3 Jan 2012 13:53:05 -0500
>> >> Neil Horman <nhorman <at> tuxdriver.com> wrote:
>> >>
>> >> > On Tue, Jan 03, 2012 at 01:05:26PM -0500, David Miller wrote:
>> >> > > From: Neil Horman <nhorman <at> tuxdriver.com>
>> >> > > Date: Tue,  3 Jan 2012 10:29:54 -0500
>> >> > >
>> >> > > > This warning was recently reported to me:
>> >> > >
>> >> > > I've hit this too, see:
>> >> > >
>> >> > > http://marc.info/?l=linux-kernel&m=132458146927890&w=2
>> >> > >
>> >> > > and my analysis at:
>> >> > >
>> >> > > http://marc.info/?l=linux-arch&m=132458391128660&w=2
>> >> > >
>> >> > Yup, your analysis is correct. Regardless of the why behind msi enablement
>> >> > failing, we need to gate the kobject_del/put in free_msi_irqs on successful
>> >> > completion of kobject_init_and_add in populate_msi_sysfs.  This patch does that,
>> >> > using the parent pointer as a flag.
>> >>
(Continue reading)

Josh Boyer | 4 Jan 2012 22:25
Picon

Re: [PATCH] msi: fix imbalanced refcount of msi irq sysfs objects

On Wed, Jan 4, 2012 at 4:18 PM, Josh Boyer <jwboyer <at> gmail.com> wrote:
>>> The bug only exists in the PCI -next code I thought.
>>
>> Oh yeah, looks like it.  Lost track of my -next vs master branches
>> there...
>
> Er... Neil's commit log in the patch itself has an oops from 3.1.6 in
> it.  If the bug the patch fixes is only present in -next PCI code, how
> did it get hit on that release?
>
> Did we switch to talking about some other patch here and I'm just confused?

I'm just confused.  I forgot Neil backported that upstream code to the
F16 3.1.6 kernel.  Sorry for the noise.

josh

Gmane