Re: __unsafe() usage

Dan Williams
2007-07-23T23:42:33Z

On 7/23/07, Rusty Russell <rusty@rustcorp.com.au> wrote:
> On Mon, 2007-07-23 at 19:59 +0200, Adrian Bunk wrote:
> > On Mon, Jul 23, 2007 at 09:05:54AM -0700, Nelson, Shannon wrote:
> > > Gabriel C [mailto:nix.or.die@googlemail.com]
> > > >
> > > >Hi,
> > > >
> > > >I got this warning on current git using gcc 4.2.1 :
> > > >
> > > >...
> > > >
> > > >drivers/dma/ioatdma.c: In function 'ioat_init_module':
> > > >drivers/dma/ioatdma.c:816: warning: the address of
> > > >'__this_module' will always evaluate as 'true'
> > >...
> >
> > I'm less interested in why this gives a warning, more interesting is the
> > code:
> > __unsafe(THIS_MODULE);
> >
> > @Rusty:
> > As far as I understand it, __unsafe() wasn't intended for such a usage,
> > and simply not providing an exit function would be the right solution?
> > If this is true, and since the MOD_INC_USE_COUNT compat code is long
> > gone, shouldn't we be able to completely remove __unsafe() and the
> > struct member "unsafe"?
>
> Yes, indeed, something like this:
> ==
> Remove "unsafe" from module struct
>
> Adrian Bunk points out that "unsafe" was used to mark modules touched by
> the deprecated MOD_INC_USE_COUNT interface, which has long gone. It's
> time to remove the member from the module structure, as well.
>
> If you want a module which can't unload, don't register an exit
> function.
>
> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Acked-by: Dan Williams <dan.j.williams@intel.com>