Linux 4.19.185
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.19.185 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 drivers/base/power/runtime.c | 10 + drivers/extcon/extcon.c | 1 drivers/firewire/nosy.c | 9 + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 10 - drivers/net/ethernet/aquantia/atlantic/aq_main.c | 4 drivers/net/wan/lmc/lmc_main.c | 2 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 7 - drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 7 - drivers/pinctrl/pinctrl-rockchip.c | 13 +- drivers/scsi/qla2xxx/qla_target.h | 2 drivers/scsi/st.c | 2 drivers/staging/comedi/drivers/cb_pcidas.c | 2 drivers/staging/comedi/drivers/cb_pcidas64.c | 2 drivers/staging/rtl8192e/rtllib.h | 2 drivers/staging/rtl8192e/rtllib_rx.c | 2 drivers/thermal/thermal_sysfs.c | 3 drivers/usb/class/cdc-acm.c | 61 ++++++--- drivers/usb/core/quirks.c | 4 drivers/usb/dwc2/hcd.c | 2 drivers/usb/gadget/udc/amd5536udc_pci.c | 10 - drivers/usb/host/xhci-mtk.c | 10 + drivers/usb/musb/musb_core.c | 12 + drivers/usb/usbip/vhci_hcd.c | 2 drivers/vhost/vhost.c | 2 drivers/video/fbdev/core/fbcon.c | 3 fs/ext4/inode.c | 6 fs/ext4/namei.c | 18 +- fs/reiserfs/xattr.h | 2 include/linux/extcon.h | 23 +++ include/net/inet_connection_sock.h | 2 kernel/locking/mutex.c | 25 ++-- kernel/trace/trace.c | 3 mm/memory.c | 2 net/appletalk/ddp.c | 33 +++-- net/core/filter.c | 12 - net/dccp/ipv6.c | 5 net/ipv4/inet_connection_sock.c | 7 - net/ipv4/tcp_minisocks.c | 7 - net/ipv6/ip6_input.c | 10 - net/ipv6/tcp_ipv6.c | 5 net/sunrpc/auth_gss/svcauth_gss.c | 11 + net/vmw_vsock/af_vsock.c | 1 sound/pci/hda/patch_realtek.c | 3 sound/soc/codecs/cs42l42.c | 74 +++++------- sound/soc/codecs/cs42l42.h | 13 +- sound/soc/codecs/es8316.c | 9 - sound/soc/codecs/rt5640.c | 4 sound/soc/codecs/rt5651.c | 4 sound/soc/codecs/rt5659.c | 5 sound/soc/codecs/sgtl5000.c | 2 sound/usb/quirks.c | 1 52 files changed, 292 insertions(+), 181 deletions(-)
Adrian Hunter (2):
PM: runtime: Fix race getting/putting suppliers at probe
PM: runtime: Fix ordering in pm_runtime_get_suppliers()
Alexander Ovechkin (1):
tcp: relookup sock for RST+ACK packets handled by obsolete req sock
Alexey Dobriyan (1):
scsi: qla2xxx: Fix broken #endif placement
Artur Petrosyan (1):
usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
Atul Gopinathan (2):
staging: rtl8192e: Fix incorrect source in memcpy()
staging: rtl8192e: Change state information from u16 to u8
Benjamin Rood (1):
ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe
Chunfeng Yun (1):
usb: xhci-mtk: fix broken streams issue on 0.96 xHCI
David Brazdil (1):
selinux: vsock: Set SID for socket returned by accept()
Dinghao Liu (1):
extcon: Fix error handling in extcon_dev_register
Doug Brown (1):
appletalk: Fix skb allocation size in loopback case
Du Cheng (1):
drivers: video: fbcon: fix NULL dereference in fbcon_cursor()
Greg Kroah-Hartman (1):
Linux 4.19.185
Hans de Goede (3):
ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10
ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10
ASoC: es8316: Simplify adc_pga_gain_tlv table
Hui Wang (2):
ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO
ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook
Ikjoon Jang (1):
ALSA: usb-audio: Apply sample rate quirk to Logitech Connect
Ilya Lipnitskiy (1):
mm: fix race by making init_zero_pfn() early_initcall
J. Bruce Fields (1):
rpc: fix NULL dereference on kmalloc failure
Jakub Kicinski (1):
ipv6: weaken the v4mapped source check
Jesper Dangaard Brouer (1):
bpf: Remove MTU check in __bpf_skb_max_len
Johan Hovold (2):
USB: cdc-acm: fix double free on probe failure
USB: cdc-acm: fix use-after-free after probe failure
Krzysztof Kozlowski (1):
extcon: Add stubs for extcon_register_notifier_all() functions
Laurent Vivier (1):
vhost: Fix vhost_vq_reset()
Luca Pesce (1):
brcmfmac: clear EAP/association status bits on linkdown events
Lucas Tanure (4):
ASoC: cs42l42: Fix Bitclock polarity inversion
ASoC: cs42l42: Fix channel width support
ASoC: cs42l42: Fix mixer volume control
ASoC: cs42l42: Always wait at least 3ms after reset
Lv Yunlong (1):
scsi: st: Fix a use after free in st_open()
Manaf Meethalavalappu Pallikunhi (1):
thermal/core: Add NULL pointer check before using cooling device stats
Nathan Rossi (1):
net: ethernet: aquantia: Handle error cleanup of start on open
Nirmoy Das (1):
drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings()
Oliver Neukum (3):
cdc-acm: fix BREAK rx code path adding necessary calls
USB: cdc-acm: untangle a circular dependency between callback and softint
USB: cdc-acm: downgrade message to debug
Sameer Pujar (1):
ASoC: rt5659: Update MCLK rate in set_sysclk()
Shuah Khan (2):
ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr()
usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control()
Steven Rostedt (VMware) (1):
tracing: Fix stack trace event size
Tetsuo Handa (1):
reiserfs: update reiserfs_xattrs_initialized() condition
Tong Zhang (4):
staging: comedi: cb_pcidas: fix request_irq() warn
staging: comedi: cb_pcidas64: fix request_irq() warn
net: wan/lmc: unregister device when no matching device is found
usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference
Tony Lindgren (1):
usb: musb: Fix suspend with devices connected for a64
Vincent Palatin (1):
USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem
Waiman Long (1):
locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling
Wang Panzhenzhuan (1):
pinctrl: rockchip: fix restore error in resume
Xℹ Ruoyao (1):
drm/amdgpu: check alignment on CPU page for bo map
Zhaolong Zhang (1):
ext4: fix bh ref count on error paths
Zheyu Ma (1):
firewire: nosy: Fix a use-after-free bug in nosy_ioctl()
zhangyi (F) (1):
ext4: do not iput inode under running transaction in ext4_rename()
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 -SUBLEVEL = 184 +SUBLEVEL = 185 EXTRAVERSION = NAME = "People's Front"
drivers/base/power/runtime.c +8 -2
@@ -1572,8 +1572,8 @@ void pm_runtime_get_suppliers(struct device *dev)list_for_each_entry_rcu (link, &dev->links.suppliers, c_node)if (link->flags &DL_FLAG_PM_RUNTIME ) { link->supplier_preactivated = true; -refcount_inc (&link->rpm_active);pm_runtime_get_sync (link->supplier); +refcount_inc (&link->rpm_active); }device_links_read_unlock (idx);
@@ -1586,6 +1586,8 @@ void pm_runtime_get_suppliers(struct device *dev)void pm_runtime_put_suppliers (struct device *dev) {struct device_link *link; +unsigned long flags; +bool put;int idx; idx =device_links_read_lock ();
@@ -1593,7 +1595,11 @@ void pm_runtime_put_suppliers(struct device *dev)list_for_each_entry_rcu (link, &dev->links.suppliers, c_node)if (link->supplier_preactivated) { link->supplier_preactivated = false; -if (refcount_dec_not_one (&link->rpm_active)) +spin_lock_irqsave (&dev->power.lock, flags); + put =pm_runtime_status_suspended (dev) && +refcount_dec_not_one (&link->rpm_active); +spin_unlock_irqrestore (&dev->power.lock, flags); +if (put)pm_runtime_put (link->supplier); }
drivers/extcon/extcon.c +1 -0
@@ -1256,6 +1256,7 @@ int extcon_dev_register(struct extcon_dev *edev) sizeof(*edev->nh), GFP_KERNEL);if (!edev->nh) { ret = -ENOMEM ; +device_unregister (&edev->dev); goto err_dev; }
drivers/firewire/nosy.c +7 -2
@@ -359,6 +359,7 @@ nosy_ioctl(struct file *file, unsigned int cmd, unsigned long arg)struct client *client = file->private_data;spinlock_t *client_list_lock = &client->lynx->client_list_lock;struct nosy_stats stats; +int ret;switch (cmd) {case NOSY_IOC_GET_STATS :
@@ -373,11 +374,15 @@ nosy_ioctl(struct file *file, unsigned int cmd, unsigned long arg)return 0 ;case NOSY_IOC_START : + ret = -EBUSY ;spin_lock_irq (client_list_lock); -list_add_tail (&client->link, &client->lynx->client_list); +if (list_empty (&client->link)) { +list_add_tail (&client->link, &client->lynx->client_list); + ret =0 ; + }spin_unlock_irq (client_list_lock); -return 0 ; +return ret;case NOSY_IOC_STOP :spin_lock_irq (client_list_lock);
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +5 -5
@@ -2076,8 +2076,8 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,uint64_t eaddr;/* validate the parameters */ -if (saddr &AMDGPU_GPU_PAGE_MASK || offset &AMDGPU_GPU_PAGE_MASK || - size ==0 || size &AMDGPU_GPU_PAGE_MASK ) +if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK || + size ==0 || size & ~PAGE_MASK )return -EINVAL ;/* make sure object fit at this offset */
@@ -2141,8 +2141,8 @@ int amdgpu_vm_bo_replace_map(struct amdgpu_device *adev,int r;/* validate the parameters */ -if (saddr &AMDGPU_GPU_PAGE_MASK || offset &AMDGPU_GPU_PAGE_MASK || - size ==0 || size &AMDGPU_GPU_PAGE_MASK ) +if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK || + size ==0 || size & ~PAGE_MASK )return -EINVAL ;/* make sure object fit at this offset */
@@ -2286,7 +2286,7 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev, after->start = eaddr +1 ; after->last = tmp->last; after->offset = tmp->offset; - after->offset += after->start - tmp->start; + after->offset += (after->start - tmp->start) <<PAGE_SHIFT ; after->flags = tmp->flags; after->bo_va = tmp->bo_va;list_add (&after->list, &tmp->bo_va->invalids);
drivers/net/ethernet/aquantia/atlantic/aq_main.c +3 -1
@@ -50,8 +50,10 @@ static int aq_ndev_open(struct net_device *ndev)if (err <0 ) goto err_exit; err =aq_nic_start (aq_nic); -if (err <0 ) +if (err <0 ) { +aq_nic_stop (aq_nic); goto err_exit; + } err_exit:if (err <0 )
drivers/net/wan/lmc/lmc_main.c +2 -0
@@ -915,6 +915,8 @@ static int lmc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)break ;default :printk (KERN_WARNING "%s: LMC UNKNOWN CARD!\n" , dev->name); +unregister_hdlc_device (dev); +return -EIO ;break ; }
drivers/net/wireless/ath/ath10k/wmi-tlv.c +5 -2
@@ -449,13 +449,13 @@ static void ath10k_wmi_event_tdls_peer(struct ath10k *ar, struct sk_buff *skb)case WMI_TDLS_TEARDOWN_REASON_TX :case WMI_TDLS_TEARDOWN_REASON_RSSI :case WMI_TDLS_TEARDOWN_REASON_PTR_TIMEOUT : +rcu_read_lock (); station =ieee80211_find_sta_by_ifaddr (ar->hw, ev->peer_macaddr.addr,NULL );if (!station) {ath10k_warn (ar,"did not find station from tdls peer event" ); -kfree (tb); -return ; + goto exit; } arvif =ath10k_get_arvif (ar,__le32_to_cpu (ev->vdev_id)); ieee80211_tdls_oper_request(
@@ -466,6 +466,9 @@ static void ath10k_wmi_event_tdls_peer(struct ath10k *ar, struct sk_buff *skb) );break ; } + +exit: +rcu_read_unlock ();kfree (tb); }
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +5 -2
@@ -5282,7 +5282,8 @@ static bool brcmf_is_linkup(struct brcmf_cfg80211_vif *vif,return false; } -static bool brcmf_is_linkdown (const struct brcmf_event_msg *e) +static bool brcmf_is_linkdown (struct brcmf_cfg80211_vif *vif, +const struct brcmf_event_msg *e) {u32 event = e->event_code;u16 flags = e->flags;
@@ -5291,6 +5292,8 @@ static bool brcmf_is_linkdown(const struct brcmf_event_msg *e) (event == BRCMF_E_DISASSOC_IND) || ((event == BRCMF_E_LINK) && (!(flags & BRCMF_EVENT_MSG_LINK)))) {brcmf_dbg (CONN ,"Processing link down\n" ); +clear_bit (BRCMF_VIF_STATUS_EAP_SUCCESS , &vif->sme_state); +clear_bit (BRCMF_VIF_STATUS_ASSOC_SUCCESS , &vif->sme_state);return true; }return false;
@@ -5581,7 +5584,7 @@ brcmf_notify_connect_status(struct brcmf_if *ifp, }else brcmf_bss_connect_done (cfg, ndev, e, true);brcmf_net_setcarrier (ifp, true); - }else if (brcmf_is_linkdown (e)) { + }else if (brcmf_is_linkdown (ifp->vif, e)) {brcmf_dbg (CONN ,"Linkdown\n" );if (!brcmf_is_ibssmode (ifp->vif)) {brcmf_bss_connect_done (cfg, ndev, e, false);
drivers/pinctrl/pinctrl-rockchip.c +8 -5
@@ -3353,12 +3353,15 @@ static int __maybe_unused rockchip_pinctrl_suspend(struct device *dev)static int __maybe_unused rockchip_pinctrl_resume (struct device *dev) {struct rockchip_pinctrl *info =dev_get_drvdata (dev); -int ret =regmap_write (info->regmap_base,RK3288_GRF_GPIO6C_IOMUX , - rk3288_grf_gpio6c_iomux | -GPIO6C6_SEL_WRITE_ENABLE ); +int ret; -if (ret) -return ret; +if (info->ctrl->type ==RK3288 ) { + ret =regmap_write (info->regmap_base,RK3288_GRF_GPIO6C_IOMUX , + rk3288_grf_gpio6c_iomux | +GPIO6C6_SEL_WRITE_ENABLE ); +if (ret) +return ret; + }return pinctrl_force_default (info->pctl_dev); }
drivers/scsi/qla2xxx/qla_target.h +1 -1
@@ -124,7 +124,6 @@ (min (1270 , ((ql) >0 ) ? (QLA_TGT_DATASEGS_PER_CMD_24XX + \ QLA_TGT_DATASEGS_PER_CONT_24XX*((ql) - 1)) : 0))#endif -#endif #define GET_TARGET_ID (ha, iocb) ((HAS_EXTENDED_IDS(ha)) \ ? le16_to_cpu((iocb)->u.isp2x.target.extended) \
@@ -257,6 +256,7 @@ struct ctio_to_2xxx {#ifndef CTIO_RET_TYPE #define CTIO_RET_TYPE 0x17/* CTIO return entry */ #define ATIO_TYPE7 0x06/* Accept target I/O entry for 24xx */ +#endif struct fcp_hdr {uint8_t r_ctl;
drivers/scsi/st.c +1 -1
@@ -1265,8 +1265,8 @@ static int st_open(struct inode *inode, struct file *filp)spin_lock (&st_use_lock);if (STp->in_use) {spin_unlock (&st_use_lock); -scsi_tape_put (STp);DEBC_printk (STp,"Device already in use.\n" ); +scsi_tape_put (STp);return (-EBUSY ); }
drivers/staging/comedi/drivers/cb_pcidas.c +1 -1
@@ -1281,7 +1281,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, devpriv->amcc + AMCC_OP_REG_INTCSR); ret =request_irq (pcidev->irq, cb_pcidas_interrupt,IRQF_SHARED , - dev->board_name, dev); +"cb_pcidas" , dev);if (ret) {dev_dbg (dev->class_dev,"unable to allocate irq %d\n" , pcidev->irq);
drivers/staging/comedi/drivers/cb_pcidas64.c +1 -1
@@ -4021,7 +4021,7 @@ static int auto_attach(struct comedi_device *dev,init_stc_registers (dev); retval =request_irq (pcidev->irq, handle_interrupt,IRQF_SHARED , - dev->board_name, dev); +"cb_pcidas64" , dev);if (retval) {dev_dbg (dev->class_dev,"unable to allocate irq %u\n" , pcidev->irq);
drivers/staging/rtl8192e/rtllib.h +1 -1
@@ -1110,7 +1110,7 @@ struct rtllib_network {bool bWithAironetIE;bool bCkipSupported;bool bCcxRmEnable; -u16 CcxRmState[2 ]; +u8 CcxRmState[2 ];bool bMBssidValid;u8 MBssidMask;u8 MBssid[ETH_ALEN ];
drivers/staging/rtl8192e/rtllib_rx.c +1 -1
@@ -1978,7 +1978,7 @@ static void rtllib_parse_mife_generic(struct rtllib_device *ieee, info_element->data[2] == 0x96 && info_element->data[3] == 0x01) {if (info_element->len ==6 ) { -memcpy (network->CcxRmState, &info_element[4 ],2 ); +memcpy (network->CcxRmState, &info_element->data[4 ],2 );if (network->CcxRmState[0 ] !=0 ) network->bCcxRmEnable = true;else
drivers/thermal/thermal_sysfs.c +3 -0
@@ -770,6 +770,9 @@ void thermal_cooling_device_stats_update(struct thermal_cooling_device *cdev, {struct cooling_dev_stats *stats = cdev->stats; +if (!stats) +return ; +spin_lock (&stats->lock);if (stats->state == new_state)
drivers/usb/class/cdc-acm.c +42 -19
147 lines not on this page · raw message
drivers/usb/core/quirks.c +4 -0
@@ -498,6 +498,10 @@ static const struct usb_device_id usb_quirk_list[] = {/* DJI CineSSD */ { USB_DEVICE(0x2ca3, 0x0031), .driver_info = USB_QUIRK_NO_LPM }, + /* Fibocom L850-GL LTE Modem */ + { USB_DEVICE(0x2cb7, 0x0007), .driver_info = + USB_QUIRK_IGNORE_REMOTE_WAKEUP }, + /* INTEL VALUE SSD */ { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
drivers/usb/dwc2/hcd.c +1 -1
@@ -5560,7 +5560,7 @@ int dwc2_host_enter_hibernation(struct dwc2_hsotg *hsotg)dwc2_writel (hsotg, hprt0,HPRT0 );/* Wait for the HPRT0.PrtSusp register field to be set */ -if (dwc2_hsotg_wait_bit_set (hsotg,HPRT0 ,HPRT0_SUSP ,3000 )) +if (dwc2_hsotg_wait_bit_set (hsotg,HPRT0 ,HPRT0_SUSP ,5000 ))dev_warn (hsotg->dev,"Suspend wasn't generated\n" );/*
drivers/usb/gadget/udc/amd5536udc_pci.c +5 -5
@@ -154,6 +154,11 @@ static int udc_pci_probe(pci_set_master (pdev);pci_try_set_mwi (pdev); + dev->phys_addr = resource; + dev->irq = pdev->irq; + dev->pdev = pdev; + dev->dev = &pdev->dev; +/* init dma pools */ if (use_dma) { retval =init_dma_pools (dev);
@@ -161,11 +166,6 @@ static int udc_pci_probe( goto err_dma; } - dev->phys_addr = resource; - dev->irq = pdev->irq; - dev->pdev = pdev; - dev->dev = &pdev->dev; -/* general probing */ if (udc_probe (dev)) { retval = -ENODEV ;
drivers/usb/host/xhci-mtk.c +9 -1
@@ -395,6 +395,13 @@ static void xhci_mtk_quirks(struct device *dev, struct xhci_hcd *xhci) xhci->quirks |=XHCI_SPURIOUS_SUCCESS ;if (mtk->lpm_support) xhci->quirks |=XHCI_LPM_SUPPORT ; + +/* +* MTK xHCI 0.96: PSA is 1 by default even if doesn't support stream, +* and it's 3 when support it. +*/ +if (xhci->hci_version <0x100 &&HCC_MAX_PSA (xhci->hcc_params) ==4 ) + xhci->quirks |=XHCI_BROKEN_STREAMS ; }/* called during probe() after chip reset completes */
@@ -551,7 +558,8 @@ static int xhci_mtk_probe(struct platform_device *pdev)if (ret) goto put_usb3_hcd; -if (HCC_MAX_PSA (xhci->hcc_params) >=4 ) +if (HCC_MAX_PSA (xhci->hcc_params) >=4 && + !(xhci->quirks &XHCI_BROKEN_STREAMS )) xhci->shared_hcd->can_do_streams =1 ; ret =usb_add_hcd (xhci->shared_hcd, irq,IRQF_SHARED );
drivers/usb/musb/musb_core.c +8 -4
@@ -1868,10 +1868,14 @@ static void musb_pm_runtime_check_session(struct musb *musb)MUSB_DEVCTL_HR ;switch (devctl & ~s) {case MUSB_QUIRK_B_DISCONNECT_99 : -musb_dbg (musb,"Poll devctl in case of suspend after disconnect\n" ); -schedule_delayed_work (&musb->irq_work, -msecs_to_jiffies (1000 )); -break ; +if (musb->quirk_retries && !musb->flush_irq_work) { +musb_dbg (musb,"Poll devctl in case of suspend after disconnect\n" ); +schedule_delayed_work (&musb->irq_work, +msecs_to_jiffies (1000 )); + musb->quirk_retries--; +break ; + } +/* fall through */ case MUSB_QUIRK_B_INVALID_VBUS_91 :if (musb->quirk_retries && !musb->flush_irq_work) { musb_dbg(musb,
drivers/usb/usbip/vhci_hcd.c +2 -0
@@ -594,6 +594,8 @@ static int vhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,pr_err ("invalid port number %d\n" , wIndex); goto error; } +if (wValue >=32 ) + goto error;if (hcd->speed ==HCD_USB3 ) {if ((vhci_hcd->port_status[rhport] &USB_SS_PORT_STAT_POWER ) !=0 ) {
drivers/vhost/vhost.c +1 -1
@@ -322,8 +322,8 @@ static void vhost_vq_reset(struct vhost_dev *dev, vq->kick =NULL ; vq->call_ctx =NULL ; vq->log_ctx =NULL ; -vhost_reset_is_le (vq);vhost_disable_cross_endian (vq); +vhost_reset_is_le (vq); vq->busyloop_timeout =0 ; vq->umem =NULL ; vq->iotlb =NULL ;
drivers/video/fbdev/core/fbcon.c +3 -0
@@ -1306,6 +1306,9 @@ static void fbcon_cursor(struct vc_data *vc, int mode) ops->cursor_flash = (mode ==CM_ERASE ) ?0 :1 ; +if (!ops->cursor) +return ; + ops->cursor (vc, info, mode,get_color (vc, info, c,1 ),get_color (vc, info, c,0 )); }
fs/ext4/inode.c +3 -3
@@ -2072,13 +2072,13 @@ static int __ext4_journalled_writepage(struct page *page,if (!ret) ret = err; -if (!ext4_has_inline_data (inode)) -ext4_walk_page_buffers (NULL , page_bufs,0 , len, -NULL , bput_one);ext4_set_inode_state (inode,EXT4_STATE_JDATA ); out:unlock_page (page); out_no_pagelock: +if (!inline_data && page_bufs) +ext4_walk_page_buffers (NULL , page_bufs,0 , len, +NULL , bput_one);brelse (inode_bh);return ret; }
fs/ext4/namei.c +9 -9
@@ -3624,14 +3624,14 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,*/ retval = -ENOENT ;if (!old.bh ||le32_to_cpu (old.de->inode) != old.inode->i_ino) - goto end_rename; + goto release_bh; new.bh =ext4_find_entry (new.dir, &new.dentry->d_name, &new.de, &new.inlined);if (IS_ERR (new.bh)) { retval =PTR_ERR (new.bh); new.bh =NULL ; - goto end_rename; + goto release_bh; }if (new.bh) {if (!new.inode) {
@@ -3648,15 +3648,13 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, handle =ext4_journal_start (old.dir,EXT4_HT_DIR , credits);if (IS_ERR (handle)) { retval =PTR_ERR (handle); - handle =NULL ; - goto end_rename; + goto release_bh; } }else { whiteout =ext4_whiteout_for_rename (&old, credits, &handle);if (IS_ERR (whiteout)) { retval =PTR_ERR (whiteout); - whiteout =NULL ; - goto end_rename; + goto release_bh; } }
@@ -3764,16 +3762,18 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,ext4_resetent (handle, &old, old.inode->i_ino, old_file_type);drop_nlink (whiteout); +ext4_orphan_add (handle, whiteout); }unlock_new_inode (whiteout); +ext4_journal_stop (handle);iput (whiteout); - + }else { +ext4_journal_stop (handle); } +release_bh:brelse (old.dir_bh);brelse (old.bh);brelse (new.bh); -if (handle) -ext4_journal_stop (handle);return retval; }
fs/reiserfs/xattr.h +1 -1
@@ -43,7 +43,7 @@ void reiserfs_security_free(struct reiserfs_security_handle *sec);static inline int reiserfs_xattrs_initialized (struct super_block *sb) { -return REISERFS_SB (sb)->priv_root !=NULL ; +return REISERFS_SB (sb)->priv_root &&REISERFS_SB (sb)->xattr_root; }#define xattr_size (size) ((size) + sizeof(struct reiserfs_xattr_header))
include/linux/extcon.h +23 -0
@@ -279,6 +279,29 @@ static inline void devm_extcon_unregister_notifier(struct device *dev, struct extcon_dev *edev, unsigned int id, struct notifier_block *nb) { } +static inline int extcon_register_notifier_all (struct extcon_dev *edev, +struct notifier_block *nb) +{ +return 0 ; +} + +static inline int extcon_unregister_notifier_all (struct extcon_dev *edev, +struct notifier_block *nb) +{ +return 0 ; +} + +static inline int devm_extcon_register_notifier_all (struct device *dev, +struct extcon_dev *edev, +struct notifier_block *nb) +{ +return 0 ; +} + +static inline void devm_extcon_unregister_notifier_all (struct device *dev, +struct extcon_dev *edev, +struct notifier_block *nb) { } +static inline struct extcon_dev *extcon_get_extcon_dev (const char *extcon_name) {return ERR_PTR (-ENODEV );
include/net/inet_connection_sock.h +1 -1
@@ -288,7 +288,7 @@ static inline int inet_csk_reqsk_queue_is_full(const struct sock *sk)return inet_csk_reqsk_queue_len (sk) >= sk->sk_max_ack_backlog; } -void inet_csk_reqsk_queue_drop (struct sock *sk,struct request_sock *req); +bool inet_csk_reqsk_queue_drop (struct sock *sk,struct request_sock *req);void inet_csk_reqsk_queue_drop_and_put (struct sock *sk,struct request_sock *req);void inet_csk_destroy_sock (struct sock *sk);
kernel/locking/mutex.c +14 -11
@@ -609,7 +609,7 @@ static inline int mutex_can_spin_on_owner(struct mutex *lock)*/ static __always_inline boolmutex_optimistic_spin (struct mutex *lock,struct ww_acquire_ctx *ww_ctx, -const bool use_ww_ctx,struct mutex_waiter *waiter) +struct mutex_waiter *waiter) {if (!waiter) {/*
@@ -685,7 +685,7 @@ mutex_optimistic_spin(struct mutex *lock, struct ww_acquire_ctx *ww_ctx,#else static __always_inline boolmutex_optimistic_spin (struct mutex *lock,struct ww_acquire_ctx *ww_ctx, -const bool use_ww_ctx,struct mutex_waiter *waiter) +struct mutex_waiter *waiter) {return false; }
@@ -905,10 +905,13 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,struct ww_mutex *ww;int ret; +if (!use_ww_ctx) + ww_ctx =NULL ; +might_sleep (); ww = container_of(lock, struct ww_mutex, base); -if (use_ww_ctx && ww_ctx) { +if (ww_ctx) {if (unlikely (ww_ctx ==READ_ONCE (ww->ctx)))return -EALREADY ;
@@ -925,10 +928,10 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,mutex_acquire_nest (&lock->dep_map, subclass,0 , nest_lock, ip);if (__mutex_trylock (lock) || -mutex_optimistic_spin (lock, ww_ctx, use_ww_ctx,NULL )) { +mutex_optimistic_spin (lock, ww_ctx,NULL )) {/* got the lock, yay! */ lock_acquired (&lock->dep_map, ip); -if (use_ww_ctx && ww_ctx) +if (ww_ctx)ww_mutex_set_context_fastpath (ww, ww_ctx);preempt_enable ();return 0 ;
@@ -939,7 +942,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,* After waiting to acquire the wait_lock, try again. */ if (__mutex_trylock (lock)) { -if (use_ww_ctx && ww_ctx) +if (ww_ctx)__ww_mutex_check_waiters (lock, ww_ctx); goto skip_wait;
@@ -992,7 +995,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass, goto err; } -if (use_ww_ctx && ww_ctx) { +if (ww_ctx) { ret =__ww_mutex_check_kill (lock, &waiter, ww_ctx);if (ret) goto err;
@@ -1005,7 +1008,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,* ww_mutex needs to always recheck its position since its waiter * list is not FIFO ordered. */ -if ((use_ww_ctx && ww_ctx) || !first) { +if (ww_ctx || !first) { first =__mutex_waiter_is_first (lock, &waiter);if (first)__mutex_set_flag (lock,MUTEX_FLAG_HANDOFF );
@@ -1018,7 +1021,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,* or we must see its unlock and acquire. */ if (__mutex_trylock (lock) || - (first &&mutex_optimistic_spin (lock, ww_ctx, use_ww_ctx, &waiter))) + (first &&mutex_optimistic_spin (lock, ww_ctx, &waiter)))break ;spin_lock (&lock->wait_lock);
@@ -1027,7 +1030,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass, acquired:__set_current_state (TASK_RUNNING ); -if (use_ww_ctx && ww_ctx) { +if (ww_ctx) {/* * Wound-Wait; we stole the lock (!first_waiter), check the * waiters as anyone might want to wound us.
@@ -1047,7 +1050,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,/* got the lock - cleanup and rejoice! */ lock_acquired (&lock->dep_map, ip); -if (use_ww_ctx && ww_ctx) +if (ww_ctx)ww_mutex_lock_acquired (ww, ww_ctx);spin_unlock (&lock->wait_lock);
kernel/trace/trace.c +2 -1
@@ -2645,7 +2645,8 @@ static void __ftrace_trace_stack(struct ring_buffer *buffer, size *=sizeof (unsigned long ); event =__trace_buffer_lock_reserve (buffer,TRACE_STACK , -sizeof (*entry) + size, flags, pc); + (sizeof (*entry) -sizeof (entry->caller)) + size, + flags, pc);if (!event) goto out; entry =ring_buffer_event_data (event);
mm/memory.c +1 -1
@@ -148,7 +148,7 @@ static int __init init_zero_pfn(void) zero_pfn =page_to_pfn (ZERO_PAGE (0 ));return 0 ; } -core_initcall (init_zero_pfn); +early_initcall (init_zero_pfn);#if defined(SPLIT_RSS_COUNTING )
net/appletalk/ddp.c +21 -12
@@ -1573,8 +1573,8 @@ static int atalk_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)struct sk_buff *skb;struct net_device *dev;struct ddpehdr *ddp; -int size; -struct atalk_route *rt; +int size, hard_header_len; +struct atalk_route *rt, *rt_lo =NULL ;int err;if (flags & ~(MSG_DONTWAIT |MSG_CMSG_COMPAT ))
@@ -1637,7 +1637,22 @@ static int atalk_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)SOCK_DEBUG (sk,"SK %p: Size needed %d, device %s\n" , sk, size, dev->name); - size += dev->hard_header_len; + hard_header_len = dev->hard_header_len; +/* Leave room for loopback hardware header if necessary */ +if (usat->sat_addr.s_node ==ATADDR_BCAST && + (dev->flags &IFF_LOOPBACK || !(rt->flags &RTF_GATEWAY ))) { +struct atalk_addr at_lo; + + at_lo.s_node =0 ; + at_lo.s_net =0 ; + + rt_lo =atrtr_find (&at_lo); + +if (rt_lo && rt_lo->dev->hard_header_len > hard_header_len) + hard_header_len = rt_lo->dev->hard_header_len; + } + + size += hard_header_len;release_sock (sk); skb =sock_alloc_send_skb (sk, size, (flags &MSG_DONTWAIT ), &err);lock_sock (sk);
@@ -1645,7 +1660,7 @@ static int atalk_sendmsg(struct socket *sock, struct msghdr *msg, size_t len) goto out;skb_reserve (skb, ddp_dl->header_length); -skb_reserve (skb, dev->hard_header_len); +skb_reserve (skb, hard_header_len); skb->dev = dev;SOCK_DEBUG (sk,"SK %p: Begin build.\n" , sk);
@@ -1696,18 +1711,12 @@ static int atalk_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)/* loop back */ skb_orphan (skb);if (ddp->deh_dnode ==ATADDR_BCAST ) { -struct atalk_addr at_lo; - - at_lo.s_node =0 ; - at_lo.s_net =0 ; - - rt =atrtr_find (&at_lo); -if (!rt) { +if (!rt_lo) {kfree_skb (skb); err = -ENETUNREACH ; goto out; } - dev = rt->dev; + dev = rt_lo->dev; skb->dev = dev; } ddp_dl->request (ddp_dl, skb, dev->dev_addr);
net/core/filter.c +4 -8
@@ -2836,18 +2836,14 @@ static int bpf_skb_net_shrink(struct sk_buff *skb, u32 len_diff)return 0 ; } -static u32 __bpf_skb_max_len (const struct sk_buff *skb) -{ -return skb->dev ? skb->dev->mtu + skb->dev->hard_header_len : -SKB_MAX_ALLOC ; -} +#define BPF_SKB_MAX_LEN SKB_MAX_ALLOCstatic int bpf_skb_adjust_net (struct sk_buff *skb,s32 len_diff) {bool trans_same = skb->transport_header == skb->network_header;u32 len_cur, len_diff_abs =abs (len_diff);u32 len_min =bpf_skb_net_base_len (skb); -u32 len_max =__bpf_skb_max_len (skb); +u32 len_max =BPF_SKB_MAX_LEN ;__be16 proto =skb_protocol (skb, true);bool shrink = len_diff <0 ;int ret;
@@ -2926,7 +2922,7 @@ static int bpf_skb_trim_rcsum(struct sk_buff *skb, unsigned int new_len)static inline int __bpf_skb_change_tail (struct sk_buff *skb,u32 new_len,u64 flags) { -u32 max_len =__bpf_skb_max_len (skb); +u32 max_len =BPF_SKB_MAX_LEN ;u32 min_len =__bpf_skb_min_len (skb);int ret;
@@ -3002,7 +2998,7 @@ static const struct bpf_func_proto sk_skb_change_tail_proto = {static inline int __bpf_skb_change_head (struct sk_buff *skb,u32 head_room,u64 flags) { -u32 max_len =__bpf_skb_max_len (skb); +u32 max_len =BPF_SKB_MAX_LEN ;u32 new_len = skb->len + head_room;int ret;
net/dccp/ipv6.c +5 -0
@@ -319,6 +319,11 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb)if (!ipv6_unicast_destination (skb))return 0 ;/* discard, don't send a reset here */ +if (ipv6_addr_v4mapped (&ipv6_hdr (skb)->saddr)) { +__IP6_INC_STATS (sock_net (sk),NULL ,IPSTATS_MIB_INHDRERRORS ); +return 0 ; + } +if (dccp_bad_service_code (sk, service)) { dcb->dccpd_reset_code =DCCP_RESET_CODE_BAD_SERVICE_CODE ; goto drop;
net/ipv4/inet_connection_sock.c +5 -2
@@ -698,12 +698,15 @@ static bool reqsk_queue_unlink(struct request_sock_queue *queue,return found; } -void inet_csk_reqsk_queue_drop (struct sock *sk,struct request_sock *req) +bool inet_csk_reqsk_queue_drop (struct sock *sk,struct request_sock *req) { -if (reqsk_queue_unlink (&inet_csk (sk)->icsk_accept_queue, req)) { +bool unlinked =reqsk_queue_unlink (&inet_csk (sk)->icsk_accept_queue, req); + +if (unlinked) {reqsk_queue_removed (&inet_csk (sk)->icsk_accept_queue, req);reqsk_put (req); } +return unlinked; }EXPORT_SYMBOL (inet_csk_reqsk_queue_drop);
net/ipv4/tcp_minisocks.c +5 -2
@@ -815,8 +815,11 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_buff *skb,tcp_reset (sk); }if (!fastopen) { -inet_csk_reqsk_queue_drop (sk, req); -__NET_INC_STATS (sock_net (sk),LINUX_MIB_EMBRYONICRSTS ); +bool unlinked =inet_csk_reqsk_queue_drop (sk, req); + +if (unlinked) +__NET_INC_STATS (sock_net (sk),LINUX_MIB_EMBRYONICRSTS ); + *req_stolen = !unlinked; }return NULL ; }
net/ipv6/ip6_input.c +0 -10
@@ -222,16 +222,6 @@ static struct sk_buff *ip6_rcv_core(struct sk_buff *skb, struct net_device *dev,if (ipv6_addr_is_multicast (&hdr->saddr)) goto err; -/* While RFC4291 is not explicit about v4mapped addresses -* in IPv6 headers, it seems clear linux dual-stack -* model can not deal properly with these. -* Security models could be fooled by ::ffff:127.0.0.1 for example. -* -* https://tools.ietf.org/html/draft-itojun-v6ops-v4mapped-harmful-02 -*/ -if (ipv6_addr_v4mapped (&hdr->saddr)) - goto err; - skb->transport_header = skb->network_header +sizeof (*hdr);IP6CB (skb)->nhoff = offsetof(struct ipv6hdr , nexthdr);
net/ipv6/tcp_ipv6.c +5 -0
@@ -1039,6 +1039,11 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)if (!ipv6_unicast_destination (skb)) goto drop; +if (ipv6_addr_v4mapped (&ipv6_hdr (skb)->saddr)) { +__IP6_INC_STATS (sock_net (sk),NULL ,IPSTATS_MIB_INHDRERRORS ); +return 0 ; + } +return tcp_conn_request (&tcp6_request_sock_ops, &tcp_request_sock_ipv6_ops, sk, skb);
net/sunrpc/auth_gss/svcauth_gss.c +7 -4
@@ -1766,11 +1766,14 @@ static int svcauth_gss_release(struct svc_rqst *rqstp) {struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; -struct rpc_gss_wire_cred *gc = &gsd->clcred; +struct rpc_gss_wire_cred *gc;struct xdr_buf *resbuf = &rqstp->rq_res;int stat = -EINVAL ;struct sunrpc_net *sn =net_generic (SVC_NET (rqstp), sunrpc_net_id); +if (!gsd) + goto out; + gc = &gsd->clcred;if (gc->gc_proc !=RPC_GSS_PROC_DATA ) goto out;/* Release can be called twice, but we only wrap once. */
@@ -1811,10 +1814,10 @@ svcauth_gss_release(struct svc_rqst *rqstp)if (rqstp->rq_cred.cr_group_info)put_group_info (rqstp->rq_cred.cr_group_info); rqstp->rq_cred.cr_group_info =NULL ; -if (gsd->rsci) +if (gsd && gsd->rsci) {cache_put (&gsd->rsci->h, sn->rsc_cache); - gsd->rsci =NULL ; - + gsd->rsci =NULL ; + }return stat; }
net/vmw_vsock/af_vsock.c +1 -0
@@ -628,6 +628,7 @@ struct sock *__vsock_create(struct net *net, vsk->trusted = psk->trusted; vsk->owner =get_cred (psk->owner); vsk->connect_timeout = psk->connect_timeout; +security_sk_clone (parent, sk); }else { vsk->trusted =ns_capable_noaudit (&init_user_ns,CAP_NET_ADMIN ); vsk->owner =get_current_cred ();
sound/pci/hda/patch_realtek.c +2 -1
@@ -4870,7 +4870,7 @@ static void alc_determine_headset_type(struct hda_codec *codec)case 0x10ec0274 :case 0x10ec0294 :alc_process_coef_fw (codec, coef0274); -msleep (80 ); +msleep (850 ); val =alc_read_coef_idx (codec,0x46 ); is_ctia = (val &0x00f0 ) ==0x00f0 ;break ;
@@ -5054,6 +5054,7 @@ static void alc_update_headset_jack_cb(struct hda_codec *codec,struct alc_spec *spec = codec->spec; spec->current_headset_type =ALC_HEADSET_TYPE_UNKNOWN ;snd_hda_gen_hp_automute (codec, jack); +alc_update_headset_mode (codec); }static void alc_probe_headset_mode (struct hda_codec *codec)
sound/soc/codecs/cs42l42.c +34 -40
135 lines not on this page · raw message
sound/soc/codecs/cs42l42.h +7 -6
@@ -262,11 +262,12 @@#define CS42L42_ASP_SLAVE_MODE 0x00#define CS42L42_ASP_MODE_SHIFT 4#define CS42L42_ASP_MODE_MASK (1 << CS42L42_ASP_MODE_SHIFT) -#define CS42L42_ASP_SCPOL_IN_DAC_SHIFT 2 -#define CS42L42_ASP_SCPOL_IN_DAC_MASK (1 << CS42L42_ASP_SCPOL_IN_DAC_SHIFT) -#define CS42L42_ASP_LCPOL_IN_SHIFT 0 -#define CS42L42_ASP_LCPOL_IN_MASK (1 << CS42L42_ASP_LCPOL_IN_SHIFT) -#define CS42L42_ASP_POL_INV 1 +#define CS42L42_ASP_SCPOL_SHIFT 2 +#define CS42L42_ASP_SCPOL_MASK (3 << CS42L42_ASP_SCPOL_SHIFT) +#define CS42L42_ASP_SCPOL_NOR 3 +#define CS42L42_ASP_LCPOL_SHIFT 0 +#define CS42L42_ASP_LCPOL_MASK (3 << CS42L42_ASP_LCPOL_SHIFT) +#define CS42L42_ASP_LCPOL_INV 3#define CS42L42_ASP_FRM_CFG (CS42L42_PAGE_12 + 0x08)#define CS42L42_ASP_STP_SHIFT 4
@@ -743,6 +744,7 @@#define CS42L42_FRAC2_VAL (val) (((val) & 0xff0000) >> 16)#define CS42L42_NUM_SUPPLIES 5 +#define CS42L42_BOOT_TIME_US 3000static const char *const cs42l42_supply_names[CS42L42_NUM_SUPPLIES ] = {"VA" ,
@@ -760,7 +762,6 @@ struct cs42l42_private {struct completion pdn_done;u32 sclk;u32 srate; -u32 swidth;u8 plug_state;u8 hs_type;u8 ts_inv;
sound/soc/codecs/es8316.c +2 -7
@@ -56,13 +56,8 @@ static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(adc_pga_gain_tlv,1 ,1 ,TLV_DB_SCALE_ITEM (0 ,0 ,0 ),2 ,2 ,TLV_DB_SCALE_ITEM (250 ,0 ,0 ),3 ,3 ,TLV_DB_SCALE_ITEM (450 ,0 ,0 ), -4 ,4 ,TLV_DB_SCALE_ITEM (700 ,0 ,0 ), -5 ,5 ,TLV_DB_SCALE_ITEM (1000 ,0 ,0 ), -6 ,6 ,TLV_DB_SCALE_ITEM (1300 ,0 ,0 ), -7 ,7 ,TLV_DB_SCALE_ITEM (1600 ,0 ,0 ), -8 ,8 ,TLV_DB_SCALE_ITEM (1800 ,0 ,0 ), -9 ,9 ,TLV_DB_SCALE_ITEM (2100 ,0 ,0 ), - 10, 10, TLV_DB_SCALE_ITEM(2400, 0, 0), +4 ,7 ,TLV_DB_SCALE_ITEM (700 ,300 ,0 ), + 8, 10, TLV_DB_SCALE_ITEM(1800, 300, 0), ); static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(hpout_vol_tlv,
sound/soc/codecs/rt5640.c +2 -2
@@ -342,9 +342,9 @@ static bool rt5640_readable_register(struct device *dev, unsigned int reg) } static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -4650, 150, 0); -static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -65625, 375, 0); +static const DECLARE_TLV_DB_MINMAX(dac_vol_tlv, -6562, 0); static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0); -static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -17625, 375, 0); +static const DECLARE_TLV_DB_MINMAX(adc_vol_tlv, -1762, 3000); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0);/* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */
sound/soc/codecs/rt5651.c +2 -2
@@ -288,9 +288,9 @@ static bool rt5651_readable_register(struct device *dev, unsigned int reg) } static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -4650, 150, 0); -static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -65625, 375, 0); +static const DECLARE_TLV_DB_MINMAX(dac_vol_tlv, -6562, 0); static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0); -static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -17625, 375, 0); +static const DECLARE_TLV_DB_MINMAX(adc_vol_tlv, -1762, 3000); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0);/* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */
sound/soc/codecs/rt5659.c +5 -0
@@ -3466,12 +3466,17 @@ static int rt5659_set_component_sysclk(struct snd_soc_component *component, int {struct rt5659_priv *rt5659 =snd_soc_component_get_drvdata (component);unsigned int reg_val =0 ; +int ret;if (freq == rt5659->sysclk && clk_id == rt5659->sysclk_src)return 0 ;switch (clk_id) {case RT5659_SCLK_S_MCLK : + ret =clk_set_rate (rt5659->mclk, freq); +if (ret) +return ret; + reg_val |=RT5659_SCLK_SRC_MCLK ;break ;case RT5659_SCLK_S_PLL1 :
sound/soc/codecs/sgtl5000.c +1 -1
@@ -71,7 +71,7 @@ static const struct reg_default sgtl5000_reg_defaults[] = { { SGTL5000_DAP_EQ_BASS_BAND4, 0x002f }, { SGTL5000_DAP_MAIN_CHAN, 0x8000 }, { SGTL5000_DAP_MIX_CHAN, 0x0000 }, - { SGTL5000_DAP_AVC_CTRL, 0x0510 }, + { SGTL5000_DAP_AVC_CTRL, 0x5100 }, { SGTL5000_DAP_AVC_THRESHOLD, 0x1473 }, { SGTL5000_DAP_AVC_ATTACK, 0x0028 }, { SGTL5000_DAP_AVC_DECAY, 0x0050 },
sound/usb/quirks.c +1 -0
@@ -1187,6 +1187,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip)case USB_ID (0x21B4 ,0x0081 ):/* AudioQuest DragonFly */ case USB_ID (0x2912 ,0x30c8 ):/* Audioengine D1 */ case USB_ID (0x413c ,0xa506 ):/* Dell AE515 sound bar */ +case USB_ID (0x046d ,0x084c ):/* Logitech ConferenceCam Connect */ return true; }
Samuel Zou
Tested-by Hulk RobotQuoted 4 lines · Greg Kroah-Hartman
I'm announcing the release of the 4.19.185 kernel.
All users of the 4.19 kernel series must upgrade.
Quoted 9 lines
The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.gitlinux-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=summarythanks,
greg k-h
Tested on arm64 and x86 for 4.19.185,
Kernel repo:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Branch: linux-4.19.y
Version: 4.19.185
Commit: b4454811f122c6a0a330ced6b854e6ef32c37857
Compiler: gcc version 7.3.0 (GCC)
arm64:
--------------------------------------------------------------------
Testcase Result Summary:
total: 4679
passed: 4679
failed: 0
timeout: 0
--------------------------------------------------------------------
x86:
--------------------------------------------------------------------
Testcase Result Summary:
total: 4679
passed: 4679
failed: 0
timeout: 0
--------------------------------------------------------------------