Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1596796 > unrolled thread
| Started by | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| First post | 2017-03-10 10:30 +0100 |
| Last post | 2017-03-12 06:30 +0100 |
| Articles | 20 on this page of 169 — 4 participants |
Back to article view | Back to linux.kernel
[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 5 of 9 — ← Prev page 1 2 3 4 [5] 6 7 8 9 Next page →
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 10:50 +0100 |
| Subject | [PATCH 4.10 156/167] xprtrdma: Fix Read chunk padding |
| Message-ID | <tjplq-23E-49@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Chuck Lever <chuck.lever@oracle.com>
commit 24abdf1be15c478e2821d6fc903a4a4440beff02 upstream.
When pad optimization is disabled, rpcrdma_convert_iovs still
does not add explicit XDR round-up padding to a Read chunk.
Commit 677eb17e94ed ("xprtrdma: Fix XDR tail buffer marshalling")
incorrectly short-circuited the test for whether round-up padding
is needed that appears later in rpcrdma_convert_iovs.
However, if this is indeed a regular Read chunk (and not a
Position-Zero Read chunk), the tail iovec _always_ contains the
chunk's padding, and never anything else.
So, it's easy to just skip the tail when padding optimization is
enabled, and add the tail in a subsequent Read chunk segment, if
disabled.
Fixes: 677eb17e94ed ("xprtrdma: Fix XDR tail buffer marshalling")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/sunrpc/xprtrdma/rpc_rdma.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
--- a/net/sunrpc/xprtrdma/rpc_rdma.c
+++ b/net/sunrpc/xprtrdma/rpc_rdma.c
@@ -226,8 +226,10 @@ rpcrdma_convert_iovs(struct xdr_buf *xdr
if (len && n == RPCRDMA_MAX_SEGS)
goto out_overflow;
- /* When encoding the read list, the tail is always sent inline */
- if (type == rpcrdma_readch)
+ /* When encoding a Read chunk, the tail iovec contains an
+ * XDR pad and may be omitted.
+ */
+ if (type == rpcrdma_readch && xprt_rdma_pad_optimize)
return n;
/* When encoding the Write list, some servers need to see an extra
@@ -238,10 +240,6 @@ rpcrdma_convert_iovs(struct xdr_buf *xdr
return n;
if (xdrbuf->tail[0].iov_len) {
- /* the rpcrdma protocol allows us to omit any trailing
- * xdr pad bytes, saving the server an RDMA operation. */
- if (xdrbuf->tail[0].iov_len < 4 && xprt_rdma_pad_optimize)
- return n;
n = rpcrdma_convert_kvec(&xdrbuf->tail[0], seg, n);
if (n == RPCRDMA_MAX_SEGS)
goto out_overflow;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 10:50 +0100 |
| Subject | [PATCH 4.10 148/167] f2fs: Fix zoned block device support |
| Message-ID | <tjplq-23E-41@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Masato Suzuki <masato.suzuki@wdc.com>
commit 7bb3a371d199156cb6a863feab377146b80942c5 upstream.
The introduction of the multi-device feature partially broke the support
for zoned block devices. In the function f2fs_scan_devices, sbi->devs
allocation and initialization is skipped in the case of a single device
mount. This result in no device information structure being allocated
for the device. This is fine if the device is a regular device, but in
the case of a zoned block device, the device zone type array is not
initialized, which causes the function __f2fs_issue_discard_zone to fail
as get_blkz_type is unable to determine the zone type of a section.
Fix this by always allocating and initializing the sbi->devs device
information array even in the case of a single device if that device is
zoned. For this particular case, make sure to obtain a reference on the
single device so that the call to blkdev_put() in destroy_device_list
operates as expected.
Fixes: 3c62be17d4f562f4 ("f2fs: support multiple devices")
Signed-off-by: Masato Suzuki <masato.suzuki@wdc.com>
Acked-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/f2fs/super.c | 69 ++++++++++++++++++++++++++++++++++++--------------------
1 file changed, 45 insertions(+), 24 deletions(-)
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -1698,36 +1698,55 @@ int f2fs_commit_super(struct f2fs_sb_inf
static int f2fs_scan_devices(struct f2fs_sb_info *sbi)
{
struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
+ unsigned int max_devices = MAX_DEVICES;
int i;
- for (i = 0; i < MAX_DEVICES; i++) {
- if (!RDEV(i).path[0])
+ /* Initialize single device information */
+ if (!RDEV(0).path[0]) {
+ if (!bdev_is_zoned(sbi->sb->s_bdev))
return 0;
+ max_devices = 1;
+ }
- if (i == 0) {
- sbi->devs = kzalloc(sizeof(struct f2fs_dev_info) *
- MAX_DEVICES, GFP_KERNEL);
- if (!sbi->devs)
- return -ENOMEM;
- }
-
- memcpy(FDEV(i).path, RDEV(i).path, MAX_PATH_LEN);
- FDEV(i).total_segments = le32_to_cpu(RDEV(i).total_segments);
- if (i == 0) {
- FDEV(i).start_blk = 0;
- FDEV(i).end_blk = FDEV(i).start_blk +
- (FDEV(i).total_segments <<
- sbi->log_blocks_per_seg) - 1 +
- le32_to_cpu(raw_super->segment0_blkaddr);
+ /*
+ * Initialize multiple devices information, or single
+ * zoned block device information.
+ */
+ sbi->devs = kcalloc(max_devices, sizeof(struct f2fs_dev_info),
+ GFP_KERNEL);
+ if (!sbi->devs)
+ return -ENOMEM;
+
+ for (i = 0; i < max_devices; i++) {
+
+ if (i > 0 && !RDEV(i).path[0])
+ break;
+
+ if (max_devices == 1) {
+ /* Single zoned block device mount */
+ FDEV(0).bdev =
+ blkdev_get_by_dev(sbi->sb->s_bdev->bd_dev,
+ sbi->sb->s_mode, sbi->sb->s_type);
} else {
- FDEV(i).start_blk = FDEV(i - 1).end_blk + 1;
- FDEV(i).end_blk = FDEV(i).start_blk +
- (FDEV(i).total_segments <<
- sbi->log_blocks_per_seg) - 1;
- }
-
- FDEV(i).bdev = blkdev_get_by_path(FDEV(i).path,
+ /* Multi-device mount */
+ memcpy(FDEV(i).path, RDEV(i).path, MAX_PATH_LEN);
+ FDEV(i).total_segments =
+ le32_to_cpu(RDEV(i).total_segments);
+ if (i == 0) {
+ FDEV(i).start_blk = 0;
+ FDEV(i).end_blk = FDEV(i).start_blk +
+ (FDEV(i).total_segments <<
+ sbi->log_blocks_per_seg) - 1 +
+ le32_to_cpu(raw_super->segment0_blkaddr);
+ } else {
+ FDEV(i).start_blk = FDEV(i - 1).end_blk + 1;
+ FDEV(i).end_blk = FDEV(i).start_blk +
+ (FDEV(i).total_segments <<
+ sbi->log_blocks_per_seg) - 1;
+ }
+ FDEV(i).bdev = blkdev_get_by_path(FDEV(i).path,
sbi->sb->s_mode, sbi->sb->s_type);
+ }
if (IS_ERR(FDEV(i).bdev))
return PTR_ERR(FDEV(i).bdev);
@@ -1747,6 +1766,8 @@ static int f2fs_scan_devices(struct f2fs
"Failed to initialize F2FS blkzone information");
return -EINVAL;
}
+ if (max_devices == 1)
+ break;
f2fs_msg(sbi->sb, KERN_INFO,
"Mount Device [%2d]: %20s, %8u, %8x - %8x (zone: %s)",
i, FDEV(i).path,
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 10:50 +0100 |
| Subject | [PATCH 4.10 157/167] xprtrdma: Per-connection pad optimization |
| Message-ID | <tjplq-23E-45@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Chuck Lever <chuck.lever@oracle.com>
commit b5f0afbea4f2ea52c613ac2b06cb6de2ea18cb6d upstream.
Pad optimization is changed by echoing into
/proc/sys/sunrpc/rdma_pad_optimize. This is a global setting,
affecting all RPC-over-RDMA connections to all servers.
The marshaling code picks up that value and uses it for decisions
about how to construct each RPC-over-RDMA frame. Having it change
suddenly in mid-operation can result in unexpected failures. And
some servers a client mounts might need chunk round-up, while
others don't.
So instead, copy the pad_optimize setting into each connection's
rpcrdma_ia when the transport is created, and use the copy, which
can't change during the life of the connection, instead.
This also removes a hack: rpcrdma_convert_iovs was using
the remote-invalidation-expected flag to predict when it could leave
out Write chunk padding. This is because the Linux server handles
implicit XDR padding on Write chunks correctly, and only Linux
servers can set the connection's remote-invalidation-expected flag.
It's more sensible to use the pad optimization setting instead.
Fixes: 677eb17e94ed ("xprtrdma: Fix XDR tail buffer marshalling")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/sunrpc/xprtrdma/rpc_rdma.c | 28 ++++++++++++++--------------
net/sunrpc/xprtrdma/verbs.c | 1 +
net/sunrpc/xprtrdma/xprt_rdma.h | 1 +
3 files changed, 16 insertions(+), 14 deletions(-)
--- a/net/sunrpc/xprtrdma/rpc_rdma.c
+++ b/net/sunrpc/xprtrdma/rpc_rdma.c
@@ -186,9 +186,9 @@ rpcrdma_convert_kvec(struct kvec *vec, s
*/
static int
-rpcrdma_convert_iovs(struct xdr_buf *xdrbuf, unsigned int pos,
- enum rpcrdma_chunktype type, struct rpcrdma_mr_seg *seg,
- bool reminv_expected)
+rpcrdma_convert_iovs(struct rpcrdma_xprt *r_xprt, struct xdr_buf *xdrbuf,
+ unsigned int pos, enum rpcrdma_chunktype type,
+ struct rpcrdma_mr_seg *seg)
{
int len, n, p, page_base;
struct page **ppages;
@@ -229,14 +229,15 @@ rpcrdma_convert_iovs(struct xdr_buf *xdr
/* When encoding a Read chunk, the tail iovec contains an
* XDR pad and may be omitted.
*/
- if (type == rpcrdma_readch && xprt_rdma_pad_optimize)
+ if (type == rpcrdma_readch && r_xprt->rx_ia.ri_implicit_roundup)
return n;
- /* When encoding the Write list, some servers need to see an extra
- * segment for odd-length Write chunks. The upper layer provides
- * space in the tail iovec for this purpose.
+ /* When encoding a Write chunk, some servers need to see an
+ * extra segment for non-XDR-aligned Write chunks. The upper
+ * layer provides space in the tail iovec that may be used
+ * for this purpose.
*/
- if (type == rpcrdma_writech && reminv_expected)
+ if (type == rpcrdma_writech && r_xprt->rx_ia.ri_implicit_roundup)
return n;
if (xdrbuf->tail[0].iov_len) {
@@ -291,7 +292,8 @@ rpcrdma_encode_read_list(struct rpcrdma_
if (rtype == rpcrdma_areadch)
pos = 0;
seg = req->rl_segments;
- nsegs = rpcrdma_convert_iovs(&rqst->rq_snd_buf, pos, rtype, seg, false);
+ nsegs = rpcrdma_convert_iovs(r_xprt, &rqst->rq_snd_buf, pos,
+ rtype, seg);
if (nsegs < 0)
return ERR_PTR(nsegs);
@@ -353,10 +355,9 @@ rpcrdma_encode_write_list(struct rpcrdma
}
seg = req->rl_segments;
- nsegs = rpcrdma_convert_iovs(&rqst->rq_rcv_buf,
+ nsegs = rpcrdma_convert_iovs(r_xprt, &rqst->rq_rcv_buf,
rqst->rq_rcv_buf.head[0].iov_len,
- wtype, seg,
- r_xprt->rx_ia.ri_reminv_expected);
+ wtype, seg);
if (nsegs < 0)
return ERR_PTR(nsegs);
@@ -421,8 +422,7 @@ rpcrdma_encode_reply_chunk(struct rpcrdm
}
seg = req->rl_segments;
- nsegs = rpcrdma_convert_iovs(&rqst->rq_rcv_buf, 0, wtype, seg,
- r_xprt->rx_ia.ri_reminv_expected);
+ nsegs = rpcrdma_convert_iovs(r_xprt, &rqst->rq_rcv_buf, 0, wtype, seg);
if (nsegs < 0)
return ERR_PTR(nsegs);
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -208,6 +208,7 @@ rpcrdma_update_connect_private(struct rp
/* Default settings for RPC-over-RDMA Version One */
r_xprt->rx_ia.ri_reminv_expected = false;
+ r_xprt->rx_ia.ri_implicit_roundup = xprt_rdma_pad_optimize;
rsize = RPCRDMA_V1_DEF_INLINE_SIZE;
wsize = RPCRDMA_V1_DEF_INLINE_SIZE;
--- a/net/sunrpc/xprtrdma/xprt_rdma.h
+++ b/net/sunrpc/xprtrdma/xprt_rdma.h
@@ -75,6 +75,7 @@ struct rpcrdma_ia {
unsigned int ri_max_inline_write;
unsigned int ri_max_inline_read;
bool ri_reminv_expected;
+ bool ri_implicit_roundup;
enum ib_mr_type ri_mrtype;
struct ib_qp_attr ri_qp_attr;
struct ib_qp_init_attr ri_qp_init_attr;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 10:50 +0100 |
| Subject | [PATCH 4.10 136/167] nfsd: minor nfsd_setattr cleanup |
| Message-ID | <tjplq-23E-43@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Christoph Hellwig <hch@lst.de>
commit 758e99fefe1d9230111296956335cd35995c0eaf upstream.
Simplify exit paths, size_change use.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/nfsd/vfs.c | 29 ++++++++++++-----------------
1 file changed, 12 insertions(+), 17 deletions(-)
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -377,7 +377,7 @@ nfsd_setattr(struct svc_rqst *rqstp, str
__be32 err;
int host_err;
bool get_write_count;
- int size_change = 0;
+ bool size_change = (iap->ia_valid & ATTR_SIZE);
if (iap->ia_valid & (ATTR_ATIME | ATTR_MTIME | ATTR_SIZE))
accmode |= NFSD_MAY_WRITE|NFSD_MAY_OWNER_OVERRIDE;
@@ -390,11 +390,11 @@ nfsd_setattr(struct svc_rqst *rqstp, str
/* Get inode */
err = fh_verify(rqstp, fhp, ftype, accmode);
if (err)
- goto out;
+ return err;
if (get_write_count) {
host_err = fh_want_write(fhp);
if (host_err)
- return nfserrno(host_err);
+ goto out;
}
dentry = fhp->fh_dentry;
@@ -405,19 +405,21 @@ nfsd_setattr(struct svc_rqst *rqstp, str
iap->ia_valid &= ~ATTR_MODE;
if (!iap->ia_valid)
- goto out;
+ return 0;
nfsd_sanitize_attrs(inode, iap);
+ if (check_guard && guardtime != inode->i_ctime.tv_sec)
+ return nfserr_notsync;
+
/*
* The size case is special, it changes the file in addition to the
* attributes.
*/
- if (iap->ia_valid & ATTR_SIZE) {
+ if (size_change) {
err = nfsd_get_write_access(rqstp, fhp, iap);
if (err)
- goto out;
- size_change = 1;
+ return err;
/*
* RFC5661, Section 18.30.4:
@@ -432,23 +434,16 @@ nfsd_setattr(struct svc_rqst *rqstp, str
iap->ia_valid |= ATTR_CTIME;
- if (check_guard && guardtime != inode->i_ctime.tv_sec) {
- err = nfserr_notsync;
- goto out_put_write_access;
- }
-
fh_lock(fhp);
host_err = notify_change(dentry, iap, NULL);
fh_unlock(fhp);
- err = nfserrno(host_err);
-out_put_write_access:
if (size_change)
put_write_access(inode);
- if (!err)
- err = nfserrno(commit_metadata(fhp));
out:
- return err;
+ if (!host_err)
+ host_err = commit_metadata(fhp);
+ return nfserrno(host_err);
}
#if defined(CONFIG_NFSD_V4)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 133/167] rtlwifi: Fix alignment issues |
| Message-ID | <tjpv3-27X-3@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ping-Ke Shih <pkshih@realtek.com>
commit 40b368af4b750863b2cb66a3a9513241db2f0793 upstream.
The addresses of Wlan NIC registers are natural alignment, but some
drivers have bugs. These are evident on platforms that need natural
alignment to access registers. This change contains the following:
1. Function _rtl8821ae_dbi_read() is used to read one byte from DBI,
thus it should use rtl_read_byte().
2. Register 0x4C7 of 8192ee is single byte.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
@@ -1006,7 +1006,7 @@ static void _rtl92ee_hw_configure(struct
rtl_write_word(rtlpriv, REG_SIFS_TRX, 0x100a);
/* Note Data sheet don't define */
- rtl_write_word(rtlpriv, 0x4C7, 0x80);
+ rtl_write_byte(rtlpriv, 0x4C7, 0x80);
rtl_write_byte(rtlpriv, REG_RX_PKT_LIMIT, 0x20);
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
@@ -1128,7 +1128,7 @@ static u8 _rtl8821ae_dbi_read(struct rtl
}
if (0 == tmp) {
read_addr = REG_DBI_RDATA + addr % 4;
- ret = rtl_read_word(rtlpriv, read_addr);
+ ret = rtl_read_byte(rtlpriv, read_addr);
}
return ret;
}
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 134/167] rtlwifi: rtl8192c-common: Fix "BUG: KASAN: |
| Message-ID | <tjpv3-27X-9@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Larry Finger <Larry.Finger@lwfinger.net>
commit 6773386f977ce5af339f9678fa2918909a946c6b upstream.
Kernels built with CONFIG_KASAN=y report the following BUG for rtl8192cu
and rtl8192c-common:
==================================================================
BUG: KASAN: slab-out-of-bounds in rtl92c_dm_bt_coexist+0x858/0x1e40
[rtl8192c_common] at addr ffff8801c90edb08
Read of size 1 by task kworker/0:1/38
page:ffffea0007243800 count:1 mapcount:0 mapping: (null)
index:0x0 compound_mapcount: 0
flags: 0x8000000000004000(head)
page dumped because: kasan: bad access detected
CPU: 0 PID: 38 Comm: kworker/0:1 Not tainted 4.9.7-gentoo #3
Hardware name: Gigabyte Technology Co., Ltd. To be filled by
O.E.M./Z77-DS3H, BIOS F11a 11/13/2013
Workqueue: rtl92c_usb rtl_watchdog_wq_callback [rtlwifi]
0000000000000000 ffffffff829eea33 ffff8801d7f0fa30 ffff8801c90edb08
ffffffff824c0f09 ffff8801d4abee80 0000000000000004 0000000000000297
ffffffffc070b57c ffff8801c7aa7c48 ffff880100000004 ffffffff000003e8
Call Trace:
[<ffffffff829eea33>] ? dump_stack+0x5c/0x79
[<ffffffff824c0f09>] ? kasan_report_error+0x4b9/0x4e0
[<ffffffffc070b57c>] ? _usb_read_sync+0x15c/0x280 [rtl_usb]
[<ffffffff824c0f75>] ? __asan_report_load1_noabort+0x45/0x50
[<ffffffffc06d7a88>] ? rtl92c_dm_bt_coexist+0x858/0x1e40 [rtl8192c_common]
[<ffffffffc06d7a88>] ? rtl92c_dm_bt_coexist+0x858/0x1e40 [rtl8192c_common]
[<ffffffffc06d0cbe>] ? rtl92c_dm_rf_saving+0x96e/0x1330 [rtl8192c_common]
...
The problem is due to rtl8192ce and rtl8192cu sharing routines, and having
different layouts of struct rtl_pci_priv, which is used by rtl8192ce, and
struct rtl_usb_priv, which is used by rtl8192cu. The problem was resolved
by placing the struct bt_coexist_info at the head of each of those private
areas.
Reported-and-tested-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/wireless/realtek/rtlwifi/pci.h | 4 ++--
drivers/net/wireless/realtek/rtlwifi/usb.h | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
--- a/drivers/net/wireless/realtek/rtlwifi/pci.h
+++ b/drivers/net/wireless/realtek/rtlwifi/pci.h
@@ -271,10 +271,10 @@ struct mp_adapter {
};
struct rtl_pci_priv {
+ struct bt_coexist_info bt_coexist;
+ struct rtl_led_ctl ledctl;
struct rtl_pci dev;
struct mp_adapter ndis_adapter;
- struct rtl_led_ctl ledctl;
- struct bt_coexist_info bt_coexist;
};
#define rtl_pcipriv(hw) (((struct rtl_pci_priv *)(rtl_priv(hw))->priv))
--- a/drivers/net/wireless/realtek/rtlwifi/usb.h
+++ b/drivers/net/wireless/realtek/rtlwifi/usb.h
@@ -146,8 +146,9 @@ struct rtl_usb {
};
struct rtl_usb_priv {
- struct rtl_usb dev;
+ struct bt_coexist_info bt_coexist;
struct rtl_led_ctl ledctl;
+ struct rtl_usb dev;
};
#define rtl_usbpriv(hw) (((struct rtl_usb_priv *)(rtl_priv(hw))->priv))
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 128/167] Drivers: hv: util: Backup: Fix a rescind processing issue |
| Message-ID | <tjpv3-27X-5@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 d77044d142e960f7b5f814a91ecb8bcf86aa552c upstream.
VSS may use a char device to support the communication between
the user level daemon and the driver. When the VSS channel is rescinded
we need to make sure that the char device is fully cleaned up before
we can process a new VSS offer from the host. Implement this logic.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/hv/hv_snapshot.c | 4 ++++
1 file changed, 4 insertions(+)
--- a/drivers/hv/hv_snapshot.c
+++ b/drivers/hv/hv_snapshot.c
@@ -69,6 +69,7 @@ static int dm_reg_value;
static const char vss_devname[] = "vmbus/hv_vss";
static __u8 *recv_buffer;
static struct hvutil_transport *hvt;
+static struct completion release_event;
static void vss_timeout_func(struct work_struct *dummy);
static void vss_handle_request(struct work_struct *dummy);
@@ -345,11 +346,13 @@ static void vss_on_reset(void)
if (cancel_delayed_work_sync(&vss_timeout_work))
vss_respond_to_host(HV_E_FAIL);
vss_transaction.state = HVUTIL_DEVICE_INIT;
+ complete(&release_event);
}
int
hv_vss_init(struct hv_util_service *srv)
{
+ init_completion(&release_event);
if (vmbus_proto_version < VERSION_WIN8_1) {
pr_warn("Integration service 'Backup (volume snapshot)'"
" not supported on this host version.\n");
@@ -382,4 +385,5 @@ void hv_vss_deinit(void)
cancel_delayed_work_sync(&vss_timeout_work);
cancel_work_sync(&vss_handle_request_work);
hvutil_transport_destroy(hvt);
+ wait_for_completion(&release_event);
}
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 117/167] usb: gadget: f_hid: fix: Free out requests |
| Message-ID | <tjpv4-27X-15@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 20d2ca955bd09639c7b01db5761d157c297aea0a upstream.
Requests for out endpoint are allocated in bind() function
but never released.
This commit ensures that all pending requests are released
when we disable out endpoint.
Fixes: 99c515005857 ("usb: gadget: hidg: register OUT INT endpoint for SET_REPORT")
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 | 32 ++++++++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-)
--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -425,20 +425,36 @@ static inline struct usb_request *hidg_a
static void hidg_set_report_complete(struct usb_ep *ep, struct usb_request *req)
{
struct f_hidg *hidg = (struct f_hidg *) req->context;
+ struct usb_composite_dev *cdev = hidg->func.config->cdev;
struct f_hidg_req_list *req_list;
unsigned long flags;
- req_list = kzalloc(sizeof(*req_list), GFP_ATOMIC);
- if (!req_list)
- return;
+ switch (req->status) {
+ case 0:
+ req_list = kzalloc(sizeof(*req_list), GFP_ATOMIC);
+ if (!req_list) {
+ ERROR(cdev, "Unable to allocate mem for req_list\n");
+ goto free_req;
+ }
- req_list->req = req;
+ req_list->req = req;
- spin_lock_irqsave(&hidg->spinlock, flags);
- list_add_tail(&req_list->list, &hidg->completed_out_req);
- spin_unlock_irqrestore(&hidg->spinlock, flags);
+ spin_lock_irqsave(&hidg->spinlock, flags);
+ list_add_tail(&req_list->list, &hidg->completed_out_req);
+ spin_unlock_irqrestore(&hidg->spinlock, flags);
- wake_up(&hidg->read_queue);
+ wake_up(&hidg->read_queue);
+ break;
+ default:
+ ERROR(cdev, "Set report failed %d\n", req->status);
+ /* FALLTHROUGH */
+ case -ECONNABORTED: /* hardware forced ep reset */
+ case -ECONNRESET: /* request dequeued */
+ case -ESHUTDOWN: /* disconnect from host */
+free_req:
+ free_ep_req(ep, req);
+ return;
+ }
}
static int hidg_setup(struct usb_function *f,
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 118/167] usb: gadget: f_hid: fix: Prevent accessing released memory |
| Message-ID | <tjpv3-27X-7@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 aa65d11aa008f4de58a9cee7e121666d9d68505e upstream.
When we unlock our spinlock to copy data to user we may get
disabled by USB host and free the whole list of completed out
requests including the one from which we are copying the data
to user memory.
To prevent from this let's remove our working element from
the list and place it back only if there is sth left when we
finish with it.
Fixes: 99c515005857 ("usb: gadget: hidg: register OUT INT endpoint for SET_REPORT")
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 | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -277,6 +277,13 @@ static ssize_t f_hidg_read(struct file *
/* pick the first one */
list = list_first_entry(&hidg->completed_out_req,
struct f_hidg_req_list, list);
+
+ /*
+ * Remove this from list to protect it from beign free()
+ * while host disables our function
+ */
+ list_del(&list->list);
+
req = list->req;
count = min_t(unsigned int, count, req->actual - list->pos);
spin_unlock_irqrestore(&hidg->spinlock, flags);
@@ -292,15 +299,20 @@ static ssize_t f_hidg_read(struct file *
* call, taking into account its current read position.
*/
if (list->pos == req->actual) {
- spin_lock_irqsave(&hidg->spinlock, flags);
- list_del(&list->list);
kfree(list);
- spin_unlock_irqrestore(&hidg->spinlock, flags);
req->length = hidg->report_length;
ret = usb_ep_queue(hidg->out_ep, req, GFP_KERNEL);
- if (ret < 0)
+ if (ret < 0) {
+ free_ep_req(hidg->out_ep, req);
return ret;
+ }
+ } else {
+ spin_lock_irqsave(&hidg->spinlock, flags);
+ list_add(&list->list, &hidg->completed_out_req);
+ spin_unlock_irqrestore(&hidg->spinlock, flags);
+
+ wake_up(&hidg->read_queue);
}
return count;
@@ -560,14 +572,18 @@ static void hidg_disable(struct usb_func
{
struct f_hidg *hidg = func_to_hidg(f);
struct f_hidg_req_list *list, *next;
+ unsigned long flags;
usb_ep_disable(hidg->in_ep);
usb_ep_disable(hidg->out_ep);
+ spin_lock_irqsave(&hidg->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);
}
static int hidg_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 115/167] usb: gadget: udc-core: Rescan pending list on driver unbind |
| Message-ID | <tjpv4-27X-11@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 <k.opasiak@samsung.com>
commit 8236800da115a3e24b9165c573067343f51cf5ea upstream.
Since:
commit 855ed04a3758 ("usb: gadget: udc-core: independent registration
of gadgets and gadget drivers")
if we load gadget module but there is no free udc available
then it will be stored on a pending gadgets list.
$ modprobe g_zero.ko
$ modprobe g_ether.ko
[] udc-core: couldn't find an available UDC - added [g_ether] to list
of pending drivers
We scan this list each time when new UDC appears in system.
But we can get a free UDC each time after gadget unbind.
This commit add scanning of that list directly after unbinding
gadget from udc.
Thanks to this, when we unload first gadget:
$ rmmod g_zero.ko
gadget which is pending is automatically
attached to that UDC (if name matches).
Fixes: 855ed04a3758 ("usb: gadget: udc-core: independent registration of gadgets and gadget drivers")
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/udc/core.c | 45 ++++++++++++++++++++++++++++--------------
1 file changed, 31 insertions(+), 14 deletions(-)
--- a/drivers/usb/gadget/udc/core.c
+++ b/drivers/usb/gadget/udc/core.c
@@ -1080,6 +1080,24 @@ static void usb_udc_nop_release(struct d
dev_vdbg(dev, "%s\n", __func__);
}
+/* should be called with udc_lock held */
+static int check_pending_gadget_drivers(struct usb_udc *udc)
+{
+ struct usb_gadget_driver *driver;
+ int ret = 0;
+
+ list_for_each_entry(driver, &gadget_driver_pending_list, pending)
+ if (!driver->udc_name || strcmp(driver->udc_name,
+ dev_name(&udc->dev)) == 0) {
+ ret = udc_bind_to_driver(udc, driver);
+ if (ret != -EPROBE_DEFER)
+ list_del(&driver->pending);
+ break;
+ }
+
+ return ret;
+}
+
/**
* usb_add_gadget_udc_release - adds a new gadget to the udc class driver list
* @parent: the parent device to this udc. Usually the controller driver's
@@ -1093,7 +1111,6 @@ int usb_add_gadget_udc_release(struct de
void (*release)(struct device *dev))
{
struct usb_udc *udc;
- struct usb_gadget_driver *driver;
int ret = -ENOMEM;
udc = kzalloc(sizeof(*udc), GFP_KERNEL);
@@ -1136,17 +1153,9 @@ int usb_add_gadget_udc_release(struct de
udc->vbus = true;
/* pick up one of pending gadget drivers */
- list_for_each_entry(driver, &gadget_driver_pending_list, pending) {
- if (!driver->udc_name || strcmp(driver->udc_name,
- dev_name(&udc->dev)) == 0) {
- ret = udc_bind_to_driver(udc, driver);
- if (ret != -EPROBE_DEFER)
- list_del(&driver->pending);
- if (ret)
- goto err5;
- break;
- }
- }
+ ret = check_pending_gadget_drivers(udc);
+ if (ret)
+ goto err5;
mutex_unlock(&udc_lock);
@@ -1356,14 +1365,22 @@ int usb_gadget_unregister_driver(struct
return -EINVAL;
mutex_lock(&udc_lock);
- list_for_each_entry(udc, &udc_list, list)
+ list_for_each_entry(udc, &udc_list, list) {
if (udc->driver == driver) {
usb_gadget_remove_driver(udc);
usb_gadget_set_state(udc->gadget,
- USB_STATE_NOTATTACHED);
+ USB_STATE_NOTATTACHED);
+
+ /* Maybe there is someone waiting for this UDC? */
+ check_pending_gadget_drivers(udc);
+ /*
+ * For now we ignore bind errors as probably it's
+ * not a valid reason to fail other's gadget unbind
+ */
ret = 0;
break;
}
+ }
if (ret) {
list_del(&driver->pending);
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 126/167] Drivers: hv: util: kvp: Fix a rescind processing issue |
| Message-ID | <tjpv4-27X-13@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 5a66fecbf6aa528e375cbebccb1061cc58d80c84 upstream. KVP may use a char device to support the communication between the user level daemon and the driver. When the KVP channel is rescinded we need to make sure that the char device is fully cleaned up before we can process a new KVP offer from the host. Implement this logic. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/hv/hv_kvp.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/drivers/hv/hv_kvp.c +++ b/drivers/hv/hv_kvp.c @@ -88,6 +88,7 @@ static DECLARE_WORK(kvp_sendkey_work, kv static const char kvp_devname[] = "vmbus/hv_kvp"; static u8 *recv_buffer; static struct hvutil_transport *hvt; +static struct completion release_event; /* * Register the kernel component with the user-level daemon. * As part of this registration, pass the LIC version number. @@ -716,6 +717,7 @@ static void kvp_on_reset(void) if (cancel_delayed_work_sync(&kvp_timeout_work)) kvp_respond_to_host(NULL, HV_E_FAIL); kvp_transaction.state = HVUTIL_DEVICE_INIT; + complete(&release_event); } int @@ -724,6 +726,7 @@ hv_kvp_init(struct hv_util_service *srv) recv_buffer = srv->recv_buffer; kvp_transaction.recv_channel = srv->channel; + init_completion(&release_event); /* * When this driver loads, the user level daemon that * processes the host requests may not yet be running. @@ -747,4 +750,5 @@ void hv_kvp_deinit(void) cancel_delayed_work_sync(&kvp_timeout_work); cancel_work_sync(&kvp_sendkey_work); hvutil_transport_destroy(hvt); + wait_for_completion(&release_event); }
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 129/167] RDMA/core: Fix incorrect structure packing for booleans |
| Message-ID | <tjpv4-27X-19@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
commit 55efcfcd7776165b294f8b5cd6e05ca00ec89b7c upstream.
The RDMA core uses ib_pack() to convert from unpacked CPU structs
to on-the-wire bitpacked structs.
This process requires that 1 bit fields are declared as u8 in the
unpacked struct, otherwise the packing process does not read the
value properly and the packed result is wired to 0. Several
places wrongly used int.
Crucially this means the kernel has never, set reversible
correctly in the path record request. It has always asked for
irreversible paths even if the ULP requests otherwise.
When the kernel is used with a SM that supports this feature, it
completely breaks communication management if reversible paths are
not properly requested.
The only reason this ever worked is because opensm ignores the
reversible bit.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/rdma/ib_sa.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/include/rdma/ib_sa.h
+++ b/include/rdma/ib_sa.h
@@ -153,12 +153,12 @@ struct ib_sa_path_rec {
union ib_gid sgid;
__be16 dlid;
__be16 slid;
- int raw_traffic;
+ u8 raw_traffic;
/* reserved */
__be32 flow_label;
u8 hop_limit;
u8 traffic_class;
- int reversible;
+ u8 reversible;
u8 numb_path;
__be16 pkey;
__be16 qos_class;
@@ -220,7 +220,7 @@ struct ib_sa_mcmember_rec {
u8 hop_limit;
u8 scope;
u8 join_state;
- int proxy_join;
+ u8 proxy_join;
};
/* Service Record Component Mask Sec 15.2.5.14 Ver 1.1 */
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 127/167] Drivers: hv: util: Fcopy: Fix a rescind processing issue |
| Message-ID | <tjpv4-27X-25@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 20951c7535b5e6af46bc37b7142105f716df739c upstream. Fcopy may use a char device to support the communication between the user level daemon and the driver. When the Fcopy channel is rescinded we need to make sure that the char device is fully cleaned up before we can process a new Fcopy offer from the host. Implement this logic. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/hv/hv_fcopy.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/drivers/hv/hv_fcopy.c +++ b/drivers/hv/hv_fcopy.c @@ -61,6 +61,7 @@ static DECLARE_WORK(fcopy_send_work, fco static const char fcopy_devname[] = "vmbus/hv_fcopy"; static u8 *recv_buffer; static struct hvutil_transport *hvt; +static struct completion release_event; /* * This state maintains the version number registered by the daemon. */ @@ -317,6 +318,7 @@ static void fcopy_on_reset(void) if (cancel_delayed_work_sync(&fcopy_timeout_work)) fcopy_respond_to_host(HV_E_FAIL); + complete(&release_event); } int hv_fcopy_init(struct hv_util_service *srv) @@ -324,6 +326,7 @@ int hv_fcopy_init(struct hv_util_service recv_buffer = srv->recv_buffer; fcopy_transaction.recv_channel = srv->channel; + init_completion(&release_event); /* * When this driver loads, the user level daemon that * processes the host requests may not yet be running. @@ -345,4 +348,5 @@ void hv_fcopy_deinit(void) fcopy_transaction.state = HVUTIL_DEVICE_DYING; cancel_delayed_work_sync(&fcopy_timeout_work); hvutil_transport_destroy(hvt); + wait_for_completion(&release_event); }
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 112/167] usb: musb: da8xx: Remove CPPI 3.0 quirk and methods |
| Message-ID | <tjpv4-27X-21@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alexandre Bailon <abailon@baylibre.com>
commit a994ce2d7e66008381a0b184c73be9ae9b72eb5c upstream.
DA8xx driver is registering and using the CPPI 3.0 DMA controller but
actually, the DA8xx has a CPPI 4.1 DMA controller.
Remove the CPPI 3.0 quirk and methods.
Fixes: f8e9f34f80a2 ("usb: musb: Fix up DMA related macros")
Fixes: 7f6283ed6fe8 ("usb: musb: Set up function pointers for DMA")
Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/musb/da8xx.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
--- a/drivers/usb/musb/da8xx.c
+++ b/drivers/usb/musb/da8xx.c
@@ -458,15 +458,11 @@ static inline u8 get_vbus_power(struct d
}
static const struct musb_platform_ops da8xx_ops = {
- .quirks = MUSB_DMA_CPPI | MUSB_INDEXED_EP,
+ .quirks = MUSB_INDEXED_EP,
.init = da8xx_musb_init,
.exit = da8xx_musb_exit,
.fifo_mode = 2,
-#ifdef CONFIG_USB_TI_CPPI_DMA
- .dma_init = cppi_dma_controller_create,
- .dma_exit = cppi_dma_controller_destroy,
-#endif
.enable = da8xx_musb_enable,
.disable = da8xx_musb_disable,
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 113/167] usb: dwc3: gadget: skip Set/Clear Halt when invalid |
| Message-ID | <tjpv4-27X-29@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Felipe Balbi <felipe.balbi@linux.intel.com>
commit ffb80fc672c3a7b6afd0cefcb1524fb99917b2f3 upstream.
At least macOS seems to be sending
ClearFeature(ENDPOINT_HALT) to endpoints which
aren't Halted. This makes DWC3's CLEARSTALL command
time out which causes several issues for the driver.
Instead, let's just return 0 and bail out early.
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/dwc3/gadget.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1335,6 +1335,9 @@ int __dwc3_gadget_ep_set_halt(struct dwc
unsigned transfer_in_flight;
unsigned started;
+ if (dep->flags & DWC3_EP_STALL)
+ return 0;
+
if (dep->number > 1)
trb = dwc3_ep_prev_trb(dep, dep->trb_enqueue);
else
@@ -1356,6 +1359,8 @@ int __dwc3_gadget_ep_set_halt(struct dwc
else
dep->flags |= DWC3_EP_STALL;
} else {
+ if (!(dep->flags & DWC3_EP_STALL))
+ return 0;
ret = dwc3_send_clear_stall_ep_cmd(dep);
if (ret)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 098/167] crypto: vmx - Use skcipher for xts fallback |
| Message-ID | <tjpv4-27X-27@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
commit 5839f555fa576be57371686265206398d9ea1480 upstream.
Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/crypto/vmx/aes_xts.c b/drivers/crypto/vmx/aes_xts.c
index 24353ec336c5..6adc9290557a 100644
--- a/drivers/crypto/vmx/aes_xts.c
+++ b/drivers/crypto/vmx/aes_xts.c
@@ -28,11 +28,12 @@
#include <crypto/aes.h>
#include <crypto/scatterwalk.h>
#include <crypto/xts.h>
+#include <crypto/skcipher.h>
#include "aesp8-ppc.h"
struct p8_aes_xts_ctx {
- struct crypto_blkcipher *fallback;
+ struct crypto_skcipher *fallback;
struct aes_key enc_key;
struct aes_key dec_key;
struct aes_key tweak_key;
@@ -41,7 +42,7 @@ struct p8_aes_xts_ctx {
static int p8_aes_xts_init(struct crypto_tfm *tfm)
{
const char *alg;
- struct crypto_blkcipher *fallback;
+ struct crypto_skcipher *fallback;
struct p8_aes_xts_ctx *ctx = crypto_tfm_ctx(tfm);
if (!(alg = crypto_tfm_alg_name(tfm))) {
@@ -49,8 +50,8 @@ static int p8_aes_xts_init(struct crypto_tfm *tfm)
return -ENOENT;
}
- fallback =
- crypto_alloc_blkcipher(alg, 0, CRYPTO_ALG_NEED_FALLBACK);
+ fallback = crypto_alloc_skcipher(alg, 0,
+ CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK);
if (IS_ERR(fallback)) {
printk(KERN_ERR
"Failed to allocate transformation for '%s': %ld\n",
@@ -58,11 +59,11 @@ static int p8_aes_xts_init(struct crypto_tfm *tfm)
return PTR_ERR(fallback);
}
printk(KERN_INFO "Using '%s' as fallback implementation.\n",
- crypto_tfm_alg_driver_name((struct crypto_tfm *) fallback));
+ crypto_skcipher_driver_name(fallback));
- crypto_blkcipher_set_flags(
+ crypto_skcipher_set_flags(
fallback,
- crypto_blkcipher_get_flags((struct crypto_blkcipher *)tfm));
+ crypto_skcipher_get_flags((struct crypto_skcipher *)tfm));
ctx->fallback = fallback;
return 0;
@@ -73,7 +74,7 @@ static void p8_aes_xts_exit(struct crypto_tfm *tfm)
struct p8_aes_xts_ctx *ctx = crypto_tfm_ctx(tfm);
if (ctx->fallback) {
- crypto_free_blkcipher(ctx->fallback);
+ crypto_free_skcipher(ctx->fallback);
ctx->fallback = NULL;
}
}
@@ -98,7 +99,7 @@ static int p8_aes_xts_setkey(struct crypto_tfm *tfm, const u8 *key,
pagefault_enable();
preempt_enable();
- ret += crypto_blkcipher_setkey(ctx->fallback, key, keylen);
+ ret += crypto_skcipher_setkey(ctx->fallback, key, keylen);
return ret;
}
@@ -113,15 +114,14 @@ static int p8_aes_xts_crypt(struct blkcipher_desc *desc,
struct blkcipher_walk walk;
struct p8_aes_xts_ctx *ctx =
crypto_tfm_ctx(crypto_blkcipher_tfm(desc->tfm));
- struct blkcipher_desc fallback_desc = {
- .tfm = ctx->fallback,
- .info = desc->info,
- .flags = desc->flags
- };
if (in_interrupt()) {
- ret = enc ? crypto_blkcipher_encrypt(&fallback_desc, dst, src, nbytes) :
- crypto_blkcipher_decrypt(&fallback_desc, dst, src, nbytes);
+ SKCIPHER_REQUEST_ON_STACK(req, ctx->fallback);
+ skcipher_request_set_tfm(req, ctx->fallback);
+ skcipher_request_set_callback(req, desc->flags, NULL, NULL);
+ skcipher_request_set_crypt(req, src, dst, nbytes, desc->info);
+ ret = enc? crypto_skcipher_encrypt(req) : crypto_skcipher_decrypt(req);
+ skcipher_request_zero(req);
} else {
preempt_disable();
pagefault_disable();
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 109/167] can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer |
| Message-ID | <tjpv5-27X-49@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Marc Kleine-Budde <mkl@pengutronix.de>
commit 7c42631376306fb3f34d51fda546b50a9b6dd6ec upstream.
The priv->cmd_msg_buffer is allocated in the probe function, but never
kfree()ed. This patch converts the kzalloc() to resource-managed
kzalloc.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/can/usb/usb_8dev.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -951,8 +951,8 @@ static int usb_8dev_probe(struct usb_int
for (i = 0; i < MAX_TX_URBS; i++)
priv->tx_contexts[i].echo_index = MAX_TX_URBS;
- priv->cmd_msg_buffer = kzalloc(sizeof(struct usb_8dev_cmd_msg),
- GFP_KERNEL);
+ priv->cmd_msg_buffer = devm_kzalloc(&intf->dev, sizeof(struct usb_8dev_cmd_msg),
+ GFP_KERNEL);
if (!priv->cmd_msg_buffer)
goto cleanup_candev;
@@ -966,7 +966,7 @@ static int usb_8dev_probe(struct usb_int
if (err) {
netdev_err(netdev,
"couldn't register CAN device: %d\n", err);
- goto cleanup_cmd_msg_buffer;
+ goto cleanup_candev;
}
err = usb_8dev_cmd_version(priv, &version);
@@ -987,9 +987,6 @@ static int usb_8dev_probe(struct usb_int
cleanup_unregister_candev:
unregister_netdev(priv->netdev);
-cleanup_cmd_msg_buffer:
- kfree(priv->cmd_msg_buffer);
-
cleanup_candev:
free_candev(netdev);
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:00 +0100 |
| Subject | [PATCH 4.10 120/167] usb: gadget: f_hid: fix: Move IN request allocation to set_alt() |
| Message-ID | <tjpv5-27X-37@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 749494b6bdbbaf0899aa1c62a1ad74cd747bce47 upstream.
Since commit: ba1582f22231 ("usb: gadget: f_hid: use alloc_ep_req()")
we cannot allocate any requests in bind() as we check if we should
align request buffer based on endpoint descriptor which is assigned
in set_alt().
Allocating request in bind() function causes a NULL pointer
dereference.
This commit moves allocation of IN request from bind() to set_alt()
to prevent this issue.
Fixes: ba1582f22231 ("usb: gadget: f_hid: use alloc_ep_req()")
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 | 89 +++++++++++++++++++++++++++---------
1 file changed, 67 insertions(+), 22 deletions(-)
--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -338,6 +338,7 @@ static ssize_t f_hidg_write(struct file
size_t count, loff_t *offp)
{
struct f_hidg *hidg = file->private_data;
+ struct usb_request *req;
unsigned long flags;
ssize_t status = -ENOMEM;
@@ -347,7 +348,7 @@ static ssize_t f_hidg_write(struct file
spin_lock_irqsave(&hidg->write_spinlock, flags);
#define WRITE_COND (!hidg->write_pending)
-
+try_again:
/* write queue */
while (!WRITE_COND) {
spin_unlock_irqrestore(&hidg->write_spinlock, flags);
@@ -362,6 +363,7 @@ static ssize_t f_hidg_write(struct file
}
hidg->write_pending = 1;
+ req = hidg->req;
count = min_t(unsigned, count, hidg->report_length);
spin_unlock_irqrestore(&hidg->write_spinlock, flags);
@@ -374,24 +376,38 @@ static ssize_t f_hidg_write(struct file
goto release_write_pending;
}
- hidg->req->status = 0;
- hidg->req->zero = 0;
- hidg->req->length = count;
- hidg->req->complete = f_hidg_req_complete;
- hidg->req->context = hidg;
+ spin_lock_irqsave(&hidg->write_spinlock, flags);
+
+ /* we our function has been disabled by host */
+ if (!hidg->req) {
+ free_ep_req(hidg->in_ep, hidg->req);
+ /*
+ * TODO
+ * Should we fail with error here?
+ */
+ goto try_again;
+ }
+
+ req->status = 0;
+ req->zero = 0;
+ req->length = count;
+ req->complete = f_hidg_req_complete;
+ req->context = hidg;
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);
- goto release_write_pending;
+ goto release_write_pending_unlocked;
} else {
status = count;
}
+ spin_unlock_irqrestore(&hidg->write_spinlock, flags);
return status;
release_write_pending:
spin_lock_irqsave(&hidg->write_spinlock, flags);
+release_write_pending_unlocked:
hidg->write_pending = 0;
spin_unlock_irqrestore(&hidg->write_spinlock, flags);
@@ -595,12 +611,23 @@ static void hidg_disable(struct usb_func
kfree(list);
}
spin_unlock_irqrestore(&hidg->read_spinlock, flags);
+
+ spin_lock_irqsave(&hidg->write_spinlock, flags);
+ if (!hidg->write_pending) {
+ free_ep_req(hidg->in_ep, hidg->req);
+ hidg->write_pending = 1;
+ }
+
+ hidg->req = NULL;
+ spin_unlock_irqrestore(&hidg->write_spinlock, flags);
}
static int hidg_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
{
struct usb_composite_dev *cdev = f->config->cdev;
struct f_hidg *hidg = func_to_hidg(f);
+ struct usb_request *req_in = NULL;
+ unsigned long flags;
int i, status = 0;
VDBG(cdev, "hidg_set_alt intf:%d alt:%d\n", intf, alt);
@@ -621,6 +648,12 @@ static int hidg_set_alt(struct usb_funct
goto fail;
}
hidg->in_ep->driver_data = hidg;
+
+ req_in = hidg_alloc_ep_req(hidg->in_ep, hidg->report_length);
+ if (!req_in) {
+ status = -ENOMEM;
+ goto disable_ep_in;
+ }
}
@@ -632,12 +665,12 @@ static int hidg_set_alt(struct usb_funct
hidg->out_ep);
if (status) {
ERROR(cdev, "config_ep_by_speed FAILED!\n");
- goto fail;
+ goto free_req_in;
}
status = usb_ep_enable(hidg->out_ep);
if (status < 0) {
ERROR(cdev, "Enable OUT endpoint FAILED!\n");
- goto fail;
+ goto free_req_in;
}
hidg->out_ep->driver_data = hidg;
@@ -653,17 +686,37 @@ static int hidg_set_alt(struct usb_funct
req->context = hidg;
status = usb_ep_queue(hidg->out_ep, req,
GFP_ATOMIC);
- if (status)
+ if (status) {
ERROR(cdev, "%s queue req --> %d\n",
hidg->out_ep->name, status);
+ free_ep_req(hidg->out_ep, req);
+ }
} else {
- usb_ep_disable(hidg->out_ep);
status = -ENOMEM;
- goto fail;
+ goto disable_out_ep;
}
}
}
+ if (hidg->in_ep != NULL) {
+ spin_lock_irqsave(&hidg->write_spinlock, flags);
+ hidg->req = req_in;
+ hidg->write_pending = 0;
+ spin_unlock_irqrestore(&hidg->write_spinlock, flags);
+
+ wake_up(&hidg->write_queue);
+ }
+ return 0;
+disable_out_ep:
+ usb_ep_disable(hidg->out_ep);
+free_req_in:
+ if (req_in)
+ free_ep_req(hidg->in_ep, req_in);
+
+disable_ep_in:
+ if (hidg->in_ep)
+ usb_ep_disable(hidg->in_ep);
+
fail:
return status;
}
@@ -712,12 +765,6 @@ static int hidg_bind(struct usb_configur
goto fail;
hidg->out_ep = ep;
- /* preallocate request and buffer */
- status = -ENOMEM;
- hidg->req = alloc_ep_req(hidg->in_ep, hidg->report_length);
- if (!hidg->req)
- goto fail;
-
/* set descriptor dynamic values */
hidg_interface_desc.bInterfaceSubClass = hidg->bInterfaceSubClass;
hidg_interface_desc.bInterfaceProtocol = hidg->bInterfaceProtocol;
@@ -755,6 +802,8 @@ static int hidg_bind(struct usb_configur
goto fail;
spin_lock_init(&hidg->write_spinlock);
+ hidg->write_pending = 1;
+ hidg->req = NULL;
spin_lock_init(&hidg->read_spinlock);
init_waitqueue_head(&hidg->write_queue);
init_waitqueue_head(&hidg->read_queue);
@@ -1019,10 +1068,6 @@ static void hidg_unbind(struct usb_confi
device_destroy(hidg_class, MKDEV(major, hidg->minor));
cdev_del(&hidg->cdev);
- /* disable/free request and end point */
- usb_ep_disable(hidg->in_ep);
- free_ep_req(hidg->in_ep, hidg->req);
-
usb_free_all_descriptors(f);
}
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:10 +0100 |
| Subject | [PATCH 4.10 061/167] scsi: storvsc: use tagged SRB requests if supported by the device |
| Message-ID | <tjpEJ-2rf-1@gated-at.bofh.it> |
| In reply to | #1596796 |
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Long Li <longli@microsoft.com>
commit 3cd6d3d9b1abab8dcdf0800224ce26daac24eea2 upstream.
Properly set SRB flags when hosting device supports tagged queuing.
This patch improves the performance on Fiber Channel disks.
Signed-off-by: Long Li <longli@microsoft.com>
Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/storvsc_drv.c | 9 +++++++++
1 file changed, 9 insertions(+)
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -136,6 +136,8 @@ struct hv_fc_wwn_packet {
#define SRB_FLAGS_PORT_DRIVER_RESERVED 0x0F000000
#define SRB_FLAGS_CLASS_DRIVER_RESERVED 0xF0000000
+#define SP_UNTAGGED ((unsigned char) ~0)
+#define SRB_SIMPLE_TAG_REQUEST 0x20
/*
* Platform neutral description of a scsi request -
@@ -1451,6 +1453,13 @@ static int storvsc_queuecommand(struct S
vm_srb->win8_extension.srb_flags |=
SRB_FLAGS_DISABLE_SYNCH_TRANSFER;
+ if (scmnd->device->tagged_supported) {
+ vm_srb->win8_extension.srb_flags |=
+ (SRB_FLAGS_QUEUE_ACTION_ENABLE | SRB_FLAGS_NO_QUEUE_FREEZE);
+ vm_srb->win8_extension.queue_tag = SP_UNTAGGED;
+ vm_srb->win8_extension.queue_action = SRB_SIMPLE_TAG_REQUEST;
+ }
+
/* Build the SRB */
switch (scmnd->sc_data_direction) {
case DMA_TO_DEVICE:
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-03-10 11:10 +0100 |
| Subject | [PATCH 4.10 105/167] Revert "arm64: mm: set the contiguous bit for kernel mappings where appropriate" |
| Message-ID | <tjpEJ-2rf-3@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 d81bbe6d882461dec4b71dbe2aa85565fcca4187 upstream.
This reverts commit 0bfc445dec9dd8130d22c9f4476eed7598524129.
When we change the permissions of regions mapped using contiguous
entries, the architecture requires us to follow a Break-Before-Make
strategy, breaking *all* associated entries before we can change any of
the following properties from the entries:
- presence of the contiguous bit
- output address
- attributes
- permissiones
Failure to do so can result in a number of problems (e.g. TLB conflict
aborts and/or erroneous results from TLB lookups).
See ARM DDI 0487A.k_iss10775, "Misprogramming of the Contiguous bit",
page D4-1762.
We do not take this into account when altering the permissions of kernel
segments in mark_rodata_ro(), where we change the permissions of live
contiguous entires one-by-one, leaving them transiently inconsistent.
This has been observed to result in failures on some fast model
configurations.
Unfortunately, we cannot follow Break-Before-Make here as we'd have to
unmap kernel text and data used to perform the sequence.
For the timebeing, revert commit 0bfc445dec9dd813 so as to avoid issues
resulting from this misuse of the contiguous bit.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reported-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@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/mm/mmu.c | 34 ++++------------------------------
1 file changed, 4 insertions(+), 30 deletions(-)
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -108,10 +108,8 @@ static bool pgattr_change_is_safe(u64 ol
static void alloc_init_pte(pmd_t *pmd, unsigned long addr,
unsigned long end, unsigned long pfn,
pgprot_t prot,
- phys_addr_t (*pgtable_alloc)(void),
- bool page_mappings_only)
+ phys_addr_t (*pgtable_alloc)(void))
{
- pgprot_t __prot = prot;
pte_t *pte;
BUG_ON(pmd_sect(*pmd));
@@ -129,18 +127,7 @@ static void alloc_init_pte(pmd_t *pmd, u
do {
pte_t old_pte = *pte;
- /*
- * Set the contiguous bit for the subsequent group of PTEs if
- * its size and alignment are appropriate.
- */
- if (((addr | PFN_PHYS(pfn)) & ~CONT_PTE_MASK) == 0) {
- if (end - addr >= CONT_PTE_SIZE && !page_mappings_only)
- __prot = __pgprot(pgprot_val(prot) | PTE_CONT);
- else
- __prot = prot;
- }
-
- set_pte(pte, pfn_pte(pfn, __prot));
+ set_pte(pte, pfn_pte(pfn, prot));
pfn++;
/*
@@ -159,7 +146,6 @@ static void alloc_init_pmd(pud_t *pud, u
phys_addr_t (*pgtable_alloc)(void),
bool page_mappings_only)
{
- pgprot_t __prot = prot;
pmd_t *pmd;
unsigned long next;
@@ -186,18 +172,7 @@ static void alloc_init_pmd(pud_t *pud, u
/* try section mapping first */
if (((addr | next | phys) & ~SECTION_MASK) == 0 &&
!page_mappings_only) {
- /*
- * Set the contiguous bit for the subsequent group of
- * PMDs if its size and alignment are appropriate.
- */
- if (((addr | phys) & ~CONT_PMD_MASK) == 0) {
- if (end - addr >= CONT_PMD_SIZE)
- __prot = __pgprot(pgprot_val(prot) |
- PTE_CONT);
- else
- __prot = prot;
- }
- pmd_set_huge(pmd, phys, __prot);
+ pmd_set_huge(pmd, phys, prot);
/*
* After the PMD entry has been populated once, we
@@ -207,8 +182,7 @@ static void alloc_init_pmd(pud_t *pud, u
pmd_val(*pmd)));
} else {
alloc_init_pte(pmd, addr, next, __phys_to_pfn(phys),
- prot, pgtable_alloc,
- page_mappings_only);
+ prot, pgtable_alloc);
BUG_ON(pmd_val(old_pmd) != 0 &&
pmd_val(old_pmd) != pmd_val(*pmd));
[toc] | [prev] | [next] | [standalone]
Page 5 of 9 — ← Prev page 1 2 3 4 [5] 6 7 8 9 Next page →
Back to top | Article view | linux.kernel
csiph-web