2010-04-01 18:17:23

by Thomas Meyer

[permalink] [raw]
Subject: Re: 2.6.34-rc2: "ima_dec_counts: open/free imbalance"?

Am 01.04.2010 um 04:41 schrieb Eric Paris <[email protected]>:

> On Wed, 2010-03-31 at 16:32 -0700, Andrew Morton wrote:
>> On Sun, 28 Mar 2010 13:31:49 +0200
>> Thomas Meyer <[email protected]> wrote:
>>
>>> This warning/error/notice is new in 2.6.34-rc2+:
>>
>> Let's add some cc's. It might be a DRM bug.
>>
>> I'll ask Rafael and Maciej to track this as a post-2.6.33 regression,
>> thanks.
>
> The IMA code hasn't changed since .33 so my guess is something new the
> drm code is doing with obj->filp.
>
> Thomas, any idea what the newest kernel was that didn't show you this
> problem?

I first saw this message in 2.6.34-rc2 (+free_init_pages patch), but
that was also the first bootable kernel for me as I was hit by the
NO_BOOTMEM bug...

> It might help cut down my search in the morning....
>
> -Eric
>


2010-04-12 11:27:06

by Mimi Zohar

[permalink] [raw]
Subject: Re: 2.6.34-rc2: "ima_dec_counts: open/free imbalance"?

On Thu, 2010-04-01 at 20:17 +0200, Thomas Meyer wrote:
> Am 01.04.2010 um 04:41 schrieb Eric Paris <[email protected]>:
>
> > On Wed, 2010-03-31 at 16:32 -0700, Andrew Morton wrote:
> >> On Sun, 28 Mar 2010 13:31:49 +0200
> >> Thomas Meyer <[email protected]> wrote:
> >>
> >>> This warning/error/notice is new in 2.6.34-rc2+:
> >>
> >> Let's add some cc's. It might be a DRM bug.
> >>
> >> I'll ask Rafael and Maciej to track this as a post-2.6.33 regression,
> >> thanks.
> >
> > The IMA code hasn't changed since .33 so my guess is something new the
> > drm code is doing with obj->filp.
> >
> > Thomas, any idea what the newest kernel was that didn't show you this
> > problem?
>
> I first saw this message in 2.6.34-rc2 (+free_init_pages patch), but
> that was also the first bootable kernel for me as I was hit by the
> NO_BOOTMEM bug...
>
> > It might help cut down my search in the morning....
> >
> > -Eric
> >

The call to shmem_file_setup() in drm_gem_object_alloc() should properly
increment the IMA counters and the fput() in
drm_gem_object_free_common() should decrement them.

I noticed the 'bump' comment in 'include/drm/drmP.h' doesn't match the
code, but in fact does the exact opposite. Not sure if this is related.

static inline void
drm_gem_object_handle_unreference(struct drm_gem_object *obj)
{
if (obj == NULL)
return;

/*
* Must bump handle count first as this may be the last
* ref, in which case the object would disappear before we
* checked for a name
*/
kref_put(&obj->handlecount, drm_gem_object_handle_free);
drm_gem_object_unreference(obj);
}

Mimi