<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git, branch v4.4.283</title>
<subtitle>Clone of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/'/>
<entry>
<title>Linux 4.4.283</title>
<updated>2021-09-03T07:43:08+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2021-09-03T07:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=cbc3014d0d917ba60a8ca3938316ef022ef11f8a'/>
<id>cbc3014d0d917ba60a8ca3938316ef022ef11f8a</id>
<content type='text'>
Link: https://lore.kernel.org/r/20210901122248.051808371@linuxfoundation.org
Tested-by: Jon Hunter &lt;jonathanh@nvidia.com&gt;
Tested-by: Pavel Machek (CIP) &lt;pavel@denx.de&gt;
Tested-by: Shuah Khan &lt;skhan@linuxfoundation.org&gt;
Tested-by: Linux Kernel Functional Testing &lt;lkft@linaro.org&gt;
Tested-by: Guenter Roeck &lt;linux@roeck-us.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>
Link: https://lore.kernel.org/r/20210901122248.051808371@linuxfoundation.org
Tested-by: Jon Hunter &lt;jonathanh@nvidia.com&gt;
Tested-by: Pavel Machek (CIP) &lt;pavel@denx.de&gt;
Tested-by: Shuah Khan &lt;skhan@linuxfoundation.org&gt;
Tested-by: Linux Kernel Functional Testing &lt;lkft@linaro.org&gt;
Tested-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "floppy: reintroduce O_NDELAY fix"</title>
<updated>2021-09-03T07:43:08+00:00</updated>
<author>
<name>Denis Efremov</name>
<email>efremov@linux.com</email>
</author>
<published>2021-08-07T07:37:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=d25b48d4d3ef1ce75ce5628a8a3ba60a2427090f'/>
<id>d25b48d4d3ef1ce75ce5628a8a3ba60a2427090f</id>
<content type='text'>
commit c7e9d0020361f4308a70cdfd6d5335e273eb8717 upstream.

The patch breaks userspace implementations (e.g. fdutils) and introduces
regressions in behaviour. Previously, it was possible to O_NDELAY open a
floppy device with no media inserted or with write protected media without
an error. Some userspace tools use this particular behavior for probing.

It's not the first time when we revert this patch. Previous revert is in
commit f2791e7eadf4 (Revert "floppy: refactor open() flags handling").

This reverts commit 8a0c014cd20516ade9654fc13b51345ec58e7be8.

Link: https://lore.kernel.org/linux-block/de10cb47-34d1-5a88-7751-225ca380f735@compro.net/
Reported-by: Mark Hounschell &lt;markh@compro.net&gt;
Cc: Jiri Kosina &lt;jkosina@suse.cz&gt;
Cc: Wim Osterholt &lt;wim@djo.tudelft.nl&gt;
Cc: Kurt Garloff &lt;kurt@garloff.de&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Denis Efremov &lt;efremov@linux.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 c7e9d0020361f4308a70cdfd6d5335e273eb8717 upstream.

The patch breaks userspace implementations (e.g. fdutils) and introduces
regressions in behaviour. Previously, it was possible to O_NDELAY open a
floppy device with no media inserted or with write protected media without
an error. Some userspace tools use this particular behavior for probing.

It's not the first time when we revert this patch. Previous revert is in
commit f2791e7eadf4 (Revert "floppy: refactor open() flags handling").

This reverts commit 8a0c014cd20516ade9654fc13b51345ec58e7be8.

Link: https://lore.kernel.org/linux-block/de10cb47-34d1-5a88-7751-225ca380f735@compro.net/
Reported-by: Mark Hounschell &lt;markh@compro.net&gt;
Cc: Jiri Kosina &lt;jkosina@suse.cz&gt;
Cc: Wim Osterholt &lt;wim@djo.tudelft.nl&gt;
Cc: Kurt Garloff &lt;kurt@garloff.de&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Denis Efremov &lt;efremov@linux.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fbmem: add margin check to fb_check_caps()</title>
<updated>2021-09-03T07:43:08+00:00</updated>
<author>
<name>George Kennedy</name>
<email>george.kennedy@oracle.com</email>
</author>
<published>2020-07-07T19:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=15af9988ab754f7221281d6c9022e0193006c2aa'/>
<id>15af9988ab754f7221281d6c9022e0193006c2aa</id>
<content type='text'>
commit a49145acfb975d921464b84fe00279f99827d816 upstream.

