<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers, branch v3.10.23</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>drm/radeon/audio: correct ACR table</title>
<updated>2013-12-08T15:29:28+00:00</updated>
<author>
<name>Pierre Ossman</name>
<email>pierre@ossman.eu</email>
</author>
<published>2013-11-06T19:00:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=84a0264e3992db6dd46d4485e171a13be4550d0c'/>
<id>84a0264e3992db6dd46d4485e171a13be4550d0c</id>
<content type='text'>
commit 3e71985f2439d8c4090dc2820e497e6f3d72dcff upstream.

The values were taken from the HDMI spec, but they assumed
exact x/1.001 clocks. Since we round the clocks, we also need
to calculate different N and CTS values.

Note that the N for 25.2/1.001 MHz at 44.1 kHz audio is out of
spec. Hopefully this mode is rarely used and/or HDMI sinks
tolerate overly large values of N.

bug:
https://bugs.freedesktop.org/show_bug.cgi?id=69675

Signed-off-by: Pierre Ossman &lt;pierre@ossman.eu&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: Josh Boyer &lt;jwboyer@fedoraproject.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

The values were taken from the HDMI spec, but they assumed
exact x/1.001 clocks. Since we round the clocks, we also need
to calculate different N and CTS values.

Note that the N for 25.2/1.001 MHz at 44.1 kHz audio is out of
spec. Hopefully this mode is rarely used and/or HDMI sinks
tolerate overly large values of N.

bug:
https://bugs.freedesktop.org/show_bug.cgi?id=69675

Signed-off-by: Pierre Ossman &lt;pierre@ossman.eu&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: Josh Boyer &lt;jwboyer@fedoraproject.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>drm/radeon/audio: improve ACR calculation</title>
<updated>2013-12-08T15:29:28+00:00</updated>
<author>
<name>Pierre Ossman</name>
<email>pierre@ossman.eu</email>
</author>
<published>2013-11-06T19:09:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f789de214b88dd2f5bbb372625b2e284f8469c4b'/>
<id>f789de214b88dd2f5bbb372625b2e284f8469c4b</id>
<content type='text'>
commit a2098250fbda149cfad9e626afe80abe3b21e574 upstream.

In order to have any realistic chance of calculating proper
ACR values, we need to be able to calculate both N and CTS,
not just CTS. We still aim for the ideal N as specified in
the HDMI spec though.

bug:
https://bugs.freedesktop.org/show_bug.cgi?id=69675

Signed-off-by: Pierre Ossman &lt;pierre@ossman.eu&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: Josh Boyer &lt;jwboyer@fedoraproject.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

In order to have any realistic chance of calculating proper
ACR values, we need to be able to calculate both N and CTS,
not just CTS. We still aim for the ideal N as specified in
the HDMI spec though.

bug:
https://bugs.freedesktop.org/show_bug.cgi?id=69675

Signed-off-by: Pierre Ossman &lt;pierre@ossman.eu&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: Josh Boyer &lt;jwboyer@fedoraproject.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iommu: Remove stack trace from broken irq remapping warning</title>
<updated>2013-12-08T15:29:27+00:00</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@tuxdriver.com</email>
</author>
<published>2013-09-27T16:53:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=645451235dc5098f08cc51e2f1205d9fa9ca8262'/>
<id>645451235dc5098f08cc51e2f1205d9fa9ca8262</id>
<content type='text'>
commit 05104a4e8713b27291c7bb49c1e7e68b4e243571 upstream.

The warning for the irq remapping broken check in intel_irq_remapping.c is
pretty pointless.  We need the warning, but we know where its comming from, the
stack trace will always be the same, and it needlessly triggers things like
Abrt.  This changes the warning to just print a text warning about BIOS being
broken, without the stack trace, then sets the appropriate taint bit.  Since we
automatically disable irq remapping, theres no need to contiue making Abrt jump
at this problem

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
CC: Joerg Roedel &lt;joro@8bytes.org&gt;
CC: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
CC: Andy Lutomirski &lt;luto@amacapital.net&gt;
CC: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
CC: Sebastian Andrzej Siewior &lt;sebastian@breakpoint.cc&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

