Linux 4.14.229
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.14.229 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
------------
Makefile | 2 arch/powerpc/include/asm/cpu_has_feature.h | 4 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/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/usb/class/cdc-acm.c | 60 ++++-- drivers/usb/core/quirks.c | 4 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/linux/memcontrol.h | 111 ++++++++---- kernel/trace/trace.c | 3 mm/memcontrol.c | 54 ++++- mm/memory.c | 2 mm/oom_kill.c | 2 mm/vmscan.c | 2 net/appletalk/ddp.c | 33 ++- net/core/filter.c | 11 - net/dccp/ipv6.c | 5 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 | 7 sound/soc/codecs/cs42l42.h | 1 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 49 files changed, 334 insertions(+), 168 deletions(-)
Aaron Lu (1):
mem_cgroup: make sure moving_account, move_lock_task and stat_cpu in the same cacheline
Alexey Dobriyan (1):
scsi: qla2xxx: Fix broken #endif placement
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
Christophe Leroy (1):
powerpc: Force inlining of cpu_has_feature() to avoid build failure
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.14.229
Greg Thelen (1):
mm: writeback: use exact memcg dirty counts
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 (1):
USB: cdc-acm: fix use-after-free after probe failure
Johannes Weiner (2):
mm: memcontrol: fix NR_WRITEBACK leak in memcg and system stats
mm: memcg: make sure memory.events is uptodate when waking pollers
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 (2):
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()
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
Roman Gushchin (1):
mm: fix oom_kill event handling
Sameer Pujar (1):
ASoC: rt5659: Update MCLK rate in set_sysclk()
Shuah Khan (1):
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
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 = 14 -SUBLEVEL = 228 +SUBLEVEL = 229 EXTRAVERSION = NAME = Petit Gorille
arch/powerpc/include/asm/cpu_has_feature.h +2 -2
@@ -7,7 +7,7 @@#include <linux/bug.h> #include <asm/cputable.h> -static inline bool early_cpu_has_feature (unsigned long feature) +static __always_inline bool early_cpu_has_feature(unsigned long feature) {return !!((CPU_FTRS_ALWAYS & feature) || (CPU_FTRS_POSSIBLE & cur_cpu_spec->cpu_features & feature));
@@ -46,7 +46,7 @@ static __always_inline bool cpu_has_feature(unsigned long feature)return static_branch_likely (&cpu_feature_keys[i]); }#else -static inline bool cpu_has_feature (unsigned long feature) +static __always_inline bool cpu_has_feature(unsigned long feature) {return early_cpu_has_feature (feature); }
drivers/extcon/extcon.c +1 -0
@@ -1252,6 +1252,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
@@ -2074,8 +2074,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 */
@@ -2142,8 +2142,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 */
@@ -2285,7 +2285,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;list_add (&after->list, &tmp->list); }
drivers/net/ethernet/aquantia/atlantic/aq_main.c +3 -1
@@ -60,8 +60,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
@@ -922,6 +922,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/broadcom/brcm80211/brcmfmac/cfg80211.c +5 -2
@@ -5381,7 +5381,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;
@@ -5390,6 +5391,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;
@@ -5674,7 +5677,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
@@ -3121,12 +3121,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
@@ -1268,8 +1268,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
@@ -1290,7 +1290,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
@@ -4032,7 +4032,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
@@ -1979,7 +1979,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/usb/class/cdc-acm.c +42 -18
141 lines not on this page · raw message
drivers/usb/core/quirks.c +4 -0
@@ -321,6 +321,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/gadget/udc/amd5536udc_pci.c +5 -5
@@ -158,6 +158,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);
@@ -165,11 +170,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
@@ -487,6 +487,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 */
@@ -681,7 +688,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
@@ -1864,10 +1864,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
@@ -608,6 +608,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
@@ -324,8 +324,8 @@ static void vhost_vq_reset(struct vhost_dev *dev, vq->call_ctx =NULL ; vq->call =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
@@ -1284,6 +1284,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
@@ -2071,13 +2071,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
@@ -3635,7 +3635,7 @@ 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; if ((old.dir != new.dir) && ext4_encrypted_inode(new.dir) &&
@@ -3649,7 +3649,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,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) {
@@ -3666,15 +3666,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; } }
@@ -3782,16 +3780,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
@@ -377,6 +377,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/linux/memcontrol.h +78 -33
217 lines not on this page · raw message
kernel/trace/trace.c +2 -1
@@ -2631,7 +2631,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/memcontrol.c +38 -16
124 lines not on this page · raw message
mm/memory.c +1 -1
@@ -149,7 +149,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 )
mm/oom_kill.c +1 -1
@@ -917,7 +917,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message)/* Raise event before sending signal: task reaper must see this */ count_vm_event (OOM_KILL ); -count_memcg_event_mm (mm,OOM_KILL ); +memcg_memory_event_mm (mm,MEMCG_OOM_KILL );/* * We should send SIGKILL before granting access to memory reserves
mm/vmscan.c +1 -1
@@ -2628,7 +2628,7 @@ static bool shrink_node(pg_data_t *pgdat, struct scan_control *sc) sc->memcg_low_skipped =1 ;continue ; } -mem_cgroup_event (memcg,MEMCG_LOW ); +memcg_memory_event (memcg,MEMCG_LOW ); } reclaimed = sc->nr_reclaimed;
net/appletalk/ddp.c +21 -12
@@ -1575,8 +1575,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 ))
@@ -1639,7 +1639,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);
@@ -1647,7 +1662,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);
@@ -1698,18 +1713,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 -7
@@ -2279,17 +2279,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->mtu + skb->dev->hard_header_len; -} +#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;bool shrink = len_diff <0 ;int ret;
@@ -2368,7 +2365,7 @@ static int bpf_skb_trim_rcsum(struct sk_buff *skb, unsigned int new_len) BPF_CALL_3(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;
@@ -2419,7 +2416,7 @@ static const struct bpf_func_proto bpf_skb_change_tail_proto = { BPF_CALL_3(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/ipv6/ip6_input.c +0 -10
@@ -173,16 +173,6 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *ptif (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
@@ -1013,6 +1013,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
@@ -1713,11 +1713,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. */
@@ -1758,10 +1761,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
@@ -635,6 +635,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
@@ -4642,7 +4642,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 ;
@@ -4811,6 +4811,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 +4 -3
@@ -405,7 +405,7 @@ static const struct regmap_config cs42l42_regmap = { }; static DECLARE_TLV_DB_SCALE(adc_tlv, -9600, 100, false); -static DECLARE_TLV_DB_SCALE(mixer_tlv, -6200, 100, false); +static DECLARE_TLV_DB_SCALE(mixer_tlv, -6300, 100, true);static const char *const cs42l42_hpf_freq_text[] = {"1.86Hz" ,"120Hz" ,"235Hz" ,"466Hz"
@@ -462,7 +462,7 @@ static const struct snd_kcontrol_new cs42l42_snd_controls[] = { CS42L42_DAC_HPF_EN_SHIFT, true, false), SOC_DOUBLE_R_TLV("Mixer Volume", CS42L42_MIXER_CHA_VOL, CS42L42_MIXER_CHB_VOL, CS42L42_MIXER_CH_VOL_SHIFT, - 0x3e, 1, mixer_tlv) + 0x3f, 1, mixer_tlv) }; static int cs42l42_hpdrv_evt(struct snd_soc_dapm_widget *w,
@@ -1809,7 +1809,7 @@ static int cs42l42_i2c_probe(struct i2c_client *i2c_client,dev_dbg (&i2c_client->dev,"Found reset GPIO\n" );gpiod_set_value_cansleep (cs42l42->reset_gpio,1 ); } -mdelay (3 ); +usleep_range (CS42L42_BOOT_TIME_US ,CS42L42_BOOT_TIME_US *2 );/* Request IRQ */ ret = devm_request_threaded_irq(&i2c_client->dev,
@@ -1936,6 +1936,7 @@ static int cs42l42_runtime_resume(struct device *dev) }gpiod_set_value_cansleep (cs42l42->reset_gpio,1 ); +usleep_range (CS42L42_BOOT_TIME_US ,CS42L42_BOOT_TIME_US *2 );regcache_cache_only (cs42l42->regmap, false);regcache_sync (cs42l42->regmap);
sound/soc/codecs/cs42l42.h +1 -0
@@ -743,6 +743,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" ,
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
@@ -341,9 +341,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
@@ -287,9 +287,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
@@ -3391,12 +3391,17 @@ static int rt5659_set_dai_sysclk(struct snd_soc_dai *dai,struct snd_soc_codec *codec = dai->codec;struct rt5659_priv *rt5659 =snd_soc_codec_get_drvdata (codec);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
@@ -75,7 +75,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
@@ -1156,6 +1156,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; }return false;
Samuel Zou
Tested-by Hulk RobotQuoted 4 lines · Greg Kroah-Hartman
I'm announcing the release of the 4.14.229 kernel.
All users of the 4.14 kernel series must upgrade.
Quoted 9 lines
The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.gitlinux-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=summarythanks,
greg k-h
Tested on x86 for 4.14.229,
Kernel repo:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Branch: linux-4.14.y
Version: 4.14.229
Commit: 0cc244011f40280b78fc344d5c2aac5a0c659f77
Compiler: gcc version 7.3.0 (GCC)
x86:
--------------------------------------------------------------------
Testcase Result Summary:
total: 4667
passed: 4667
failed: 0
timeout: 0
--------------------------------------------------------------------