<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net, branch v3.12.34</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>pptp: fix stack info leak in pptp_getname()</title>
<updated>2014-11-27T10:14:06+00:00</updated>
<author>
<name>Mathias Krause</name>
<email>minipli@googlemail.com</email>
</author>
<published>2014-11-19T17:05:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=416b05bc9db9b9cd48418391538478a438e762b3'/>
<id>416b05bc9db9b9cd48418391538478a438e762b3</id>
<content type='text'>
[ Upstream commit a5f6fc28d6e6cc379c6839f21820e62262419584 ]

pptp_getname() only partially initializes the stack variable sa,
particularly only fills the pptp part of the sa_addr union. The code
thereby discloses 16 bytes of kernel stack memory via getsockname().

Fix this by memset(0)'ing the union before.

Cc: Dmitry Kozlov &lt;xeb@mail.ru&gt;
Signed-off-by: Mathias Krause &lt;minipli@googlemail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit a5f6fc28d6e6cc379c6839f21820e62262419584 ]

pptp_getname() only partially initializes the stack variable sa,
particularly only fills the pptp part of the sa_addr union. The code
thereby discloses 16 bytes of kernel stack memory via getsockname().

Fix this by memset(0)'ing the union before.

Cc: Dmitry Kozlov &lt;xeb@mail.ru&gt;
Signed-off-by: Mathias Krause &lt;minipli@googlemail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmi_wwan: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem</title>
<updated>2014-11-27T10:14:06+00:00</updated>
<author>
<name>Martin Hauke</name>
<email>mardnh@gmx.de</email>
</author>
<published>2014-11-16T18:55:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6d986f090a2f895a0d3a3f42122402aa3d3427b7'/>
<id>6d986f090a2f895a0d3a3f42122402aa3d3427b7</id>
<content type='text'>
[ Upstream commit bb2bdeb83fb125c95e47fc7eca2a3e8f868e2a74 ]

Added the USB VID/PID for the HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e)

Signed-off-by: Martin Hauke &lt;mardnh@gmx.de&gt;
Acked-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit bb2bdeb83fb125c95e47fc7eca2a3e8f868e2a74 ]

Added the USB VID/PID for the HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e)

Signed-off-by: Martin Hauke &lt;mardnh@gmx.de&gt;
Acked-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ieee802154: fix error handling in ieee802154fake_probe()</title>
<updated>2014-11-27T10:14:06+00:00</updated>
<author>
<name>Alexey Khoroshilov</name>
<email>khoroshilov@ispras.ru</email>
</author>
<published>2014-11-14T23:11:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0d55bc1cf51599a78ae3bb5182fa2eda1e9c0c7c'/>
<id>0d55bc1cf51599a78ae3bb5182fa2eda1e9c0c7c</id>
<content type='text'>
[ Upstream commit 8c2dd54485ccee7fc4086611e188478584758c8d ]

In case of any failure ieee802154fake_probe() just calls unregister_netdev().
But it does not look safe to unregister netdevice before it was registered.

The patch implements straightforward resource deallocation in case of
failure in ieee802154fake_probe().

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov &lt;khoroshilov@ispras.ru&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 8c2dd54485ccee7fc4086611e188478584758c8d ]

In case of any failure ieee802154fake_probe() just calls unregister_netdev().
But it does not look safe to unregister netdevice before it was registered.

The patch implements straightforward resource deallocation in case of
failure in ieee802154fake_probe().

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov &lt;khoroshilov@ispras.ru&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211_hwsim: release driver when ieee80211_register_hw fails</title>
<updated>2014-11-19T17:38:17+00:00</updated>
<author>
<name>Junjie Mao</name>
<email>eternal.n08@gmail.com</email>
</author>
<published>2014-10-28T01:31:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4d2ff0c7516b4e636e59a0d1e036dc33750c1f89'/>
<id>4d2ff0c7516b4e636e59a0d1e036dc33750c1f89</id>
<content type='text'>
commit 805dbe17d1c832ad341f14fae8cedf41b67ca6fa upstream.

The driver is not released when ieee80211_register_hw fails in
mac80211_hwsim_create_radio, leading to the access to the unregistered (and
possibly freed) device in platform_driver_unregister:

