commit ab95ef83dddbae37b60263e092d08d5cd2b0059e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Nov 12 13:18:03 2021 +0100

    Linux 4.9.290
    
    Link: https://lore.kernel.org/r/20211110182001.579561273@linuxfoundation.org
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 032f9ee641eb5910262a0331803e0b64f4e9e59c
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 25 14:05:22 2021 +0200

    rsi: fix control-message timeout
    
    commit 541fd20c3ce5b0bc39f0c6a52414b6b92416831c upstream.
    
    USB control-message timeouts are specified in milliseconds and should
    specifically not vary with CONFIG_HZ.
    
    Use the common control-message timeout define for the five-second
    timeout.
    
    Fixes: dad0d04fa7ba ("rsi: Add RS9113 wireless driver")
    Cc: stable@vger.kernel.org      # 3.15
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20211025120522.6045-5-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d9b6a5d3541271f618a6cd873e573c4013da5d4
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 25 14:09:09 2021 +0200

    staging: rtl8192u: fix control-message timeouts
    
    commit 4cfa36d312d6789448b59a7aae770ac8425017a3 upstream.
    
    USB control-message timeouts are specified in milliseconds and should
    specifically not vary with CONFIG_HZ.
    
    Fixes: 8fc8598e61f6 ("Staging: Added Realtek rtl8192u driver to staging")
    Cc: stable@vger.kernel.org      # 2.6.33
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20211025120910.6339-2-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e14bab3ed03034f1509ff368651aef6f99e5861
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 25 14:09:10 2021 +0200

    staging: r8712u: fix control-message timeout
    
    commit ce4940525f36ffdcf4fa623bcedab9c2a6db893a upstream.
    
    USB control-message timeouts are specified in milliseconds and should
    specifically not vary with CONFIG_HZ.
    
    Fixes: 2865d42c78a9 ("staging: r8712u: Add the new driver to the mainline kernel")
    Cc: stable@vger.kernel.org      # 2.6.37
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20211025120910.6339-3-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1def6c034e55d73c223f87a50f2b0575eb5ae8b8
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 25 13:45:32 2021 +0200

    comedi: vmk80xx: fix bulk and interrupt message timeouts
    
    commit a56d3e40bda460edf3f8d6aac00ec0b322b4ab83 upstream.
    
    USB bulk and interrupt message timeouts are specified in milliseconds
    and should specifically not vary with CONFIG_HZ.
    
    Note that the bulk-out transfer timeout was set to the endpoint
    bInterval value, which should be ignored for bulk endpoints and is
    typically set to zero. This meant that a failing bulk-out transfer
    would never time out.
    
    Assume that the 10 second timeout used for all other transfers is more
    than enough also for the bulk-out endpoint.
    
    Fixes: 985cafccbf9b ("Staging: Comedi: vmk80xx: Add k8061 support")
    Fixes: 951348b37738 ("staging: comedi: vmk80xx: wait for URBs to complete")
    Cc: stable@vger.kernel.org      # 2.6.31
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
    Link: https://lore.kernel.org/r/20211025114532.4599-6-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cfb35db607760698d299fd1cf7402dfa8f09973
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 25 13:45:31 2021 +0200

    comedi: vmk80xx: fix bulk-buffer overflow
    
    commit 78cdfd62bd54af615fba9e3ca1ba35de39d3871d upstream.
    
    The driver is using endpoint-sized buffers but must not assume that the
    tx and rx buffers are of equal size or a malicious device could overflow
    the slab-allocated receive buffer when doing bulk transfers.
    
    Fixes: 985cafccbf9b ("Staging: Comedi: vmk80xx: Add k8061 support")
    Cc: stable@vger.kernel.org      # 2.6.31
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
    Link: https://lore.kernel.org/r/20211025114532.4599-5-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec85bcff4ed09260243d8f39faba99e1041718ba
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 25 13:45:30 2021 +0200

    comedi: vmk80xx: fix transfer-buffer overflows
    
    commit a23461c47482fc232ffc9b819539d1f837adf2b1 upstream.
    
    The driver uses endpoint-sized USB transfer buffers but up until
    recently had no sanity checks on the sizes.
    
    Commit e1f13c879a7c ("staging: comedi: check validity of wMaxPacketSize
    of usb endpoints found") inadvertently fixed NULL-pointer dereferences
    when accessing the transfer buffers in case a malicious device has a
    zero wMaxPacketSize.
    
    Make sure to allocate buffers large enough to handle also the other
    accesses that are done without a size check (e.g. byte 18 in
    vmk80xx_cnt_insn_read() for the VMK8061_MODEL) to avoid writing beyond
    the buffers, for example, when doing descriptor fuzzing.
    
    The original driver was for a low-speed device with 8-byte buffers.
    Support was later added for a device that uses bulk transfers and is
    presumably a full-speed device with a maximum 64-byte wMaxPacketSize.
    
    Fixes: 985cafccbf9b ("Staging: Comedi: vmk80xx: Add k8061 support")
    Cc: stable@vger.kernel.org      # 2.6.31
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
    Link: https://lore.kernel.org/r/20211025114532.4599-4-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa39738423503825625853b643b9e99d11c23816
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Oct 27 11:35:28 2021 +0200

    comedi: ni_usb6501: fix NULL-deref in command paths
    
    commit 907767da8f3a925b060c740e0b5c92ea7dbec440 upstream.
    
    The driver uses endpoint-sized USB transfer buffers but had no sanity
    checks on the sizes. This can lead to zero-size-pointer dereferences or
    overflowed transfer buffers in ni6501_port_command() and
    ni6501_counter_command() if a (malicious) device has smaller max-packet
    sizes than expected (or when doing descriptor fuzz testing).
    
    Add the missing sanity checks to probe().
    
    Fixes: a03bb00e50ab ("staging: comedi: add NI USB-6501 support")
    Cc: stable@vger.kernel.org      # 3.18
    Cc: Luca Ellero <luca.ellero@brickedbrain.com>
    Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20211027093529.30896-2-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 365a346cda82f51d835c49136a00a9df8a78c7f2
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Oct 27 11:35:29 2021 +0200

    comedi: dt9812: fix DMA buffers on stack
    
    commit 536de747bc48262225889a533db6650731ab25d3 upstream.
    
    USB transfer buffers are typically mapped for DMA and must not be
    allocated on the stack or transfers will fail.
    
    Allocate proper transfer buffers in the various command helpers and
    return an error on short transfers instead of acting on random stack
    data.
    
    Note that this also fixes a stack info leak on systems where DMA is not
    used as 32 bytes are always sent to the device regardless of how short
    the command is.
    
    Fixes: 63274cd7d38a ("Staging: comedi: add usb dt9812 driver")
    Cc: stable@vger.kernel.org      # 2.6.29
    Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20211027093529.30896-3-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ec33a9b8790c212cc926a88c5e2105f97f3f57e
Author: Jan Kara <jack@suse.cz>
Date:   Mon Oct 18 12:37:41 2021 +0200

    isofs: Fix out of bound access for corrupted isofs image
    
    commit e96a1866b40570b5950cda8602c2819189c62a48 upstream.
    
    When isofs image is suitably corrupted isofs_read_inode() can read data
    beyond the end of buffer. Sanity-check the directory entry length before
    using it.
    
    Reported-and-tested-by: syzbot+6fc7fb214625d82af7d1@syzkaller.appspotmail.com
    CC: stable@vger.kernel.org
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7dca9fa41c185e2e43f6dbc211d366d3a77341d8
Author: Petr Mladek <pmladek@suse.com>
Date:   Wed Nov 11 14:54:50 2020 +0100

    printk/console: Allow to disable console output by using console="" or console=null
    
    commit 3cffa06aeef7ece30f6b5ac0ea51f264e8fea4d0 upstream.
    
    The commit 48021f98130880dd74 ("printk: handle blank console arguments
    passed in.") prevented crash caused by empty console= parameter value.
    
    Unfortunately, this value is widely used on Chromebooks to disable
    the console output. The above commit caused performance regression
    because the messages were pushed on slow console even though nobody
    was watching it.
    
    Use ttynull driver explicitly for console="" and console=null
    parameters. It has been created for exactly this purpose.
    
    It causes that preferred_console is set. As a result, ttySX and ttyX
    are not used as a fallback. And only ttynull console gets registered by
    default.
    
    It still allows to register other consoles either by additional console=
    parameters or SPCR. It prevents regression because it worked this way even
    before. Also it is a sane semantic. Preventing output on all consoles
    should be done another way, for example, by introducing mute_console
    parameter.
    
    Link: https://lore.kernel.org/r/20201006025935.GA597@jagdpanzerIV.localdomain
    Suggested-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Link: https://lore.kernel.org/r/20201111135450.11214-3-pmladek@suse.com
    Cc: Yi Fan <yfa@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e08c3704f0d54cb392f2738e015917e20f3aa5d7
Author: James Buren <braewoods+lkml@braewoods.net>
Date:   Wed Oct 13 20:55:04 2021 -0500

    usb-storage: Add compatibility quirk flags for iODD 2531/2541
    
    commit 05c8f1b67e67dcd786ae3fe44492bbc617b4bd12 upstream.
    
    These drive enclosures have firmware bugs that make it impossible to mount
    a new virtual ISO image after Linux ejects the old one if the device is
    locked by Linux. Windows bypasses this problem by the fact that they do
    not lock the device. Add a quirk to disable device locking for these
    drive enclosures.
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: James Buren <braewoods+lkml@braewoods.net>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20211014015504.2695089-1-braewoods+lkml@braewoods.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69d178d1e26feba4678998079181c79e81cadbfc
Author: Viraj Shah <viraj.shah@linutronix.de>
Date:   Thu Oct 21 11:36:44 2021 +0200

    usb: musb: Balance list entry in musb_gadget_queue
    
    commit 21b5fcdccb32ff09b6b63d4a83c037150665a83f upstream.
    
    musb_gadget_queue() adds the passed request to musb_ep::req_list. If the
    endpoint is idle and it is the first request then it invokes
    musb_queue_resume_work(). If the function returns an error then the
    error is passed to the caller without any clean-up and the request
    remains enqueued on the list. If the caller enqueues the request again
    then the list corrupts.
    
    Remove the request from the list on error.
    
    Fixes: ea2f35c01d5ea ("usb: musb: Fix sleeping function called from invalid context for hdrc glue")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Viraj Shah <viraj.shah@linutronix.de>
    Link: https://lore.kernel.org/r/20211021093644.4734-1-viraj.shah@linutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 906a735999d7e60628696fc6edc699a1c6d376b4
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Wed Oct 27 10:08:49 2021 +0200

    usb: gadget: Mark USB_FSL_QE broken on 64-bit
    
    commit a0548b26901f082684ad1fb3ba397d2de3a1406a upstream.
    
    On 64-bit:
    
        drivers/usb/gadget/udc/fsl_qe_udc.c: In function ‘qe_ep0_rx’:
        drivers/usb/gadget/udc/fsl_qe_udc.c:842:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
          842 |     vaddr = (u32)phys_to_virt(in_be32(&bd->buf));
              |             ^
        In file included from drivers/usb/gadget/udc/fsl_qe_udc.c:41:
        drivers/usb/gadget/udc/fsl_qe_udc.c:843:28: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
          843 |     frame_set_data(pframe, (u8 *)vaddr);
              |                            ^
    
    The driver assumes physical and virtual addresses are 32-bit, hence it
    cannot work on 64-bit platforms.
    
    Acked-by: Li Yang <leoyang.li@nxp.com>
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Link: https://lore.kernel.org/r/20211027080849.3276289-1-geert@linux-m68k.org
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f57c3f67fd93b4da86aeffea1ca32c484d054ad
Author: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
Date:   Tue Oct 12 13:55:19 2021 -0400

    IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
    
    commit d39bf40e55e666b5905fdbd46a0dced030ce87be upstream.
    
    Overflowing either addrlimit or bytes_togo can allow userspace to trigger
    a buffer overflow of kernel memory. Check for overflows in all the places
    doing math on user controlled buffers.
    
    Fixes: f931551bafe1 ("IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters")
    Link: https://lore.kernel.org/r/20211012175519.7298.77738.stgit@awfm-01.cornelisnetworks.com
    Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5288613f0741623f9c9fb920482c797eb9a6dea
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Wed May 29 10:13:26 2019 -0500

    IB/qib: Use struct_size() helper
    
    commit 829ca44ecf60e9b6f83d0161a6ef10c1304c5060 upstream.
    
    Make use of the struct_size() helper instead of an open-coded version
    in order to avoid any potential type mistakes, in particular in the
    context in which this code is being used.
    
    So, replace the following form:
    
    sizeof(*pkt) + sizeof(pkt->addr[0])*n
    
    with:
    
    struct_size(pkt, addr, n)
    
    Also, notice that variable size is unnecessary, hence it is removed.
    
    This code was detected with the help of Coccinelle.
    
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit acc2f2bd974446079943b7e1b7401d90379ee12b
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Sep 13 15:57:43 2021 +0200

    Revert "x86/kvm: fix vcpu-id indexed array sizes"
    
    commit 1e254d0d86a0f2efd4190a89d5204b37c18c6381 upstream.
    
    This reverts commit 76b4f357d0e7d8f6f0013c733e6cba1773c266d3.
    
    The commit has the wrong reasoning, as KVM_MAX_VCPU_ID is not defining the
    maximum allowed vcpu-id as its name suggests, but the number of vcpu-ids.
    So revert this patch again.
    
    Suggested-by: Eduardo Habkost <ehabkost@redhat.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20210913135745.13944-2-jgross@suse.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 88b912e02d75bacbb957d817db70e6a54ea3a21c
Author: Dongliang Mu <mudongliangabcd@gmail.com>
Date:   Wed Jul 14 17:13:22 2021 +0800

    usb: hso: fix error handling code of hso_create_net_device
    
    commit a6ecfb39ba9d7316057cea823b196b734f6b18ca upstream.
    
    The current error handling code of hso_create_net_device is
    hso_free_net_device, no matter which errors lead to. For example,
    WARNING in hso_free_net_device [1].
    
    Fix this by refactoring the error handling code of
    hso_create_net_device by handling different errors by different code.
    
    [1] https://syzkaller.appspot.com/bug?id=66eff8d49af1b28370ad342787413e35bbe76efe
    
    Reported-by: syzbot+44d53c7255bb1aea22d2@syzkaller.appspotmail.com
    Fixes: 5fcfb6d0bfcd ("hso: fix bailout in error case of probe")
    Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b10dd066ea063a55c1609e0c9107cfd989bec0bc
Author: Andreas Kemnade <andreas@kemnade.info>
Date:   Wed Apr 26 19:26:40 2017 +0200

    net: hso: register netdev later to avoid a race condition
    
    commit 4c761daf8bb9a2cbda9facf53ea85d9061f4281e upstream.
    
    If the netdev is accessed before the urbs are initialized,
    there will be NULL pointer dereferences. That is avoided by
    registering it when it is fully initialized.
    
    This case occurs e.g. if dhcpcd is running in the background
    and the device is probed, either after insmod hso or
    when the device appears on the usb bus.
    
    A backtrace is the following:
    
    [ 1357.356048] usb 1-2: new high-speed USB device number 12 using ehci-omap
    [ 1357.551177] usb 1-2: New USB device found, idVendor=0af0, idProduct=8800
    [ 1357.558654] usb 1-2: New USB device strings: Mfr=3, Product=2, SerialNumber=0
    [ 1357.568572] usb 1-2: Product: Globetrotter HSUPA Modem
    [ 1357.574096] usb 1-2: Manufacturer: Option N.V.
    [ 1357.685882] hso 1-2:1.5: Not our interface
    [ 1460.886352] hso: unloaded
    [ 1460.889984] usbcore: deregistering interface driver hso
    [ 1513.769134] hso: ../drivers/net/usb/hso.c: Option Wireless
    [ 1513.846771] Unable to handle kernel NULL pointer dereference at virtual address 00000030
    [ 1513.887664] hso 1-2:1.5: Not our interface
    [ 1513.906890] usbcore: registered new interface driver hso
    [ 1513.937988] pgd = ecdec000
    [ 1513.949890] [00000030] *pgd=acd15831, *pte=00000000, *ppte=00000000
    [ 1513.956573] Internal error: Oops: 817 [#1] PREEMPT SMP ARM
    [ 1513.962371] Modules linked in: hso usb_f_ecm omap2430 bnep bluetooth g_ether usb_f_rndis u_ether libcomposite configfs ipv6 arc4 wl18xx wlcore mac80211 cfg80211 bq27xxx_battery panel_tpo_td028ttec1 omapdrm drm_kms_helper cfbfillrect snd_soc_simple_card syscopyarea cfbimgblt snd_soc_simple_card_utils sysfillrect sysimgblt fb_sys_fops snd_soc_omap_twl4030 cfbcopyarea encoder_opa362 drm twl4030_madc_hwmon wwan_on_off snd_soc_gtm601 pwm_omap_dmtimer generic_adc_battery connector_analog_tv pwm_bl extcon_gpio omap3_isp wlcore_sdio videobuf2_dma_contig videobuf2_memops w1_bq27000 videobuf2_v4l2 videobuf2_core omap_hdq snd_soc_omap_mcbsp ov9650 snd_soc_omap bmp280_i2c bmg160_i2c v4l2_common snd_pcm_dmaengine bmp280 bmg160_core at24 bmc150_magn_i2c nvmem_core videodev phy_twl4030_usb bmc150_accel_i2c tsc2007
    [ 1514.037384]  bmc150_magn bmc150_accel_core media leds_tca6507 bno055 industrialio_triggered_buffer kfifo_buf gpio_twl4030 musb_hdrc snd_soc_twl4030 twl4030_vibra twl4030_madc twl4030_pwrbutton twl4030_charger industrialio w2sg0004 ehci_omap omapdss [last unloaded: hso]
    [ 1514.062622] CPU: 0 PID: 3433 Comm: dhcpcd Tainted: G        W       4.11.0-rc8-letux+ #1
    [ 1514.071136] Hardware name: Generic OMAP36xx (Flattened Device Tree)
    [ 1514.077758] task: ee748240 task.stack: ecdd6000
    [ 1514.082580] PC is at hso_start_net_device+0x50/0xc0 [hso]
    [ 1514.088287] LR is at hso_net_open+0x68/0x84 [hso]
    [ 1514.093231] pc : [<bf79c304>]    lr : [<bf79ced8>]    psr: a00f0013
    sp : ecdd7e20  ip : 00000000  fp : ffffffff
    [ 1514.105316] r10: 00000000  r9 : ed0e080c  r8 : ecd8fe2c
    [ 1514.110839] r7 : bf79cef4  r6 : ecd8fe00  r5 : 00000000  r4 : ed0dbd80
    [ 1514.117706] r3 : 00000000  r2 : c0020c80  r1 : 00000000  r0 : ecdb7800
    [ 1514.124572] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
    [ 1514.132110] Control: 10c5387d  Table: acdec019  DAC: 00000051
    [ 1514.138153] Process dhcpcd (pid: 3433, stack limit = 0xecdd6218)
    [ 1514.144470] Stack: (0xecdd7e20 to 0xecdd8000)
    [ 1514.149078] 7e20: ed0dbd80 ecd8fe98 00000001 00000000 ecd8f800 ecd8fe00 ecd8fe60 00000000
    [ 1514.157714] 7e40: ed0e080c bf79ced8 bf79ce70 ecd8f800 00000001 bf7a0258 ecd8f830 c068d958
    [ 1514.166320] 7e60: c068d8b8 ecd8f800 00000001 00001091 00001090 c068dba4 ecd8f800 00001090
    [ 1514.174926] 7e80: ecd8f940 ecd8f800 00000000 c068dc60 00000000 00000001 ed0e0800 ecd8f800
    [ 1514.183563] 7ea0: 00000000 c06feaa8 c0ca39c2 beea57dc 00000020 00000000 306f7368 00000000
    [ 1514.192169] 7ec0: 00000000 00000000 00001091 00000000 00000000 00000000 00000000 00008914
    [ 1514.200805] 7ee0: eaa9ab60 beea57dc c0c9bfc0 eaa9ab40 00000006 00000000 00046858 c066a948
    [ 1514.209411] 7f00: beea57dc eaa9ab60 ecc6b0c0 c02837b0 00000006 c0282c90 0000c000 c0283654
    [ 1514.218017] 7f20: c09b0c00 c098bc31 00000001 c0c5e513 c0c5e513 00000000 c0151354 c01a20c0
    [ 1514.226654] 7f40: c0c5e513 c01a3134 ecdd6000 c01a3160 ee7487f0 600f0013 00000000 ee748240
    [ 1514.235260] 7f60: ee748734 00000000 ecc6b0c0 ecc6b0c0 beea57dc 00008914 00000006 00000000
    [ 1514.243896] 7f80: 00046858 c02837b0 00001091 0003a1f0 00046608 0003a248 00000036 c01071e4
    [ 1514.252502] 7fa0: ecdd6000 c0107040 0003a1f0 00046608 00000006 00008914 beea57dc 00001091
    [ 1514.261108] 7fc0: 0003a1f0 00046608 0003a248 00000036 0003ac0c 00046608 00046610 00046858
    [ 1514.269744] 7fe0: 0003a0ac beea57d4 000167eb b6f23106 400f0030 00000006 00000000 00000000
    [ 1514.278411] [<bf79c304>] (hso_start_net_device [hso]) from [<bf79ced8>] (hso_net_open+0x68/0x84 [hso])
    [ 1514.288238] [<bf79ced8>] (hso_net_open [hso]) from [<c068d958>] (__dev_open+0xa0/0xf4)
    [ 1514.296600] [<c068d958>] (__dev_open) from [<c068dba4>] (__dev_change_flags+0x8c/0x130)
    [ 1514.305023] [<c068dba4>] (__dev_change_flags) from [<c068dc60>] (dev_change_flags+0x18/0x48)
    [ 1514.313934] [<c068dc60>] (dev_change_flags) from [<c06feaa8>] (devinet_ioctl+0x348/0x714)
    [ 1514.322540] [<c06feaa8>] (devinet_ioctl) from [<c066a948>] (sock_ioctl+0x2b0/0x308)
    [ 1514.330627] [<c066a948>] (sock_ioctl) from [<c0282c90>] (vfs_ioctl+0x20/0x34)
    [ 1514.338165] [<c0282c90>] (vfs_ioctl) from [<c0283654>] (do_vfs_ioctl+0x82c/0x93c)
    [ 1514.346038] [<c0283654>] (do_vfs_ioctl) from [<c02837b0>] (SyS_ioctl+0x4c/0x74)
    [ 1514.353759] [<c02837b0>] (SyS_ioctl) from [<c0107040>] (ret_fast_syscall+0x0/0x1c)
    [ 1514.361755] Code: e3822103 e3822080 e1822781 e5981014 (e5832030)
    [ 1514.510833] ---[ end trace dfb3e53c657f34a0 ]---
    
    Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
    Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
    Reviewed-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce7452ad85ce0c8d97e518a9d18af919f01a0eb7
Author: Wang Kefeng <wangkefeng.wang@huawei.com>
Date:   Mon Aug 23 10:41:42 2021 +0100

    ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
    
    commit eb4f756915875b0ea0757751cd29841f0504d547 upstream.
    
    After commit 77a7300abad7 ("of/irq: Get rid of NO_IRQ usage"),
    no irq case has been removed, irq_of_parse_and_map() will return
    0 in all cases when get error from parse and map an interrupt into
    linux virq space.
    
    amba_device_register() is only used on no-DT initialization, see
      s3c64xx_pl080_init()          arch/arm/mach-s3c/pl080.c
      ep93xx_init_devices()         arch/arm/mach-ep93xx/core.c
    
    They won't set -1 to irq[0], so no need the warn.
    
    This reverts commit 2eac58d5026e4ec8b17ff8b62877fea9e1d2f1b3.
    
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5928b788fa82e736be6c83887ec209ec9d3038b6
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Nov 3 13:57:14 2021 -0700

    arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
    
    [ Upstream commit cef397038167ac15d085914493d6c86385773709 ]
    
    Stefan Agner reported a bug when using zsram on 32-bit Arm machines
    with RAM above the 4GB address boundary:
    
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      pgd = a27bd01c
      [00000000] *pgd=236a0003, *pmd=1ffa64003
      Internal error: Oops: 207 [#1] SMP ARM
      Modules linked in: mdio_bcm_unimac(+) brcmfmac cfg80211 brcmutil raspberrypi_hwmon hci_uart crc32_arm_ce bcm2711_thermal phy_generic genet
      CPU: 0 PID: 123 Comm: mkfs.ext4 Not tainted 5.9.6 #1
      Hardware name: BCM2711
      PC is at zs_map_object+0x94/0x338
      LR is at zram_bvec_rw.constprop.0+0x330/0xa64
      pc : [<c0602b38>]    lr : [<c0bda6a0>]    psr: 60000013
      sp : e376bbe0  ip : 00000000  fp : c1e2921c
      r10: 00000002  r9 : c1dda730  r8 : 00000000
      r7 : e8ff7a00  r6 : 00000000  r5 : 02f9ffa0  r4 : e3710000
      r3 : 000fdffe  r2 : c1e0ce80  r1 : ebf979a0  r0 : 00000000
      Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 30c5383d  Table: 235c2a80  DAC: fffffffd
      Process mkfs.ext4 (pid: 123, stack limit = 0x495a22e6)
      Stack: (0xe376bbe0 to 0xe376c000)
    
    As it turns out, zsram needs to know the maximum memory size, which
    is defined in MAX_PHYSMEM_BITS when CONFIG_SPARSEMEM is set, or in
    MAX_POSSIBLE_PHYSMEM_BITS on the x86 architecture.
    
    The same problem will be hit on all 32-bit architectures that have a
    physical address space larger than 4GB and happen to not enable sparsemem
    and include asm/sparsemem.h from asm/pgtable.h.
    
    After the initial discussion, I suggested just always defining
    MAX_POSSIBLE_PHYSMEM_BITS whenever CONFIG_PHYS_ADDR_T_64BIT is
    set, or provoking a build error otherwise. This addresses all
    configurations that can currently have this runtime bug, but
    leaves all other configurations unchanged.
    
    I looked up the possible number of bits in source code and
    datasheets, here is what I found:
    
     - on ARC, CONFIG_ARC_HAS_PAE40 controls whether 32 or 40 bits are used
     - on ARM, CONFIG_LPAE enables 40 bit addressing, without it we never
       support more than 32 bits, even though supersections in theory allow
       up to 40 bits as well.
     - on MIPS, some MIPS32r1 or later chips support 36 bits, and MIPS32r5
       XPA supports up to 60 bits in theory, but 40 bits are more than
       anyone will ever ship
     - On PowerPC, there are three different implementations of 36 bit
       addressing, but 32-bit is used without CONFIG_PTE_64BIT
     - On RISC-V, the normal page table format can support 34 bit
       addressing. There is no highmem support on RISC-V, so anything
       above 2GB is unused, but it might be useful to eventually support
       CONFIG_ZRAM for high pages.
    
    Fixes: 61989a80fb3a ("staging: zsmalloc: zsmalloc memory allocation library")
    Fixes: 02390b87a945 ("mm/zsmalloc: Prepare to variable MAX_PHYSMEM_BITS")
    Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Reviewed-by: Stefan Agner <stefan@agner.ch>
    Tested-by: Stefan Agner <stefan@agner.ch>
    Acked-by: Mike Rapoport <rppt@linux.ibm.com>
    Link: https://lore.kernel.org/linux-mm/bdfa44bf1c570b05d6c70898e2bbb0acf234ecdf.1604762181.git.stefan@agner.ch/
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    [florian: patch arch/powerpc/include/asm/pte-common.h for 4.9.y
    removed arch/riscv/include/asm/pgtable.h which does not exist]
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 215321a0722e36d97cd105ceeff2ebccaeca107e
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Wed Nov 3 13:57:13 2021 -0700

    mm/zsmalloc: Prepare to variable MAX_PHYSMEM_BITS
    
    commit 02390b87a9459937cdb299e6b34ff33992512ec7 upstream
    
    With boot-time switching between paging mode we will have variable
    MAX_PHYSMEM_BITS.
    
    Let's use the maximum variable possible for CONFIG_X86_5LEVEL=y
    configuration to define zsmalloc data structures.
    
    The patch introduces MAX_POSSIBLE_PHYSMEM_BITS to cover such case.
    It also suits well to handle PAE special case.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Reviewed-by: Nitin Gupta <ngupta@vflare.org>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/20180214111656.88514-3-kirill.shutemov@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    [florian: drop arch/x86/include/asm/pgtable_64_types.h changes since
    there is no CONFIG_X86_5LEVEL]
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e4814a461787e15a31d322d9efbe0d4f6822428
Author: Ming Lei <ming.lei@redhat.com>
Date:   Fri Oct 8 13:01:18 2021 +0800

    scsi: core: Put LLD module refcnt after SCSI device is released
    
    commit f2b85040acec9a928b4eb1b57a989324e8e38d3f upstream.
    
    SCSI host release is triggered when SCSI device is freed. We have to make
    sure that the low-level device driver module won't be unloaded before SCSI
    host instance is released because shost->hostt is required in the release
    handler.
    
    Make sure to put LLD module refcnt after SCSI device is released.
    
    Fixes a kernel panic of 'BUG: unable to handle page fault for address'
    reported by Changhui and Yi.
    
    Link: https://lore.kernel.org/r/20211008050118.1440686-1-ming.lei@redhat.com
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Reported-by: Changhui Zhong <czhong@redhat.com>
    Reported-by: Yi Zhang <yi.zhang@redhat.com>
    Tested-by: Yi Zhang <yi.zhang@redhat.com>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>