Skip to content
  1. Dec 08, 2021
    • Tony Lu's avatar
      net/smc: Don't call clcsock shutdown twice when smc shutdown · 8e8f9087
      Tony Lu authored
      [ Upstream commit bacb6c1e ]
      
      When applications call shutdown() with SHUT_RDWR in userspace,
      smc_close_active() calls kernel_sock_shutdown(), and it is called
      twice in smc_shutdown().
      
      This fixes this by checking sk_state before do clcsock shutdown, and
      avoids missing the application's call of smc_shutdown().
      
      Link: https://lore.kernel.org/linux-s390/1f67548e-cbf6-0dce-82b5-10288a4583bd@linux.ibm.com/
      Fixes: 606a63c9
      
       ("net/smc: Ensure the active closing peer first closes clcsock")
      Signed-off-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarWen Gu <guwen@linux.alibaba.com>
      Acked-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
      Link: https://lore.kernel.org/r/20211126024134.45693-1-tonylu@linux.alibaba.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      8e8f9087
    • Huang Pei's avatar
      MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48 · fa0255f1
      Huang Pei authored
      [ Upstream commit 41ce097f ]
      
      It hangup when booting Loongson 3A1000 with BOTH
      CONFIG_PAGE_SIZE_64KB and CONFIG_MIPS_VA_BITS_48, that it turn
      out to use 2-level pgtable instead of 3-level. 64KB page size
      with 2-level pgtable only cover 42 bits VA, use 3-level pgtable
      to cover all 48 bits VA(55 bits)
      
      Fixes: 1e321fa9
      
       ("MIPS64: Support of at least 48 bits of SEGBITS)
      Signed-off-by: default avatarHuang Pei <huangpei@loongson.cn>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      fa0255f1
    • Eric Dumazet's avatar
      tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited flows · 63e8aabe
      Eric Dumazet authored
      [ Upstream commit 4e1fddc9 ]
      
      While testing BIG TCP patch series, I was expecting that TCP_RR workloads
      with 80KB requests/answers would send one 80KB TSO packet,
      then being received as a single GRO packet.
      
      It turns out this was not happening, and the root cause was that
      cubic Hystart ACK train was triggering after a few (2 or 3) rounds of RPC.
      
      Hystart was wrongly setting CWND/SSTHRESH to 30, while my RPC
      needed a budget of ~20 segments.
      
      Ideally these TCP_RR flows should not exit slow start.
      
      Cubic Hystart should reset itself at each round, instead of assuming
      every TCP flow is a bulk one.
      
      Note that even after this patch, Hystart can still trigger, depending
      on scheduling artifacts, but at a higher CWND/SSTHRESH threshold,
      keeping optimal TSO packet sizes.
      
      Tested:
      
      ip link set dev eth0 gro_ipv6_max_size 131072 gso_ipv6_max_size 131072
      nstat -n; netperf -H ... -t TCP_RR  -l 5  -- -r 80000,80000 -K cubic; nstat|egrep "Ip6InReceives|Hystart|Ip6OutRequests"
      
      Before:
      
         8605
      Ip6InReceives                   87541              0.0
      Ip6OutRequests                  129496             0.0
      TcpExtTCPHystartTrainDetect     1                  0.0
      TcpExtTCPHystartTrainCwnd       30                 0.0
      
      After:
      
        8760
      Ip6InReceives                   88514              0.0
      Ip6OutRequests                  87975              0.0
      
      Fixes: ae27e98a
      
       ("[TCP] CUBIC v2.3")
      Co-developed-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Stephen Hemminger <stephen@networkplumber.org>
      Cc: Yuchung Cheng <ycheng@google.com>
      Cc: Soheil Hassas Yeganeh <soheil@google.com>
      Link: https://lore.kernel.org/r/20211123202535.1843771-1-eric.dumazet@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      63e8aabe
    • Thomas Zeitlhofer's avatar
      PM: hibernate: use correct mode for swsusp_close() · 8881d808
      Thomas Zeitlhofer authored
      [ Upstream commit cefcf24b ]
      
      Commit 39fbef4b ("PM: hibernate: Get block device exclusively in
      swsusp_check()") changed the opening mode of the block device to
      (FMODE_READ | FMODE_EXCL).
      
      In the corresponding calls to swsusp_close(), the mode is still just
      FMODE_READ which triggers the warning in blkdev_flush_mapping() on
      resume from hibernate.
      
      So, use the mode (FMODE_READ | FMODE_EXCL) also when closing the
      device.
      
      Fixes: 39fbef4b
      
       ("PM: hibernate: Get block device exclusively in swsusp_check()")
      Signed-off-by: default avatarThomas Zeitlhofer <thomas.zeitlhofer+lkml@ze-it.at>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      8881d808
    • Tony Lu's avatar
      net/smc: Ensure the active closing peer first closes clcsock · 107b4338
      Tony Lu authored
      [ Upstream commit 606a63c9 ]
      
      The side that actively closed socket, it's clcsock doesn't enter
      TIME_WAIT state, but the passive side does it. It should show the same
      behavior as TCP sockets.
      
      Consider this, when client actively closes the socket, the clcsock in
      server enters TIME_WAIT state, which means the address is occupied and
      won't be reused before TIME_WAIT dismissing. If we restarted server, the
      service would be unavailable for a long time.
      
      To solve this issue, shutdown the clcsock in [A], perform the TCP active
      close progress first, before the passive closed side closing it. So that
      the actively closed side enters TIME_WAIT, not the passive one.
      
      Client                                            |  Server
      close() // client actively close                  |
        smc_release()                                   |
            smc_close_active() // PEERCLOSEWAIT1        |
                smc_close_final() // abort or closed = 1|
                    smc_cdc_get_slot_and_msg_send()     |
                [A]                                     |
                                                        |smc_cdc_msg_recv_action() // ACTIVE
                                                        |  queue_work(smc_close_wq, &conn->close_work)
                                                        |    smc_close_passive_work() // PROCESSABORT or APPCLOSEWAIT1
                                                        |      smc_close_passive_abort_received() // only in abort
                                                        |
                                                        |close() // server recv zero, close
                                                        |  smc_release() // PROCESSABORT or APPCLOSEWAIT1
                                                        |    smc_close_active()
                                                        |      smc_close_abort() or smc_close_final() // CLOSED
                                                        |        smc_cdc_get_slot_and_msg_send() // abort or closed = 1
      smc_cdc_msg_recv_action()                         |    smc_clcsock_release()
        queue_work(smc_close_wq, &conn->close_work)     |      sock_release(tcp) // actively close clc, enter TIME_WAIT
          smc_close_passive_work() // PEERCLOSEWAIT1    |    smc_conn_free()
            smc_close_passive_abort_received() // CLOSED|
            smc_conn_free()                             |
            smc_clcsock_release()                       |
              sock_release(tcp) // passive close clc    |
      
      Link: https://www.spinics.net/lists/netdev/msg780407.html
      Fixes: b38d7324
      
       ("smc: socket closing and linkgroup cleanup")
      Signed-off-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarWen Gu <guwen@linux.alibaba.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      107b4338
    • Eric Dumazet's avatar
      ipv6: fix typos in __ip6_finish_output() · ba503f46
      Eric Dumazet authored
      [ Upstream commit 19d36c5f ]
      
      We deal with IPv6 packets, so we need to use IP6CB(skb)->flags and
      IP6SKB_REROUTED, instead of IPCB(skb)->flags and IPSKB_REROUTED
      
      Found by code inspection, please double check that fixing this bug
      does not surface other bugs.
      
      Fixes: 09ee9dba
      
       ("ipv6: Reinject IPv6 packets if IPsec policy matches after SNAT")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Tobias Brunner <tobias@strongswan.org>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Cc: David Ahern <dsahern@kernel.org>
      Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
      Tested-by: default avatarTobias Brunner <tobias@strongswan.org>
      Acked-by: default avatarTobias Brunner <tobias@strongswan.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      ba503f46
    • Dan Carpenter's avatar
      drm/vc4: fix error code in vc4_create_object() · 93cadd96
      Dan Carpenter authored
      [ Upstream commit 96c5f82e ]
      
      The ->gem_create_object() functions are supposed to return NULL if there
      is an error.  None of the callers expect error pointers so returing one
      will lead to an Oops.  See drm_gem_vram_create(), for example.
      
      Fixes: c826a6e1
      
       ("drm/vc4: Add a BO cache.")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211118111416.GC1147@kili
      
      
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      93cadd96
    • Sreekanth Reddy's avatar
      scsi: mpt3sas: Fix kernel panic during drive powercycle test · dd035ca0
      Sreekanth Reddy authored
      [ Upstream commit 0ee4ba13 ]
      
      While looping over shost's sdev list it is possible that one
      of the drives is getting removed and its sas_target object is
      freed but its sdev object remains intact.
      
      Consequently, a kernel panic can occur while the driver is trying to access
      the sas_address field of sas_target object without also checking the
      sas_target object for NULL.
      
      Link: https://lore.kernel.org/r/20211117104909.2069-1-sreekanth.reddy@broadcom.com
      Fixes: f92363d1
      
       ("[SCSI] mpt3sas: add new driver supporting 12GB SAS")
      Signed-off-by: default avatarSreekanth Reddy <sreekanth.reddy@broadcom.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      dd035ca0
    • Takashi Iwai's avatar
      ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE · 25bd60b9
      Takashi Iwai authored
      [ Upstream commit 187bea47 ]
      
      When CONFIG_FORTIFY_SOURCE is set, memcpy() checks the potential
      buffer overflow and panics.  The code in sofcpga bootstrapping
      contains the memcpy() calls are mistakenly translated as the shorter
      size, hence it triggers a panic as if it were overflowing.
      
      This patch changes the secondary_trampoline and *_end definitions
      to arrays for avoiding the false-positive crash above.
      
      Fixes: 9c4566a1
      
       ("ARM: socfpga: Enable SMP for socfpga")
      Suggested-by: default avatarKees Cook <keescook@chromium.org>
      Buglink: https://bugzilla.suse.com/show_bug.cgi?id=1192473
      Link: https://lore.kernel.org/r/20211117193244.31162-1-tiwai@suse.de
      
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarDinh Nguyen <dinguyen@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      25bd60b9
    • Trond Myklebust's avatar
      NFSv42: Don't fail clone() unless the OP_CLONE operation failed · 9b54bc67
      Trond Myklebust authored
      [ Upstream commit d3c45824 ]
      
      The failure to retrieve post-op attributes has no bearing on whether or
      not the clone operation itself was successful. We must therefore ignore
      the return value of decode_getfattr() when looking at the success or
      failure of nfs4_xdr_dec_clone().
      
      Fixes: 36022770
      
       ("nfs42: add CLONE xdr functions")
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      9b54bc67
    • Alexander Aring's avatar
      net: ieee802154: handle iftypes as u32 · ec2fe9e2
      Alexander Aring authored
      [ Upstream commit 451dc48c ]
      
      This patch fixes an issue that an u32 netlink value is handled as a
      signed enum value which doesn't fit into the range of u32 netlink type.
      If it's handled as -1 value some BIT() evaluation ends in a
      shift-out-of-bounds issue. To solve the issue we set the to u32 max which
      is s32 "-1" value to keep backwards compatibility and let the followed enum
      values start counting at 0. This brings the compiler to never handle the
      enum as signed and a check if the value is above NL802154_IFTYPE_MAX should
      filter -1 out.
      
      Fixes: f3ea5e44
      
       ("ieee802154: add new interface command")
      Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
      Link: https://lore.kernel.org/r/20211112030916.685793-1-aahringo@redhat.com
      
      
      Signed-off-by: default avatarStefan Schmidt <stefan@datenfreihafen.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      ec2fe9e2
    • Takashi Iwai's avatar
      ASoC: topology: Add missing rwsem around snd_ctl_remove() calls · ab6db10b
      Takashi Iwai authored
      [ Upstream commit 7e567b5a ]
      
      snd_ctl_remove() has to be called with card->controls_rwsem held (when
      called after the card instantiation).  This patch add the missing
      rwsem calls around it.
      
      Fixes: 8a978234
      
       ("ASoC: topology: Add topology core")
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Link: https://lore.kernel.org/r/20211116071812.18109-1-tiwai@suse.de
      
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      ab6db10b
    • Florian Fainelli's avatar
      ARM: dts: BCM5301X: Add interrupt properties to GPIO node · a12e248c
      Florian Fainelli authored
      [ Upstream commit 40f7342f ]
      
      The GPIO controller is also an interrupt controller provider and is
      currently missing the appropriate 'interrupt-controller' and
      '#interrupt-cells' properties to denote that.
      
      Fixes: fb026d3d
      
       ("ARM: BCM5301X: Add Broadcom's bus-axi to the DTS file")
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      a12e248c
    • Florian Fainelli's avatar
      ARM: dts: BCM5301X: Fix I2C controller interrupt · 3e18bfe1
      Florian Fainelli authored
      [ Upstream commit 754c4050 ]
      
      The I2C interrupt controller line is off by 32 because the datasheet
      describes interrupt inputs into the GIC which are for Shared Peripheral
      Interrupts and are starting at offset 32. The ARM GIC binding expects
      the SPI interrupts to be numbered from 0 relative to the SPI base.
      
      Fixes: bb097e3e
      
       ("ARM: dts: BCM5301X: Add I2C support to the DT")
      Tested-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      3e18bfe1
    • yangxingwu's avatar
      netfilter: ipvs: Fix reuse connection if RS weight is 0 · c46d0975
      yangxingwu authored
      [ Upstream commit c95c0783 ]
      
      We are changing expire_nodest_conn to work even for reused connections when
      conn_reuse_mode=0, just as what was done with commit dc7b3eb9 ("ipvs:
      Fix reuse connection if real server is dead").
      
      For controlled and persistent connections, the new connection will get the
      needed real server depending on the rules in ip_vs_check_template().
      
      Fixes: d752c364
      
       ("ipvs: allow rescheduling of new connections when port reuse is detected")
      Co-developed-by: default avatarChuanqi Liu <legend050709@qq.com>
      Signed-off-by: default avatarChuanqi Liu <legend050709@qq.com>
      Signed-off-by: default avataryangxingwu <xingwu.yang@gmail.com>
      Acked-by: default avatarSimon Horman <horms@verge.net.au>
      Acked-by: default avatarJulian Anastasov <ja@ssi.bg>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      c46d0975
    • Steven Rostedt (VMware)'s avatar
      tracing: Fix pid filtering when triggers are attached · dae065e3
      Steven Rostedt (VMware) authored
      commit a55f224f upstream.
      
      If a event is filtered by pid and a trigger that requires processing of
      the event to happen is a attached to the event, the discard portion does
      not take the pid filtering into account, and the event will then be
      recorded when it should not have been.
      
      Cc: stable@vger.kernel.org
      Fixes: 3fdaf80f
      
       ("tracing: Implement event pid filtering")
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dae065e3
    • Stefano Stabellini's avatar
      xen: detect uninitialized xenbus in xenbus_init · 12dd397a
      Stefano Stabellini authored
      commit 36e8f60f
      
       upstream.
      
      If the xenstore page hasn't been allocated properly, reading the value
      of the related hvm_param (HVM_PARAM_STORE_PFN) won't actually return
      error. Instead, it will succeed and return zero. Instead of attempting
      to xen_remap a bad guest physical address, detect this condition and
      return early.
      
      Note that although a guest physical address of zero for
      HVM_PARAM_STORE_PFN is theoretically possible, it is not a good choice
      and zero has never been validly used in that capacity.
      
      Also recognize all bits set as an invalid value.
      
      For 32-bit Linux, any pfn above ULONG_MAX would get truncated. Pfns
      above ULONG_MAX should never be passed by the Xen tools to HVM guests
      anyway, so check for this condition and return early.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@xilinx.com>
      Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      Link: https://lore.kernel.org/r/20211123210748.1910236-1-sstabellini@kernel.org
      
      
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      12dd397a
    • Stefano Stabellini's avatar
      xen: don't continue xenstore initialization in case of errors · 1dc1d345
      Stefano Stabellini authored
      commit 08f6c2b0
      
       upstream.
      
      In case of errors in xenbus_init (e.g. missing xen_store_gfn parameter),
      we goto out_error but we forget to reset xen_store_domain_type to
      XS_UNKNOWN. As a consequence xenbus_probe_initcall and other initcalls
      will still try to initialize xenstore resulting into a crash at boot.
      
      [    2.479830] Call trace:
      [    2.482314]  xb_init_comms+0x18/0x150
      [    2.486354]  xs_init+0x34/0x138
      [    2.489786]  xenbus_probe+0x4c/0x70
      [    2.498432]  xenbus_probe_initcall+0x2c/0x7c
      [    2.503944]  do_one_initcall+0x54/0x1b8
      [    2.507358]  kernel_init_freeable+0x1ac/0x210
      [    2.511617]  kernel_init+0x28/0x130
      [    2.516112]  ret_from_fork+0x10/0x20
      
      Cc: <Stable@vger.kernel.org>
      Cc: jbeulich@suse.com
      Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@xilinx.com>
      Link: https://lore.kernel.org/r/20211115222719.2558207-1-sstabellini@kernel.org
      
      
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1dc1d345
    • Miklos Szeredi's avatar
      fuse: fix page stealing · 017fc242
      Miklos Szeredi authored
      commit 712a9510
      
       upstream.
      
      It is possible to trigger a crash by splicing anon pipe bufs to the fuse
      device.
      
      The reason for this is that anon_pipe_buf_release() will reuse buf->page if
      the refcount is 1, but that page might have already been stolen and its
      flags modified (e.g. PG_lru added).
      
      This happens in the unlikely case of fuse_dev_splice_write() getting around
      to calling pipe_buf_release() after a page has been stolen, added to the
      page cache and removed from the page cache.
      
      Fix by calling pipe_buf_release() right after the page was inserted into
      the page cache.  In this case the page has an elevated refcount so any
      release function will know that the page isn't reusable.
      
      Reported-by: default avatarFrank Dinoff <fdinoff@google.com>
      Link: https://lore.kernel.org/r/CAAmZXrsGg2xsP1CK+cbuEMumtrqdvD-NKnWzhNcvn71RV3c1yw@mail.gmail.com/
      Fixes: dd3bb14f
      
       ("fuse: support splice() writing to fuse device")
      Cc: <stable@vger.kernel.org> # v2.6.35
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      017fc242
    • Dan Carpenter's avatar
      staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect() · c0ef0e75
      Dan Carpenter authored
      commit b535917c upstream.
      
      The free_rtllib() function frees the "dev" pointer so there is use
      after free on the next line.  Re-arrange things to avoid that.
      
      Fixes: 66898177
      
       ("staging: rtl8192e: Fix unload/reload problem")
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Link: https://lore.kernel.org/r/20211117072016.GA5237@kili
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c0ef0e75
    • Jason Gerecke's avatar
      HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts · dde64487
      Jason Gerecke authored
      commit 7fb0413b upstream.
      
      The HID descriptor of many of Wacom's touch input devices include a
      "Confidence" usage that signals if a particular touch collection contains
      useful data. The driver does not look at this flag, however, which causes
      even invalid contacts to be reported to userspace. A lucky combination of
      kernel event filtering and device behavior (specifically: contact ID 0 ==
      invalid, contact ID >0 == valid; and order all data so that all valid
      contacts are reported before any invalid contacts) spare most devices from
      any visibly-bad behavior.
      
      The DTH-2452 is one example of an unlucky device that misbehaves. It uses
      ID 0 for both the first valid contact and all invalid contacts. Because
      we report both the valid and invalid contacts, the kernel reports that
      contact 0 first goes down (valid) and then goes up (invalid) in every
      report. This causes ~100 clicks per second simply by touching the screen.
      
      This patch inroduces new `confidence` flag in our `hid_data` structure.
      The value is initially set to `true` at the start of a report and can be
      set to `false` if an invalid touch usage is seen.
      
      Link: https://github.com/linuxwacom/input-wacom/issues/270
      Fixes: f8b6a747
      
       ("HID: wacom: generic: Support multiple tools per report")
      Signed-off-by: default avatarJason Gerecke <jason.gerecke@wacom.com>
      Tested-by: default avatarJoshua Dickens <joshua.dickens@wacom.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dde64487
    • Hans Verkuil's avatar
      media: cec: copy sequence field for the reply · e070ab1b
      Hans Verkuil authored
      commit 13cbaa4c
      
       upstream.
      
      When the reply for a non-blocking transmit arrives, the sequence
      field for that reply was never filled in, so userspace would have no
      way of associating the reply to the original transmit.
      
      Copy the sequence field to ensure that this is now possible.
      
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Fixes: 0dbacebe
      
       ([media] cec: move the CEC framework out of staging and to media)
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e070ab1b
    • Takashi Iwai's avatar
      ALSA: ctxfi: Fix out-of-range access · fcf9e1df
      Takashi Iwai authored
      commit 76c47183 upstream.
      
      The master and next_conj of rcs_ops are used for iterating the
      resource list entries, and currently those are supposed to return the
      current value.  The problem is that next_conf may go over the last
      entry before the loop abort condition is evaluated, and it may return
      the "current" value that is beyond the array size.  It was caught
      recently as a GPF, for example.
      
      Those return values are, however, never actually evaluated, hence
      basically we don't have to consider the current value as the return at
      all.  By dropping those return values, the potential out-of-range
      access above is also fixed automatically.
      
      This patch changes the return type of master and next_conj callbacks
      to void and drop the superfluous code accordingly.
      
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=214985
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20211118215729.26257-1-tiwai@suse.de
      
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fcf9e1df
    • Todd Kjos's avatar
      binder: fix test regression due to sender_euid change · db918af2
      Todd Kjos authored
      commit c21a80ca upstream.
      
      This is a partial revert of commit
      29bc22ac ("binder: use euid from cred instead of using task").
      Setting sender_euid using proc->cred caused some Android system test
      regressions that need further investigation. It is a partial
      reversion because subsequent patches rely on proc->cred.
      
      Fixes: 29bc22ac
      
       ("binder: use euid from cred instead of using task")
      Cc: stable@vger.kernel.org # 4.4+
      Acked-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
      Signed-off-by: default avatarTodd Kjos <tkjos@google.com>
      Change-Id: I9b1769a3510fed250bb21859ef8beebabe034c66
      Link: https://lore.kernel.org/r/20211112180720.2858135-1-tkjos@google.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      db918af2
    • Mathias Nyman's avatar
      usb: hub: Fix locking issues with address0_mutex · 12eaaa63
      Mathias Nyman authored
      commit 6cca13de upstream.
      
      Fix the circular lock dependency and unbalanced unlock of addess0_mutex
      introduced when fixing an address0_mutex enumeration retry race in commit
      ae6dc22d2d1 ("usb: hub: Fix usb enumeration issue due to address0 race")
      
      Make sure locking order between port_dev->status_lock and address0_mutex
      is correct, and that address0_mutex is not unlocked in hub_port_connect
      "done:" codepath which may be reached without locking address0_mutex
      
      Fixes: 6ae6dc22
      
       ("usb: hub: Fix usb enumeration issue due to address0 race")
      Cc: <stable@vger.kernel.org>
      Reported-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Tested-by: default avatarHans de Goede <hdegoede@redhat.com>
      Tested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Acked-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Link: https://lore.kernel.org/r/20211123101656.1113518-1-mathias.nyman@linux.intel.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      12eaaa63
    • Mathias Nyman's avatar
      usb: hub: Fix usb enumeration issue due to address0 race · 25481ba0
      Mathias Nyman authored
      commit 6ae6dc22 upstream.
      
      xHC hardware can only have one slot in default state with address 0
      waiting for a unique address at a time, otherwise "undefined behavior
      may occur" according to xhci spec 5.4.3.4
      
      The address0_mutex exists to prevent this across both xhci roothubs.
      
      If hub_port_init() fails, it may unlock the mutex and exit with a xhci
      slot in default state. If the other xhci roothub calls hub_port_init()
      at this point we end up with two slots in default state.
      
      Make sure the address0_mutex protects the slot default state across
      hub_port_init() retries, until slot is addressed or disabled.
      
      Note, one known minor case is not fixed by this patch.
      If device needs to be reset during resume, but fails all hub_port_init()
      retries in usb_reset_and_verify_device(), then it's possible the slot is
      still left in default state when address0_mutex is unlocked.
      
      Cc: <stable@vger.kernel.org>
      Fixes: 638139eb
      
       ("usb: hub: allow to process more usb hub events in parallel")
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Link: https://lore.kernel.org/r/20211115221630.871204-1-mathias.nyman@linux.intel.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      25481ba0
    • Mingjie Zhang's avatar
      USB: serial: option: add Fibocom FM101-GL variants · fc6dc7ed
      Mingjie Zhang authored
      commit 88459e3e
      
       upstream.
      
      Update the USB serial option driver support for the Fibocom
      FM101-GL Cat.6
      LTE modules as there are actually several different variants.
      - VID:PID 2cb7:01a2, FM101-GL are laptop M.2 cards (with
        MBIM interfaces for /Linux/Chrome OS)
      - VID:PID 2cb7:01a4, FM101-GL for laptop debug M.2 cards(with adb
        interface for /Linux/Chrome OS)
      
      0x01a2: mbim, tty, tty, diag, gnss
      0x01a4: mbim, diag, tty, adb, gnss, gnss
      
      Here are the outputs of lsusb -v and usb-devices:
      
      T:  Bus=02 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 86 Spd=5000 MxCh= 0
      D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
      P:  Vendor=2cb7 ProdID=01a2 Rev= 5.04
      S:  Manufacturer=Fibocom Wireless Inc.
      S:  Product=Fibocom FM101-GL Module
      S:  SerialNumber=673326ce
      C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
      A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
      I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
      I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
      I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
      I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=(none)
      I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=(none)
      I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
      I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=(none)
      
      Bus 002 Device 084: ID 2cb7:01a2 Fibocom Wireless Inc. Fibocom FM101-GL Module
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               3.20
        bDeviceClass            0
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0         9
        idVendor           0x2cb7
        idProduct          0x01a2
        bcdDevice            5.04
        iManufacturer           1 Fibocom Wireless Inc.
        iProduct                2 Fibocom FM101-GL Module
        iSerial                 3 673326ce
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength       0x015d
          bNumInterfaces          6
          bConfigurationValue     1
          iConfiguration          4 MBIM_DUN_DUN_DIAG_NMEA
          bmAttributes         0xa0
            (Bus Powered)
            Remote Wakeup
          MaxPower              896mA
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         0
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass      14
            bFunctionProtocol       0
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass     14
            bInterfaceProtocol      0
            iInterface              5 Fibocom FM101-GL LTE Modem
            CDC Header:
              bcdCDC               1.10
            CDC Union:
              bMasterInterface        0
              bSlaveInterface         1
            CDC MBIM:
              bcdMBIMVersion       1.00
              wMaxControlMessage   4096
              bNumberFilters       32
              bMaxFilterSize       128
              wMaxSegmentSize      2048
              bmNetworkCapabilities 0x20
                8-byte ntb input size
            CDC MBIM Extended:
              bcdMBIMExtendedVersion           1.00
              bMaxOutstandingCommandMessages     64
              wMTU                             1500
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               9
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           0
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0
            bInterfaceProtocol      2
            iInterface              0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       1
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0
            bInterfaceProtocol      2
            iInterface              6 MBIM Data
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x8e  EP 14 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               6
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x0f  EP 15 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               2
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        2
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol     64
            iInterface              0
            ** UNRECOGNIZED:  05 24 00 10 01
            ** UNRECOGNIZED:  05 24 01 00 00
            ** UNRECOGNIZED:  04 24 02 02
            ** UNRECOGNIZED:  05 24 06 00 00
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x000a  1x 10 bytes
              bInterval               9
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x01  EP 1 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        3
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol     64
            iInterface              0
            ** UNRECOGNIZED:  05 24 00 10 01
            ** UNRECOGNIZED:  05 24 01 00 00
            ** UNRECOGNIZED:  04 24 02 02
            ** UNRECOGNIZED:  05 24 06 00 00
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x85  EP 5 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x000a  1x 10 bytes
              bInterval               9
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x84  EP 4 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        4
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol     48
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x03  EP 3 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x86  EP 6 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        5
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass      0
            bInterfaceProtocol     64
            iInterface              0
            ** UNRECOGNIZED:  05 24 00 10 01
            ** UNRECOGNIZED:  05 24 01 00 00
            ** UNRECOGNIZED:  04 24 02 02
            ** UNRECOGNIZED:  05 24 06 00 00
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x88  EP 8 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x000a  1x 10 bytes
              bInterval               9
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x87  EP 7 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x04  EP 4 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
      
      T:  Bus=02 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 85 Spd=5000 MxCh= 0
      D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
      P:  Vendor=2cb7 ProdID=01a4 Rev= 5.04
      S:  Manufacturer=Fibocom Wireless Inc.
      S:  Product=Fibocom FM101-GL Module
      S:  SerialNumber=673326ce
      C:* #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=896mA
      A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
      I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
      I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
      I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
      I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=(none)
      I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
      I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=(none)
      I:* If#= 6 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=(none)
      
      Bus 002 Device 085: ID 2cb7:01a4 Fibocom Wireless Inc. Fibocom FM101-GL Module
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               3.20
        bDeviceClass            0
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0         9
        idVendor           0x2cb7
        idProduct          0x01a4
        bcdDevice            5.04
        iManufacturer           1 Fibocom Wireless Inc.
        iProduct                2 Fibocom FM101-GL Module
        iSerial                 3 673326ce
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength       0x0180
          bNumInterfaces          7
          bConfigurationValue     1
          iConfiguration          4 MBIM_DIAG_DUN_ADB_GNSS_GNSS
          bmAttributes         0xa0
            (Bus Powered)
            Remote Wakeup
          MaxPower              896mA
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         0
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass      14
            bFunctionProtocol       0
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass     14
            bInterfaceProtocol      0
            iInterface              5 Fibocom FM101-GL LTE Modem
            CDC Header:
              bcdCDC               1.10
            CDC Union:
              bMasterInterface        0
              bSlaveInterface         1
            CDC MBIM:
              bcdMBIMVersion       1.00
              wMaxControlMessage   4096
              bNumberFilters       32
              bMaxFilterSize       128
              wMaxSegmentSize      2048
              bmNetworkCapabilities 0x20
                8-byte ntb input size
            CDC MBIM Extended:
              bcdMBIMExtendedVersion           1.00
              bMaxOutstandingCommandMessages     64
              wMTU                             1500
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               9
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           0
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0
            bInterfaceProtocol      2
            iInterface              0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       1
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0
            bInterfaceProtocol      2
            iInterface              6 MBIM Data
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x8e  EP 14 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               6
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x0f  EP 15 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               2
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        2
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol     48
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x01  EP 1 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        3
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol     64
            iInterface              0
            ** UNRECOGNIZED:  05 24 00 10 01
            ** UNRECOGNIZED:  05 24 01 00 00
            ** UNRECOGNIZED:  04 24 02 02
            ** UNRECOGNIZED:  05 24 06 00 00
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x84  EP 4 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x000a  1x 10 bytes
              bInterval               9
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        4
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass     66
            bInterfaceProtocol      1
            iInterface              8 ADB Interface
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x03  EP 3 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x85  EP 5 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        5
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass      0
            bInterfaceProtocol     64
            iInterface              0
            ** UNRECOGNIZED:  05 24 00 10 01
            ** UNRECOGNIZED:  05 24 01 00 00
            ** UNRECOGNIZED:  04 24 02 02
            ** UNRECOGNIZED:  05 24 06 00 00
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x87  EP 7 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x000a  1x 10 bytes
              bInterval               9
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x86  EP 6 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x04  EP 4 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        6
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass      0
            bInterfaceProtocol     64
            iInterface              0
            ** UNRECOGNIZED:  05 24 00 10 01
            ** UNRECOGNIZED:  05 24 01 00 00
            ** UNRECOGNIZED:  04 24 02 02
            ** UNRECOGNIZED:  05 24 06 00 00
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x89  EP 9 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x000a  1x 10 bytes
              bInterval               9
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x88  EP 8 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x05  EP 5 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0400  1x 1024 bytes
              bInterval               0
              bMaxBurst               0
      
      Signed-off-by: default avatarMingjie Zhang <superzmj@fibocom.com>
      Link: https://lore.kernel.org/r/20211123133757.37475-1-superzmj@fibocom.com
      
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fc6dc7ed
    • Daniele Palmas's avatar
      USB: serial: option: add Telit LE910S1 0x9200 composition · 285ae267
      Daniele Palmas authored
      commit e353f3e8
      
       upstream.
      
      Add the following Telit LE910S1 composition:
      
      0x9200: tty
      
      Signed-off-by: default avatarDaniele Palmas <dnlplm@gmail.com>
      Link: https://lore.kernel.org/r/20211119140319.10448-1-dnlplm@gmail.com
      
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      285ae267
  2. Nov 26, 2021