<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/usb/misc/emi26.c, branch v2.6.30-rc8</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>USB: emi26: fix oops on load</title>
<updated>2009-01-07T18:00:13+00:00</updated>
<author>
<name>Marcin Slusarz</name>
<email>marcin.slusarz@gmail.com</email>
</author>
<published>2009-01-04T12:25:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=327d74f6b65ddc8a042c43c11fdd4be0bb354668'/>
<id>327d74f6b65ddc8a042c43c11fdd4be0bb354668</id>
<content type='text'>
Fix oops introduced by commit ae93a55bf948753de0bb8e43fa9c027f786abb05
(emi26: use request_firmware()):

usb 1-1: new full speed USB device using uhci_hcd and address 2
usb 1-1: configuration #1 chosen from 1 choice
emi26 - firmware loader 1-1:1.0: emi26_probe start
usb 1-1: firmware: requesting emi26/loader.fw
usb 1-1: firmware: requesting emi26/bitstream.fw
usb 1-1: firmware: requesting emi26/firmware.fw
usb 1-1: emi26_set_reset - 1
usb 1-1: emi26_set_reset - 0
BUG: unable to handle kernel NULL pointer dereference at 00000000
IP: [&lt;f80dc487&gt;] emi26_probe+0x2f7/0x620 [emi26]
*pde = 00000000
Oops: 0000 [#1] SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/firmware/1-1/loading
Modules linked in: emi26(+) ipv6 cpufreq_ondemand coretemp arc4 ecb iwl3945 irtty_sir sir_dev nsc_ircc ehci_hcd uhci_hcd mac80211 irda usbcore snd_hda_intel thinkpad_acpi rfkill hwmon led_class e1000e snd_pcm cfg80211 snd_timer crc_ccitt snd snd_page_alloc aes_generic

Pid: 5082, comm: modprobe Not tainted (2.6.28 #2) 17023QG
EIP: 0060:[&lt;f80dc487&gt;] EFLAGS: 00010206 CPU: 0
EIP is at emi26_probe+0x2f7/0x620 [emi26]
EAX: 0000015c EBX: 00000000 ECX: c1ffd9c0 EDX: 00000000
ESI: 0000015c EDI: f6bb215c EBP: f6bb0400 ESP: f00ebcfc
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 5082, ti=f00ea000 task=f5c7c700 task.ti=f00ea000)
Stack:
 0000015c 000000a5 f6a67cb8 f80dc7e0 c01c6262 fbef2986 f6bb2000 00008fe0
 0000015c f715f748 f715f740 f715f738 f715f748 f6a67c00 f80dd040 f80dcfc0
 f6bb0400 fbacb290 f6a67c94 fbae0160 c01c70bf 00000000 f6a67c1c 00000000
Call Trace:
 [&lt;c01c6262&gt;] sysfs_add_one+0x12/0x50
 [&lt;fbacb290&gt;] usb_probe_interface+0xa0/0x140 [usbcore]
 [&lt;c01c70bf&gt;] sysfs_create_link+0xf/0x20
 [&lt;c02dead2&gt;] driver_probe_device+0x82/0x180
 [&lt;fbac9eeb&gt;] usb_match_id+0x3b/0x50 [usbcore]
 [&lt;c02dec4e&gt;] __driver_attach+0x7e/0x80
 [&lt;c02de27a&gt;] bus_for_each_dev+0x3a/0x60
 [&lt;c02de956&gt;] driver_attach+0x16/0x20
 [&lt;c02debd0&gt;] __driver_attach+0x0/0x80
 [&lt;c02de7b1&gt;] bus_add_driver+0x1a1/0x220
 [&lt;c02dee4d&gt;] driver_register+0x4d/0x120
 [&lt;c024e622&gt;] idr_get_empty_slot+0xf2/0x290
 [&lt;fbacab71&gt;] usb_register_driver+0x81/0x100 [usbcore]
 [&lt;f806c000&gt;] emi26_init+0x0/0x14 [emi26]
 [&lt;c0101126&gt;] do_one_initcall+0x36/0x1b0
 [&lt;c01c5e70&gt;] sysfs_ilookup_test+0x0/0x10
 [&lt;c0197a61&gt;] ifind+0x31/0x90
 [&lt;c01c6229&gt;] __sysfs_add_one+0x59/0x80
 [&lt;c01c64e4&gt;] sysfs_addrm_finish+0x14/0x1c0
 [&lt;c0175ca3&gt;] __vunmap+0xa3/0xd0
 [&lt;c014b854&gt;] load_module+0x1544/0x1640
 [&lt;c014b9d7&gt;] sys_init_module+0x87/0x1b0
 [&lt;c0187f41&gt;] sys_read+0x41/0x70
 [&lt;c01032a5&gt;] sysenter_do_call+0x12/0x21
 [&lt;c03d0000&gt;] wait_for_common+0x40/0x110
Code: 66 c1 e8 08 66 09 d0 75 a5 31 d2 89 e8 e8 72 fc ff ff 85 c0 0f 88 9a 02 00 00 b8 fa 00 00 00 e8 30 46 05 c8 8b 74 24 28 8b 5e 04 &lt;8b&gt; 03 89 44 24 1c 0f c8 89 44 24 1c 0f b7 4b 04 c7 44 24 20 00
EIP: [&lt;f80dc487&gt;] emi26_probe+0x2f7/0x620 [emi26] SS:ESP 0068:f00ebcfc
---[ end trace 2eefa13825431230 ]---

After the last "package" of firmware data is sent to the device, we dereference
NULL pointer (on access to rec-&gt;addr). Fix it.

Reported--by: David Flatz &lt;david@upcs.at&gt;
Tested-by: David Flatz &lt;david@upcs.at&gt;
Signed-off-by: Marcin Slusarz &lt;marcin.slusarz@gmail.com&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: stable &lt;stable@kernel.org&gt; [2.6.27, 2.6.28]
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix oops introduced by commit ae93a55bf948753de0bb8e43fa9c027f786abb05
(emi26: use request_firmware()):

usb 1-1: new full speed USB device using uhci_hcd and address 2
usb 1-1: configuration #1 chosen from 1 choice
emi26 - firmware loader 1-1:1.0: emi26_probe start
usb 1-1: firmware: requesting emi26/loader.fw
usb 1-1: firmware: requesting emi26/bitstream.fw
usb 1-1: firmware: requesting emi26/firmware.fw
usb 1-1: emi26_set_reset - 1
usb 1-1: emi26_set_reset - 0
BUG: unable to handle kernel NULL pointer dereference at 00000000
IP: [&lt;f80dc487&gt;] emi26_probe+0x2f7/0x620 [emi26]
*pde = 00000000
Oops: 0000 [#1] SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/firmware/1-1/loading
Modules linked in: emi26(+) ipv6 cpufreq_ondemand coretemp arc4 ecb iwl3945 irtty_sir sir_dev nsc_ircc ehci_hcd uhci_hcd mac80211 irda usbcore snd_hda_intel thinkpad_acpi rfkill hwmon led_class e1000e snd_pcm cfg80211 snd_timer crc_ccitt snd snd_page_alloc aes_generic

Pid: 5082, comm: modprobe Not tainted (2.6.28 #2) 17023QG
EIP: 0060:[&lt;f80dc487&gt;] EFLAGS: 00010206 CPU: 0
EIP is at emi26_probe+0x2f7/0x620 [emi26]
EAX: 0000015c EBX: 00000000 ECX: c1ffd9c0 EDX: 00000000
ESI: 0000015c EDI: f6bb215c EBP: f6bb0400 ESP: f00ebcfc
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 5082, ti=f00ea000 task=f5c7c700 task.ti=f00ea000)
Stack:
 0000015c 000000a5 f6a67cb8 f80dc7e0 c01c6262 fbef2986 f6bb2000 00008fe0
 0000015c f715f748 f715f740 f715f738 f715f748 f6a67c00 f80dd040 f80dcfc0
 f6bb0400 fbacb290 f6a67c94 fbae0160 c01c70bf 00000000 f6a67c1c 00000000
Call Trace:
 [&lt;c01c6262&gt;] sysfs_add_one+0x12/0x50
 [&lt;fbacb290&gt;] usb_probe_interface+0xa0/0x140 [usbcore]
 [&lt;c01c70bf&gt;] sysfs_create_link+0xf/0x20
 [&lt;c02dead2&gt;] driver_probe_device+0x82/0x180
 [&lt;fbac9eeb&gt;] usb_match_id+0x3b/0x50 [usbcore]
 [&lt;c02dec4e&gt;] __driver_attach+0x7e/0x80
 [&lt;c02de27a&gt;] bus_for_each_dev+0x3a/0x60
 [&lt;c02de956&gt;] driver_attach+0x16/0x20
 [&lt;c02debd0&gt;] __driver_attach+0x0/0x80
 [&lt;c02de7b1&gt;] bus_add_driver+0x1a1/0x220
 [&lt;c02dee4d&gt;] driver_register+0x4d/0x120
 [&lt;c024e622&gt;] idr_get_empty_slot+0xf2/0x290
 [&lt;fbacab71&gt;] usb_register_driver+0x81/0x100 [usbcore]
 [&lt;f806c000&gt;] emi26_init+0x0/0x14 [emi26]
 [&lt;c0101126&gt;] do_one_initcall+0x36/0x1b0
 [&lt;c01c5e70&gt;] sysfs_ilookup_test+0x0/0x10
 [&lt;c0197a61&gt;] ifind+0x31/0x90
 [&lt;c01c6229&gt;] __sysfs_add_one+0x59/0x80
 [&lt;c01c64e4&gt;] sysfs_addrm_finish+0x14/0x1c0
 [&lt;c0175ca3&gt;] __vunmap+0xa3/0xd0
 [&lt;c014b854&gt;] load_module+0x1544/0x1640
 [&lt;c014b9d7&gt;] sys_init_module+0x87/0x1b0
 [&lt;c0187f41&gt;] sys_read+0x41/0x70
 [&lt;c01032a5&gt;] sysenter_do_call+0x12/0x21
 [&lt;c03d0000&gt;] wait_for_common+0x40/0x110
Code: 66 c1 e8 08 66 09 d0 75 a5 31 d2 89 e8 e8 72 fc ff ff 85 c0 0f 88 9a 02 00 00 b8 fa 00 00 00 e8 30 46 05 c8 8b 74 24 28 8b 5e 04 &lt;8b&gt; 03 89 44 24 1c 0f c8 89 44 24 1c 0f b7 4b 04 c7 44 24 20 00
EIP: [&lt;f80dc487&gt;] emi26_probe+0x2f7/0x620 [emi26] SS:ESP 0068:f00ebcfc
---[ end trace 2eefa13825431230 ]---

After the last "package" of firmware data is sent to the device, we dereference
NULL pointer (on access to rec-&gt;addr). Fix it.

Reported--by: David Flatz &lt;david@upcs.at&gt;
Tested-by: David Flatz &lt;david@upcs.at&gt;
Signed-off-by: Marcin Slusarz &lt;marcin.slusarz@gmail.com&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: stable &lt;stable@kernel.org&gt; [2.6.27, 2.6.28]
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: remove err() macro from usb misc drivers</title>
<updated>2008-10-17T21:41:13+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@suse.de</email>
</author>
<published>2008-08-14T16:37:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fd3f1917e345d852ef9ae36178719f4e639f70ae'/>
<id>fd3f1917e345d852ef9ae36178719f4e639f70ae</id>
<content type='text'>
USB should not be having it's own printk macros, so remove err() and
use the system-wide standard of dev_err() wherever possible.  In the
few places that will not work out, use a basic printk().

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
USB should not be having it's own printk macros, so remove err() and
use the system-wide standard of dev_err() wherever possible.  In the
few places that will not work out, use a basic printk().

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: remove info() macro from usb/misc drivers</title>
<updated>2008-10-17T21:41:09+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@suse.de</email>
</author>
<published>2008-08-18T20:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1b29a375fb0b79a11a2d18e7bf5f6da422a35025'/>
<id>1b29a375fb0b79a11a2d18e7bf5f6da422a35025</id>
<content type='text'>
USB should not be having it's own printk macros, so remove info() and
use the system-wide standard of dev_info() wherever possible.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
USB should not be having it's own printk macros, so remove info() and
use the system-wide standard of dev_info() wherever possible.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>emi26: use request_firmware()</title>
<updated>2008-07-10T13:49:12+00:00</updated>
<author>
<name>David Woodhouse</name>
<email>dwmw2@infradead.org</email>
</author>
<published>2008-05-30T13:19:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ae93a55bf948753de0bb8e43fa9c027f786abb05'/>
<id>ae93a55bf948753de0bb8e43fa9c027f786abb05</id>
<content type='text'>
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: replace remaining __FUNCTION__ occurrences</title>
<updated>2008-04-25T04:16:55+00:00</updated>
<author>
<name>Harvey Harrison</name>
<email>harvey.harrison@gmail.com</email>
</author>
<published>2008-03-04T00:08:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=441b62c1edb986827154768d89bbac0ba779984f'/>
<id>441b62c1edb986827154768d89bbac0ba779984f</id>
<content type='text'>
__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison &lt;harvey.harrison@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison &lt;harvey.harrison@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: missing error check in emi26</title>
<updated>2007-10-25T19:18:45+00:00</updated>
<author>
<name>Oliver Neukum</name>
<email>oliver@neukum.org</email>
</author>
<published>2007-10-25T13:38:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cf4cf0bb89cbff95c5be8f8d3c68e55f38f94ba7'/>
<id>cf4cf0bb89cbff95c5be8f8d3c68e55f38f94ba7</id>
<content type='text'>
this drivers lacks an error check.

Signed-off-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this drivers lacks an error check.

Signed-off-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Convert files to UTF-8 and some cleanups</title>
<updated>2007-10-19T21:21:04+00:00</updated>
<author>
<name>Jan Engelhardt</name>
<email>jengelh@gmx.de</email>
</author>
<published>2007-10-19T21:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=96de0e252cedffad61b3cb5e05662c591898e69a'/>
<id>96de0e252cedffad61b3cb5e05662c591898e69a</id>
<content type='text'>
* Convert files to UTF-8.

  * Also correct some people's names
    (one example is Eißfeldt, which was found in a source file.
    Given that the author used an ß at all in a source file
    indicates that the real name has in fact a 'ß' and not an 'ss',
    which is commonly used as a substitute for 'ß' when limited to
    7bit.)

  * Correct town names (Goettingen -&gt; Göttingen)

  * Update Eberhard Mönkeberg's address (http://lkml.org/lkml/2007/1/8/313)

Signed-off-by: Jan Engelhardt &lt;jengelh@gmx.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Convert files to UTF-8.

  * Also correct some people's names
    (one example is Eißfeldt, which was found in a source file.
    Given that the author used an ß at all in a source file
    indicates that the real name has in fact a 'ß' and not an 'ss',
    which is commonly used as a substitute for 'ß' when limited to
    7bit.)

  * Correct town names (Goettingen -&gt; Göttingen)

  * Update Eberhard Mönkeberg's address (http://lkml.org/lkml/2007/1/8/313)

Signed-off-by: Jan Engelhardt &lt;jengelh@gmx.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: kmemdup() cleanup in drivers/usb/</title>
<updated>2006-12-01T22:23:27+00:00</updated>
<author>
<name>Eric Sesterhenn</name>
<email>snakebyte@gmx.de</email>
</author>
<published>2006-10-26T19:06:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5d7efe5b3768bf53df9b87380ea68baacf11f933'/>
<id>5d7efe5b3768bf53df9b87380ea68baacf11f933</id>
<content type='text'>
replace open coded kmemdup() to save some screen space,
and allow inlining/not inlining to be triggered by gcc.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
replace open coded kmemdup() to save some screen space,
and allow inlining/not inlining to be triggered by gcc.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] USB: Emagic USB firmware loading fixes</title>
<updated>2006-05-12T18:58:09+00:00</updated>
<author>
<name>Monty</name>
<email>xiphmont@xiph.org</email>
</author>
<published>2006-05-09T19:37:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=16c23f7d88cbcce491f9370b2846fad66e8ef319'/>
<id>16c23f7d88cbcce491f9370b2846fad66e8ef319</id>
<content type='text'>
It's become apparent as machines get faster that the emagic kernel firmware
loaders (based on the ezusb loader) have a reset race.  a 400MHz TiBook
never tripped it, but a 2GHz Pentium M seems to hit it about 30% of the
time.  The bug is seen as a hung USB box and the kernel error:

drivers/usb/misc/emi62.c: emi62_load_firmware - error loading firmware:
error = -110

The patch below inserts a delay after deasserting reset to allow the box to
settle before a new command is issued.  This affects only device startup.

Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's become apparent as machines get faster that the emagic kernel firmware
loaders (based on the ezusb loader) have a reset race.  a 400MHz TiBook
never tripped it, but a 2GHz Pentium M seems to hit it about 30% of the
time.  The bug is seen as a hung USB box and the kernel error:

drivers/usb/misc/emi62.c: emi62_load_firmware - error loading firmware:
error = -110

The patch below inserts a delay after deasserting reset to allow the box to
settle before a new command is issued.  This affects only device startup.

Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] USB: remove .owner field from struct usb_driver</title>
<updated>2006-01-04T21:48:34+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@suse.de</email>
</author>
<published>2005-11-21T22:53:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=75318d2d7cab77b14c5d3dbd5e69f2680a769e16'/>
<id>75318d2d7cab77b14c5d3dbd5e69f2680a769e16</id>
<content type='text'>
It is no longer needed, so let's remove it, saving a bit of memory.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is no longer needed, so let's remove it, saving a bit of memory.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
