Import of kernel-4.18.0-553.139.1.el8_10
This commit is contained in:
parent
52184f2a5c
commit
305888fa06
@ -12,7 +12,7 @@ RHEL_MINOR = 10
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 553.137.1
|
||||
RHEL_RELEASE = 553.139.1
|
||||
|
||||
#
|
||||
# ZSTREAM
|
||||
|
||||
@ -89,7 +89,7 @@ $(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE
|
||||
|
||||
SETUP_OBJS = $(addprefix $(obj)/,$(setup-y))
|
||||
|
||||
sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [ABCDGRSTVW] \(startup_32\|efi32_stub_entry\|efi64_stub_entry\|efi_pe_entry\|input_data\|_end\|_ehead\|_text\|_e\?data\|z_.*\)$$/\#define ZO_\2 0x\1/p'
|
||||
sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [ABCDGRSTVW] \(startup_32\|efi32_stub_entry\|efi64_stub_entry\|efi_pe_entry\|input_data\|_end\|_ehead\|_text\|_e\?data\|_e\?sbat\|z_.*\)$$/\#define ZO_\2 0x\1/p'
|
||||
|
||||
quiet_cmd_zoffset = ZOFFSET $@
|
||||
cmd_zoffset = $(NM) $< | sed -n $(sed-zoffset) > $@
|
||||
|
||||
@ -104,6 +104,13 @@ vmlinux-objs-$(CONFIG_EFI_STUB) += $(obj)/eboot.o $(obj)/efi_stub_$(BITS).o \
|
||||
vmlinux-objs-$(CONFIG_EFI) += $(obj)/efi.o
|
||||
vmlinux-objs-$(CONFIG_EFI_MIXED) += $(obj)/efi_thunk_$(BITS).o
|
||||
|
||||
vmlinux-objs-$(CONFIG_EFI_SBAT) += $(obj)/sbat.o
|
||||
|
||||
ifdef CONFIG_EFI_SBAT
|
||||
$(obj)/sbat.o: $(patsubst "%",%,$(CONFIG_EFI_SBAT_FILE))
|
||||
AFLAGS_sbat.o += -I $(srctree)
|
||||
endif
|
||||
|
||||
# The compressed kernel is built with -fPIC/-fPIE so that a boot loader
|
||||
# can place it anywhere in memory and it will still run. However, since
|
||||
# it is executed as-is without any ELF relocation processing performed
|
||||
|
||||
7
arch/x86/boot/compressed/sbat.S
Normal file
7
arch/x86/boot/compressed/sbat.S
Normal file
@ -0,0 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Embed SBAT data in the kernel.
|
||||
*/
|
||||
.pushsection ".sbat", "a", @progbits
|
||||
.incbin CONFIG_EFI_SBAT_FILE
|
||||
.popsection
|
||||
@ -55,6 +55,14 @@ SECTIONS
|
||||
*(.got.plt)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_EFI_SBAT
|
||||
.sbat : ALIGN(0x1000) {
|
||||
_sbat = . ;
|
||||
*(.sbat)
|
||||
_esbat = ALIGN(0x1000);
|
||||
. = _esbat;
|
||||
}
|
||||
#endif
|
||||
.data : ALIGN(0x1000) {
|
||||
_data = . ;
|
||||
*(.data)
|
||||
|
||||
@ -156,15 +156,11 @@ section_table:
|
||||
.set pecompat_vsize, 0
|
||||
.set pecompat_fstart, setup_size
|
||||
|
||||
.ascii ".text"
|
||||
.byte 0
|
||||
.byte 0
|
||||
.byte 0
|
||||
.long ZO__data
|
||||
.long setup_size
|
||||
.long ZO__data # Size of initialized data
|
||||
# on disk
|
||||
.long setup_size
|
||||
.ascii ".text\0\0\0"
|
||||
.long textsize # VirtualSize
|
||||
.long setup_size # VirtualAddress
|
||||
.long textsize # SizeOfRawData
|
||||
.long setup_size # PointerToRawData
|
||||
.long 0 # PointerToRelocations
|
||||
.long 0 # PointerToLineNumbers
|
||||
.word 0 # NumberOfRelocations
|
||||
@ -173,6 +169,23 @@ section_table:
|
||||
IMAGE_SCN_MEM_READ | \
|
||||
IMAGE_SCN_MEM_EXECUTE # Characteristics
|
||||
|
||||
#ifdef CONFIG_EFI_SBAT
|
||||
.ascii ".sbat\0\0\0"
|
||||
.long ZO__esbat - ZO__sbat # VirtualSize
|
||||
.long setup_size + ZO__sbat # VirtualAddress
|
||||
.long ZO__esbat - ZO__sbat # SizeOfRawData
|
||||
.long setup_size + ZO__sbat # PointerToRawData
|
||||
|
||||
.long 0, 0, 0
|
||||
.long IMAGE_SCN_CNT_INITIALIZED_DATA | \
|
||||
IMAGE_SCN_MEM_READ | \
|
||||
IMAGE_SCN_MEM_DISCARDABLE # Characteristics
|
||||
|
||||
.set textsize, ZO__sbat
|
||||
#else
|
||||
.set textsize, ZO__data
|
||||
#endif
|
||||
|
||||
.ascii ".data\0\0\0"
|
||||
.long ZO__end - ZO__data # VirtualSize
|
||||
.long setup_size + ZO__data # VirtualAddress
|
||||
|
||||
@ -7143,6 +7143,8 @@ CONFIG_EFI_RUNTIME_WRAPPERS=y
|
||||
CONFIG_APPLE_PROPERTIES=y
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
CONFIG_EFI_RCI2_TABLE=y
|
||||
CONFIG_EFI_SBAT=y
|
||||
CONFIG_EFI_SBAT_FILE="kernel.sbat"
|
||||
CONFIG_UEFI_CPER=y
|
||||
CONFIG_UEFI_CPER_X86=y
|
||||
CONFIG_EFI_DEV_PATH_PARSER=y
|
||||
|
||||
@ -7131,6 +7131,8 @@ CONFIG_EFI_RUNTIME_WRAPPERS=y
|
||||
CONFIG_APPLE_PROPERTIES=y
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
CONFIG_EFI_RCI2_TABLE=y
|
||||
CONFIG_EFI_SBAT=y
|
||||
CONFIG_EFI_SBAT_FILE="kernel.sbat"
|
||||
CONFIG_UEFI_CPER=y
|
||||
CONFIG_UEFI_CPER_X86=y
|
||||
CONFIG_EFI_DEV_PATH_PARSER=y
|
||||
|
||||
@ -211,6 +211,30 @@ config EFI_RCI2_TABLE
|
||||
|
||||
Say Y here for Dell EMC PowerEdge systems.
|
||||
|
||||
config EFI_SBAT
|
||||
def_bool y if EFI_SBAT_FILE!=""
|
||||
|
||||
config EFI_SBAT_FILE
|
||||
string "Embedded SBAT section file path"
|
||||
depends on EFI_ZBOOT || (EFI_STUB && X86)
|
||||
help
|
||||
SBAT section provides a way to improve SecureBoot revocations of UEFI
|
||||
binaries by introducing a generation-based mechanism. With SBAT, older
|
||||
UEFI binaries can be prevented from booting by bumping the minimal
|
||||
required generation for the specific component in the bootloader.
|
||||
|
||||
Note: SBAT information is distribution specific, i.e. the owner of the
|
||||
signing SecureBoot certificate must define the SBAT policy. Linux
|
||||
kernel upstream does not define SBAT components and their generations.
|
||||
|
||||
See https://github.com/rhboot/shim/blob/main/SBAT.md for the additional
|
||||
details.
|
||||
|
||||
Specify a file with SBAT data which is going to be embedded as '.sbat'
|
||||
section into the kernel.
|
||||
|
||||
If unsure, leave blank.
|
||||
|
||||
endmenu
|
||||
|
||||
config UEFI_CPER
|
||||
|
||||
@ -350,7 +350,7 @@ int pvrdma_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata)
|
||||
uresp.qp_tab_size = vdev->dsr->caps.max_qp;
|
||||
ret = ib_copy_to_udata(udata, &uresp, sizeof(uresp));
|
||||
if (ret) {
|
||||
pvrdma_uar_free(vdev, &context->uar);
|
||||
/* pvrdma_dealloc_ucontext() also frees the UAR */
|
||||
pvrdma_dealloc_ucontext(&context->ibucontext);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
@ -867,8 +867,11 @@ void iscsit_dec_conn_usage_count(struct iscsit_conn *conn)
|
||||
spin_lock_bh(&conn->conn_usage_lock);
|
||||
conn->conn_usage_count--;
|
||||
|
||||
if (!conn->conn_usage_count && conn->conn_waiting_on_uc)
|
||||
if (!conn->conn_usage_count && conn->conn_waiting_on_uc) {
|
||||
spin_unlock_bh(&conn->conn_usage_lock);
|
||||
complete(&conn->conn_waiting_on_uc_comp);
|
||||
return;
|
||||
}
|
||||
|
||||
spin_unlock_bh(&conn->conn_usage_lock);
|
||||
}
|
||||
|
||||
@ -324,6 +324,12 @@ static void gfs2_metapath_ra(struct gfs2_glock *gl, __be64 *start, __be64 *end)
|
||||
}
|
||||
}
|
||||
|
||||
static inline struct buffer_head *
|
||||
metapath_dibh(struct metapath *mp)
|
||||
{
|
||||
return mp->mp_bh[0];
|
||||
}
|
||||
|
||||
static int __fillup_metapath(struct gfs2_inode *ip, struct metapath *mp,
|
||||
unsigned int x, unsigned int h)
|
||||
{
|
||||
@ -668,7 +674,7 @@ static int __gfs2_iomap_alloc(struct inode *inode, struct iomap *iomap,
|
||||
{
|
||||
struct gfs2_inode *ip = GFS2_I(inode);
|
||||
struct gfs2_sbd *sdp = GFS2_SB(inode);
|
||||
struct buffer_head *dibh = mp->mp_bh[0];
|
||||
struct buffer_head *dibh = metapath_dibh(mp);
|
||||
u64 bn;
|
||||
unsigned n, i, blks, alloced = 0, iblks = 0, branch_start = 0;
|
||||
size_t dblks = iomap->length >> inode->i_blkbits;
|
||||
@ -1122,10 +1128,18 @@ static int gfs2_iomap_begin(struct inode *inode, loff_t pos, loff_t length,
|
||||
goto out_unlock;
|
||||
break;
|
||||
default:
|
||||
goto out_unlock;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = gfs2_iomap_begin_write(inode, pos, length, flags, iomap, &mp);
|
||||
if (ret)
|
||||
goto out_unlock;
|
||||
|
||||
out:
|
||||
if (iomap->type == IOMAP_INLINE) {
|
||||
iomap->private = metapath_dibh(&mp);
|
||||
get_bh(iomap->private);
|
||||
}
|
||||
|
||||
out_unlock:
|
||||
release_metapath(&mp);
|
||||
@ -1139,6 +1153,9 @@ static int gfs2_iomap_end(struct inode *inode, loff_t pos, loff_t length,
|
||||
struct gfs2_inode *ip = GFS2_I(inode);
|
||||
struct gfs2_sbd *sdp = GFS2_SB(inode);
|
||||
|
||||
if (iomap->private)
|
||||
brelse(iomap->private);
|
||||
|
||||
switch (flags & (IOMAP_WRITE | IOMAP_ZERO)) {
|
||||
case IOMAP_WRITE:
|
||||
if (flags & IOMAP_DIRECT)
|
||||
|
||||
@ -1627,7 +1627,7 @@ static void nfs_writeback_result(struct rpc_task *task,
|
||||
struct nfs_pgio_args *argp = &hdr->args;
|
||||
struct nfs_pgio_res *resp = &hdr->res;
|
||||
|
||||
if (resp->count < argp->count) {
|
||||
if (resp->count < argp->count && !list_empty(&hdr->pages)) {
|
||||
static unsigned long complain;
|
||||
|
||||
/* This a short write! */
|
||||
|
||||
2
kernel.sbat
Normal file
2
kernel.sbat
Normal file
@ -0,0 +1,2 @@
|
||||
sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
|
||||
kernel.centos,1,Red Hat,kernel-core,4.18.0-553.139.1.el8.x86_64,mailto:secalert@redhat.com
|
||||
Loading…
Reference in New Issue
Block a user