Linux 4.19.214
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 -SUBLEVEL = 213 +SUBLEVEL = 214 EXTRAVERSION = NAME = "People's Front"
arch/arm/Kconfig +1 -0
@@ -70,6 +70,7 @@ config ARM select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL) select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL) select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) + select HAVE_FUTEX_CMPXCHG if FUTEX select HAVE_GCC_PLUGINS select HAVE_GENERIC_DMA_COHERENT select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +0 -1
@@ -106,7 +106,6 @@ isc: isc@f0008000 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>; - status = "okay"; }; spi0: spi@f8000000 {
arch/arm/boot/dts/spear3xx.dtsi +1 -1
@@ -53,7 +53,7 @@ }; gmac: eth@e0800000 { - compatible = "st,spear600-gmac"; + compatible = "snps,dwmac-3.40a"; reg = <0xe0800000 0x8000>; interrupts = <23 22>; interrupt-names = "macirq", "eth_wake_irq";
arch/nios2/include/asm/irqflags.h +2 -2
@@ -22,7 +22,7 @@static inline unsigned long arch_local_save_flags (void ) { -return RDCTL (CTL_STATUS ); +return RDCTL (CTL_FSTATUS ); }/*
@@ -31,7 +31,7 @@ static inline unsigned long arch_local_save_flags(void)*/ static inline void arch_local_irq_restore (unsigned long flags) { -WRCTL (CTL_STATUS , flags); +WRCTL (CTL_FSTATUS , flags); }static inline void arch_local_irq_disable (void )
arch/nios2/include/asm/registers.h +1 -1
@@ -24,7 +24,7 @@#endif /* control register numbers */ -#define CTL_STATUS 0 +#define CTL_FSTATUS 0#define CTL_ESTATUS 1#define CTL_BSTATUS 2#define CTL_IENABLE 3
arch/xtensa/platforms/xtfpga/setup.c +8 -4
@@ -54,8 +54,12 @@ void platform_power_off(void)void platform_restart (void ) { -/* Flush and reset the mmu, simulate a processor reset, and -* jump to the reset vector. */ +/* Try software reset first. */ +WRITE_ONCE (*(u32 *)XTFPGA_SWRST_VADDR ,0xdead ); + +/* If software reset did not work, flush and reset the mmu, +* simulate a processor reset, and jump to the reset vector. +*/ cpu_reset ();/* control never gets here */ }
@@ -85,7 +89,7 @@ void __init platform_calibrate_ccount(void)#endif -#ifdef CONFIG_OF +#ifdef CONFIG_USE_OF static void __init xtfpga_clk_setup (struct device_node *np) {
@@ -303,4 +307,4 @@ static int __init xtavnet_init(void)*/ arch_initcall (xtavnet_init); -#endif /* CONFIG_OF */ +#endif /* CONFIG_USE_OF */
drivers/isdn/capi/kcapi.c +5 -0
@@ -565,6 +565,11 @@ int detach_capi_ctr(struct capi_ctr *ctr)ctr_down (ctr,CAPI_CTR_DETACHED ); +if (ctr->cnr <1 || ctr->cnr -1 >=CAPI_MAXCONTR ) { + err = -EINVAL ; + goto unlock_out; + } +if (capi_controller[ctr->cnr -1 ] != ctr) { err = -EINVAL ; goto unlock_out;
drivers/isdn/hardware/mISDN/netjet.c +1 -1
@@ -963,8 +963,8 @@ nj_release(struct tiger_hw *card)nj_disable_hwirq (card);mode_tiger (&card->bc[0 ],ISDN_P_NONE );mode_tiger (&card->bc[1 ],ISDN_P_NONE ); - card->isac.release (&card->isac);spin_unlock_irqrestore (&card->lock, flags); + card->isac.release (&card->isac);release_region (card->base, card->base_s); card->base_s =0 ; }
drivers/net/can/rcar/rcar_can.c +12 -8
@@ -857,10 +857,12 @@ static int __maybe_unused rcar_can_suspend(struct device *dev)struct rcar_can_priv *priv =netdev_priv (ndev);u16 ctlr; -if (netif_running (ndev)) { -netif_stop_queue (ndev); -netif_device_detach (ndev); - } +if (!netif_running (ndev)) +return 0 ; + +netif_stop_queue (ndev); +netif_device_detach (ndev); + ctlr =readw (&priv->regs->ctlr); ctlr |=RCAR_CAN_CTLR_CANM_HALT ;writew (ctlr, &priv->regs->ctlr);
@@ -879,6 +881,9 @@ static int __maybe_unused rcar_can_resume(struct device *dev)u16 ctlr;int err; +if (!netif_running (ndev)) +return 0 ; + err =clk_enable (priv->clk);if (err) {netdev_err (ndev,"clk_enable() failed, error %d\n" , err);
@@ -892,10 +897,9 @@ static int __maybe_unused rcar_can_resume(struct device *dev)writew (ctlr, &priv->regs->ctlr); priv->can.state =CAN_STATE_ERROR_ACTIVE ; -if (netif_running (ndev)) { -netif_device_attach (ndev); -netif_start_queue (ndev); - } +netif_device_attach (ndev); +netif_start_queue (ndev); +return 0 ; }
drivers/net/can/sja1000/peak_pci.c +4 -5
@@ -739,16 +739,15 @@ static void peak_pci_remove(struct pci_dev *pdev)struct net_device *prev_dev = chan->prev_dev;dev_info (&pdev->dev,"removing device %s\n" , dev->name); +/* do that only for first channel */ +if (!prev_dev && chan->pciec_card) +peak_pciec_remove (chan->pciec_card);unregister_sja1000dev (dev);free_sja1000dev (dev); dev = prev_dev; -if (!dev) { -/* do that only for first channel */ -if (chan->pciec_card) -peak_pciec_remove (chan->pciec_card); +if (!dev)break ; - } priv =netdev_priv (dev); chan = priv->priv; }
drivers/net/can/usb/peak_usb/pcan_usb_fd.c +2 -3
@@ -559,11 +559,10 @@ static int pcan_usb_fd_decode_status(struct pcan_usb_fd_if *usb_if, }else if (sm->channel_p_w_b &PUCAN_BUS_WARNING ) { new_state =CAN_STATE_ERROR_WARNING ; }else { -/* no error bit (so, no error skb, back to active state) */ - dev->can.state =CAN_STATE_ERROR_ACTIVE ; +/* back to (or still in) ERROR_ACTIVE state */ + new_state =CAN_STATE_ERROR_ACTIVE ; pdev->bec.txerr =0 ; pdev->bec.rxerr =0 ; -return 0 ; }/* state hasn't changed */
drivers/net/ethernet/hisilicon/hns3/hnae3.c +21 -0
@@ -10,6 +10,27 @@ static LIST_HEAD(hnae3_ae_algo_list);static LIST_HEAD (hnae3_client_list);static LIST_HEAD (hnae3_ae_dev_list); +void hnae3_unregister_ae_algo_prepare (struct hnae3_ae_algo *ae_algo) +{ +const struct pci_device_id *pci_id; +struct hnae3_ae_dev *ae_dev; + +if (!ae_algo) +return ; + +list_for_each_entry (ae_dev, &hnae3_ae_dev_list, node) { +if (!hnae3_get_bit (ae_dev->flag,HNAE3_DEV_INITED_B )) +continue ; + + pci_id =pci_match_id (ae_algo->pdev_id_table, ae_dev->pdev); +if (!pci_id) +continue ; +if (IS_ENABLED (CONFIG_PCI_IOV )) +pci_disable_sriov (ae_dev->pdev); + } +} +EXPORT_SYMBOL (hnae3_unregister_ae_algo_prepare); +/* we are keeping things simple and using single lock for all the * list. This is a non-critical code so other updations, if happen * in parallel, can wait.
drivers/net/ethernet/hisilicon/hns3/hnae3.h +1 -0
@@ -516,6 +516,7 @@ struct hnae3_handle {int hnae3_register_ae_dev (struct hnae3_ae_dev *ae_dev);void hnae3_unregister_ae_dev (struct hnae3_ae_dev *ae_dev); +void hnae3_unregister_ae_algo_prepare (struct hnae3_ae_algo *ae_algo);void hnae3_unregister_ae_algo (struct hnae3_ae_algo *ae_algo);void hnae3_register_ae_algo (struct hnae3_ae_algo *ae_algo);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c +9 -0
@@ -96,6 +96,15 @@ static int hclge_ets_validate(struct hclge_dev *hdev, struct ieee_ets *ets, *changed = true;break ;case IEEE_8021QAZ_TSA_ETS : +/* The hardware will switch to sp mode if bandwidth is +* 0, so limit ets bandwidth must be greater than 0. +*/ +if (!ets->tc_tx_bw[i]) { +dev_err (&hdev->pdev->dev, +"tc%u ets bw cannot be 0\n" , i); +return -EINVAL ; + } +if (hdev->tm_info.tc_info[i].tc_sch_mode !=HCLGE_SCH_MODE_DWRR ) *changed = true;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +1 -0
@@ -6387,6 +6387,7 @@ static int hclge_init(void)static void hclge_exit (void ) { +hnae3_unregister_ae_algo_prepare (&ae_algo);hnae3_unregister_ae_algo (&ae_algo); }module_init (hclge_init);
drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c +1 -0
@@ -71,6 +71,7 @@ static int dwmac_generic_probe(struct platform_device *pdev)static const struct of_device_id dwmac_generic_match[] = { { .compatible ="st,spear600-gmac" }, + { .compatible ="snps,dwmac-3.40a" }, { .compatible ="snps,dwmac-3.50a" }, { .compatible ="snps,dwmac-3.610" }, { .compatible ="snps,dwmac-3.70a" },
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +8 -0
@@ -469,6 +469,14 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac) plat->pmt =1 ; } +if (of_device_is_compatible (np,"snps,dwmac-3.40a" )) { + plat->has_gmac =1 ; + plat->enh_desc =1 ; + plat->tx_coe =1 ; + plat->bugged_jumbo =1 ; + plat->pmt =1 ; + } +if (of_device_is_compatible (np,"snps,dwmac-4.00" ) ||of_device_is_compatible (np,"snps,dwmac-4.10a" ) ||of_device_is_compatible (np,"snps,dwmac-4.20a" )) {
drivers/net/phy/mdio_bus.c +1 -0
@@ -388,6 +388,7 @@ int __mdiobus_register(struct mii_bus *bus, struct module *owner) err =device_register (&bus->dev);if (err) {pr_err ("mii_bus %s failed to register\n" , bus->id); +put_device (&bus->dev);return -EINVAL ; }
drivers/net/usb/Kconfig +1 -0
@@ -116,6 +116,7 @@ config USB_LAN78XX select PHYLIB select MICROCHIP_PHY select FIXED_PHY + select CRC32 help This option adds support for Microchip LAN78XX based USB 2 & USB 3 10/100/1000 Ethernet adapters.
drivers/platform/x86/intel_scu_ipc.c +1 -1
@@ -183,7 +183,7 @@ static inline int busy_loop(struct intel_scu_ipc_dev *scu)return 0 ; } -/* Wait till ipc ioc interrupt is received or timeout in 3 HZ */ +/* Wait till ipc ioc interrupt is received or timeout in 10 HZ */ static inline int ipc_wait_for_interrupt (struct intel_scu_ipc_dev *scu) {int status;
drivers/scsi/hosts.c +2 -1
@@ -218,7 +218,8 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev, goto fail; } - shost->cmd_per_lun =min_t (short, shost->cmd_per_lun, +/* Use min_t(int, ...) in case shost->can_queue exceeds SHRT_MAX */ + shost->cmd_per_lun =min_t (int, shost->cmd_per_lun, shost->can_queue); error =scsi_init_sense_cache (shost);
fs/btrfs/tree-log.c +29 -18
83 lines not on this page · raw message
fs/exec.c +1 -1
@@ -984,7 +984,7 @@ int kernel_read_file_from_fd(int fd, void **buf, loff_t *size, loff_t max_size,struct fd f =fdget (fd);int ret = -EBADF ; -if (!f.file) +if (!f.file || !(f.file->f_mode &FMODE_READ )) goto out; ret =kernel_read_file (f.file, buf, size, max_size, id);
fs/nfsd/nfsctl.c +4 -1
@@ -788,7 +788,10 @@ static ssize_t __write_ports_addxprt(char *buf, struct net *net)svc_xprt_put (xprt); } out_err: -nfsd_destroy (net); +if (!list_empty (&nn->nfsd_serv->sv_permsocks)) + nn->nfsd_serv->sv_nrthreads--; +else +nfsd_destroy (net);return err; }
fs/ocfs2/alloc.c +12 -34
103 lines not on this page · raw message
fs/ocfs2/super.c +10 -4
@@ -2205,11 +2205,17 @@ static int ocfs2_initialize_super(struct super_block *sb, }if (ocfs2_clusterinfo_valid (osb)) { +/* +* ci_stack and ci_cluster in ocfs2_cluster_info may not be null +* terminated, so make sure no overflow happens here by using +* memcpy. Destination strings will always be null terminated +* because osb is allocated using kzalloc. +*/ osb->osb_stackflags =OCFS2_RAW_SB (di)->s_cluster_info.ci_stackflags; -strlcpy (osb->osb_cluster_stack, +memcpy (osb->osb_cluster_stack,OCFS2_RAW_SB (di)->s_cluster_info.ci_stack, -OCFS2_STACK_LABEL_LEN +1 ); +OCFS2_STACK_LABEL_LEN );if (strlen (osb->osb_cluster_stack) !=OCFS2_STACK_LABEL_LEN ) {mlog (ML_ERROR , "couldn't mount because of an invalid "
@@ -2218,9 +2224,9 @@ static int ocfs2_initialize_super(struct super_block *sb, status = -EINVAL ; goto bail; } -strlcpy (osb->osb_cluster_name, +memcpy (osb->osb_cluster_name,OCFS2_RAW_SB (di)->s_cluster_info.ci_cluster, -OCFS2_CLUSTER_NAME_LEN +1 ); +OCFS2_CLUSTER_NAME_LEN ); }else {/* The empty string is identical with classic tools that * don't know about s_cluster_info. */
include/linux/elfcore.h +1 -1
@@ -58,7 +58,7 @@ static inline int elf_core_copy_task_xfpregs(struct task_struct *t, elf_fpxregse }#endif -#if defined(CONFIG_UM ) || defined(CONFIG_IA64 ) +#if (defined(CONFIG_UML ) && defined(CONFIG_X86_32 )) || defined(CONFIG_IA64 )/* * These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out * extra segments containing the gate DSO contents. Dumping its
kernel/dma/debug.c +6 -6
@@ -1422,6 +1422,12 @@ void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,if (unlikely (dma_debug_disabled ()))return ; +for_each_sg (sg, s, nents, i) { +check_for_stack (dev,sg_page (s), s->offset); +if (!PageHighMem (sg_page (s))) +check_for_illegal_area (dev,sg_virt (s), s->length); + } +for_each_sg (sg, s, mapped_ents, i) { entry =dma_entry_alloc ();if (!entry)
@@ -1437,12 +1443,6 @@ void debug_dma_map_sg(struct device *dev, struct scatterlist *sg, entry->sg_call_ents = nents; entry->sg_mapped_ents = mapped_ents; -check_for_stack (dev,sg_page (s), s->offset); - -if (!PageHighMem (sg_page (s))) { -check_for_illegal_area (dev,sg_virt (s),sg_dma_len (s)); - } -check_sg_segment (dev, s);add_dma_entry (entry);
kernel/trace/ftrace.c +2 -2
@@ -6327,7 +6327,7 @@ __ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,struct ftrace_ops *op;int bit; - bit =trace_test_and_set_recursion (TRACE_LIST_START ,TRACE_LIST_MAX ); + bit =trace_test_and_set_recursion (TRACE_LIST_START );if (bit <0 )return ;
@@ -6399,7 +6399,7 @@ static void ftrace_ops_assist_func(unsigned long ip, unsigned long parent_ip, {int bit; - bit =trace_test_and_set_recursion (TRACE_LIST_START ,TRACE_LIST_MAX ); + bit =trace_test_and_set_recursion (TRACE_LIST_START );if (bit <0 )return ;
kernel/trace/trace.h +20 -44
138 lines not on this page · raw message
kernel/trace/trace_functions.c +1 -1
@@ -138,7 +138,7 @@ function_trace_call(unsigned long ip, unsigned long parent_ip, pc =preempt_count ();preempt_disable_notrace (); - bit =trace_test_and_set_recursion (TRACE_FTRACE_START ,TRACE_FTRACE_MAX ); + bit =trace_test_and_set_recursion (TRACE_FTRACE_START );if (bit <0 ) goto out;
mm/slub.c +9 -2
@@ -1392,7 +1392,8 @@ static __always_inline bool slab_free_hook(struct kmem_cache *s, void *x) }static inline bool slab_free_freelist_hook (struct kmem_cache *s, -void **head,void **tail) +void **head,void **tail, +int *cnt) {/* * Compiler cannot detect this function can be removed if slab_free_hook()
@@ -1421,6 +1422,12 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s, *head = object;if (!*tail) *tail = object; + }else { +/* +* Adjust the reconstructed freelist depth +* accordingly if object's reuse is delayed. +*/ + --(*cnt); } }while (object != old_tail);
@@ -2988,7 +2995,7 @@ static __always_inline void slab_free(struct kmem_cache *s, struct page *page,* With KASAN enabled slab_free_freelist_hook modifies the freelist * to remove objects, whose reuse must be delayed. */ -if (slab_free_freelist_hook (s, &head, &tail)) +if (slab_free_freelist_hook (s, &head, &tail, &cnt))do_slab_free (s, page, head, tail, cnt, addr); }
net/netfilter/Kconfig +1 -1
@@ -93,7 +93,7 @@ config NF_CONNTRACK_MARK config NF_CONNTRACK_SECMARK bool 'Connection tracking security mark support' depends on NETWORK_SECMARK - default m if NETFILTER_ADVANCED=n + default y if NETFILTER_ADVANCED=n help This option enables security markings to be applied to connections. Typically they are copied to connections from
net/netfilter/ipvs/ip_vs_ctl.c +5 -0
@@ -3955,6 +3955,11 @@ static int __net_init ip_vs_control_net_init_sysctl(struct netns_ipvs *ipvs) tbl[idx++].data = &ipvs->sysctl_conn_reuse_mode; tbl[idx++].data = &ipvs->sysctl_schedule_icmp; tbl[idx++].data = &ipvs->sysctl_ignore_tunneled; +#ifdef CONFIG_IP_VS_DEBUG +/* Global sysctls must be ro in non-init netns */ +if (!net_eq (net, &init_net)) + tbl[idx++].mode =0444 ; +#endif ipvs->sysctl_hdr =register_net_sysctl (net,"net/ipv4/vs" , tbl);if (ipvs->sysctl_hdr ==NULL ) {
net/nfc/nci/rsp.c +2 -0
@@ -289,6 +289,8 @@ static void nci_core_conn_close_rsp_packet(struct nci_dev *ndev, ndev->cur_conn_id);if (conn_info) {list_del (&conn_info->list); +if (conn_info == ndev->rf_conn_info) + ndev->rf_conn_info =NULL ;devm_kfree (&ndev->nfc_dev->dev, conn_info); } }
scripts/Makefile.gcc-plugins +4 -0
@@ -17,6 +17,10 @@ gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE) \ += -fplugin-arg-structleak_plugin-verbose gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) \ += -fplugin-arg-structleak_plugin-byref-all +ifdef CONFIG_GCC_PLUGIN_STRUCTLEAK + DISABLE_STRUCTLEAK_PLUGIN += -fplugin-arg-structleak_plugin-disable +endif +export DISABLE_STRUCTLEAK_PLUGIN gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) \ += -DSTRUCTLEAK_PLUGIN
sound/hda/hdac_controller.c +3 -2
@@ -390,8 +390,9 @@ int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset)if (!full_reset) goto skip_reset; -/* clear STATESTS */ -snd_hdac_chip_writew (bus,STATESTS ,STATESTS_INT_MASK ); +/* clear STATESTS if not in reset */ +if (snd_hdac_chip_readb (bus,GCTL ) &AZX_GCTL_RESET ) +snd_hdac_chip_writew (bus,STATESTS ,STATESTS_INT_MASK );/* reset controller */ snd_hdac_bus_enter_link_reset (bus);
sound/pci/hda/patch_realtek.c +1 -0
@@ -2521,6 +2521,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {SND_PCI_QUIRK (0x1558 ,0x65d2 ,"Clevo PB51R[CDF]" ,ALC1220_FIXUP_CLEVO_PB51ED_PINS ),SND_PCI_QUIRK (0x1558 ,0x65e1 ,"Clevo PB51[ED][DF]" ,ALC1220_FIXUP_CLEVO_PB51ED_PINS ),SND_PCI_QUIRK (0x1558 ,0x65e5 ,"Clevo PC50D[PRS](?:-D|-G)?" ,ALC1220_FIXUP_CLEVO_PB51ED_PINS ), +SND_PCI_QUIRK (0x1558 ,0x65f1 ,"Clevo PC50HS" ,ALC1220_FIXUP_CLEVO_PB51ED_PINS ),SND_PCI_QUIRK (0x1558 ,0x67d1 ,"Clevo PB71[ER][CDF]" ,ALC1220_FIXUP_CLEVO_PB51ED_PINS ),SND_PCI_QUIRK (0x1558 ,0x67e1 ,"Clevo PB71[DE][CDF]" ,ALC1220_FIXUP_CLEVO_PB51ED_PINS ), SND_PCI_QUIRK(0x1558, 0x67e5, "Clevo PC70D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
sound/soc/codecs/wm8960.c +10 -3
@@ -755,9 +755,16 @@ static int wm8960_configure_clocking(struct snd_soc_component *component)int i, j, k;int ret; -if (!(iface1 & (1 <<6 ))) { -dev_dbg (component->dev, -"Codec is slave mode, no need to configure clock\n" ); +/* +* For Slave mode clocking should still be configured, +* so this if statement should be removed, but some platform +* may not work if the sysclk is not configured, to avoid such +* compatible issue, just add '!wm8960->sysclk' condition in +* this if statement. +*/ +if (!(iface1 & (1 <<6 )) && !wm8960->sysclk) { +dev_warn (component->dev, +"slave mode, but proceeding with no clock configuration\n" );return 0 ; }
sound/soc/soc-dapm.c +8 -5
@@ -2515,6 +2515,7 @@ static int snd_soc_dapm_set_pin(struct snd_soc_dapm_context *dapm, const char *pin, int status) {struct snd_soc_dapm_widget *w =dapm_find_widget (dapm, pin, true); +int ret =0 ;dapm_assert_locked (dapm);
@@ -2527,13 +2528,14 @@ static int snd_soc_dapm_set_pin(struct snd_soc_dapm_context *dapm,dapm_mark_dirty (w,"pin configuration" );dapm_widget_invalidate_input_paths (w);dapm_widget_invalidate_output_paths (w); + ret =1 ; } w->connected = status;if (status ==0 ) w->force =0 ; -return 0 ; +return ret; }/**
@@ -3461,14 +3463,15 @@ int snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol, {struct snd_soc_card *card =snd_kcontrol_chip (kcontrol);const char *pin = (const char *)kcontrol->private_value; +int ret;if (ucontrol->value.integer.value[0 ]) -snd_soc_dapm_enable_pin (&card->dapm, pin); + ret =snd_soc_dapm_enable_pin (&card->dapm, pin);else -snd_soc_dapm_disable_pin (&card->dapm, pin); + ret =snd_soc_dapm_disable_pin (&card->dapm, pin);snd_soc_dapm_sync (&card->dapm); -return 0 ; +return ret; }EXPORT_SYMBOL_GPL (snd_soc_dapm_put_pin_switch);
@@ -3858,7 +3861,7 @@ static int snd_soc_dapm_dai_link_put(struct snd_kcontrol *kcontrol, w->params_select = ucontrol->value.enumerated.item[0 ]; -return 0 ; +return 1 ; } static void
sound/usb/quirks-table.h +32 -0
@@ -3583,5 +3583,37 @@ ALC1220_VB_DESKTOP(0x26ce, 0x0a01), /* Asrock TRX40 Creator */ } } }, +{ +/* +* Sennheiser GSP670 +* Change order of interfaces loaded +*/ + USB_DEVICE(0x1395, 0x0300), + .bInterfaceClass = USB_CLASS_PER_INTERFACE, + .driver_info = (unsigned long ) &(const struct snd_usb_audio_quirk ) { + .ifnum =QUIRK_ANY_INTERFACE , + .type =QUIRK_COMPOSITE , + .data = &(const struct snd_usb_audio_quirk []) { +// Communication + { + .ifnum =3 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, +// Recording + { + .ifnum =4 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, +// Main + { + .ifnum =1 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum =-1 + } + } + } +}, #undef USB_DEVICE_VENDOR_SPEC
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.19.214 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/Kconfig | 1 arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | 1 arch/arm/boot/dts/spear3xx.dtsi | 2 arch/nios2/include/asm/irqflags.h | 4 - arch/nios2/include/asm/registers.h | 2 arch/xtensa/platforms/xtfpga/setup.c | 12 ++- drivers/isdn/capi/kcapi.c | 5 + drivers/isdn/hardware/mISDN/netjet.c | 2 drivers/net/can/rcar/rcar_can.c | 20 +++-- drivers/net/can/sja1000/peak_pci.c | 9 +- drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 5 - drivers/net/ethernet/hisilicon/hns3/hnae3.c | 21 +++++ drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c | 9 ++ drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 1 drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c | 1 drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 8 ++ drivers/net/phy/mdio_bus.c | 1 drivers/net/usb/Kconfig | 1 drivers/platform/x86/intel_scu_ipc.c | 2 drivers/scsi/hosts.c | 3 fs/btrfs/tree-log.c | 47 +++++++---- fs/exec.c | 2 fs/nfsd/nfsctl.c | 5 + fs/ocfs2/alloc.c | 46 +++-------- fs/ocfs2/super.c | 14 ++- include/linux/elfcore.h | 2 kernel/dma/debug.c | 12 +-- kernel/trace/ftrace.c | 4 - kernel/trace/trace.h | 64 +++++----------- kernel/trace/trace_functions.c | 2 mm/slub.c | 11 ++ net/netfilter/Kconfig | 2 net/netfilter/ipvs/ip_vs_ctl.c | 5 + net/nfc/nci/rsp.c | 2 scripts/Makefile.gcc-plugins | 4 + sound/hda/hdac_controller.c | 5 - sound/pci/hda/patch_realtek.c | 1 sound/soc/codecs/wm8960.c | 13 ++- sound/soc/soc-dapm.c | 13 ++- sound/usb/quirks-table.h | 32 ++++++++ 42 files changed, 245 insertions(+), 154 deletions(-)
Antoine Tenart (1):
netfilter: ipvs: make global sysctl readonly in non-init netns
Benjamin Coddington (1):
NFSD: Keep existing listeners on portlist error
Brendan Grieve (1):
ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
Brendan Higgins (1):
gcc-plugins/structleak: add makefile var for disabling structleak
Dexuan Cui (1):
scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
Eugen Hristev (1):
ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
Filipe Manana (1):
btrfs: deal with errors when checking if a dir entry exists during log replay
Gerald Schaefer (1):
dma-debug: fix sg checks in debug_dma_map_sg()
Greg Kroah-Hartman (1):
Linux 4.19.214
Guangbin Huang (1):
net: hns3: add limit ets dwrr bandwidth cannot be 0
Guenter Roeck (1):
xtensa: xtfpga: Try software restart before simulating CPU reset
Herve Codina (2):
net: stmmac: add support for dwmac 3.40a
ARM: dts: spear3xx: Fix gmac node
Jan Kara (1):
ocfs2: fix data corruption after conversion from inline format
Kai Vehmanen (1):
ALSA: hda: avoid write to STATESTS if controller is in reset
Lin Ma (1):
nfc: nci: fix the UAF of rf_conn_info object
Lukas Bulwahn (1):
elfcore: correct reference to CONFIG_UML
Matthew Wilcox (Oracle) (1):
vfs: check fd has read access in kernel_read_file_from_fd()
Max Filippov (1):
xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
Miaohe Lin (1):
mm, slub: fix mismatch between reconstructed freelist depth and cnt
Nick Desaulniers (1):
ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
Peng Li (1):
net: hns3: disable sriov before unload hclge layer
Prashant Malani (1):
platform/x86: intel_scu_ipc: Update timeout value in comment
Randy Dunlap (1):
NIOS2: irqflags: rename a redefined register name
Shengjiu Wang (1):
ASoC: wm8960: Fix clock configuration on slave mode
Stephane Grosjean (1):
can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification
Steven Clarkson (1):
ALSA: hda/realtek: Add quirk for Clevo PC50HS
Steven Rostedt (VMware) (1):
tracing: Have all levels of checks prevent recursion
Takashi Iwai (1):
ASoC: DAPM: Fix missing kctl change notifications
Valentin Vidic (1):
ocfs2: mount fails with buffer overflow in strlen
Vegard Nossum (2):
lan78xx: select CRC32
netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
Xiaolong Huang (1):
isdn: cpai: check ctr->cnr to avoid array index out of bound
Yanfei Xu (1):
net: mdiobus: Fix memory leak in __mdiobus_register
Yoshihiro Shimoda (1):
can: rcar_can: fix suspend/resume
Zheyu Ma (2):
can: peak_pci: peak_pci_remove(): fix UAF
isdn: mISDN: Fix sleeping function called from invalid context