Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1596796 > unrolled thread

[PATCH 4.10 000/167] 4.10.2-stable review

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2017-03-10 10:30 +0100
Last post2017-03-12 06:30 +0100
Articles 20 on this page of 169 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 4.10 000/167] 4.10.2-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 027/167] ALSA: timer: Reject user params with too small ticks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 035/167] staging/lustre/lnet: Fix allocation size for sv_cpt_data Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 036/167] staging: rtl: fix possible NULL pointer dereference Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 001/167] MIPS: pic32mzda: Fix linker error for pic32_get_pbclk() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 039/167] regulator: Fix regulator_summary for deviceless consumers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 038/167] coresight: fix kernel panic caused by invalid CPU Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 011/167] MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 010/167] MIPS: Calculate microMIPS ra properly when unwinding the stack Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 037/167] coresight: STM: Balance enable/disable Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 030/167] ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 009/167] MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 025/167] ALSA: hda/realtek - Cannot adjust speakers volume on a Dell AIO Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 008/167] MIPS: Fix get_frame_info() handling of microMIPS function size Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:30 +0100
    [PATCH 4.10 144/167] f2fs: fix a problem of using memory after free Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 165/167] MIPS: IP22: Fix build error due to binutils 2.25 uselessnes. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 146/167] f2fs: add ovp valid_blocks check for bg gc victim to fg_gc Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 159/167] xprtrdma: Reduce required number of send SGEs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 150/167] rtc: sun6i: Add some locking Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 099/167] fuse: add missing FR_FORCE Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 073/167] loop: fix LO_FLAGS_PARTSCAN hang Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 130/167] rdma_cm: fail iwarp accepts w/o connection params Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 161/167] powerpc/mm: Add MMU_FTR_KERNEL_RO to possible feature mask Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 131/167] gfs2: Add missing rcu locking for glock   lookup Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 114/167] usb: host: xhci: plat: check hcc_params after add hcd Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 135/167] VME: restore bus_remove function causing incomplete module unload Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 106/167] iio: pressure: mpl115: do not rely on structure field ordering Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 166/167] scsi: lpfc: Correct WQ creation for pagesize Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 137/167] nfsd: special case truncates some more Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 095/167] crypto: xts - Propagate NEED_FALLBACK bit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 091/167] PCI: altera: Fix TLP_CFG_DW0 for TLP write Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 089/167] PCI: hv: Fix wslot_to_devfn() to fix warnings on device removal Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 043/167] iommu/vt-d: Tylersburg isoch identity map check is done too late. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 164/167] MIPS: IP22: Reformat inline assembler code to modern standards. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 123/167] hv: dont reset hv_context.tsc_page on crash Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 111/167] w1: ds2490: USB transfer buffers need to be DMAable Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 143/167] NFSv4: fix getacl ERANGE for some ACL buffer sizes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 071/167] jbd2: dont leak modified metadata buffers on an aborted journal Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 055/167] PM / devfreq: Fix available_governor sysfs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 097/167] crypto: vmx - Use skcipher for cbc fallback Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 087/167] ath9k: fix race condition in enabling/disabling IRQs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 122/167] hv: init percpu_list in hv_synic_alloc() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 059/167] dm round robin: revert "use percpu repeat_count and current_path" Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 119/167] usb: gadget: f_hid: Use spinlock instead of mutex Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 124/167] Drivers: hv: vmbus: Prevent sending data on a rescinded channel Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 075/167] ext4: do not polute the extents cache while shifting extents Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 103/167] arm64: fix erroneous __raw_read_system_reg() cases Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 141/167] Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE" Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 132/167] remoteproc: qcom: mdt_loader: Dont overwrite firmware object Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 110/167] w1: dont leak refcount on slave attach failure in w1_attach_slave_device() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 085/167] ath10k: fix boot failure in UTF mode/testmode Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 060/167] dm raid: fix data corruption on reshape request Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 125/167] Drivers: hv: vmbus: Fix a rescind handling bug Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 064/167] scsi: qla2xxx: Cleaned up queue configuration code. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 121/167] hv: allocate synic pages for all present CPUs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 082/167] ext4: fix fencepost in s_first_meta_bg validation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 145/167] f2fs: fix multiple f2fs_add_link() calls having same name Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 154/167] mtd: nand: ifc: Fix location of eccstat registers for IFC V1.0 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 096/167] crypto: api - Add crypto_requires_off helper Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 155/167] dmaengine: ipu: Make sure the interrupt routine checks all interrupts. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 090/167] pci/hotplug/pnv-php: Disable MSI and PCI device properly Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 147/167] f2fs: avoid to issue redundant discard commands Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 078/167] ext4: fix use-after-iput when fscrypt contexts are inconsistent Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 104/167] KVM: arm/arm64: vgic: Stop injecting the MSI occurrence twice Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 158/167] xprtrdma: Disable pad optimization by default Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 100/167] x86/pkeys: Check against max pkey to avoid overflows Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 107/167] iio: pressure: mpl3115: do not rely on structure field ordering Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 116/167] usb: gadget: udc: fsl: Add missing complete function. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:40 +0100
    [PATCH 4.10 152/167] md linear: fix a race between linear_add() and linear_congested() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 149/167] rtc: sun6i: Disable the build as a module Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 102/167] arm64: dma-mapping: Fix dma_mapping_error() when bypassing SWIOTLB Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 163/167] module: fix memory leak on early load_module() failures Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 142/167] NFSv4: fix getacl head length estimation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 101/167] arm/arm64: KVM: Enforce unconditional flush to PoC when mapping to stage-2 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 139/167] NFSv4: Fix reboot recovery in copy offload Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 160/167] powerpc/xmon: Fix data-breakpoint Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 138/167] NFSv4: Fix memory and state leak in _nfs4_open_and_get_state Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 140/167] pNFS/flexfiles: If the layout is invalid, it must be updated before retrying Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 151/167] rtc: sun6i: Switch to the external oscillator Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 162/167] powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 156/167] xprtrdma: Fix Read chunk padding Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 148/167] f2fs: Fix zoned block device support Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 157/167] xprtrdma: Per-connection pad optimization Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 136/167] nfsd: minor nfsd_setattr cleanup Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 10:50 +0100
    [PATCH 4.10 133/167] rtlwifi: Fix alignment issues Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 134/167] rtlwifi: rtl8192c-common: Fix "BUG: KASAN: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 128/167] Drivers: hv: util: Backup: Fix a rescind processing issue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 117/167] usb: gadget: f_hid: fix: Free out requests Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 118/167] usb: gadget: f_hid: fix: Prevent accessing released memory Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 115/167] usb: gadget: udc-core: Rescan pending list on driver unbind Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 126/167] Drivers: hv: util: kvp: Fix a rescind processing issue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 129/167] RDMA/core: Fix incorrect structure packing for booleans Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 127/167] Drivers: hv: util: Fcopy: Fix a rescind processing issue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 112/167] usb: musb: da8xx: Remove CPPI 3.0 quirk and methods Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 113/167] usb: dwc3: gadget: skip Set/Clear Halt when invalid Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 098/167] crypto: vmx - Use skcipher for xts fallback Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 109/167] can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 120/167] usb: gadget: f_hid: fix: Move IN request allocation to set_alt() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:00 +0100
    [PATCH 4.10 061/167] scsi: storvsc: use tagged SRB requests if supported by the device Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 105/167] Revert "arm64: mm: set the contiguous bit for kernel mappings where appropriate" Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 084/167] mei: remove support for broken parallel read Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 092/167] Drivers: hv: vmbus: Raise retry/wait limits in vmbus_post_msg() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 079/167] ext4: fix inline data error paths Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 077/167] ext4: fix data corruption in data=journal mode Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 088/167] ath9k: use correct OTP register offsets for the AR9340 and AR9550 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 058/167] dm stats: fix a leaked s->histogram_boundaries array Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 081/167] ext4: return EROFS if device is r/o and journal replay is needed Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 093/167] crypto: xts - Add ECB dependency Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 108/167] can: gs_usb: Dont use stack memory for USB transfers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 076/167] ext4: trim allocation requests to group size Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 086/167] ath5k: drop bogus warning on drv_set_key with unsupported cipher Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 094/167] crypto: testmgr - Pad aes_ccm_enc_tv_template vector Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 063/167] scsi: storvsc: properly set residual data length on errors Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 080/167] ext4: preserve the needs_recovery flag when the journal is aborted Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 062/167] scsi: storvsc: properly handle SRB_ERROR when sense message is present Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:10 +0100
    [PATCH 4.10 049/167] mm balloon: umount balloon_mnt when removing vb device Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 052/167] sigaltstack: support SS_AUTODISARM for CONFIG_COMPAT Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 072/167] block/loop: fix race between I/O and set_status Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 057/167] dm cache: fix corruption seen when using cache > 2TB Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 054/167] ima: fix ima_d_path() possible race with rename Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 070/167] Fix: Disable sys_membarrier when nohz_full is enabled Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 021/167] spi: s3c64xx: fix inconsistency between binding and driver Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 050/167] mm, vmscan: cleanup lru size claculations Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 023/167] ARM: dts: at91: Enable DMA on sama5d4_xplained console Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 053/167] ipc/shm: Fix shmat mmap nil-page protection Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 041/167] tpm_tis: fix the error handling of init_tis() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 067/167] scsi: aacraid: Reorder Adapter status check Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 019/167] [media] media: Properly pass through media entity types in entity enumeration Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 065/167] scsi: qla2xxx: Fix response queue count for Target mode. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 024/167] ARM: dts: at91: Enable DMA on sama5d2_xplained console Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 051/167] mm, vmscan: consider eligible zones in get_scan_count Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 068/167] scsi: use scsi_device_from_queue() for scsi_dh Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 044/167] CIFS: Fix splice read for non-cached files Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 074/167] ext4: Include forgotten start block on fallocate insert range Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 056/167] PM / devfreq: Fix wrong trans_stat of passive devfreq device Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 066/167] scsi: qla2xxx: Fix Regression introduced by pci_alloc_irq_vectors_affinity call. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 069/167] power: reset: at91-poweroff: timely shutdown LPDDR memories Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 045/167] mm, devm_memremap_pages: hold device_hotplug lock over mem_hotplug_{begin, done} Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 022/167] ARM: at91: define LPDDR types Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 015/167] [media] media: fix dm1105.c build error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 020/167] ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:20 +0100
    [PATCH 4.10 006/167] MIPS: Clear ISA bit correctly in get_frame_info() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 046/167] mm/page_alloc: fix nodes for reclaim in fast path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 005/167] MIPS: Lantiq: Keep ethernet enabled during boot Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 047/167] mm: vmpressure: fix sending wrong events on underflow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 007/167] MIPS: Prevent unaligned accesses during stack unwinding Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 017/167] [media] dvb-usb: dont use stack for firmware load Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 029/167] ALSA: seq: Fix link corruption by event error handling Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 028/167] ALSA: ctxfi: Fallback DMA mask to 32bit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 034/167] staging: greybus: loopback: fix broken udelay Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 018/167] [media] lirc_dev: LIRC_{G,S}ET_REC_MODE do not work Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 048/167] mm: do not access page->mapping directly on page_endio Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 004/167] MIPS: OCTEON: Fix copy_from_user fault handling for large buffers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 032/167] hwmon: (it87) Do not overwrite bit 2..6 of pwm control registers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 031/167] ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 042/167] iommu/vt-d: Fix some macros that are incorrectly specified in intel-iommu Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:30 +0100
    [PATCH 4.10 002/167] MIPS: Fix special case in 64 bit IP checksumming. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:40 +0100
    [PATCH 4.10 014/167] [media] uvcvideo: Fix a wrong macro Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:40 +0100
    [PATCH 4.10 012/167] mmc: sdhci-acpi: support deferred probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:40 +0100
    [PATCH 4.10 013/167] [media] am437x-vpfe: always assign bpp variable Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 11:40 +0100
    [PATCH 4.10 167/167] ceph: update readpages osd request according to size of pages Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 16:00 +0100
    Re: [PATCH 4.10 000/167] 4.10.2-stable review Guenter Roeck <linux@roeck-us.net> - 2017-03-10 19:40 +0100
      Re: [PATCH 4.10 000/167] 4.10.2-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-12 06:30 +0100
    Re: [PATCH 4.10 000/167] 4.10.2-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2017-03-10 20:20 +0100
      Re: [PATCH 4.10 000/167] 4.10.2-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-12 06:30 +0100
    Re: [PATCH 4.10 000/167] 4.10.2-stable review Kevin Hilman <khilman@baylibre.com> - 2017-03-11 01:00 +0100
      Re: [PATCH 4.10 000/167] 4.10.2-stable review Guenter Roeck <linux@roeck-us.net> - 2017-03-11 02:10 +0100
        Re: [PATCH 4.10 000/167] 4.10.2-stable review Kevin Hilman <khilman@baylibre.com> - 2017-03-11 02:50 +0100
    Re: [PATCH 4.10 000/167] 4.10.2-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-12 06:30 +0100

