Linux 5.4.123
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.123 kernel.
All users of the 5.4 kernel series must upgrade.
The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 - drivers/usb/dwc3/gadget.c | 4 +++ include/net/nfc/nci_core.h | 1 kernel/bpf/verifier.c | 46 ++++++++++++++++++++++++----------------- net/nfc/nci/core.c | 1 net/nfc/nci/hci.c | 5 ++++ tools/perf/util/unwind-libdw.c | 35 +++++++++++++++++++++++++++---- 7 files changed, 71 insertions(+), 23 deletions(-)
Daniel Borkmann (3):
bpf: Wrap aux data inside bpf_sanitize_info container
bpf: Fix mask direction swap upon off reg sign change
bpf: No need to simulate speculative domain for immediates
Dave Rigby (1):
perf unwind: Set userdata for all __report_module() paths
Dongliang Mu (1):
NFC: nci: fix memory leak in nci_allocate_device
Greg Kroah-Hartman (1):
Linux 5.4.123
Jack Pham (1):
usb: dwc3: gadget: Enable suspend events
Jan Kratochvil (1):
perf unwind: Fix separate debug info files when using elfutils' libdw's unwinder
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 122 +SUBLEVEL = 123 EXTRAVERSION = NAME = Kleptomaniac Octopus
drivers/usb/dwc3/gadget.c +4 -0
@@ -2022,6 +2022,10 @@ static void dwc3_gadget_enable_irq(struct dwc3 *dwc)if (dwc->revision <DWC3_REVISION_250A ) reg |=DWC3_DEVTEN_ULSTCNGEN ; +/* On 2.30a and above this bit enables U3/L2-L1 Suspend Events */ +if (dwc->revision >=DWC3_REVISION_230A ) + reg |=DWC3_DEVTEN_EOPFEN ; +dwc3_writel (dwc->regs,DWC3_DEVTEN , reg); }
include/net/nfc/nci_core.h +1 -0
@@ -298,6 +298,7 @@ int nci_nfcc_loopback(struct nci_dev *ndev, void *data, size_t data_len, struct sk_buff **resp);struct nci_hci_dev *nci_hci_allocate (struct nci_dev *ndev); +void nci_hci_deallocate (struct nci_dev *ndev);int nci_hci_send_event (struct nci_dev *ndev,u8 gate,u8 event,const u8 *param,size_t param_len); int nci_hci_send_cmd(struct nci_dev *ndev, u8 gate,
kernel/bpf/verifier.c +28 -18
105 lines not on this page · raw message
net/nfc/nci/core.c +1 -0
@@ -1175,6 +1175,7 @@ EXPORT_SYMBOL(nci_allocate_device);void nci_free_device (struct nci_dev *ndev) {nfc_free_device (ndev->nfc_dev); +nci_hci_deallocate (ndev);kfree (ndev); }EXPORT_SYMBOL (nci_free_device);
net/nfc/nci/hci.c +5 -0
@@ -795,3 +795,8 @@ struct nci_hci_dev *nci_hci_allocate(struct nci_dev *ndev)return hdev; } + +void nci_hci_deallocate (struct nci_dev *ndev) +{ +kfree (ndev->hci_dev); +}
tools/perf/util/unwind-libdw.c +31 -4
@@ -20,10 +20,24 @@static char *debuginfo_path; +static int __find_debuginfo (Dwfl_Module *mod__maybe_unused ,void **userdata, +const char *modname__maybe_unused ,Dwarf_Addr base__maybe_unused , +const char *file_name,const char *debuglink_file__maybe_unused , +GElf_Word debuglink_crc__maybe_unused ,char **debuginfo_file_name) +{ +const struct dso *dso = *userdata; + +assert (dso); +if (dso->symsrc_filename &&strcmp (file_name, dso->symsrc_filename)) + *debuginfo_file_name =strdup (dso->symsrc_filename); +return -1 ; +} +static const Dwfl_Callbacks offline_callbacks = { - .find_debuginfo = dwfl_standard_find_debuginfo, + .find_debuginfo = __find_debuginfo, .debuginfo_path = &debuginfo_path, .section_address = dwfl_offline_section_address, +// .find_elf is not set as we use dwfl_report_elf() instead. }; static int __report_module(struct addr_location *al, u64 ip,
@@ -53,9 +67,22 @@ static int __report_module(struct addr_location *al, u64 ip, }if (!mod) - mod =dwfl_report_elf (ui->dwfl, dso->short_name, - (dso->symsrc_filename ? dso->symsrc_filename : dso->long_name),-1 , al->map->start - al->map->pgoff, - false); + mod =dwfl_report_elf (ui->dwfl, dso->short_name, dso->long_name,-1 , + al->map->start - al->map->pgoff, false); +if (!mod) { +char filename[PATH_MAX ]; + +if (dso__build_id_filename (dso, filename,sizeof (filename), false)) + mod =dwfl_report_elf (ui->dwfl, dso->short_name, filename,-1 , + al->map->start - al->map->pgoff, false); + } + +if (mod) { +void **userdatap; + +dwfl_module_info (mod, &userdatap,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ); + *userdatap = dso; + }return mod &&dwfl_addrmodule (ui->dwfl, ip) == mod ?0 :-1 ; }