A fb_ioctl() FBIOPUT_VSCREENINFO call with invalid xres setting
or yres setting in struct fb_var_screeninfo will result in a
KASAN: vmalloc-out-of-bounds failure in bitfill_aligned() as
the margins are being cleared. The margins are cleared in
chunks and if the xres setting or yres setting is a value of
zero upto the chunk size, the failure will occur.

Add a margin check to validate xres and yres settings.

Signed-off-by: George Kennedy &lt;george.kennedy@oracle.com&gt;
Reported-by: syzbot+e5fd3e65515b48c02a30@syzkaller.appspotmail.com
Reviewed-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Cc: Dhaval Giani &lt;dhaval.giani@oracle.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/1594149963-13801-1-git-send-email-george.kennedy@oracle.com
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 a49145acfb975d921464b84fe00279f99827d816 upstream.

A fb_ioctl() FBIOPUT_VSCREENINFO call with invalid xres setting
or yres setting in struct fb_var_screeninfo will result in a
KASAN: vmalloc-out-of-bounds failure in bitfill_aligned() as
the margins are being cleared. The margins are cleared in
chunks and if the xres setting or yres setting is a value of
zero upto the chunk size, the failure will occur.

Add a margin check to validate xres and yres settings.

Signed-off-by: George Kennedy &lt;george.kennedy@oracle.com&gt;
Reported-by: syzbot+e5fd3e65515b48c02a30@syzkaller.appspotmail.com
Reviewed-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Cc: Dhaval Giani &lt;dhaval.giani@oracle.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/1594149963-13801-1-git-send-email-george.kennedy@oracle.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vt_kdsetmode: extend console locking</title>
<updated>2021-09-03T07:43:08+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2021-08-30T15:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=01da584f08cbb1e04f22796cc49b10d570cd5ec1'/>
<id>01da584f08cbb1e04f22796cc49b10d570cd5ec1</id>
<content type='text'>
commit 2287a51ba822384834dafc1c798453375d1107c7 upstream.

As per the long-suffering comment.

Reported-by: Minh Yuan &lt;yuanmingbuaa@gmail.com&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Cc: Jiri Slaby &lt;jirislaby@kernel.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.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 2287a51ba822384834dafc1c798453375d1107c7 upstream.

As per the long-suffering comment.

Reported-by: Minh Yuan &lt;yuanmingbuaa@gmail.com&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Cc: Jiri Slaby &lt;jirislaby@kernel.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vringh: Use wiov-&gt;used to check for read/write desc order</title>
<updated>2021-09-03T07:43:07+00:00</updated>
<author>
<name>Neeraj Upadhyay</name>
<email>neeraju@codeaurora.org</email>
</author>
<published>2021-06-25T03:25:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=89f0f1e34c494eee945a182b71d0ac6a63078189'/>
<id>89f0f1e34c494eee945a182b71d0ac6a63078189</id>
<content type='text'>
[ Upstream commit e74cfa91f42c50f7f649b0eca46aa049754ccdbd ]

As __vringh_iov() traverses a descriptor chain, it populates
each descriptor entry into either read or write vring iov
and increments that iov's -&gt;used member. So, as we iterate
over a descriptor chain, at any point, (riov/wriov)-&gt;used
value gives the number of descriptor enteries available,
which are to be read or written by the device. As all read
iovs must precede the write iovs, wiov-&gt;used should be zero
when we are traversing a read descriptor. Current code checks
for wiov-&gt;i, to figure out whether any previous entry in the
current descriptor chain was a write descriptor. However,
iov-&gt;i is only incremented, when these vring iovs are consumed,
at a later point, and remain 0 in __vringh_iov(). So, correct
the check for read and write descriptor order, to use
wiov-&gt;used.

Acked-by: Jason Wang &lt;jasowang@redhat.com&gt;
Reviewed-by: Stefano Garzarella &lt;sgarzare@redhat.com&gt;
Signed-off-by: Neeraj Upadhyay &lt;neeraju@codeaurora.org&gt;
Link: https://lore.kernel.org/r/1624591502-4827-1-git-send-email-neeraju@codeaurora.org
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit e74cfa91f42c50f7f649b0eca46aa049754ccdbd ]

As __vringh_iov() traverses a descriptor chain, it populates
each descriptor entry into either read or write vring iov
and increments that iov's -&gt;used member. So, as we iterate
over a descriptor chain, at any point, (riov/wriov)-&gt;used
value gives the number of descriptor enteries available,
which are to be read or written by the device. As all read
iovs must precede the write iovs, wiov-&gt;used should be zero
when we are traversing a read descriptor. Current code checks
for wiov-&gt;i, to figure out whether any previous entry in the
current descriptor chain was a write descriptor. However,
iov-&gt;i is only incremented, when these vring iovs are consumed,
at a later point, and remain 0 in __vringh_iov(). So, correct
the check for read and write descriptor order, to use
wiov-&gt;used.

Acked-by: Jason Wang &lt;jasowang@redhat.com&gt;
Reviewed-by: Stefano Garzarella &lt;sgarzare@redhat.com&gt;
Signed-off-by: Neeraj Upadhyay &lt;neeraju@codeaurora.org&gt;
Link: https://lore.kernel.org/r/1624591502-4827-1-git-send-email-neeraju@codeaurora.org
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>virtio: Improve vq-&gt;broken access to avoid any compiler optimization</title>
<updated>2021-09-03T07:43:07+00:00</updated>
<author>
<name>Parav Pandit</name>
<email>parav@nvidia.com</email>
</author>
<published>2021-07-21T14:26:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=1e0ce9825278c07739e1f2d3c5934be9bd172121'/>
<id>1e0ce9825278c07739e1f2d3c5934be9bd172121</id>
<content type='text'>
[ Upstream commit 60f0779862e4ab943810187752c462e85f5fa371 ]

Currently vq-&gt;broken field is read by virtqueue_is_broken() in busy
loop in one context by virtnet_send_command().

vq-&gt;broken is set to true in other process context by
virtio_break_device(). Reader and writer are accessing it without any
synchronization. This may lead to a compiler optimization which may
result to optimize reading vq-&gt;broken only once.

Hence, force reading vq-&gt;broken on each invocation of
virtqueue_is_broken() and also force writing it so that such
update is visible to the readers.

It is a theoretical fix that isn't yet encountered in the field.

Signed-off-by: Parav Pandit &lt;parav@nvidia.com&gt;
Link: https://lore.kernel.org/r/20210721142648.1525924-2-parav@nvidia.com
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 60f0779862e4ab943810187752c462e85f5fa371 ]

Currently vq-&gt;broken field is read by virtqueue_is_broken() in busy
loop in one context by virtnet_send_command().

vq-&gt;broken is set to true in other process context by
virtio_break_device(). Reader and writer are accessing it without any
synchronization. This may lead to a compiler optimization which may
result to optimize reading vq-&gt;broken only once.

Hence, force reading vq-&gt;broken on each invocation of
virtqueue_is_broken() and also force writing it so that such
update is visible to the readers.

It is a theoretical fix that isn't yet encountered in the field.

Signed-off-by: Parav Pandit &lt;parav@nvidia.com&gt;
Link: https://lore.kernel.org/r/20210721142648.1525924-2-parav@nvidia.com
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: marvell: fix MVNETA_TX_IN_PRGRS bit number</title>
<updated>2021-09-03T07:43:07+00:00</updated>
<author>
<name>Maxim Kiselev</name>
<email>bigunclemax@gmail.com</email>
</author>
<published>2021-08-20T15:39:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=17855944ede25564a7b650615ced2e317a5181a0'/>
<id>17855944ede25564a7b650615ced2e317a5181a0</id>
<content type='text'>
[ Upstream commit 359f4cdd7d78fdf8c098713b05fee950a730f131 ]

According to Armada XP datasheet bit at 0 position is corresponding for
TxInProg indication.

Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit")
Signed-off-by: Maxim Kiselev &lt;bigunclemax@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 359f4cdd7d78fdf8c098713b05fee950a730f131 ]

