Re: [PATCH] Export symbol ksize()

From: Pekka Enberg
Date: Mon Feb 16 2009 - 09:09:24 EST


Hi Johannes,

On Mon, 2009-02-16 at 14:56 +0100, Johannes Weiner wrote:
> On Tue, Feb 10, 2009 at 04:06:53PM +0200, Pekka J Enberg wrote:
> > On Tue, Feb 10, 2009 at 03:35:03PM +0200, Pekka Enberg wrote:
> > > > We unexported ksize() because it's a problematic interface and you
> > > > almost certainly want to use the alternatives (e.g. krealloc). I think
> > > > I need bit more convincing to apply this patch...
> >
> > On Tue, 10 Feb 2009, Kirill A. Shutemov wrote:
> > > It just a quick fix. If anybody knows better solution, I have no
> > > objections.
> >
> > Herbert, what do you think of this (untested) patch? Alternatively, we
> > could do something like kfree_secure() but it seems overkill for this one
> > call-site.
>
> There are more callsites which do memset() + kfree():
>
> arch/s390/crypto/prng.c
> drivers/s390/crypto/zcrypt_pcixcc.c
> drivers/md/dm-crypt.c
> drivers/usb/host/hwa-hc.c
> drivers/usb/wusbcore/cbaf.c
> (drivers/w1/w1{,_int}.c)
> fs/cifs/misc.c
> fs/cifs/connect.c
> fs/ecryptfs/keystore.c
> fs/ecryptfs/messaging.c
> net/atm/mpoa_caches.c
>
> How about the attached patch? One problem is that zeroing ksize()
> bytes can have an overhead of nearly twice the actual allocation size.
>
> So we would need an interface that lets the caller pass in either a
> number of bytes it wants to have zeroed out or say idontknow.
>
> Perhaps add a size parameter that is cut to ksize() if it's too big?
> Or (ssize_t)-1 for figureitoutyourself?

I'd prefer the kzfree() interface as-is. I don't think you want to do
the memset/kfree in a fast-path anyway.

If you can convince Andrew to pick this patch up and maybe convert some
call-sites to actually use it, then:

Acked-by: Pekka Enberg <penberg@xxxxxxxxxxxxxx>

Pekka

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/