Skip to content

Commit d513f44

Browse files
committed
Merge tag 'kernel-6.12.0-55.9.1.el10_0' into main
JIRA: INTERNAL Upstream Status: RHEL only Omit changes to Makefile.rhelver, 10.0 KABI (but include mm struct padding) and d67259e ("Revert "smb: client: fix chmod(2) regression with ATTR_READONLY""). Signed-off-by: Jan Stancek <jstancek@redhat.com>
2 parents 3db4052 + c36135c commit d513f44

File tree

26 files changed

+179
-26
lines changed

26 files changed

+179
-26
lines changed

crypto/api.c

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ EXPORT_SYMBOL_GPL(crypto_chain);
3636
DEFINE_STATIC_KEY_FALSE(__crypto_boot_test_finished);
3737
#endif
3838

39-
static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg);
39+
static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg,
40+
u32 type, u32 mask);
4041
static struct crypto_alg *crypto_alg_lookup(const char *name, u32 type,
4142
u32 mask);
4243

@@ -145,7 +146,7 @@ static struct crypto_alg *crypto_larval_add(const char *name, u32 type,
145146
if (alg != &larval->alg) {
146147
kfree(larval);
147148
if (crypto_is_larval(alg))
148-
alg = crypto_larval_wait(alg);
149+
alg = crypto_larval_wait(alg, type, mask);
149150
}
150151

151152
return alg;
@@ -197,7 +198,8 @@ static void crypto_start_test(struct crypto_larval *larval)
197198
crypto_schedule_test(larval);
198199
}
199200

200-
static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg)
201+
static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg,
202+
u32 type, u32 mask)
201203
{
202204
struct crypto_larval *larval;
203205
long time_left;
@@ -219,12 +221,7 @@ static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg)
219221
crypto_larval_kill(larval);
220222
alg = ERR_PTR(-ETIMEDOUT);
221223
} else if (!alg) {
222-
u32 type;
223-
u32 mask;
224-
225224
alg = &larval->alg;
226-
type = alg->cra_flags & ~(CRYPTO_ALG_LARVAL | CRYPTO_ALG_DEAD);
227-
mask = larval->mask;
228225
alg = crypto_alg_lookup(alg->cra_name, type, mask) ?:
229226
ERR_PTR(-EAGAIN);
230227
} else if (IS_ERR(alg))
@@ -304,7 +301,7 @@ static struct crypto_alg *crypto_larval_lookup(const char *name, u32 type,
304301
}
305302

306303
if (!IS_ERR_OR_NULL(alg) && crypto_is_larval(alg))
307-
alg = crypto_larval_wait(alg);
304+
alg = crypto_larval_wait(alg, type, mask);
308305
else if (alg)
309306
;
310307
else if (!(mask & CRYPTO_ALG_TESTED))
@@ -352,7 +349,7 @@ struct crypto_alg *crypto_alg_mod_lookup(const char *name, u32 type, u32 mask)
352349
ok = crypto_probing_notify(CRYPTO_MSG_ALG_REQUEST, larval);
353350

