+++ /dev/null
-From 6bfe3959b0e7a526f5c64747801a8613f002f05a Mon Sep 17 00:00:00 2001
-From: Anand Jain <anand.jain@oracle.com>
-Date: Mon, 31 Jul 2023 19:16:35 +0800
-Subject: btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super
-
-From: Anand Jain <anand.jain@oracle.com>
-
-commit 6bfe3959b0e7a526f5c64747801a8613f002f05a upstream.
-
-The function btrfs_validate_super() should verify the metadata_uuid in
-the provided superblock argument. Because, all its callers expect it to
-do that.
-
-Such as in the following stacks:
-
- write_all_supers()
- sb = fs_info->super_for_commit;
- btrfs_validate_write_super(.., sb)
- btrfs_validate_super(.., sb, ..)
-
- scrub_one_super()
- btrfs_validate_super(.., sb, ..)
-
-And
- check_dev_super()
- btrfs_validate_super(.., sb, ..)
-
-However, it currently verifies the fs_info::super_copy::metadata_uuid
-instead. Fix this using the correct metadata_uuid in the superblock
-argument.
-
-CC: stable@vger.kernel.org # 5.4+
-Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
-Tested-by: Guilherme G. Piccoli <gpiccoli@igalia.com>
-Signed-off-by: Anand Jain <anand.jain@oracle.com>
-Reviewed-by: David Sterba <dsterba@suse.com>
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- fs/btrfs/disk-io.c | 8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
---- a/fs/btrfs/disk-io.c
-+++ b/fs/btrfs/disk-io.c
-@@ -2605,13 +2605,11 @@ int btrfs_validate_super(struct btrfs_fs
- ret = -EINVAL;
- }
-
-- if (btrfs_fs_incompat(fs_info, METADATA_UUID) &&
-- memcmp(fs_info->fs_devices->metadata_uuid,
-- fs_info->super_copy->metadata_uuid, BTRFS_FSID_SIZE)) {
-+ if (memcmp(fs_info->fs_devices->metadata_uuid, btrfs_sb_fsid_ptr(sb),
-+ BTRFS_FSID_SIZE) != 0) {
- btrfs_err(fs_info,
- "superblock metadata_uuid doesn't match metadata uuid of fs_devices: %pU != %pU",
-- fs_info->super_copy->metadata_uuid,
-- fs_info->fs_devices->metadata_uuid);
-+ btrfs_sb_fsid_ptr(sb), fs_info->fs_devices->metadata_uuid);
- ret = -EINVAL;
- }
-
+++ /dev/null
-From a6496849671a5bc9218ecec25a983253b34351b1 Mon Sep 17 00:00:00 2001
-From: Boris Burkov <boris@bur.io>
-Date: Fri, 21 Jul 2023 09:02:07 -0700
-Subject: btrfs: fix start transaction qgroup rsv double free
-
-From: Boris Burkov <boris@bur.io>
-
-commit a6496849671a5bc9218ecec25a983253b34351b1 upstream.
-
-btrfs_start_transaction reserves metadata space of the PERTRANS type
-before it identifies a transaction to start/join. This allows flushing
-when reserving that space without a deadlock. However, it results in a
-race which temporarily breaks qgroup rsv accounting.
-
-T1 T2
-start_transaction
-do_stuff
- start_transaction
- qgroup_reserve_meta_pertrans
-commit_transaction
- qgroup_free_meta_all_pertrans
- hit an error starting txn
- goto reserve_fail
- qgroup_free_meta_pertrans (already freed!)
-
-The basic issue is that there is nothing preventing another commit from
-committing before start_transaction finishes (in fact sometimes we
-intentionally wait for it) so any error path that frees the reserve is
-at risk of this race.
-
-While this exact space was getting freed anyway, and it's not a huge
-deal to double free it (just a warning, the free code catches this), it
-can result in incorrectly freeing some other pertrans reservation in
-this same reservation, which could then lead to spuriously granting
-reservations we might not have the space for. Therefore, I do believe it
-is worth fixing.
-
-To fix it, use the existing prealloc->pertrans conversion mechanism.
-When we first reserve the space, we reserve prealloc space and only when
-we are sure we have a transaction do we convert it to pertrans. This way
-any racing commits do not blow away our reservation, but we still get a
-pertrans reservation that is freed when _this_ transaction gets committed.
-
-This issue can be reproduced by running generic/269 with either qgroups
-or squotas enabled via mkfs on the scratch device.
-
-Reviewed-by: Josef Bacik <josef@toxicpanda.com>
-CC: stable@vger.kernel.org # 5.10+
-Signed-off-by: Boris Burkov <boris@bur.io>
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- fs/btrfs/transaction.c | 19 ++++++++++++++++---
- 1 file changed, 16 insertions(+), 3 deletions(-)
-
---- a/fs/btrfs/transaction.c
-+++ b/fs/btrfs/transaction.c
-@@ -605,8 +605,13 @@ start_transaction(struct btrfs_root *roo
- u64 delayed_refs_bytes = 0;
-
- qgroup_reserved = num_items * fs_info->nodesize;
-- ret = btrfs_qgroup_reserve_meta_pertrans(root, qgroup_reserved,
-- enforce_qgroups);
-+ /*
-+ * Use prealloc for now, as there might be a currently running
-+ * transaction that could free this reserved space prematurely
-+ * by committing.
-+ */
-+ ret = btrfs_qgroup_reserve_meta_prealloc(root, qgroup_reserved,
-+ enforce_qgroups, false);
- if (ret)
- return ERR_PTR(ret);
-
-@@ -719,6 +724,14 @@ again:
- h->reloc_reserved = reloc_reserved;
- }
-
-+ /*
-+ * Now that we have found a transaction to be a part of, convert the
-+ * qgroup reservation from prealloc to pertrans. A different transaction
-+ * can't race in and free our pertrans out from under us.
-+ */
-+ if (qgroup_reserved)
-+ btrfs_qgroup_convert_reserved_meta(root, qgroup_reserved);
-+
- got_it:
- if (!current->journal_info)
- current->journal_info = h;
-@@ -766,7 +779,7 @@ alloc_fail:
- btrfs_block_rsv_release(fs_info, &fs_info->trans_block_rsv,
- num_bytes, NULL);
- reserve_fail:
-- btrfs_qgroup_free_meta_pertrans(root, qgroup_reserved);
-+ btrfs_qgroup_free_meta_prealloc(root, qgroup_reserved);
- return ERR_PTR(ret);
- }
-
+++ /dev/null
-From 57a943ebfcdb4a97fbb409640234bdb44bfa1953 Mon Sep 17 00:00:00 2001
-From: Melissa Wen <mwen@igalia.com>
-Date: Thu, 31 Aug 2023 15:12:28 -0100
-Subject: drm/amd/display: enable cursor degamma for DCN3+ DRM legacy gamma
-
-From: Melissa Wen <mwen@igalia.com>
-
-commit 57a943ebfcdb4a97fbb409640234bdb44bfa1953 upstream.
-
-For DRM legacy gamma, AMD display manager applies implicit sRGB degamma
-using a pre-defined sRGB transfer function. It works fine for DCN2
-family where degamma ROM and custom curves go to the same color block.
-But, on DCN3+, degamma is split into two blocks: degamma ROM for
-pre-defined TFs and `gamma correction` for user/custom curves and
-degamma ROM settings doesn't apply to cursor plane. To get DRM legacy
-gamma working as expected, enable cursor degamma ROM for implict sRGB
-degamma on HW with this configuration.
-
-Cc: stable@vger.kernel.org
-Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2803
-Fixes: 96b020e2163f ("drm/amd/display: check attr flag before set cursor degamma on DCN3+")
-Signed-off-by: Melissa Wen <mwen@igalia.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
-index 2198df96ed6f..cc74dd69acf2 100644
---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
-+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
-@@ -1269,6 +1269,13 @@ void amdgpu_dm_plane_handle_cursor_update(struct drm_plane *plane,
- attributes.rotation_angle = 0;
- attributes.attribute_flags.value = 0;
-
-+ /* Enable cursor degamma ROM on DCN3+ for implicit sRGB degamma in DRM
-+ * legacy gamma setup.
-+ */
-+ if (crtc_state->cm_is_degamma_srgb &&
-+ adev->dm.dc->caps.color.dpp.gamma_corr)
-+ attributes.attribute_flags.bits.ENABLE_CURSOR_DEGAMMA = 1;
-+
- attributes.pitch = afb->base.pitches[0] / afb->base.format->cpp[0];
-
- if (crtc_state->stream) {
---
-2.42.0
-
ata-sata_gemini-add-missing-module_description.patch
ata-pata_ftide010-add-missing-module_description.patch
fuse-nlookup-missing-decrement-in-fuse_direntplus_link.patch
-btrfs-fix-start-transaction-qgroup-rsv-double-free.patch
btrfs-free-qgroup-rsv-on-io-failure.patch
btrfs-don-t-start-transaction-when-joining-with-trans_join_nostart.patch
btrfs-use-the-correct-superblock-to-compare-fsid-in-btrfs_validate_super.patch
-btrfs-compare-the-correct-fsid-metadata_uuid-in-btrfs_validate_super.patch
mtd-rawnand-brcmnand-fix-crash-during-the-panic_write.patch
mtd-rawnand-brcmnand-fix-potential-out-of-bounds-access-in-oob-write.patch
mtd-rawnand-brcmnand-fix-potential-false-time-out-warning.patch
perf-hists-browser-fix-hierarchy-mode-header.patch
perf-tools-handle-old-data-in-perf_record_attr.patch
perf-hists-browser-fix-the-number-of-entries-for-e-key.patch
-drm-amd-display-enable-cursor-degamma-for-dcn3-drm-legacy-gamma.patch