According to Armada XP datasheet bit at 0 position is corresponding for
TxInProg indication.

Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit")
Signed-off-by: Maxim Kiselev &lt;bigunclemax@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>e1000e: Fix the max snoop/no-snoop latency for 10M</title>
<updated>2021-09-03T07:43:07+00:00</updated>
<author>
<name>Sasha Neftin</name>
<email>sasha.neftin@intel.com</email>
</author>
<published>2021-07-04T07:11:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=b7b35cc5cb6f460c0a801ee869b481fb5a107f68'/>
<id>b7b35cc5cb6f460c0a801ee869b481fb5a107f68</id>
<content type='text'>
[ Upstream commit 44a13a5d99c71bf9e1676d9e51679daf4d7b3d73 ]

We should decode the latency and the max_latency before directly compare.
The latency should be presented as lat_enc = scale x value:
lat_enc_d = (lat_enc &amp; 0x0x3ff) x (1U &lt;&lt; (5*((max_ltr_enc &amp; 0x1c00)
&gt;&gt; 10)))

Fixes: cf8fb73c23aa ("e1000e: add support for LTR on I217/I218")
Suggested-by: Yee Li &lt;seven.yi.lee@gmail.com&gt;
Signed-off-by: Sasha Neftin &lt;sasha.neftin@intel.com&gt;
Tested-by: Dvora Fuxbrumer &lt;dvorax.fuxbrumer@linux.intel.com&gt;
Signed-off-by: Tony Nguyen &lt;anthony.l.nguyen@intel.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 44a13a5d99c71bf9e1676d9e51679daf4d7b3d73 ]

We should decode the latency and the max_latency before directly compare.
The latency should be presented as lat_enc = scale x value:
lat_enc_d = (lat_enc &amp; 0x0x3ff) x (1U &lt;&lt; (5*((max_ltr_enc &amp; 0x1c00)
&gt;&gt; 10)))

Fixes: cf8fb73c23aa ("e1000e: add support for LTR on I217/I218")
Suggested-by: Yee Li &lt;seven.yi.lee@gmail.com&gt;
Signed-off-by: Sasha Neftin &lt;sasha.neftin@intel.com&gt;
Tested-by: Dvora Fuxbrumer &lt;dvorax.fuxbrumer@linux.intel.com&gt;
Signed-off-by: Tony Nguyen &lt;anthony.l.nguyen@intel.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: option: add new VID/PID to support Fibocom FG150</title>
<updated>2021-09-03T07:43:07+00:00</updated>
<author>
<name>Zhengjun Zhang</name>
<email>zhangzhengjun@aicrobo.com</email>
</author>
<published>2021-08-09T13:35:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=de4cd4160161f47114d392f1f5f2dd42c77c6ba7'/>
<id>de4cd4160161f47114d392f1f5f2dd42c77c6ba7</id>
<content type='text'>
commit 2829a4e3cf3a6ac2fa3cdb681b37574630fb9c1a upstream.

Fibocom FG150 is a 5G module based on Qualcomm SDX55 platform,
support Sub-6G band.

Here are the outputs of lsusb -v and usb-devices:

&gt; T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
&gt; D:  Ver= 3.20 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
&gt; P:  Vendor=2cb7 ProdID=010b Rev=04.14
&gt; S:  Manufacturer=Fibocom
&gt; S:  Product=Fibocom Modem_SN:XXXXXXXX
&gt; S:  SerialNumber=XXXXXXXX
&gt; C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
&gt; I:  If#=0x0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host
&gt; I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
&gt; I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
&gt; I:  If#=0x3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
&gt; I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)

