Linux 4.19.299
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.19.299 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/qcom-mdm9615.dtsi | 14 arch/arm/lib/memset.S | 1 arch/sh/Kconfig.debug | 11 drivers/acpi/device_sysfs.c | 10 drivers/base/regmap/regmap-debugfs.c | 2 drivers/char/hw_random/geode-rng.c | 6 drivers/clk/clk-npcm7xx.c | 2 drivers/clk/clk-scmi.c | 1 drivers/clk/keystone/pll.c | 15 drivers/clk/mediatek/clk-mt2701.c | 8 drivers/clk/mediatek/clk-mt6797.c | 6 drivers/clk/qcom/clk-rcg2.c | 14 drivers/crypto/chelsio/chtls/chtls_cm.c | 2 drivers/dma/pxa_dma.c | 1 drivers/dma/ti/edma.c | 4 drivers/firmware/ti_sci.c | 46 drivers/gpu/drm/radeon/evergreen.c | 7 drivers/gpu/drm/rockchip/cdn-dp-core.c | 15 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 drivers/hid/hid-cp2112.c | 23 drivers/hwmon/coretemp.c | 2 drivers/infiniband/hw/hfi1/efivar.c | 2 drivers/input/rmi4/rmi_bus.c | 2 drivers/leds/leds-pwm.c | 41 drivers/leds/trigger/ledtrig-cpu.c | 17 drivers/media/pci/bt8xx/bttv-driver.c | 1 drivers/media/platform/s3c-camif/camif-capture.c | 6 drivers/media/usb/dvb-usb-v2/af9035.c | 13 drivers/mfd/dln2.c | 1 drivers/misc/ti-st/st_core.c | 7 drivers/mmc/core/mmc.c | 2 drivers/net/can/Makefile | 7 drivers/net/can/dev.c | 1324 ------------- drivers/net/can/dev/Makefile | 7 drivers/net/can/dev/dev.c | 1326 ++++++++++++++ drivers/net/can/dev/rx-offload.c | 404 ++++ drivers/net/can/rx-offload.c | 404 ---- drivers/net/ethernet/broadcom/tg3.c | 3 drivers/net/ethernet/intel/i40e/i40e_main.c | 10 drivers/net/ethernet/realtek/r8169_main.c | 56 drivers/net/ipvlan/ipvlan_core.c | 8 drivers/net/ipvlan/ipvlan_main.c | 1 drivers/net/macsec.c | 70 drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c | 2 drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.c | 2 drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.c | 2 drivers/nvdimm/region_devs.c | 8 drivers/pcmcia/cs.c | 1 drivers/pcmcia/ds.c | 14 drivers/platform/x86/wmi.c | 50 drivers/pwm/pwm-brcmstb.c | 4 drivers/pwm/pwm-sti.c | 75 drivers/thermal/thermal_core.c | 6 drivers/tty/tty_jobctrl.c | 17 drivers/usb/dwc2/hcd.c | 2 drivers/usb/usbip/stub_dev.c | 9 drivers/video/fbdev/fsl-diu-fb.c | 2 drivers/video/fbdev/imsttfb.c | 33 fs/btrfs/ioctl.c | 10 fs/ext4/extents.c | 10 fs/f2fs/file.c | 1 include/linux/netdevice.h | 1 include/linux/preempt.h | 30 kernel/irq/matrix.c | 6 mm/readahead.c | 3 net/dccp/ipv4.c | 6 net/dccp/ipv6.c | 6 net/ipv4/tcp_metrics.c | 15 net/ipv6/ip6_output.c | 8 net/ipv6/syncookies.c | 7 net/llc/llc_input.c | 10 net/llc/llc_s_ac.c | 3 net/llc/llc_station.c | 3 net/netfilter/xt_recent.c | 2 net/smc/af_smc.c | 43 net/smc/smc.h | 5 net/smc/smc_cdc.c | 2 net/smc/smc_close.c | 26 net/smc/smc_close.h | 1 net/tipc/netlink.c | 4 sound/soc/intel/skylake/skl-sst-utils.c | 1 sound/soc/omap/ams-delta.c | 4 tools/iio/iio_generic_buffer.c | 59 84 files changed, 2271 insertions(+), 2129 deletions(-)
Alexandru Ardelean (1):
tools: iio: privatize globals and functions in iio_generic_buffer.c file
Andrii Staikov (1):
i40e: fix potential memory leaks in i40e_remove()
Armin Wolf (2):
platform/x86: wmi: Fix probe failure when failing to register WMI devices platform/x86: wmi: Fix opening of char device
Arnd Bergmann (1):
fbdev: fsl-diu-fb: mark wr_reg_wa() static
Barnabás Pőcze (1):
platform/x86: wmi: remove unnecessary initializations
Cezary Rojewski (1):
ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails
Chao Yu (1):
f2fs: fix to initialize map.m_pblk in f2fs_precache_extents()
Chen Yu (1):
genirq/matrix: Exclude managed interrupts in irq_matrix_allocated()
Chenyuan Mi (1):
tools: iio: iio_generic_buffer: Fix some integer type and calculation
Christophe JAILLET (5):
ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias()
regmap: debugfs: Fix a erroneous check after snprintf() drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe()
leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu'
dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc()
Clayton Yager (1):
macsec: Fix traffic counters/statistics
D. Wythe (1):
net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT
Dan Carpenter (5):
thermal: core: prevent potential string overflow
clk: keystone: pll: fix a couple NULL vs IS_ERR() checks
dmaengine: ti: edma: handle irq_of_parse_and_map() errors
Input: synaptics-rmi4 - fix use after free in rmi_unregister_function()
fbdev: imsttfb: fix a resource leak in probe
Danny Kaehn (1):
hid: cp2112: Fix duplicate workqueue initialization
Devi Priya (1):
clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies
Dhruva Gole (1):
firmware: ti_sci: Mark driver as non removable
Dinghao Liu (1):
mfd: dln2: Fix double put in dln2_probe
Dmitry Antipov (1):
wifi: rtlwifi: fix EDCA limit set by BT coexistence
Dominique Martinet (1):
Revert "mmc: core: Capture correct oemid-bits for eMMC cards"
Eric Dumazet (7):
tcp_metrics: add missing barriers on delete
tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics()
tcp_metrics: do not create an entry from tcp_init_metrics()
chtls: fix tp->rcv_tstamp initialization
macsec: use DEV_STATS_INC()
net: add DEV_STATS_READ() helper
ipvlan: properly track tx_errors
Filipe Manana (1):
btrfs: use u64 for buffer sizes in the tree search ioctls
Florian Fainelli (1):
pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume
Geert Uytterhoeven (1):
sh: bios: Revive earlyprintk support
George Shuklin (1):
tg3: power down device only on SYSTEM_POWER_OFF
Gou Hao (1):
ext4: move 'ix' sanity check to corrent position
Greg Kroah-Hartman (1):
Linux 4.19.299
Hans Verkuil (1):
media: dvb-usb-v2: af9035: fix missing unlock
Heiner Kallweit (2):
r8169: improve rtl_set_rx_mode
r8169: respect userspace disabling IFF_MULTICAST
Helge Deller (1):
fbdev: imsttfb: Fix error path of imsttfb_probe()
Jia-Ju Bai (1):
usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency
Jiasheng Jiang (2):
clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data
Jinjie Ruan (1):
misc: st_core: Do not call kfree_skb() under spin_lock_irqsave()
Jonas Blixt (1):
USB: usbip: fix stub_dev hub disconnect
Jonas Gorski (1):
hwrng: geode - fix accessing registers
Jonas Karlman (1):
drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs
Jonathan Neuschäfer (1):
clk: npcm7xx: Fix incorrect kfree
Karsten Graul (1):
net/smc: wait for pending work before clcsock release_sock
Katya Orlova (1):
media: s3c-camif: Avoid inappropriate kfree()
Konstantin Meskhidze (1):
drm/radeon: possible buffer overflow
Krzysztof Kozlowski (1):
ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator
Kuninori Morimoto (1):
ASoC: ams-delta.c: use component after check
Kuniyuki Iwashima (2):
dccp: Call security_inet_conn_request() after setting IPv4 addresses. dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses.
Kursad Oney (1):
ARM: 9321/1: memset: cast the constant byte to unsigned char
Leon Romanovsky (1):
RDMA/hfi1: Workaround truncation compilation error
Linus Walleij (1):
HID: cp2112: Use irqchip template
Maciej Żenczykowski (1):
netfilter: xt_recent: fix (increase) ipv6 literal buffer length
Marc Kleine-Budde (3):
can: dev: move driver related infrastructure into separate subdir
can: dev: can_restart(): don't crash kernel if carrier is OK
can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on()
Matti Vaittinen (1):
tools: iio: iio_generic_buffer ensure alignment
Patrick Thompson (1):
net: r8169: Disable multicast filter for RTL8168H and RTL8107E
Pavel Machek (1):
ledtrig-cpu: Limit to 8 CPUs
Reuben Hawkins (1):
vfs: fix readahead(2) on block devices
Shigeru Yoshida (1):
tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING
Sudeep Holla (1):
clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped
Thierry Reding (1):
pwm: sti: Avoid conditional gotos
Thomas Gleixner (1):
sched/rt: Provide migrate_disable/enable() inlines
Tomas Glozar (1):
nd_btt: Make BTT lanes preemptible
Ursula Braun (1):
net/smc: postpone release of clcsock
Uwe Kleine-König (4):
leds: pwm: simplify if condition
leds: pwm: convert to atomic PWM API
leds: pwm: Don't disable the PWM when the LED should be off
pwm: sti: Reduce number of allocations and drop usage of chip_data
Willem de Bruijn (1):
llc: verify mac len before reading mac header
Yan Zhai (1):
ipv6: avoid atomic fragment on GSO packets
Yang Yingliang (3):
pcmcia: cs: fix possible hung task and memory leak pccardd()
pcmcia: ds: fix refcount leak in pcmcia_device_add()
pcmcia: ds: fix possible name leak in error path in pcmcia_device_add()
Yi Yang (1):
tty: tty_jobctrl: fix pid memleak in disassociate_ctty()
Zhang Rui (1):
hwmon: (coretemp) Fix potentially truncated sysfs attribute name
Zheng Wang (1):
media: bttv: fix use after free error due to btv->timeout timer
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 -SUBLEVEL = 298 +SUBLEVEL = 299 EXTRAVERSION = NAME = "People's Front"
arch/arm/boot/dts/qcom-mdm9615.dtsi +6 -8
@@ -82,14 +82,12 @@ }; }; - regulators { - vsdcc_fixed: vsdcc-regulator { - compatible = "regulator-fixed"; - regulator-name = "SDCC Power"; - regulator-min-microvolt = <2700000>; - regulator-max-microvolt = <2700000>; - regulator-always-on; - }; + vsdcc_fixed: vsdcc-regulator { + compatible = "regulator-fixed"; + regulator-name = "SDCC Power"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2700000>; + regulator-always-on; }; soc: soc {
arch/arm/lib/memset.S +1 -0
@@ -19,6 +19,7 @@ ENTRY(mmioset) ENTRY(memset) UNWIND( .fnstart ) + and r1, r1, #255 @ cast to unsigned char ands r3, r0, #3 @ 1 unaligned? mov ip, r0 @ preserve r0 as return value bne 6f @ 1
arch/sh/Kconfig.debug +11 -0
@@ -26,6 +26,17 @@ config STACK_DEBUG every function call and will therefore incur a major performance hit. Most users should say N. +config EARLY_PRINTK + bool "Early printk" + depends on SH_STANDARD_BIOS + help + Say Y here to redirect kernel printk messages to the serial port + used by the SH-IPL bootloader, starting very early in the boot + process and ending when the kernel's serial console is initialised. + This option is only useful while porting the kernel to a new machine, + when the kernel may crash or hang before the serial console is + initialised. If unsure, say N. + config 4KSTACKS bool "Use 4Kb for kernel stacks instead of 8Kb" depends on DEBUG_KERNEL && (MMU || BROKEN) && !PAGE_SIZE_64KB
drivers/acpi/device_sysfs.c +6 -4
@@ -164,8 +164,8 @@ static int create_pnp_modalias(struct acpi_device *acpi_dev, char *modalias,return 0 ; len =snprintf (modalias, size,"acpi:" ); -if (len <=0 ) -return len; +if (len >= size) +return -ENOMEM ; size -= len;
@@ -218,8 +218,10 @@ static int create_of_modalias(struct acpi_device *acpi_dev, char *modalias, len =snprintf (modalias, size,"of:N%sT" , (char *)buf.pointer);ACPI_FREE (buf.pointer); -if (len <=0 ) -return len; +if (len >= size) +return -ENOMEM ; + + size -= len; of_compatible = acpi_dev->data.of_compatible;if (of_compatible->type ==ACPI_TYPE_PACKAGE ) {
drivers/base/regmap/regmap-debugfs.c +1 -1
@@ -53,7 +53,7 @@ static ssize_t regmap_name_read_file(struct file *file, name = map->dev->driver->name; ret =snprintf (buf,PAGE_SIZE ,"%s\n" , name); -if (ret <0 ) { +if (ret >=PAGE_SIZE ) {kfree (buf);return ret; }
drivers/char/hw_random/geode-rng.c +4 -2
@@ -58,7 +58,8 @@ struct amd_geode_priv {static int geode_rng_data_read (struct hwrng *rng,u32 *data) { -void __iomem *mem = (void __iomem *)rng->priv; +struct amd_geode_priv *priv = (struct amd_geode_priv *)rng->priv; +void __iomem *mem = priv->membase; *data =readl (mem +GEODE_RNG_DATA_REG );
@@ -67,7 +68,8 @@ static int geode_rng_data_read(struct hwrng *rng, u32 *data)static int geode_rng_data_present (struct hwrng *rng,int wait) { -void __iomem *mem = (void __iomem *)rng->priv; +struct amd_geode_priv *priv = (struct amd_geode_priv *)rng->priv; +void __iomem *mem = priv->membase;int data, i;for (i =0 ; i <20 ; i++) {
drivers/clk/clk-npcm7xx.c +1 -1
@@ -647,7 +647,7 @@ static void __init npcm7xx_clk_init(struct device_node *clk_np)return ; npcm7xx_init_fail: -kfree (npcm7xx_clk_data->hws); +kfree (npcm7xx_clk_data); npcm7xx_init_np_err:iounmap (clk_base); npcm7xx_init_error:
drivers/clk/clk-scmi.c +1 -0
@@ -170,6 +170,7 @@ static int scmi_clocks_probe(struct scmi_device *sdev) sclk->info = handle->clk_ops->info_get (handle, idx);if (!sclk->info) {dev_dbg (dev,"invalid clock info for idx %d\n" , idx); +devm_kfree (dev, sclk);continue ; }
drivers/clk/keystone/pll.c +9 -6
@@ -285,12 +285,13 @@ static void __init of_pll_div_clk_init(struct device_node *node) clk =clk_register_divider (NULL , clk_name, parent_name,0 , reg, shift, mask,0 ,NULL ); -if (clk) { -of_clk_add_provider (node, of_clk_src_simple_get, clk); - }else { +if (IS_ERR (clk)) {pr_err ("%s: error registering divider %s\n" , __func__, clk_name);iounmap (reg); +return ; } + +of_clk_add_provider (node, of_clk_src_simple_get, clk); }CLK_OF_DECLARE (pll_divider_clock,"ti,keystone,pll-divider-clock" , of_pll_div_clk_init);
@@ -332,9 +333,11 @@ static void __init of_pll_mux_clk_init(struct device_node *node) clk =clk_register_mux (NULL , clk_name, (const char **)&parents,ARRAY_SIZE (parents) ,0 , reg, shift, mask,0 ,NULL ); -if (clk) -of_clk_add_provider (node, of_clk_src_simple_get, clk); -else +if (IS_ERR (clk)) {pr_err ("%s: error registering mux %s\n" , __func__, clk_name); +return ; + } + +of_clk_add_provider (node, of_clk_src_simple_get, clk); }CLK_OF_DECLARE (pll_mux_clock,"ti,keystone,pll-mux-clock" , of_pll_mux_clk_init);
drivers/clk/mediatek/clk-mt2701.c +8 -0
@@ -688,6 +688,8 @@ static int mtk_topckgen_init(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_TOP_NR ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_fixed_clks (top_fixed_clks,ARRAY_SIZE (top_fixed_clks), clk_data);
@@ -755,6 +757,8 @@ static void __init mtk_infrasys_init_early(struct device_node *node)if (!infra_clk_data) { infra_clk_data =mtk_alloc_clk_data (CLK_INFRA_NR ); +if (!infra_clk_data) +return ;for (i =0 ; i <CLK_INFRA_NR ; i++) infra_clk_data->clks[i] =ERR_PTR (-EPROBE_DEFER );
@@ -781,6 +785,8 @@ static int mtk_infrasys_init(struct platform_device *pdev)if (!infra_clk_data) { infra_clk_data =mtk_alloc_clk_data (CLK_INFRA_NR ); +if (!infra_clk_data) +return -ENOMEM ; }else {for (i =0 ; i <CLK_INFRA_NR ; i++) {if (infra_clk_data->clks[i] ==ERR_PTR (-EPROBE_DEFER ))
@@ -909,6 +915,8 @@ static int mtk_pericfg_init(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_PERI_NR ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_gates (node, peri_clks,ARRAY_SIZE (peri_clks), clk_data);
drivers/clk/mediatek/clk-mt6797.c +6 -0
@@ -396,6 +396,8 @@ static int mtk_topckgen_init(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_TOP_NR ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_factors (top_fixed_divs,ARRAY_SIZE (top_fixed_divs), clk_data);
@@ -554,6 +556,8 @@ static void mtk_infrasys_init_early(struct device_node *node)if (!infra_clk_data) { infra_clk_data =mtk_alloc_clk_data (CLK_INFRA_NR ); +if (!infra_clk_data) +return ;for (i =0 ; i <CLK_INFRA_NR ; i++) infra_clk_data->clks[i] =ERR_PTR (-EPROBE_DEFER );
@@ -578,6 +582,8 @@ static int mtk_infrasys_init(struct platform_device *pdev)if (!infra_clk_data) { infra_clk_data =mtk_alloc_clk_data (CLK_INFRA_NR ); +if (!infra_clk_data) +return -ENOMEM ; }else {for (i =0 ; i <CLK_INFRA_NR ; i++) {if (infra_clk_data->clks[i] ==ERR_PTR (-EPROBE_DEFER ))
drivers/clk/qcom/clk-rcg2.c +4 -10
@@ -132,17 +132,11 @@ static int clk_rcg2_set_parent(struct clk_hw *hw, u8 index)static unsigned long calc_rate (unsigned long rate,u32 m,u32 n,u32 mode,u32 hid_div) { -if (hid_div) { - rate *=2 ; - rate /= hid_div +1 ; - } +if (hid_div) + rate =mult_frac (rate,2 , hid_div +1 ); -if (mode) { -u64 tmp = rate; - tmp *= m; -do_div (tmp, n); - rate = tmp; - } +if (mode) + rate =mult_frac (rate, m, n);return rate; }
drivers/crypto/chelsio/chtls/chtls_cm.c +1 -1
@@ -2071,7 +2071,7 @@ static void chtls_rx_ack(struct sock *sk, struct sk_buff *skb)if (tp->snd_una != snd_una) { tp->snd_una = snd_una; - tp->rcv_tstamp =tcp_time_stamp (tp); + tp->rcv_tstamp = tcp_jiffies32;if (tp->snd_una == tp->snd_nxt && !csk_flag_nochk (csk,CSK_TX_FAILOVER ))csk_reset_flag (csk,CSK_TX_WAIT_IDLE );
drivers/dma/pxa_dma.c +0 -1
@@ -772,7 +772,6 @@ static void pxad_free_desc(struct virt_dma_desc *vd)dma_addr_t dma;struct pxad_desc_sw *sw_desc =to_pxad_sw_desc (vd); -BUG_ON (sw_desc->nb_desc ==0 );for (i = sw_desc->nb_desc -1 ; i >=0 ; i--) {if (i >0 ) dma = sw_desc->hw_desc[i -1 ]->ddadr;
drivers/dma/ti/edma.c +2 -2
@@ -2303,7 +2303,7 @@ static int edma_probe(struct platform_device *pdev)if (irq <0 && node) irq =irq_of_parse_and_map (node,0 ); -if (irq >=0 ) { +if (irq >0 ) { irq_name =devm_kasprintf (dev,GFP_KERNEL ,"%s_ccint" ,dev_name (dev)); ret = devm_request_irq(dev, irq, dma_irq_handler, 0, irq_name,
@@ -2319,7 +2319,7 @@ static int edma_probe(struct platform_device *pdev)if (irq <0 && node) irq =irq_of_parse_and_map (node,2 ); -if (irq >=0 ) { +if (irq >0 ) { irq_name =devm_kasprintf (dev,GFP_KERNEL ,"%s_ccerrint" ,dev_name (dev)); ret = devm_request_irq(dev, irq, dma_ccerr_handler, 0, irq_name,
drivers/firmware/ti_sci.c +1 -45
63 lines not on this page · raw message
drivers/gpu/drm/radeon/evergreen.c +4 -3
@@ -4815,14 +4815,15 @@ int evergreen_irq_process(struct radeon_device *rdev)break ;case 44 :/* hdmi */ afmt_idx = src_data; -if (!(afmt_status[afmt_idx] &AFMT_AZ_FORMAT_WTRIG )) -DRM_DEBUG ("IH: IH event w/o asserted irq bit?\n" ); -if (afmt_idx >5 ) {DRM_ERROR ("Unhandled interrupt: %d %d\n" , src_id, src_data);break ; } + +if (!(afmt_status[afmt_idx] &AFMT_AZ_FORMAT_WTRIG )) +DRM_DEBUG ("IH: IH event w/o asserted irq bit?\n" ); + afmt_status[afmt_idx] &= ~AFMT_AZ_FORMAT_WTRIG ; queue_hdmi = true;DRM_DEBUG ("IH: HDMI%d\n" , afmt_idx +1 );
drivers/gpu/drm/rockchip/cdn-dp-core.c +13 -2
@@ -1156,6 +1156,7 @@ static int cdn_dp_probe(struct platform_device *pdev)struct cdn_dp_device *dp;struct extcon_dev *extcon;struct phy *phy; +int ret;int i; dp =devm_kzalloc (dev,sizeof (*dp),GFP_KERNEL );
@@ -1196,9 +1197,19 @@ static int cdn_dp_probe(struct platform_device *pdev)mutex_init (&dp->lock);dev_set_drvdata (dev, dp); -cdn_dp_audio_codec_init (dp, dev); + ret =cdn_dp_audio_codec_init (dp, dev); +if (ret) +return ret; + + ret =component_add (dev, &cdn_dp_component_ops); +if (ret) + goto err_audio_deinit; -return component_add (dev, &cdn_dp_component_ops); +return 0 ; + +err_audio_deinit: +platform_device_unregister (dp->audio_pdev); +return ret; }static int cdn_dp_remove (struct platform_device *pdev)
drivers/gpu/drm/rockchip/rockchip_drm_vop.c +2 -1
@@ -1091,7 +1091,8 @@ static struct drm_crtc_state *vop_crtc_duplicate_state(struct drm_crtc *crtc)if (WARN_ON (!crtc->state))return NULL ; - rockchip_state =kzalloc (sizeof (*rockchip_state),GFP_KERNEL ); + rockchip_state =kmemdup (to_rockchip_crtc_state (crtc->state), +sizeof (*rockchip_state),GFP_KERNEL );if (!rockchip_state)return NULL ;
drivers/hid/hid-cp2112.c +12 -11
@@ -1163,8 +1163,6 @@ static unsigned int cp2112_gpio_irq_startup(struct irq_data *d)struct gpio_chip *gc =irq_data_get_irq_chip_data (d);struct cp2112_device *dev =gpiochip_get_data (gc); -INIT_DELAYED_WORK (&dev->gpio_poll_worker, cp2112_gpio_poll_callback); -if (!dev->gpio_poll) { dev->gpio_poll = true;schedule_delayed_work (&dev->gpio_poll_worker,0 );
@@ -1245,6 +1243,7 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)struct cp2112_device *dev;u8 buf[3 ];struct cp2112_smbus_config_report config; +struct gpio_irq_chip *girq;int ret; dev =devm_kzalloc (&hdev->dev,sizeof (*dev),GFP_KERNEL );
@@ -1348,6 +1347,17 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id) dev->gc.can_sleep =1 ; dev->gc.parent = &hdev->dev; + girq = &dev->gc.irq; + girq->chip = &cp2112_gpio_irqchip; +/* The event comes from the outside so no parent handler */ + girq->parent_handler =NULL ; + girq->num_parents =0 ; + girq->parents =NULL ; + girq->default_type =IRQ_TYPE_NONE ; + girq->handler = handle_simple_irq; + +INIT_DELAYED_WORK (&dev->gpio_poll_worker, cp2112_gpio_poll_callback); + ret =gpiochip_add_data (&dev->gc, dev);if (ret <0 ) {hid_err (hdev,"error registering gpio chip\n" );
@@ -1363,17 +1373,8 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)chmod_sysfs_attrs (hdev);hid_hw_power (hdev,PM_HINT_NORMAL ); - ret =gpiochip_irqchip_add (&dev->gc, &cp2112_gpio_irqchip,0 , - handle_simple_irq,IRQ_TYPE_NONE ); -if (ret) { -dev_err (dev->gc.parent,"failed to add IRQ chip\n" ); - goto err_sysfs_remove; - } -return ret; -err_sysfs_remove: -sysfs_remove_group (&hdev->dev.kobj, &cp2112_attr_group); err_gpiochip_remove:gpiochip_remove (&dev->gc); err_free_i2c:
drivers/hwmon/coretemp.c +1 -1
@@ -54,7 +54,7 @@ MODULE_PARM_DESC(tjmax, "TjMax value in degrees Celsius");#define PKG_SYSFS_ATTR_NO 1/* Sysfs attribute for package temp */ #define BASE_SYSFS_ATTR_NO 2/* Sysfs Base attr no for coretemp */ #define NUM_REAL_CORES 128/* Number of Real cores per cpu */ -#define CORETEMP_NAME_LENGTH 19/* String Length of attrs */ +#define CORETEMP_NAME_LENGTH 28/* String Length of attrs */ #define MAX_CORE_ATTRS 4/* Maximum no of basic attrs */ #define TOTAL_ATTRS (MAX_CORE_ATTRS + 1)#define MAX_CORE_DATA (NUM_REAL_CORES + BASE_SYSFS_ATTR_NO)
drivers/infiniband/hw/hfi1/efivar.c +1 -1
@@ -152,7 +152,7 @@ int read_hfi1_efi_var(struct hfi1_devdata *dd, const char *kind, unsigned long *size, void **return_data) { char prefix_name[64]; -char name[64 ]; +char name[128 ];int result;int i;
drivers/input/rmi4/rmi_bus.c +1 -1
@@ -279,11 +279,11 @@ void rmi_unregister_function(struct rmi_function *fn)device_del (&fn->dev);of_node_put (fn->dev.of_node); -put_device (&fn->dev);for (i =0 ; i < fn->num_of_irqs; i++)irq_dispose_mapping (fn->irq[i]); +put_device (&fn->dev); }/**
drivers/leds/leds-pwm.c +9 -32
79 lines not on this page · raw message
drivers/leds/trigger/ledtrig-cpu.c +12 -5
@@ -1,14 +1,18 @@/* * ledtrig-cpu.c - LED trigger based on CPU activity * -* This LED trigger will be registered for each possible CPU and named as -* cpu0, cpu1, cpu2, cpu3, etc. +* This LED trigger will be registered for first 8 CPUs and named +* as cpu0..cpu7. There's additional trigger called cpu that +* is on when any CPU is active. +* +* If you want support for arbitrary number of CPUs, make it one trigger, +* with additional sysfs file selecting which CPU to watch. * * It can be bound to any LED just like other triggers using either a * board file or via sysfs interface. * * An API named ledtrig_cpu is exported for any user, who want to add CPU -* activity indication in their code +* activity indication in their code. * * Copyright 2011 Linus Walleij <[email protected]> * Copyright 2011 - 2012 Bryan Wu <[email protected]>
@@ -130,7 +134,7 @@ static int ledtrig_prepare_down_cpu(unsigned int cpu)static int __init ledtrig_cpu_init (void ) { -int cpu; +unsigned int cpu;int ret;/* Supports up to 9999 cpu cores */
@@ -149,7 +153,10 @@ static int __init ledtrig_cpu_init(void)for_each_possible_cpu (cpu) {struct led_trigger_cpu *trig = &per_cpu (cpu_trig, cpu); -snprintf (trig->name,MAX_NAME_LEN ,"cpu%d" , cpu); +if (cpu >=8 ) +continue ; + +snprintf (trig->name,MAX_NAME_LEN ,"cpu%u" , cpu);led_trigger_register_simple (trig->name, &trig->_trig); }
drivers/media/pci/bt8xx/bttv-driver.c +1 -0
@@ -4300,6 +4300,7 @@ static void bttv_remove(struct pci_dev *pci_dev)/* free resources */ free_irq (btv->c.pci->irq,btv); +del_timer_sync (&btv->timeout);iounmap (btv->bt848_mmio);release_mem_region (pci_resource_start (btv->c.pci,0 ),pci_resource_len (btv->c.pci,0 ));
drivers/media/platform/s3c-camif/camif-capture.c +2 -4
@@ -1142,12 +1142,12 @@ int s3c_camif_register_video_node(struct camif_dev *camif, int idx) ret =vb2_queue_init (q);if (ret) - goto err_vd_rel; +return ret; vp->pad.flags =MEDIA_PAD_FL_SINK ; ret =media_entity_pads_init (&vfd->entity,1 , &vp->pad);if (ret) - goto err_vd_rel; +return ret;video_set_drvdata (vfd, vp);
@@ -1179,8 +1179,6 @@ int s3c_camif_register_video_node(struct camif_dev *camif, int idx)v4l2_ctrl_handler_free (&vp->ctrl_handler); err_me_cleanup:media_entity_cleanup (&vfd->entity); -err_vd_rel: -video_device_release (vfd);return ret; }
drivers/media/usb/dvb-usb-v2/af9035.c +9 -4
@@ -337,8 +337,10 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, ret = -EOPNOTSUPP ; }else if ((msg[0 ].addr == state->af9033_i2c_addr[0 ]) || (msg[0 ].addr == state->af9033_i2c_addr[1 ])) { -if (msg[0 ].len <3 || msg[1 ].len <1 ) -return -EOPNOTSUPP ; +if (msg[0 ].len <3 || msg[1 ].len <1 ) { + ret = -EOPNOTSUPP ; + goto unlock; + }/* demod access via firmware interface */ reg = msg[0 ].buf[0 ] <<16 | msg[0 ].buf[1 ] <<8 | msg[0 ].buf[2 ];
@@ -398,8 +400,10 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, ret = -EOPNOTSUPP ; }else if ((msg[0 ].addr == state->af9033_i2c_addr[0 ]) || (msg[0 ].addr == state->af9033_i2c_addr[1 ])) { -if (msg[0 ].len <3 ) -return -EOPNOTSUPP ; +if (msg[0 ].len <3 ) { + ret = -EOPNOTSUPP ; + goto unlock; + }/* demod access via firmware interface */ reg = msg[0 ].buf[0 ] <<16 | msg[0 ].buf[1 ] <<8 | msg[0 ].buf[2 ];
@@ -474,6 +478,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, ret = -EOPNOTSUPP ; } +unlock:mutex_unlock (&d->i2c_mutex);if (ret <0 )
drivers/mfd/dln2.c +0 -1
@@ -800,7 +800,6 @@ static int dln2_probe(struct usb_interface *interface,dln2_stop_rx_urbs (dln2); out_free: -usb_put_dev (dln2->usb_dev);dln2_free (dln2);return ret;
drivers/misc/ti-st/st_core.c +4 -3
@@ -28,6 +28,7 @@#include <linux/skbuff.h> #include <linux/ti_wilink_st.h> +#include <linux/netdevice.h> extern void st_kim_recv (void *,const unsigned char *,long );void st_int_recv (void *,const unsigned char *,long );
@@ -436,7 +437,7 @@ static void st_int_enqueue(struct st_data_s *st_gdata, struct sk_buff *skb)case ST_LL_AWAKE_TO_ASLEEP :pr_err ("ST LL is illegal state(%ld)," "purging received skb." ,st_ll_getstate (st_gdata)); -kfree_skb (skb); +dev_kfree_skb_irq (skb);break ;case ST_LL_ASLEEP :skb_queue_tail (&st_gdata->tx_waitq, skb);
@@ -445,7 +446,7 @@ static void st_int_enqueue(struct st_data_s *st_gdata, struct sk_buff *skb)default :pr_err ("ST LL is illegal state(%ld)," "purging received skb." ,st_ll_getstate (st_gdata)); -kfree_skb (skb); +dev_kfree_skb_irq (skb);break ; }
@@ -499,7 +500,7 @@ void st_tx_wakeup(struct st_data_s *st_data)spin_unlock_irqrestore (&st_data->lock, flags);break ; } -kfree_skb (skb); +dev_kfree_skb_irq (skb);spin_unlock_irqrestore (&st_data->lock, flags); }/* if wake-up is set in another context- restart sending */
drivers/mmc/core/mmc.c +1 -1
@@ -98,7 +98,7 @@ static int mmc_decode_cid(struct mmc_card *card)case 3 :/* MMC v3.1 - v3.3 */ case 4 :/* MMC v4 */ card->cid.manfid =UNSTUFF_BITS (resp,120 ,8 ); - card->cid.oemid =UNSTUFF_BITS (resp,104 ,8 ); + card->cid.oemid =UNSTUFF_BITS (resp,104 ,16 ); card->cid.prod_name[0 ] =UNSTUFF_BITS (resp,96 ,8 ); card->cid.prod_name[1 ] =UNSTUFF_BITS (resp,88 ,8 ); card->cid.prod_name[2 ] =UNSTUFF_BITS (resp,80 ,8 );
drivers/net/can/Makefile +1 -6
@@ -7,12 +7,7 @@ obj-$(CONFIG_CAN_VCAN) += vcan.o obj-$(CONFIG_CAN_VXCAN) += vxcan.o obj-$(CONFIG_CAN_SLCAN) += slcan.o -obj-$(CONFIG_CAN_DEV) += can-dev.o -can-dev-y += dev.o -can-dev-y += rx-offload.o - -can-dev-$(CONFIG_CAN_LEDS) += led.o - +obj-y += dev/ obj-y += rcar/ obj-y += spi/ obj-y += usb/
drivers/net/can/dev.c deleted +0 -1324
1,324 lines not on this page · raw message
drivers/net/can/dev/Makefile new file +7 -0
@@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0 + +obj-$(CONFIG_CAN_DEV) += can-dev.o +can-dev-y += dev.o +can-dev-y += rx-offload.o + +can-dev-$(CONFIG_CAN_LEDS) += led.o
drivers/net/can/dev/dev.c new file +1326 -0
983 lines not on this page · raw message
drivers/net/can/dev/rx-offload.c new file +404 -0
404 lines not on this page · raw message
drivers/net/can/rx-offload.c deleted +0 -404
404 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_main.c +7 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +26 -30
56 lines not on this page · raw message
drivers/net/macsec.c +55 -15
70 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/wmi.c +21 -29
50 lines not on this page · raw message
drivers/pwm/pwm-sti.c +35 -40
75 lines not on this page · raw message
net/smc/af_smc.c +23 -20
43 lines not on this page · raw message
sound/soc/intel/skylake/skl-sst-utils.c +1 -0
Lines of this file are not shown. View the raw message.
tools/iio/iio_generic_buffer.c +39 -20
59 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.