lkml.org 
[lkml]   [2011]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[017/115] USB: g_printer: fix bug in module parameter definitions
    2.6.32-longterm review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Alan Stern <stern@rowland.harvard.edu>

    commit ad84e4a9efb7c8ed322bafb6ebdb9c3a49a3d3a8 upstream.

    This patch (as1442) fixes a bug in g_printer: Module parameters should
    not be marked "__initdata" if they are accessible in sysfs (i.e., if
    the mode value in the module_param() macro is nonzero). Otherwise
    attempts to access the parameters will cause addressing violations.

    Character-string module parameters must not be marked "__initdata"
    if the module can be unloaded, because the kernel needs to access the
    parameter variable at unload time in order to free the
    dynamically-allocated string.

    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    CC: Roland Kletzing <devzero@web.de>
    CC: Craig W. Nadler <craig@nadler.us>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/usb/gadget/printer.c | 14 +++++++-------
    1 file changed, 7 insertions(+), 7 deletions(-)

    --- a/drivers/usb/gadget/printer.c
    +++ b/drivers/usb/gadget/printer.c
    @@ -130,31 +130,31 @@ static struct printer_dev usb_printer_ga
    * parameters are in UTF-8 (superset of ASCII's 7 bit characters).
    */

    -static ushort __initdata idVendor;
    +static ushort idVendor;
    module_param(idVendor, ushort, S_IRUGO);
    MODULE_PARM_DESC(idVendor, "USB Vendor ID");

    -static ushort __initdata idProduct;
    +static ushort idProduct;
    module_param(idProduct, ushort, S_IRUGO);
    MODULE_PARM_DESC(idProduct, "USB Product ID");

    -static ushort __initdata bcdDevice;
    +static ushort bcdDevice;
    module_param(bcdDevice, ushort, S_IRUGO);
    MODULE_PARM_DESC(bcdDevice, "USB Device version (BCD)");

    -static char *__initdata iManufacturer;
    +static char *iManufacturer;
    module_param(iManufacturer, charp, S_IRUGO);
    MODULE_PARM_DESC(iManufacturer, "USB Manufacturer string");

    -static char *__initdata iProduct;
    +static char *iProduct;
    module_param(iProduct, charp, S_IRUGO);
    MODULE_PARM_DESC(iProduct, "USB Product string");

    -static char *__initdata iSerialNum;
    +static char *iSerialNum;
    module_param(iSerialNum, charp, S_IRUGO);
    MODULE_PARM_DESC(iSerialNum, "1");

    -static char *__initdata iPNPstring;
    +static char *iPNPstring;
    module_param(iPNPstring, charp, S_IRUGO);
    MODULE_PARM_DESC(iPNPstring, "MFG:linux;MDL:g_printer;CLS:PRINTER;SN:1;");




    \
     
     \ /
      Last update: 2011-02-16 02:53    [W:6.399 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site