&gt; Bus 002 Device 002: ID 2cb7:010b Fibocom Fibocom Modem_SN:XXXXXXXX
&gt; Device Descriptor:
&gt;   bLength                18
&gt;   bDescriptorType         1
&gt;   bcdUSB               3.20
&gt;   bDeviceClass            0
&gt;   bDeviceSubClass         0
&gt;   bDeviceProtocol         0
&gt;   bMaxPacketSize0         9
&gt;   idVendor           0x2cb7 Fibocom
&gt;   idProduct          0x010b
&gt;   bcdDevice            4.14
&gt;   iManufacturer           1 Fibocom
&gt;   iProduct                2 Fibocom Modem_SN:XXXXXXXX
&gt;   iSerial                 3 XXXXXXXX
&gt;   bNumConfigurations      1
&gt;   Configuration Descriptor:
&gt;     bLength                 9
&gt;     bDescriptorType         2
&gt;     wTotalLength       0x00e6
&gt;     bNumInterfaces          5
&gt;     bConfigurationValue     1
&gt;     iConfiguration          4 RNDIS_DUN_DIAG_ADB
&gt;     bmAttributes         0xa0
&gt;       (Bus Powered)
&gt;       Remote Wakeup
&gt;     MaxPower              896mA
&gt;     Interface Association:
&gt;       bLength                 8
&gt;       bDescriptorType        11
&gt;       bFirstInterface         0
&gt;       bInterfaceCount         2
&gt;       bFunctionClass        239 Miscellaneous Device
&gt;       bFunctionSubClass       4
&gt;       bFunctionProtocol       1
&gt;       iFunction               7 RNDIS
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        0
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           1
&gt;       bInterfaceClass       239 Miscellaneous Device
&gt;       bInterfaceSubClass      4
&gt;       bInterfaceProtocol      1
&gt;       iInterface              0
&gt;       ** UNRECOGNIZED:  05 24 00 10 01
&gt;       ** UNRECOGNIZED:  05 24 01 00 01
&gt;       ** UNRECOGNIZED:  04 24 02 00
&gt;       ** UNRECOGNIZED:  05 24 06 00 01
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x81  EP 1 IN
&gt;         bmAttributes            3
&gt;           Transfer Type            Interrupt
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0008  1x 8 bytes
&gt;         bInterval               9
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        1
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass        10 CDC Data
&gt;       bInterfaceSubClass      0
&gt;       bInterfaceProtocol      0
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x8e  EP 14 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               6
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x0f  EP 15 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               6
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        2
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           3
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass      0
&gt;       bInterfaceProtocol      0
&gt;       iInterface              0
&gt;       ** UNRECOGNIZED:  05 24 00 10 01
&gt;       ** UNRECOGNIZED:  05 24 01 00 00
&gt;       ** UNRECOGNIZED:  04 24 02 02
&gt;       ** UNRECOGNIZED:  05 24 06 00 00
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x83  EP 3 IN
&gt;         bmAttributes            3
&gt;           Transfer Type            Interrupt
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x000a  1x 10 bytes
&gt;         bInterval               9
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x82  EP 2 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x01  EP 1 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        3
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass    255 Vendor Specific Subclass
&gt;       bInterfaceProtocol     48
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x84  EP 4 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x02  EP 2 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        4
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass     66
&gt;       bInterfaceProtocol      1
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x03  EP 3 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x85  EP 5 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt; Binary Object Store Descriptor:
&gt;   bLength                 5
&gt;   bDescriptorType        15
&gt;   wTotalLength       0x0016
&gt;   bNumDeviceCaps          2
&gt;   USB 2.0 Extension Device Capability:
&gt;     bLength                 7
&gt;     bDescriptorType        16
&gt;     bDevCapabilityType      2
&gt;     bmAttributes   0x00000006
&gt;       BESL Link Power Management (LPM) Supported
&gt;   SuperSpeed USB Device Capability:
&gt;     bLength                10
&gt;     bDescriptorType        16
&gt;     bDevCapabilityType      3
&gt;     bmAttributes         0x00
&gt;     wSpeedsSupported   0x000f
&gt;       Device can operate at Low Speed (1Mbps)
&gt;       Device can operate at Full Speed (12Mbps)
&gt;       Device can operate at High Speed (480Mbps)
&gt;       Device can operate at SuperSpeed (5Gbps)
&gt;     bFunctionalitySupport   1
&gt;       Lowest fully-functional device speed is Full Speed (12Mbps)
&gt;     bU1DevExitLat           1 micro seconds
&gt;     bU2DevExitLat         500 micro seconds
&gt; Device Status:     0x0000
&gt;   (Bus Powered)

Signed-off-by: Zhengjun Zhang &lt;zhangzhengjun@aicrobo.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.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 2829a4e3cf3a6ac2fa3cdb681b37574630fb9c1a upstream.