[    0.447547] mac80211_hwsim: ieee80211_register_hw failed (-2)
[    0.448292] ------------[ cut here ]------------
[    0.448854] WARNING: CPU: 0 PID: 1 at ../include/linux/kref.h:47 kobject_get+0x33/0x50()
[    0.449839] CPU: 0 PID: 1 Comm: swapper Not tainted 3.17.0-00001-gdd46990-dirty #2
[    0.450813] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.451512]  00000000 00000000 78025e38 7967c6c6 78025e68 7905e09b 7988b480 00000000
[    0.452579]  00000001 79887d62 0000002f 79170bb3 79170bb3 78397008 79ac9d74 00000001
[    0.453614]  78025e78 7905e15d 00000009 00000000 78025e84 79170bb3 78397000 78025e8c
[    0.454632] Call Trace:
[    0.454921]  [&lt;7967c6c6&gt;] dump_stack+0x16/0x18
[    0.455453]  [&lt;7905e09b&gt;] warn_slowpath_common+0x6b/0x90
[    0.456067]  [&lt;79170bb3&gt;] ? kobject_get+0x33/0x50
[    0.456612]  [&lt;79170bb3&gt;] ? kobject_get+0x33/0x50
[    0.457155]  [&lt;7905e15d&gt;] warn_slowpath_null+0x1d/0x20
[    0.457748]  [&lt;79170bb3&gt;] kobject_get+0x33/0x50
[    0.458274]  [&lt;7925824f&gt;] get_device+0xf/0x20
[    0.458779]  [&lt;7925b5cd&gt;] driver_detach+0x3d/0xa0
[    0.459331]  [&lt;7925a3ff&gt;] bus_remove_driver+0x8f/0xb0
[    0.459927]  [&lt;7925bf80&gt;] ? class_unregister+0x40/0x80
[    0.460660]  [&lt;7925bad7&gt;] driver_unregister+0x47/0x50
[    0.461248]  [&lt;7925c033&gt;] ? class_destroy+0x13/0x20
[    0.461824]  [&lt;7925d07b&gt;] platform_driver_unregister+0xb/0x10
[    0.462507]  [&lt;79b51ba0&gt;] init_mac80211_hwsim+0x3e8/0x3f9
[    0.463161]  [&lt;79b30c58&gt;] do_one_initcall+0x106/0x1a9
[    0.463758]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.464393]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.465001]  [&lt;79071935&gt;] ? parse_args+0x2f5/0x480
[    0.465569]  [&lt;7906b41e&gt;] ? __usermodehelper_set_disable_depth+0x3e/0x50
[    0.466345]  [&lt;79b30dd9&gt;] kernel_init_freeable+0xde/0x17d
[    0.466972]  [&lt;79b304d6&gt;] ? do_early_param+0x7a/0x7a
[    0.467546]  [&lt;79677b1b&gt;] kernel_init+0xb/0xe0
[    0.468072]  [&lt;79075f42&gt;] ? schedule_tail+0x12/0x40
[    0.468658]  [&lt;79686580&gt;] ret_from_kernel_thread+0x20/0x30
[    0.469303]  [&lt;79677b10&gt;] ? rest_init+0xc0/0xc0
[    0.469829] ---[ end trace ad8ac403ff8aef5c ]---
[    0.470509] ------------[ cut here ]------------
[    0.471047] WARNING: CPU: 0 PID: 1 at ../kernel/locking/lockdep.c:3161 __lock_acquire.isra.22+0x7aa/0xb00()
[    0.472163] DEBUG_LOCKS_WARN_ON(id &gt;= MAX_LOCKDEP_KEYS)
[    0.472774] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      3.17.0-00001-gdd46990-dirty #2
[    0.473815] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.474492]  78025de0 78025de0 78025da0 7967c6c6 78025dd0 7905e09b 79888931 78025dfc
[    0.475515]  00000001 79888a93 00000c59 7907f33a 7907f33a 78028000 fffe9d09 00000000
[    0.476519]  78025de8 7905e10e 00000009 78025de0 79888931 78025dfc 78025e24 7907f33a
[    0.477523] Call Trace:
[    0.477821]  [&lt;7967c6c6&gt;] dump_stack+0x16/0x18
[    0.478352]  [&lt;7905e09b&gt;] warn_slowpath_common+0x6b/0x90
[    0.478976]  [&lt;7907f33a&gt;] ? __lock_acquire.isra.22+0x7aa/0xb00
[    0.479658]  [&lt;7907f33a&gt;] ? __lock_acquire.isra.22+0x7aa/0xb00
[    0.480417]  [&lt;7905e10e&gt;] warn_slowpath_fmt+0x2e/0x30
[    0.480479]  [&lt;7907f33a&gt;] __lock_acquire.isra.22+0x7aa/0xb00
[    0.480479]  [&lt;79078aa5&gt;] ? sched_clock_cpu+0xb5/0xf0
[    0.480479]  [&lt;7907fd06&gt;] lock_acquire+0x56/0x70
[    0.480479]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.480479]  [&lt;79682d11&gt;] mutex_lock_nested+0x61/0x2a0
[    0.480479]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.480479]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.480479]  [&lt;7925b5e8&gt;] driver_detach+0x58/0xa0
[    0.480479]  [&lt;7925a3ff&gt;] bus_remove_driver+0x8f/0xb0
[    0.480479]  [&lt;7925bf80&gt;] ? class_unregister+0x40/0x80
[    0.480479]  [&lt;7925bad7&gt;] driver_unregister+0x47/0x50
[    0.480479]  [&lt;7925c033&gt;] ? class_destroy+0x13/0x20
[    0.480479]  [&lt;7925d07b&gt;] platform_driver_unregister+0xb/0x10
[    0.480479]  [&lt;79b51ba0&gt;] init_mac80211_hwsim+0x3e8/0x3f9
[    0.480479]  [&lt;79b30c58&gt;] do_one_initcall+0x106/0x1a9
[    0.480479]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.480479]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.480479]  [&lt;79071935&gt;] ? parse_args+0x2f5/0x480
[    0.480479]  [&lt;7906b41e&gt;] ? __usermodehelper_set_disable_depth+0x3e/0x50
[    0.480479]  [&lt;79b30dd9&gt;] kernel_init_freeable+0xde/0x17d
[    0.480479]  [&lt;79b304d6&gt;] ? do_early_param+0x7a/0x7a
[    0.480479]  [&lt;79677b1b&gt;] kernel_init+0xb/0xe0
[    0.480479]  [&lt;79075f42&gt;] ? schedule_tail+0x12/0x40
[    0.480479]  [&lt;79686580&gt;] ret_from_kernel_thread+0x20/0x30
[    0.480479]  [&lt;79677b10&gt;] ? rest_init+0xc0/0xc0
[    0.480479] ---[ end trace ad8ac403ff8aef5d ]---
[    0.495478] BUG: unable to handle kernel paging request at 00200200
[    0.496257] IP: [&lt;79682de5&gt;] mutex_lock_nested+0x135/0x2a0
[    0.496923] *pde = 00000000
[    0.497290] Oops: 0002 [#1]
[    0.497653] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      3.17.0-00001-gdd46990-dirty #2
[    0.498659] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.499321] task: 78028000 ti: 78024000 task.ti: 78024000
[    0.499955] EIP: 0060:[&lt;79682de5&gt;] EFLAGS: 00010097 CPU: 0
[    0.500620] EIP is at mutex_lock_nested+0x135/0x2a0
[    0.501145] EAX: 00200200 EBX: 78397434 ECX: 78397460 EDX: 78025e70
[    0.501816] ESI: 00000246 EDI: 78028000 EBP: 78025e8c ESP: 78025e54
[    0.502497]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[    0.503076] CR0: 8005003b CR2: 00200200 CR3: 01b9d000 CR4: 00000690
[    0.503773] Stack:
[    0.503998]  00000000 00000001 00000000 7925b5e8 78397460 7925b5e8 78397474 78397460
[    0.504944]  00200200 11111111 78025e70 78397000 79ac9d74 00000001 78025ea0 7925b5e8
[    0.505451]  79ac9d74 fffffffe 00000001 78025ebc 7925a3ff 7a251398 78025ec8 7925bf80
[    0.505451] Call Trace:
[    0.505451]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.505451]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.505451]  [&lt;7925b5e8&gt;] driver_detach+0x58/0xa0
[    0.505451]  [&lt;7925a3ff&gt;] bus_remove_driver+0x8f/0xb0
[    0.505451]  [&lt;7925bf80&gt;] ? class_unregister+0x40/0x80
[    0.505451]  [&lt;7925bad7&gt;] driver_unregister+0x47/0x50
[    0.505451]  [&lt;7925c033&gt;] ? class_destroy+0x13/0x20
[    0.505451]  [&lt;7925d07b&gt;] platform_driver_unregister+0xb/0x10
[    0.505451]  [&lt;79b51ba0&gt;] init_mac80211_hwsim+0x3e8/0x3f9
[    0.505451]  [&lt;79b30c58&gt;] do_one_initcall+0x106/0x1a9
[    0.505451]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.505451]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.505451]  [&lt;79071935&gt;] ? parse_args+0x2f5/0x480
[    0.505451]  [&lt;7906b41e&gt;] ? __usermodehelper_set_disable_depth+0x3e/0x50
[    0.505451]  [&lt;79b30dd9&gt;] kernel_init_freeable+0xde/0x17d
[    0.505451]  [&lt;79b304d6&gt;] ? do_early_param+0x7a/0x7a
[    0.505451]  [&lt;79677b1b&gt;] kernel_init+0xb/0xe0
[    0.505451]  [&lt;79075f42&gt;] ? schedule_tail+0x12/0x40
[    0.505451]  [&lt;79686580&gt;] ret_from_kernel_thread+0x20/0x30
[    0.505451]  [&lt;79677b10&gt;] ? rest_init+0xc0/0xc0
[    0.505451] Code: 89 d8 e8 cf 9b 9f ff 8b 4f 04 8d 55 e4 89 d8 e8 72 9d 9f ff 8d 43 2c 89 c1 89 45 d8 8b 43 30 8d 55 e4 89 53 30 89 4d e4 89 45 e8 &lt;89&gt; 10 8b 55 dc 8b 45 e0 89 7d ec e8 db af 9f ff eb 11 90 31 c0
[    0.505451] EIP: [&lt;79682de5&gt;] mutex_lock_nested+0x135/0x2a0 SS:ESP 0068:78025e54
[    0.505451] CR2: 0000000000200200
[    0.505451] ---[ end trace ad8ac403ff8aef5e ]---
[    0.505451] Kernel panic - not syncing: Fatal exception

Fixes: 9ea927748ced ("mac80211_hwsim: Register and bind to driver")
Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Junjie Mao &lt;eternal.n08@gmail.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 805dbe17d1c832ad341f14fae8cedf41b67ca6fa upstream.

The driver is not released when ieee80211_register_hw fails in
mac80211_hwsim_create_radio, leading to the access to the unregistered (and
possibly freed) device in platform_driver_unregister:

[    0.447547] mac80211_hwsim: ieee80211_register_hw failed (-2)
[    0.448292] ------------[ cut here ]------------
[    0.448854] WARNING: CPU: 0 PID: 1 at ../include/linux/kref.h:47 kobject_get+0x33/0x50()
[    0.449839] CPU: 0 PID: 1 Comm: swapper Not tainted 3.17.0-00001-gdd46990-dirty #2
[    0.450813] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.451512]  00000000 00000000 78025e38 7967c6c6 78025e68 7905e09b 7988b480 00000000
[    0.452579]  00000001 79887d62 0000002f 79170bb3 79170bb3 78397008 79ac9d74 00000001
[    0.453614]  78025e78 7905e15d 00000009 00000000 78025e84 79170bb3 78397000 78025e8c
[    0.454632] Call Trace:
[    0.454921]  [&lt;7967c6c6&gt;] dump_stack+0x16/0x18
[    0.455453]  [&lt;7905e09b&gt;] warn_slowpath_common+0x6b/0x90
[    0.456067]  [&lt;79170bb3&gt;] ? kobject_get+0x33/0x50
[    0.456612]  [&lt;79170bb3&gt;] ? kobject_get+0x33/0x50
[    0.457155]  [&lt;7905e15d&gt;] warn_slowpath_null+0x1d/0x20
[    0.457748]  [&lt;79170bb3&gt;] kobject_get+0x33/0x50
[    0.458274]  [&lt;7925824f&gt;] get_device+0xf/0x20
[    0.458779]  [&lt;7925b5cd&gt;] driver_detach+0x3d/0xa0
[    0.459331]  [&lt;7925a3ff&gt;] bus_remove_driver+0x8f/0xb0
[    0.459927]  [&lt;7925bf80&gt;] ? class_unregister+0x40/0x80
[    0.460660]  [&lt;7925bad7&gt;] driver_unregister+0x47/0x50
[    0.461248]  [&lt;7925c033&gt;] ? class_destroy+0x13/0x20
[    0.461824]  [&lt;7925d07b&gt;] platform_driver_unregister+0xb/0x10
[    0.462507]  [&lt;79b51ba0&gt;] init_mac80211_hwsim+0x3e8/0x3f9
[    0.463161]  [&lt;79b30c58&gt;] do_one_initcall+0x106/0x1a9
[    0.463758]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.464393]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.465001]  [&lt;79071935&gt;] ? parse_args+0x2f5/0x480
[    0.465569]  [&lt;7906b41e&gt;] ? __usermodehelper_set_disable_depth+0x3e/0x50
[    0.466345]  [&lt;79b30dd9&gt;] kernel_init_freeable+0xde/0x17d
[    0.466972]  [&lt;79b304d6&gt;] ? do_early_param+0x7a/0x7a
[    0.467546]  [&lt;79677b1b&gt;] kernel_init+0xb/0xe0
[    0.468072]  [&lt;79075f42&gt;] ? schedule_tail+0x12/0x40
[    0.468658]  [&lt;79686580&gt;] ret_from_kernel_thread+0x20/0x30
[    0.469303]  [&lt;79677b10&gt;] ? rest_init+0xc0/0xc0
[    0.469829] ---[ end trace ad8ac403ff8aef5c ]---
[    0.470509] ------------[ cut here ]------------
[    0.471047] WARNING: CPU: 0 PID: 1 at ../kernel/locking/lockdep.c:3161 __lock_acquire.isra.22+0x7aa/0xb00()
[    0.472163] DEBUG_LOCKS_WARN_ON(id &gt;= MAX_LOCKDEP_KEYS)
[    0.472774] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      3.17.0-00001-gdd46990-dirty #2
[    0.473815] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.474492]  78025de0 78025de0 78025da0 7967c6c6 78025dd0 7905e09b 79888931 78025dfc
[    0.475515]  00000001 79888a93 00000c59 7907f33a 7907f33a 78028000 fffe9d09 00000000
[    0.476519]  78025de8 7905e10e 00000009 78025de0 79888931 78025dfc 78025e24 7907f33a
[    0.477523] Call Trace:
[    0.477821]  [&lt;7967c6c6&gt;] dump_stack+0x16/0x18
[    0.478352]  [&lt;7905e09b&gt;] warn_slowpath_common+0x6b/0x90
[    0.478976]  [&lt;7907f33a&gt;] ? __lock_acquire.isra.22+0x7aa/0xb00
[    0.479658]  [&lt;7907f33a&gt;] ? __lock_acquire.isra.22+0x7aa/0xb00
[    0.480417]  [&lt;7905e10e&gt;] warn_slowpath_fmt+0x2e/0x30
[    0.480479]  [&lt;7907f33a&gt;] __lock_acquire.isra.22+0x7aa/0xb00
[    0.480479]  [&lt;79078aa5&gt;] ? sched_clock_cpu+0xb5/0xf0
[    0.480479]  [&lt;7907fd06&gt;] lock_acquire+0x56/0x70
[    0.480479]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.480479]  [&lt;79682d11&gt;] mutex_lock_nested+0x61/0x2a0
[    0.480479]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.480479]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.480479]  [&lt;7925b5e8&gt;] driver_detach+0x58/0xa0
[    0.480479]  [&lt;7925a3ff&gt;] bus_remove_driver+0x8f/0xb0
[    0.480479]  [&lt;7925bf80&gt;] ? class_unregister+0x40/0x80
[    0.480479]  [&lt;7925bad7&gt;] driver_unregister+0x47/0x50
[    0.480479]  [&lt;7925c033&gt;] ? class_destroy+0x13/0x20
[    0.480479]  [&lt;7925d07b&gt;] platform_driver_unregister+0xb/0x10
[    0.480479]  [&lt;79b51ba0&gt;] init_mac80211_hwsim+0x3e8/0x3f9
[    0.480479]  [&lt;79b30c58&gt;] do_one_initcall+0x106/0x1a9
[    0.480479]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.480479]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.480479]  [&lt;79071935&gt;] ? parse_args+0x2f5/0x480
[    0.480479]  [&lt;7906b41e&gt;] ? __usermodehelper_set_disable_depth+0x3e/0x50
[    0.480479]  [&lt;79b30dd9&gt;] kernel_init_freeable+0xde/0x17d
[    0.480479]  [&lt;79b304d6&gt;] ? do_early_param+0x7a/0x7a
[    0.480479]  [&lt;79677b1b&gt;] kernel_init+0xb/0xe0
[    0.480479]  [&lt;79075f42&gt;] ? schedule_tail+0x12/0x40
[    0.480479]  [&lt;79686580&gt;] ret_from_kernel_thread+0x20/0x30
[    0.480479]  [&lt;79677b10&gt;] ? rest_init+0xc0/0xc0
[    0.480479] ---[ end trace ad8ac403ff8aef5d ]---
[    0.495478] BUG: unable to handle kernel paging request at 00200200
[    0.496257] IP: [&lt;79682de5&gt;] mutex_lock_nested+0x135/0x2a0
[    0.496923] *pde = 00000000
[    0.497290] Oops: 0002 [#1]
[    0.497653] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      3.17.0-00001-gdd46990-dirty #2
[    0.498659] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.499321] task: 78028000 ti: 78024000 task.ti: 78024000
[    0.499955] EIP: 0060:[&lt;79682de5&gt;] EFLAGS: 00010097 CPU: 0
[    0.500620] EIP is at mutex_lock_nested+0x135/0x2a0
[    0.501145] EAX: 00200200 EBX: 78397434 ECX: 78397460 EDX: 78025e70
[    0.501816] ESI: 00000246 EDI: 78028000 EBP: 78025e8c ESP: 78025e54
[    0.502497]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[    0.503076] CR0: 8005003b CR2: 00200200 CR3: 01b9d000 CR4: 00000690
[    0.503773] Stack:
[    0.503998]  00000000 00000001 00000000 7925b5e8 78397460 7925b5e8 78397474 78397460
[    0.504944]  00200200 11111111 78025e70 78397000 79ac9d74 00000001 78025ea0 7925b5e8
[    0.505451]  79ac9d74 fffffffe 00000001 78025ebc 7925a3ff 7a251398 78025ec8 7925bf80
[    0.505451] Call Trace:
[    0.505451]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.505451]  [&lt;7925b5e8&gt;] ? driver_detach+0x58/0xa0
[    0.505451]  [&lt;7925b5e8&gt;] driver_detach+0x58/0xa0
[    0.505451]  [&lt;7925a3ff&gt;] bus_remove_driver+0x8f/0xb0
[    0.505451]  [&lt;7925bf80&gt;] ? class_unregister+0x40/0x80
[    0.505451]  [&lt;7925bad7&gt;] driver_unregister+0x47/0x50
[    0.505451]  [&lt;7925c033&gt;] ? class_destroy+0x13/0x20
[    0.505451]  [&lt;7925d07b&gt;] platform_driver_unregister+0xb/0x10
[    0.505451]  [&lt;79b51ba0&gt;] init_mac80211_hwsim+0x3e8/0x3f9
[    0.505451]  [&lt;79b30c58&gt;] do_one_initcall+0x106/0x1a9
[    0.505451]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.505451]  [&lt;79b517b8&gt;] ? if_spi_init_module+0xac/0xac
[    0.505451]  [&lt;79071935&gt;] ? parse_args+0x2f5/0x480
[    0.505451]  [&lt;7906b41e&gt;] ? __usermodehelper_set_disable_depth+0x3e/0x50
[    0.505451]  [&lt;79b30dd9&gt;] kernel_init_freeable+0xde/0x17d
[    0.505451]  [&lt;79b304d6&gt;] ? do_early_param+0x7a/0x7a
[    0.505451]  [&lt;79677b1b&gt;] kernel_init+0xb/0xe0
[    0.505451]  [&lt;79075f42&gt;] ? schedule_tail+0x12/0x40
[    0.505451]  [&lt;79686580&gt;] ret_from_kernel_thread+0x20/0x30
[    0.505451]  [&lt;79677b10&gt;] ? rest_init+0xc0/0xc0
[    0.505451] Code: 89 d8 e8 cf 9b 9f ff 8b 4f 04 8d 55 e4 89 d8 e8 72 9d 9f ff 8d 43 2c 89 c1 89 45 d8 8b 43 30 8d 55 e4 89 53 30 89 4d e4 89 45 e8 &lt;89&gt; 10 8b 55 dc 8b 45 e0 89 7d ec e8 db af 9f ff eb 11 90 31 c0
[    0.505451] EIP: [&lt;79682de5&gt;] mutex_lock_nested+0x135/0x2a0 SS:ESP 0068:78025e54
[    0.505451] CR2: 0000000000200200
[    0.505451] ---[ end trace ad8ac403ff8aef5e ]---
[    0.505451] Kernel panic - not syncing: Fatal exception

Fixes: 9ea927748ced ("mac80211_hwsim: Register and bind to driver")
Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Junjie Mao &lt;eternal.n08@gmail.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>macvtap: Fix csum_start when VLAN tags are present</title>
<updated>2014-11-19T17:38:17+00:00</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2014-11-03T06:01:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6e2b9478b3c0545793d0da88287dc417146bad90'/>
<id>6e2b9478b3c0545793d0da88287dc417146bad90</id>
<content type='text'>
commit 3ce9b20f1971690b8b3b620e735ec99431573b39 upstream.

When VLAN is in use in macvtap_put_user, we end up setting
csum_start to the wrong place.  The result is that the whoever
ends up doing the checksum setting will corrupt the packet instead
of writing the checksum to the expected location, usually this
means writing the checksum with an offset of -4.

This patch fixes this by adjusting csum_start when VLAN tags are
detected.

Fixes: f09e2249c4f5 ("macvtap: restore vlan header on user read")
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3ce9b20f1971690b8b3b620e735ec99431573b39 upstream.

When VLAN is in use in macvtap_put_user, we end up setting
csum_start to the wrong place.  The result is that the whoever
ends up doing the checksum setting will corrupt the packet instead
of writing the checksum to the expected location, usually this
means writing the checksum with an offset of -4.

This patch fixes this by adjusting csum_start when VLAN tags are
detected.

Fixes: f09e2249c4f5 ("macvtap: restore vlan header on user read")
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tun: Fix csum_start with VLAN acceleration</title>
<updated>2014-11-19T17:38:15+00:00</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2014-11-02T20:30:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c150584886e5542df2a9fb4d0189f492d9d69b35'/>
<id>c150584886e5542df2a9fb4d0189f492d9d69b35</id>
<content type='text'>
commit a8f9bfdf982e2b1fb9f094e4de9ab08c57f3d2fd upstream.

When VLAN acceleration is in use on the xmit path, we end up
setting csum_start to the wrong place.  The result is that the
whoever ends up doing the checksum setting will corrupt the packet
instead of writing the checksum to the expected location, usually
this means writing the checksum with an offset of -4.

This patch fixes this by adjusting csum_start when VLAN acceleration
is detected.

Fixes: 6680ec68eff4 ("tuntap: hardware vlan tx support")
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit a8f9bfdf982e2b1fb9f094e4de9ab08c57f3d2fd upstream.

When VLAN acceleration is in use on the xmit path, we end up
setting csum_start to the wrong place.  The result is that the
whoever ends up doing the checksum setting will corrupt the packet
instead of writing the checksum to the expected location, usually
this means writing the checksum with an offset of -4.

