14
0
forked from pool/crash
Files
crash/crash-stop_read_error_when_intent_is_retry.patch

35 lines
1.2 KiB
Diff
Raw Permalink Normal View History

Accepting request 795358 from home:michals - Make Factory ppc64 crash usable on both SLE 15 SP1 and releases before SLE15 SP1 (bsc#1148197). This is only a workaround that requires to build crash for each codestream separately. - Drop crash-s390-autodetect-kaslr.patch which has been merged in 7.2.7. Merge missing patches from SLE15 SP2: crash-stop_read_error_when_intent_is_retry.patch crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch And SLE 15 SP2 bug references and changelog entries: - Upgraded the source tarball to version 7.2.7. This is required to support coredumps from currently used kernel versions in the product (bsc#1159686). - droped the patch obsoleted due to already being present in the new source: - Added patch for commit 326e1b8f83a4318b09033ef754f40c785aed5e68 Upgraded the source tarball to version 7.2.6 to bring better support of version 5 kernels such as 5.3 in SLE-15-SP2 (bsc#114706) Dropped the following patches obsoleted by the version upgrade: crash-Fix-and-an-update-for-the-ipcs-command.patch crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch Re-aligned the following patches with the new version source: crash-allow-use-of-sadump-captured-KASLR-kernel.patch crash-debuginfo-compressed.patch crash-make-emacs-default.diff crash-sles9-time.patch Modified the following patches to integrate with version upgrade: crash-compressed-booted-kernel.patch crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch - Update for XEN dom0 changes in v4.11 that cause coredumps made of a domU using virch on the dom0 to fail to load in the dom0 version of crash reporting "crash: invalid kernel virtual address: <address> type:fill_pcpu_struct", followed by "WARNING: cannot fill pcpu_struct" and "crash: cannot read cpu_info" (bsc#1124690 and bsc#1122594) Added: - Update the recognition of x86_64 CPU_ENTRY_AREA (bsc#1104743, bsc#1090127) Added: crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch - Fix SLE15 SP1 Incorrect vmcore generated (bsc#1119791). Added: crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch This is not compatible with SLE15 and SLE12 SP4. - Added: crash-Fix-and-an-update-for-the-ipcs-command.patch The update is required for Linux 4.11 and greater kernels, which reimplemented the IDR facility to use radix trees in kernel commit 0a835c4f090af2c76fc2932c539c3b32fd21fbbb, titled "Reimplement IDR and IDA using the radix tree". Without the patch, if any IPCS entry exists, the command would fail with the message "ipcs: invalid structure member offset: idr_top" (bsc#1092101) OBS-URL: https://build.opensuse.org/request/show/795358 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=316
2020-04-21 13:11:00 +00:00
From: David Mair <dmair@suse.com>
Date: 2017-05-25 10:27:21 -0600
Subject: Avoid printing a read error for a failed read that can be retried
References: bnc#1038839
Upstream: tbd
When reading a memory image fails it may not be an error if it is still
possible to switch image and retry the read. Fix the error message output
to only occur if no retries are intended.
---
Accepting request 1112906 from home:dmair:branches:Kernel:kdump:crash-1190434 - On initialization crash verifies the core based on the text referenced by the linux_banner symbol in the supplied core. It chooses how to get the address of the text based on the symbol type decoded with gdb. For some compressed kernels with an accessible debuginfo file the type is not supported (bss segment found, data reference expected) but the symbol and it's value are valid. This causes the linux_banner text to be used as the "address" of the linux_banner and that's an invalid address for the coredump causing crash to fail to load reporting something like: WARNING: invalid linux_banner pointer: 65762078756e694c where the address is obviously ASCII text used as a number. A SUSE patch to support compressed kernel binaries introduces the behavior, it does not happen for upstream crash source as-is. The difference is whether the symbol details are obtained from the kernel binary or debuginfo (fails for some debuginfos). * crash-get-linux_banner-without-using-syment-type.patch In verify_version(), choose how to obtain the linux_banner address based on the result of get_symbol_type() instead. TYPE_CODE_ARRAY causes the value of the symbol obtained from gdb to be used. TYPE_CODE_PTR causes the sybol data to be read to get the address. Default is unrecognized type but a warning is shown and the value obtained from gdb used as a best case choice. (bsc#1190434 c#24) OBS-URL: https://build.opensuse.org/request/show/1112906 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=384
2023-09-22 16:02:04 +00:00
Index: b/memory.c
Accepting request 795358 from home:michals - Make Factory ppc64 crash usable on both SLE 15 SP1 and releases before SLE15 SP1 (bsc#1148197). This is only a workaround that requires to build crash for each codestream separately. - Drop crash-s390-autodetect-kaslr.patch which has been merged in 7.2.7. Merge missing patches from SLE15 SP2: crash-stop_read_error_when_intent_is_retry.patch crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch And SLE 15 SP2 bug references and changelog entries: - Upgraded the source tarball to version 7.2.7. This is required to support coredumps from currently used kernel versions in the product (bsc#1159686). - droped the patch obsoleted due to already being present in the new source: - Added patch for commit 326e1b8f83a4318b09033ef754f40c785aed5e68 Upgraded the source tarball to version 7.2.6 to bring better support of version 5 kernels such as 5.3 in SLE-15-SP2 (bsc#114706) Dropped the following patches obsoleted by the version upgrade: crash-Fix-and-an-update-for-the-ipcs-command.patch crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch Re-aligned the following patches with the new version source: crash-allow-use-of-sadump-captured-KASLR-kernel.patch crash-debuginfo-compressed.patch crash-make-emacs-default.diff crash-sles9-time.patch Modified the following patches to integrate with version upgrade: crash-compressed-booted-kernel.patch crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch - Update for XEN dom0 changes in v4.11 that cause coredumps made of a domU using virch on the dom0 to fail to load in the dom0 version of crash reporting "crash: invalid kernel virtual address: <address> type:fill_pcpu_struct", followed by "WARNING: cannot fill pcpu_struct" and "crash: cannot read cpu_info" (bsc#1124690 and bsc#1122594) Added: - Update the recognition of x86_64 CPU_ENTRY_AREA (bsc#1104743, bsc#1090127) Added: crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch - Fix SLE15 SP1 Incorrect vmcore generated (bsc#1119791). Added: crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch This is not compatible with SLE15 and SLE12 SP4. - Added: crash-Fix-and-an-update-for-the-ipcs-command.patch The update is required for Linux 4.11 and greater kernels, which reimplemented the IDR facility to use radix trees in kernel commit 0a835c4f090af2c76fc2932c539c3b32fd21fbbb, titled "Reimplement IDR and IDA using the radix tree". Without the patch, if any IPCS entry exists, the command would fail with the message "ipcs: invalid structure member offset: idr_top" (bsc#1092101) OBS-URL: https://build.opensuse.org/request/show/795358 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=316
2020-04-21 13:11:00 +00:00
===================================================================
Accepting request 1112906 from home:dmair:branches:Kernel:kdump:crash-1190434 - On initialization crash verifies the core based on the text referenced by the linux_banner symbol in the supplied core. It chooses how to get the address of the text based on the symbol type decoded with gdb. For some compressed kernels with an accessible debuginfo file the type is not supported (bss segment found, data reference expected) but the symbol and it's value are valid. This causes the linux_banner text to be used as the "address" of the linux_banner and that's an invalid address for the coredump causing crash to fail to load reporting something like: WARNING: invalid linux_banner pointer: 65762078756e694c where the address is obviously ASCII text used as a number. A SUSE patch to support compressed kernel binaries introduces the behavior, it does not happen for upstream crash source as-is. The difference is whether the symbol details are obtained from the kernel binary or debuginfo (fails for some debuginfos). * crash-get-linux_banner-without-using-syment-type.patch In verify_version(), choose how to obtain the linux_banner address based on the result of get_symbol_type() instead. TYPE_CODE_ARRAY causes the value of the symbol obtained from gdb to be used. TYPE_CODE_PTR causes the sybol data to be read to get the address. Default is unrecognized type but a warning is shown and the value obtained from gdb used as a best case choice. (bsc#1190434 c#24) OBS-URL: https://build.opensuse.org/request/show/1112906 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=384
2023-09-22 16:02:04 +00:00
--- a/memory.c
+++ b/memory.c
@@ -2442,8 +2442,6 @@ readmem(ulonglong addr, int memtype, voi
Accepting request 795358 from home:michals - Make Factory ppc64 crash usable on both SLE 15 SP1 and releases before SLE15 SP1 (bsc#1148197). This is only a workaround that requires to build crash for each codestream separately. - Drop crash-s390-autodetect-kaslr.patch which has been merged in 7.2.7. Merge missing patches from SLE15 SP2: crash-stop_read_error_when_intent_is_retry.patch crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch And SLE 15 SP2 bug references and changelog entries: - Upgraded the source tarball to version 7.2.7. This is required to support coredumps from currently used kernel versions in the product (bsc#1159686). - droped the patch obsoleted due to already being present in the new source: - Added patch for commit 326e1b8f83a4318b09033ef754f40c785aed5e68 Upgraded the source tarball to version 7.2.6 to bring better support of version 5 kernels such as 5.3 in SLE-15-SP2 (bsc#114706) Dropped the following patches obsoleted by the version upgrade: crash-Fix-and-an-update-for-the-ipcs-command.patch crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch Re-aligned the following patches with the new version source: crash-allow-use-of-sadump-captured-KASLR-kernel.patch crash-debuginfo-compressed.patch crash-make-emacs-default.diff crash-sles9-time.patch Modified the following patches to integrate with version upgrade: crash-compressed-booted-kernel.patch crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch - Update for XEN dom0 changes in v4.11 that cause coredumps made of a domU using virch on the dom0 to fail to load in the dom0 version of crash reporting "crash: invalid kernel virtual address: <address> type:fill_pcpu_struct", followed by "WARNING: cannot fill pcpu_struct" and "crash: cannot read cpu_info" (bsc#1124690 and bsc#1122594) Added: - Update the recognition of x86_64 CPU_ENTRY_AREA (bsc#1104743, bsc#1090127) Added: crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch - Fix SLE15 SP1 Incorrect vmcore generated (bsc#1119791). Added: crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch This is not compatible with SLE15 and SLE12 SP4. - Added: crash-Fix-and-an-update-for-the-ipcs-command.patch The update is required for Linux 4.11 and greater kernels, which reimplemented the IDR facility to use radix trees in kernel commit 0a835c4f090af2c76fc2932c539c3b32fd21fbbb, titled "Reimplement IDR and IDA using the radix tree". Without the patch, if any IPCS entry exists, the command would fail with the message "ipcs: invalid structure member offset: idr_top" (bsc#1092101) OBS-URL: https://build.opensuse.org/request/show/795358 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=316
2020-04-21 13:11:00 +00:00
goto readmem_error;
case READ_ERROR:
- if (PRINT_ERROR_MESSAGE)
- error(INFO, READ_ERRMSG, memtype_string(memtype, 0), addr, type);
if ((pc->flags & DEVMEM) && (kt->flags & PRE_KERNEL_INIT) &&
!(error_handle & NO_DEVMEM_SWITCH) && devmem_is_restricted() &&
switch_to_proc_kcore()) {
@@ -2451,6 +2449,8 @@ readmem(ulonglong addr, int memtype, voi
Accepting request 795358 from home:michals - Make Factory ppc64 crash usable on both SLE 15 SP1 and releases before SLE15 SP1 (bsc#1148197). This is only a workaround that requires to build crash for each codestream separately. - Drop crash-s390-autodetect-kaslr.patch which has been merged in 7.2.7. Merge missing patches from SLE15 SP2: crash-stop_read_error_when_intent_is_retry.patch crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch And SLE 15 SP2 bug references and changelog entries: - Upgraded the source tarball to version 7.2.7. This is required to support coredumps from currently used kernel versions in the product (bsc#1159686). - droped the patch obsoleted due to already being present in the new source: - Added patch for commit 326e1b8f83a4318b09033ef754f40c785aed5e68 Upgraded the source tarball to version 7.2.6 to bring better support of version 5 kernels such as 5.3 in SLE-15-SP2 (bsc#114706) Dropped the following patches obsoleted by the version upgrade: crash-Fix-and-an-update-for-the-ipcs-command.patch crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch Re-aligned the following patches with the new version source: crash-allow-use-of-sadump-captured-KASLR-kernel.patch crash-debuginfo-compressed.patch crash-make-emacs-default.diff crash-sles9-time.patch Modified the following patches to integrate with version upgrade: crash-compressed-booted-kernel.patch crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch - Update for XEN dom0 changes in v4.11 that cause coredumps made of a domU using virch on the dom0 to fail to load in the dom0 version of crash reporting "crash: invalid kernel virtual address: <address> type:fill_pcpu_struct", followed by "WARNING: cannot fill pcpu_struct" and "crash: cannot read cpu_info" (bsc#1124690 and bsc#1122594) Added: - Update the recognition of x86_64 CPU_ENTRY_AREA (bsc#1104743, bsc#1090127) Added: crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch - Fix SLE15 SP1 Incorrect vmcore generated (bsc#1119791). Added: crash-SLE15-SP1-With-Linux-4.19-rc1-up-MAX_PHYSMEM_BITS-to-128TB.patch crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch This is not compatible with SLE15 and SLE12 SP4. - Added: crash-Fix-and-an-update-for-the-ipcs-command.patch The update is required for Linux 4.11 and greater kernels, which reimplemented the IDR facility to use radix trees in kernel commit 0a835c4f090af2c76fc2932c539c3b32fd21fbbb, titled "Reimplement IDR and IDA using the radix tree". Without the patch, if any IPCS entry exists, the command would fail with the message "ipcs: invalid structure member offset: idr_top" (bsc#1092101) OBS-URL: https://build.opensuse.org/request/show/795358 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=316
2020-04-21 13:11:00 +00:00
return(readmem(addr, memtype, bufptr, size,
type, error_handle));
}
+ if (PRINT_ERROR_MESSAGE)
+ error(INFO, READ_ERRMSG, memtype_string(memtype, 0), addr, type);
goto readmem_error;
case PAGE_EXCLUDED: