Linux 4.14.286
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.14.286 kernel.
All users of the 4.14 kernel series must upgrade.
The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.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
------------
Documentation/ABI/testing/sysfs-bus-iio-vf610 | 2 Makefile | 2 arch/arm/boot/dts/imx6qdl.dtsi | 2 arch/arm/mach-axxia/platsmp.c | 1 arch/arm/mach-cns3xxx/core.c | 2 arch/arm/mach-exynos/exynos.c | 1 arch/mips/vr41xx/common/icu.c | 2 arch/powerpc/kernel/process.c | 2 arch/powerpc/kernel/rtas.c | 11 + arch/powerpc/platforms/powernv/powernv.h | 2 arch/powerpc/platforms/powernv/rng.c | 52 ++++++--- arch/powerpc/platforms/powernv/setup.c | 2 arch/powerpc/platforms/pseries/pseries.h | 2 arch/powerpc/platforms/pseries/rng.c | 11 - arch/powerpc/platforms/pseries/setup.c | 1 arch/x86/include/asm/kexec.h | 6 + arch/xtensa/kernel/time.c | 1 arch/xtensa/platforms/xtfpga/setup.c | 1 drivers/char/random.c | 4 drivers/gpio/gpio-vr41xx.c | 2 drivers/gpu/drm/drm_crtc_helper_internal.h | 10 - drivers/gpu/drm/drm_fb_helper.c | 21 --- drivers/gpu/drm/drm_kms_helper_common.c | 25 ++-- drivers/iio/accel/bma180.c | 3 drivers/iio/accel/mma8452.c | 10 + drivers/iio/adc/axp288_adc.c | 8 + drivers/iio/gyro/mpu3050-core.c | 1 drivers/iio/trigger/iio-trig-sysfs.c | 1 drivers/md/dm-era-target.c | 8 + drivers/net/bonding/bond_main.c | 4 drivers/net/ethernet/intel/igb/igb_main.c | 12 -- drivers/of/fdt.c | 8 + drivers/tty/vt/vt.c | 34 ----- drivers/tty/vt/vt_ioctl.c | 149 -------------------------- drivers/usb/chipidea/udc.c | 3 drivers/usb/serial/option.c | 6 + drivers/xen/features.c | 2 drivers/xen/xlate_mmu.c | 1 include/linux/kd.h | 8 - include/linux/kexec.h | 26 +++- include/linux/ratelimit.h | 12 +- include/trace/events/libata.h | 1 kernel/kexec_file.c | 18 --- lib/swiotlb.c | 3 scripts/mod/modpost.c | 2 45 files changed, 173 insertions(+), 312 deletions(-)
Andrew Donnellan (1):
powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address
Baruch Siach (1):
iio: adc: vf610: fix conversion mode sysfs node name
Carlo Lobrano (1):
USB: serial: option: add Telit LE910Cx 0x1250 composition
Christoph Hellwig (1):
drm: remove drm_fb_helper_modinit
Dmitry Rokosov (1):
iio:accel:bma180: rearrange iio trigger get and register
Edward Wu (1):
ata: libata: add qc->flags in ata_qc_complete_template tracepoint
Greg Kroah-Hartman (1):
Linux 4.14.286
Haibo Chen (1):
iio: accel: mma8452: ignore the return value of reset operation
Hans de Goede (1):
iio: adc: axp288: Override TS pin bias current for some models
Hsin-Yi Wang (1):
fdt: Update CRC check for rng-seed
Jason A. Donenfeld (4):
random: schedule mix_interrupt_randomness() less often
random: quiet urandom warning ratelimit suppression message powerpc/powernv: wire up rng during setup_arch powerpc/pseries: wire up rng during setup_arch()
Jay Vosburgh (1):
bonding: ARP monitor spams NETDEV_NOTIFY_PEERS notifiers
Jiri Slaby (1):
vt: drop old FONT ioctls
Julien Grall (1):
x86/xen: Remove undefined behavior in setup_features()
Kai-Heng Feng (1):
igb: Make DMA faster when CPU is active on the PCIe link
Liang He (2):
xtensa: xtfpga: Fix refcount leak bug in setup
xtensa: Fix refcount leak bug in time.c
Liu Shixin (1):
swiotlb: skip swiotlb_bounce when orig_addr is zero
Lucas Stach (1):
ARM: dts: imx6qdl: correct PU regulator ramp delay
Macpaul Lin (1):
USB: serial: option: add Quectel RM500K module support
Masahiro Yamada (2):
modpost: fix section mismatch check for exported init/exit sections
xen: unexport __init-annotated xen_xlate_map_ballooned_pages()
Miaoqian Lin (3):
ARM: exynos: Fix refcount leak in exynos_map_pmu
ARM: Fix refcount leak in axxia_boot_secondary
ARM: cns3xxx: Fix refcount leak in cns3xxx_init
Naveen N. Rao (2):
powerpc: Enable execve syscall exit tracepoint
kexec_file: drop weak attribute from arch_kexec_apply_relocations[_add]
Nikos Tsironis (1):
dm era: commit metadata in postsuspend after worker stops
Vincent Whitchurch (1):
iio: trigger: sysfs: fix use-after-free on remove
Xu Yang (1):
usb: chipidea: udc: check request status before setting device address
Yonglin Tan (1):
USB: serial: option: add Quectel EM05-G modem
Zheyu Ma (1):
iio: gyro: mpu3050: Fix the error handling in mpu3050_power_up()
huhai (1):
MIPS: Remove repetitive increase irq_err_count
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-bus-iio-vf610 +1 -1
@@ -1,4 +1,4 @@ -What: /sys/bus/iio/devices/iio:deviceX/conversion_mode +What: /sys/bus/iio/devices/iio:deviceX/in_conversion_mode KernelVersion: 4.2 Contact: [email protected] Description:
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 14 -SUBLEVEL = 285 +SUBLEVEL = 286 EXTRAVERSION = NAME = Petit Gorille
arch/arm/boot/dts/imx6qdl.dtsi +1 -1
@@ -699,7 +699,7 @@ regulator-name = "vddpu"; regulator-min-microvolt = <725000>; regulator-max-microvolt = <1450000>; - regulator-enable-ramp-delay = <150>; + regulator-enable-ramp-delay = <380>; anatop-reg-offset = <0x140>; anatop-vol-bit-shift = <9>; anatop-vol-bit-width = <5>;
arch/arm/mach-axxia/platsmp.c +1 -0
@@ -42,6 +42,7 @@ static int axxia_boot_secondary(unsigned int cpu, struct task_struct *idle)return -ENOENT ; syscon =of_iomap (syscon_np,0 ); +of_node_put (syscon_np);if (!syscon)return -ENOMEM ;
arch/arm/mach-cns3xxx/core.c +2 -0
@@ -379,6 +379,7 @@ static void __init cns3xxx_init(void)/* De-Asscer SATA Reset */ cns3xxx_pwr_soft_rst (CNS3XXX_PWR_SOFTWARE_RST (SATA )); } +of_node_put (dn); dn =of_find_compatible_node (NULL ,NULL ,"cavium,cns3420-sdhci" );if (of_device_is_available (dn)) {
@@ -392,6 +393,7 @@ static void __init cns3xxx_init(void)cns3xxx_pwr_clk_en (CNS3XXX_PWR_CLK_EN (SDIO ));cns3xxx_pwr_soft_rst (CNS3XXX_PWR_SOFTWARE_RST (SDIO )); } +of_node_put (dn); pm_power_off = cns3xxx_power_off;
arch/arm/mach-exynos/exynos.c +1 -0
@@ -167,6 +167,7 @@ static void exynos_map_pmu(void) np =of_find_matching_node (NULL , exynos_dt_pmu_match);if (np) pmu_base_addr =of_iomap (np,0 ); +of_node_put (np); }static void __init exynos_init_irq (void )
arch/mips/vr41xx/common/icu.c +0 -2
@@ -653,8 +653,6 @@ static int icu_get_irq(unsigned int irq)printk (KERN_ERR "spurious ICU interrupt: %04x,%04x\n" , pend1, pend2); -atomic_inc (&irq_err_count); -return -1 ; }
arch/powerpc/kernel/process.c +1 -1
@@ -1613,7 +1613,7 @@ void start_thread(struct pt_regs *regs, unsigned long start, unsigned long sp)tm_reclaim_current (0 );#endif -memset (regs->gpr,0 ,sizeof (regs->gpr)); +memset (®s->gpr[1 ],0 ,sizeof (regs->gpr) -sizeof (regs->gpr[0 ])); regs->ctr =0 ; regs->link =0 ; regs->xer =0 ;
arch/powerpc/kernel/rtas.c +10 -1
@@ -1104,7 +1104,7 @@ static struct rtas_filter rtas_filters[] __ro_after_init = { { "get-time-of-day", -1, -1, -1, -1, -1 }, { "ibm,get-vpd", -1, 0, -1, 1, 2 }, { "ibm,lpar-perftools", -1, 2, 3, -1, -1 }, - { "ibm,platform-dump", -1, 4, 5, -1, -1 }, + { "ibm,platform-dump", -1, 4, 5, -1, -1 }, /* Special cased */ { "ibm,read-slot-reset-state", -1, -1, -1, -1, -1 }, { "ibm,scan-log-dump", -1, 0, 1, -1, -1 }, { "ibm,set-dynamic-indicator", -1, 2, -1, -1, -1 },
@@ -1151,6 +1151,15 @@ static bool block_rtas_call(int token, int nargs, size =1 ; end = base + size -1 ; + +/* +* Special case for ibm,platform-dump - NULL buffer +* address is used to indicate end of dump processing +*/ +if (!strcmp (f->name,"ibm,platform-dump" ) && + base ==0 ) +return false; +if (!in_rmo_buf (base, end)) goto err; }
arch/powerpc/platforms/powernv/powernv.h +2 -0
@@ -29,4 +29,6 @@ extern void opal_event_shutdown(void);bool cpu_core_split_required (void ); +void pnv_rng_init (void ); +#endif /* _POWERNV_H */
arch/powerpc/platforms/powernv/rng.c +36 -16
90 lines not on this page · raw message
arch/powerpc/platforms/powernv/setup.c +2 -0
@@ -170,6 +170,8 @@ static void __init pnv_setup_arch(void) powersave_nap =1 ;/* XXX PMCS */ + +pnv_rng_init (); }static void __init pnv_init (void )
arch/powerpc/platforms/pseries/pseries.h +2 -0
@@ -102,4 +102,6 @@ int dlpar_workqueue_init(void);void pseries_setup_rfi_flush (void ); +void pseries_rng_init (void ); +#endif /* _PSERIES_PSERIES_H */
arch/powerpc/platforms/pseries/rng.c +3 -8
@@ -14,6 +14,7 @@#include <asm/archrandom.h> #include <asm/machdep.h> #include <asm/plpar_wrappers.h> +#include "pseries.h" static int pseries_get_random_long (unsigned long *v)
@@ -28,19 +29,13 @@ static int pseries_get_random_long(unsigned long *v)return 0 ; } -static __init int rng_init (void ) +void __init pseries_rng_init (void ) {struct device_node *dn; dn =of_find_compatible_node (NULL ,NULL ,"ibm,random" );if (!dn) -return -ENODEV ; - -pr_info ("Registering arch random hook.\n" ); - +return ; ppc_md.get_random_seed = pseries_get_random_long; -of_node_put (dn); -return 0 ; } -machine_subsys_initcall (pseries, rng_init);
arch/powerpc/platforms/pseries/setup.c +1 -0
@@ -594,6 +594,7 @@ static void __init pSeries_setup_arch(void) } ppc_md.pcibios_root_bridge_prepare = pseries_root_bridge_prepare; +pseries_rng_init (); }static int __init pSeries_init_panel (void )
arch/x86/include/asm/kexec.h +6 -0
@@ -21,6 +21,7 @@#ifndef __ASSEMBLY__#include <linux/string.h> +#include <linux/module.h> #include <asm/page.h> #include <asm/ptrace.h>
@@ -217,6 +218,11 @@ extern int arch_kexec_post_alloc_pages(void *vaddr, unsigned int pages,extern void arch_kexec_pre_free_pages (void *vaddr,unsigned int pages);#define arch_kexec_pre_free_pages arch_kexec_pre_free_pages +#ifdef CONFIG_KEXEC_FILE +int arch_kexec_apply_relocations_add (const Elf_Ehdr *ehdr, +Elf_Shdr *sechdrs,unsigned int relsec); +#define arch_kexec_apply_relocations_add arch_kexec_apply_relocations_add +#endif #endif typedef void crash_vmclear_fn (void );
arch/xtensa/kernel/time.c +1 -0
@@ -146,6 +146,7 @@ static void __init calibrate_ccount(void) cpu =of_find_compatible_node (NULL ,NULL ,"cdns,xtensa-cpu" );if (cpu) { clk =of_clk_get (cpu,0 ); +of_node_put (cpu);if (!IS_ERR (clk)) { ccount_freq =clk_get_rate (clk);return ;
arch/xtensa/platforms/xtfpga/setup.c +1 -0
@@ -152,6 +152,7 @@ static int __init machine_setup(void)if ((eth =of_find_compatible_node (eth,NULL ,"opencores,ethoc" )))update_local_mac (eth); +of_node_put (eth);return 0 ; }arch_initcall (machine_setup);
drivers/char/random.c +2 -2
@@ -88,7 +88,7 @@ static RAW_NOTIFIER_HEAD(random_ready_chain);/* Control how we warn userspace. */ static struct ratelimit_state urandom_warning = -RATELIMIT_STATE_INIT ("warn_urandom_randomness" ,HZ ,3 ); +RATELIMIT_STATE_INIT_FLAGS ("urandom_warning" ,HZ ,3 ,RATELIMIT_MSG_ON_RELEASE );static int ratelimit_disable__read_mostly =IS_ENABLED (CONFIG_WARN_ALL_UNSEEDED_RANDOM );module_param_named (ratelimit_disable, ratelimit_disable, int,0644 );
@@ -996,7 +996,7 @@ void add_interrupt_randomness(int irq)if (new_count &MIX_INFLIGHT )return ; -if (new_count <64 && !time_is_before_jiffies (fast_pool->last +HZ )) +if (new_count <1024 && !time_is_before_jiffies (fast_pool->last +HZ ))return ;if (unlikely (!fast_pool->mix.func))
drivers/gpio/gpio-vr41xx.c +0 -2
@@ -224,8 +224,6 @@ static int giu_get_irq(unsigned int irq)printk (KERN_ERR "spurious GIU interrupt: %04x(%04x),%04x(%04x)\n" , maskl, pendl, maskh, pendh); -atomic_inc (&irq_err_count); -return -EINVAL ; }
drivers/gpu/drm/drm_crtc_helper_internal.h +0 -10
@@ -32,16 +32,6 @@#include <drm/drm_encoder.h> #include <drm/drm_modes.h> -/* drm_fb_helper.c */ -#ifdef CONFIG_DRM_FBDEV_EMULATION -int drm_fb_helper_modinit (void ); -#else -static inline int drm_fb_helper_modinit (void ) -{ -return 0 ; -} -#endif -/* drm_dp_aux_dev.c */ #ifdef CONFIG_DRM_DP_AUX_CHARDEV int drm_dp_aux_dev_init (void );
drivers/gpu/drm/drm_fb_helper.c +0 -21
@@ -2612,24 +2612,3 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)return 0 ; }EXPORT_SYMBOL (drm_fb_helper_hotplug_event); - -/* The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT) -* but the module doesn't depend on any fb console symbols. At least -* attempt to load fbcon to avoid leaving the system without a usable console. -*/ -int __init drm_fb_helper_modinit (void ) -{ -#if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE ) && !defined(CONFIG_EXPERT ) -const char name[] ="fbcon" ; -struct module *fbcon; - -mutex_lock (&module_mutex); - fbcon =find_module (name); -mutex_unlock (&module_mutex); - -if (!fbcon) -request_module_nowait (name); -#endif -return 0 ; -} -EXPORT_SYMBOL (drm_fb_helper_modinit);
drivers/gpu/drm/drm_kms_helper_common.c +12 -13
@@ -35,19 +35,18 @@ MODULE_LICENSE("GPL and additional rights");static int __init drm_kms_helper_init (void ) { -int ret; - -/* Call init functions from specific kms helpers here */ - ret =drm_fb_helper_modinit (); -if (ret <0 ) - goto out; - - ret =drm_dp_aux_dev_init (); -if (ret <0 ) - goto out; - -out: -return ret; +/* +* The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT) +* but the module doesn't depend on any fb console symbols. At least +* attempt to load fbcon to avoid leaving the system without a usable +* console. +*/ +if (IS_ENABLED (CONFIG_DRM_FBDEV_EMULATION ) && +IS_MODULE (CONFIG_FRAMEBUFFER_CONSOLE ) && + !IS_ENABLED (CONFIG_EXPERT )) +request_module_nowait ("fbcon" ); + +return drm_dp_aux_dev_init (); } static void __exit drm_kms_helper_exit(void)
drivers/iio/accel/bma180.c +2 -1
@@ -782,11 +782,12 @@ static int bma180_probe(struct i2c_client *client, data->trig->dev.parent = &client->dev; data->trig->ops = &bma180_trigger_ops;iio_trigger_set_drvdata (data->trig, indio_dev); - indio_dev->trig =iio_trigger_get (data->trig); ret =iio_trigger_register (data->trig);if (ret) goto err_trigger_free; + + indio_dev->trig =iio_trigger_get (data->trig); } ret = iio_triggered_buffer_setup(indio_dev, NULL,
drivers/iio/accel/mma8452.c +7 -3
@@ -1412,10 +1412,14 @@ static int mma8452_reset(struct i2c_client *client)int i;int ret; - ret =i2c_smbus_write_byte_data (client,MMA8452_CTRL_REG2 , +/* +* Find on fxls8471, after config reset bit, it reset immediately, +* and will not give ACK, so here do not check the return value. +* The following code will read the reset register, and check whether +* this reset works. +*/ +i2c_smbus_write_byte_data (client,MMA8452_CTRL_REG2 ,MMA8452_CTRL_REG2_RST ); -if (ret <0 ) -return ret;for (i =0 ; i <10 ; i++) {usleep_range (100 ,200 );
drivers/iio/adc/axp288_adc.c +8 -0
@@ -213,6 +213,14 @@ static const struct dmi_system_id axp288_adc_ts_bias_override[] = { }, .driver_data = (void *)(uintptr_t)AXP288_ADC_TS_BIAS_80UA, }, + { + /* Nuvision Solo 10 Draw */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TMAX"), + DMI_MATCH(DMI_PRODUCT_NAME, "TM101W610L"), + }, + .driver_data = (void *)(uintptr_t)AXP288_ADC_TS_BIAS_80UA, + }, {} };
drivers/iio/gyro/mpu3050-core.c +1 -0
@@ -874,6 +874,7 @@ static int mpu3050_power_up(struct mpu3050 *mpu3050) ret =regmap_update_bits (mpu3050->map,MPU3050_PWR_MGM ,MPU3050_PWR_MGM_SLEEP ,0 );if (ret) { +regulator_bulk_disable (ARRAY_SIZE (mpu3050->regs), mpu3050->regs);dev_err (mpu3050->dev,"error setting power mode\n" );return ret; }
drivers/iio/trigger/iio-trig-sysfs.c +1 -0
@@ -199,6 +199,7 @@ static int iio_sysfs_trigger_remove(int id) }iio_trigger_unregister (t->trig); +irq_work_sync (&t->work);iio_trigger_free (t->trig);list_del (&t->l);
drivers/md/dm-era-target.c +7 -1
@@ -1396,7 +1396,7 @@ static void start_worker(struct era *era)static void stop_worker (struct era *era) {atomic_set (&era->suspended,1 ); -flush_workqueue (era->wq); +drain_workqueue (era->wq); }/*----------------------------------------------------------------
@@ -1581,6 +1581,12 @@ static void era_postsuspend(struct dm_target *ti) }stop_worker (era); + + r =metadata_commit (era->md); +if (r) { +DMERR ("%s: metadata_commit failed" , __func__); +/* FIXME: fail mode */ + } }static int era_preresume (struct dm_target *ti)
drivers/net/bonding/bond_main.c +3 -1
@@ -3048,9 +3048,11 @@ static void bond_activebackup_arp_mon(struct bonding *bond)if (!rtnl_trylock ())return ; -if (should_notify_peers) +if (should_notify_peers) { + bond->send_peer_notif--;call_netdevice_notifiers (NETDEV_NOTIFY_PEERS , bond->dev); + }if (should_notify_rtnl) {bond_slave_state_notify (bond);bond_slave_link_notify (bond);
drivers/net/ethernet/intel/igb/igb_main.c +5 -7
@@ -8618,11 +8618,10 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)struct e1000_hw *hw = &adapter->hw;u32 dmac_thr;u16 hwm; +u32 reg;if (hw->mac.type > e1000_82580) {if (adapter->flags &IGB_FLAG_DMAC ) { -u32 reg; -/* force threshold to 0. */ wr32 (E1000_DMCTXTH ,0 );
@@ -8655,7 +8654,6 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)/* Disable BMC-to-OS Watchdog Enable */ if (hw->mac.type != e1000_i354) reg &= ~E1000_DMACR_DC_BMC2OSW_EN ; -wr32 (E1000_DMACR , reg);/* no lower threshold to disable
@@ -8672,12 +8670,12 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)*/ wr32 (E1000_DMCTXTH , (IGB_MIN_TXPBSIZE - (IGB_TX_BUF_4096 + adapter->max_frame_size)) >>6 ); + } -/* make low power state decision controlled -* by DMA coal -*/ +if (hw->mac.type >= e1000_i210 || + (adapter->flags &IGB_FLAG_DMAC )) { reg =rd32 (E1000_PCIEMISC ); - reg &= ~E1000_PCIEMISC_LX_DECISION ; + reg |=E1000_PCIEMISC_LX_DECISION ;wr32 (E1000_PCIEMISC , reg); }/* endif adapter->dmac is not disabled */ }else if (hw->mac.type == e1000_82580) {
drivers/of/fdt.c +6 -2
@@ -1159,6 +1159,10 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,/* try to clear seed so it won't be found. */ fdt_nop_property (initial_boot_params, node,"rng-seed" ); + +/* update CRC check value */ + of_fdt_crc32 =crc32_be (~0 , initial_boot_params, +fdt_totalsize (initial_boot_params)); }/* break now */
@@ -1272,6 +1276,8 @@ bool __init early_init_dt_verify(void *params)/* Setup flat device-tree pointer */ initial_boot_params = params; + of_fdt_crc32 =crc32_be (~0 , initial_boot_params, +fdt_totalsize (initial_boot_params));return true; }
@@ -1297,8 +1303,6 @@ bool __init early_init_dt_scan(void *params)return false;early_init_dt_scan_nodes (); - of_fdt_crc32 =crc32_be (~0 , initial_boot_params, -fdt_totalsize (initial_boot_params));return true; }
drivers/tty/vt/vt.c +3 -31
@@ -4132,16 +4132,8 @@ static int con_font_get(struct vc_data *vc, struct console_font_op *op)if (op->data && font.charcount > op->charcount) rc = -ENOSPC ; -if (!(op->flags &KD_FONT_FLAG_OLD )) { -if (font.width > op->width || font.height > op->height) - rc = -ENOSPC ; - }else { -if (font.width !=8 ) - rc = -EIO ; -else if ((op->height && font.height > op->height) || - font.height >32 ) - rc = -ENOSPC ; - } +if (font.width > op->width || font.height > op->height) + rc = -ENOSPC ;if (rc) goto out;
@@ -4169,27 +4161,7 @@ static int con_font_set(struct vc_data *vc, struct console_font_op *op)return -EINVAL ;if (op->charcount >512 )return -EINVAL ; -if (!op->height) {/* Need to guess font height [compat] */ -int h, i; -u8 __user *charmap = op->data; -u8 tmp; - -/* If from KDFONTOP ioctl, don't allow things which can be done in userland, -so that we can get rid of this soon */ -if (!(op->flags &KD_FONT_FLAG_OLD )) -return -EINVAL ; -for (h =32 ; h >0 ; h--) -for (i =0 ; i < op->charcount; i++) { -if (get_user (tmp, &charmap[32 *i+h-1 ])) -return -EFAULT ; -if (tmp) - goto nonzero; - } -return -EINVAL ; - nonzero: - op->height = h; - } -if (op->width <=0 || op->width >32 || op->height >32 ) +if (op->width <=0 || op->width >32 || !op->height || op->height >32 )return -EINVAL ; size = (op->width+7 )/8 *32 * op->charcount;if (size > max_font_size)
drivers/tty/vt/vt_ioctl.c +0 -149
179 lines not on this page · raw message
drivers/usb/chipidea/udc.c +3 -0
@@ -923,6 +923,9 @@ isr_setup_status_complete(struct usb_ep *ep, struct usb_request *req)struct ci_hdrc *ci = req->context;unsigned long flags; +if (req->status <0 ) +return ; +if (ci->setaddr) {hw_usb_set_address (ci, ci->address); ci->setaddr = false;
drivers/usb/serial/option.c +6 -0
@@ -255,10 +255,12 @@ static void option_instat_callback(struct urb *urb);#define QUECTEL_PRODUCT_EG95 0x0195#define QUECTEL_PRODUCT_BG96 0x0296#define QUECTEL_PRODUCT_EP06 0x0306 +#define QUECTEL_PRODUCT_EM05G 0x030a#define QUECTEL_PRODUCT_EM12 0x0512#define QUECTEL_PRODUCT_RM500Q 0x0800#define QUECTEL_PRODUCT_EC200S_CN 0x6002#define QUECTEL_PRODUCT_EC200T 0x6026 +#define QUECTEL_PRODUCT_RM500K 0x7001#define CMOTECH_VENDOR_ID 0x16d8#define CMOTECH_PRODUCT_6001 0x6001
@@ -1137,6 +1139,8 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, + { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G, 0xff), + .driver_info = RSVD(6) | ZLP }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0xff, 0xff), .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0, 0) },
@@ -1150,6 +1154,7 @@ static const struct usb_device_id option_ids[] = { .driver_info = ZLP }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200S_CN, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500K, 0xff, 0x00, 0x00) }, { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
@@ -1282,6 +1287,7 @@ static const struct usb_device_id option_ids[] = { .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1231, 0xff), /* Telit LE910Cx (RNDIS) */ .driver_info = NCTRL(2) | RSVD(3) }, + { USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x1250, 0xff, 0x00, 0x00) }, /* Telit LE910Cx (rmnet) */ { USB_DEVICE(TELIT_VENDOR_ID, 0x1260), .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, { USB_DEVICE(TELIT_VENDOR_ID, 0x1261),
drivers/xen/features.c +1 -1
@@ -28,6 +28,6 @@ void xen_setup_features(void)if (HYPERVISOR_xen_version (XENVER_get_features, &fi) <0 )break ;for (j =0 ; j <32 ; j++) - xen_features[i *32 + j] = !!(fi.submap &1 <<j); + xen_features[i *32 + j] = !!(fi.submap &1U << j); } }
drivers/xen/xlate_mmu.c +0 -1
@@ -262,4 +262,3 @@ int __init xen_xlate_map_ballooned_pages(xen_pfn_t **gfns, void **virt,return 0 ; } -EXPORT_SYMBOL_GPL (xen_xlate_map_ballooned_pages);
include/linux/kd.h deleted +0 -8
@@ -1,8 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _LINUX_KD_H -#define _LINUX_KD_H - -#include <uapi/linux/kd.h> - -#define KD_FONT_FLAG_OLD 0x80000000/* Invoked via old interface [compat] */ -#endif /* _LINUX_KD_H */
include/linux/kexec.h +22 -4
@@ -163,6 +163,28 @@ int __weak arch_kexec_walk_mem(struct kexec_buf *kbuf, int (*func)(u64, u64, void *));extern int kexec_add_buffer (struct kexec_buf *kbuf);int kexec_locate_mem_hole (struct kexec_buf *kbuf); + +#ifndef arch_kexec_apply_relocations_add +/* Apply relocations of type RELA */ +static inline int +arch_kexec_apply_relocations_add (const Elf_Ehdr *ehdr, +Elf_Shdr *sechdrs,unsigned int relsec) +{ +pr_err ("RELA relocation unsupported.\n" ); +return -ENOEXEC ; +} +#endif + +#ifndef arch_kexec_apply_relocations +/* Apply relocations of type REL */ +static inline int +arch_kexec_apply_relocations (const Elf_Ehdr *ehdr,Elf_Shdr *sechdrs, +unsigned int relsec) +{ +pr_err ("REL relocation unsupported.\n" ); +return -ENOEXEC ; +} +#endif #endif /* CONFIG_KEXEC_FILE */ struct kimage {
@@ -288,10 +310,6 @@ void * __weak arch_kexec_kernel_image_load(struct kimage *image);int __weak arch_kimage_file_post_load_cleanup (struct kimage *image);int __weak arch_kexec_kernel_verify_sig (struct kimage *image,void *buf,unsigned long buf_len); -int __weak arch_kexec_apply_relocations_add (const Elf_Ehdr *ehdr, -Elf_Shdr *sechdrs,unsigned int relsec); -int __weak arch_kexec_apply_relocations (const Elf_Ehdr *ehdr,Elf_Shdr *sechdrs, -unsigned int relsec);void arch_kexec_protect_crashkres (void );void arch_kexec_unprotect_crashkres (void );
include/linux/ratelimit.h +8 -4
@@ -23,12 +23,16 @@ struct ratelimit_state {unsigned long flags; }; -#define RATELIMIT_STATE_INIT (name, interval_init, burst_init) { \ - .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \ - .interval = interval_init, \ - .burst = burst_init, \ +#define RATELIMIT_STATE_INIT_FLAGS (name, interval_init, burst_init, flags_init) { \ + .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \ + .interval = interval_init, \ + .burst = burst_init, \ + .flags = flags_init, \ } +#define RATELIMIT_STATE_INIT (name, interval_init, burst_init) \ + RATELIMIT_STATE_INIT_FLAGS(name, interval_init, burst_init, 0) +#define RATELIMIT_STATE_INIT_DISABLED \ RATELIMIT_STATE_INIT(ratelimit_state, 0, DEFAULT_RATELIMIT_BURST)
include/trace/events/libata.h +1 -0
@@ -249,6 +249,7 @@ DECLARE_EVENT_CLASS(ata_qc_complete_template, __entry->hob_feature = qc->result_tf.hob_feature; __entry->nsect = qc->result_tf.nsect; __entry->hob_nsect = qc->result_tf.hob_nsect; + __entry->flags = qc->flags; ), TP_printk("ata_port=%u ata_dev=%u tag=%d flags=%s status=%s " \
kernel/kexec_file.c +0 -18
@@ -53,24 +53,6 @@ int __weak arch_kexec_kernel_verify_sig(struct kimage *image, void *buf, }#endif -/* Apply relocations of type RELA */ -int __weak -arch_kexec_apply_relocations_add (const Elf_Ehdr *ehdr,Elf_Shdr *sechdrs, -unsigned int relsec) -{ -pr_err ("RELA relocation unsupported.\n" ); -return -ENOEXEC ; -} - -/* Apply relocations of type REL */ -int __weak -arch_kexec_apply_relocations (const Elf_Ehdr *ehdr,Elf_Shdr *sechdrs, -unsigned int relsec) -{ -pr_err ("REL relocation unsupported.\n" ); -return -ENOEXEC ; -} -/* * Free up memory used by kernel, initrd, and command line. This is temporary * memory allocation which is not needed any more after these buffers have
lib/swiotlb.c +2 -1
@@ -607,7 +607,8 @@ phys_addr_t swiotlb_tbl_map_single(struct device *hwdev,* unconditional bounce may prevent leaking swiotlb content (i.e. * kernel memory) to user-space. */ -swiotlb_bounce (orig_addr, tlb_addr, size,DMA_TO_DEVICE ); +if (orig_addr) +swiotlb_bounce (orig_addr, tlb_addr, size,DMA_TO_DEVICE );return tlb_addr; }EXPORT_SYMBOL_GPL (swiotlb_tbl_map_single);
scripts/mod/modpost.c +1 -1
@@ -1077,7 +1077,7 @@ static const struct sectioncheck sectioncheck[] = { },/* Do not export init/exit functions or data */ { - .fromsec = { "__ksymtab*", NULL }, + .fromsec = { "___ksymtab*", NULL }, .bad_tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL }, .mismatch = EXPORT_TO_INIT_EXIT, .symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL },