Linux 4.14.225
[email protected]
maintainerFrom: Greg Kroah-Hartman <[email protected]>
I'm announcing the release of the 4.14.225 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 drivers/base/power/runtime.c | 62 ++++++---- drivers/block/rsxx/core.c | 8 - drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 2 drivers/iommu/amd_iommu.c | 10 - drivers/md/dm-table.c | 168 +++++++++++---------------- drivers/misc/eeprom/eeprom_93xx46.c | 15 ++ drivers/net/wireless/marvell/mwifiex/pcie.c | 18 ++ drivers/net/wireless/marvell/mwifiex/pcie.h | 2 drivers/pci/quirks.c | 3 drivers/platform/x86/acer-wmi.c | 169 +++++++++++++++++++++++----- fs/btrfs/raid56.c | 58 ++++----- include/linux/eeprom_93xx46.h | 2 sound/pci/ctxfi/cthw20k2.c | 2 tools/usb/usbip/libsrc/usbip_host_common.c | 2 15 files changed, 325 insertions(+), 198 deletions(-)
Andrey Ryabinin (1):
iommu/amd: Fix sleeping in atomic in increase_address_space()
AngeloGioacchino Del Regno (1):
drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
Antonio Borneo (1):
usbip: tools: fix build error for multiple definition
Aswath Govindraju (1):
misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
Bjorn Helgaas (1):
PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
Colin Ian King (1):
ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits
Dan Carpenter (1):
rsxx: Return -EFAULT if copy_to_user() fails
David Sterba (1):
btrfs: raid56: simplify tracking of Q stripe presence
Greg Kroah-Hartman (1):
Linux 4.14.225
Hans de Goede (6):
platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
platform/x86: acer-wmi: Cleanup accelerometer device handling platform/x86: acer-wmi: Add new force_caps module parameter platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch 10E SW3-016
Ira Weiny (1):
btrfs: fix raid6 qstripe kmap
Jeffle Xu (3):
dm table: fix iterate_devices based device capability checks dm table: fix DAX iterate_devices based device capability checks dm table: fix zoned iterate_devices based device capability checks
Rafael J. Wysocki (1):
PM: runtime: Update device status before letting suppliers suspend
Tsuchiya Yuto (1):
mwifiex: pcie: skip cancel_work_sync() on reset failure path
[email protected]
maintainerFrom: Greg Kroah-Hartman <[email protected]>
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 14 -SUBLEVEL = 224 +SUBLEVEL = 225 EXTRAVERSION = NAME = Petit Gorille
drivers/base/power/runtime.c +37 -25
83 lines not on this page · raw message
drivers/block/rsxx/core.c +5 -3
@@ -180,15 +180,17 @@ static ssize_t rsxx_cram_read(struct file *fp, char __user *ubuf, {struct rsxx_cardinfo *card =file_inode (fp)->i_private;char *buf; -ssize_t st; +int st; buf =kzalloc (cnt,GFP_KERNEL );if (!buf)return -ENOMEM ; st =rsxx_creg_read (card,CREG_ADD_CRAM + (u32)*ppos, cnt, buf,1 ); -if (!st) - st =copy_to_user (ubuf, buf, cnt); +if (!st) { +if (copy_to_user (ubuf, buf, cnt)) + st = -EFAULT ; + }kfree (buf);if (st)return st;
drivers/gpu/drm/msm/adreno/a5xx_gpu.c +0 -2
@@ -472,8 +472,6 @@ static int a5xx_hw_init(struct msm_gpu *gpu)if (adreno_gpu->info->quirks &ADRENO_QUIRK_TWO_PASS_USE_WFI )gpu_rmw (gpu,REG_A5XX_PC_DBG_ECO_CNTL ,0 , (1 <<8 )); -gpu_write (gpu,REG_A5XX_PC_DBG_ECO_CNTL ,0xc0200100 ); -/* Enable USE_RETENTION_FLOPS */ gpu_write (gpu,REG_A5XX_CP_CHICKEN_DBG ,0x02000000 );
drivers/iommu/amd_iommu.c +6 -4
@@ -1347,24 +1347,26 @@ static void increase_address_space(struct protection_domain *domain,unsigned long flags;u64 *pte; + pte = (void *)get_zeroed_page (gfp); +if (!pte) +return ; +spin_lock_irqsave (&domain->lock, flags);if (WARN_ON_ONCE (domain->mode ==PAGE_MODE_6_LEVEL ))/* address space already 64 bit large */ goto out; - pte = (void *)get_zeroed_page (gfp); -if (!pte) - goto out; - *pte =PM_LEVEL_PDE (domain->mode,iommu_virt_to_phys (domain->pt_root)); domain->pt_root = pte; domain->mode +=1 ; domain->updated = true; + pte =NULL ; out:spin_unlock_irqrestore (&domain->lock, flags); +free_page ((unsigned long )pte);return ; }
drivers/md/dm-table.c +70 -98
274 lines not on this page · raw message
drivers/misc/eeprom/eeprom_93xx46.c +15 -0
@@ -38,6 +38,10 @@ static const struct eeprom_93xx46_devtype_data atmel_at93c46d_data = { EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH, }; +static const struct eeprom_93xx46_devtype_data microchip_93lc46b_data = { + .quirks =EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE , +}; +struct eeprom_93xx46_dev {struct spi_device *spi;struct eeprom_93xx46_platform_data *pdata;
@@ -58,6 +62,11 @@ static inline bool has_quirk_instruction_length(struct eeprom_93xx46_dev *edev)return edev->pdata->quirks &EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH ; } +static inline bool has_quirk_extra_read_cycle (struct eeprom_93xx46_dev *edev) +{ +return edev->pdata->quirks &EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE ; +} +static int eeprom_93xx46_read (void *priv,unsigned int off,void *val,size_t count) {
@@ -99,6 +108,11 @@ static int eeprom_93xx46_read(void *priv, unsigned int off,dev_dbg (&edev->spi->dev,"read cmd 0x%x, %d Hz\n" , cmd_addr, edev->spi->max_speed_hz); +if (has_quirk_extra_read_cycle (edev)) { + cmd_addr <<=1 ; + bits +=1 ; + } +spi_message_init (&m); t[0 ].tx_buf = (char *)&cmd_addr;
@@ -366,6 +380,7 @@ static void select_deassert(void *context)static const struct of_device_id eeprom_93xx46_of_table[] = { { .compatible ="eeprom-93xx46" , }, { .compatible ="atmel,at93c46d" , .data = &atmel_at93c46d_data, }, + { .compatible ="microchip,93lc46b" , .data = µchip_93lc46b_data, }, {} };MODULE_DEVICE_TABLE (of, eeprom_93xx46_of_table);
drivers/net/wireless/marvell/mwifiex/pcie.c +17 -1
@@ -368,6 +368,8 @@ static void mwifiex_pcie_reset_prepare(struct pci_dev *pdev)clear_bit (MWIFIEX_IFACE_WORK_DEVICE_DUMP , &card->work_flags);clear_bit (MWIFIEX_IFACE_WORK_CARD_RESET , &card->work_flags);mwifiex_dbg (adapter,INFO ,"%s, successful\n" , __func__); + + card->pci_reset_ongoing = true; }/*
@@ -396,6 +398,8 @@ static void mwifiex_pcie_reset_done(struct pci_dev *pdev)dev_err (&pdev->dev,"reinit failed: %d\n" , ret); else mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__); + + card->pci_reset_ongoing = false; }static const struct pci_error_handlers mwifiex_pcie_err_handler = {
@@ -2980,7 +2984,19 @@ static void mwifiex_cleanup_pcie(struct mwifiex_adapter *adapter)int ret;u32 fw_status; -cancel_work_sync (&card->work); +/* Perform the cancel_work_sync() only when we're not resetting +* the card. It's because that function never returns if we're +* in reset path. If we're here when resetting the card, it means +* that we failed to reset the card (reset failure path). +*/ +if (!card->pci_reset_ongoing) { +mwifiex_dbg (adapter,MSG ,"performing cancel_work_sync()...\n" ); +cancel_work_sync (&card->work); +mwifiex_dbg (adapter,MSG ,"cancel_work_sync() done\n" ); + }else { +mwifiex_dbg (adapter,MSG , +"skipped cancel_work_sync() because we're in card reset failure path\n" ); + } ret =mwifiex_read_reg (adapter, reg->fw_status, &fw_status);if (fw_status ==FIRMWARE_READY_PCIE ) {
drivers/net/wireless/marvell/mwifiex/pcie.h +2 -0
@@ -391,6 +391,8 @@ struct pcie_service_card {struct mwifiex_msix_context share_irq_ctx;struct work_struct work;unsigned long work_flags; + +bool pci_reset_ongoing; }; static inline int
drivers/pci/quirks.c +3 -0
@@ -3934,6 +3934,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9182,/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c46 */ DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x91a0 , quirk_dma_func1_alias); +/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c135 */ +DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x9215 , + quirk_dma_func1_alias);/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c127 */ DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x9220 , quirk_dma_func1_alias);
drivers/platform/x86/acer-wmi.c +140 -29
302 lines not on this page · raw message
fs/btrfs/raid56.c +25 -33
122 lines not on this page · raw message
include/linux/eeprom_93xx46.h +2 -0
@@ -16,6 +16,8 @@ struct eeprom_93xx46_platform_data {#define EEPROM_93XX46_QUIRK_SINGLE_WORD_READ (1 << 0)/* Instructions such as EWEN are (addrlen + 2) in length. */ #define EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH (1 << 1) +/* Add extra cycle after address during a read */ +#define EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE BIT(2)/* * optional hooks to control additional logic
sound/pci/ctxfi/cthw20k2.c +1 -1
@@ -995,7 +995,7 @@ static int daio_mgr_dao_init(void *blk, unsigned int idx, unsigned int conf)if (idx <4 ) {/* S/PDIF output */ -switch ((conf &0x7 )) { +switch ((conf &0xf )) {case 1 :set_field (&ctl->txctl[idx],ATXCTL_NUC ,0 );break ;
tools/usb/usbip/libsrc/usbip_host_common.c +1 -1
@@ -35,7 +35,7 @@#include "list.h" #include "sysfs_utils.h" -struct udev *udev_context; +extern struct udev *udev_context;static int32_t read_attr_usbip_status (struct usbip_usb_device *udev) {