The warning for the irq remapping broken check in intel_irq_remapping.c is
pretty pointless.  We need the warning, but we know where its comming from, the
stack trace will always be the same, and it needlessly triggers things like
Abrt.  This changes the warning to just print a text warning about BIOS being
broken, without the stack trace, then sets the appropriate taint bit.  Since we
automatically disable irq remapping, theres no need to contiue making Abrt jump
at this problem

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
CC: Joerg Roedel &lt;joro@8bytes.org&gt;
CC: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
CC: Andy Lutomirski &lt;luto@amacapital.net&gt;
CC: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
CC: Sebastian Andrzej Siewior &lt;sebastian@breakpoint.cc&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: Fixed interaction of VFIO_IOMMU_MAP_DMA with IOMMU address limits</title>
<updated>2013-12-08T15:29:27+00:00</updated>
<author>
<name>Julian Stecklina</name>
<email>jsteckli@os.inf.tu-dresden.de</email>
</author>
<published>2013-10-09T08:03:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3de762b3d32ff3d0440ca809e1ba084c682f0ca7'/>
<id>3de762b3d32ff3d0440ca809e1ba084c682f0ca7</id>
<content type='text'>
commit f9423606ade08653dd8a43334f0a7fb45504c5cc upstream.

The BUG_ON in drivers/iommu/intel-iommu.c:785 can be triggered from userspace via
VFIO by calling the VFIO_IOMMU_MAP_DMA ioctl on a vfio device with any address
beyond the addressing capabilities of the IOMMU. The problem is that the ioctl code
calls iommu_iova_to_phys before it calls iommu_map. iommu_map handles the case that
it gets addresses beyond the addressing capabilities of its IOMMU.
intel_iommu_iova_to_phys does not.

This patch fixes iommu_iova_to_phys to return NULL for addresses beyond what the
IOMMU can handle. This in turn causes the ioctl call to fail in iommu_map and
(correctly) return EFAULT to the user with a helpful warning message in the kernel
log.

Signed-off-by: Julian Stecklina &lt;jsteckli@os.inf.tu-dresden.de&gt;
Acked-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

The BUG_ON in drivers/iommu/intel-iommu.c:785 can be triggered from userspace via
VFIO by calling the VFIO_IOMMU_MAP_DMA ioctl on a vfio device with any address
beyond the addressing capabilities of the IOMMU. The problem is that the ioctl code
calls iommu_iova_to_phys before it calls iommu_map. iommu_map handles the case that
it gets addresses beyond the addressing capabilities of its IOMMU.
intel_iommu_iova_to_phys does not.

This patch fixes iommu_iova_to_phys to return NULL for addresses beyond what the
IOMMU can handle. This in turn causes the ioctl call to fail in iommu_map and
(correctly) return EFAULT to the user with a helpful warning message in the kernel
log.

Signed-off-by: Julian Stecklina &lt;jsteckli@os.inf.tu-dresden.de&gt;
Acked-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>HID: lg: fix Report Descriptor for Logitech MOMO Force (Black)</title>
<updated>2013-12-08T15:29:27+00:00</updated>
<author>
<name>Simon Wood</name>
<email>simon@mungewell.org</email>
</author>
<published>2013-10-10T14:20:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7dc39b55ecc16a4db44c820263c73a60fc750b27'/>
<id>7dc39b55ecc16a4db44c820263c73a60fc750b27</id>
<content type='text'>
commit 348cbaa800f8161168b20f85f72abb541c145132 upstream.

By default the Logitech MOMO Force (Black) presents a combined accel/brake
axis ('Y'). This patch modifies the HID descriptor to present seperate
accel/brake axes ('Y' and 'Z').

Signed-off-by: Simon Wood &lt;simon@mungewell.org&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

By default the Logitech MOMO Force (Black) presents a combined accel/brake
axis ('Y'). This patch modifies the HID descriptor to present seperate
accel/brake axes ('Y' and 'Z').

Signed-off-by: Simon Wood &lt;simon@mungewell.org&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>video: kyro: fix incorrect sizes when copying to userspace</title>
<updated>2013-12-08T15:29:27+00:00</updated>
<author>
<name>Sasha Levin</name>
<email>sasha.levin@oracle.com</email>
</author>
<published>2013-11-19T19:25:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ca77581ebaa42e9279a231fbcb98ee031c37fe3a'/>
<id>ca77581ebaa42e9279a231fbcb98ee031c37fe3a</id>
<content type='text'>
commit 2ab68ec927310dc488f3403bb48f9e4ad00a9491 upstream.

