óÐÉÓÏË ÉÚÍÅÎÅÎÉÊ × Linux 4.19.261

 
ARM: dts: integrator: Tag PCI host with device_type [+ + +]
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Mon Sep 19 11:26:08 2022 +0200

    ARM: dts: integrator: Tag PCI host with device_type
    
    commit 4952aa696a9f221c5e34e5961e02fca41ef67ad6 upstream.
    
    The DT parser is dependent on the PCI device being tagged as
    device_type = "pci" in order to parse memory ranges properly.
    Fix this up.
    
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220919092608.813511-1-linus.walleij@linaro.org'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
clk: iproc: Do not rely on node name for correct PLL setup [+ + +]
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Mon Sep 5 09:15:03 2022 -0700

    clk: iproc: Do not rely on node name for correct PLL setup
    
    [ Upstream commit 1b24a132eba7a1c19475ba2510ec1c00af3ff914 ]
    
    After commit 31fd9b79dc58 ("ARM: dts: BCM5301X: update CRU block
    description") a warning from clk-iproc-pll.c was generated due to a
    duplicate PLL name as well as the console stopped working. Upon closer
    inspection it became clear that iproc_pll_clk_setup() used the Device
    Tree node unit name as an unique identifier as well as a parent name to
    parent all clocks under the PLL.
    
    BCM5301X was the first platform on which that got noticed because of the
    DT node unit name renaming but the same assumptions hold true for any
    user of the iproc_pll_clk_setup() function.
    
    The first 'clock-output-names' property is always guaranteed to be
    unique as well as providing the actual desired PLL clock name, so we
    utilize that to register the PLL and as a parent name of all children
    clock.
    
    Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Acked-by: Rafał Miłecki <rafal@milecki.pl>
    Link: https://lore.kernel.org/r/20220905161504.1526-1-f.fainelli@gmail.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
ima: Free the entire rule if it fails to parse [+ + +]
Author: Tyler Hicks <tyhicks@linux.microsoft.com>
Date:   Fri Sep 30 15:49:37 2022 +0800

    ima: Free the entire rule if it fails to parse
    
    commit 2bdd737c5687d6dec30e205953146ede8a87dbdd upstream.
    
    Use ima_free_rule() to fix memory leaks of allocated ima_rule_entry
    members, such as .fsname and .keyrings, when an error is encountered
    during rule parsing.
    
    Set the args_p pointer to NULL after freeing it in the error path of
    ima_lsm_rule_init() so that it isn't freed twice.
    
    This fixes a memory leak seen when loading an rule that contains an
    additional piece of allocated memory, such as an fsname, followed by an
    invalid conditional:
    
     # echo "measure fsname=tmpfs bad=cond" > /sys/kernel/security/ima/policy
     -bash: echo: write error: Invalid argument
     # echo scan > /sys/kernel/debug/kmemleak
     # cat /sys/kernel/debug/kmemleak
     unreferenced object 0xffff98e7e4ece6c0 (size 8):
       comm "bash", pid 672, jiffies 4294791843 (age 21.855s)
       hex dump (first 8 bytes):
         74 6d 70 66 73 00 6b a5                          tmpfs.k.
       backtrace:
         [<00000000abab7413>] kstrdup+0x2e/0x60
         [<00000000f11ede32>] ima_parse_add_rule+0x7d4/0x1020
         [<00000000f883dd7a>] ima_write_policy+0xab/0x1d0
         [<00000000b17cf753>] vfs_write+0xde/0x1d0
         [<00000000b8ddfdea>] ksys_write+0x68/0xe0
         [<00000000b8e21e87>] do_syscall_64+0x56/0xa0
         [<0000000089ea7b98>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: f1b08bbcbdaf ("ima: define a new policy condition based on the filesystem name")
    Fixes: 2b60c0ecedf8 ("IMA: Read keyrings= option from the IMA policy")
    Signed-off-by: Tyler Hicks <tyhicks@linux.microsoft.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Cc: <stable@vger.kernel.org> # 4.19+
    Signed-off-by: Gou Hao <gouhao@uniontech.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

ima: Free the entire rule when deleting a list of rules [+ + +]
Author: Tyler Hicks <tyhicks@linux.microsoft.com>
Date:   Fri Sep 30 15:49:36 2022 +0800

    ima: Free the entire rule when deleting a list of rules
    
    commit 465aee77aae857b5fcde56ee192b33dc369fba04 upstream.
    
    Create a function, ima_free_rule(), to free all memory associated with
    an ima_rule_entry. Use the new function to fix memory leaks of allocated
    ima_rule_entry members, such as .fsname and .keyrings, when deleting a
    list of rules.
    
    Make the existing ima_lsm_free_rule() function specific to the LSM
    audit rule array of an ima_rule_entry and require that callers make an
    additional call to kfree to free the ima_rule_entry itself.
    
    This fixes a memory leak seen when loading by a valid rule that contains
    an additional piece of allocated memory, such as an fsname, followed by
    an invalid rule that triggers a policy load failure:
    
     # echo -e "dont_measure fsname=securityfs\nbad syntax" > \
        /sys/kernel/security/ima/policy
     -bash: echo: write error: Invalid argument
     # echo scan > /sys/kernel/debug/kmemleak
     # cat /sys/kernel/debug/kmemleak
     unreferenced object 0xffff9bab67ca12c0 (size 16):
       comm "bash", pid 684, jiffies 4295212803 (age 252.344s)
       hex dump (first 16 bytes):
         73 65 63 75 72 69 74 79 66 73 00 6b 6b 6b 6b a5  securityfs.kkkk.
       backtrace:
         [<00000000adc80b1b>] kstrdup+0x2e/0x60
         [<00000000d504cb0d>] ima_parse_add_rule+0x7d4/0x1020
         [<00000000444825ac>] ima_write_policy+0xab/0x1d0
         [<000000002b7f0d6c>] vfs_write+0xde/0x1d0
         [<0000000096feedcf>] ksys_write+0x68/0xe0
         [<0000000052b544a2>] do_syscall_64+0x56/0xa0
         [<000000007ead1ba7>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: f1b08bbcbdaf ("ima: define a new policy condition based on the filesystem name")
    Fixes: 2b60c0ecedf8 ("IMA: Read keyrings= option from the IMA policy")
    Signed-off-by: Tyler Hicks <tyhicks@linux.microsoft.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Cc: <stable@vger.kernel.org> # 4.19+
    Signed-off-by: Gou Hao <gouhao@uniontech.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

ima: Have the LSM free its audit rule [+ + +]
Author: Tyler Hicks <tyhicks@linux.microsoft.com>
Date:   Fri Sep 30 15:49:35 2022 +0800

    ima: Have the LSM free its audit rule
    
    commit 9ff8a616dfab96a4fa0ddd36190907dc68886d9b upstream.
    
    Ask the LSM to free its audit rule rather than directly calling kfree().
    Both AppArmor and SELinux do additional work in their audit_rule_free()
    hooks. Fix memory leaks by allowing the LSMs to perform necessary work.
    
    Fixes: b16942455193 ("ima: use the lsm policy update notifier")
    Signed-off-by: Tyler Hicks <tyhicks@linux.microsoft.com>
    Cc: Janne Karhunen <janne.karhunen@gmail.com>
    Cc: Casey Schaufler <casey@schaufler-ca.com>
    Reviewed-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Cc: <stable@vger.kernel.org> # 4.19+
    Signed-off-by: Gou Hao <gouhao@uniontech.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
Input: melfas_mip4 - fix return value check in mip4_probe() [+ + +]
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Sat Sep 24 11:07:15 2022 +0800

    Input: melfas_mip4 - fix return value check in mip4_probe()
    
    [ Upstream commit a54dc27bd25f20ee3ea2009584b3166d25178243 ]
    
    devm_gpiod_get_optional() may return ERR_PTR(-EPROBE_DEFER),
    add a minus sign to fix it.
    
    Fixes: 6ccb1d8f78bd ("Input: add MELFAS MIP4 Touchscreen driver")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20220924030715.1653538-1-yangyingliang@huawei.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205 [+ + +]
Author: Niklas Cassel <niklas.cassel@wdc.com>
Date:   Mon Sep 26 18:38:09 2022 +0000

    libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
    
    commit ea08aec7e77bfd6599489ec430f9f859ab84575a upstream.
    
    Commit 1527f69204fe ("ata: ahci: Add Green Sardine vendor ID as
    board_ahci_mobile") added an explicit entry for AMD Green Sardine
    AHCI controller using the board_ahci_mobile configuration (this
    configuration has later been renamed to board_ahci_low_power).
    
    The board_ahci_low_power configuration enables support for low power
    modes.
    
    This explicit entry takes precedence over the generic AHCI controller
    entry, which does not enable support for low power modes.
    
    Therefore, when commit 1527f69204fe ("ata: ahci: Add Green Sardine
    vendor ID as board_ahci_mobile") was backported to stable kernels,
    it make some Pioneer optical drives, which was working perfectly fine
    before the commit was backported, stop working.
    
    The real problem is that the Pioneer optical drives do not handle low
    power modes correctly. If these optical drives would have been tested
    on another AHCI controller using the board_ahci_low_power configuration,
    this issue would have been detected earlier.
    
    Unfortunately, the board_ahci_low_power configuration is only used in
    less than 15% of the total AHCI controller entries, so many devices
    have never been tested with an AHCI controller with low power modes.
    
    Fixes: 1527f69204fe ("ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile")
    Cc: stable@vger.kernel.org
    Reported-by: Jaap Berkhout <j.j.berkhout@staalenberk.nl>
    Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
Linux: Linux 4.19.261 [+ + +]
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 5 10:36:46 2022 +0200

    Linux 4.19.261
    
    Link: https://lore.kernel.org/r/20221003070715.406550966@linuxfoundation.org
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Slade Watkins <srw@sladewatkins.net>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
mm/migrate_device.c: flush TLB while holding PTL [+ + +]
Author: Alistair Popple <apopple@nvidia.com>
Date:   Fri Sep 2 10:35:51 2022 +1000

    mm/migrate_device.c: flush TLB while holding PTL
    
    commit 60bae73708963de4a17231077285bd9ff2f41c44 upstream.
    
    When clearing a PTE the TLB should be flushed whilst still holding the PTL
    to avoid a potential race with madvise/munmap/etc.  For example consider
    the following sequence:
    
      CPU0                          CPU1
      ----                          ----
    
      migrate_vma_collect_pmd()
      pte_unmap_unlock()
                                    madvise(MADV_DONTNEED)
                                    -> zap_pte_range()
                                    pte_offset_map_lock()
                                    [ PTE not present, TLB not flushed ]
                                    pte_unmap_unlock()
                                    [ page is still accessible via stale TLB ]
      flush_tlb_range()
    
    In this case the page may still be accessed via the stale TLB entry after
    madvise returns.  Fix this by flushing the TLB while holding the PTL.
    
    Fixes: 8c3328f1f36a ("mm/migrate: migrate_vma() unmap page from vma while collecting pages")
    Link: https://lkml.kernel.org/r/9f801e9d8d830408f2ca27821f606e09aa856899.1662078528.git-series.apopple@nvidia.com
    Signed-off-by: Alistair Popple <apopple@nvidia.com>
    Reported-by: Nadav Amit <nadav.amit@gmail.com>
    Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: Peter Xu <peterx@redhat.com>
    Cc: Alex Sierra <alex.sierra@amd.com>
    Cc: Ben Skeggs <bskeggs@redhat.com>
    Cc: Felix Kuehling <Felix.Kuehling@amd.com>
    Cc: huang ying <huang.ying.caritas@gmail.com>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Karol Herbst <kherbst@redhat.com>
    Cc: Logan Gunthorpe <logang@deltatee.com>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Paul Mackerras <paulus@ozlabs.org>
    Cc: Ralph Campbell <rcampbell@nvidia.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
mm/page_alloc: fix race condition between build_all_zonelists and page allocation [+ + +]
Author: Mel Gorman <mgorman@techsingularity.net>
Date:   Wed Aug 24 12:14:50 2022 +0100

    mm/page_alloc: fix race condition between build_all_zonelists and page allocation
    
    commit 3d36424b3b5850bd92f3e89b953a430d7cfc88ef upstream.
    
    Patrick Daly reported the following problem;
    
            NODE_DATA(nid)->node_zonelists[ZONELIST_FALLBACK] - before offline operation
            [0] - ZONE_MOVABLE
            [1] - ZONE_NORMAL
            [2] - NULL
    
            For a GFP_KERNEL allocation, alloc_pages_slowpath() will save the
            offset of ZONE_NORMAL in ac->preferred_zoneref. If a concurrent
            memory_offline operation removes the last page from ZONE_MOVABLE,
            build_all_zonelists() & build_zonerefs_node() will update
            node_zonelists as shown below. Only populated zones are added.
    
            NODE_DATA(nid)->node_zonelists[ZONELIST_FALLBACK] - after offline operation
            [0] - ZONE_NORMAL
            [1] - NULL
            [2] - NULL
    
    The race is simple -- page allocation could be in progress when a memory
    hot-remove operation triggers a zonelist rebuild that removes zones.  The
    allocation request will still have a valid ac->preferred_zoneref that is
    now pointing to NULL and triggers an OOM kill.
    
    This problem probably always existed but may be slightly easier to trigger
    due to 6aa303defb74 ("mm, vmscan: only allocate and reclaim from zones
    with pages managed by the buddy allocator") which distinguishes between
    zones that are completely unpopulated versus zones that have valid pages
    not managed by the buddy allocator (e.g.  reserved, memblock, ballooning
    etc).  Memory hotplug had multiple stages with timing considerations
    around managed/present page updates, the zonelist rebuild and the zone
    span updates.  As David Hildenbrand puts it
    
            memory offlining adjusts managed+present pages of the zone
            essentially in one go. If after the adjustments, the zone is no
            longer populated (present==0), we rebuild the zone lists.
    
            Once that's done, we try shrinking the zone (start+spanned
            pages) -- which results in zone_start_pfn == 0 if there are no
            more pages. That happens *after* rebuilding the zonelists via
            remove_pfn_range_from_zone().
    
    The only requirement to fix the race is that a page allocation request
    identifies when a zonelist rebuild has happened since the allocation
    request started and no page has yet been allocated.  Use a seqlock_t to
    track zonelist updates with a lockless read-side of the zonelist and
    protecting the rebuild and update of the counter with a spinlock.
    
    [akpm@linux-foundation.org: make zonelist_update_seq static]
    Link: https://lkml.kernel.org/r/20220824110900.vh674ltxmzb3proq@techsingularity.net
    Fixes: 6aa303defb74 ("mm, vmscan: only allocate and reclaim from zones with pages managed by the buddy allocator")
    Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
    Reported-by: Patrick Daly <quic_pdaly@quicinc.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Cc: <stable@vger.kernel.org>    [4.9+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
mm: prevent page_frag_alloc() from corrupting the memory [+ + +]
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Fri Jul 15 14:50:13 2022 +0200

    mm: prevent page_frag_alloc() from corrupting the memory
    
    commit dac22531bbd4af2426c4e29e05594415ccfa365d upstream.
    
    A number of drivers call page_frag_alloc() with a fragment's size >
    PAGE_SIZE.
    
    In low memory conditions, __page_frag_cache_refill() may fail the order
    3 cache allocation and fall back to order 0; In this case, the cache
    will be smaller than the fragment, causing memory corruptions.
    
    Prevent this from happening by checking if the newly allocated cache is
    large enough for the fragment; if not, the allocation will fail and
    page_frag_alloc() will return NULL.
    
    Link: https://lkml.kernel.org/r/20220715125013.247085-1-mlombard@redhat.com
    Fixes: b63ae8ca096d ("mm/net: Rename and move page fragment handling from net/ to mm/")
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
    Cc: Chen Lin <chen45464546@163.com>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
mmc: moxart: fix 4-bit bus width and remove 8-bit bus width [+ + +]
Author: Sergei Antonov <saproj@gmail.com>
Date:   Wed Sep 7 23:57:53 2022 +0300

    mmc: moxart: fix 4-bit bus width and remove 8-bit bus width
    
    commit 35ca91d1338ae158f6dcc0de5d1e86197924ffda upstream.
    
    According to the datasheet [1] at page 377, 4-bit bus width is turned on by
    bit 2 of the Bus Width Register. Thus the current bitmask is wrong: define
    BUS_WIDTH_4 BIT(1)
    
    BIT(1) does not work but BIT(2) works. This has been verified on real MOXA
    hardware with FTSDC010 controller revision 1_6_0.
    
    The corrected value of BUS_WIDTH_4 mask collides with: define BUS_WIDTH_8
    BIT(2). Additionally, 8-bit bus width mode isn't supported according to the
    datasheet, so let's remove the corresponding code.
    
    [1]
    https://bitbucket.org/Kasreyn/mkrom-uc7112lx/src/master/documents/FIC8120_DS_v1.2.pdf
    
    Fixes: 1b66e94e6b99 ("mmc: moxart: Add MOXA ART SD/MMC driver")
    Signed-off-by: Sergei Antonov <saproj@gmail.com>
    Cc: Jonas Jensen <jonas.jensen@gmail.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220907205753.1577434-1-saproj@gmail.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455 [+ + +]
Author: Frank Wunderlich <frank-w@public-files.de>
Date:   Mon Sep 26 17:07:40 2022 +0200

    net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455
    
    commit 797666cd5af041ffb66642fff62f7389f08566a2 upstream.
    
    Add support for Dell 5811e (EM7455) with USB-id 0x413c:0x81c2.
    
    Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
    Cc: stable@vger.kernel.org
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Link: https://lore.kernel.org/r/20220926150740.6684-3-linux@fw-web.de
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
ntfs: fix BUG_ON in ntfs_lookup_inode_by_name() [+ + +]
Author: ChenXiaoSong <chenxiaosong2@huawei.com>
Date:   Tue Aug 9 14:47:30 2022 +0800

    ntfs: fix BUG_ON in ntfs_lookup_inode_by_name()
    
    commit 1b513f613731e2afc05550e8070d79fac80c661e upstream.
    
    Syzkaller reported BUG_ON as follows:
    
    ------------[ cut here ]------------
    kernel BUG at fs/ntfs/dir.c:86!
    invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
    CPU: 3 PID: 758 Comm: a.out Not tainted 5.19.0-next-20220808 #5
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
    RIP: 0010:ntfs_lookup_inode_by_name+0xd11/0x2d10
    Code: ff e9 b9 01 00 00 e8 1e fe d6 fe 48 8b 7d 98 49 8d 5d 07 e8 91 85 29 ff 48 c7 45 98 00 00 00 00 e9 5a fb ff ff e8 ff fd d6 fe <0f> 0b e8 f8 fd d6 fe 0f 0b e8 f1 fd d6 fe 48 8b b5 50 ff ff ff 4c
    RSP: 0018:ffff888079607978 EFLAGS: 00010293
    RAX: 0000000000000000 RBX: 0000000000008000 RCX: 0000000000000000
    RDX: ffff88807cf10000 RSI: ffffffff82a4a081 RDI: 0000000000000003
    RBP: ffff888079607a70 R08: 0000000000000001 R09: ffff88807a6d01d7
    R10: ffffed100f4da03a R11: 0000000000000000 R12: ffff88800f0fb110
    R13: ffff88800f0ee000 R14: ffff88800f0fb000 R15: 0000000000000001
    FS:  00007f33b63c7540(0000) GS:ffff888108580000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f33b635c090 CR3: 000000000f39e005 CR4: 0000000000770ee0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     <TASK>
     load_system_files+0x1f7f/0x3620
     ntfs_fill_super+0xa01/0x1be0
     mount_bdev+0x36a/0x440
     ntfs_mount+0x3a/0x50
     legacy_get_tree+0xfb/0x210
     vfs_get_tree+0x8f/0x2f0
     do_new_mount+0x30a/0x760
     path_mount+0x4de/0x1880
     __x64_sys_mount+0x2b3/0x340
     do_syscall_64+0x38/0x90
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    RIP: 0033:0x7f33b62ff9ea
    Code: 48 8b 0d a9 f4 0b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 76 f4 0b 00 f7 d8 64 89 01 48
    RSP: 002b:00007ffd0c471aa8 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f33b62ff9ea
    RDX: 0000000020000000 RSI: 0000000020000100 RDI: 00007ffd0c471be0
    RBP: 00007ffd0c471c60 R08: 00007ffd0c471ae0 R09: 00007ffd0c471c24
    R10: 0000000000000000 R11: 0000000000000202 R12: 000055bac5afc160
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
     </TASK>
    Modules linked in:
    ---[ end trace 0000000000000000 ]---
    
    Fix this by adding sanity check on extended system files' directory inode
    to ensure that it is directory, just like ntfs_extend_init() when mounting
    ntfs3.
    
    Link: https://lkml.kernel.org/r/20220809064730.2316892-1-chenxiaosong2@huawei.com
    Signed-off-by: ChenXiaoSong <chenxiaosong2@huawei.com>
    Cc: Anton Altaparmakov <anton@tuxera.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
nvme: add new line after variable declatation [+ + +]
Author: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Date:   Sun Feb 28 18:06:11 2021 -0800

    nvme: add new line after variable declatation
    
    [ Upstream commit f1c772d581843e3a14bbd62ef7e40b56fc307f27 ]
    
    Add a new line in functions nvme_pr_preempt(), nvme_pr_clear(), and
    nvme_pr_release() after variable declaration which follows the rest of
    the code in the nvme/host/core.c.
    
    No functional change(s) in this patch.
    
    Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Stable-dep-of: c292a337d0e4 ("nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices [+ + +]
Author: Michael Kelley <mikelley@microsoft.com>
Date:   Thu Sep 22 21:49:09 2022 -0700

    nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
    
    [ Upstream commit c292a337d0e45a292c301e3cd51c35aa0ae91e95 ]
    
    The IOC_PR_CLEAR and IOC_PR_RELEASE ioctls are
    non-functional on NVMe devices because the nvme_pr_clear()
    and nvme_pr_release() functions set the IEKEY field incorrectly.
    The IEKEY field should be set only when the key is zero (i.e,
    not specified).  The current code does it backwards.
    
    Furthermore, the NVMe spec describes the persistent
    reservation "clear" function as an option on the reservation
    release command. The current implementation of nvme_pr_clear()
    erroneously uses the reservation register command.
    
    Fix these errors. Note that NVMe version 1.3 and later specify
    that setting the IEKEY field will return an error of Invalid
    Field in Command.  The fix will set IEKEY when the key is zero,
    which is appropriate as these ioctls consider a zero key to
    be "unspecified", and the intention of the spec change is
    to require a valid key.
    
    Tested on a version 1.4 PCI NVMe device in an Azure VM.
    
    Fixes: 1673f1f08c88 ("nvme: move block_device_operations and ns/ctrl freeing to common code")
    Fixes: 1d277a637a71 ("NVMe: Add persistent reservation ops")
    Signed-off-by: Michael Kelley <mikelley@microsoft.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time" [+ + +]
Author: Brian Norris <briannorris@chromium.org>
Date:   Mon Aug 22 18:08:04 2022 -0700

    Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time"
    
    [ Upstream commit cc62d98bd56d45de4531844ca23913a15136c05b ]
    
    This reverts commit 211f276ed3d96e964d2d1106a198c7f4a4b3f4c0.
    
    For quite some time, core DRM helpers already ensure that any relevant
    connectors/CRTCs/etc. are disabled, as well as their associated
    components (e.g., bridges) when suspending the system. Thus,
    analogix_dp_bridge_{enable,disable}() already get called, which in turn
    call drm_panel_{prepare,unprepare}(). This makes these drm_panel_*()
    calls redundant.
    
    Besides redundancy, there are a few problems with this handling:
    
    (1) drm_panel_{prepare,unprepare}() are *not* reference-counted APIs and
    are not in general designed to be handled by multiple callers --
    although some panel drivers have a coarse 'prepared' flag that mitigates
    some damage, at least. So at a minimum this is redundant and confusing,
    but in some cases, this could be actively harmful.
    
    (2) The error-handling is a bit non-standard. We ignored errors in
    suspend(), but handled errors in resume(). And recently, people noticed
    that the clk handling is unbalanced in error paths, and getting *that*
    right is not actually trivial, given the current way errors are mostly
    ignored.
    
    (3) In the particular way analogix_dp_{suspend,resume}() get used (e.g.,
    in rockchip_dp_*(), as a late/early callback), we don't necessarily have
    a proper PM relationship between the DP/bridge device and the panel
    device. So while the DP bridge gets resumed, the panel's parent device
    (e.g., platform_device) may still be suspended, and so any prepare()
    calls may fail.
    
    So remove the superfluous, possibly-harmful suspend()/resume() handling
    of panel state.
    
    Fixes: 211f276ed3d9 ("drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time")
    Link: https://lore.kernel.org/all/Yv2CPBD3Picg%2FgVe@google.com/
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220822180729.1.I8ac5abe3a4c1c6fd5c061686c6e883c22f69022c@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
selftests: Fix the if conditions of in test_extra_filter() [+ + +]
Author: Wang Yufen <wangyufen@huawei.com>
Date:   Fri Sep 23 15:02:37 2022 +0800

    selftests: Fix the if conditions of in test_extra_filter()
    
    [ Upstream commit bc7a319844891746135dc1f34ab9df78d636a3ac ]
    
    The socket 2 bind the addr in use, bind should fail with EADDRINUSE. So
    if bind success or errno != EADDRINUSE, testcase should be failed.
    
    Fixes: 3ca8e4029969 ("soreuseport: BPF selection functional test")
    Signed-off-by: Wang Yufen <wangyufen@huawei.com>
    Link: https://lore.kernel.org/r/1663916557-10730-1-git-send-email-wangyufen@huawei.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
soc: sunxi: sram: Actually claim SRAM regions [+ + +]
Author: Samuel Holland <samuel@sholland.org>
Date:   Sun Aug 14 23:12:40 2022 -0500

    soc: sunxi: sram: Actually claim SRAM regions
    
    [ Upstream commit fd362baad2e659ef0fb5652f023a606b248f1781 ]
    
    sunxi_sram_claim() checks the sram_desc->claimed flag before updating
    the register, with the intent that only one device can claim a region.
    However, this was ineffective because the flag was never set.
    
    Fixes: 4af34b572a85 ("drivers: soc: sunxi: Introduce SoC driver to map SRAMs")
    Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: Samuel Holland <samuel@sholland.org>
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Tested-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Link: https://lore.kernel.org/r/20220815041248.53268-4-samuel@sholland.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

soc: sunxi: sram: Fix debugfs info for A64 SRAM C [+ + +]
Author: Samuel Holland <samuel@sholland.org>
Date:   Sun Aug 14 23:12:43 2022 -0500

    soc: sunxi: sram: Fix debugfs info for A64 SRAM C
    
    [ Upstream commit e3c95edb1bd8b9c2cb0caa6ae382fc8080f6a0ed ]
    
    The labels were backward with respect to the register values. The SRAM
    is mapped to the CPU when the register value is 1.
    
    Fixes: 5e4fb6429761 ("drivers: soc: sunxi: add support for A64 and its SRAM C")
    Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: Samuel Holland <samuel@sholland.org>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Link: https://lore.kernel.org/r/20220815041248.53268-7-samuel@sholland.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

soc: sunxi: sram: Fix probe function ordering issues [+ + +]
Author: Samuel Holland <samuel@sholland.org>
Date:   Sun Aug 14 23:12:42 2022 -0500

    soc: sunxi: sram: Fix probe function ordering issues
    
    [ Upstream commit 49fad91a7b8941979c3e9a35f9894ac45bc5d3d6 ]
    
    Errors from debugfs are intended to be non-fatal, and should not prevent
    the driver from probing.
    
    Since debugfs file creation is treated as infallible, move it below the
    parts of the probe function that can fail. This prevents an error
    elsewhere in the probe function from causing the file to leak. Do the
    same for the call to of_platform_populate().
    
    Finally, checkpatch suggests an octal literal for the file permissions.
    
    Fixes: 4af34b572a85 ("drivers: soc: sunxi: Introduce SoC driver to map SRAMs")
    Fixes: 5828729bebbb ("soc: sunxi: export a regmap for EMAC clock reg on A64")
    Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: Samuel Holland <samuel@sholland.org>
    Tested-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Link: https://lore.kernel.org/r/20220815041248.53268-6-samuel@sholland.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

soc: sunxi: sram: Prevent the driver from being unbound [+ + +]
Author: Samuel Holland <samuel@sholland.org>
Date:   Sun Aug 14 23:12:41 2022 -0500

    soc: sunxi: sram: Prevent the driver from being unbound
    
    [ Upstream commit 90e10a1fcd9b24b4ba8c0d35136127473dcd829e ]
    
    This driver exports a regmap tied to the platform device (as opposed to
    a syscon, which exports a regmap tied to the OF node). Because of this,
    the driver can never be unbound, as that would destroy the regmap. Use
    builtin_platform_driver_probe() to enforce this limitation.
    
    Fixes: 5828729bebbb ("soc: sunxi: export a regmap for EMAC clock reg on A64")
    Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: Samuel Holland <samuel@sholland.org>
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Tested-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Link: https://lore.kernel.org/r/20220815041248.53268-5-samuel@sholland.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
uas: add no-uas quirk for Hiksemi usb_disk [+ + +]
Author: Hongling Zeng <zenghongling@kylinos.cn>
Date:   Fri Sep 23 10:46:13 2022 +0800

    uas: add no-uas quirk for Hiksemi usb_disk
    
    commit a625a4b8806cc1e928b7dd2cca1fee709c9de56e upstream.
    
    The UAS mode of Hiksemi is reported to fail to work on several platforms
    with the following error message, then after re-connecting the device will
    be offlined and not working at all.
    
    [  592.518442][ 2] sd 8:0:0:0: [sda] tag#17 uas_eh_abort_handler 0 uas-tag 18
                       inflight: CMD
    [  592.527575][ 2] sd 8:0:0:0: [sda] tag#17 CDB: Write(10) 2a 00 03 6f 88 00 00
                       04 00 00
    [  592.536330][ 2] sd 8:0:0:0: [sda] tag#0 uas_eh_abort_handler 0 uas-tag 1
                       inflight: CMD
    [  592.545266][ 2] sd 8:0:0:0: [sda] tag#0 CDB: Write(10) 2a 00 07 44 1a 88 00
                       00 08 00
    
    These disks have a broken uas implementation, the tag field of the status
    iu-s is not set properly,so we need to fall-back to usb-storage.
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: stable <stable@kernel.org>
    Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn>
    Link: https://lore.kernel.org/r/1663901173-21020-1-git-send-email-zenghongling@kylinos.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
uas: ignore UAS for Thinkplus chips [+ + +]
Author: Hongling Zeng <zenghongling@kylinos.cn>
Date:   Fri Sep 23 10:46:35 2022 +0800

    uas: ignore UAS for Thinkplus chips
    
    commit 0fb9703a3eade0bb84c635705d9c795345e55053 upstream.
    
    The UAS mode of Thinkplus(0x17ef, 0x3899) is reported to influence
    performance and trigger kernel panic on several platforms with the
    following error message:
    
    [   39.702439] xhci_hcd 0000:0c:00.3: ERROR Transfer event for disabled
                   endpoint or incorrect stream ring
    [   39.702442] xhci_hcd 0000:0c:00.3: @000000026c61f810 00000000 00000000
                   1b000000 05038000
    
    [  720.545894][13] Workqueue: usb_hub_wq hub_event
    [  720.550971][13]  ffff88026c143c38 0000000000016300 ffff8802755bb900 ffff880
                        26cb80000
    [  720.559673][13]  ffff88026c144000 ffff88026ca88100 0000000000000000 ffff880
                        26cb80000
    [  720.568374][13]  ffff88026cb80000 ffff88026c143c50 ffffffff8186ae25 ffff880
                        26ca880f8
    [  720.577076][13] Call Trace:
    [  720.580201][13]  [<ffffffff8186ae25>] schedule+0x35/0x80
    [  720.586137][13]  [<ffffffff8186b0ce>] schedule_preempt_disabled+0xe/0x10
    [  720.593623][13]  [<ffffffff8186cb94>] __mutex_lock_slowpath+0x164/0x1e0
    [  720.601012][13]  [<ffffffff8186cc3f>] mutex_lock+0x2f/0x40
    [  720.607141][13]  [<ffffffff8162b8e9>] usb_disconnect+0x59/0x290
    
    Falling back to USB mass storage can solve this problem, so ignore UAS
    function of this chip.
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: stable <stable@kernel.org>
    Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn>
    Link: https://lore.kernel.org/r/1663902249837086.19.seg@mailgw
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS [+ + +]
Author: Hongling Zeng <zenghongling@kylinos.cn>
Date:   Fri Sep 23 10:46:25 2022 +0800

    usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS
    
    commit e00b488e813f0f1ad9f778e771b7cd2fe2877023 upstream.
    
    The UAS mode of Hiksemi USB_HDD is reported to fail to work on several
    platforms with the following error message, then after re-connecting the
    device will be offlined and not working at all.
    
    [  592.518442][ 2] sd 8:0:0:0: [sda] tag#17 uas_eh_abort_handler 0 uas-tag 18
                       inflight: CMD
    [  592.527575][ 2] sd 8:0:0:0: [sda] tag#17 CDB: Write(10) 2a 00 03 6f 88 00 00
                       04 00 00
    [  592.536330][ 2] sd 8:0:0:0: [sda] tag#0 uas_eh_abort_handler 0 uas-tag 1
                       inflight: CMD
    [  592.545266][ 2] sd 8:0:0:0: [sda] tag#0 CDB: Write(10) 2a 00 07 44 1a 88 00
                       00 08 00
    
    These disks have a broken uas implementation, the tag field of the status
    iu-s is not set properly,so we need to fall-back to usb-storage.
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: stable <stable@kernel.org>
    Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn>
    Link: https://lore.kernel.org/r/1663901185-21067-1-git-send-email-zenghongling@kylinos.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
usbnet: Fix memory leak in usbnet_disconnect() [+ + +]
Author: Peilin Ye <peilin.ye@bytedance.com>
Date:   Thu Sep 22 21:25:51 2022 -0700

    usbnet: Fix memory leak in usbnet_disconnect()
    
    [ Upstream commit a43206156263fbaf1f2b7f96257441f331e91bb7 ]
    
    Currently usbnet_disconnect() unanchors and frees all deferred URBs
    using usb_scuttle_anchored_urbs(), which does not free urb->context,
    causing a memory leak as reported by syzbot.
    
    Use a usb_get_from_anchor() while loop instead, similar to what we did
    in commit 19cfe912c37b ("Bluetooth: btusb: Fix memory leak in
    play_deferred").  Also free urb->sg.
    
    Reported-and-tested-by: syzbot+dcd3e13cf4472f2e0ba1@syzkaller.appspotmail.com
    Fixes: 69ee472f2706 ("usbnet & cdc-ether: Autosuspend for online devices")
    Fixes: 638c5115a794 ("USBNET: support DMA SG")
    Signed-off-by: Peilin Ye <peilin.ye@bytedance.com>
    Link: https://lore.kernel.org/r/20220923042551.2745-1-yepeilin.cs@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>