Subject: Re: [PATCH RFC] usb gadget: introduce usb_gadget_probe_driver

From: Michał Nazarewicz <[email-masked]>
Date: Fri, 30 Jul 2010 17:16:46 +0200

On Fri, 30 Jul 2010 16:49:14 +0200, Uwe Kleine-König <[email-masked]> wrote:

> This is like usb_gadget_register_driver with the only difference that it
> gets the bind function as parameter instead of using driver->bind.  This
> allows fixing section mismatches like
>
> 	WARNING: drivers/usb/gadget/g_printer.o(.data+0xc): Section mismatch in
> 	reference from the variable printer_driver to the function
> 	.init.text:printer_bind()
> 	The variable printer_driver references
> 	the function __init printer_bind()
>
> by using usb_gadget_probe_driver with driver->bind = NULL.  When all
> drivers are fixed to use the new function the bind member of struct
> usb_gadget_driver can go away.
>
> Signed-off-by: Uwe Kleine-König <[email-masked]>
> Cc: Michal Nazarewicz <[email-masked]>
> Cc: Greg Kroah-Hartman <[email-masked]>
> ---
> Hello,
>
> there is an alternative patch in Greg's tree [1], but IMHO mine is
> better as it doesn't need __ref.
>
> Thoughts?

Personally I don't see advantage of this over changing the __init to __ref.
Or am I missing something?  I see your patch as an unnecessary API change.
The way I understand it, __ref was introduced exactly for cases like this
one where function is referenced from "normal" data but used only during
init.  Could you try to clarify for me why you think your solution is
better then mine?

-- 
Best regards,                                        _     _
| Humble Liege of Serenely Enlightened Majesty of  o' \,=./ `o
| Computer Science,  Michał "mina86" Nazarewicz       (o o)
+----[mina86*mina86.com]---[mina86*jabber.org]----ooO--(_)--Ooo--