kyro would copy u32s and specify sizeof(unsigned long) as the size to copy.

This would copy more data than intended and cause memory corruption and might
leak kernel memory.

Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

kyro would copy u32s and specify sizeof(unsigned long) as the size to copy.

This would copy more data than intended and cause memory corruption and might
leak kernel memory.

Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>mmc: block: fix a bug of error handling in MMC driver</title>
<updated>2013-12-08T15:29:27+00:00</updated>
<author>
<name>KOBAYASHI Yoshitake</name>
<email>yoshitake.kobayashi@toshiba.co.jp</email>
</author>
<published>2013-07-06T22:35:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=604ae797e7cd1eca7897eac555961a5a25a9bde5'/>
<id>604ae797e7cd1eca7897eac555961a5a25a9bde5</id>
<content type='text'>
commit c8760069627ad3b0dbbea170f0c4c58b16e18d3d upstream.

Current MMC driver doesn't handle generic error (bit19 of device
status) in write sequence. As a result, write data gets lost when
generic error occurs. For example, a generic error when updating a
filesystem management information causes a loss of write data and
corrupts the filesystem. In the worst case, the system will never
boot.

This patch includes the following functionality:
  1. To enable error checking for the response of CMD12 and CMD13
     in write command sequence
  2. To retry write sequence when a generic error occurs

Messages are added for v2 to show what occurs.

Signed-off-by: KOBAYASHI Yoshitake &lt;yoshitake.kobayashi@toshiba.co.jp&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

Current MMC driver doesn't handle generic error (bit19 of device
status) in write sequence. As a result, write data gets lost when
generic error occurs. For example, a generic error when updating a
filesystem management information causes a loss of write data and
corrupts the filesystem. In the worst case, the system will never
boot.

This patch includes the following functionality:
  1. To enable error checking for the response of CMD12 and CMD13
     in write command sequence
  2. To retry write sequence when a generic error occurs

Messages are added for v2 to show what occurs.

Signed-off-by: KOBAYASHI Yoshitake &lt;yoshitake.kobayashi@toshiba.co.jp&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>team: fix master carrier set when user linkup is enabled</title>
<updated>2013-12-08T15:29:26+00:00</updated>
<author>
<name>Jiri Pirko</name>
<email>jiri@resnulli.us</email>
</author>
<published>2013-11-28T17:01:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a52a9149f57d0b00dab0699028174a4f91dcb02f'/>
<id>a52a9149f57d0b00dab0699028174a4f91dcb02f</id>
<content type='text'>
[ Upstream commit f5e0d34382e18f396d7673a84df8e3342bea7eb6 ]

When user linkup is enabled and user sets linkup of individual port,
we need to recompute linkup (carrier) of master interface so the change
is reflected. Fix this by calling __team_carrier_check() which does the
needed work.

Please apply to all stable kernels as well. Thanks.

Reported-by: Jan Tluka &lt;jtluka@redhat.com&gt;
Signed-off-by: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit f5e0d34382e18f396d7673a84df8e3342bea7eb6 ]

When user linkup is enabled and user sets linkup of individual port,
we need to recompute linkup (carrier) of master interface so the change
is reflected. Fix this by calling __team_carrier_check() which does the
needed work.

Please apply to all stable kernels as well. Thanks.

Reported-by: Jan Tluka &lt;jtluka@redhat.com&gt;
Signed-off-by: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: 8139cp: fix a BUG_ON triggered by wrong bytes_compl</title>
<updated>2013-12-08T15:29:26+00:00</updated>
<author>
<name>Yang Yingliang</name>
<email>yangyingliang@huawei.com</email>
</author>
<published>2013-11-27T06:32:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ac3e7d9bc445b256fc386a30df55dfd1b3fda0be'/>
<id>ac3e7d9bc445b256fc386a30df55dfd1b3fda0be</id>
<content type='text'>
[ Upstream commit 7fe0ee099ad5e3dea88d4ee1b6f20246b1ca57c3 ]

Using iperf to send packets(GSO mode is on), a bug is triggered:

[  212.672781] kernel BUG at lib/dynamic_queue_limits.c:26!
[  212.673396] invalid opcode: 0000 [#1] SMP
[  212.673882] Modules linked in: 8139cp(O) nls_utf8 edd fuse loop dm_mod ipv6 i2c_piix4 8139too i2c_core intel_agp joydev pcspkr hid_generic intel_gtt floppy sr_mod mii button sg cdrom ext3 jbd mbcache usbhid hid uhci_hcd ehci_hcd usbcore sd_mod usb_common crc_t10dif crct10dif_common processor thermal_sys hwmon scsi_dh_emc scsi_dh_rdac scsi_dh_hp_sw scsi_dh ata_generic ata_piix libata scsi_mod [last unloaded: 8139cp]
[  212.676084] CPU: 0 PID: 4124 Comm: iperf Tainted: G           O 3.12.0-0.7-default+ #16
[  212.676084] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[  212.676084] task: ffff8800d83966c0 ti: ffff8800db4c8000 task.ti: ffff8800db4c8000
[  212.676084] RIP: 0010:[&lt;ffffffff8122e23f&gt;]  [&lt;ffffffff8122e23f&gt;] dql_completed+0x17f/0x190
[  212.676084] RSP: 0018:ffff880116e03e30  EFLAGS: 00010083
[  212.676084] RAX: 00000000000005ea RBX: 0000000000000f7c RCX: 0000000000000002
[  212.676084] RDX: ffff880111dd0dc0 RSI: 0000000000000bd4 RDI: ffff8800db6ffcc0
[  212.676084] RBP: ffff880116e03e48 R08: 0000000000000992 R09: 0000000000000000
[  212.676084] R10: ffffffff8181e400 R11: 0000000000000004 R12: 000000000000000f
[  212.676084] R13: ffff8800d94ec840 R14: ffff8800db440c80 R15: 000000000000000e
[  212.676084] FS:  00007f6685a3c700(0000) GS:ffff880116e00000(0000) knlGS:0000000000000000
[  212.676084] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  212.676084] CR2: 00007f6685ad6460 CR3: 00000000db714000 CR4: 00000000000006f0
[  212.676084] Stack:
[  212.676084]  ffff8800db6ffc00 000000000000000f ffff8800d94ec840 ffff880116e03eb8
[  212.676084]  ffffffffa041509f ffff880116e03e88 0000000f16e03e88 ffff8800d94ec000
[  212.676084]  00000bd400059858 000000050000000f ffffffff81094c36 ffff880116e03eb8
[  212.676084] Call Trace:
[  212.676084]  &lt;IRQ&gt;
[  212.676084]  [&lt;ffffffffa041509f&gt;] cp_interrupt+0x4ef/0x590 [8139cp]
[  212.676084]  [&lt;ffffffff81094c36&gt;] ? ktime_get+0x56/0xd0
[  212.676084]  [&lt;ffffffff8108cf73&gt;] handle_irq_event_percpu+0x53/0x170
[  212.676084]  [&lt;ffffffff8108d0cc&gt;] handle_irq_event+0x3c/0x60
[  212.676084]  [&lt;ffffffff8108fdb5&gt;] handle_fasteoi_irq+0x55/0xf0
[  212.676084]  [&lt;ffffffff810045df&gt;] handle_irq+0x1f/0x30
[  212.676084]  [&lt;ffffffff81003c8b&gt;] do_IRQ+0x5b/0xe0
[  212.676084]  [&lt;ffffffff8142beaa&gt;] common_interrupt+0x6a/0x6a
[  212.676084]  &lt;EOI&gt;
[  212.676084]  [&lt;ffffffffa0416a21&gt;] ? cp_start_xmit+0x621/0x97c [8139cp]
[  212.676084]  [&lt;ffffffffa0416a09&gt;] ? cp_start_xmit+0x609/0x97c [8139cp]
[  212.676084]  [&lt;ffffffff81378ed9&gt;] dev_hard_start_xmit+0x2c9/0x550
[  212.676084]  [&lt;ffffffff813960a9&gt;] sch_direct_xmit+0x179/0x1d0
[  212.676084]  [&lt;ffffffff813793f3&gt;] dev_queue_xmit+0x293/0x440
[  212.676084]  [&lt;ffffffff813b0e46&gt;] ip_finish_output+0x236/0x450
[  212.676084]  [&lt;ffffffff810e59e7&gt;] ? __alloc_pages_nodemask+0x187/0xb10
[  212.676084]  [&lt;ffffffff813b10e8&gt;] ip_output+0x88/0x90
[  212.676084]  [&lt;ffffffff813afa64&gt;] ip_local_out+0x24/0x30
[  212.676084]  [&lt;ffffffff813aff0d&gt;] ip_queue_xmit+0x14d/0x3e0
[  212.676084]  [&lt;ffffffff813c6fd1&gt;] tcp_transmit_skb+0x501/0x840
[  212.676084]  [&lt;ffffffff813c8323&gt;] tcp_write_xmit+0x1e3/0xb20
[  212.676084]  [&lt;ffffffff81363237&gt;] ? skb_page_frag_refill+0x87/0xd0
[  212.676084]  [&lt;ffffffff813c8c8b&gt;] tcp_push_one+0x2b/0x40
[  212.676084]  [&lt;ffffffff813bb7e6&gt;] tcp_sendmsg+0x926/0xc90
[  212.676084]  [&lt;ffffffff813e1d21&gt;] inet_sendmsg+0x61/0xc0
[  212.676084]  [&lt;ffffffff8135e861&gt;] sock_aio_write+0x101/0x120
[  212.676084]  [&lt;ffffffff81107cf1&gt;] ? vma_adjust+0x2e1/0x5d0
[  212.676084]  [&lt;ffffffff812163e0&gt;] ? timerqueue_add+0x60/0xb0
[  212.676084]  [&lt;ffffffff81130b60&gt;] do_sync_write+0x60/0x90
[  212.676084]  [&lt;ffffffff81130d44&gt;] ? rw_verify_area+0x54/0xf0
[  212.676084]  [&lt;ffffffff81130f66&gt;] vfs_write+0x186/0x190
[  212.676084]  [&lt;ffffffff811317fd&gt;] SyS_write+0x5d/0xa0
[  212.676084]  [&lt;ffffffff814321e2&gt;] system_call_fastpath+0x16/0x1b
[  212.676084] Code: ca 41 89 dc 41 29 cc 45 31 db 29 c2 41 89 c5 89 d0 45 29 c5 f7 d0 c1 e8 1f e9 43 ff ff ff 66 0f 1f 44 00 00 31 c0 e9 7b ff ff ff &lt;0f&gt; 0b eb fe 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 c7 47 40 00
[  212.676084] RIP  [&lt;ffffffff8122e23f&gt;] dql_completed+0x17f/0x190
------------[ cut here ]------------