This patch fixes this by adjusting csum_start when VLAN acceleration
is detected.

Fixes: 6680ec68eff4 ("tuntap: hardware vlan tx support")
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: configure the LTR</title>
<updated>2014-11-19T17:29:16+00:00</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2014-11-19T16:54:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9546673d9dc0c6c642d7f4740622d15d7fb980f9'/>
<id>9546673d9dc0c6c642d7f4740622d15d7fb980f9</id>
<content type='text'>
commit 9180ac50716a097a407c6d7e7e4589754a922260 upstream.

The LTR is the handshake between the device and the root
complex about the latency allowed when the bus exits power
save. This configuration was missing and this led to high
latency in the link power up. The end user could experience
high latency in the network because of this.

Cc: &lt;stable@vger.kernel.org&gt; [3.10+]
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 9180ac50716a097a407c6d7e7e4589754a922260 upstream.

The LTR is the handshake between the device and the root
complex about the latency allowed when the bus exits power
save. This configuration was missing and this led to high
latency in the link power up. The end user could experience
high latency in the network because of this.

Cc: &lt;stable@vger.kernel.org&gt; [3.10+]
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vio: fix reuse of vio_dring slot</title>
<updated>2014-11-19T11:32:54+00:00</updated>
<author>
<name>Dwight Engen</name>
<email>dwight.engen@oracle.com</email>
</author>
<published>2014-09-19T13:43:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4a08354c17c8eea62b9e058d762324aa77e50e84'/>
<id>4a08354c17c8eea62b9e058d762324aa77e50e84</id>
<content type='text'>
[ Upstream commit d0aedcd4f14a22e23b313f42b7e6e6ebfc0fbc31 ]

