Subject: Re: linux-next: build failure after merge of the akpm tree

From: Alexey Dobriyan <[email-masked]>
Date: Sat, 17 Dec 2011 20:49:24 +0300

On Fri, Dec 16, 2011 at 02:00:39PM -0800, Andrew Morton wrote:
> On Fri, 16 Dec 2011 16:39:28 +1100
> Stephen Rothwell <[email-masked]> wrote:
> 
> > Hi Andrew,
> > 
> > After merging the akpm tree, today's linux-next build (powerpc
> > ppc64_defconfig) failed like this:
> > 
> > arch/powerpc/kernel/rtas_flash.c: In function 'rtas_flash_release':
> > arch/powerpc/kernel/rtas_flash.c:218:16: error: 'struct proc_dir_entry' has no member named 'count'
> > arch/powerpc/kernel/rtas_flash.c: In function 'rtas_excl_open':
> > arch/powerpc/kernel/rtas_flash.c:343:21: error: 'struct proc_dir_entry' has no member named 'count'
> > arch/powerpc/kernel/rtas_flash.c:348:16: error: 'struct proc_dir_entry' has no member named 'count'
> > arch/powerpc/kernel/rtas_flash.c: In function 'rtas_excl_release':
> > arch/powerpc/kernel/rtas_flash.c:358:16: error: 'struct proc_dir_entry' has no member named 'count'
> > arch/powerpc/kernel/rtas_flash.c: In function 'validate_flash_release':
> > arch/powerpc/kernel/rtas_flash.c:541:16: error: 'struct proc_dir_entry' has no member named 'count'
> > 
> > Caused by commit aef714db6205 ("core kernel: add refcount type and
> > refcount misuse debugging").
> > 
> > This would also break in drivers/nubus/proc.c
> > 
> > I have reverted that commit for today.
> 
> Thanks.  The plan apepars to be to make `struct kref' usable in this
> situation so I'll drop these patches.

If krefs would lose barriers, we might as well remove struct kref altogether.
Besides questionable mandatory passing of destructor to every kref_put(),
it is syntax sugar.

Non-atomic _refcnt_t do not fit into krefs regardless.

Now, rtas_flash.c. What this code simply doesn't work:
->count can be temporarily increased by simply issuing readdir().