From fc2cf56edbac3128e9c3b6918ca9085f4ec06612 Mon Sep 17 00:00:00 2001 From: Salvatore Bonaccorso Date: Fri, 16 Feb 2018 21:50:07 +0100 Subject: [PATCH] Update to 4.15.4 Drop media-dvb-usb-v2-lmedm04-Improve-logic-checking-of-w.patch Drop media-dvb-usb-v2-lmedm04-move-ts2020-attach-to-dm04_.patch Drop media-hdpvr-fix-an-error-handling-path-in-hdpvr_prob.patch Cleanup Debian changelog for 4.15.4 --- debian/changelog | 204 +++++++++++++++++- ...-lmedm04-Improve-logic-checking-of-w.patch | 83 ------- ...-lmedm04-move-ts2020-attach-to-dm04_.patch | 67 ------ ...an-error-handling-path-in-hdpvr_prob.patch | 98 --------- debian/patches/series | 3 - 5 files changed, 203 insertions(+), 252 deletions(-) delete mode 100644 debian/patches/bugfix/all/media-dvb-usb-v2-lmedm04-Improve-logic-checking-of-w.patch delete mode 100644 debian/patches/bugfix/all/media-dvb-usb-v2-lmedm04-move-ts2020-attach-to-dm04_.patch delete mode 100644 debian/patches/bugfix/all/media-hdpvr-fix-an-error-handling-path-in-hdpvr_prob.patch diff --git a/debian/changelog b/debian/changelog index 6e1aae010..7829e95cc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -linux (4.15.3-1~exp1) UNRELEASED; urgency=medium +linux (4.15.4-1~exp1) UNRELEASED; urgency=medium * New upstream release: https://kernelnewbies.org/Linux_4.15 * New upstream stable update: @@ -97,6 +97,208 @@ linux (4.15.3-1~exp1) UNRELEASED; urgency=medium - net_sched: get rid of rcu_barrier() in tcf_block_put_ext() - net: sched: fix use-after-free in tcf_block_put_ext - crypto: tcrypt - fix S/G table for test_aead_speed() + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.4 + - cifs: Fix missing put_xid in cifs_file_strict_mmap + - cifs: Fix autonegotiate security settings mismatch + - CIFS: zero sensitive data when freeing + - cpufreq: mediatek: add mediatek related projects into blacklist + - [arm64] watchdog: gpio_wdt: set WDOG_HW_RUNNING in gpio_wdt_stop + - Revert "drm/i915: mark all device info struct with __initconst" + - sched/rt: Use container_of() to get root domain in + rto_push_irq_work_func() + - sched/rt: Up the root domain ref count when passing it around via IPIs + - [arm64] mm: Use non-global mappings for kernel space + - [arm64] mm: Temporarily disable ARM64_SW_TTBR0_PAN + - [arm64] mm: Move ASID from TTBR0 to TTBR1 + - [arm64] mm: Remove pre_ttbr0_update_workaround for Falkor erratum #E1003 + - [arm64] mm: Rename post_ttbr0_update_workaround + - [arm64] mm: Fix and re-enable ARM64_SW_TTBR0_PAN + - [arm64] mm: Allocate ASIDs in pairs + - [arm64] mm: Add arm64_kernel_unmapped_at_el0 helper + - [arm64] mm: Invalidate both kernel and user ASIDs when performing TLBI + - [arm64] entry: Add exception trampoline page for exceptions from EL0 + - [arm64] mm: Map entry trampoline into trampoline and kernel page tables + - [arm64] entry: Explicitly pass exception level to kernel_ventry macro + - [arm64] entry: Hook up entry trampoline to exception vectors + - [arm64] erratum: Work around Falkor erratum #E1003 in trampoline code + - [arm64] cpu_errata: Add Kryo to Falkor 1003 errata + - [arm64] tls: Avoid unconditional zeroing of tpidrro_el0 for native tasks + - [arm64] entry: Add fake CPU feature for unmapping the kernel at EL0 + - [arm64] kaslr: Put kernel vectors address in separate data page + - [arm64] use RET instruction for exiting the trampoline + - [arm64] Kconfig: Add CONFIG_UNMAP_KERNEL_AT_EL0 + - [arm64] Kconfig: Reword UNMAP_KERNEL_AT_EL0 kconfig entry + - [arm64] Take into account ID_AA64PFR0_EL1.CSV3 + - [arm64] capabilities: Handle duplicate entries for a capability + - [arm64] mm: Introduce TTBR_ASID_MASK for getting at the ASID in the TTBR + - [arm64] kpti: Fix the interaction between ASID switching and software PAN + - [arm64] cputype: Add MIDR values for Cavium ThunderX2 CPUs + - [arm64] Turn on KPTI only on CPUs that need it + - [arm64] kpti: Make use of nG dependent on arm64_kernel_unmapped_at_el0() + - [arm64] mm: Permit transitioning from Global to Non-Global without BBM + - [arm64] kpti: Add ->enable callback to remap swapper using nG mappings + - [arm64] Force KPTI to be disabled on Cavium ThunderX + - [arm64] entry: Reword comment about post_ttbr_update_workaround + - [arm64] idmap: Use "awx" flags for .idmap.text .pushsection directives + - [arm64] barrier: Add CSDB macros to control data-value prediction + - [arm64] Implement array_index_mask_nospec() + - [arm64] Make USER_DS an inclusive limit + - [arm64] Use pointer masking to limit uaccess speculation + - [arm64] entry: Ensure branch through syscall table is bounded under + speculation + - [arm64] uaccess: Prevent speculative use of the current addr_limit + - [arm64] uaccess: Don't bother eliding access_ok checks in __{get, + put}_user + - [arm64] uaccess: Mask __user pointers for __arch_{clear, copy_*}_user + - [arm64] futex: Mask __user pointers prior to dereference + - [arm64] cpufeature: __this_cpu_has_cap() shouldn't stop early + - [arm64] Run enable method for errata work arounds on late CPUs + - [arm64] cpufeature: Pass capability structure to ->enable callback + - drivers/firmware: Expose psci_get_version through psci_ops structure + - [arm64] Move post_ttbr_update_workaround to C code + - [arm64] Add skeleton to harden the branch predictor against aliasing + attacks + - [arm64] Move BP hardening to check_and_switch_context + - [arm64] KVM: Use per-CPU vector when BP hardening is enabled + - [arm64] entry: Apply BP hardening for high-priority synchronous + exceptions + - [arm64] entry: Apply BP hardening for suspicious interrupts from EL0 + - [arm64] cputype: Add missing MIDR values for Cortex-A72 and Cortex-A75 + - [arm64] Implement branch predictor hardening for affected Cortex-A CPUs + - [arm64] Implement branch predictor hardening for Falkor + - [arm64] Branch predictor hardening for Cavium ThunderX2 + - [arm64] KVM: Increment PC after handling an SMC trap + - [armhf,arm64] KVM: Consolidate the PSCI include files + - [armhf,arm64] KVM: Add PSCI_VERSION helper + - [armhf,arm64] KVM: Add smccc accessors to PSCI code + - [armhf,arm64] KVM: Implement PSCI 1.0 support + - [armhf,arm64] KVM: Advertise SMCCC v1.1 + - [arm64] KVM: Make PSCI_VERSION a fast path + - [armhf,arm64] KVM: Turn kvm_psci_version into a static inline + - [arm64] KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support + - [arm64] KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling + - firmware/psci: Expose PSCI conduit + - firmware/psci: Expose SMCCC version through psci_ops + - arm/arm64: smccc: Make function identifiers an unsigned quantity + - arm/arm64: smccc: Implement SMCCC v1.1 inline primitive + - [arm64] Add ARM_SMCCC_ARCH_WORKAROUND_1 BP hardening support + - [arm64] Kill PSCI_GET_VERSION as a variant-2 workaround + - mtd: cfi: convert inline functions to macros + - mtd: nand: brcmnand: Disable prefetch by default + - mtd: nand: Fix nand_do_read_oob() return value + - mtd: nand: sunxi: Fix ECC strength choice + - ubi: Fix race condition between ubi volume creation and udev + - ubi: fastmap: Erase outdated anchor PEBs during attach + - ubi: block: Fix locking for idr_alloc/idr_remove + - ubifs: free the encrypted symlink target + - nfs/pnfs: fix nfs_direct_req ref leak when i/o falls back to the mds + - nfs41: do not return ENOMEM on LAYOUTUNAVAILABLE + - NFS: Add a cond_resched() to nfs_commit_release_pages() + - NFS: Fix nfsstat breakage due to LOOKUPP + - NFS: commit direct writes even if they fail partially + - NFS: reject request for id_legacy key without auxdata + - NFS: Fix a race between mmap() and O_DIRECT + - nfsd: Detect unhashed stids in nfsd4_verify_open_stid() + - kernfs: fix regression in kernfs_fop_write caused by wrong type + - ahci: Annotate PCI ids for mobile Intel chipsets as such + - ahci: Add PCI ids for Intel Bay Trail, Cherry Trail and Apollo Lake AHCI + - ahci: Add Intel Cannon Lake PCH-H PCI ID + - crypto: hash - introduce crypto_hash_alg_has_setkey() + - crypto: cryptd - pass through absence of ->setkey() + - crypto: mcryptd - pass through absence of ->setkey() + - crypto: poly1305 - remove ->setkey() method + - crypto: hash - annotate algorithms taking optional key + - crypto: hash - prevent using keyed hashes without setting key + - media: v4l2-ioctl.c: use check_fmt for enum/g/s/try_fmt + - media: v4l2-ioctl.c: don't copy back the result for -ENOTTY + - media: v4l2-compat-ioctl32.c: add missing VIDIOC_PREPARE_BUF + - media: v4l2-compat-ioctl32.c: fix the indentation + - media: v4l2-compat-ioctl32.c: move 'helper' functions to __get/put_v4l2_format32 + - media: v4l2-compat-ioctl32.c: avoid sizeof(type) + - media: v4l2-compat-ioctl32.c: copy m.userptr in put_v4l2_plane32 + - media: v4l2-compat-ioctl32.c: fix ctrl_is_pointer + - media: v4l2-compat-ioctl32.c: copy clip list in put_v4l2_window32 + - media: v4l2-compat-ioctl32.c: drop pr_info for unknown buffer type + - media: v4l2-compat-ioctl32.c: don't copy back the result for certain errors + - media: v4l2-compat-ioctl32.c: refactor compat ioctl32 logic + - media: v4l2-compat-ioctl32.c: make ctrl_is_pointer work for subdevs + - crypto: caam - fix endless loop when DECO acquire fails + - crypto: sha512-mb - initialize pending lengths correctly + - crypto: talitos - fix Kernel Oops on hashing an empty file + - [armhf,arm64 KVM: Fix SMCCC handling of unimplemented SMC/HVC calls + - [x86] KVM: nVMX: Fix races when sending nested PI while dest + enters/leaves L2 + - [x86] KVM: nVMX: Fix bug of injecting L2 exception into L1 + - [powerpc*] KVM: PPC: Book3S HV: Make sure we don't re-enter guest + without XIVE loaded + - [powerpc*] KVM: PPC: Book3S HV: Drop locks before reading guest memory + - [armhf,arm64] KVM: Handle CPU_PM_ENTER_FAILED + - [powerpc*] KVM: PPC: Book3S PR: Fix broken select due to misspelling + - watchdog: imx2_wdt: restore previous timeout after suspend+resume + - afs: Add missing afs_put_cell() + - afs: Need to clear responded flag in addr cursor + - afs: Fix missing cursor clearance + - afs: Fix server list handling + - btrfs: Handle btrfs_set_extent_delalloc failure in fixup worker + - Btrfs: raid56: iterate raid56 internal bio with bio_for_each_segment_all + - kasan: don't emit builtin calls when sanitization is off + - kasan: rework Kconfig settings + - media: dvb_frontend: be sure to init dvb_frontend_handle_ioctl() return + code + - media: dvb-frontends: fix i2c access helpers for KASAN + - media: dt-bindings/media/cec-gpio.txt: mention the CEC/HPD max voltages + - media: ts2020: avoid integer overflows on 32 bit machines + - media: vivid: fix module load error when enabling fb and no_error_inj=1 + - media: cxusb, dib0700: ignore XC2028_I2C_FLUSH + - fs/proc/kcore.c: use probe_kernel_read() instead of memcpy() + - kernel/async.c: revert "async: simplify lowest_in_progress()" + - kernel/relay.c: revert "kernel/relay.c: fix potential memory leak" + - pipe: actually allow root to exceed the pipe buffer limits + - pipe: fix off-by-one error when checking buffer limits + - HID: quirks: Fix keyboard + touchpad on Toshiba Click Mini not working + - Bluetooth: btsdio: Do not bind to non-removable BCM43341 + - Revert "Bluetooth: btusb: fix QCA Rome suspend/resume" + - Bluetooth: btusb: Restore QCA Rome suspend/resume fix with a "rewritten" + version + - ipmi: use dynamic memory for DMI driver override + - signal/openrisc: Fix do_unaligned_access to send the proper signal + - signal/sh: Ensure si_signo is initialized in do_divide_error + - alpha: fix crash if pthread_create races with signal delivery + - alpha: osf_sys.c: fix put_tv32 regression + - alpha: Fix mixed up args in EXC macro in futex operations + - alpha: fix reboot on Avanti platform + - alpha: fix formating of stack content + - xtensa: fix futex_atomic_cmpxchg_inatomic + - EDAC, octeon: Fix an uninitialized variable warning + - genirq: Make legacy autoprobing work again + - pinctrl: intel: Initialize GPIO properly when used through irqchip + - pinctrl: mcp23s08: fix irq setup order + - pinctrl: sx150x: Unregister the pinctrl on release + - pinctrl: sx150x: Register pinctrl before adding the gpiochip + - pinctrl: sx150x: Add a static gpio/pinctrl pin range mapping + - pktcdvd: Fix pkt_setup_dev() error path + - pktcdvd: Fix a recently introduced NULL pointer dereference + - blk-mq: quiesce queue before freeing queue + - clocksource/drivers/stm32: Fix kernel panic with multiple timers + - lib/ubsan.c: s/missaligned/misaligned/ + - lib/ubsan: add type mismatch handler for new GCC/Clang + - objtool: Fix switch-table detection + - [arm64] dts: marvell: add Ethernet aliases + - drm/i915: Avoid PPS HW/SW state mismatch due to rounding + - ACPI: sbshc: remove raw pointer from printk() message + - acpi, nfit: fix register dimm error handling + - ovl: force r/o mount when index dir creation fails + - ovl: fix failure to fsync lower dir + - ovl: take mnt_want_write() for work/index dir setup + - ovl: take mnt_want_write() for removing impure xattr + - ovl: hash directory inodes for fsnotify + - devpts: fix error handling in devpts_mntget() + - ftrace: Remove incorrect setting of glob search field + - scsi: core: Ensure that the SCSI error handler gets woken up + - scsi: lpfc: Fix crash after bad bar setup on driver attachment + - scsi: cxlflash: Reset command ioasc + - rcu: Export init_rcu_head() and destroy_rcu_head() to GPL modules [ Bastian Blank ] * Add cloud-amd64 kernel flavour. diff --git a/debian/patches/bugfix/all/media-dvb-usb-v2-lmedm04-Improve-logic-checking-of-w.patch b/debian/patches/bugfix/all/media-dvb-usb-v2-lmedm04-Improve-logic-checking-of-w.patch deleted file mode 100644 index 7942e8d8f..000000000 --- a/debian/patches/bugfix/all/media-dvb-usb-v2-lmedm04-Improve-logic-checking-of-w.patch +++ /dev/null @@ -1,83 +0,0 @@ -From: Malcolm Priestley -Date: Tue, 26 Sep 2017 17:10:20 -0400 -Subject: [1/2] media: dvb-usb-v2: lmedm04: Improve logic checking of warm - start -Origin: https://git.linuxtv.org/media_tree.git/commit?id=3d932ee27e852e4904647f15b64dedca51187ad7 -Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-16538 - -Warm start has no check as whether a genuine device has -connected and proceeds to next execution path. - -Check device should read 0x47 at offset of 2 on USB descriptor read -and it is the amount requested of 6 bytes. - -Fix for -kasan: CONFIG_KASAN_INLINE enabled -kasan: GPF could be caused by NULL-ptr deref or user memory access as - -Reported-by: Andrey Konovalov -Signed-off-by: Malcolm Priestley -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/usb/dvb-usb-v2/lmedm04.c | 26 ++++++++++++++++++-------- - 1 file changed, 18 insertions(+), 8 deletions(-) - ---- a/drivers/media/usb/dvb-usb-v2/lmedm04.c -+++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c -@@ -494,18 +494,23 @@ static int lme2510_pid_filter(struct dvb - - static int lme2510_return_status(struct dvb_usb_device *d) - { -- int ret = 0; -+ int ret; - u8 *data; - -- data = kzalloc(10, GFP_KERNEL); -+ data = kzalloc(6, GFP_KERNEL); - if (!data) - return -ENOMEM; - -- ret |= usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), -- 0x06, 0x80, 0x0302, 0x00, data, 0x0006, 200); -- info("Firmware Status: %x (%x)", ret , data[2]); -+ ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), -+ 0x06, 0x80, 0x0302, 0x00, -+ data, 0x6, 200); -+ if (ret != 6) -+ ret = -EINVAL; -+ else -+ ret = data[2]; -+ -+ info("Firmware Status: %6ph", data); - -- ret = (ret < 0) ? -ENODEV : data[2]; - kfree(data); - return ret; - } -@@ -1189,6 +1194,7 @@ static int lme2510_get_adapter_count(str - static int lme2510_identify_state(struct dvb_usb_device *d, const char **name) - { - struct lme2510_state *st = d->priv; -+ int status; - - usb_reset_configuration(d->udev); - -@@ -1197,12 +1203,16 @@ static int lme2510_identify_state(struct - - st->dvb_usb_lme2510_firmware = dvb_usb_lme2510_firmware; - -- if (lme2510_return_status(d) == 0x44) { -+ status = lme2510_return_status(d); -+ if (status == 0x44) { - *name = lme_firmware_switch(d, 0); - return COLD; - } - -- return 0; -+ if (status != 0x47) -+ return -EINVAL; -+ -+ return WARM; - } - - static int lme2510_get_stream_config(struct dvb_frontend *fe, u8 *ts_type, diff --git a/debian/patches/bugfix/all/media-dvb-usb-v2-lmedm04-move-ts2020-attach-to-dm04_.patch b/debian/patches/bugfix/all/media-dvb-usb-v2-lmedm04-move-ts2020-attach-to-dm04_.patch deleted file mode 100644 index 143f87033..000000000 --- a/debian/patches/bugfix/all/media-dvb-usb-v2-lmedm04-move-ts2020-attach-to-dm04_.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: Malcolm Priestley -Date: Tue, 26 Sep 2017 17:10:21 -0400 -Subject: [2/2] media: dvb-usb-v2: lmedm04: move ts2020 attach to - dm04_lme2510_tuner -Origin: https://git.linuxtv.org/media_tree.git/commit?id=7bf7a7116ed313c601307f7e585419369926ab05 -Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-16538 - -When the tuner was split from m88rs2000 the attach function is in wrong -place. - -Move to dm04_lme2510_tuner to trap errors on failure and removing -a call to lme_coldreset. - -Prevents driver starting up without any tuner connected. - -Fixes to trap for ts2020 fail. -LME2510(C): FE Found M88RS2000 -ts2020: probe of 0-0060 failed with error -11 -... -LME2510(C): TUN Found RS2000 tuner -kasan: CONFIG_KASAN_INLINE enabled -kasan: GPF could be caused by NULL-ptr deref or user memory access -general protection fault: 0000 [#1] PREEMPT SMP KASAN - -Reported-by: Andrey Konovalov -Signed-off-by: Malcolm Priestley -Tested-by: Andrey Konovalov -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/usb/dvb-usb-v2/lmedm04.c | 13 ++++++------- - 1 file changed, 6 insertions(+), 7 deletions(-) - ---- a/drivers/media/usb/dvb-usb-v2/lmedm04.c -+++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c -@@ -1076,8 +1076,6 @@ static int dm04_lme2510_frontend_attach( - - if (adap->fe[0]) { - info("FE Found M88RS2000"); -- dvb_attach(ts2020_attach, adap->fe[0], &ts2020_config, -- &d->i2c_adap); - st->i2c_tuner_gate_w = 5; - st->i2c_tuner_gate_r = 5; - st->i2c_tuner_addr = 0x60; -@@ -1143,17 +1141,18 @@ static int dm04_lme2510_tuner(struct dvb - ret = st->tuner_config; - break; - case TUNER_RS2000: -- ret = st->tuner_config; -+ if (dvb_attach(ts2020_attach, adap->fe[0], -+ &ts2020_config, &d->i2c_adap)) -+ ret = st->tuner_config; - break; - default: - break; - } - -- if (ret) -+ if (ret) { - info("TUN Found %s tuner", tun_msg[ret]); -- else { -- info("TUN No tuner found --- resetting device"); -- lme_coldreset(d); -+ } else { -+ info("TUN No tuner found"); - return -ENODEV; - } - diff --git a/debian/patches/bugfix/all/media-hdpvr-fix-an-error-handling-path-in-hdpvr_prob.patch b/debian/patches/bugfix/all/media-hdpvr-fix-an-error-handling-path-in-hdpvr_prob.patch deleted file mode 100644 index 88ba95e6d..000000000 --- a/debian/patches/bugfix/all/media-hdpvr-fix-an-error-handling-path-in-hdpvr_prob.patch +++ /dev/null @@ -1,98 +0,0 @@ -From: Arvind Yadav -Date: Fri, 22 Sep 2017 09:07:06 -0400 -Subject: media: hdpvr: Fix an error handling path in hdpvr_probe() -Origin: https://git.linuxtv.org/media_tree.git/commit?id=c0f71bbb810237a38734607ca4599632f7f5d47f -Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-16644 - -Here, hdpvr_register_videodev() is responsible for setup and -register a video device. Also defining and initializing a worker. -hdpvr_register_videodev() is calling by hdpvr_probe at last. -So no need to flush any work here. -Unregister v4l2, free buffers and memory. If hdpvr_probe() will fail. - -Signed-off-by: Arvind Yadav -Reported-by: Andrey Konovalov -Tested-by: Andrey Konovalov -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/usb/hdpvr/hdpvr-core.c | 26 +++++++++++++++----------- - 1 file changed, 15 insertions(+), 11 deletions(-) - ---- a/drivers/media/usb/hdpvr/hdpvr-core.c -+++ b/drivers/media/usb/hdpvr/hdpvr-core.c -@@ -292,7 +292,7 @@ static int hdpvr_probe(struct usb_interf - /* register v4l2_device early so it can be used for printks */ - if (v4l2_device_register(&interface->dev, &dev->v4l2_dev)) { - dev_err(&interface->dev, "v4l2_device_register failed\n"); -- goto error; -+ goto error_free_dev; - } - - mutex_init(&dev->io_mutex); -@@ -301,7 +301,7 @@ static int hdpvr_probe(struct usb_interf - dev->usbc_buf = kmalloc(64, GFP_KERNEL); - if (!dev->usbc_buf) { - v4l2_err(&dev->v4l2_dev, "Out of memory\n"); -- goto error; -+ goto error_v4l2_unregister; - } - - init_waitqueue_head(&dev->wait_buffer); -@@ -339,13 +339,13 @@ static int hdpvr_probe(struct usb_interf - } - if (!dev->bulk_in_endpointAddr) { - v4l2_err(&dev->v4l2_dev, "Could not find bulk-in endpoint\n"); -- goto error; -+ goto error_put_usb; - } - - /* init the device */ - if (hdpvr_device_init(dev)) { - v4l2_err(&dev->v4l2_dev, "device init failed\n"); -- goto error; -+ goto error_put_usb; - } - - mutex_lock(&dev->io_mutex); -@@ -353,7 +353,7 @@ static int hdpvr_probe(struct usb_interf - mutex_unlock(&dev->io_mutex); - v4l2_err(&dev->v4l2_dev, - "allocating transfer buffers failed\n"); -- goto error; -+ goto error_put_usb; - } - mutex_unlock(&dev->io_mutex); - -@@ -361,7 +361,7 @@ static int hdpvr_probe(struct usb_interf - retval = hdpvr_register_i2c_adapter(dev); - if (retval < 0) { - v4l2_err(&dev->v4l2_dev, "i2c adapter register failed\n"); -- goto error; -+ goto error_free_buffers; - } - - client = hdpvr_register_ir_rx_i2c(dev); -@@ -394,13 +394,17 @@ static int hdpvr_probe(struct usb_interf - reg_fail: - #if IS_ENABLED(CONFIG_I2C) - i2c_del_adapter(&dev->i2c_adapter); -+error_free_buffers: - #endif -+ hdpvr_free_buffers(dev); -+error_put_usb: -+ usb_put_dev(dev->udev); -+ kfree(dev->usbc_buf); -+error_v4l2_unregister: -+ v4l2_device_unregister(&dev->v4l2_dev); -+error_free_dev: -+ kfree(dev); - error: -- if (dev) { -- flush_work(&dev->worker); -- /* this frees allocated memory */ -- hdpvr_delete(dev); -- } - return retval; - } - diff --git a/debian/patches/series b/debian/patches/series index 6cd032ef9..cf0df77a9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -119,9 +119,6 @@ features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch # Security fixes debian/i386-686-pae-pci-set-pci-nobios-by-default.patch -bugfix/all/media-dvb-usb-v2-lmedm04-Improve-logic-checking-of-w.patch -bugfix/all/media-dvb-usb-v2-lmedm04-move-ts2020-attach-to-dm04_.patch -bugfix/all/media-hdpvr-fix-an-error-handling-path-in-hdpvr_prob.patch # Fix exported symbol versions bugfix/all/module-disable-matching-missing-version-crc.patch