Linux 4.19.275
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.19.275 kernel.
All users of the 4.19 kernel series must upgrade.
The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.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 +- arch/arm/boot/dts/rk3288.dtsi | 1 + drivers/acpi/nfit/core.c | 2 +- drivers/dma/sh/rcar-dmac.c | 5 ++++- drivers/infiniband/hw/hfi1/user_exp_rcv.c | 9 ++------- drivers/tty/vt/vc_screen.c | 7 ++++--- drivers/usb/core/hub.c | 5 ++--- drivers/usb/core/sysfs.c | 5 ----- drivers/usb/serial/option.c | 4 ++++ fs/btrfs/send.c | 6 +++--- net/caif/caif_socket.c | 1 + net/core/stream.c | 1 - 12 files changed, 23 insertions(+), 25 deletions(-)
Alan Stern (1):
USB: core: Don't hold device lock while reading the "descriptors" sysfs file
David Sterba (1):
btrfs: send: limit number of clones and allocated memory size
Dean Luick (1):
IB/hfi1: Assign npages earlier
Florian Zumbiehl (1):
USB: serial: option: add support for VW/Skoda "Carstick LTE"
Greg Kroah-Hartman (1):
Linux 4.19.275
Jiasheng Jiang (1):
dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size
Johan Jonker (1):
ARM: dts: rockchip: add power-domains property to dp node on rk3288
Kuniyuki Iwashima (1):
net: Remove WARN_ON_ONCE(sk->sk_forward_alloc) from sk_stream_kill_queues().
Thomas Weißschuh (1):
vc_screen: don't clobber return value in vcs_read
Vishal Verma (1):
ACPI: NFIT: fix a potential deadlock during NFIT teardown
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 -SUBLEVEL = 274 +SUBLEVEL = 275 EXTRAVERSION = NAME = "People's Front"
arch/arm/boot/dts/rk3288.dtsi +1 -0
@@ -1172,6 +1172,7 @@ clock-names = "dp", "pclk"; phys = <&edp_phy>; phy-names = "dp"; + power-domains = <&power RK3288_PD_VIO>; resets = <&cru SRST_EDP>; reset-names = "dp"; rockchip,grf = <&grf>;
drivers/acpi/nfit/core.c +1 -1
@@ -3442,8 +3442,8 @@ void acpi_nfit_shutdown(void *data)mutex_lock (&acpi_desc->init_mutex);set_bit (ARS_CANCEL , &acpi_desc->scrub_flags); -cancel_delayed_work_sync (&acpi_desc->dwork);mutex_unlock (&acpi_desc->init_mutex); +cancel_delayed_work_sync (&acpi_desc->dwork);/* * Bounce the nvdimm bus lock to make sure any in-flight
drivers/dma/sh/rcar-dmac.c +4 -1
@@ -1816,7 +1816,10 @@ static int rcar_dmac_probe(struct platform_device *pdev) dmac->dev = &pdev->dev;platform_set_drvdata (pdev, dmac); dmac->dev->dma_parms = &dmac->parms; -dma_set_max_seg_size (dmac->dev,RCAR_DMATCR_MASK ); + ret =dma_set_max_seg_size (dmac->dev,RCAR_DMATCR_MASK ); +if (ret) +return ret; + ret =dma_set_mask_and_coherent (dmac->dev,DMA_BIT_MASK (40 ));if (ret)return ret;
drivers/infiniband/hw/hfi1/user_exp_rcv.c +2 -7
@@ -215,16 +215,11 @@ static void unpin_rcv_pages(struct hfi1_filedata *fd,static int pin_rcv_pages (struct hfi1_filedata *fd,struct tid_user_buf *tidbuf) {int pinned; -unsigned int npages; +unsigned int npages = tidbuf->npages;unsigned long vaddr = tidbuf->vaddr;struct page **pages =NULL ;struct hfi1_devdata *dd = fd->uctxt->dd; -/* Get the number of pages the user buffer spans */ - npages =num_user_pages (vaddr, tidbuf->length); -if (!npages) -return -EINVAL ; -if (npages > fd->uctxt->expected_count) {dd_dev_err (dd,"Expected buffer too big\n" );return -EINVAL ;
@@ -258,7 +253,6 @@ static int pin_rcv_pages(struct hfi1_filedata *fd, struct tid_user_buf *tidbuf)return pinned; } tidbuf->pages = pages; - tidbuf->npages = npages; fd->tid_n_pinned += pinned;return pinned; }
@@ -334,6 +328,7 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, tidbuf->vaddr = tinfo->vaddr; tidbuf->length = tinfo->length; + tidbuf->npages =num_user_pages (tidbuf->vaddr, tidbuf->length); tidbuf->psets =kcalloc (uctxt->expected_count,sizeof (*tidbuf->psets),GFP_KERNEL );if (!tidbuf->psets) {
drivers/tty/vt/vc_screen.c +4 -3
@@ -266,10 +266,11 @@ vcs_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)ssize_t orig_count;long p = pos; - ret = -ENXIO ; vc =vcs_vc (inode, &viewed); -if (!vc) - goto unlock_out; +if (!vc) { + ret = -ENXIO ; +break ; + }/* Check whether we are above size each round, * as copy_to_user at the end of this loop
drivers/usb/core/hub.c +2 -3
@@ -2345,9 +2345,8 @@ static int usb_enumerate_device_otg(struct usb_device *udev)* usb_enumerate_device - Read device configs/intfs/otg (usbcore-internal) * @udev: newly addressed device (in ADDRESS state) * -* This is only called by usb_new_device() and usb_authorize_device() -* and FIXME -- all comments that apply to them apply here wrt to -* environment. +* This is only called by usb_new_device() -- all comments that apply there +* apply here wrt to environment. * * If the device is WUSB and not authorized, we don't attempt to read * the string descriptors, as they will be errored out by the device
drivers/usb/core/sysfs.c +0 -5
@@ -888,11 +888,7 @@ read_descriptors(struct file *filp, struct kobject *kobj,size_t srclen, n;int cfgno;void *src; -int retval; - retval =usb_lock_device_interruptible (udev); -if (retval <0 ) -return -EINTR ;/* The binary attribute begins with the device descriptor. * Following that are the raw descriptor entries for all the * configurations (config plus subsidiary descriptors).
@@ -917,7 +913,6 @@ read_descriptors(struct file *filp, struct kobject *kobj, off -= srclen; } } -usb_unlock_device (udev);return count - nleft; }
drivers/usb/serial/option.c +4 -0
@@ -402,6 +402,8 @@ static void option_instat_callback(struct urb *urb);#define LONGCHEER_VENDOR_ID 0x1c9e/* 4G Systems products */ +/* This one was sold as the VW and Skoda "Carstick LTE" */ +#define FOUR_G_SYSTEMS_PRODUCT_CARSTICK_LTE 0x7605/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * * It seems to contain a Qualcomm QSC6240/6290 chipset */ #define FOUR_G_SYSTEMS_PRODUCT_W14 0x9603
@@ -1976,6 +1978,8 @@ static const struct usb_device_id option_ids[] = { .driver_info = RSVD(2) }, { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) }, { USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) }, + { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_CARSTICK_LTE), + .driver_info = RSVD(0) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14), .driver_info = NCTRL(0) | NCTRL(1) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W100),
fs/btrfs/send.c +3 -3
@@ -6826,10 +6826,10 @@ long btrfs_ioctl_send(struct file *mnt_file, struct btrfs_ioctl_send_args *arg)/* * Check that we don't overflow at later allocations, we request * clone_sources_count + 1 items, and compare to unsigned long inside -* access_ok. +* access_ok. Also set an upper limit for allocation size so this can't +* easily exhaust memory. Max number of clone sources is about 200K. */ -if (arg->clone_sources_count > -ULONG_MAX /sizeof (struct clone_root ) -1 ) { +if (arg->clone_sources_count >SZ_8M /sizeof (struct clone_root )) { ret = -EINVAL ; goto out; }
net/caif/caif_socket.c +1 -0
@@ -1022,6 +1022,7 @@ static void caif_sock_destructor(struct sock *sk)return ; }sk_stream_kill_queues (&cf_sk->sk); +WARN_ON (sk->sk_forward_alloc);caif_free_client (&cf_sk->layer); }
net/core/stream.c +0 -1
@@ -209,7 +209,6 @@ void sk_stream_kill_queues(struct sock *sk)sk_mem_reclaim (sk);WARN_ON (sk->sk_wmem_queued); -WARN_ON (sk->sk_forward_alloc);/* It is _impossible_ for the backlog to contain anything * when we get here. All user references to this socket