354351
if (ok == NOTIFY_STOP)
355-
alg = crypto_larval_wait(larval);
352+
alg = crypto_larval_wait(larval, type, mask);
356353
else {
357354
crypto_mod_put(larval);
358355
alg = ERR_PTR(-ENOENT);

drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// SPDX-License-Identifier: GPL-2.0-only
2+
#include <linux/iommu.h>
23
#include <linux/platform_device.h>
34
#include <linux/of.h>
45
#include <linux/module.h>
@@ -19,6 +20,8 @@ struct tegra_mgbe {
1920
struct reset_control *rst_mac;
2021
struct reset_control *rst_pcs;
2122

23+
u32 iommu_sid;
24+
2225
void __iomem *hv;
2326
void __iomem *regs;
2427
void __iomem *xpcs;
@@ -50,7 +53,6 @@ struct tegra_mgbe {
5053
#define MGBE_WRAP_COMMON_INTR_ENABLE 0x8704
5154
#define MAC_SBD_INTR BIT(2)
5255
#define MGBE_WRAP_AXI_ASID0_CTRL 0x8400
53-
#define MGBE_SID 0x6
5456

5557
static int __maybe_unused tegra_mgbe_suspend(struct device *dev)
5658
{
@@ -84,7 +86,7 @@ static int __maybe_unused tegra_mgbe_resume(struct device *dev)
8486
writel(MAC_SBD_INTR, mgbe->regs + MGBE_WRAP_COMMON_INTR_ENABLE);
8587

8688
/* Program SID */
87-
writel(MGBE_SID, mgbe->hv + MGBE_WRAP_AXI_ASID0_CTRL);
89+
writel(mgbe->iommu_sid, mgbe->hv + MGBE_WRAP_AXI_ASID0_CTRL);
8890

8991
value = readl(mgbe->xpcs + XPCS_WRAP_UPHY_STATUS);
9092
if ((value & XPCS_WRAP_UPHY_STATUS_TX_P_UP) == 0) {
@@ -241,6 +243,12 @@ static int tegra_mgbe_probe(struct platform_device *pdev)
241243
if (IS_ERR(mgbe->xpcs))
242244
return PTR_ERR(mgbe->xpcs);
243245

246+
/* get controller's stream id from iommu property in device tree */
247+
if (!tegra_dev_iommu_get_stream_id(mgbe->dev, &mgbe->iommu_sid)) {
248+
dev_err(mgbe->dev, "failed to get iommu stream id\n");
249+
return -EINVAL;
250+
}
251+
244252
res.addr = mgbe->regs;
245253
res.irq = irq;
246254

@@ -346,7 +354,7 @@ static int tegra_mgbe_probe(struct platform_device *pdev)
346354
writel(MAC_SBD_INTR, mgbe->regs + MGBE_WRAP_COMMON_INTR_ENABLE);
347355

348356
/* Program SID */
349-
writel(MGBE_SID, mgbe->hv + MGBE_WRAP_AXI_ASID0_CTRL);
357+
writel(mgbe->iommu_sid, mgbe->hv + MGBE_WRAP_AXI_ASID0_CTRL);
350358

351359
plat->flags |= STMMAC_FLAG_SERDES_UP_AFTER_PHY_LINKUP;
352360

include/linux/bpf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ struct bpf_map {
276276
u32 btf_vmlinux_value_type_id;
277277
struct btf *btf;
278278
#ifdef CONFIG_MEMCG
279-
struct obj_cgroup *objcg;
279+
RH_KABI_EXCLUDE(struct obj_cgroup *objcg)
280280
#endif
281281
char name[BPF_OBJ_NAME_LEN];
282282
struct mutex freeze_mutex;

include/linux/bpf_mem_alloc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ struct bpf_mem_caches;
1111
struct bpf_mem_alloc {
1212
struct bpf_mem_caches __percpu *caches;
1313
struct bpf_mem_cache __percpu *cache;
14-
struct obj_cgroup *objcg;
14+
RH_KABI_EXCLUDE(struct obj_cgroup *objcg)
1515
bool percpu;
1616
struct work_struct work;
1717
};

include/linux/fsnotify_backend.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ struct fsnotify_group {
232232
* notification list is too
233233
* full */
234234

235-
struct mem_cgroup *memcg; /* memcg to charge allocations */
235+
RH_KABI_EXCLUDE(struct mem_cgroup *memcg) /* memcg to charge allocations */
236236

237237
/* groups can define private fields here or use the void *private */
238238
union {

include/linux/mempolicy.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ struct mempolicy {
5454
nodemask_t cpuset_mems_allowed; /* relative to these nodes */
5555
nodemask_t user_nodemask; /* nodemask passed by user */
5656
} w;
57+
RH_KABI_RESERVE(1)
58+
RH_KABI_RESERVE(2)
5759
};
5860

5961
/*

include/linux/mempool.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ typedef struct mempool_s {
2525
mempool_alloc_t *alloc;
2626
mempool_free_t *free;
2727
wait_queue_head_t wait;
28+
RH_KABI_RESERVE(1)
29+
RH_KABI_RESERVE(2)
30+
RH_KABI_RESERVE(3)
2831
} mempool_t;
2932

3033
static inline bool mempool_initialized(mempool_t *pool)

include/linux/memremap.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ struct vmem_altmap {
2626
unsigned long align;
2727
unsigned long alloc;
2828
bool inaccessible;
29+
RH_KABI_RESERVE(1)
2930
};
3031

3132
/*

include/linux/mm.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,9 @@ struct vm_fault {
588588
* page table to avoid allocation from
589589
* atomic context.
590590
*/
591+
592+
RH_KABI_RESERVE(1)
593+
RH_KABI_RESERVE(2)
591594
};
592595

593596
/*
@@ -2413,6 +2416,7 @@ struct follow_pfnmap_args {
24132416
pgprot_t pgprot;
24142417
bool writable;
24152418
bool special;
2419+
RH_KABI_RESERVE(1)
24162420
};
24172421
int follow_pfnmap_start(struct follow_pfnmap_args *args);
24182422
void follow_pfnmap_end(struct follow_pfnmap_args *args);

include/linux/mm_types.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,7 @@ struct page_frag_cache {
555555
*/
556556
unsigned int pagecnt_bias;
557557
bool pfmemalloc;
558+
RH_KABI_RESERVE(1)
558559
};
559560

560561
typedef unsigned long vm_flags_t;
@@ -1026,12 +1027,15 @@ struct mm_struct {
10261027
unsigned long bitmap;
10271028
#ifdef CONFIG_MEMCG
10281029
/* points to the memcg of "owner" above */
1029-
struct mem_cgroup *memcg;
1030+
RH_KABI_EXCLUDE(struct mem_cgroup *memcg)
10301031
#endif
10311032
} lru_gen;
10321033
#endif /* CONFIG_LRU_GEN_WALKS_MMU */
10331034
} __randomize_layout;
1034-
1035+
RH_KABI_RESERVE(1)
1036+
RH_KABI_RESERVE(2)
1037+
RH_KABI_RESERVE(3)
1038+
RH_KABI_RESERVE(4)
10351039
/*
10361040
* The mm_cpumask needs to be at the end of mm_struct, because it
10371041
* is dynamically sized based on nr_cpu_ids.

0 commit comments

Comments
 (0)