Fibocom FG150 is a 5G module based on Qualcomm SDX55 platform,
support Sub-6G band.

Here are the outputs of lsusb -v and usb-devices:

&gt; T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
&gt; D:  Ver= 3.20 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
&gt; P:  Vendor=2cb7 ProdID=010b Rev=04.14
&gt; S:  Manufacturer=Fibocom
&gt; S:  Product=Fibocom Modem_SN:XXXXXXXX
&gt; S:  SerialNumber=XXXXXXXX
&gt; C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
&gt; I:  If#=0x0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host
&gt; I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
&gt; I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
&gt; I:  If#=0x3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
&gt; I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)

&gt; Bus 002 Device 002: ID 2cb7:010b Fibocom Fibocom Modem_SN:XXXXXXXX
&gt; Device Descriptor:
&gt;   bLength                18
&gt;   bDescriptorType         1
&gt;   bcdUSB               3.20
&gt;   bDeviceClass            0
&gt;   bDeviceSubClass         0
&gt;   bDeviceProtocol         0
&gt;   bMaxPacketSize0         9
&gt;   idVendor           0x2cb7 Fibocom
&gt;   idProduct          0x010b
&gt;   bcdDevice            4.14
&gt;   iManufacturer           1 Fibocom
&gt;   iProduct                2 Fibocom Modem_SN:XXXXXXXX
&gt;   iSerial                 3 XXXXXXXX
&gt;   bNumConfigurations      1
&gt;   Configuration Descriptor:
&gt;     bLength                 9
&gt;     bDescriptorType         2
&gt;     wTotalLength       0x00e6
&gt;     bNumInterfaces          5
&gt;     bConfigurationValue     1
&gt;     iConfiguration          4 RNDIS_DUN_DIAG_ADB
&gt;     bmAttributes         0xa0
&gt;       (Bus Powered)
&gt;       Remote Wakeup
&gt;     MaxPower              896mA
&gt;     Interface Association:
&gt;       bLength                 8
&gt;       bDescriptorType        11
&gt;       bFirstInterface         0
&gt;       bInterfaceCount         2
&gt;       bFunctionClass        239 Miscellaneous Device
&gt;       bFunctionSubClass       4
&gt;       bFunctionProtocol       1
&gt;       iFunction               7 RNDIS
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        0
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           1
&gt;       bInterfaceClass       239 Miscellaneous Device
&gt;       bInterfaceSubClass      4
&gt;       bInterfaceProtocol      1
&gt;       iInterface              0
&gt;       ** UNRECOGNIZED:  05 24 00 10 01
&gt;       ** UNRECOGNIZED:  05 24 01 00 01
&gt;       ** UNRECOGNIZED:  04 24 02 00
&gt;       ** UNRECOGNIZED:  05 24 06 00 01
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x81  EP 1 IN
&gt;         bmAttributes            3
&gt;           Transfer Type            Interrupt
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0008  1x 8 bytes
&gt;         bInterval               9
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        1
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass        10 CDC Data
&gt;       bInterfaceSubClass      0
&gt;       bInterfaceProtocol      0
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x8e  EP 14 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               6
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x0f  EP 15 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               6
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        2
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           3
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass      0
&gt;       bInterfaceProtocol      0
&gt;       iInterface              0
&gt;       ** UNRECOGNIZED:  05 24 00 10 01
&gt;       ** UNRECOGNIZED:  05 24 01 00 00
&gt;       ** UNRECOGNIZED:  04 24 02 02
&gt;       ** UNRECOGNIZED:  05 24 06 00 00
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x83  EP 3 IN
&gt;         bmAttributes            3
&gt;           Transfer Type            Interrupt
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x000a  1x 10 bytes
&gt;         bInterval               9
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x82  EP 2 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x01  EP 1 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        3
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass    255 Vendor Specific Subclass
&gt;       bInterfaceProtocol     48
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x84  EP 4 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x02  EP 2 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;     Interface Descriptor:
&gt;       bLength                 9
&gt;       bDescriptorType         4
&gt;       bInterfaceNumber        4
&gt;       bAlternateSetting       0
&gt;       bNumEndpoints           2
&gt;       bInterfaceClass       255 Vendor Specific Class
&gt;       bInterfaceSubClass     66
&gt;       bInterfaceProtocol      1
&gt;       iInterface              0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x03  EP 3 OUT
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt;       Endpoint Descriptor:
&gt;         bLength                 7
&gt;         bDescriptorType         5
&gt;         bEndpointAddress     0x85  EP 5 IN
&gt;         bmAttributes            2
&gt;           Transfer Type            Bulk
&gt;           Synch Type               None
&gt;           Usage Type               Data
&gt;         wMaxPacketSize     0x0400  1x 1024 bytes
&gt;         bInterval               0
&gt;         bMaxBurst               0
&gt; Binary Object Store Descriptor:
&gt;   bLength                 5
&gt;   bDescriptorType        15
&gt;   wTotalLength       0x0016
&gt;   bNumDeviceCaps          2
&gt;   USB 2.0 Extension Device Capability:
&gt;     bLength                 7
&gt;     bDescriptorType        16
&gt;     bDevCapabilityType      2
&gt;     bmAttributes   0x00000006
&gt;       BESL Link Power Management (LPM) Supported
&gt;   SuperSpeed USB Device Capability:
&gt;     bLength                10
&gt;     bDescriptorType        16
&gt;     bDevCapabilityType      3
&gt;     bmAttributes         0x00
&gt;     wSpeedsSupported   0x000f
&gt;       Device can operate at Low Speed (1Mbps)
&gt;       Device can operate at Full Speed (12Mbps)
&gt;       Device can operate at High Speed (480Mbps)
&gt;       Device can operate at SuperSpeed (5Gbps)
&gt;     bFunctionalitySupport   1
&gt;       Lowest fully-functional device speed is Full Speed (12Mbps)
&gt;     bU1DevExitLat           1 micro seconds
&gt;     bU2DevExitLat         500 micro seconds
&gt; Device Status:     0x0000
&gt;   (Bus Powered)

