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


Groups > linux.kernel > #1565558 > unrolled thread

[PATCH 4.9 000/130] 4.9.6-stable review

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2017-01-24 09:10 +0100
Last post2017-01-25 12:10 +0100
Articles 20 on this page of 117 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 4.9 000/130] 4.9.6-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 113/130] mtd: spi-nor: Off by one in cqspi_setup_flash() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 057/130] x86/ioapic: Restore IO-APIC irq_chip retrigger callback Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 102/130] libceph: make sure ceph_aes_crypt() IV is aligned Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 120/130] [media] st-hva: fix some error handling in hva_hw_probe() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 004/130] IB/mlx5: Avoid system crash when enabling many VFs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 062/130] svcrdma: avoid duplicate dma unmapping during error recovery Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 086/130] ARM: dts: dm816x: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 040/130] PCI: designware: Check for iATU unroll only on platforms that use ATU Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 090/130] ARM: dts: omap5: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 059/130] mac80211: implement multicast forwarding on fast-RX path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 068/130] ARM: dts: da850-evm: fix read access to SPI flash Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 122/130] [media] s5p-mfc: Fix clock management in s5p_mfc_release() function Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 050/130] KVM: s390: do not expose random data via facility bitmap Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 006/130] IB/mlx5: Assign SRQ type earlier Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 104/130] xprtrdma: Squelch "max send, max recv" messages at connect time Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 056/130] powerpc: Ignore reserved field in DCSR and PVR reads and writes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 084/130] libceph: remove now unused ceph_*{en,de}crypt*() functions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 096/130] ARM: ux500: fix prcmu_is_cpu_in_wfi() calculation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 064/130] ibmvscsis: Fix sleeping in interrupt context Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 034/130] sunrpc: dont call sleeping functions from the notifier block callbacks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 118/130] [media] gs1662: drop kfree for memory allocated with devm_kzalloc Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 058/130] qla2xxx: Fix crash due to null pointer access Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 103/130] xprtrdma: Make FRWR send queue entry accounting more accurate Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 091/130] ARM: dts: am4372: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 117/130] [media] platform: pxa_camera: add VIDEO_V4L2 dependency Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 125/130] spi: pxa2xx: add missed break Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 060/130] ubifs: Fix journal replay wrt. xattr nodes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 126/130] soc: ti: wkup_m3_ipc: Fix error return code in wkup_m3_ipc_probe() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 129/130] libceph: uninline ceph_crypto_key_destroy() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 106/130] arm64: Fix swiotlb fallback allocation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 127/130] selftest/powerpc: Wrong PMC initialized in pmc56_overflow test Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 124/130] dmaengine: pl330: Fix runtime PM support for terminated transfers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 047/130] mtd: nand: lpc32xx: fix invalid error handling of a requested irq Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 054/130] powerpc/ptrace: Preserve previous fprs/vsrs on short regset write Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 031/130] x86/PCI: Ignore _CRS on Supermicro X8DTH-i/6/iF/6F Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 130/130] libceph: stop allocating a new cipher on every crypto request Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 089/130] ARM: dts: omap4: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 094/130] ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 065/130] ibmvscsis: Fix max transfer length Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 052/130] powerpc/icp-opal: Fix missing KVM case and harden replay Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 114/130] mtd: spi-nor: Fix some error codes in cqspi_setup_flash() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 053/130] powerpc/perf: Fix PM_BRU_CMPL event code for power9 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 032/130] rcu: Remove cond_resched() from Tiny synchronize_sched() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 066/130] ceph: fix bad endianness handling in parse_reply_info_extra Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 109/130] scsi: ses: Fix SAS device detection in enclosure Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 107/130] swiotlb: Convert swiotlb_force from int to enum Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 044/130] mmc: sdhci-acpi: Only powered up enabled acpi child devices Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 116/130] [media] blackfin: check devm_pinctrl_get() for errors Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 039/130] fuse: fix time_to_jiffies nsec sanity check Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 128/130] tools/virtio/ringtest: fix run-on-all.sh for offline cpus Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 119/130] [media] ite-cir: initialize use_demodulator before using it Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 036/130] libnvdimm, namespace: fix pmem namespace leak, delete when size set to zero Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 009/130] IB/mlx4: Fix out-of-range array index in destroy qp flow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:10 +0100
    [PATCH 4.9 083/130] libceph: switch ceph_x_decrypt() to ceph_crypt() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 101/130] ceph: fix endianness bug in frag_tree_split_cmp Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 067/130] ARM: dts: OMAP5 / DRA7: indicate that SATA port 0 is available. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 081/130] libceph: tweak calcu_signature() a little Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 100/130] ceph: fix endianness of getattr mask in ceph_d_revalidate Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 110/130] scsi: mpt3sas: fix hang on ata passthrough commands Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 080/130] libceph: rename and align ceph_x_authorizer::reply_buf Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 085/130] ARM: dts: dra7: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 046/130] ieee802154: atusb: do not use the stack for buffers to make them DMA able Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 087/130] ARM: dts: dm814x: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 105/130] arm64: mm: avoid name clash in __page_to_voff() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 099/130] ceph: fix ceph_get_caps() interruption Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 045/130] mmc: mxs-mmc: Fix additional cycles after transmission stop Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 093/130] ARM: dts: omap2: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 115/130] rpmsg: virtio_rpmsg_bus: fix channel creation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 063/130] ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 095/130] ARM: dts: omap3: Fix Card Detect and Write Protect on Logic PD SOM-LV Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 112/130] PM / devfreq: Fix the bug of devfreq_add_device when governor is NULL Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 088/130] ARM: dts: am33xx: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 098/130] ceph: fix scheduler warning due to nested blocking Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 092/130] ARM: dts: omap3: Add an empty chosen node to top level DTSI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 043/130] HID: corsair: fix control-transfer error handling Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 111/130] PM / devfreq: exynos-bus: Fix the wrong return value Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:20 +0100
    [PATCH 4.9 041/130] PCI: Enumerate switches below PCI-to-PCIe bridges Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 070/130] arm64/ptrace: Preserve previous registers for short regset write Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 008/130] IB/mlx4: Set traffic class in AH Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 030/130] tmpfs: clear S_ISGID when setting posix ACLs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 042/130] HID: corsair: fix DMA buffers on stack Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 007/130] IB/mlx5: Wait for all async command completions to complete Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 048/130] mtd: nand: xway: disable module support Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 076/130] libceph: ceph_x_encrypt_buflen() takes in_len Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 055/130] powerpc/ptrace: Preserve previous TM fprs/vsrs on short regset write Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 071/130] arm64/ptrace: Preserve previous registers for short regset write - 2 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 077/130] libceph: old_key in process_one_ticket() is redundant Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 020/130] perf scripting: Avoid leaking the scripting_context variable Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 073/130] arm64/ptrace: Avoid uninitialised struct padding in fpr_set() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 016/130] perf mem: Fix --all-user/--all-kernel options Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 029/130] ARM: dts: omap3: Add DTS for Logic PD SOM-LV 37xx Dev Kit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 072/130] arm64/ptrace: Preserve previous registers for short regset write - 3 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 079/130] libceph: introduce ceph_crypt() for in-place en/decryption Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 074/130] arm64/ptrace: Reject attempts to set incomplete hardware breakpoint fields Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 019/130] perf callchain: Fixup help/config for no-unwinding Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 025/130] ARM: dts: imx6q-cm-fx6: fix fec pinctrl Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 069/130] arm64: avoid returning from bad_mode Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 049/130] mtd: nand: xway: fix build because of module functions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 033/130] rcu: Narrow early boot window of illegal synchronous grace periods Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 038/130] fuse: clear FR_PENDING flag when moving requests out of pending queue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 051/130] KVM: arm/arm64: vgic: Fix deadlock on error handling Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 003/130] IB/rxe: avoid putting a large struct rxe_qp on stack Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 037/130] ARC: module: Fix !CONFIG_ARC_DW2_UNWIND builds Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 005/130] IB/mlx5: Fix reported max SGE calculation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 035/130] svcrpc: dont leak contexts on PROC_DESTROY Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:30 +0100
    [PATCH 4.9 024/130] ARM: dts: r8a7794: remove Z clock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:40 +0100
    [PATCH 4.9 021/130] perf jit: Enable jitdump support without dwarf Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:40 +0100
    [PATCH 4.9 014/130] IB/IPoIB: Remove cant use GFP_NOIO warning Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:40 +0100
    [PATCH 4.9 012/130] IB/mlx4: When no DMFS for IPoIB, dont allow NET_IF QPs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:40 +0100
    [PATCH 4.9 026/130] ARM: dts: imx31: fix clock control module interrupts description Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:40 +0100
    [PATCH 4.9 013/130] IB/mlx4: Check if GRH is available before using it Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:40 +0100
    [PATCH 4.9 023/130] ARM: dts: r8a7794: Use SYSC "always-on" PM Domain for sound Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-24 09:40 +0100
    Re: [PATCH 4.9 000/130] 4.9.6-stable review Shuah Khan <shuah.kh@samsung.com> - 2017-01-24 19:30 +0100
      Re: [PATCH 4.9 000/130] 4.9.6-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-25 12:10 +0100
    Re: [PATCH 4.9 000/130] 4.9.6-stable review Guenter Roeck <linux@roeck-us.net> - 2017-01-24 20:10 +0100
      Re: [PATCH 4.9 000/130] 4.9.6-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-25 12:10 +0100

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


