Skip to content
  • David Brownell's avatar
    [PATCH] USB: gadget section fixups · a353678d
    David Brownell authored
    
    
    Recent section changes broke gadget builds on some platforms.  This patch
    is the best fix that's available until better section markings exist:
    
     - There's a lot of cleanup code that gets used in both init and exit paths;
       stop marking it as "__exit".
    
       (Best fix for this would be an "__init_or_exit" section marking, putting
       the cleanup in __init when __exit sections get discarded else in __exit.)
    
     - Stop marking the use-once probe routines as "__init" since references
       to those routines are not allowed from driver structures.  They're now
       marked "__devinit", which in practice is a net lose.
    
       (Best fix for this is likely to separate such use-once probe routines
       from the driver structure ... but in general, all busses that aren't
       hotpluggable will be forced to waste memory for all probe-only code.)
    
    In general these broken section rules waste an average of two to four kBytes
    per driver of code bloat ... because none of the relevant code can ever be
    reused after module initialization.
    
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    a353678d