Skip to content

Commit 06a1b8b

Browse files
committed
Rebuild rocky8_10 with kernel-4.18.0-553.72.1.el8_10
Rebuild_History BUILDABLE Rebuilding Kernel from rpm changelog with Fuzz Limit: 87.50% Number of commits in upstream range v4.18~1..kernel-mainline: 567023 Number of commits in rpm: 61 Number of commits matched with upstream: 54 (88.52%) Number of commits in upstream but not in rpm: 566969 Number of commits NOT found in upstream: 7 (11.48%) Rebuilding Kernel on Branch rocky8_10_rebuild_kernel-4.18.0-553.72.1.el8_10 for kernel-4.18.0-553.72.1.el8_10 Clean Cherry Picks: 35 (64.81%) Empty Cherry Picks: 19 (35.19%) _______________________________ Full Details Located here: ciq/ciq_backports/kernel-4.18.0-553.72.1.el8_10/rebuild.details.txt Includes: * git commit header above * Empty Commits with upstream SHA * RPM ChangeLog Entries that could not be matched Individual Empty Commit failures contained in the same containing directory. The git message for empty commits will have the path for the failed commit. File names are the first 8 characters of the upstream SHA
1 parent 6653155 commit 06a1b8b

34 files changed

+50200
-191
lines changed

Makefile.rhelver

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ RHEL_MINOR = 10
1212
#
1313
# Use this spot to avoid future merge conflicts.
1414
# Do not trim this comment.
15-
RHEL_RELEASE = 553.69.1
15+
RHEL_RELEASE = 553.72.1
1616

1717
#
1818
# ZSTREAM

arch/x86/boot/compressed/eboot.c

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
#include <linux/efi.h>
1212
#include <linux/pci.h>
13+
#include <linux/ctype.h>
1314

1415
#include <asm/efi.h>
1516
#include <asm/e820/types.h>
@@ -863,6 +864,26 @@ static void error(char *str)
863864
efi_printk(sys_table, "\n");
864865
}
865866

867+
static const char *cmdline_memmap_override;
868+
869+
static efi_status_t parse_options(const char *cmdline)
870+
{
871+
static const char opts[][14] = {
872+
"mem=", "memmap=", "efi_fake_mem=", "hugepages="
873+
};
874+
875+
for (int i = 0; i < ARRAY_SIZE(opts); i++) {
876+
const char *p = strstr(cmdline, opts[i]);
877+
878+
if (p == cmdline || (p > cmdline && isspace(p[-1]))) {
879+
cmdline_memmap_override = opts[i];
880+
break;
881+
}
882+
}
883+
884+
return efi_parse_options(cmdline);
885+
}
886+
866887
static efi_status_t efi_decompress_kernel(unsigned long *kernel_entry)
867888
{
868889
unsigned long virt_addr = LOAD_PHYSICAL_ADDR;
@@ -893,6 +914,10 @@ static efi_status_t efi_decompress_kernel(unsigned long *kernel_entry)
893914
if (sys_table->hdr.revision <= EFI_2_00_SYSTEM_TABLE_REVISION &&
894915
!memcmp(efistub_fw_vendor(), ami, sizeof(ami))) {
895916
seed[0] = 0;
917+
} else if (cmdline_memmap_override) {
918+
efi_printk(sys_table,
919+
"cmdline memmap override detected on the kernel command line - disabling physical KASLR\n");
920+
seed[0] = 0;
896921
}
897922

898923
boot_params_ptr->hdr.loadflags |= KASLR_FLAG;
@@ -942,7 +967,6 @@ void __noreturn efi_main(struct efi_config *c,
942967
void *handle;
943968
efi_system_table_t *_table;
944969
bool is64;
945-
unsigned long cmdline_paddr;
946970
extern char _bss[], _ebss[];
947971

948972
/*
@@ -997,9 +1021,22 @@ void __noreturn efi_main(struct efi_config *c,
9971021
* case this is the second time we parse the cmdline. This is ok,
9981022
* parsing the cmdline multiple times does not have side-effects.
9991023
*/
1000-
cmdline_paddr = ((u64)hdr->cmd_line_ptr |
1001-
((u64)boot_params->ext_cmd_line_ptr << 32));
1002-
efi_parse_options((char *)cmdline_paddr);
1024+
#ifdef CONFIG_CMDLINE_BOOL
1025+
status = parse_options(CONFIG_CMDLINE);
1026+
if (status != EFI_SUCCESS) {
1027+
efi_printk(sys_table, "Failed to parse options\n");
1028+
goto fail;
1029+
}
1030+
#endif
1031+
if (!IS_ENABLED(CONFIG_CMDLINE_OVERRIDE)) {
1032+
unsigned long cmdline_paddr = ((u64)hdr->cmd_line_ptr |
1033+
((u64)boot_params->ext_cmd_line_ptr << 32));
1034+
status = parse_options((char *)cmdline_paddr);
1035+
if (status != EFI_SUCCESS) {
1036+
efi_printk(sys_table, "Failed to parse options\n");
1037+
goto fail;
1038+
}
1039+
}
10031040

10041041
status = efi_decompress_kernel(&kernel_entry);
10051042
if (status != EFI_SUCCESS) {

block/blk-mq-debugfs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ static void blk_mq_debugfs_tags_show(struct seq_file *m,
461461
seq_printf(m, "nr_tags=%u\n", tags->nr_tags);
462462
seq_printf(m, "nr_reserved_tags=%u\n", tags->nr_reserved_tags);
463463
seq_printf(m, "active_queues=%d\n",
464-
atomic_read(&tags->active_queues));
464+
READ_ONCE(tags->active_queues));
465465

466466
seq_puts(m, "\nbitmap_tags:\n");
467467
sbitmap_queue_show(tags->bitmap_tags, m);

block/blk-mq-tag.c

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,21 @@
1515
#include "blk-mq-sched.h"
1616
#include "blk-mq-tag.h"
1717

18+
/*
19+
* Recalculate wakeup batch when tag is shared by hctx.
20+
*/
21+
static void blk_mq_update_wake_batch(struct blk_mq_tags *tags,
22+
unsigned int users)
23+
{
24+
if (!users)
25+
return;
26+
27+
sbitmap_queue_recalculate_wake_batch(tags->bitmap_tags,
28+
users);
29+
sbitmap_queue_recalculate_wake_batch(tags->breserved_tags,
30+
users);
31+
}
32+
1833
/*
1934
* If a previously inactive queue goes active, bump the active user count.
2035
* We need to do this before try to allocate driver tag, then even if fail
@@ -23,17 +38,33 @@
2338
*/
2439
bool __blk_mq_tag_busy(struct blk_mq_hw_ctx *hctx)
2540
{
41+
unsigned int users;
42+
unsigned long flags;
43+
struct blk_mq_tags *tags = hctx->tags;
44+
2645
if (blk_mq_is_sbitmap_shared(hctx->flags)) {
2746
struct request_queue *q = hctx->queue;
2847
struct blk_mq_tag_set *set = q->tag_set;
2948

30-
if (!test_bit(QUEUE_FLAG_HCTX_ACTIVE, &q->queue_flags) &&
31-
!test_and_set_bit(QUEUE_FLAG_HCTX_ACTIVE, &q->queue_flags))
32-
atomic_inc(&set->active_queues_shared_sbitmap);
49+
if (test_bit(QUEUE_FLAG_HCTX_ACTIVE, &q->queue_flags) ||
50+
test_and_set_bit(QUEUE_FLAG_HCTX_ACTIVE, &q->queue_flags)) {
51+
return true;
52+
}
53+
spin_lock_irqsave(&set->active_queues_lock, flags);
54+
users = set->active_queues_shared_sbitmap + 1;
55+
WRITE_ONCE(set->active_queues_shared_sbitmap, users);
56+
blk_mq_update_wake_batch(hctx->tags, users);
57+
spin_unlock_irqrestore(&set->active_queues_lock, flags);
3358
} else {
34-
if (!test_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state) &&
35-
!test_and_set_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state))
36-
atomic_inc(&hctx->tags->active_queues);
59+
if (test_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state) ||
60+
test_and_set_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state)) {
61+
return true;
62+
}
63+
spin_lock_irqsave(&tags->lock, flags);
64+
users = hctx->tags->active_queues + 1;
65+
WRITE_ONCE(tags->active_queues, users);
66+
blk_mq_update_wake_batch(tags, users);
67+
spin_unlock_irqrestore(&tags->lock, flags);
3768
}
3869