When a skb has frags, bytes_compl plus skb-&gt;len nr_frags times in cp_tx().
It's not the correct value(actually, it should plus skb-&gt;len once) and it
will trigger the BUG_ON(bytes_compl &gt; num_queued - dql-&gt;num_completed).
So only increase bytes_compl when finish sending all frags. pkts_compl also
has a wrong value, fix it too.

It's introduced by commit 871f0d4c ("8139cp: enable bql").

Suggested-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: Yang Yingliang &lt;yangyingliang@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 7fe0ee099ad5e3dea88d4ee1b6f20246b1ca57c3 ]

Using iperf to send packets(GSO mode is on), a bug is triggered:

[  212.672781] kernel BUG at lib/dynamic_queue_limits.c:26!
[  212.673396] invalid opcode: 0000 [#1] SMP
[  212.673882] Modules linked in: 8139cp(O) nls_utf8 edd fuse loop dm_mod ipv6 i2c_piix4 8139too i2c_core intel_agp joydev pcspkr hid_generic intel_gtt floppy sr_mod mii button sg cdrom ext3 jbd mbcache usbhid hid uhci_hcd ehci_hcd usbcore sd_mod usb_common crc_t10dif crct10dif_common processor thermal_sys hwmon scsi_dh_emc scsi_dh_rdac scsi_dh_hp_sw scsi_dh ata_generic ata_piix libata scsi_mod [last unloaded: 8139cp]
[  212.676084] CPU: 0 PID: 4124 Comm: iperf Tainted: G           O 3.12.0-0.7-default+ #16
[  212.676084] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[  212.676084] task: ffff8800d83966c0 ti: ffff8800db4c8000 task.ti: ffff8800db4c8000
[  212.676084] RIP: 0010:[&lt;ffffffff8122e23f&gt;]  [&lt;ffffffff8122e23f&gt;] dql_completed+0x17f/0x190
[  212.676084] RSP: 0018:ffff880116e03e30  EFLAGS: 00010083
[  212.676084] RAX: 00000000000005ea RBX: 0000000000000f7c RCX: 0000000000000002
[  212.676084] RDX: ffff880111dd0dc0 RSI: 0000000000000bd4 RDI: ffff8800db6ffcc0
[  212.676084] RBP: ffff880116e03e48 R08: 0000000000000992 R09: 0000000000000000
[  212.676084] R10: ffffffff8181e400 R11: 0000000000000004 R12: 000000000000000f
[  212.676084] R13: ffff8800d94ec840 R14: ffff8800db440c80 R15: 000000000000000e
[  212.676084] FS:  00007f6685a3c700(0000) GS:ffff880116e00000(0000) knlGS:0000000000000000
[  212.676084] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  212.676084] CR2: 00007f6685ad6460 CR3: 00000000db714000 CR4: 00000000000006f0
[  212.676084] Stack:
[  212.676084]  ffff8800db6ffc00 000000000000000f ffff8800d94ec840 ffff880116e03eb8
[  212.676084]  ffffffffa041509f ffff880116e03e88 0000000f16e03e88 ffff8800d94ec000
[  212.676084]  00000bd400059858 000000050000000f ffffffff81094c36 ffff880116e03eb8
[  212.676084] Call Trace:
[  212.676084]  &lt;IRQ&gt;
[  212.676084]  [&lt;ffffffffa041509f&gt;] cp_interrupt+0x4ef/0x590 [8139cp]
[  212.676084]  [&lt;ffffffff81094c36&gt;] ? ktime_get+0x56/0xd0
[  212.676084]  [&lt;ffffffff8108cf73&gt;] handle_irq_event_percpu+0x53/0x170
[  212.676084]  [&lt;ffffffff8108d0cc&gt;] handle_irq_event+0x3c/0x60
[  212.676084]  [&lt;ffffffff8108fdb5&gt;] handle_fasteoi_irq+0x55/0xf0
[  212.676084]  [&lt;ffffffff810045df&gt;] handle_irq+0x1f/0x30
[  212.676084]  [&lt;ffffffff81003c8b&gt;] do_IRQ+0x5b/0xe0
[  212.676084]  [&lt;ffffffff8142beaa&gt;] common_interrupt+0x6a/0x6a
[  212.676084]  &lt;EOI&gt;
[  212.676084]  [&lt;ffffffffa0416a21&gt;] ? cp_start_xmit+0x621/0x97c [8139cp]
[  212.676084]  [&lt;ffffffffa0416a09&gt;] ? cp_start_xmit+0x609/0x97c [8139cp]
[  212.676084]  [&lt;ffffffff81378ed9&gt;] dev_hard_start_xmit+0x2c9/0x550
[  212.676084]  [&lt;ffffffff813960a9&gt;] sch_direct_xmit+0x179/0x1d0
[  212.676084]  [&lt;ffffffff813793f3&gt;] dev_queue_xmit+0x293/0x440
[  212.676084]  [&lt;ffffffff813b0e46&gt;] ip_finish_output+0x236/0x450
[  212.676084]  [&lt;ffffffff810e59e7&gt;] ? __alloc_pages_nodemask+0x187/0xb10
[  212.676084]  [&lt;ffffffff813b10e8&gt;] ip_output+0x88/0x90
[  212.676084]  [&lt;ffffffff813afa64&gt;] ip_local_out+0x24/0x30
[  212.676084]  [&lt;ffffffff813aff0d&gt;] ip_queue_xmit+0x14d/0x3e0
[  212.676084]  [&lt;ffffffff813c6fd1&gt;] tcp_transmit_skb+0x501/0x840
[  212.676084]  [&lt;ffffffff813c8323&gt;] tcp_write_xmit+0x1e3/0xb20
[  212.676084]  [&lt;ffffffff81363237&gt;] ? skb_page_frag_refill+0x87/0xd0
[  212.676084]  [&lt;ffffffff813c8c8b&gt;] tcp_push_one+0x2b/0x40
[  212.676084]  [&lt;ffffffff813bb7e6&gt;] tcp_sendmsg+0x926/0xc90
[  212.676084]  [&lt;ffffffff813e1d21&gt;] inet_sendmsg+0x61/0xc0
[  212.676084]  [&lt;ffffffff8135e861&gt;] sock_aio_write+0x101/0x120
[  212.676084]  [&lt;ffffffff81107cf1&gt;] ? vma_adjust+0x2e1/0x5d0
[  212.676084]  [&lt;ffffffff812163e0&gt;] ? timerqueue_add+0x60/0xb0
[  212.676084]  [&lt;ffffffff81130b60&gt;] do_sync_write+0x60/0x90
[  212.676084]  [&lt;ffffffff81130d44&gt;] ? rw_verify_area+0x54/0xf0
[  212.676084]  [&lt;ffffffff81130f66&gt;] vfs_write+0x186/0x190
[  212.676084]  [&lt;ffffffff811317fd&gt;] SyS_write+0x5d/0xa0
[  212.676084]  [&lt;ffffffff814321e2&gt;] system_call_fastpath+0x16/0x1b
[  212.676084] Code: ca 41 89 dc 41 29 cc 45 31 db 29 c2 41 89 c5 89 d0 45 29 c5 f7 d0 c1 e8 1f e9 43 ff ff ff 66 0f 1f 44 00 00 31 c0 e9 7b ff ff ff &lt;0f&gt; 0b eb fe 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 c7 47 40 00
[  212.676084] RIP  [&lt;ffffffff8122e23f&gt;] dql_completed+0x17f/0x190
------------[ cut here ]------------

When a skb has frags, bytes_compl plus skb-&gt;len nr_frags times in cp_tx().
It's not the correct value(actually, it should plus skb-&gt;len once) and it
will trigger the BUG_ON(bytes_compl &gt; num_queued - dql-&gt;num_completed).
So only increase bytes_compl when finish sending all frags. pkts_compl also
has a wrong value, fix it too.

It's introduced by commit 871f0d4c ("8139cp: enable bql").

Suggested-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: Yang Yingliang &lt;yangyingliang@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>r8169: check ALDPS bit and disable it if enabled for the 8168g</title>
<updated>2013-12-08T15:29:26+00:00</updated>
<author>
<name>David Chang</name>
<email>dchang@suse.com</email>
</author>
<published>2013-11-27T07:48:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1562432658a5bf8aa32d25a99c30cfdda5b43818'/>
<id>1562432658a5bf8aa32d25a99c30cfdda5b43818</id>
<content type='text'>
[ Upstream commit 1bac1072425c86f1ac85bd5967910706677ef8b3 ]

Windows driver will enable ALDPS function, but linux driver and firmware
do not have any configuration related to ALDPS function for 8168g.
So restart system to linux and remove the NIC cable, LAN enter ALDPS,
then LAN RX will be disabled.

This issue can be easily reproduced on dual boot windows and linux
system with RTL_GIGA_MAC_VER_40 chip.

Realtek said, ALDPS function can be disabled by configuring to PHY,
switch to page 0x0A43, reg0x10 bit2=0.

Signed-off-by: David Chang &lt;dchang@suse.com&gt;
Acked-by: Hayes Wang &lt;hayeswang@realtek.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 1bac1072425c86f1ac85bd5967910706677ef8b3 ]

Windows driver will enable ALDPS function, but linux driver and firmware
do not have any configuration related to ALDPS function for 8168g.
So restart system to linux and remove the NIC cable, LAN enter ALDPS,
then LAN RX will be disabled.

This issue can be easily reproduced on dual boot windows and linux
system with RTL_GIGA_MAC_VER_40 chip.

Realtek said, ALDPS function can be disabled by configuring to PHY,
switch to page 0x0A43, reg0x10 bit2=0.

Signed-off-by: David Chang &lt;dchang@suse.com&gt;
Acked-by: Hayes Wang &lt;hayeswang@realtek.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