Signed-off-by: Zhengjun Zhang &lt;zhangzhengjun@aicrobo.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "USB: serial: ch341: fix character loss at high transfer rates"</title>
<updated>2021-09-03T07:43:07+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2021-08-24T12:19:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=e8635b48dad0c06b4efcfc20c1e656912fcd9313'/>
<id>e8635b48dad0c06b4efcfc20c1e656912fcd9313</id>
<content type='text'>
commit df7b16d1c00ecb3da3a30c999cdb39f273c99a2f upstream.

This reverts commit 3c18e9baee0ef97510dcda78c82285f52626764b.

These devices do not appear to send a zero-length packet when the
transfer size is a multiple of the bulk-endpoint max-packet size. This
means that incoming data may not be processed by the driver until a
short packet is received or the receive buffer is full.

Revert back to using endpoint-sized receive buffers to avoid stalled
reads.

Reported-by: Paul Größel &lt;pb.g@gmx.de&gt;
Link: https://bugzilla.kernel.org/show_bug.cgi?id=214131
Fixes: 3c18e9baee0e ("USB: serial: ch341: fix character loss at high transfer rates")
Cc: stable@vger.kernel.org
Cc: Willy Tarreau &lt;w@1wt.eu&gt;
Link: https://lore.kernel.org/r/20210824121926.19311-1-johan@kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.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 df7b16d1c00ecb3da3a30c999cdb39f273c99a2f upstream.

This reverts commit 3c18e9baee0ef97510dcda78c82285f52626764b.

These devices do not appear to send a zero-length packet when the
transfer size is a multiple of the bulk-endpoint max-packet size. This
means that incoming data may not be processed by the driver until a
short packet is received or the receive buffer is full.

Revert back to using endpoint-sized receive buffers to avoid stalled
reads.

Reported-by: Paul Größel &lt;pb.g@gmx.de&gt;
Link: https://bugzilla.kernel.org/show_bug.cgi?id=214131
Fixes: 3c18e9baee0e ("USB: serial: ch341: fix character loss at high transfer rates")
Cc: stable@vger.kernel.org
Cc: Willy Tarreau &lt;w@1wt.eu&gt;
Link: https://lore.kernel.org/r/20210824121926.19311-1-johan@kernel.org
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
