At Mon, 23 Sep 2013 16:41:07 -0700, Sarah Sharp wrote:
The snd-usb-audio driver no longer loads properly on 3.12-rc2 when I plug in my USB headset. It worked fine on 3.11-rc4 (not sure about vanilla 3.11).
Trying to manually load the driver fails:
sarah@xanatos:~$ sudo modprobe snd-usb-audio FATAL: Error inserting snd_usb_audio (/lib/modules/3.12.0-rc2/kernel/sound/usb/snd-usb-audio.ko): Invalid argument
dmesg shows:
[ 44.231668] snd_usb_audio: `-2' invalid for parameter `index'
There is no corresponding code change in the USB audio driver side, so I guess it must be in the module parameter parser that got broken.
Does the patch below fix?
thanks,
Takashi
--- diff --git a/kernel/params.c b/kernel/params.c index 81c4e78..c00d5b5 100644 --- a/kernel/params.c +++ b/kernel/params.c @@ -254,11 +254,11 @@ int parse_args(const char *doing,
STANDARD_PARAM_DEF(byte, unsigned char, "%hhu", unsigned long, kstrtoul); -STANDARD_PARAM_DEF(short, short, "%hi", long, kstrtoul); +STANDARD_PARAM_DEF(short, short, "%hi", long, kstrtol); STANDARD_PARAM_DEF(ushort, unsigned short, "%hu", unsigned long, kstrtoul); -STANDARD_PARAM_DEF(int, int, "%i", long, kstrtoul); +STANDARD_PARAM_DEF(int, int, "%i", long, kstrtol); STANDARD_PARAM_DEF(uint, unsigned int, "%u", unsigned long, kstrtoul); -STANDARD_PARAM_DEF(long, long, "%li", long, kstrtoul); +STANDARD_PARAM_DEF(long, long, "%li", long, kstrtol); STANDARD_PARAM_DEF(ulong, unsigned long, "%lu", unsigned long, kstrtoul);
int param_set_charp(const char *val, const struct kernel_param *kp)