Import of kernel-6.12.0-211.42.1.el10_2
This commit is contained in:
parent
a435f44323
commit
bc4d56d649
@ -12,7 +12,7 @@ RHEL_MINOR = 2
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 211.40.1
|
||||
RHEL_RELEASE = 211.42.1
|
||||
|
||||
#
|
||||
# RHEL_REBASE_NUM
|
||||
|
||||
@ -584,6 +584,9 @@ dpll_msg_add_pin_ref_sync(struct sk_buff *msg, struct dpll_pin *pin,
|
||||
if (!dpll_pin_available(ref_sync_pin))
|
||||
continue;
|
||||
ref_sync_pin_priv = dpll_pin_on_dpll_priv(dpll, ref_sync_pin);
|
||||
/* Pin may have been unregistered from this dpll already */
|
||||
if (!ref_sync_pin_priv)
|
||||
continue;
|
||||
if (WARN_ON(!ops->ref_sync_get))
|
||||
return -EOPNOTSUPP;
|
||||
ret = ops->ref_sync_get(pin, pin_priv, ref_sync_pin,
|
||||
|
||||
@ -101,6 +101,15 @@ static int rock_continue(struct rock_state *rs)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if ((unsigned)rs->cont_extent >= ISOFS_SB(rs->inode->i_sb)->s_nzones) {
|
||||
printk(KERN_NOTICE "rock: corrupted directory entry. "
|
||||
"extent=%u out of volume (nzones=%lu)\n",
|
||||
(unsigned)rs->cont_extent,
|
||||
ISOFS_SB(rs->inode->i_sb)->s_nzones);
|
||||
ret = -EIO;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (rs->cont_extent) {
|
||||
struct buffer_head *bh;
|
||||
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
|
||||
kernel.almalinux,1,AlmaLinux,kernel-core,6.12.0-211.40.1.el10.x86_64,mailto:security@almalinux.org
|
||||
kernel.almalinux,1,AlmaLinux,kernel-core,6.12.0-211.42.1.el10.x86_64,mailto:security@almalinux.org
|
||||
|
||||
113
mm/ksm.c
113
mm/ksm.c
@ -2447,6 +2447,95 @@ static bool should_skip_rmap_item(struct folio *folio,
|
||||
return true;
|
||||
}
|
||||
|
||||
struct ksm_next_page_arg {
|
||||
struct folio *folio;
|
||||
struct page *page;
|
||||
unsigned long addr;
|
||||
};
|
||||
|
||||
static int ksm_next_page_pmd_entry(pmd_t *pmdp, unsigned long addr, unsigned long end,
|
||||
struct mm_walk *walk)
|
||||
{
|
||||
struct ksm_next_page_arg *private = walk->private;
|
||||
struct vm_area_struct *vma = walk->vma;
|
||||
pte_t *start_ptep = NULL, *ptep, pte;
|
||||
struct mm_struct *mm = walk->mm;
|
||||
struct folio *folio;
|
||||
struct page *page;
|
||||
spinlock_t *ptl;
|
||||
pmd_t pmd;
|
||||
|
||||
if (ksm_test_exit(mm))
|
||||
return 0;
|
||||
|
||||
cond_resched();
|
||||
|
||||
pmd = pmdp_get_lockless(pmdp);
|
||||
if (!pmd_present(pmd))
|
||||
return 0;
|
||||
|
||||
if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && pmd_leaf(pmd)) {
|
||||
ptl = pmd_lock(mm, pmdp);
|
||||
pmd = pmdp_get(pmdp);
|
||||
|
||||
if (!pmd_present(pmd)) {
|
||||
goto not_found_unlock;
|
||||
} else if (pmd_leaf(pmd)) {
|
||||
page = vm_normal_page_pmd(vma, addr, pmd);
|
||||
if (!page)
|
||||
goto not_found_unlock;
|
||||
folio = page_folio(page);
|
||||
|
||||
if (folio_is_zone_device(folio) || !folio_test_anon(folio))
|
||||
goto not_found_unlock;
|
||||
|
||||
page += ((addr & (PMD_SIZE - 1)) >> PAGE_SHIFT);
|
||||
goto found_unlock;
|
||||
}
|
||||
spin_unlock(ptl);
|
||||
}
|
||||
|
||||
start_ptep = pte_offset_map_lock(mm, pmdp, addr, &ptl);
|
||||
if (!start_ptep)
|
||||
return 0;
|
||||
|
||||
for (ptep = start_ptep; addr < end; ptep++, addr += PAGE_SIZE) {
|
||||
pte = ptep_get(ptep);
|
||||
|
||||
if (!pte_present(pte))
|
||||
continue;
|
||||
|
||||
page = vm_normal_page(vma, addr, pte);
|
||||
if (!page)
|
||||
continue;
|
||||
folio = page_folio(page);
|
||||
|
||||
if (folio_is_zone_device(folio) || !folio_test_anon(folio))
|
||||
continue;
|
||||
goto found_unlock;
|
||||
}
|
||||
|
||||
not_found_unlock:
|
||||
spin_unlock(ptl);
|
||||
if (start_ptep)
|
||||
pte_unmap(start_ptep);
|
||||
return 0;
|
||||
found_unlock:
|
||||
folio_get(folio);
|
||||
spin_unlock(ptl);
|
||||
if (start_ptep)
|
||||
pte_unmap(start_ptep);
|
||||
private->page = page;
|
||||
private->folio = folio;
|
||||
private->addr = addr;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static struct mm_walk_ops ksm_next_page_ops = {
|
||||
.pmd_entry = ksm_next_page_pmd_entry,
|
||||
.walk_lock = PGWALK_RDLOCK,
|
||||
};
|
||||
|
||||
static struct ksm_rmap_item *scan_get_next_rmap_item(struct page **page)
|
||||
{
|
||||
struct mm_struct *mm;
|
||||
@ -2534,21 +2623,27 @@ next_mm:
|
||||
ksm_scan.address = vma->vm_end;
|
||||
|
||||
while (ksm_scan.address < vma->vm_end) {
|
||||
struct ksm_next_page_arg ksm_next_page_arg;
|
||||
struct page *tmp_page = NULL;
|
||||
struct folio_walk fw;
|
||||
struct folio *folio;
|
||||
|
||||
if (ksm_test_exit(mm))
|
||||
break;
|
||||
|
||||
folio = folio_walk_start(&fw, vma, ksm_scan.address, 0);
|
||||
if (folio) {
|
||||
if (!folio_is_zone_device(folio) &&
|
||||
folio_test_anon(folio)) {
|
||||
folio_get(folio);
|
||||
tmp_page = fw.page;
|
||||
}
|
||||
folio_walk_end(&fw, vma);
|
||||
int found;
|
||||
|
||||
found = walk_page_range_vma(vma, ksm_scan.address,
|
||||
vma->vm_end,
|
||||
&ksm_next_page_ops,
|
||||
&ksm_next_page_arg);
|
||||
|
||||
if (found > 0) {
|
||||
folio = ksm_next_page_arg.folio;
|
||||
tmp_page = ksm_next_page_arg.page;
|
||||
ksm_scan.address = ksm_next_page_arg.addr;
|
||||
} else {
|
||||
VM_WARN_ON_ONCE(found < 0);
|
||||
ksm_scan.address = vma->vm_end - PAGE_SIZE;
|
||||
}
|
||||
|
||||
if (tmp_page) {
|
||||
|
||||
@ -4049,6 +4049,9 @@ struct sk_buff *tcf_qevent_handle(struct tcf_qevent *qe, struct Qdisc *sch, stru
|
||||
skb_do_redirect(skb);
|
||||
*ret = __NET_XMIT_STOLEN;
|
||||
return NULL;
|
||||
case TC_ACT_CONSUMED:
|
||||
*ret = __NET_XMIT_STOLEN;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return skb;
|
||||
|
||||
@ -1,3 +1,14 @@
|
||||
* Wed Jul 29 2026 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [6.12.0-211.42.1.el10_2]
|
||||
- net/sched: cls_api: Handle TC_ACT_CONSUMED in tcf_qevent_handle (CKI Backport Bot) [RHEL-214082] {CVE-2026-64530}
|
||||
- ksm: use range-walk function to jump over holes in scan_get_next_rmap_item (Rafael Aquini) [RHEL-189554] {CVE-2025-68211}
|
||||
- isofs: validate Rock Ridge CE continuation extent against volume size (CKI Backport Bot) [RHEL-187415] {CVE-2026-46303}
|
||||
Resolves: RHEL-187415, RHEL-189554, RHEL-214082
|
||||
|
||||
* Tue Jul 28 2026 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [6.12.0-211.41.1.el10_2]
|
||||
- dpll: fix NULL pointer dereference in dpll_msg_add_pin_ref_sync() (CKI Backport Bot) [RHEL-212063]
|
||||
- ASoC: Intel: sof_sdw: append dai type to dai link name unconditionally (CKI Backport Bot) [RHEL-185669]
|
||||
Resolves: RHEL-185669, RHEL-212063
|
||||
|
||||
* Mon Jul 27 2026 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [6.12.0-211.40.1.el10_2]
|
||||
- ipv6: fix possible UAF in icmpv6_rcv() (CKI Backport Bot) [RHEL-192215] {CVE-2026-53006}
|
||||
- tipc: fix double-free in tipc_buf_append() (CKI Backport Bot) [RHEL-192181] {CVE-2026-52993}
|
||||
|
||||
@ -893,10 +893,16 @@ static int create_sdw_dailink(struct snd_soc_card *card,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* The dai_type is used to select function topologies. Since the topology stream name
|
||||
* and DAI link name use partial matching, unconditionally appending the dai_type provides
|
||||
* necessary selection metadata without breaking existing topologies. Although
|
||||
* ctx->append_dai_type is not checked here, we overwrite it to ensure consistency in case
|
||||
* it is referenced elsewhere.
|
||||
*/
|
||||
ctx->append_dai_type = true;
|
||||
for_each_pcm_streams(stream) {
|
||||
static const char * const sdw_stream_name[] = {
|
||||
"SDW%d-Playback",
|
||||
"SDW%d-Capture",
|
||||
"SDW%d-Playback-%s",
|
||||
"SDW%d-Capture-%s",
|
||||
};
|
||||
@ -924,15 +930,10 @@ static int create_sdw_dailink(struct snd_soc_card *card,
|
||||
}
|
||||
|
||||
/* create stream name according to first link id */
|
||||
if (ctx->append_dai_type)
|
||||
name = devm_kasprintf(dev, GFP_KERNEL,
|
||||
sdw_stream_name[stream + 2],
|
||||
ffs(sof_end->link_mask) - 1,
|
||||
type_strings[sof_end->dai_info->dai_type]);
|
||||
else
|
||||
name = devm_kasprintf(dev, GFP_KERNEL,
|
||||
sdw_stream_name[stream],
|
||||
ffs(sof_end->link_mask) - 1);
|
||||
name = devm_kasprintf(dev, GFP_KERNEL,
|
||||
sdw_stream_name[stream],
|
||||
ffs(sof_end->link_mask) - 1,
|
||||
type_strings[sof_end->dai_info->dai_type]);
|
||||
if (!name)
|
||||
return -ENOMEM;
|
||||
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
|
||||
kernel-uki-virt-addons.almalinux,1,AlmaLinux,kernel-uki-virt-addons,6.12.0-211.40.1.el10.x86_64,mailto:security@almalinux.org
|
||||
kernel-uki-virt-addons.almalinux,1,AlmaLinux,kernel-uki-virt-addons,6.12.0-211.42.1.el10.x86_64,mailto:security@almalinux.org
|
||||
|
||||
2
uki.sbat
2
uki.sbat
@ -1,2 +1,2 @@
|
||||
sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
|
||||
kernel-uki-virt.almalinux,1,AlmaLinux,kernel-uki-virt,6.12.0-211.40.1.el10.x86_64,mailto:security@almalinux.org
|
||||
kernel-uki-virt.almalinux,1,AlmaLinux,kernel-uki-virt,6.12.0-211.42.1.el10.x86_64,mailto:security@almalinux.org
|
||||
|
||||
Loading…
Reference in New Issue
Block a user