vio_dring_avail() will allow use of every dring entry, but when the last
entry is allocated then dr-&gt;prod == dr-&gt;cons which is indistinguishable from
the ring empty condition. This causes the next allocation to reuse an entry.
When this happens in sunvdc, the server side vds driver begins nack'ing the
messages and ends up resetting the ldc channel. This problem does not effect
sunvnet since it checks for &lt; 2.

The fix here is to just never allocate the very last dring slot so that full
and empty are not the same condition. The request start path was changed to
check for the ring being full a bit earlier, and to stop the blk_queue if
there is no space left. The blk_queue will be restarted once the ring is
only half full again. The number of ring entries was increased to 512 which
matches the sunvnet and Solaris vdc drivers, and greatly reduces the
frequency of hitting the ring full condition and the associated blk_queue
stop/starting. The checks in sunvent were adjusted to account for
vio_dring_avail() returning 1 less.

Orabug: 19441666
OraBZ: 14983

Signed-off-by: Dwight Engen &lt;dwight.engen@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit d0aedcd4f14a22e23b313f42b7e6e6ebfc0fbc31 ]

vio_dring_avail() will allow use of every dring entry, but when the last
entry is allocated then dr-&gt;prod == dr-&gt;cons which is indistinguishable from
the ring empty condition. This causes the next allocation to reuse an entry.
When this happens in sunvdc, the server side vds driver begins nack'ing the
messages and ends up resetting the ldc channel. This problem does not effect
sunvnet since it checks for &lt; 2.

The fix here is to just never allocate the very last dring slot so that full
and empty are not the same condition. The request start path was changed to
check for the ring being full a bit earlier, and to stop the blk_queue if
there is no space left. The blk_queue will be restarted once the ring is
only half full again. The number of ring entries was increased to 512 which
matches the sunvnet and Solaris vdc drivers, and greatly reduces the
frequency of hitting the ring full condition and the associated blk_queue
stop/starting. The checks in sunvent were adjusted to account for
vio_dring_avail() returning 1 less.

Orabug: 19441666
OraBZ: 14983

Signed-off-by: Dwight Engen &lt;dwight.engen@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vxlan: Do not reuse sockets for a different address family</title>
<updated>2014-11-19T11:31:41+00:00</updated>
<author>
<name>Marcelo Leitner</name>
<email>mleitner@redhat.com</email>
</author>
<published>2014-11-13T16:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b27471ba5de8c062caf9819a5ed26e429cde9869'/>
<id>b27471ba5de8c062caf9819a5ed26e429cde9869</id>
<content type='text'>
[ Upstream commit 19ca9fc1445b76b60d34148f7ff837b055f5dcf3 ]