3970
return true;
@@ -58,16 +89,25 @@ void __blk_mq_tag_idle(struct blk_mq_hw_ctx *hctx)
5889
struct blk_mq_tags *tags = hctx->tags;
5990
struct request_queue *q = hctx->queue;
6091
struct blk_mq_tag_set *set = q->tag_set;
92+
unsigned int users;
6193

6294
if (blk_mq_is_sbitmap_shared(hctx->flags)) {
6395
if (!test_and_clear_bit(QUEUE_FLAG_HCTX_ACTIVE,
6496
&q->queue_flags))
6597
return;
66-
atomic_dec(&set->active_queues_shared_sbitmap);
98+
spin_lock_irq(&set->active_queues_lock);
99+
users = set->active_queues_shared_sbitmap - 1;
100+
WRITE_ONCE(set->active_queues_shared_sbitmap, users);
101+
blk_mq_update_wake_batch(tags, users);
102+
spin_unlock_irq(&set->active_queues_lock);
67103
} else {
68104
if (!test_and_clear_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state))
69105
return;
70-
atomic_dec(&tags->active_queues);
106+
spin_lock_irq(&tags->lock);
107+
users = tags->active_queues - 1;
108+
WRITE_ONCE(tags->active_queues, users);
109+
blk_mq_update_wake_batch(tags, users);
110+
spin_unlock_irq(&tags->lock);
71111
}
72112

73113
blk_mq_tag_wakeup_all(tags, false);

block/blk-mq-tag.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ struct blk_mq_tags {
99
unsigned int nr_tags;
1010
unsigned int nr_reserved_tags;
1111

12+
#ifdef __GENKSYMS__
1213
atomic_t active_queues;
14+
#else
15+
unsigned int active_queues;
16+
#endif
1317

1418
struct sbitmap_queue RH_KABI_RENAME(bitmap_tags, __bitmap_tags);
1519
struct sbitmap_queue RH_KABI_RENAME(breserved_tags, __breserved_tags);

block/blk-mq.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3666,8 +3666,6 @@ int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set)
36663666
goto out_free_mq_map;
36673667

36683668
if (blk_mq_is_sbitmap_shared(set->flags)) {
3669-
atomic_set(&set->active_queues_shared_sbitmap, 0);
3670-
36713669
if (blk_mq_init_shared_sbitmap(set)) {
36723670
ret = -ENOMEM;
36733671
goto out_free_mq_rq_maps;
@@ -3676,6 +3674,7 @@ int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set)
36763674

36773675
mutex_init(&set->tag_list_lock);
36783676
INIT_LIST_HEAD(&set->tag_list);
3677+
spin_lock_init(&set->active_queues_lock);
36793678

36803679
return 0;
36813680

block/blk-mq.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,11 +343,11 @@ static inline bool hctx_may_queue(struct blk_mq_hw_ctx *hctx,
343343

344344
if (!test_bit(QUEUE_FLAG_HCTX_ACTIVE, &q->queue_flags))
345345
return true;
346-
users = atomic_read(&set->active_queues_shared_sbitmap);
346+
users = READ_ONCE(set->active_queues_shared_sbitmap);
347347
} else {
348348
if (!test_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state))
349349
return true;
350-
users = atomic_read(&hctx->tags->active_queues);
350+
users = READ_ONCE(hctx->tags->active_queues);
351351
}
352352