#1565579 — [PATCH 4.9 034/130] sunrpc: dont call sleeping functions from the notifier block callbacks

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 034/130] sunrpc: dont call sleeping functions from the notifier block callbacks
Message-ID<t34kX-1Ml-63@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Scott Mayhew <smayhew@redhat.com>

commit 546125d1614264d26080817d0c8cddb9b25081fa upstream.

The inet6addr_chain is an atomic notifier chain, so we can't call
anything that might sleep (like lock_sock)... instead of closing the
socket from svc_age_temp_xprts_now (which is called by the notifier
function), just have the rpc service threads do it instead.

Fixes: c3d4879e01be "sunrpc: Add a function to close..."
Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/sunrpc/svc_xprt.h |    1 +
 net/sunrpc/svc_xprt.c           |   10 +++++++---
 2 files changed, 8 insertions(+), 3 deletions(-)

--- a/include/linux/sunrpc/svc_xprt.h
+++ b/include/linux/sunrpc/svc_xprt.h
@@ -66,6 +66,7 @@ struct svc_xprt {
 #define XPT_LISTENER	10		/* listening endpoint */
 #define XPT_CACHE_AUTH	11		/* cache auth info */
 #define XPT_LOCAL	12		/* connection from loopback interface */
+#define XPT_KILL_TEMP   13		/* call xpo_kill_temp_xprt before closing */
 
 	struct svc_serv		*xpt_server;	/* service for transport */
 	atomic_t    	    	xpt_reserved;	/* space on outq that is rsvd */
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -799,6 +799,8 @@ static int svc_handle_xprt(struct svc_rq
 
 	if (test_bit(XPT_CLOSE, &xprt->xpt_flags)) {
 		dprintk("svc_recv: found XPT_CLOSE\n");
+		if (test_and_clear_bit(XPT_KILL_TEMP, &xprt->xpt_flags))
+			xprt->xpt_ops->xpo_kill_temp_xprt(xprt);
 		svc_delete_xprt(xprt);
 		/* Leave XPT_BUSY set on the dead xprt: */
 		goto out;
@@ -1020,9 +1022,11 @@ void svc_age_temp_xprts_now(struct svc_s
 		le = to_be_closed.next;
 		list_del_init(le);
 		xprt = list_entry(le, struct svc_xprt, xpt_list);
-		dprintk("svc_age_temp_xprts_now: closing %p\n", xprt);
-		xprt->xpt_ops->xpo_kill_temp_xprt(xprt);
-		svc_close_xprt(xprt);
+		set_bit(XPT_CLOSE, &xprt->xpt_flags);
+		set_bit(XPT_KILL_TEMP, &xprt->xpt_flags);
+		dprintk("svc_age_temp_xprts_now: queuing xprt %p for closing\n",
+				xprt);
+		svc_xprt_enqueue(xprt);
 	}
 }
 EXPORT_SYMBOL_GPL(svc_age_temp_xprts_now);

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


#1565580 — [PATCH 4.9 118/130] [media] gs1662: drop kfree for memory allocated with devm_kzalloc

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 118/130] [media] gs1662: drop kfree for memory allocated with devm_kzalloc
Message-ID<t34kX-1Ml-61@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Wei Yongjun <weiyongjun1@huawei.com>

commit df94121f02ecce435d6b5277071eb94b764caa89 upstream.

It's not necessary to free memory allocated with devm_kzalloc
and using kfree leads to a double free.

Fixes: 7aae6e2df127 ("[media] Add GS1662 driver, a video serializer")

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/spi/gs1662.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/media/spi/gs1662.c
+++ b/drivers/media/spi/gs1662.c
@@ -453,10 +453,9 @@ static int gs_probe(struct spi_device *s
 static int gs_remove(struct spi_device *spi)
 {
 	struct v4l2_subdev *sd = spi_get_drvdata(spi);
-	struct gs *gs = to_gs(sd);
 
 	v4l2_device_unregister_subdev(sd);
-	kfree(gs);
+
 	return 0;
 }
 

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


#1565581 — [PATCH 4.9 058/130] qla2xxx: Fix crash due to null pointer access

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 058/130] qla2xxx: Fix crash due to null pointer access
Message-ID<t34kY-1Ml-65@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Quinn Tran <quinn.tran@cavium.com>

commit fc1ffd6cb38a1c1af625b9833c41928039e733f5 upstream.

During code inspection, while investigating following stack trace
seen on one of the test setup, we found out there was possibility
of memory leak becuase driver was not unwinding the stack properly.

This issue has not been reproduced in a test environment or on a
customer setup.

Here's stack trace that was seen.

[1469877.797315] Call Trace:
[1469877.799940]  [<ffffffffa03ab6e9>] qla2x00_mem_alloc+0xb09/0x10c0 [qla2xxx]
[1469877.806980]  [<ffffffffa03ac50a>] qla2x00_probe_one+0x86a/0x1b50 [qla2xxx]
[1469877.814013]  [<ffffffff813b6d01>] ? __pm_runtime_resume+0x51/0xa0
[1469877.820265]  [<ffffffff8157c1f5>] ? _raw_spin_lock_irqsave+0x25/0x90
[1469877.826776]  [<ffffffff8157cd2d>] ? _raw_spin_unlock_irqrestore+0x6d/0x80
[1469877.833720]  [<ffffffff810741d1>] ? preempt_count_sub+0xb1/0x100
[1469877.839885]  [<ffffffff8157cd0c>] ? _raw_spin_unlock_irqrestore+0x4c/0x80
[1469877.846830]  [<ffffffff81319b9c>] local_pci_probe+0x4c/0xb0
[1469877.852562]  [<ffffffff810741d1>] ? preempt_count_sub+0xb1/0x100
[1469877.858727]  [<ffffffff81319c89>] pci_call_probe+0x89/0xb0

Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
[ bvanassche: Fixed spelling in patch description ]
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -3489,7 +3489,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha
 				sizeof(struct ct6_dsd), 0,
 				SLAB_HWCACHE_ALIGN, NULL);
 			if (!ctx_cachep)
-				goto fail_free_gid_list;
+				goto fail_free_srb_mempool;
 		}
 		ha->ctx_mempool = mempool_create_slab_pool(SRB_MIN_REQ,
 			ctx_cachep);
@@ -3642,7 +3642,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha
 	ha->loop_id_map = kzalloc(BITS_TO_LONGS(LOOPID_MAP_SIZE) * sizeof(long),
 	    GFP_KERNEL);
 	if (!ha->loop_id_map)