Page 3 of 9 — ← Prev page 1 2 [3] 4 5 6 7 8 9  Next page →


#1596886 — [PATCH 4.10 087/167] ath9k: fix race condition in enabling/disabling IRQs

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 087/167] ath9k: fix race condition in enabling/disabling IRQs
Message-ID<tjpbK-1Zq-71@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Felix Fietkau <nbd@nbd.name>

commit 3a5e969bb2f6692a256352649355d56d018d6b88 upstream.

The code currently relies on refcounting to disable IRQs from within the
IRQ handler and re-enabling them again after the tasklet has run.

However, due to race conditions sometimes the IRQ handler might be
called twice, or the tasklet may not run at all (if interrupted in the
middle of a reset).

This can cause nasty imbalances in the irq-disable refcount which will
get the driver permanently stuck until the entire radio has been stopped
and started again (ath_reset will not recover from this).

Instead of using this fragile logic, change the code to ensure that
running the irq handler during tasklet processing is safe, and leave the
refcount untouched.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/wireless/ath/ath9k/ath9k.h |    1 
 drivers/net/wireless/ath/ath9k/init.c  |    1 
 drivers/net/wireless/ath/ath9k/mac.c   |   44 +++++++++++++++++++++++++--------
 drivers/net/wireless/ath/ath9k/mac.h   |    1 
 drivers/net/wireless/ath/ath9k/main.c  |   27 ++++++++------------
 5 files changed, 48 insertions(+), 26 deletions(-)

--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -970,6 +970,7 @@ struct ath_softc {
 	struct survey_info *cur_survey;
 	struct survey_info survey[ATH9K_NUM_CHANNELS];
 
+	spinlock_t intr_lock;
 	struct tasklet_struct intr_tq;
 	struct tasklet_struct bcon_tasklet;
 	struct ath_hw *sc_ah;
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -667,6 +667,7 @@ static int ath9k_init_softc(u16 devid, s
 		common->bt_ant_diversity = 1;
 
 	spin_lock_init(&common->cc_lock);
+	spin_lock_init(&sc->intr_lock);
 	spin_lock_init(&sc->sc_serial_rw);
 	spin_lock_init(&sc->sc_pm_lock);
 	spin_lock_init(&sc->chan_lock);
--- a/drivers/net/wireless/ath/ath9k/mac.c
+++ b/drivers/net/wireless/ath/ath9k/mac.c
@@ -805,21 +805,12 @@ void ath9k_hw_disable_interrupts(struct
 }
 EXPORT_SYMBOL(ath9k_hw_disable_interrupts);
 
-void ath9k_hw_enable_interrupts(struct ath_hw *ah)
+static void __ath9k_hw_enable_interrupts(struct ath_hw *ah)
 {
 	struct ath_common *common = ath9k_hw_common(ah);
 	u32 sync_default = AR_INTR_SYNC_DEFAULT;
 	u32 async_mask;
 
-	if (!(ah->imask & ATH9K_INT_GLOBAL))
-		return;
-
-	if (!atomic_inc_and_test(&ah->intr_ref_cnt)) {
-		ath_dbg(common, INTERRUPT, "Do not enable IER ref count %d\n",
-			atomic_read(&ah->intr_ref_cnt));
-		return;
-	}
-
 	if (AR_SREV_9340(ah) || AR_SREV_9550(ah) || AR_SREV_9531(ah) ||
 	    AR_SREV_9561(ah))
 		sync_default &= ~AR_INTR_SYNC_HOST1_FATAL;
@@ -841,6 +832,39 @@ void ath9k_hw_enable_interrupts(struct a
 	ath_dbg(common, INTERRUPT, "AR_IMR 0x%x IER 0x%x\n",
 		REG_READ(ah, AR_IMR), REG_READ(ah, AR_IER));
 }
+
+void ath9k_hw_resume_interrupts(struct ath_hw *ah)
+{
+	struct ath_common *common = ath9k_hw_common(ah);
+
+	if (!(ah->imask & ATH9K_INT_GLOBAL))
+		return;
+
+	if (atomic_read(&ah->intr_ref_cnt) != 0) {
+		ath_dbg(common, INTERRUPT, "Do not enable IER ref count %d\n",
+			atomic_read(&ah->intr_ref_cnt));
+		return;
+	}
+
+	__ath9k_hw_enable_interrupts(ah);
+}
+EXPORT_SYMBOL(ath9k_hw_resume_interrupts);
+
+void ath9k_hw_enable_interrupts(struct ath_hw *ah)
+{
+	struct ath_common *common = ath9k_hw_common(ah);
+
+	if (!(ah->imask & ATH9K_INT_GLOBAL))
+		return;
+
+	if (!atomic_inc_and_test(&ah->intr_ref_cnt)) {
+		ath_dbg(common, INTERRUPT, "Do not enable IER ref count %d\n",
+			atomic_read(&ah->intr_ref_cnt));
+		return;
+	}
+
+	__ath9k_hw_enable_interrupts(ah);
+}
 EXPORT_SYMBOL(ath9k_hw_enable_interrupts);
 
 void ath9k_hw_set_interrupts(struct ath_hw *ah)
--- a/drivers/net/wireless/ath/ath9k/mac.h
+++ b/drivers/net/wireless/ath/ath9k/mac.h
@@ -744,6 +744,7 @@ void ath9k_hw_set_interrupts(struct ath_
 void ath9k_hw_enable_interrupts(struct ath_hw *ah);
 void ath9k_hw_disable_interrupts(struct ath_hw *ah);
 void ath9k_hw_kill_interrupts(struct ath_hw *ah);
+void ath9k_hw_resume_interrupts(struct ath_hw *ah);
 
 void ar9002_hw_attach_mac_ops(struct ath_hw *ah);
 
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -373,21 +373,20 @@ void ath9k_tasklet(unsigned long data)
 	struct ath_common *common = ath9k_hw_common(ah);
 	enum ath_reset_type type;
 	unsigned long flags;
-	u32 status = sc->intrstatus;
+	u32 status;
 	u32 rxmask;
 
+	spin_lock_irqsave(&sc->intr_lock, flags);
+	status = sc->intrstatus;
+	sc->intrstatus = 0;
+	spin_unlock_irqrestore(&sc->intr_lock, flags);
+
 	ath9k_ps_wakeup(sc);
 	spin_lock(&sc->sc_pcu_lock);
 
 	if (status & ATH9K_INT_FATAL) {
 		type = RESET_TYPE_FATAL_INT;
 		ath9k_queue_reset(sc, type);
-
-		/*
-		 * Increment the ref. counter here so that
-		 * interrupts are enabled in the reset routine.
-		 */
-		atomic_inc(&ah->intr_ref_cnt);
 		ath_dbg(common, RESET, "FATAL: Skipping interrupts\n");
 		goto out;
 	}
@@ -403,11 +402,6 @@ void ath9k_tasklet(unsigned long data)
 			type = RESET_TYPE_BB_WATCHDOG;
 			ath9k_queue_reset(sc, type);
 
-			/*
-			 * Increment the ref. counter here so that
-			 * interrupts are enabled in the reset routine.
-			 */
-			atomic_inc(&ah->intr_ref_cnt);
 			ath_dbg(common, RESET,
 				"BB_WATCHDOG: Skipping interrupts\n");
 			goto out;
@@ -420,7 +414,6 @@ void ath9k_tasklet(unsigned long data)
 		if ((sc->gtt_cnt >= MAX_GTT_CNT) && !ath9k_hw_check_alive(ah)) {
 			type = RESET_TYPE_TX_GTT;
 			ath9k_queue_reset(sc, type);
-			atomic_inc(&ah->intr_ref_cnt);
 			ath_dbg(common, RESET,
 				"GTT: Skipping interrupts\n");
 			goto out;
@@ -477,7 +470,7 @@ void ath9k_tasklet(unsigned long data)
 	ath9k_btcoex_handle_interrupt(sc, status);
 
 	/* re-enable hardware interrupt */
-	ath9k_hw_enable_interrupts(ah);
+	ath9k_hw_resume_interrupts(ah);
 out:
 	spin_unlock(&sc->sc_pcu_lock);
 	ath9k_ps_restore(sc);
@@ -541,7 +534,9 @@ irqreturn_t ath_isr(int irq, void *dev)
 		return IRQ_NONE;
 
 	/* Cache the status */
-	sc->intrstatus = status;
+	spin_lock(&sc->intr_lock);
+	sc->intrstatus |= status;
+	spin_unlock(&sc->intr_lock);
 
 	if (status & SCHED_INTR)
 		sched = true;
@@ -587,7 +582,7 @@ chip_reset:
 
 	if (sched) {
 		/* turn off every interrupt */
-		ath9k_hw_disable_interrupts(ah);
+		ath9k_hw_kill_interrupts(ah);
 		tasklet_schedule(&sc->intr_tq);
 	}
 

[toc] | [prev] | [next] | [standalone]


#1596887 — [PATCH 4.10 122/167] hv: init percpu_list in hv_synic_alloc()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 122/167] hv: init percpu_list in hv_synic_alloc()
Message-ID<tjpbK-1Zq-63@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Vitaly Kuznetsov <vkuznets@redhat.com>

commit 3c7630d35009e6635e5b58d62de554fd5b6db5df upstream.

Initializing hv_context.percpu_list in hv_synic_alloc() helps to prevent a
crash in percpu_channel_enq() when not all CPUs were online during
initialization and it naturally belongs there.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hv/hv.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -457,6 +457,8 @@ int hv_synic_alloc(void)
 			pr_err("Unable to allocate post msg page\n");
 			goto err;
 		}
+
+		INIT_LIST_HEAD(&hv_context.percpu_list[cpu]);
 	}
 
 	return 0;
@@ -552,8 +554,6 @@ void hv_synic_init(void *arg)
 	rdmsrl(HV_X64_MSR_VP_INDEX, vp_index);
 	hv_context.vp_index[cpu] = (u32)vp_index;
 
-	INIT_LIST_HEAD(&hv_context.percpu_list[cpu]);
-
 	/*
 	 * Register the per-cpu clockevent source.
 	 */

[toc] | [prev] | [next] | [standalone]


#1596888 — [PATCH 4.10 059/167] dm round robin: revert "use percpu repeat_count and current_path"

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 059/167] dm round robin: revert "use percpu repeat_count and current_path"
Message-ID<tjpbK-1Zq-73@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mike Snitzer <snitzer@redhat.com>

commit 37a098e9d10db6e2efc05fe61e3a6ff2e9802c53 upstream.

The sloppy nature of lockless access to percpu pointers
(s->current_path) in rr_select_path(), from multiple threads, is
causing some paths to used more than others -- which results in less
IO performance being observed.

Revert these upstream commits to restore truly symmetric round-robin
IO submission in DM multipath:

b0b477c dm round robin: use percpu 'repeat_count' and 'current_path'
802934b dm round robin: do not use this_cpu_ptr() without having preemption disabled

There is no benefit to all this complexity if repeat_count = 1 (which is
the recommended default).

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-round-robin.c |   67 +++++++++-----------------------------------
 1 file changed, 14 insertions(+), 53 deletions(-)

--- a/drivers/md/dm-round-robin.c
+++ b/drivers/md/dm-round-robin.c
@@ -17,8 +17,8 @@
 #include <linux/module.h>
 
 #define DM_MSG_PREFIX "multipath round-robin"
-#define RR_MIN_IO     1000
-#define RR_VERSION    "1.1.0"
+#define RR_MIN_IO     1
+#define RR_VERSION    "1.2.0"
 
 /*-----------------------------------------------------------------
  * Path-handling code, paths are held in lists
@@ -47,44 +47,19 @@ struct selector {
 	struct list_head valid_paths;
 	struct list_head invalid_paths;
 	spinlock_t lock;
-	struct dm_path * __percpu *current_path;
-	struct percpu_counter repeat_count;
 };
 
-static void set_percpu_current_path(struct selector *s, struct dm_path *path)
-{
-	int cpu;
-
-	for_each_possible_cpu(cpu)
-		*per_cpu_ptr(s->current_path, cpu) = path;
-}
-
 static struct selector *alloc_selector(void)
 {
 	struct selector *s = kmalloc(sizeof(*s), GFP_KERNEL);
 
-	if (!s)
-		return NULL;
-
-	INIT_LIST_HEAD(&s->valid_paths);
-	INIT_LIST_HEAD(&s->invalid_paths);
-	spin_lock_init(&s->lock);
-
-	s->current_path = alloc_percpu(struct dm_path *);
-	if (!s->current_path)
-		goto out_current_path;
-	set_percpu_current_path(s, NULL);
-
-	if (percpu_counter_init(&s->repeat_count, 0, GFP_KERNEL))
-		goto out_repeat_count;
+	if (s) {
+		INIT_LIST_HEAD(&s->valid_paths);
+		INIT_LIST_HEAD(&s->invalid_paths);
+		spin_lock_init(&s->lock);
+	}
 
 	return s;
-
-out_repeat_count:
-	free_percpu(s->current_path);
-out_current_path:
-	kfree(s);
-	return NULL;;
 }
 
 static int rr_create(struct path_selector *ps, unsigned argc, char **argv)
@@ -105,8 +80,6 @@ static void rr_destroy(struct path_selec
 
 	free_paths(&s->valid_paths);
 	free_paths(&s->invalid_paths);
-	free_percpu(s->current_path);
-	percpu_counter_destroy(&s->repeat_count);
 	kfree(s);
 	ps->context = NULL;
 }
@@ -157,6 +130,11 @@ static int rr_add_path(struct path_selec
 		return -EINVAL;
 	}
 
+	if (repeat_count > 1) {
+		DMWARN_LIMIT("repeat_count > 1 is deprecated, using 1 instead");
+		repeat_count = 1;
+	}
+
 	/* allocate the path */
 	pi = kmalloc(sizeof(*pi), GFP_KERNEL);
 	if (!pi) {
@@ -183,9 +161,6 @@ static void rr_fail_path(struct path_sel
 	struct path_info *pi = p->pscontext;
 
 	spin_lock_irqsave(&s->lock, flags);
-	if (p == *this_cpu_ptr(s->current_path))
-		set_percpu_current_path(s, NULL);
-
 	list_move(&pi->list, &s->invalid_paths);
 	spin_unlock_irqrestore(&s->lock, flags);
 }
@@ -208,29 +183,15 @@ static struct dm_path *rr_select_path(st
 	unsigned long flags;
 	struct selector *s = ps->context;
 	struct path_info *pi = NULL;
-	struct dm_path *current_path = NULL;
 
-	local_irq_save(flags);
-	current_path = *this_cpu_ptr(s->current_path);
-	if (current_path) {
-		percpu_counter_dec(&s->repeat_count);
-		if (percpu_counter_read_positive(&s->repeat_count) > 0) {
-			local_irq_restore(flags);
-			return current_path;
-		}
-	}
-
-	spin_lock(&s->lock);
+	spin_lock_irqsave(&s->lock, flags);
 	if (!list_empty(&s->valid_paths)) {
 		pi = list_entry(s->valid_paths.next, struct path_info, list);
 		list_move_tail(&pi->list, &s->valid_paths);
-		percpu_counter_set(&s->repeat_count, pi->repeat_count);
-		set_percpu_current_path(s, pi->path);
-		current_path = pi->path;
 	}
 	spin_unlock_irqrestore(&s->lock, flags);
 
-	return current_path;
+	return pi ? pi->path : NULL;
 }
 
 static struct path_selector_type rr_ps = {

[toc] | [prev] | [next] | [standalone]


#1596889 — [PATCH 4.10 119/167] usb: gadget: f_hid: Use spinlock instead of mutex

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 119/167] usb: gadget: f_hid: Use spinlock instead of mutex
Message-ID<tjpbK-1Zq-79@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Krzysztof Opasiak <kopasiak90@gmail.com>

commit 33e4c1a9987a1fc3b42c3b534100b5b006d55c61 upstream.

As IN request has to be allocated in set_alt() and released in
disable() we cannot use mutex to protect it as we cannot sleep
in those funcitons. Let's replace this mutex with a spinlock.

Tested-by: David Lechner <david@lechnology.com>
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/gadget/function/f_hid.c |   57 +++++++++++++++++++++---------------
 1 file changed, 34 insertions(+), 23 deletions(-)

--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -50,12 +50,12 @@ struct f_hidg {
 
 	/* recv report */
 	struct list_head		completed_out_req;
-	spinlock_t			spinlock;
+	spinlock_t			read_spinlock;
 	wait_queue_head_t		read_queue;
 	unsigned int			qlen;
 
 	/* send report */
-	struct mutex			lock;
+	spinlock_t			write_spinlock;
 	bool				write_pending;
 	wait_queue_head_t		write_queue;
 	struct usb_request		*req;
@@ -258,20 +258,20 @@ static ssize_t f_hidg_read(struct file *
 	if (!access_ok(VERIFY_WRITE, buffer, count))
 		return -EFAULT;
 
-	spin_lock_irqsave(&hidg->spinlock, flags);
+	spin_lock_irqsave(&hidg->read_spinlock, flags);
 
 #define READ_COND (!list_empty(&hidg->completed_out_req))
 
 	/* wait for at least one buffer to complete */
 	while (!READ_COND) {
-		spin_unlock_irqrestore(&hidg->spinlock, flags);
+		spin_unlock_irqrestore(&hidg->read_spinlock, flags);
 		if (file->f_flags & O_NONBLOCK)
 			return -EAGAIN;
 
 		if (wait_event_interruptible(hidg->read_queue, READ_COND))
 			return -ERESTARTSYS;
 
-		spin_lock_irqsave(&hidg->spinlock, flags);
+		spin_lock_irqsave(&hidg->read_spinlock, flags);
 	}
 
 	/* pick the first one */
@@ -286,7 +286,7 @@ static ssize_t f_hidg_read(struct file *
 
 	req = list->req;
 	count = min_t(unsigned int, count, req->actual - list->pos);
-	spin_unlock_irqrestore(&hidg->spinlock, flags);
+	spin_unlock_irqrestore(&hidg->read_spinlock, flags);
 
 	/* copy to user outside spinlock */
 	count -= copy_to_user(buffer, req->buf + list->pos, count);
@@ -308,9 +308,9 @@ static ssize_t f_hidg_read(struct file *
 			return ret;
 		}
 	} else {
-		spin_lock_irqsave(&hidg->spinlock, flags);
+		spin_lock_irqsave(&hidg->read_spinlock, flags);
 		list_add(&list->list, &hidg->completed_out_req);
-		spin_unlock_irqrestore(&hidg->spinlock, flags);
+		spin_unlock_irqrestore(&hidg->read_spinlock, flags);
 
 		wake_up(&hidg->read_queue);
 	}
@@ -321,13 +321,16 @@ static ssize_t f_hidg_read(struct file *
 static void f_hidg_req_complete(struct usb_ep *ep, struct usb_request *req)
 {
 	struct f_hidg *hidg = (struct f_hidg *)ep->driver_data;
+	unsigned long flags;
 
 	if (req->status != 0) {
 		ERROR(hidg->func.config->cdev,
 			"End Point Request ERROR: %d\n", req->status);
 	}
 
+	spin_lock_irqsave(&hidg->write_spinlock, flags);
 	hidg->write_pending = 0;
+	spin_unlock_irqrestore(&hidg->write_spinlock, flags);
 	wake_up(&hidg->write_queue);
 }
 
@@ -335,18 +338,19 @@ static ssize_t f_hidg_write(struct file
 			    size_t count, loff_t *offp)
 {
 	struct f_hidg *hidg  = file->private_data;
+	unsigned long flags;
 	ssize_t status = -ENOMEM;
 
 	if (!access_ok(VERIFY_READ, buffer, count))
 		return -EFAULT;
 
-	mutex_lock(&hidg->lock);
+	spin_lock_irqsave(&hidg->write_spinlock, flags);
 
 #define WRITE_COND (!hidg->write_pending)
 
 	/* write queue */
 	while (!WRITE_COND) {
-		mutex_unlock(&hidg->lock);
+		spin_unlock_irqrestore(&hidg->write_spinlock, flags);
 		if (file->f_flags & O_NONBLOCK)
 			return -EAGAIN;
 
@@ -354,17 +358,20 @@ static ssize_t f_hidg_write(struct file
 				hidg->write_queue, WRITE_COND))
 			return -ERESTARTSYS;
 
-		mutex_lock(&hidg->lock);
+		spin_lock_irqsave(&hidg->write_spinlock, flags);
 	}
 
+	hidg->write_pending = 1;
 	count  = min_t(unsigned, count, hidg->report_length);
+
+	spin_unlock_irqrestore(&hidg->write_spinlock, flags);
 	status = copy_from_user(hidg->req->buf, buffer, count);
 
 	if (status != 0) {
 		ERROR(hidg->func.config->cdev,
 			"copy_from_user error\n");
-		mutex_unlock(&hidg->lock);
-		return -EINVAL;
+		status = -EINVAL;
+		goto release_write_pending;
 	}
 
 	hidg->req->status   = 0;
@@ -372,19 +379,23 @@ static ssize_t f_hidg_write(struct file
 	hidg->req->length   = count;
 	hidg->req->complete = f_hidg_req_complete;
 	hidg->req->context  = hidg;
-	hidg->write_pending = 1;
 
 	status = usb_ep_queue(hidg->in_ep, hidg->req, GFP_ATOMIC);
 	if (status < 0) {
 		ERROR(hidg->func.config->cdev,
 			"usb_ep_queue error on int endpoint %zd\n", status);
-		hidg->write_pending = 0;
-		wake_up(&hidg->write_queue);
+		goto release_write_pending;
 	} else {
 		status = count;
 	}
 
-	mutex_unlock(&hidg->lock);
+	return status;
+release_write_pending:
+	spin_lock_irqsave(&hidg->write_spinlock, flags);
+	hidg->write_pending = 0;
+	spin_unlock_irqrestore(&hidg->write_spinlock, flags);
+
+	wake_up(&hidg->write_queue);
 
 	return status;
 }
@@ -451,9 +462,9 @@ static void hidg_set_report_complete(str
 
 		req_list->req = req;
 
-		spin_lock_irqsave(&hidg->spinlock, flags);
+		spin_lock_irqsave(&hidg->read_spinlock, flags);
 		list_add_tail(&req_list->list, &hidg->completed_out_req);
-		spin_unlock_irqrestore(&hidg->spinlock, flags);
+		spin_unlock_irqrestore(&hidg->read_spinlock, flags);
 
 		wake_up(&hidg->read_queue);
 		break;
@@ -577,13 +588,13 @@ static void hidg_disable(struct usb_func
 	usb_ep_disable(hidg->in_ep);
 	usb_ep_disable(hidg->out_ep);
 
-	spin_lock_irqsave(&hidg->spinlock, flags);
+	spin_lock_irqsave(&hidg->read_spinlock, flags);
 	list_for_each_entry_safe(list, next, &hidg->completed_out_req, list) {
 		free_ep_req(hidg->out_ep, list->req);
 		list_del(&list->list);
 		kfree(list);
 	}
-	spin_unlock_irqrestore(&hidg->spinlock, flags);
+	spin_unlock_irqrestore(&hidg->read_spinlock, flags);
 }
 
 static int hidg_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
@@ -743,8 +754,8 @@ static int hidg_bind(struct usb_configur
 	if (status)
 		goto fail;
 
-	mutex_init(&hidg->lock);
-	spin_lock_init(&hidg->spinlock);
+	spin_lock_init(&hidg->write_spinlock);
+	spin_lock_init(&hidg->read_spinlock);
 	init_waitqueue_head(&hidg->write_queue);
 	init_waitqueue_head(&hidg->read_queue);
 	INIT_LIST_HEAD(&hidg->completed_out_req);

[toc] | [prev] | [next] | [standalone]


#1596890 — [PATCH 4.10 124/167] Drivers: hv: vmbus: Prevent sending data on a rescinded channel

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 124/167] Drivers: hv: vmbus: Prevent sending data on a rescinded channel
Message-ID<tjpbK-1Zq-81@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: K. Y. Srinivasan <kys@microsoft.com>

commit e7e97dd8b77ee7366f2f8c70a033bf5fa05ec2e0 upstream.

After the channel is rescinded, the host does not read from the rescinded channel.
Fail writes to a channel that has already been rescinded. If we permit writes on a
rescinded channel, since the host will not respond we will have situations where
we will be unable to unload vmbus drivers that cannot have any outstanding requests
to the host at the point they are unoaded.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hv/ring_buffer.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- a/drivers/hv/ring_buffer.c
+++ b/drivers/hv/ring_buffer.c
@@ -298,6 +298,9 @@ int hv_ringbuffer_write(struct vmbus_cha
 	unsigned long flags = 0;
 	struct hv_ring_buffer_info *outring_info = &channel->outbound;
 
+	if (channel->rescind)
+		return -ENODEV;
+
 	for (i = 0; i < kv_count; i++)
 		totalbytes_towrite += kv_list[i].iov_len;
 
@@ -350,6 +353,10 @@ int hv_ringbuffer_write(struct vmbus_cha
 		spin_unlock_irqrestore(&outring_info->ring_lock, flags);
 
 	hv_signal_on_write(old_write, channel, kick_q);
+
+	if (channel->rescind)
+		return -ENODEV;
+
 	return 0;
 }
 

[toc] | [prev] | [next] | [standalone]


#1596891 — [PATCH 4.10 075/167] ext4: do not polute the extents cache while shifting extents

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 075/167] ext4: do not polute the extents cache while shifting extents
Message-ID<tjpbK-1Zq-75@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Roman Pen <roman.penyaev@profitbricks.com>

commit 03e916fa8b5577d85471452a3d0c5738aa658dae upstream.

Inside ext4_ext_shift_extents() function ext4_find_extent() is called
without EXT4_EX_NOCACHE flag, which should prevent cache population.

This leads to oudated offsets in the extents tree and wrong blocks
afterwards.

Patch fixes the problem providing EXT4_EX_NOCACHE flag for each
ext4_find_extents() call inside ext4_ext_shift_extents function.

Fixes: 331573febb6a2
Signed-off-by: Roman Pen <roman.penyaev@profitbricks.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: Namjae Jeon <namjae.jeon@samsung.com>
Cc: Andreas Dilger <adilger.kernel@dilger.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/extents.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -5334,7 +5334,8 @@ ext4_ext_shift_extents(struct inode *ino
 	ext4_lblk_t stop, *iterator, ex_start, ex_end;
 
 	/* Let path point to the last extent */
-	path = ext4_find_extent(inode, EXT_MAX_BLOCKS - 1, NULL, 0);
+	path = ext4_find_extent(inode, EXT_MAX_BLOCKS - 1, NULL,
+				EXT4_EX_NOCACHE);
 	if (IS_ERR(path))
 		return PTR_ERR(path);
 
@@ -5350,7 +5351,8 @@ ext4_ext_shift_extents(struct inode *ino
 	 * sure the hole is big enough to accommodate the shift.
 	*/
 	if (SHIFT == SHIFT_LEFT) {
-		path = ext4_find_extent(inode, start - 1, &path, 0);
+		path = ext4_find_extent(inode, start - 1, &path,
+					EXT4_EX_NOCACHE);
 		if (IS_ERR(path))
 			return PTR_ERR(path);
 		depth = path->p_depth;
@@ -5388,7 +5390,8 @@ ext4_ext_shift_extents(struct inode *ino
 	 * becomes NULL to indicate the end of the loop.
 	 */
 	while (iterator && start <= stop) {
-		path = ext4_find_extent(inode, *iterator, &path, 0);
+		path = ext4_find_extent(inode, *iterator, &path,
+					EXT4_EX_NOCACHE);
 		if (IS_ERR(path))
 			return PTR_ERR(path);
 		depth = path->p_depth;

[toc] | [prev] | [next] | [standalone]


#1596892 — [PATCH 4.10 103/167] arm64: fix erroneous __raw_read_system_reg() cases

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 103/167] arm64: fix erroneous __raw_read_system_reg() cases
Message-ID<tjpbL-1Zq-85@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mark Rutland <mark.rutland@arm.com>

commit 7d0928f18bf890d2853281f59aba0dd5a46b34f9 upstream.

Since it was introduced in commit da8d02d19ffdd201 ("arm64/capabilities:
Make use of system wide safe value"), __raw_read_system_reg() has
erroneously mapped some sysreg IDs to other registers.

For the fields in ID_ISAR5_EL1, our local feature detection will be
erroneous. We may spuriously detect that a feature is uniformly
supported, or may fail to detect when it actually is, meaning some
compat hwcaps may be erroneous (or not enforced upon hotplug).

This patch corrects the erroneous entries.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Fixes: da8d02d19ffdd201 ("arm64/capabilities: Make use of system wide safe value")
Reported-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/kernel/cpufeature.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -654,15 +654,15 @@ static u64 __raw_read_system_reg(u32 sys
 	case SYS_ID_ISAR2_EL1:		return read_cpuid(ID_ISAR2_EL1);
 	case SYS_ID_ISAR3_EL1:		return read_cpuid(ID_ISAR3_EL1);
 	case SYS_ID_ISAR4_EL1:		return read_cpuid(ID_ISAR4_EL1);
-	case SYS_ID_ISAR5_EL1:		return read_cpuid(ID_ISAR4_EL1);
+	case SYS_ID_ISAR5_EL1:		return read_cpuid(ID_ISAR5_EL1);
 	case SYS_MVFR0_EL1:		return read_cpuid(MVFR0_EL1);
 	case SYS_MVFR1_EL1:		return read_cpuid(MVFR1_EL1);
 	case SYS_MVFR2_EL1:		return read_cpuid(MVFR2_EL1);
 
 	case SYS_ID_AA64PFR0_EL1:	return read_cpuid(ID_AA64PFR0_EL1);
-	case SYS_ID_AA64PFR1_EL1:	return read_cpuid(ID_AA64PFR0_EL1);
+	case SYS_ID_AA64PFR1_EL1:	return read_cpuid(ID_AA64PFR1_EL1);
 	case SYS_ID_AA64DFR0_EL1:	return read_cpuid(ID_AA64DFR0_EL1);
-	case SYS_ID_AA64DFR1_EL1:	return read_cpuid(ID_AA64DFR0_EL1);
+	case SYS_ID_AA64DFR1_EL1:	return read_cpuid(ID_AA64DFR1_EL1);
 	case SYS_ID_AA64MMFR0_EL1:	return read_cpuid(ID_AA64MMFR0_EL1);
 	case SYS_ID_AA64MMFR1_EL1:	return read_cpuid(ID_AA64MMFR1_EL1);
 	case SYS_ID_AA64MMFR2_EL1:	return read_cpuid(ID_AA64MMFR2_EL1);

[toc] | [prev] | [next] | [standalone]


#1596893 — [PATCH 4.10 141/167] Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE"

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 141/167] Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE"
Message-ID<tjpbK-1Zq-77@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <trond.myklebust@primarydata.com>

commit a5e14c9376871ee74fe93fdcb380c5d54eaa2d43 upstream.

This reverts commit 2cf10cdd486c362f983abdce00dc1127e8ab8c59.

The patch has been seen to cause excessive looping.

Reported-by: Olga Kornievskaia <aglo@umich.edu>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/nfs4proc.c |    4 ----
 1 file changed, 4 deletions(-)

--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -815,10 +815,6 @@ static int nfs41_sequence_process(struct
 	case -NFS4ERR_SEQ_FALSE_RETRY:
 		++slot->seq_nr;
 		goto retry_nowait;
-	case -NFS4ERR_DEADSESSION:
-	case -NFS4ERR_BADSESSION:
-		nfs4_schedule_session_recovery(session, res->sr_status);
-		goto retry_nowait;
 	default:
 		/* Just update the slot sequence no. */
 		slot->seq_done = 1;

[toc] | [prev] | [next] | [standalone]


#1596894 — [PATCH 4.10 132/167] remoteproc: qcom: mdt_loader: Dont overwrite firmware object

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 132/167] remoteproc: qcom: mdt_loader: Dont overwrite firmware object
Message-ID<tjpbL-1Zq-87@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Bjorn Andersson <bjorn.andersson@linaro.org>

commit 3e8b571a9a0881ba3381ca0915995696da145ab8 upstream.

The "fw" firmware object is passed from the remoteproc core and should
not be overwritten, as that results in leaked buffers and a double free
of the the last firmware object.

Fixes: 051fb70fd4ea ("remoteproc: qcom: Driver for the self-authenticating Hexagon v5")
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/remoteproc/qcom_mdt_loader.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--- a/drivers/remoteproc/qcom_mdt_loader.c
+++ b/drivers/remoteproc/qcom_mdt_loader.c
@@ -116,6 +116,7 @@ int qcom_mdt_load(struct rproc *rproc,
 	const struct elf32_phdr *phdrs;
 	const struct elf32_phdr *phdr;
 	const struct elf32_hdr *ehdr;
+	const struct firmware *seg_fw;
 	size_t fw_name_len;
 	char *fw_name;
 	void *ptr;
@@ -154,16 +155,16 @@ int qcom_mdt_load(struct rproc *rproc,
 
 		if (phdr->p_filesz) {
 			sprintf(fw_name + fw_name_len - 3, "b%02d", i);
-			ret = request_firmware(&fw, fw_name, &rproc->dev);
+			ret = request_firmware(&seg_fw, fw_name, &rproc->dev);
 			if (ret) {
 				dev_err(&rproc->dev, "failed to load %s\n",
 					fw_name);
 				break;
 			}
 
-			memcpy(ptr, fw->data, fw->size);
+			memcpy(ptr, seg_fw->data, seg_fw->size);
 
-			release_firmware(fw);
+			release_firmware(seg_fw);
 		}
 
 		if (phdr->p_memsz > phdr->p_filesz)

[toc] | [prev] | [next] | [standalone]


#1596895 — [PATCH 4.10 110/167] w1: dont leak refcount on slave attach failure in w1_attach_slave_device()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 110/167] w1: dont leak refcount on slave attach failure in w1_attach_slave_device()
Message-ID<tjpbL-1Zq-83@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Maciej S. Szmigiero <mail@maciej.szmigiero.name>

commit d2ce4ea1a0b0162e5d2d7e7942ab6f5cc2063d5a upstream.

Near the beginning of w1_attach_slave_device() we increment a w1 master
reference count.
Later, when we are going to exit this function without actually attaching
a slave device (due to failure of __w1_attach_slave_device()) we need to
decrement this reference count back.

Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Fixes: 9fcbbac5ded489 ("w1: process w1 netlink commands in w1_process thread")
Cc: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/w1/w1.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/w1/w1.c
+++ b/drivers/w1/w1.c
@@ -763,6 +763,7 @@ int w1_attach_slave_device(struct w1_mas
 		dev_err(&dev->dev, "%s: Attaching %s failed.\n", __func__,
 			 sl->name);
 		w1_family_put(sl->family);
+		atomic_dec(&sl->master->refcnt);
 		kfree(sl);
 		return err;
 	}

[toc] | [prev] | [next] | [standalone]


#1596896 — [PATCH 4.10 085/167] ath10k: fix boot failure in UTF mode/testmode

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 085/167] ath10k: fix boot failure in UTF mode/testmode
Message-ID<tjpbL-1Zq-89@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Tamizh chelvam <c_traja@qti.qualcomm.com>

commit cb4281528b62207918b1e95827cad7527aa4dbaa upstream.

Rx filter reset and the dynamic tx switch mode (EXT_RESOURCE_CFG)
configuration are causing the following errors when UTF firmware
is loaded to the target.

Error message 1:
[ 598.015629] ath10k_pci 0001:01:00.0: failed to ping firmware: -110
[ 598.020828] ath10k_pci 0001:01:00.0: failed to reset rx filter: -110
[ 598.141556] ath10k_pci 0001:01:00.0: failed to start core (testmode): -110

Error message 2:
[ 668.615839] ath10k_ahb a000000.wifi: failed to send ext resource cfg command : -95
[ 668.618902] ath10k_ahb a000000.wifi: failed to start core (testmode): -95

Avoiding these configurations while bringing the target in
testmode is solving the problem.

Signed-off-by: Tamizh chelvam <c_traja@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/wireless/ath/ath10k/core.c |   14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -1913,7 +1913,8 @@ int ath10k_core_start(struct ath10k *ar,
 	ath10k_dbg(ar, ATH10K_DBG_BOOT, "firmware %s booted\n",
 		   ar->hw->wiphy->fw_version);
 
-	if (test_bit(WMI_SERVICE_EXT_RES_CFG_SUPPORT, ar->wmi.svc_map)) {
+	if (test_bit(WMI_SERVICE_EXT_RES_CFG_SUPPORT, ar->wmi.svc_map) &&
+	    mode == ATH10K_FIRMWARE_MODE_NORMAL) {
 		val = 0;
 		if (ath10k_peer_stats_enabled(ar))
 			val = WMI_10_4_PEER_STATS;
@@ -1966,10 +1967,13 @@ int ath10k_core_start(struct ath10k *ar,
 	 * possible to implicitly make it correct by creating a dummy vdev and
 	 * then deleting it.
 	 */
-	status = ath10k_core_reset_rx_filter(ar);
-	if (status) {
-		ath10k_err(ar, "failed to reset rx filter: %d\n", status);
-		goto err_hif_stop;
+	if (mode == ATH10K_FIRMWARE_MODE_NORMAL) {
+		status = ath10k_core_reset_rx_filter(ar);
+		if (status) {
+			ath10k_err(ar,
+				   "failed to reset rx filter: %d\n", status);
+			goto err_hif_stop;
+		}
 	}
 
 	/* If firmware indicates Full Rx Reorder support it must be used in a

[toc] | [prev] | [next] | [standalone]


#1596897 — [PATCH 4.10 060/167] dm raid: fix data corruption on reshape request

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 060/167] dm raid: fix data corruption on reshape request
Message-ID<tjpbL-1Zq-97@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Heinz Mauelshagen <heinzm@redhat.com>

commit d36a19541fe8f392778ac137d60f9be8dfdd8f9d upstream.

The lvm2 sequence to manage dm-raid constructor flags that trigger a
rebuild or a reshape is defined as:

1) load table with flags (e.g. rebuild/delta_disks/data_offset)
2) clear out the flags in lvm2 metadata
3) store the lvm2 metadata, reload the table to reset the flags
   previously established during the initial load (1) -- in order to
   prevent repeatedly requesting a rebuild or a reshape on activation

Currently, loading an inactive table with rebuild/reshape flags
specified will cause dm-raid to rebuild/reshape on resume and thus start
updating the raid metadata (about the progress).  When the second table
reload, to reset the flags, occurs the constructor accesses the volatile
progress state kept in the raid superblocks.  Because the active mapping
is still processing the rebuild/reshape, that position will be stale by
the time the device is resumed.

In the reshape case, this causes data corruption by processing already
reshaped stripes again.  In the rebuild case, it does _not_ cause data
corruption but instead involves superfluous rebuilds.

Fix by keeping the raid set frozen during the first resume and then
allow the rebuild/reshape during the second resume.

Fixes: 9dbd1aa3a ("dm raid: add reshaping support to the target")
Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-raid.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

--- a/drivers/md/dm-raid.c
+++ b/drivers/md/dm-raid.c
@@ -3626,6 +3626,8 @@ static int raid_preresume(struct dm_targ
 	return r;
 }
 
+#define RESUME_STAY_FROZEN_FLAGS (CTR_FLAG_DELTA_DISKS | CTR_FLAG_DATA_OFFSET)
+
 static void raid_resume(struct dm_target *ti)
 {
 	struct raid_set *rs = ti->private;
@@ -3643,7 +3645,15 @@ static void raid_resume(struct dm_target
 	mddev->ro = 0;
 	mddev->in_sync = 0;
 
-	clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
+	/*
+	 * Keep the RAID set frozen if reshape/rebuild flags are set.
+	 * The RAID set is unfrozen once the next table load/resume,
+	 * which clears the reshape/rebuild flags, occurs.
+	 * This ensures that the constructor for the inactive table
+	 * retrieves an up-to-date reshape_position.
+	 */
+	if (!(rs->ctr_flags & RESUME_STAY_FROZEN_FLAGS))
+		clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
 
 	if (mddev->suspended)
 		mddev_resume(mddev);

[toc] | [prev] | [next] | [standalone]


#1596899 — [PATCH 4.10 125/167] Drivers: hv: vmbus: Fix a rescind handling bug

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 125/167] Drivers: hv: vmbus: Fix a rescind handling bug
Message-ID<tjpbL-1Zq-101@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: K. Y. Srinivasan <kys@microsoft.com>

commit ccb61f8a99e6c29df4fb96a65dad4fad740d5be9 upstream.

The host can rescind a channel that has been offered to the
guest and once the channel is rescinded, the host does not
respond to any requests on that channel. Deal with the case where
the guest may be blocked waiting for a response from the host.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hv/channel.c      |   18 ++++++++++++++++++
 drivers/hv/channel_mgmt.c |   25 +++++++++++++++++++++++++
 include/linux/hyperv.h    |    1 +
 3 files changed, 44 insertions(+)

--- a/drivers/hv/channel.c
+++ b/drivers/hv/channel.c
@@ -157,6 +157,7 @@ int vmbus_open(struct vmbus_channel *new
 	}
 
 	init_completion(&open_info->waitevent);
+	open_info->waiting_channel = newchannel;
 
 	open_msg = (struct vmbus_channel_open_channel *)open_info->msg;
 	open_msg->header.msgtype = CHANNELMSG_OPENCHANNEL;
@@ -194,6 +195,11 @@ int vmbus_open(struct vmbus_channel *new
 	list_del(&open_info->msglistentry);
 	spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags);
 
+	if (newchannel->rescind) {
+		err = -ENODEV;
+		goto error_free_gpadl;
+	}
+
 	if (open_info->response.open_result.status) {
 		err = -EAGAIN;
 		goto error_free_gpadl;
@@ -405,6 +411,7 @@ int vmbus_establish_gpadl(struct vmbus_c
 		return ret;
 
 	init_completion(&msginfo->waitevent);
+	msginfo->waiting_channel = channel;
 
 	gpadlmsg = (struct vmbus_channel_gpadl_header *)msginfo->msg;
 	gpadlmsg->header.msgtype = CHANNELMSG_GPADL_HEADER;
@@ -441,6 +448,11 @@ int vmbus_establish_gpadl(struct vmbus_c
 	}
 	wait_for_completion(&msginfo->waitevent);
 
+	if (channel->rescind) {
+		ret = -ENODEV;
+		goto cleanup;
+	}
+
 	/* At this point, we received the gpadl created msg */
 	*gpadl_handle = gpadlmsg->gpadl;
 
@@ -474,6 +486,7 @@ int vmbus_teardown_gpadl(struct vmbus_ch
 		return -ENOMEM;
 
 	init_completion(&info->waitevent);
+	info->waiting_channel = channel;
 
 	msg = (struct vmbus_channel_gpadl_teardown *)info->msg;
 
@@ -493,6 +506,11 @@ int vmbus_teardown_gpadl(struct vmbus_ch
 
 	wait_for_completion(&info->waitevent);
 
+	if (channel->rescind) {
+		ret = -ENODEV;
+		goto post_msg_err;
+	}
+
 post_msg_err:
 	spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
 	list_del(&info->msglistentry);
--- a/drivers/hv/channel_mgmt.c
+++ b/drivers/hv/channel_mgmt.c
@@ -147,6 +147,29 @@ static const struct {
 	{ HV_RDV_GUID	},
 };
 
+/*
+ * The rescinded channel may be blocked waiting for a response from the host;
+ * take care of that.
+ */
+static void vmbus_rescind_cleanup(struct vmbus_channel *channel)
+{
+	struct vmbus_channel_msginfo *msginfo;
+	unsigned long flags;
+
+
+	spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
+
+	list_for_each_entry(msginfo, &vmbus_connection.chn_msg_list,
+				msglistentry) {
+
+		if (msginfo->waiting_channel == channel) {
+			complete(&msginfo->waitevent);
+			break;
+		}
+	}
+	spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags);
+}
+
 static bool is_unsupported_vmbus_devs(const uuid_le *guid)
 {
 	int i;
@@ -825,6 +848,8 @@ static void vmbus_onoffer_rescind(struct
 	channel->rescind = true;
 	spin_unlock_irqrestore(&channel->lock, flags);
 
+	vmbus_rescind_cleanup(channel);
+
 	if (channel->device_obj) {
 		if (channel->chn_rescind_callback) {
 			channel->chn_rescind_callback(channel);
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -641,6 +641,7 @@ struct vmbus_channel_msginfo {
 
 	/* Synchronize the request/response if needed */
 	struct completion  waitevent;
+	struct vmbus_channel *waiting_channel;
 	union {
 		struct vmbus_channel_version_supported version_supported;
 		struct vmbus_channel_open_result open_result;

[toc] | [prev] | [next] | [standalone]


#1596900 — [PATCH 4.10 064/167] scsi: qla2xxx: Cleaned up queue configuration code.

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 064/167] scsi: qla2xxx: Cleaned up queue configuration code.
Message-ID<tjpbL-1Zq-91@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michael Hernandez <michael.hernandez@cavium.com>

commit f54f2cb540b53d55a81d620e816810d59be5cb1b upstream.

This patch cleaned up queue configuration code, such that once
initialized, we should not touch msix_count value.  This will prevent
incorrect numbers of MSI-X vectors requested while performing target
mode configuration.

[mkp: fixed Fixes: hash]

Fixes: d74595278f4a ("scsi: qla2xxx: Add multiple queue pair functionality.")
Signed-off-by: Michael Hernandez <michael.hernandez@cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/scsi/qla2xxx/qla_os.c |   13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -1814,6 +1814,7 @@ skip_pio:
 
 	/* Determine queue resources */
 	ha->max_req_queues = ha->max_rsp_queues = 1;
+	ha->msix_count = QLA_BASE_VECTORS;
 	if (!ql2xmqsupport || (!IS_QLA25XX(ha) && !IS_QLA81XX(ha)))
 		goto mqiobase_exit;
 
@@ -1841,9 +1842,8 @@ skip_pio:
 		    "BAR 3 not enabled.\n");
 
 mqiobase_exit:
-	ha->msix_count = ha->max_rsp_queues + 1;
 	ql_dbg_pci(ql_dbg_init, ha->pdev, 0x001c,
-	    "MSIX Count:%d.\n", ha->msix_count);
+	    "MSIX Count: %d.\n", ha->msix_count);
 	return (0);
 
 iospace_error_exit:
@@ -1891,6 +1891,7 @@ qla83xx_iospace_config(struct qla_hw_dat
 	/* 83XX 26XX always use MQ type access for queues
 	 * - mbar 2, a.k.a region 4 */
 	ha->max_req_queues = ha->max_rsp_queues = 1;
+	ha->msix_count = QLA_BASE_VECTORS;
 	ha->mqiobase = ioremap(pci_resource_start(ha->pdev, 4),
 			pci_resource_len(ha->pdev, 4));
 
@@ -1933,14 +1934,8 @@ qla83xx_iospace_config(struct qla_hw_dat
 		    "BAR 1 not enabled.\n");
 
 mqiobase_exit:
-	ha->msix_count = ha->max_rsp_queues + 1;
-	if (QLA_TGT_MODE_ENABLED())
-		ha->msix_count++;
-
-	qlt_83xx_iospace_config(ha);
-
 	ql_dbg_pci(ql_dbg_init, ha->pdev, 0x011f,
-	    "MSIX Count:%d.\n", ha->msix_count);
+	    "MSIX Count: %d.\n", ha->msix_count);
 	return 0;
 
 iospace_error_exit:

[toc] | [prev] | [next] | [standalone]


#1596901 — [PATCH 4.10 121/167] hv: allocate synic pages for all present CPUs

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 121/167] hv: allocate synic pages for all present CPUs
Message-ID<tjpbL-1Zq-105@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Vitaly Kuznetsov <vkuznets@redhat.com>

commit 421b8f20d3c381b215f988b42428f56fc3b82405 upstream.

It may happen that not all CPUs are online when we do hv_synic_alloc() and
in case more CPUs come online later we may try accessing these allocated
structures.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hv/hv.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -411,7 +411,7 @@ int hv_synic_alloc(void)
 		goto err;
 	}
 
-	for_each_online_cpu(cpu) {
+	for_each_present_cpu(cpu) {
 		hv_context.event_dpc[cpu] = kmalloc(size, GFP_ATOMIC);
 		if (hv_context.event_dpc[cpu] == NULL) {
 			pr_err("Unable to allocate event dpc\n");
@@ -482,7 +482,7 @@ void hv_synic_free(void)
 	int cpu;
 
 	kfree(hv_context.hv_numa_map);
-	for_each_online_cpu(cpu)
+	for_each_present_cpu(cpu)
 		hv_synic_free_cpu(cpu);
 }
 

[toc] | [prev] | [next] | [standalone]


#1596902 — [PATCH 4.10 082/167] ext4: fix fencepost in s_first_meta_bg validation

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 082/167] ext4: fix fencepost in s_first_meta_bg validation
Message-ID<tjpbM-1Zq-107@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Theodore Ts'o <tytso@mit.edu>

commit 2ba3e6e8afc9b6188b471f27cf2b5e3cf34e7af2 upstream.

It is OK for s_first_meta_bg to be equal to the number of block group
descriptor blocks.  (It rarely happens, but it shouldn't cause any
problems.)

https://bugzilla.kernel.org/show_bug.cgi?id=194567

Fixes: 3a4b77cd47bb837b8557595ec7425f281f2ca1fe
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/super.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3844,7 +3844,7 @@ static int ext4_fill_super(struct super_
 	db_count = (sbi->s_groups_count + EXT4_DESC_PER_BLOCK(sb) - 1) /
 		   EXT4_DESC_PER_BLOCK(sb);
 	if (ext4_has_feature_meta_bg(sb)) {
-		if (le32_to_cpu(es->s_first_meta_bg) >= db_count) {
+		if (le32_to_cpu(es->s_first_meta_bg) > db_count) {
 			ext4_msg(sb, KERN_WARNING,
 				 "first meta block group too large: %u "
 				 "(group descriptor block count %u)",

[toc] | [prev] | [next] | [standalone]


#1596903 — [PATCH 4.10 145/167] f2fs: fix multiple f2fs_add_link() calls having same name

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 145/167] f2fs: fix multiple f2fs_add_link() calls having same name
Message-ID<tjpbL-1Zq-93@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jaegeuk Kim <jaegeuk@kernel.org>

commit 88c5c13a5027b36d914536fdba23f069d7067204 upstream.

It turns out a stakable filesystem like sdcardfs in AOSP can trigger multiple
vfs_create() to lower filesystem. In that case, f2fs will add multiple dentries
having same name which breaks filesystem consistency.

Until upper layer fixes, let's work around by f2fs, which shows actually not
much performance regression.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/f2fs/dir.c  |   34 +++++++++++++++++++++++++++++-----
 fs/f2fs/f2fs.h |    1 +
 2 files changed, 30 insertions(+), 5 deletions(-)

--- a/fs/f2fs/dir.c
+++ b/fs/f2fs/dir.c
@@ -207,9 +207,13 @@ static struct f2fs_dir_entry *find_in_le
 		f2fs_put_page(dentry_page, 0);
 	}
 
-	if (!de && room && F2FS_I(dir)->chash != namehash) {
-		F2FS_I(dir)->chash = namehash;
-		F2FS_I(dir)->clevel = level;
+	/* This is to increase the speed of f2fs_create */
+	if (!de && room) {
+		F2FS_I(dir)->task = current;
+		if (F2FS_I(dir)->chash != namehash) {
+			F2FS_I(dir)->chash = namehash;
+			F2FS_I(dir)->clevel = level;
+		}
 	}
 
 	return de;
@@ -643,14 +647,34 @@ int __f2fs_add_link(struct inode *dir, c
 				struct inode *inode, nid_t ino, umode_t mode)
 {
 	struct fscrypt_name fname;
+	struct page *page = NULL;
+	struct f2fs_dir_entry *de = NULL;
 	int err;
 
 	err = fscrypt_setup_filename(dir, name, 0, &fname);
 	if (err)
 		return err;
 
-	err = __f2fs_do_add_link(dir, &fname, inode, ino, mode);
-
+	/*
+	 * An immature stakable filesystem shows a race condition between lookup
+	 * and create. If we have same task when doing lookup and create, it's
+	 * definitely fine as expected by VFS normally. Otherwise, let's just
+	 * verify on-disk dentry one more time, which guarantees filesystem
+	 * consistency more.
+	 */
+	if (current != F2FS_I(dir)->task) {
+		de = __f2fs_find_entry(dir, &fname, &page);
+		F2FS_I(dir)->task = NULL;
+	}
+	if (de) {
+		f2fs_dentry_kunmap(dir, page);
+		f2fs_put_page(page, 0);
+		err = -EEXIST;
+	} else if (IS_ERR(page)) {
+		err = PTR_ERR(page);
+	} else {
+		err = __f2fs_do_add_link(dir, &fname, inode, ino, mode);
+	}
 	fscrypt_free_filename(&fname);
 	return err;
 }
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -434,6 +434,7 @@ struct f2fs_inode_info {
 	atomic_t dirty_pages;		/* # of dirty pages */
 	f2fs_hash_t chash;		/* hash value of given file name */
 	unsigned int clevel;		/* maximum level of given file name */
+	struct task_struct *task;	/* lookup and create consistency */
 	nid_t i_xattr_nid;		/* node id that contains xattrs */
 	unsigned long long xattr_ver;	/* cp version of xattr modification */
 	loff_t	last_disk_size;		/* lastly written file size */

[toc] | [prev] | [next] | [standalone]


#1596904 — [PATCH 4.10 154/167] mtd: nand: ifc: Fix location of eccstat registers for IFC V1.0

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 154/167] mtd: nand: ifc: Fix location of eccstat registers for IFC V1.0
Message-ID<tjpbM-1Zq-115@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mark Marshall <mark.marshall@omicronenergy.com>

commit 656441478ed55d960df5f3ccdf5a0f8c61dfd0b3 upstream.

The commit 7a654172161c ("mtd/ifc: Add support for IFC controller
version 2.0") added support for version 2.0 of the IFC controller.
The version 2.0 controller has the ECC status registers at a different
location to the previous versions.

Correct the fsl_ifc_nand structure so that the ECC status can be read
from the correct location for both version 1.0 and 2.0 of the controller.

Fixes: 7a654172161c ("mtd/ifc: Add support for IFC controller version 2.0")
Signed-off-by: Mark Marshall <mark.marshall@omicronenergy.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mtd/nand/fsl_ifc_nand.c |    8 +++++++-
 include/linux/fsl_ifc.h         |    8 ++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)

--- a/drivers/mtd/nand/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/fsl_ifc_nand.c
@@ -258,9 +258,15 @@ static void fsl_ifc_run_command(struct m
 		int bufnum = nctrl->page & priv->bufnum_mask;
 		int sector = bufnum * chip->ecc.steps;
 		int sector_end = sector + chip->ecc.steps - 1;
+		__be32 *eccstat_regs;
+
+		if (ctrl->version >= FSL_IFC_VERSION_2_0_0)
+			eccstat_regs = ifc->ifc_nand.v2_nand_eccstat;
+		else
+			eccstat_regs = ifc->ifc_nand.v1_nand_eccstat;
 
 		for (i = sector / 4; i <= sector_end / 4; i++)
-			eccstat[i] = ifc_in32(&ifc->ifc_nand.nand_eccstat[i]);
+			eccstat[i] = ifc_in32(&eccstat_regs[i]);
 
 		for (i = sector; i <= sector_end; i++) {
 			errors = check_read_ecc(mtd, ctrl, eccstat, i);
--- a/include/linux/fsl_ifc.h
+++ b/include/linux/fsl_ifc.h
@@ -733,8 +733,12 @@ struct fsl_ifc_nand {
 	__be32 nand_erattr1;
 	u32 res19[0x10];
 	__be32 nand_fsr;
-	u32 res20[0x3];
-	__be32 nand_eccstat[6];
+	u32 res20;
+	/* The V1 nand_eccstat is actually 4 words that overlaps the
+	 * V2 nand_eccstat.
+	 */
+	__be32 v1_nand_eccstat[2];
+	__be32 v2_nand_eccstat[6];
 	u32 res21[0x1c];
 	__be32 nanndcr;
 	u32 res22[0x2];

[toc] | [prev] | [next] | [standalone]


#1596905 — [PATCH 4.10 096/167] crypto: api - Add crypto_requires_off helper

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 096/167] crypto: api - Add crypto_requires_off helper
Message-ID<tjpbM-1Zq-109@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Herbert Xu <herbert@gondor.apana.org.au>

commit 016df0abc56ec06d0c63c5318ef53e40738dea8b upstream.

This patch adds crypto_requires_off which is an extension of
crypto_requires_sync for similar bits such as NEED_FALLBACK.

Suggested-by: Marcelo Cerri <marcelo.cerri@canonical.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/crypto/algapi.h |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- a/include/crypto/algapi.h
+++ b/include/crypto/algapi.h
@@ -344,13 +344,18 @@ static inline struct crypto_alg *crypto_
 	return crypto_attr_alg(tb[1], type, mask);
 }
 
+static inline int crypto_requires_off(u32 type, u32 mask, u32 off)
+{
+	return (type ^ off) & mask & off;
+}
+
 /*
  * Returns CRYPTO_ALG_ASYNC if type/mask requires the use of sync algorithms.
  * Otherwise returns zero.
  */
 static inline int crypto_requires_sync(u32 type, u32 mask)
 {
-	return (type ^ CRYPTO_ALG_ASYNC) & mask & CRYPTO_ALG_ASYNC;
+	return crypto_requires_off(type, mask, CRYPTO_ALG_ASYNC);
 }
 
 noinline unsigned long __crypto_memneq(const void *a, const void *b, size_t size);

[toc] | [prev] | [next] | [standalone]


#1596906 — [PATCH 4.10 155/167] dmaengine: ipu: Make sure the interrupt routine checks all interrupts.

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 10:40 +0100
Subject[PATCH 4.10 155/167] dmaengine: ipu: Make sure the interrupt routine checks all interrupts.
Message-ID<tjpbM-1Zq-117@gated-at.bofh.it>
In reply to#1596796
4.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Magnus Lilja <lilja.magnus@gmail.com>

commit adee40b265d7568296e218f079f478197ffa15bf upstream.

Commit 3d8cc00073d6 ("dmaengine: ipu: Consolidate duplicated irq handlers")
consolidated the two interrupts routines into one, but the remaining
interrupt routine only checks the status of the error interrupts, not the
normal interrupts.

This patch fixes that problem (tested on i.MX31 PDK board).

Fixes: 3d8cc00073d6 ("dmaengine: ipu: Consolidate duplicated irq handlers")
Cc: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Magnus Lilja <lilja.magnus@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/dma/ipu/ipu_irq.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/dma/ipu/ipu_irq.c
+++ b/drivers/dma/ipu/ipu_irq.c
@@ -272,7 +272,7 @@ static void ipu_irq_handler(struct irq_d
 	u32 status;
 	int i, line;
 
-	for (i = IPU_IRQ_NR_FN_BANKS; i < IPU_IRQ_NR_BANKS; i++) {
+	for (i = 0; i < IPU_IRQ_NR_BANKS; i++) {
 		struct ipu_irq_bank *bank = irq_bank + i;
 
 		raw_spin_lock(&bank_lock);

[toc] | [prev] | [next] | [standalone]


Page 3 of 9 — ← Prev page 1 2 [3] 4 5 6 7 8 9  Next page →

Back to top | Article view | linux.kernel


csiph-web