353353
if (!users)
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
Rebuild_History BUILDABLE
2+
Rebuilding Kernel from rpm changelog with Fuzz Limit: 87.50%
3+
Number of commits in upstream range v4.18~1..kernel-mainline: 567023
4+
Number of commits in rpm: 61
5+
Number of commits matched with upstream: 54 (88.52%)
6+
Number of commits in upstream but not in rpm: 566969
7+
Number of commits NOT found in upstream: 7 (11.48%)
8+
9+
Rebuilding Kernel on Branch rocky8_10_rebuild_kernel-4.18.0-553.72.1.el8_10 for kernel-4.18.0-553.72.1.el8_10
10+
Clean Cherry Picks: 35 (64.81%)
11+
Empty Cherry Picks: 19 (35.19%)
12+
_______________________________
13+
14+
__EMPTY COMMITS__________________________
15+
1d6123102e9fbedc8d25bf4731da6d513173e49e Bluetooth: hci_core: Fix use-after-free in vhci_flush()
16+
f80d882edcf242d0256d9e51b09d5fb7a3a0d3b4 gfs2: Get rid of gfs2_glock_queue_put in signal_our_withdraw
17+
deb016c1669002e48c431d6fd32ea1c20ef41756 gfs2: No more self recovery
18+
ae9f3bd8259a0a8f67be2420e66bb05fbb95af48 gfs2: replace sd_aspace with sd_inode
19+
df207de9d9e7a4d92f8567e2c539d9c8c12fd99d udp: Fix memory accounting leak.
20+
180dccb0dba4f5e84a4a70c1be1d34cbb6528b32 blk-mq: fix tag_get wait task can't be awakened
21+
10825410b956dc1ed8c5fbc8bbedaffdadde7f20 blk-mq: Fix wrong wakeup batch configuration which will cause hang
22+
4f8126bb2308066b877859e4b5923ffb54143630 sbitmap: Use single per-bitmap counting to wake up queued tags
23+
976570b4ecd30d3ec6e1b0910da8e5edc591f2b6 sbitmap: Advance the queue index before waking up a queue
24+
26edb30dd1c0c9be11fa676b4f330ada7b794ba6 sbitmap: Try each queue to wake up at least one waiter
25+
b5fcf7871acb7f9a3a8ed341a68bd86aba3e254a sbitmap: correct wake_batch recalculation to avoid potential IO hung
26+
106397376c0369fcc01c58dd189ff925a2724a57 sbitmap: fix batching wakeup
27+
72d04bdcf3f7d7e07d82f9757946f68802a7270a sbitmap: fix io hung due to race on sbitmap_word::cleared
28+
65f666c6203600053478ce8e34a1db269a8701c9 lib/sbitmap: define swap_lock as raw_spinlock_t
29+
4f1731df60f9033669f024d06ae26a6301260b55 blk-mq: fix potential io hang by wrong 'wake_batch'
30+
b313a8c835516bdda85025500be866ac8a74e022 block: Fix lockdep warning in blk_mq_mark_tag_wait
31+
7dde67f2a23ac11962b17128d9a71698430ced95 efi/x86: Support builtin command line
32+
055042bedd4e0af8186266b189b81e73e708b82b efi/libstub: Check return value of efi_parse_options
33+
15aa8fb852f995dd234a57f12dfb989044968bb6 x86/efistub: Omit physical KASLR when memory reservations exist
34+
35+
__CHANGES NOT IN UPSTREAM________________
36+
Adding prod certs and changed cert date to 20210620
37+
Adding Rocky secure boot certs
38+
Fixing vmlinuz removal
39+
Fixing UEFI CA path
40+
Porting to 8.10, debranding and Rocky branding
41+
Fixing pesign_key_name values
42+
aacraid: fix a buffer overflow

0 commit comments

Comments
 (0)