From b2248ccb8ad0a08a7f059d7f03b925269b760323 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 22 Jan 2024 11:41:46 -0800 Subject: [PATCH] 5.15-stable patches added patches: block-add-check-that-partition-length-needs-to-be-aligned-with-block-size.patch bluetooth-fix-atomicity-violation-in-min-max-_key_size_set.patch bpf-fix-re-attachment-branch-in-bpf_tracing_prog_attach.patch fbdev-flush-deferred-work-in-fb_deferred_io_fsync.patch io_uring-rw-ensure-io-bytes_done-is-always-initialized.patch netfilter-nf_tables-check-if-catch-all-set-element-is-active-in-next-generation.patch pwm-jz4740-don-t-use-dev_err_probe-in-.request.patch rootfs-fix-support-for-rootfstype-when-root-is-given.patch scsi-mpi3mr-refresh-sdev-queue-depth-after-controller-reset.patch --- ...-needs-to-be-aligned-with-block-size.patch | 62 +++++++++++++ ...y-violation-in-min-max-_key_size_set.patch | 92 +++++++++++++++++++ ...nt-branch-in-bpf_tracing_prog_attach.patch | 79 ++++++++++++++++ ...eferred-work-in-fb_deferred_io_fsync.patch | 51 ++++++++++ ...-io-bytes_done-is-always-initialized.patch | 48 ++++++++++ ...element-is-active-in-next-generation.patch | 35 +++++++ ...-don-t-use-dev_err_probe-in-.request.patch | 47 ++++++++++ ...rt-for-rootfstype-when-root-is-given.patch | 70 ++++++++++++++ ...v-queue-depth-after-controller-reset.patch | 42 +++++++++ queue-5.15/series | 9 ++ 10 files changed, 535 insertions(+) create mode 100644 queue-5.15/block-add-check-that-partition-length-needs-to-be-aligned-with-block-size.patch create mode 100644 queue-5.15/bluetooth-fix-atomicity-violation-in-min-max-_key_size_set.patch create mode 100644 queue-5.15/bpf-fix-re-attachment-branch-in-bpf_tracing_prog_attach.patch create mode 100644 queue-5.15/fbdev-flush-deferred-work-in-fb_deferred_io_fsync.patch create mode 100644 queue-5.15/io_uring-rw-ensure-io-bytes_done-is-always-initialized.patch create mode 100644 queue-5.15/netfilter-nf_tables-check-if-catch-all-set-element-is-active-in-next-generation.patch create mode 100644 queue-5.15/pwm-jz4740-don-t-use-dev_err_probe-in-.request.patch create mode 100644 queue-5.15/rootfs-fix-support-for-rootfstype-when-root-is-given.patch create mode 100644 queue-5.15/scsi-mpi3mr-refresh-sdev-queue-depth-after-controller-reset.patch diff --git a/queue-5.15/block-add-check-that-partition-length-needs-to-be-aligned-with-block-size.patch b/queue-5.15/block-add-check-that-partition-length-needs-to-be-aligned-with-block-size.patch new file mode 100644 index 00000000000..a2d8c1a2a5a --- /dev/null +++ b/queue-5.15/block-add-check-that-partition-length-needs-to-be-aligned-with-block-size.patch @@ -0,0 +1,62 @@ +From 6f64f866aa1ae6975c95d805ed51d7e9433a0016 Mon Sep 17 00:00:00 2001 +From: Min Li +Date: Thu, 29 Jun 2023 14:25:17 +0000 +Subject: block: add check that partition length needs to be aligned with block size + +From: Min Li + +commit 6f64f866aa1ae6975c95d805ed51d7e9433a0016 upstream. + +Before calling add partition or resize partition, there is no check +on whether the length is aligned with the logical block size. +If the logical block size of the disk is larger than 512 bytes, +then the partition size maybe not the multiple of the logical block size, +and when the last sector is read, bio_truncate() will adjust the bio size, +resulting in an IO error if the size of the read command is smaller than +the logical block size.If integrity data is supported, this will also +result in a null pointer dereference when calling bio_integrity_free. + +Cc: +Signed-off-by: Min Li +Reviewed-by: Damien Le Moal +Reviewed-by: Chaitanya Kulkarni +Reviewed-by: Christoph Hellwig +Link: https://lore.kernel.org/r/20230629142517.121241-1-min15.li@samsung.com +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman +--- + block/ioctl.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +--- a/block/ioctl.c ++++ b/block/ioctl.c +@@ -18,7 +18,7 @@ static int blkpg_do_ioctl(struct block_d + { + struct gendisk *disk = bdev->bd_disk; + struct blkpg_partition p; +- long long start, length; ++ sector_t start, length; + + if (disk->flags & GENHD_FL_NO_PART) + return -EINVAL; +@@ -35,14 +35,17 @@ static int blkpg_do_ioctl(struct block_d + if (op == BLKPG_DEL_PARTITION) + return bdev_del_partition(disk, p.pno); + ++ if (p.start < 0 || p.length <= 0 || p.start + p.length < 0) ++ return -EINVAL; ++ /* Check that the partition is aligned to the block size */ ++ if (!IS_ALIGNED(p.start | p.length, bdev_logical_block_size(bdev))) ++ return -EINVAL; ++ + start = p.start >> SECTOR_SHIFT; + length = p.length >> SECTOR_SHIFT; + + switch (op) { + case BLKPG_ADD_PARTITION: +- /* check if partition is aligned to blocksize */ +- if (p.start & (bdev_logical_block_size(bdev) - 1)) +- return -EINVAL; + return bdev_add_partition(disk, p.pno, start, length); + case BLKPG_RESIZE_PARTITION: + return bdev_resize_partition(disk, p.pno, start, length); diff --git a/queue-5.15/bluetooth-fix-atomicity-violation-in-min-max-_key_size_set.patch b/queue-5.15/bluetooth-fix-atomicity-violation-in-min-max-_key_size_set.patch new file mode 100644 index 00000000000..cd74deb2249 --- /dev/null +++ b/queue-5.15/bluetooth-fix-atomicity-violation-in-min-max-_key_size_set.patch @@ -0,0 +1,92 @@ +From da9065caa594d19b26e1a030fd0cc27bd365d685 Mon Sep 17 00:00:00 2001 +From: Gui-Dong Han <2045gemini@gmail.com> +Date: Fri, 22 Dec 2023 23:12:41 +0800 +Subject: Bluetooth: Fix atomicity violation in {min,max}_key_size_set + +From: Gui-Dong Han <2045gemini@gmail.com> + +commit da9065caa594d19b26e1a030fd0cc27bd365d685 upstream. + +In min_key_size_set(): + if (val > hdev->le_max_key_size || val < SMP_MIN_ENC_KEY_SIZE) + return -EINVAL; + hci_dev_lock(hdev); + hdev->le_min_key_size = val; + hci_dev_unlock(hdev); + +In max_key_size_set(): + if (val > SMP_MAX_ENC_KEY_SIZE || val < hdev->le_min_key_size) + return -EINVAL; + hci_dev_lock(hdev); + hdev->le_max_key_size = val; + hci_dev_unlock(hdev); + +The atomicity violation occurs due to concurrent execution of set_min and +set_max funcs.Consider a scenario where setmin writes a new, valid 'min' +value, and concurrently, setmax writes a value that is greater than the +old 'min' but smaller than the new 'min'. In this case, setmax might check +against the old 'min' value (before acquiring the lock) but write its +value after the 'min' has been updated by setmin. This leads to a +situation where the 'max' value ends up being smaller than the 'min' +value, which is an inconsistency. + +This possible bug is found by an experimental static analysis tool +developed by our team, BassCheck[1]. This tool analyzes the locking APIs +to extract function pairs that can be concurrently executed, and then +analyzes the instructions in the paired functions to identify possible +concurrency bugs including data races and atomicity violations. The above +possible bug is reported when our tool analyzes the source code of +Linux 5.17. + +To resolve this issue, it is suggested to encompass the validity checks +within the locked sections in both set_min and set_max funcs. The +modification ensures that the validation of 'val' against the +current min/max values is atomic, thus maintaining the integrity of the +settings. With this patch applied, our tool no longer reports the bug, +with the kernel configuration allyesconfig for x86_64. Due to the lack of +associated hardware, we cannot test the patch in runtime testing, and just +verify it according to the code logic. + +[1] https://sites.google.com/view/basscheck/ + +Fixes: 18f81241b74f ("Bluetooth: Move {min,max}_key_size debugfs ...") +Cc: stable@vger.kernel.org +Signed-off-by: Gui-Dong Han <2045gemini@gmail.com> +Signed-off-by: Luiz Augusto von Dentz +Signed-off-by: Greg Kroah-Hartman +--- + net/bluetooth/hci_debugfs.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/net/bluetooth/hci_debugfs.c ++++ b/net/bluetooth/hci_debugfs.c +@@ -1044,10 +1044,12 @@ static int min_key_size_set(void *data, + { + struct hci_dev *hdev = data; + +- if (val > hdev->le_max_key_size || val < SMP_MIN_ENC_KEY_SIZE) ++ hci_dev_lock(hdev); ++ if (val > hdev->le_max_key_size || val < SMP_MIN_ENC_KEY_SIZE) { ++ hci_dev_unlock(hdev); + return -EINVAL; ++ } + +- hci_dev_lock(hdev); + hdev->le_min_key_size = val; + hci_dev_unlock(hdev); + +@@ -1072,10 +1074,12 @@ static int max_key_size_set(void *data, + { + struct hci_dev *hdev = data; + +- if (val > SMP_MAX_ENC_KEY_SIZE || val < hdev->le_min_key_size) ++ hci_dev_lock(hdev); ++ if (val > SMP_MAX_ENC_KEY_SIZE || val < hdev->le_min_key_size) { ++ hci_dev_unlock(hdev); + return -EINVAL; ++ } + +- hci_dev_lock(hdev); + hdev->le_max_key_size = val; + hci_dev_unlock(hdev); + diff --git a/queue-5.15/bpf-fix-re-attachment-branch-in-bpf_tracing_prog_attach.patch b/queue-5.15/bpf-fix-re-attachment-branch-in-bpf_tracing_prog_attach.patch new file mode 100644 index 00000000000..a2eed8b4342 --- /dev/null +++ b/queue-5.15/bpf-fix-re-attachment-branch-in-bpf_tracing_prog_attach.patch @@ -0,0 +1,79 @@ +From 715d82ba636cb3629a6e18a33bb9dbe53f9936ee Mon Sep 17 00:00:00 2001 +From: Jiri Olsa +Date: Wed, 3 Jan 2024 20:05:46 +0100 +Subject: bpf: Fix re-attachment branch in bpf_tracing_prog_attach + +From: Jiri Olsa + +commit 715d82ba636cb3629a6e18a33bb9dbe53f9936ee upstream. + +The following case can cause a crash due to missing attach_btf: + +1) load rawtp program +2) load fentry program with rawtp as target_fd +3) create tracing link for fentry program with target_fd = 0 +4) repeat 3 + +In the end we have: + +- prog->aux->dst_trampoline == NULL +- tgt_prog == NULL (because we did not provide target_fd to link_create) +- prog->aux->attach_btf == NULL (the program was loaded with attach_prog_fd=X) +- the program was loaded for tgt_prog but we have no way to find out which one + + BUG: kernel NULL pointer dereference, address: 0000000000000058 + Call Trace: + + ? __die+0x20/0x70 + ? page_fault_oops+0x15b/0x430 + ? fixup_exception+0x22/0x330 + ? exc_page_fault+0x6f/0x170 + ? asm_exc_page_fault+0x22/0x30 + ? bpf_tracing_prog_attach+0x279/0x560 + ? btf_obj_id+0x5/0x10 + bpf_tracing_prog_attach+0x439/0x560 + __sys_bpf+0x1cf4/0x2de0 + __x64_sys_bpf+0x1c/0x30 + do_syscall_64+0x41/0xf0 + entry_SYSCALL_64_after_hwframe+0x6e/0x76 + +Return -EINVAL in this situation. + +Fixes: f3a95075549e0 ("bpf: Allow trampoline re-attach for tracing and lsm programs") +Cc: stable@vger.kernel.org +Signed-off-by: Jiri Olsa +Acked-by: Jiri Olsa +Acked-by: Song Liu +Signed-off-by: Dmitrii Dolgov <9erthalion6@gmail.com> +Link: https://lore.kernel.org/r/20240103190559.14750-4-9erthalion6@gmail.com +Signed-off-by: Alexei Starovoitov +Signed-off-by: Greg Kroah-Hartman +--- + kernel/bpf/syscall.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/kernel/bpf/syscall.c ++++ b/kernel/bpf/syscall.c +@@ -2761,6 +2761,10 @@ static int bpf_tracing_prog_attach(struc + * + * - if prog->aux->dst_trampoline and tgt_prog is NULL, the program + * was detached and is going for re-attachment. ++ * ++ * - if prog->aux->dst_trampoline is NULL and tgt_prog and prog->aux->attach_btf ++ * are NULL, then program was already attached and user did not provide ++ * tgt_prog_fd so we have no way to find out or create trampoline + */ + if (!prog->aux->dst_trampoline && !tgt_prog) { + /* +@@ -2774,6 +2778,11 @@ static int bpf_tracing_prog_attach(struc + err = -EINVAL; + goto out_unlock; + } ++ /* We can allow re-attach only if we have valid attach_btf. */ ++ if (!prog->aux->attach_btf) { ++ err = -EINVAL; ++ goto out_unlock; ++ } + btf_id = prog->aux->attach_btf_id; + key = bpf_trampoline_compute_key(NULL, prog->aux->attach_btf, btf_id); + } diff --git a/queue-5.15/fbdev-flush-deferred-work-in-fb_deferred_io_fsync.patch b/queue-5.15/fbdev-flush-deferred-work-in-fb_deferred_io_fsync.patch new file mode 100644 index 00000000000..ffdabcee382 --- /dev/null +++ b/queue-5.15/fbdev-flush-deferred-work-in-fb_deferred_io_fsync.patch @@ -0,0 +1,51 @@ +From 15e4c1f462279b4e128f27de48133e0debe9e0df Mon Sep 17 00:00:00 2001 +From: Nam Cao +Date: Mon, 18 Dec 2023 10:57:30 +0100 +Subject: fbdev: flush deferred work in fb_deferred_io_fsync() + +From: Nam Cao + +commit 15e4c1f462279b4e128f27de48133e0debe9e0df upstream. + +The driver's fsync() is supposed to flush any pending operation to +hardware. It is implemented in this driver by cancelling the queued +deferred IO first, then schedule it for "immediate execution" by calling +schedule_delayed_work() again with delay=0. However, setting delay=0 +only means the work is scheduled immediately, it does not mean the work +is executed immediately. There is no guarantee that the work is finished +after schedule_delayed_work() returns. After this driver's fsync() +returns, there can still be pending work. Furthermore, if close() is +called by users immediately after fsync(), the pending work gets +cancelled and fsync() may do nothing. + +To ensure that the deferred IO completes, use flush_delayed_work() +instead. Write operations to this driver either write to the device +directly, or invoke schedule_delayed_work(); so by flushing the +workqueue, it can be guaranteed that all previous writes make it to the +device. + +Fixes: 5e841b88d23d ("fb: fsync() method for deferred I/O flush.") +Cc: stable@vger.kernel.org +Signed-off-by: Nam Cao +Reviewed-by: Sebastian Andrzej Siewior +Signed-off-by: Helge Deller +Signed-off-by: Greg Kroah-Hartman +--- + drivers/video/fbdev/core/fb_defio.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +--- a/drivers/video/fbdev/core/fb_defio.c ++++ b/drivers/video/fbdev/core/fb_defio.c +@@ -78,11 +78,7 @@ int fb_deferred_io_fsync(struct file *fi + return 0; + + inode_lock(inode); +- /* Kill off the delayed work */ +- cancel_delayed_work_sync(&info->deferred_work); +- +- /* Run it immediately */ +- schedule_delayed_work(&info->deferred_work, 0); ++ flush_delayed_work(&info->deferred_work); + inode_unlock(inode); + + return 0; diff --git a/queue-5.15/io_uring-rw-ensure-io-bytes_done-is-always-initialized.patch b/queue-5.15/io_uring-rw-ensure-io-bytes_done-is-always-initialized.patch new file mode 100644 index 00000000000..acb42d8c695 --- /dev/null +++ b/queue-5.15/io_uring-rw-ensure-io-bytes_done-is-always-initialized.patch @@ -0,0 +1,48 @@ +From 2fb96ecf68bc1fb55508d22ebaf9518eaeb1a088 Mon Sep 17 00:00:00 2001 +From: Jens Axboe +Date: Mon, 22 Jan 2024 12:30:07 -0700 +Subject: io_uring/rw: ensure io->bytes_done is always initialized + +From: Jens Axboe + +commit 0a535eddbe0dc1de4386046ab849f08aeb2f8faf upstream. + +If IOSQE_ASYNC is set and we fail importing an iovec for a readv or +writev request, then we leave ->bytes_done uninitialized and hence the +eventual failure CQE posted can potentially have a random res value +rather than the expected -EINVAL. + +Setup ->bytes_done before potentially failing, so we have a consistent +value if we fail the request early. + +Cc: stable@vger.kernel.org +Reported-by: xingwei lee +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman +--- + io_uring/io_uring.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/io_uring/io_uring.c ++++ b/io_uring/io_uring.c +@@ -3490,14 +3490,17 @@ static inline int io_rw_prep_async(struc + struct iovec *iov = iorw->fast_iov; + int ret; + ++ iorw->bytes_done = 0; ++ iorw->free_iovec = NULL; ++ + ret = io_import_iovec(rw, req, &iov, &iorw->iter, false); + if (unlikely(ret < 0)) + return ret; + +- iorw->bytes_done = 0; +- iorw->free_iovec = iov; +- if (iov) ++ if (iov) { ++ iorw->free_iovec = iov; + req->flags |= REQ_F_NEED_CLEANUP; ++ } + iov_iter_save_state(&iorw->iter, &iorw->iter_state); + return 0; + } diff --git a/queue-5.15/netfilter-nf_tables-check-if-catch-all-set-element-is-active-in-next-generation.patch b/queue-5.15/netfilter-nf_tables-check-if-catch-all-set-element-is-active-in-next-generation.patch new file mode 100644 index 00000000000..a7a13a42d27 --- /dev/null +++ b/queue-5.15/netfilter-nf_tables-check-if-catch-all-set-element-is-active-in-next-generation.patch @@ -0,0 +1,35 @@ +From b1db244ffd041a49ecc9618e8feb6b5c1afcdaa7 Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso +Date: Fri, 12 Jan 2024 23:28:45 +0100 +Subject: netfilter: nf_tables: check if catch-all set element is active in next generation + +From: Pablo Neira Ayuso + +commit b1db244ffd041a49ecc9618e8feb6b5c1afcdaa7 upstream. + +When deactivating the catch-all set element, check the state in the next +generation that represents this transaction. + +This bug uncovered after the recent removal of the element busy mark +a2dd0233cbc4 ("netfilter: nf_tables: remove busy mark and gc batch API"). + +Fixes: aaa31047a6d2 ("netfilter: nftables: add catch-all set element support") +Cc: stable@vger.kernel.org +Reported-by: lonial con +Signed-off-by: Pablo Neira Ayuso +Signed-off-by: Greg Kroah-Hartman +--- + net/netfilter/nf_tables_api.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/netfilter/nf_tables_api.c ++++ b/net/netfilter/nf_tables_api.c +@@ -6034,7 +6034,7 @@ static int nft_setelem_catchall_deactiva + + list_for_each_entry(catchall, &set->catchall_list, list) { + ext = nft_set_elem_ext(set, catchall->elem); +- if (!nft_is_active(net, ext)) ++ if (!nft_is_active_next(net, ext)) + continue; + + kfree(elem->priv); diff --git a/queue-5.15/pwm-jz4740-don-t-use-dev_err_probe-in-.request.patch b/queue-5.15/pwm-jz4740-don-t-use-dev_err_probe-in-.request.patch new file mode 100644 index 00000000000..00e92605812 --- /dev/null +++ b/queue-5.15/pwm-jz4740-don-t-use-dev_err_probe-in-.request.patch @@ -0,0 +1,47 @@ +From 9320fc509b87b4d795fb37112931e2f4f8b5c55f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= +Date: Sat, 6 Jan 2024 15:13:03 +0100 +Subject: pwm: jz4740: Don't use dev_err_probe() in .request() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Uwe Kleine-König + +commit 9320fc509b87b4d795fb37112931e2f4f8b5c55f upstream. + +dev_err_probe() is only supposed to be used in probe functions. While it +probably doesn't hurt, both the EPROBE_DEFER handling and calling +device_set_deferred_probe_reason() are conceptually wrong in the request +callback. So replace the call by dev_err() and a separate return +statement. + +This effectively reverts commit c0bfe9606e03 ("pwm: jz4740: Simplify +with dev_err_probe()"). + +Reviewed-by: Krzysztof Kozlowski +Link: https://lore.kernel.org/r/20240106141302.1253365-2-u.kleine-koenig@pengutronix.de +Fixes: c0bfe9606e03 ("pwm: jz4740: Simplify with dev_err_probe()") +Cc: stable@vger.kernel.org +Signed-off-by: Uwe Kleine-König +Signed-off-by: Greg Kroah-Hartman +--- + drivers/pwm/pwm-jz4740.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/pwm/pwm-jz4740.c ++++ b/drivers/pwm/pwm-jz4740.c +@@ -60,9 +60,10 @@ static int jz4740_pwm_request(struct pwm + snprintf(name, sizeof(name), "timer%u", pwm->hwpwm); + + clk = clk_get(chip->dev, name); +- if (IS_ERR(clk)) +- return dev_err_probe(chip->dev, PTR_ERR(clk), +- "Failed to get clock\n"); ++ if (IS_ERR(clk)) { ++ dev_err(chip->dev, "error %pe: Failed to get clock\n", clk); ++ return PTR_ERR(clk); ++ } + + err = clk_prepare_enable(clk); + if (err < 0) { diff --git a/queue-5.15/rootfs-fix-support-for-rootfstype-when-root-is-given.patch b/queue-5.15/rootfs-fix-support-for-rootfstype-when-root-is-given.patch new file mode 100644 index 00000000000..e558162f4f5 --- /dev/null +++ b/queue-5.15/rootfs-fix-support-for-rootfstype-when-root-is-given.patch @@ -0,0 +1,70 @@ +From 21528c69a0d8483f7c6345b1a0bc8d8975e9a172 Mon Sep 17 00:00:00 2001 +From: Stefan Berger +Date: Sun, 19 Nov 2023 20:12:48 -0500 +Subject: rootfs: Fix support for rootfstype= when root= is given + +From: Stefan Berger + +commit 21528c69a0d8483f7c6345b1a0bc8d8975e9a172 upstream. + +Documentation/filesystems/ramfs-rootfs-initramfs.rst states: + + If CONFIG_TMPFS is enabled, rootfs will use tmpfs instead of ramfs by + default. To force ramfs, add "rootfstype=ramfs" to the kernel command + line. + +This currently does not work when root= is provided since then +saved_root_name contains a string and rootfstype= is ignored. Therefore, +ramfs is currently always chosen when root= is provided. + +The current behavior for rootfs's filesystem is: + + root= | rootfstype= | chosen rootfs filesystem + ------------+-------------+-------------------------- + unspecified | unspecified | tmpfs + unspecified | tmpfs | tmpfs + unspecified | ramfs | ramfs + provided | ignored | ramfs + +rootfstype= should be respected regardless whether root= is given, +as shown below: + + root= | rootfstype= | chosen rootfs filesystem + ------------+-------------+-------------------------- + unspecified | unspecified | tmpfs (as before) + unspecified | tmpfs | tmpfs (as before) + unspecified | ramfs | ramfs (as before) + provided | unspecified | ramfs (compatibility with before) + provided | tmpfs | tmpfs (new) + provided | ramfs | ramfs (new) + +This table represents the new behavior. + +Fixes: 6e19eded3684 ("initmpfs: use initramfs if rootfstype= or root= specified") +Cc: +Signed-off-by: Rob Landley +Link: https://lore.kernel.org/lkml/8244c75f-445e-b15b-9dbf-266e7ca666e2@landley.net/ +Reviewed-and-Tested-by: Mimi Zohar +Signed-off-by: Stefan Berger +Link: https://lore.kernel.org/r/20231120011248.396012-1-stefanb@linux.ibm.com +Signed-off-by: Greg Kroah-Hartman +--- + init/do_mounts.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/init/do_mounts.c ++++ b/init/do_mounts.c +@@ -666,7 +666,10 @@ struct file_system_type rootfs_fs_type = + + void __init init_rootfs(void) + { +- if (IS_ENABLED(CONFIG_TMPFS) && !saved_root_name[0] && +- (!root_fs_names || strstr(root_fs_names, "tmpfs"))) +- is_tmpfs = true; ++ if (IS_ENABLED(CONFIG_TMPFS)) { ++ if (!saved_root_name[0] && !root_fs_names) ++ is_tmpfs = true; ++ else if (root_fs_names && !!strstr(root_fs_names, "tmpfs")) ++ is_tmpfs = true; ++ } + } diff --git a/queue-5.15/scsi-mpi3mr-refresh-sdev-queue-depth-after-controller-reset.patch b/queue-5.15/scsi-mpi3mr-refresh-sdev-queue-depth-after-controller-reset.patch new file mode 100644 index 00000000000..457ef6f82d9 --- /dev/null +++ b/queue-5.15/scsi-mpi3mr-refresh-sdev-queue-depth-after-controller-reset.patch @@ -0,0 +1,42 @@ +From e5aab848dfdf7996d20ece4d28d2733c732c5e5a Mon Sep 17 00:00:00 2001 +From: Chandrakanth patil +Date: Sun, 26 Nov 2023 11:01:31 +0530 +Subject: scsi: mpi3mr: Refresh sdev queue depth after controller reset + +From: Chandrakanth patil + +commit e5aab848dfdf7996d20ece4d28d2733c732c5e5a upstream. + +After a controller reset, the firmware may modify the device queue depth. +Therefore, update the device queue depth accordingly. + +Cc: # v5.15+ +Co-developed-by: Sathya Prakash +Signed-off-by: Sathya Prakash +Signed-off-by: Chandrakanth patil +Link: https://lore.kernel.org/r/20231126053134.10133-2-chandrakanth.patil@broadcom.com +Signed-off-by: Martin K. Petersen +Signed-off-by: Greg Kroah-Hartman +--- + drivers/scsi/mpi3mr/mpi3mr_os.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- a/drivers/scsi/mpi3mr/mpi3mr_os.c ++++ b/drivers/scsi/mpi3mr/mpi3mr_os.c +@@ -781,8 +781,14 @@ void mpi3mr_rfresh_tgtdevs(struct mpi3mr + tgtdev = NULL; + list_for_each_entry(tgtdev, &mrioc->tgtdev_list, list) { + if ((tgtdev->dev_handle != MPI3MR_INVALID_DEV_HANDLE) && +- !tgtdev->is_hidden && !tgtdev->host_exposed) +- mpi3mr_report_tgtdev_to_host(mrioc, tgtdev->perst_id); ++ !tgtdev->is_hidden) { ++ if (!tgtdev->host_exposed) ++ mpi3mr_report_tgtdev_to_host(mrioc, ++ tgtdev->perst_id); ++ else if (tgtdev->starget) ++ starget_for_each_device(tgtdev->starget, ++ (void *)tgtdev, mpi3mr_update_sdev); ++ } + } + } + diff --git a/queue-5.15/series b/queue-5.15/series index ecf809f1e62..d0fbe35724f 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -264,3 +264,12 @@ usb-mon-fix-atomicity-violation-in-mon_bin_vma_fault.patch serial-imx-ensure-that-imx_uart_rs485_config-is-called-with-enabled-clock.patch alsa-oxygen-fix-right-channel-of-capture-volume-mixer.patch alsa-hda-relatek-enable-mute-led-on-hp-laptop-15s-fq2xxx.patch +fbdev-flush-deferred-work-in-fb_deferred_io_fsync.patch +scsi-mpi3mr-refresh-sdev-queue-depth-after-controller-reset.patch +block-add-check-that-partition-length-needs-to-be-aligned-with-block-size.patch +netfilter-nf_tables-check-if-catch-all-set-element-is-active-in-next-generation.patch +pwm-jz4740-don-t-use-dev_err_probe-in-.request.patch +io_uring-rw-ensure-io-bytes_done-is-always-initialized.patch +rootfs-fix-support-for-rootfstype-when-root-is-given.patch +bluetooth-fix-atomicity-violation-in-min-max-_key_size_set.patch +bpf-fix-re-attachment-branch-in-bpf_tracing_prog_attach.patch -- 2.47.3