-		goto fail_async_pd;
+		goto fail_loop_id_map;
 	else {
 		qla2x00_set_reserved_loop_ids(ha);
 		ql_dbg_pci(ql_dbg_init, ha->pdev, 0x0123,
@@ -3651,6 +3651,8 @@ qla2x00_mem_alloc(struct qla_hw_data *ha
 
 	return 0;
 
+fail_loop_id_map:
+	dma_pool_free(ha->s_dma_pool, ha->async_pd, ha->async_pd_dma);
 fail_async_pd:
 	dma_pool_free(ha->s_dma_pool, ha->ex_init_cb, ha->ex_init_cb_dma);
 fail_ex_init_cb:
@@ -3678,6 +3680,10 @@ fail_free_ms_iocb:
 	dma_pool_free(ha->s_dma_pool, ha->ms_iocb, ha->ms_iocb_dma);
 	ha->ms_iocb = NULL;
 	ha->ms_iocb_dma = 0;
+
+	if (ha->sns_cmd)
+		dma_free_coherent(&ha->pdev->dev, sizeof(struct sns_cmd_pkt),
+		    ha->sns_cmd, ha->sns_cmd_dma);
 fail_dma_pool:
 	if (IS_QLA82XX(ha) || ql2xenabledif) {
 		dma_pool_destroy(ha->fcp_cmnd_dma_pool);
@@ -3695,10 +3701,12 @@ fail_free_nvram:
 	kfree(ha->nvram);
 	ha->nvram = NULL;
 fail_free_ctx_mempool:
-	mempool_destroy(ha->ctx_mempool);
+	if (ha->ctx_mempool)
+		mempool_destroy(ha->ctx_mempool);
 	ha->ctx_mempool = NULL;
 fail_free_srb_mempool:
-	mempool_destroy(ha->srb_mempool);
+	if (ha->srb_mempool)
+		mempool_destroy(ha->srb_mempool);
 	ha->srb_mempool = NULL;
 fail_free_gid_list:
 	dma_free_coherent(&ha->pdev->dev, qla2x00_gid_list_size(ha),

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


#1565582 — [PATCH 4.9 103/130] xprtrdma: Make FRWR send queue entry accounting more accurate

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 103/130] xprtrdma: Make FRWR send queue entry accounting more accurate
Message-ID<t34kY-1Ml-69@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Chuck Lever <chuck.lever@oracle.com>

commit 8d38de65644d900199f035277aa5f3da4aa9fc17 upstream.

Verbs providers may perform house-keeping on the Send Queue during
each signaled send completion. It is necessary therefore for a verbs
consumer (like xprtrdma) to occasionally force a signaled send
completion if it runs unsignaled most of the time.

xprtrdma does not require signaled completions for Send or FastReg
Work Requests, but does signal some LocalInv Work Requests. To
ensure that Send Queue house-keeping can run before the Send Queue
is more than half-consumed, xprtrdma forces a signaled completion
on occasion by counting the number of Send Queue Entries it
consumes. It currently does this by counting each ib_post_send as
one Entry.

Commit c9918ff56dfb ("xprtrdma: Add ro_unmap_sync method for FRWR")
introduced the ability for frwr_op_unmap_sync to post more than one
Work Request with a single post_send. Thus the underlying assumption
of one Send Queue Entry per ib_post_send is no longer true.

Also, FastReg Work Requests are currently never signaled. They
should be signaled once in a while, just as Send is, to keep the
accounting of consumed SQEs accurate.

While we're here, convert the CQCOUNT macros to the currently
preferred kernel coding style, which is inline functions.

Fixes: c9918ff56dfb ("xprtrdma: Add ro_unmap_sync method for FRWR")
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/frwr_ops.c  |   13 ++++++++++---
 net/sunrpc/xprtrdma/verbs.c     |   10 ++--------
 net/sunrpc/xprtrdma/xprt_rdma.h |   20 ++++++++++++++++++--
 3 files changed, 30 insertions(+), 13 deletions(-)

--- a/net/sunrpc/xprtrdma/frwr_ops.c
+++ b/net/sunrpc/xprtrdma/frwr_ops.c
@@ -421,7 +421,7 @@ frwr_op_map(struct rpcrdma_xprt *r_xprt,
 			 IB_ACCESS_REMOTE_WRITE | IB_ACCESS_LOCAL_WRITE :
 			 IB_ACCESS_REMOTE_READ;
 
-	DECR_CQCOUNT(&r_xprt->rx_ep);
+	rpcrdma_set_signaled(&r_xprt->rx_ep, &reg_wr->wr);
 	rc = ib_post_send(ia->ri_id->qp, &reg_wr->wr, &bad_wr);
 	if (rc)
 		goto out_senderr;
@@ -486,7 +486,7 @@ frwr_op_unmap_sync(struct rpcrdma_xprt *
 	struct rpcrdma_ia *ia = &r_xprt->rx_ia;
 	struct rpcrdma_mw *mw, *tmp;
 	struct rpcrdma_frmr *f;
-	int rc;
+	int count, rc;
 
 	dprintk("RPC:       %s: req %p\n", __func__, req);
 
@@ -496,6 +496,7 @@ frwr_op_unmap_sync(struct rpcrdma_xprt *
 	 * a single ib_post_send() call.
 	 */
 	f = NULL;
+	count = 0;
 	invalidate_wrs = pos = prev = NULL;
 	list_for_each_entry(mw, &req->rl_registered, mw_list) {
 		if ((rep->rr_wc_flags & IB_WC_WITH_INVALIDATE) &&
@@ -505,6 +506,7 @@ frwr_op_unmap_sync(struct rpcrdma_xprt *
 		}
 
 		pos = __frwr_prepare_linv_wr(mw);
+		count++;
 
 		if (!invalidate_wrs)
 			invalidate_wrs = pos;
@@ -523,7 +525,12 @@ frwr_op_unmap_sync(struct rpcrdma_xprt *
 	f->fr_invwr.send_flags = IB_SEND_SIGNALED;
 	f->fr_cqe.done = frwr_wc_localinv_wake;
 	reinit_completion(&f->fr_linv_done);
-	INIT_CQCOUNT(&r_xprt->rx_ep);
+
+	/* Initialize CQ count, since there is always a signaled
+	 * WR being posted here.  The new cqcount depends on how
+	 * many SQEs are about to be consumed.
+	 */
+	rpcrdma_init_cqcount(&r_xprt->rx_ep, count);
 
 	/* Transport disconnect drains the receive CQ before it
 	 * replaces the QP. The RPC reply handler won't call us
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -532,7 +532,7 @@ rpcrdma_ep_create(struct rpcrdma_ep *ep,
 	ep->rep_cqinit = ep->rep_attr.cap.max_send_wr/2 - 1;
 	if (ep->rep_cqinit <= 2)
 		ep->rep_cqinit = 0;	/* always signal? */
-	INIT_CQCOUNT(ep);
+	rpcrdma_init_cqcount(ep, 0);
 	init_waitqueue_head(&ep->rep_connect_wait);
 	INIT_DELAYED_WORK(&ep->rep_connect_worker, rpcrdma_connect_worker);
 
@@ -1311,13 +1311,7 @@ rpcrdma_ep_post(struct rpcrdma_ia *ia,
 	dprintk("RPC:       %s: posting %d s/g entries\n",
 		__func__, send_wr->num_sge);
 
-	if (DECR_CQCOUNT(ep) > 0)
-		send_wr->send_flags = 0;
-	else { /* Provider must take a send completion every now and then */
-		INIT_CQCOUNT(ep);
-		send_wr->send_flags = IB_SEND_SIGNALED;
-	}
-
+	rpcrdma_set_signaled(ep, send_wr);
 	rc = ib_post_send(ia->ri_id->qp, send_wr, &send_wr_fail);
 	if (rc)
 		goto out_postsend_err;
--- a/net/sunrpc/xprtrdma/xprt_rdma.h
+++ b/net/sunrpc/xprtrdma/xprt_rdma.h
@@ -95,8 +95,24 @@ struct rpcrdma_ep {
 	struct delayed_work	rep_connect_worker;
 };
 
-#define INIT_CQCOUNT(ep) atomic_set(&(ep)->rep_cqcount, (ep)->rep_cqinit)
-#define DECR_CQCOUNT(ep) atomic_sub_return(1, &(ep)->rep_cqcount)
+static inline void
+rpcrdma_init_cqcount(struct rpcrdma_ep *ep, int count)
+{
+	atomic_set(&ep->rep_cqcount, ep->rep_cqinit - count);
+}
+
+/* To update send queue accounting, provider must take a
+ * send completion every now and then.
+ */
+static inline void
+rpcrdma_set_signaled(struct rpcrdma_ep *ep, struct ib_send_wr *send_wr)
+{
+	send_wr->send_flags = 0;
+	if (unlikely(atomic_sub_return(1, &ep->rep_cqcount) <= 0)) {
+		rpcrdma_init_cqcount(ep, 0);
+		send_wr->send_flags = IB_SEND_SIGNALED;
+	}
+}
 
 /* Pre-allocate extra Work Requests for handling backward receives
  * and sends. This is a fixed value because the Work Queues are

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


#1565583 — [PATCH 4.9 091/130] ARM: dts: am4372: Add an empty chosen node to top level DTSI

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 091/130] ARM: dts: am4372: Add an empty chosen node to top level DTSI
Message-ID<t34kY-1Ml-71@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Javier Martinez Canillas <javier@osg.samsung.com>

commit ce95077d0cdfcc8e40dea10a1680249831ccec77 upstream.

Commit 75813028bbd7 ("ARM: dts: am4372: Remove skeleton.dtsi usage")
removed the skeleton.dtsi usage since we want to get rid of it.

But this can cause issues when booting a kernel with a boot-loader
that doesn't create a chosen node if this isn't present in the DTB
since the decompressor relies on a pre-existing chosen node to be
available to insert the command line and merge other ATAGS info.

Fixes: 75813028bbd7 ("ARM: dts: am4372: Remove skeleton.dtsi usage")
Reported-by: Pali Rohar <pali.rohar@gmail.com>
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/boot/dts/am4372.dtsi |    1 +
 1 file changed, 1 insertion(+)

--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -16,6 +16,7 @@
 	interrupt-parent = <&wakeupgen>;
 	#address-cells = <1>;
 	#size-cells = <1>;
+	chosen { };
 
 	memory@0 {
 		device_type = "memory";

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


#1565584 — [PATCH 4.9 117/130] [media] platform: pxa_camera: add VIDEO_V4L2 dependency

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 117/130] [media] platform: pxa_camera: add VIDEO_V4L2 dependency
Message-ID<t34kY-1Ml-67@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Arnd Bergmann <arnd@arndb.de>

commit ff681022c6639c194fbb6893c50ace9e52a44788 upstream.

Moving the pxa_camera driver from soc_camera lots the implied
VIDEO_V4L2 Kconfig dependency, and building the driver without
V4L2 results in a kernel that cannot link:

drivers/media/platform/pxa_camera.o: In function `pxa_camera_remove':
pxa_camera.c:(.text.pxa_camera_remove+0x10): undefined reference to `v4l2_clk_unregister'
pxa_camera.c:(.text.pxa_camera_remove+0x18): undefined reference to `v4l2_device_unregister'
drivers/media/platform/pxa_camera.o: In function `pxa_camera_probe':
pxa_camera.c:(.text.pxa_camera_probe+0x458): undefined reference to `v4l2_of_parse_endpoint'
drivers/media/v4l2-core/videobuf2-core.o: In function `__enqueue_in_driver':
drivers/media/v4l2-core/videobuf2-core.o: In function `vb2_core_streamon':
videobuf2-core.c:(.text.vb2_core_streamon+0x1b4): undefined reference to `v4l_vb2q_enable_media_source'
drivers/media/v4l2-core/videobuf2-v4l2.o: In function `vb2_ioctl_reqbufs':
videobuf2-v4l2.c:(.text.vb2_ioctl_reqbufs+0xc): undefined reference to `video_devdata'

This adds back an explicit dependency.

Fixes: 3050b9985024 ("[media] media: platform: pxa_camera: move pxa_camera out of soc_camera")

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/platform/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -93,7 +93,7 @@ config VIDEO_OMAP3_DEBUG
 
 config VIDEO_PXA27x
 	tristate "PXA27x Quick Capture Interface driver"
-	depends on VIDEO_DEV && HAS_DMA
+	depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA
 	depends on PXA27x || COMPILE_TEST
 	select VIDEOBUF2_DMA_SG
 	select SG_SPLIT

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


#1565585 — [PATCH 4.9 125/130] spi: pxa2xx: add missed break

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 125/130] spi: pxa2xx: add missed break
Message-ID<t34kY-1Ml-73@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

commit a2dd8af00ca7fff4972425a4a6b19dd1840dc807 upstream.

The commit 7c7289a40425 ("spi: pxa2xx: Default thresholds to PXA
configuration") while splitting up CE4100 code obviously missed a break
condition in one chunk. Add it here.

Looks like we have no active user of CE4100, though better to fix this later
than never.

Fixes: commit 7c7289a40425 ("spi: pxa2xx: Default thresholds to PXA configuration")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1690,6 +1690,7 @@ static int pxa2xx_spi_probe(struct platf
 		pxa2xx_spi_write(drv_data, SSCR1, tmp);
 		tmp = SSCR0_SCR(2) | SSCR0_Motorola | SSCR0_DataSize(8);
 		pxa2xx_spi_write(drv_data, SSCR0, tmp);
+		break;
 	default:
 		tmp = SSCR1_RxTresh(RX_THRESH_DFLT) |
 		      SSCR1_TxTresh(TX_THRESH_DFLT);

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


#1565586 — [PATCH 4.9 060/130] ubifs: Fix journal replay wrt. xattr nodes

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 060/130] ubifs: Fix journal replay wrt. xattr nodes
Message-ID<t34kY-1Ml-77@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Richard Weinberger <richard@nod.at>

commit 1cb51a15b576ee325d527726afff40947218fd5e upstream.

When replaying the journal it can happen that a journal entry points to
a garbage collected node.
This is the case when a power-cut occurred between a garbage collect run
and a commit. In such a case nodes have to be read using the failable
read functions to detect whether the found node matches what we expect.

One corner case was forgotten, when the journal contains an entry to
remove an inode all xattrs have to be removed too. UBIFS models xattr
like directory entries, so the TNC code iterates over
all xattrs of the inode and removes them too. This code re-uses the
functions for walking directories and calls ubifs_tnc_next_ent().
ubifs_tnc_next_ent() expects to be used only after the journal and
aborts when a node does not match the expected result. This behavior can
render an UBIFS volume unmountable after a power-cut when xattrs are
used.

Fix this issue by using failable read functions in ubifs_tnc_next_ent()
too when replaying the journal.
Fixes: 1e51764a3c2ac05a ("UBIFS: add new flash file system")
Reported-by: Rock Lee <rockdotlee@gmail.com>
Reviewed-by: David Gstir <david@sigma-star.at>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ubifs/tnc.c |   25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

--- a/fs/ubifs/tnc.c
+++ b/fs/ubifs/tnc.c
@@ -34,6 +34,11 @@
 #include <linux/slab.h>
 #include "ubifs.h"
 
+static int try_read_node(const struct ubifs_info *c, void *buf, int type,
+			 int len, int lnum, int offs);
+static int fallible_read_node(struct ubifs_info *c, const union ubifs_key *key,
+			      struct ubifs_zbranch *zbr, void *node);
+
 /*
  * Returned codes of 'matches_name()' and 'fallible_matches_name()' functions.
  * @NAME_LESS: name corresponding to the first argument is less than second
@@ -402,7 +407,19 @@ static int tnc_read_node_nm(struct ubifs
 		return 0;
 	}
 
-	err = ubifs_tnc_read_node(c, zbr, node);
+	if (c->replaying) {
+		err = fallible_read_node(c, &zbr->key, zbr, node);
+		/*
+		 * When the node was not found, return -ENOENT, 0 otherwise.
+		 * Negative return codes stay as-is.
+		 */
+		if (err == 0)
+			err = -ENOENT;
+		else if (err == 1)
+			err = 0;
+	} else {
+		err = ubifs_tnc_read_node(c, zbr, node);
+	}
 	if (err)
 		return err;
 
@@ -2766,7 +2783,11 @@ struct ubifs_dent_node *ubifs_tnc_next_e
 	if (nm->name) {
 		if (err) {
 			/* Handle collisions */
-			err = resolve_collision(c, key, &znode, &n, nm);
+			if (c->replaying)
+				err = fallible_resolve_collision(c, key, &znode, &n,
+							 nm, 0);
+			else
+				err = resolve_collision(c, key, &znode, &n, nm);
 			dbg_tnc("rc returned %d, znode %p, n %d",
 				err, znode, n);
 			if (unlikely(err < 0))

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


#1565587 — [PATCH 4.9 126/130] soc: ti: wkup_m3_ipc: Fix error return code in wkup_m3_ipc_probe()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 126/130] soc: ti: wkup_m3_ipc: Fix error return code in wkup_m3_ipc_probe()
Message-ID<t34kY-1Ml-83@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Wei Yongjun <weiyongjun1@huawei.com>

commit 36b29eb30ee0f6c99f06bea406c23a3fd4cbb80b upstream.

Fix to return a negative error code from the kthread_run() error
handling case instead of 0, as done elsewhere in this function.

Fixes: cdd5de500b2c ("soc: ti: Add wkup_m3_ipc driver")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/soc/ti/wkup_m3_ipc.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/soc/ti/wkup_m3_ipc.c
+++ b/drivers/soc/ti/wkup_m3_ipc.c
@@ -459,6 +459,7 @@ static int wkup_m3_ipc_probe(struct plat
 
 	if (IS_ERR(task)) {
 		dev_err(dev, "can't create rproc_boot thread\n");
+		ret = PTR_ERR(task);
 		goto err_put_rproc;
 	}
 

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


#1565588 — [PATCH 4.9 129/130] libceph: uninline ceph_crypto_key_destroy()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 129/130] libceph: uninline ceph_crypto_key_destroy()
Message-ID<t34kY-1Ml-75@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Ilya Dryomov <idryomov@gmail.com>

commit 6db2304aabb070261ad34923bfd83c43dfb000e3 upstream.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/ceph/crypto.c |    8 ++++++++
 net/ceph/crypto.h |    9 +--------
 2 files changed, 9 insertions(+), 8 deletions(-)

--- a/net/ceph/crypto.c
+++ b/net/ceph/crypto.c
@@ -80,6 +80,14 @@ int ceph_crypto_key_unarmor(struct ceph_
 	return 0;
 }
 
+void ceph_crypto_key_destroy(struct ceph_crypto_key *key)
+{
+	if (key) {
+		kfree(key->key);
+		key->key = NULL;
+	}
+}
+
 static struct crypto_skcipher *ceph_crypto_alloc_cipher(void)
 {
 	return crypto_alloc_skcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC);
--- a/net/ceph/crypto.h
+++ b/net/ceph/crypto.h
@@ -14,19 +14,12 @@ struct ceph_crypto_key {
 	void *key;
 };
 
-static inline void ceph_crypto_key_destroy(struct ceph_crypto_key *key)
-{
-	if (key) {
-		kfree(key->key);
-		key->key = NULL;
-	}
-}
-
 int ceph_crypto_key_clone(struct ceph_crypto_key *dst,
 			  const struct ceph_crypto_key *src);
 int ceph_crypto_key_encode(struct ceph_crypto_key *key, void **p, void *end);
 int ceph_crypto_key_decode(struct ceph_crypto_key *key, void **p, void *end);
 int ceph_crypto_key_unarmor(struct ceph_crypto_key *key, const char *in);
+void ceph_crypto_key_destroy(struct ceph_crypto_key *key);
 
 /* crypto.c */
 int ceph_crypt(const struct ceph_crypto_key *key, bool encrypt,

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


#1565589 — [PATCH 4.9 106/130] arm64: Fix swiotlb fallback allocation

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 106/130] arm64: Fix swiotlb fallback allocation
Message-ID<t34kY-1Ml-79@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Alexander Graf <agraf@suse.de>

commit 524dabe1c68e0bca25ce7b108099e5d89472a101 upstream.

Commit b67a8b29df introduced logic to skip swiotlb allocation when all memory
is DMA accessible anyway.

While this is a great idea, __dma_alloc still calls swiotlb code unconditionally
to allocate memory when there is no CMA memory available. The swiotlb code is
called to ensure that we at least try get_free_pages().

Without initialization, swiotlb allocation code tries to access io_tlb_list
which is NULL. That results in a stack trace like this:

  Unable to handle kernel NULL pointer dereference at virtual address 00000000
  [...]
  [<ffff00000845b908>] swiotlb_tbl_map_single+0xd0/0x2b0
  [<ffff00000845be94>] swiotlb_alloc_coherent+0x10c/0x198
  [<ffff000008099dc0>] __dma_alloc+0x68/0x1a8
  [<ffff000000a1b410>] drm_gem_cma_create+0x98/0x108 [drm]
  [<ffff000000abcaac>] drm_fbdev_cma_create_with_funcs+0xbc/0x368 [drm_kms_helper]
  [<ffff000000abcd84>] drm_fbdev_cma_create+0x2c/0x40 [drm_kms_helper]
  [<ffff000000abc040>] drm_fb_helper_initial_config+0x238/0x410 [drm_kms_helper]
  [<ffff000000abce88>] drm_fbdev_cma_init_with_funcs+0x98/0x160 [drm_kms_helper]
  [<ffff000000abcf90>] drm_fbdev_cma_init+0x40/0x58 [drm_kms_helper]
  [<ffff000000b47980>] vc4_kms_load+0x90/0xf0 [vc4]
  [<ffff000000b46a94>] vc4_drm_bind+0xec/0x168 [vc4]
  [...]

Thankfully swiotlb code just learned how to not do allocations with the FORCE_NO
option. This patch configures the swiotlb code to use that if we decide not to
initialize the swiotlb framework.

Fixes: b67a8b29df ("arm64: mm: only initialize swiotlb when necessary")
Signed-off-by: Alexander Graf <agraf@suse.de>
CC: Jisheng Zhang <jszhang@marvell.com>
CC: Geert Uytterhoeven <geert+renesas@glider.be>
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/mm/init.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -403,6 +403,8 @@ void __init mem_init(void)
 {
 	if (swiotlb_force || max_pfn > (arm64_dma_phys_limit >> PAGE_SHIFT))
 		swiotlb_init(1);
+	else
+		swiotlb_force = SWIOTLB_NO_FORCE;
 
 	set_max_mapnr(pfn_to_page(max_pfn) - mem_map);
 

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


#1565590 — [PATCH 4.9 127/130] selftest/powerpc: Wrong PMC initialized in pmc56_overflow test

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 127/130] selftest/powerpc: Wrong PMC initialized in pmc56_overflow test
Message-ID<t34kZ-1Ml-91@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>

commit df21d2fa733035e4d414379960f94b2516b41296 upstream.

Test uses PMC2 to count the event. But PMC1 is being initialized.
Patch to fix it.

Fixes: 3752e453f6ba ('selftests/powerpc: Add tests of PMU EBBs')
Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 tools/testing/selftests/powerpc/pmu/ebb/pmc56_overflow_test.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/tools/testing/selftests/powerpc/pmu/ebb/pmc56_overflow_test.c
+++ b/tools/testing/selftests/powerpc/pmu/ebb/pmc56_overflow_test.c
@@ -66,7 +66,7 @@ int pmc56_overflow(void)
 
 	FAIL_IF(ebb_event_enable(&event));
 
-	mtspr(SPRN_PMC1, pmc_sample_period(sample_period));
+	mtspr(SPRN_PMC2, pmc_sample_period(sample_period));
 	mtspr(SPRN_PMC5, 0);
 	mtspr(SPRN_PMC6, 0);
 

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


#1565591 — [PATCH 4.9 124/130] dmaengine: pl330: Fix runtime PM support for terminated transfers

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 124/130] dmaengine: pl330: Fix runtime PM support for terminated transfers
Message-ID<t34kY-1Ml-81@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Marek Szyprowski <m.szyprowski@samsung.com>

commit 5c9e6c2b2ba3ec3a442e2fb5b4286498f8b4dcb7 upstream.

PL330 DMA engine driver is leaking a runtime reference after any terminated
DMA transactions. This patch fixes this issue by tracking runtime PM state
of the device and making additional call to pm_runtime_put() in terminate_all
callback if needed.

Fixes: ae43b3289186 ("ARM: 8202/1: dmaengine: pl330: Add runtime Power Management support v12")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/dma/pl330.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -448,6 +448,9 @@ struct dma_pl330_chan {
 
 	/* for cyclic capability */
 	bool cyclic;
+
+	/* for runtime pm tracking */
+	bool active;
 };
 
 struct pl330_dmac {
@@ -2031,6 +2034,7 @@ static void pl330_tasklet(unsigned long
 		_stop(pch->thread);
 		spin_unlock(&pch->thread->dmac->lock);
 		power_down = true;
+		pch->active = false;
 	} else {
 		/* Make sure the PL330 Channel thread is active */
 		spin_lock(&pch->thread->dmac->lock);
@@ -2050,6 +2054,7 @@ static void pl330_tasklet(unsigned long
 			desc->status = PREP;
 			list_move_tail(&desc->node, &pch->work_list);
 			if (power_down) {
+				pch->active = true;
 				spin_lock(&pch->thread->dmac->lock);
 				_start(pch->thread);
 				spin_unlock(&pch->thread->dmac->lock);
@@ -2164,6 +2169,7 @@ static int pl330_terminate_all(struct dm
 	unsigned long flags;
 	struct pl330_dmac *pl330 = pch->dmac;
 	LIST_HEAD(list);
+	bool power_down = false;
 
 	pm_runtime_get_sync(pl330->ddma.dev);
 	spin_lock_irqsave(&pch->lock, flags);
@@ -2174,6 +2180,8 @@ static int pl330_terminate_all(struct dm
 	pch->thread->req[0].desc = NULL;
 	pch->thread->req[1].desc = NULL;
 	pch->thread->req_running = -1;
+	power_down = pch->active;
+	pch->active = false;
 
 	/* Mark all desc done */
 	list_for_each_entry(desc, &pch->submitted_list, node) {
@@ -2191,6 +2199,8 @@ static int pl330_terminate_all(struct dm
 	list_splice_tail_init(&pch->completed_list, &pl330->desc_pool);
 	spin_unlock_irqrestore(&pch->lock, flags);
 	pm_runtime_mark_last_busy(pl330->ddma.dev);
+	if (power_down)
+		pm_runtime_put_autosuspend(pl330->ddma.dev);
 	pm_runtime_put_autosuspend(pl330->ddma.dev);
 
 	return 0;
@@ -2350,6 +2360,7 @@ static void pl330_issue_pending(struct d
 		 * updated on work_list emptiness status.
 		 */
 		WARN_ON(list_empty(&pch->submitted_list));
+		pch->active = true;
 		pm_runtime_get_sync(pch->dmac->ddma.dev);
 	}
 	list_splice_tail_init(&pch->submitted_list, &pch->work_list);

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


#1565592 — [PATCH 4.9 047/130] mtd: nand: lpc32xx: fix invalid error handling of a requested irq

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 047/130] mtd: nand: lpc32xx: fix invalid error handling of a requested irq
Message-ID<t34kZ-1Ml-93@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Vladimir Zapolskiy <vz@mleia.com>

commit cf9e1672a66c49ed8903c01b4c380a2f2dc91b40 upstream.

Semantics of NR_IRQS is different on machines with SPARSE_IRQ option
disabled or enabled, in the latter case IRQs are allocated starting
at least from the value specified by NR_IRQS and going upwards, so
the check of (irq >= NR_IRQ) to decide about an error code returned by
platform_get_irq() is completely invalid, don't attempt to overrule
irq subsystem in the driver.

The change fixes LPC32xx NAND MLC driver initialization on boot.

Fixes: 8cb17b5ed017 ("irqchip: Add LPC32xx interrupt controller driver")
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Acked-by: Sylvain Lemieux <slemieux.tyco@gmail.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mtd/nand/lpc32xx_mlc.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/mtd/nand/lpc32xx_mlc.c
+++ b/drivers/mtd/nand/lpc32xx_mlc.c
@@ -776,7 +776,7 @@ static int lpc32xx_nand_probe(struct pla
 	init_completion(&host->comp_controller);
 
 	host->irq = platform_get_irq(pdev, 0);
-	if ((host->irq < 0) || (host->irq >= NR_IRQS)) {
+	if (host->irq < 0) {
 		dev_err(&pdev->dev, "failed to get platform irq\n");
 		res = -EINVAL;
 		goto err_exit3;

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


#1565593 — [PATCH 4.9 054/130] powerpc/ptrace: Preserve previous fprs/vsrs on short regset write

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 054/130] powerpc/ptrace: Preserve previous fprs/vsrs on short regset write
Message-ID<t34kY-1Ml-85@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Dave Martin <Dave.Martin@arm.com>

commit 99dfe80a2a246c600440a815741fd2e74a8b4977 upstream.

Ensure that if userspace supplies insufficient data to PTRACE_SETREGSET
to fill all the registers, the thread's old registers are preserved.

Fixes: c6e6771b87d4 ("powerpc: Introduce VSX thread_struct and CONFIG_VSX")
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/powerpc/kernel/ptrace.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -463,6 +463,10 @@ static int fpr_set(struct task_struct *t
 
 	flush_fp_to_thread(target);
 
+	for (i = 0; i < 32 ; i++)
+		buf[i] = target->thread.TS_FPR(i);
+	buf[32] = target->thread.fp_state.fpscr;
+
 	/* copy to local buffer then write that out */
 	i = user_regset_copyin(&pos, &count, &kbuf, &ubuf, buf, 0, -1);
 	if (i)
@@ -672,6 +676,9 @@ static int vsr_set(struct task_struct *t
 	flush_altivec_to_thread(target);
 	flush_vsx_to_thread(target);
 
+	for (i = 0; i < 32 ; i++)
+		buf[i] = target->thread.fp_state.fpr[i][TS_VSRLOWOFFSET];
+
 	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
 				 buf, 0, 32 * sizeof(double));
 	if (!ret)

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


#1565594 — [PATCH 4.9 031/130] x86/PCI: Ignore _CRS on Supermicro X8DTH-i/6/iF/6F

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 031/130] x86/PCI: Ignore _CRS on Supermicro X8DTH-i/6/iF/6F
Message-ID<t34kZ-1Ml-95@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Bjorn Helgaas <bhelgaas@google.com>

commit 89e9f7bcd8744ea25fcf0ac671b8d72c10d7d790 upstream.

Martin reported that the Supermicro X8DTH-i/6/iF/6F advertises incorrect
host bridge windows via _CRS:

  pci_root PNP0A08:00: host bridge window [io  0xf000-0xffff]
  pci_root PNP0A08:01: host bridge window [io  0xf000-0xffff]

Both bridges advertise the 0xf000-0xffff window, which cannot be correct.

Work around this by ignoring _CRS on this system.  The downside is that we
may not assign resources correctly to hot-added PCI devices (if they are
possible on this system).

Link: https://bugzilla.kernel.org/show_bug.cgi?id=42606
Reported-by: Martin Burnicki <martin.burnicki@meinberg.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/pci/acpi.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -114,6 +114,16 @@ static const struct dmi_system_id pci_cr
 			DMI_MATCH(DMI_BIOS_VERSION, "6JET85WW (1.43 )"),
 		},
 	},
+	/* https://bugzilla.kernel.org/show_bug.cgi?id=42606 */
+	{
+		.callback = set_nouse_crs,
+		.ident = "Supermicro X8DTH",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Supermicro"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "X8DTH-i/6/iF/6F"),
+			DMI_MATCH(DMI_BIOS_VERSION, "2.0a"),
+		},
+	},
 
 	/* https://bugzilla.kernel.org/show_bug.cgi?id=15362 */
 	{

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


#1565595 — [PATCH 4.9 130/130] libceph: stop allocating a new cipher on every crypto request

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 130/130] libceph: stop allocating a new cipher on every crypto request
Message-ID<t34kZ-1Ml-89@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Ilya Dryomov <idryomov@gmail.com>

commit 7af3ea189a9a13f090de51c97f676215dabc1205 upstream.

This is useless and more importantly not allowed on the writeback path,
because crypto_alloc_skcipher() allocates memory with GFP_KERNEL, which
can recurse back into the filesystem:

    kworker/9:3     D ffff92303f318180     0 20732      2 0x00000080
    Workqueue: ceph-msgr ceph_con_workfn [libceph]
     ffff923035dd4480 ffff923038f8a0c0 0000000000000001 000000009eb27318
     ffff92269eb28000 ffff92269eb27338 ffff923036b145ac ffff923035dd4480
     00000000ffffffff ffff923036b145b0 ffffffff951eb4e1 ffff923036b145a8
    Call Trace:
     [<ffffffff951eb4e1>] ? schedule+0x31/0x80
     [<ffffffff951eb77a>] ? schedule_preempt_disabled+0xa/0x10
     [<ffffffff951ed1f4>] ? __mutex_lock_slowpath+0xb4/0x130
     [<ffffffff951ed28b>] ? mutex_lock+0x1b/0x30
     [<ffffffffc0a974b3>] ? xfs_reclaim_inodes_ag+0x233/0x2d0 [xfs]
     [<ffffffff94d92ba5>] ? move_active_pages_to_lru+0x125/0x270
     [<ffffffff94f2b985>] ? radix_tree_gang_lookup_tag+0xc5/0x1c0
     [<ffffffff94dad0f3>] ? __list_lru_walk_one.isra.3+0x33/0x120
     [<ffffffffc0a98331>] ? xfs_reclaim_inodes_nr+0x31/0x40 [xfs]
     [<ffffffff94e05bfe>] ? super_cache_scan+0x17e/0x190
     [<ffffffff94d919f3>] ? shrink_slab.part.38+0x1e3/0x3d0
     [<ffffffff94d9616a>] ? shrink_node+0x10a/0x320
     [<ffffffff94d96474>] ? do_try_to_free_pages+0xf4/0x350
     [<ffffffff94d967ba>] ? try_to_free_pages+0xea/0x1b0
     [<ffffffff94d863bd>] ? __alloc_pages_nodemask+0x61d/0xe60
     [<ffffffff94ddf42d>] ? cache_grow_begin+0x9d/0x560
     [<ffffffff94ddfb88>] ? fallback_alloc+0x148/0x1c0
     [<ffffffff94ed84e7>] ? __crypto_alloc_tfm+0x37/0x130
     [<ffffffff94de09db>] ? __kmalloc+0x1eb/0x580
     [<ffffffffc09fe2db>] ? crush_choose_firstn+0x3eb/0x470 [libceph]
     [<ffffffff94ed84e7>] ? __crypto_alloc_tfm+0x37/0x130
     [<ffffffff94ed9c19>] ? crypto_spawn_tfm+0x39/0x60
     [<ffffffffc08b30a3>] ? crypto_cbc_init_tfm+0x23/0x40 [cbc]
     [<ffffffff94ed857c>] ? __crypto_alloc_tfm+0xcc/0x130
     [<ffffffff94edcc23>] ? crypto_skcipher_init_tfm+0x113/0x180
     [<ffffffff94ed7cc3>] ? crypto_create_tfm+0x43/0xb0
     [<ffffffff94ed83b0>] ? crypto_larval_lookup+0x150/0x150
     [<ffffffff94ed7da2>] ? crypto_alloc_tfm+0x72/0x120
     [<ffffffffc0a01dd7>] ? ceph_aes_encrypt2+0x67/0x400 [libceph]
     [<ffffffffc09fd264>] ? ceph_pg_to_up_acting_osds+0x84/0x5b0 [libceph]
     [<ffffffff950d40a0>] ? release_sock+0x40/0x90
     [<ffffffff95139f94>] ? tcp_recvmsg+0x4b4/0xae0
     [<ffffffffc0a02714>] ? ceph_encrypt2+0x54/0xc0 [libceph]
     [<ffffffffc0a02b4d>] ? ceph_x_encrypt+0x5d/0x90 [libceph]
     [<ffffffffc0a02bdf>] ? calcu_signature+0x5f/0x90 [libceph]
     [<ffffffffc0a02ef5>] ? ceph_x_sign_message+0x35/0x50 [libceph]
     [<ffffffffc09e948c>] ? prepare_write_message_footer+0x5c/0xa0 [libceph]
     [<ffffffffc09ecd18>] ? ceph_con_workfn+0x2258/0x2dd0 [libceph]
     [<ffffffffc09e9903>] ? queue_con_delay+0x33/0xd0 [libceph]
     [<ffffffffc09f68ed>] ? __submit_request+0x20d/0x2f0 [libceph]
     [<ffffffffc09f6ef8>] ? ceph_osdc_start_request+0x28/0x30 [libceph]
     [<ffffffffc0b52603>] ? rbd_queue_workfn+0x2f3/0x350 [rbd]
     [<ffffffff94c94ec0>] ? process_one_work+0x160/0x410
     [<ffffffff94c951bd>] ? worker_thread+0x4d/0x480
     [<ffffffff94c95170>] ? process_one_work+0x410/0x410
     [<ffffffff94c9af8d>] ? kthread+0xcd/0xf0
     [<ffffffff951efb2f>] ? ret_from_fork+0x1f/0x40
     [<ffffffff94c9aec0>] ? kthread_create_on_node+0x190/0x190

Allocating the cipher along with the key fixes the issue - as long the
key doesn't change, a single cipher context can be used concurrently in
multiple requests.

We still can't take that GFP_KERNEL allocation though.  Both
ceph_crypto_key_clone() and ceph_crypto_key_decode() are called from
GFP_NOFS context, so resort to memalloc_noio_{save,restore}() here.

Reported-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/ceph/crypto.c |   85 ++++++++++++++++++++++++++++++++++++++----------------
 net/ceph/crypto.h |    1 
 2 files changed, 61 insertions(+), 25 deletions(-)

--- a/net/ceph/crypto.c
+++ b/net/ceph/crypto.c
@@ -13,14 +13,60 @@
 #include <linux/ceph/decode.h>
 #include "crypto.h"
 
+/*
+ * Set ->key and ->tfm.  The rest of the key should be filled in before
+ * this function is called.
+ */
+static int set_secret(struct ceph_crypto_key *key, void *buf)
+{
+	unsigned int noio_flag;
+	int ret;
+
+	key->key = NULL;
+	key->tfm = NULL;
+
+	switch (key->type) {
+	case CEPH_CRYPTO_NONE:
+		return 0; /* nothing to do */
+	case CEPH_CRYPTO_AES:
+		break;
+	default:
+		return -ENOTSUPP;
+	}
+
+	WARN_ON(!key->len);
+	key->key = kmemdup(buf, key->len, GFP_NOIO);
+	if (!key->key) {
+		ret = -ENOMEM;
+		goto fail;
+	}
+
+	/* crypto_alloc_skcipher() allocates with GFP_KERNEL */
+	noio_flag = memalloc_noio_save();
+	key->tfm = crypto_alloc_skcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC);
+	memalloc_noio_restore(noio_flag);
+	if (IS_ERR(key->tfm)) {
+		ret = PTR_ERR(key->tfm);
+		key->tfm = NULL;
+		goto fail;
+	}
+
+	ret = crypto_skcipher_setkey(key->tfm, key->key, key->len);
+	if (ret)
+		goto fail;
+
+	return 0;
+
+fail:
+	ceph_crypto_key_destroy(key);
+	return ret;
+}
+
 int ceph_crypto_key_clone(struct ceph_crypto_key *dst,
 			  const struct ceph_crypto_key *src)
 {
 	memcpy(dst, src, sizeof(struct ceph_crypto_key));
-	dst->key = kmemdup(src->key, src->len, GFP_NOFS);
-	if (!dst->key)
-		return -ENOMEM;
-	return 0;
+	return set_secret(dst, src->key);
 }
 
 int ceph_crypto_key_encode(struct ceph_crypto_key *key, void **p, void *end)
@@ -37,16 +83,16 @@ int ceph_crypto_key_encode(struct ceph_c
 
 int ceph_crypto_key_decode(struct ceph_crypto_key *key, void **p, void *end)
 {
+	int ret;
+
 	ceph_decode_need(p, end, 2*sizeof(u16) + sizeof(key->created), bad);
 	key->type = ceph_decode_16(p);
 	ceph_decode_copy(p, &key->created, sizeof(key->created));
 	key->len = ceph_decode_16(p);
 	ceph_decode_need(p, end, key->len, bad);
-	key->key = kmalloc(key->len, GFP_NOFS);
-	if (!key->key)
-		return -ENOMEM;
-	ceph_decode_copy(p, key->key, key->len);
-	return 0;
+	ret = set_secret(key, *p);
+	*p += key->len;
+	return ret;
 
 bad:
 	dout("failed to decode crypto key\n");
@@ -85,14 +131,11 @@ void ceph_crypto_key_destroy(struct ceph
 	if (key) {
 		kfree(key->key);
 		key->key = NULL;
+		crypto_free_skcipher(key->tfm);
+		key->tfm = NULL;
 	}
 }
 
-static struct crypto_skcipher *ceph_crypto_alloc_cipher(void)
-{
-	return crypto_alloc_skcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC);
-}
-
 static const u8 *aes_iv = (u8 *)CEPH_AES_IV;
 
 /*
@@ -168,8 +211,7 @@ static void teardown_sgtable(struct sg_t
 static int ceph_aes_crypt(const struct ceph_crypto_key *key, bool encrypt,
 			  void *buf, int buf_len, int in_len, int *pout_len)
 {
-	struct crypto_skcipher *tfm = ceph_crypto_alloc_cipher();
-	SKCIPHER_REQUEST_ON_STACK(req, tfm);
+	SKCIPHER_REQUEST_ON_STACK(req, key->tfm);
 	struct sg_table sgt;
 	struct scatterlist prealloc_sg;
 	char iv[AES_BLOCK_SIZE] __aligned(8);
@@ -177,20 +219,15 @@ static int ceph_aes_crypt(const struct c
 	int crypt_len = encrypt ? in_len + pad_byte : in_len;
 	int ret;
 
-	if (IS_ERR(tfm))
-		return PTR_ERR(tfm);
-
 	WARN_ON(crypt_len > buf_len);
 	if (encrypt)
 		memset(buf + in_len, pad_byte, pad_byte);
 	ret = setup_sgtable(&sgt, &prealloc_sg, buf, crypt_len);
 	if (ret)
-		goto out_tfm;
+		return ret;
 
-	crypto_skcipher_setkey((void *)tfm, key->key, key->len);
 	memcpy(iv, aes_iv, AES_BLOCK_SIZE);
-
-	skcipher_request_set_tfm(req, tfm);
+	skcipher_request_set_tfm(req, key->tfm);
 	skcipher_request_set_callback(req, 0, NULL, NULL);
 	skcipher_request_set_crypt(req, sgt.sgl, sgt.sgl, crypt_len, iv);
 
@@ -232,8 +269,6 @@ static int ceph_aes_crypt(const struct c
 
 out_sgt:
 	teardown_sgtable(&sgt);
-out_tfm:
-	crypto_free_skcipher(tfm);
 	return ret;
 }
 
--- a/net/ceph/crypto.h
+++ b/net/ceph/crypto.h
@@ -12,6 +12,7 @@ struct ceph_crypto_key {
 	struct ceph_timespec created;
 	int len;
 	void *key;
+	struct crypto_skcipher *tfm;
 };
 
 int ceph_crypto_key_clone(struct ceph_crypto_key *dst,

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


#1565596 — [PATCH 4.9 089/130] ARM: dts: omap4: Add an empty chosen node to top level DTSI

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 089/130] ARM: dts: omap4: Add an empty chosen node to top level DTSI
Message-ID<t34kY-1Ml-87@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Javier Martinez Canillas <javier@osg.samsung.com>

commit 6c565d1a63ce241a0100f5d327c48dde87b4df76 upstream.

Commit da6269e7e3dd ("ARM: dts: omap4: Remove skeleton.dtsi usage")
removed the skeleton.dtsi usage since we want to get rid of it.

But this can cause issues when booting a kernel with a boot-loader
that doesn't create a chosen node if this isn't present in the DTB
since the decompressor relies on a pre-existing chosen node to be
available to insert the command line and merge other ATAGS info.

Fixes: da6269e7e3dd ("ARM: dts: omap4: Remove skeleton.dtsi usage")
Reported-by: Pali Rohar <pali.rohar@gmail.com>
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/boot/dts/omap4.dtsi |    1 +
 1 file changed, 1 insertion(+)

--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -15,6 +15,7 @@
 	interrupt-parent = <&wakeupgen>;
 	#address-cells = <1>;
 	#size-cells = <1>;
+	chosen { };
 
 	aliases {
 		i2c0 = &i2c1;

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


#1565597 — [PATCH 4.9 094/130] ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 094/130] ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init
Message-ID<t34kZ-1Ml-97@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Gary Bisson <gary.bisson@boundarydevices.com>

commit 6ab5c2b662e2dcbb964099bf7f19e9dbc9ae5a41 upstream.

This patch fixes the following error:
sgtl5000 0-000a: Error reading chip id -6
imx-sgtl5000 sound: ASoC: CODEC DAI sgtl5000 not registered
imx-sgtl5000 sound: snd_soc_register_card failed (-517)

The problem was that the pinctrl group was linked to the sound driver
instead of the codec node. Since the codec is probed first, the sys_mclk
was missing and it would therefore fail to initialize.

Fixes: b32e700256bc ("ARM: dts: imx: add Boundary Devices Nitrogen6_Max board")
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
@@ -319,8 +319,6 @@
 		compatible = "fsl,imx6q-nitrogen6_max-sgtl5000",
 			     "fsl,imx-audio-sgtl5000";
 		model = "imx6q-nitrogen6_max-sgtl5000";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_sgtl5000>;
 		ssi-controller = <&ssi1>;
 		audio-codec = <&codec>;
 		audio-routing =
@@ -402,6 +400,8 @@
 
 	codec: sgtl5000@0a {
 		compatible = "fsl,sgtl5000";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_sgtl5000>;
 		reg = <0x0a>;
 		clocks = <&clks IMX6QDL_CLK_CKO>;
 		VDDA-supply = <&reg_2p5v>;

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


#1565598 — [PATCH 4.9 065/130] ibmvscsis: Fix max transfer length

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-24 09:10 +0100
Subject[PATCH 4.9 065/130] ibmvscsis: Fix max transfer length
Message-ID<t34kZ-1Ml-99@gated-at.bofh.it>
In reply to#1565558
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Bryant G. Ly <bryantly@linux.vnet.ibm.com>

commit 387b978cb0d12cf3720ecb17e652e0a9991a08e2 upstream.

Current code incorrectly calculates the max transfer length, since
it is assuming a 4k page table, but ppc64 all run on 64k page tables.

Reported-by: Steven Royer <seroyer@linux.vnet.ibm.com>
Tested-by: Steven Royer <seroyer@linux.vnet.ibm.com>
Signed-off-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com>
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
+++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
@@ -45,6 +45,7 @@
 
 #define	INITIAL_SRP_LIMIT	800
 #define	DEFAULT_MAX_SECTORS	256
+#define MAX_TXU			1024 * 1024
 
 static uint max_vdma_size = MAX_H_COPY_RDMA;
 
@@ -1291,7 +1292,7 @@ static long ibmvscsis_adapter_info(struc
 	info->mad_version = cpu_to_be32(MAD_VERSION_1);
 	info->os_type = cpu_to_be32(LINUX);
 	memset(&info->port_max_txu[0], 0, sizeof(info->port_max_txu));
-	info->port_max_txu[0] = cpu_to_be32(128 * PAGE_SIZE);
+	info->port_max_txu[0] = cpu_to_be32(MAX_TXU);
 
 	dma_wmb();
 	rc = h_copy_rdma(sizeof(*info), vscsi->dds.window[LOCAL].liobn,

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


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

Back to top | Article view | linux.kernel


csiph-web