Currently, we only match against local port number in order to reuse
socket. But if this new vxlan wants an IPv6 socket and a IPv4 one bound
to that port, vxlan will reuse an IPv4 socket as IPv6 and a panic will
follow. The following steps reproduce it:

   # ip link add vxlan6 type vxlan id 42 group 229.10.10.10 \
       srcport 5000 6000 dev eth0
   # ip link add vxlan7 type vxlan id 43 group ff0e::110 \
       srcport 5000 6000 dev eth0
   # ip link set vxlan6 up
   # ip link set vxlan7 up
   &lt;panic&gt;

[    4.187481] BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
...
[    4.188076] Call Trace:
[    4.188085]  [&lt;ffffffff81667c4a&gt;] ? ipv6_sock_mc_join+0x3a/0x630
[    4.188098]  [&lt;ffffffffa05a6ad6&gt;] vxlan_igmp_join+0x66/0xd0 [vxlan]
[    4.188113]  [&lt;ffffffff810a3430&gt;] process_one_work+0x220/0x710
[    4.188125]  [&lt;ffffffff810a33c4&gt;] ? process_one_work+0x1b4/0x710
[    4.188138]  [&lt;ffffffff810a3a3b&gt;] worker_thread+0x11b/0x3a0
[    4.188149]  [&lt;ffffffff810a3920&gt;] ? process_one_work+0x710/0x710

So address family must also match in order to reuse a socket.

Reported-by: Jean-Tsung Hsiao &lt;jhsiao@redhat.com&gt;
Signed-off-by: Marcelo Ricardo Leitner &lt;mleitner@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 19ca9fc1445b76b60d34148f7ff837b055f5dcf3 ]

Currently, we only match against local port number in order to reuse
socket. But if this new vxlan wants an IPv6 socket and a IPv4 one bound
to that port, vxlan will reuse an IPv4 socket as IPv6 and a panic will
follow. The following steps reproduce it:

   # ip link add vxlan6 type vxlan id 42 group 229.10.10.10 \
       srcport 5000 6000 dev eth0
   # ip link add vxlan7 type vxlan id 43 group ff0e::110 \
       srcport 5000 6000 dev eth0
   # ip link set vxlan6 up
   # ip link set vxlan7 up
   &lt;panic&gt;

[    4.187481] BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
...
[    4.188076] Call Trace:
[    4.188085]  [&lt;ffffffff81667c4a&gt;] ? ipv6_sock_mc_join+0x3a/0x630
[    4.188098]  [&lt;ffffffffa05a6ad6&gt;] vxlan_igmp_join+0x66/0xd0 [vxlan]
[    4.188113]  [&lt;ffffffff810a3430&gt;] process_one_work+0x220/0x710
[    4.188125]  [&lt;ffffffff810a33c4&gt;] ? process_one_work+0x1b4/0x710
[    4.188138]  [&lt;ffffffff810a3a3b&gt;] worker_thread+0x11b/0x3a0
[    4.188149]  [&lt;ffffffff810a3920&gt;] ? process_one_work+0x710/0x710

So address family must also match in order to reuse a socket.

Reported-by: Jean-Tsung Hsiao &lt;jhsiao@redhat.com&gt;
Signed-off-by: Marcelo Ricardo Leitner &lt;mleitner@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wireless: rt2x00: add new rt2800usb device</title>
<updated>2014-11-13T18:02:47+00:00</updated>
<author>
<name>Cyril Brulebois</name>
<email>kibi@debian.org</email>
</author>
<published>2014-10-28T15:42:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=28af2ea590152b183494a6b05d5c04fb3374d10a'/>
<id>28af2ea590152b183494a6b05d5c04fb3374d10a</id>
<content type='text'>
commit 664d6a792785cc677c2091038ce10322c8d04ae1 upstream.

0x1b75 0xa200 AirLive WN-200USB wireless 11b/g/n dongle

References: https://bugs.debian.org/766802
Reported-by: Martin Mokrejs &lt;mmokrejs@fold.natur.cuni.cz&gt;
Signed-off-by: Cyril Brulebois &lt;kibi@debian.org&gt;
Acked-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 664d6a792785cc677c2091038ce10322c8d04ae1 upstream.

0x1b75 0xa200 AirLive WN-200USB wireless 11b/g/n dongle

References: https://bugs.debian.org/766802
Reported-by: Martin Mokrejs &lt;mmokrejs@fold.natur.cuni.cz&gt;
Signed-off-by: Cyril Brulebois &lt;kibi@debian.org&gt;
Acked-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
</feed>
