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


Groups > linux.kernel > #1249548 > unrolled thread

[PATCH 4.1 000/202] 4.1.11-stable review

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2015-10-18 04:30 +0200
Last post2015-10-19 17:30 +0200
Articles 20 on this page of 182 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 4.1 000/202] 4.1.11-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 011/202] target/iscsi: Fix np_ip bracket issue by removing np_ip Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 012/202] scsi: fix scsi_error_handler vs. scsi_host_dev_release race Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 005/202] kvm: factor out core eventfd assign/deassign logic Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 009/202] KVM: PPC: Book3S HV: Pass the correct trap argument to kvmhv_commence_exit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 003/202] kvm: dont try to register to KVM_FAST_MMIO_BUS for non mmio eventfd Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 001/202] arm: KVM: Fix incorrect device to IPA mapping Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 031/202] ARM: 8425/1: kgdb: Dont try to stop the machine when setting breakpoints Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 007/202] arm: KVM: Disable virtual timer even if the guest is not using it Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 013/202] target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 028/202] ARM: fix Thumb2 signal handling when ARMv6 is enabled Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 030/202] windfarm: decrement client count when unregistering Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 027/202] hwmon: (nct6775) Swap STEP_UP_TIME and STEP_DOWN_TIME registers for most chips Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:30 +0200
    [PATCH 4.1 080/202] dm btree: add ref counting ops for the leaves of top level btrees Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 108/202] USB: whiteheat: fix potential null-deref at probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 065/202] ALSA: hda - Disable power_save_node for IDT 92HD73xx chips Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 082/202] USB: option: add ZTE PIDs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 138/202] irqchip/gic-v3-its: Add missing cache flushes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 134/202] dts: imx25: fix sd card gpio polarity specified in device tree Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 078/202] ath10k: fix dma_mapping_error() handling Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 125/202] batman-adv: fix kernel crash due to missing NULL checks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 111/202] usb: xhci: Clear XHCI_STATE_DYING on start Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 110/202] usb: xhci: lock mutex on xhci_stop Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 137/202] irqchip/atmel-aic5: Use per chip mask caches in mask/unmask() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 135/202] usb: chipidea: imx: fix a typo for imx6sx Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 109/202] xhci: give command abortion one more chance before killing xhci Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 079/202] svcrdma: Fix send_reply() scatter/gather set-up Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 095/202] Bluetooth: Delay check for conn->smp in smp_conn_security() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 128/202] mmc: dw_mmc: handle data blocks > than 4kB if IDMAC is used Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 122/202] ipvs: fix crash with sync protocol v0 and FTP Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 114/202] xhci: init command timeout timer earlier to avoid deleting it uninitialized Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 081/202] staging: ion: fix corruption of ion_import_dma_buf Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 130/202] mmc: sdhci-esdhc-imx: Do not break platform data boards Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 074/202] PCI: Fix devfn for VPD access through function 0 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 113/202] xhci: change xhci 1.0 only restrictions to support xhci 1.1 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 022/202] perf tools: Add empty Build files for architectures lacking them Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 107/202] drm/dp/mst: drop cancel work sync in the mstb destroy path (v2) Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 126/202] batman-adv: protect tt_local_entry from concurrent delete events Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 136/202] cifs: use server timestamp for ntlmv2 authentication Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 123/202] ipvs: call skb_sender_cpu_clear Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 083/202] md/raid0: update queue parameter in a safer location. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 124/202] fbdev: select versatile helpers for the integrator Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 132/202] dts: imx51: fix sd card gpio polarity specified in device tree Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 133/202] dts: imx53: fix sd card gpio polarity specified in device tree Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 105/202] drm: Reject DRI1 hw lock ioctl functions for kms drivers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 049/202] leds/led-class: Add missing put_device() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 131/202] mmc: sdhci-esdhc-imx: fix cd regression for dt platform Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 062/202] ALSA: synth: Fix conflicting OSS device registration on AWE32 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 129/202] mmc: sdhci-esdhc-imx: Move mmc_of_parse() to the dt probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:40 +0200
    [PATCH 4.1 142/202] mtd: nand: sunxi: fix OOB handling in ->write_xxx() functions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 189/202] nfs/filelayout: Fix NULL reference caused by double freeing of fh_array Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 077/202] dm crypt: constrain crypt devices max_segment_size to PAGE_SIZE Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 196/202] drivers/tty: require read access for controlling terminal Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 112/202] usb: xhci: exit early in xhci_setup_device() if were halted or dying Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 141/202] mtd: nand: sunxi: fix sunxi_nand_chips_cleanup() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 188/202] fix a braino in ovl_d_select_inode() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 184/202] genirq: Fix race in register_irq_proc() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 190/202] clk: ti: fix dual-registration of uart4_ick Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 104/202] drm/i915/bios: handle MIPI Sequence Block v3+ gracefully Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 191/202] namei: results of d_is_negative() should be checked after dentry revalidation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 04:50 +0200
    [PATCH 4.1 193/202] dm cache: fix NULL pointer when switching from cleaner policy Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:00 +0200
    [PATCH 4.1 192/202] dm: fix AB-BA deadlock in __dm_destroy() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:00 +0200
    [PATCH 4.1 186/202] overlay: Call ovl_drop_write() earlier in ovl_dentry_open() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:00 +0200
    [PATCH 4.1 117/202] sched/fair: Prevent throttling in early pick_next_task_fair() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:30 +0200
    [PATCH 4.1 139/202] docs: update HOWTO for 3.x -> 4.x versioning Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:30 +0200
    [PATCH 4.1 020/202] perf hists: Update the column width for the "srcline" sort key Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:30 +0200
    [PATCH 4.1 116/202] Initialize msg/shm IPC objects before doing ipc_addid() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:30 +0200
    [PATCH 4.1 021/202] perf stat: Get correct cpu id for print_aggr Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:30 +0200
    [PATCH 4.1 115/202] usb: xhci: Add support for URB_ZERO_PACKET to bulk/sg transfers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:30 +0200
    [PATCH 4.1 018/202] perf/x86/intel: Fix constraint access Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:40 +0200
    [PATCH 4.1 019/202] perf tools: Fix copying of /proc/kcore Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:40 +0200
    [PATCH 4.1 200/202] mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1) Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:50 +0200
    [PATCH 4.1 152/202] usb: chipidea: udc: using the correct stall implementation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:50 +0200
    [PATCH 4.1 044/202] x86/efi: Fix boot crash by mapping EFI memmap entries bottom-up at runtime, instead of top-down Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:50 +0200
    [PATCH 4.1 187/202] overlayfs: Make f_path always point to the overlay and f_inode to the underlay Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:50 +0200
    [PATCH 4.1 201/202] MIPS: Fix console output for Fulong2e system Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:50 +0200
    [PATCH 4.1 183/202] igb: do not re-init SR-IOV during probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:50 +0200
    [PATCH 4.1 045/202] x86/kexec: Fix kexec crash in syscall kexec_file_load() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:50 +0200
    [PATCH 4.1 055/202] spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is disabled Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 05:50 +0200
    [PATCH 4.1 194/202] staging: speakup: fix speakup-r regression Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 168/202] powerpc/MSI: Fix race condition in tearing down MSI interrupts Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 197/202] serial: 8250: add uart_config entry for PORT_RT2880 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 153/202] usb: Use the USB_SS_MULT() macro to get the burst multiplier. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 154/202] usb: phy: phy-generic: Fix reset behaviour on legacy boot Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 146/202] pcmcia: sa11x0: fix missing clk_put() in sa11x0 socket drivers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 171/202] UBIFS: Kill unneeded locking in ubifs_init_security Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 155/202] usb: musb: cppi41: allow it to work again Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 144/202] device property: fix potential NULL pointer dereference Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 169/202] rsi: Fix possible leak when loading firmware Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 173/202] UBI: return ENOSPC if no enough space available Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 178/202] arm64/efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME regions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 172/202] UBI: Validate data_size Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 150/202] security: fix typo in security_task_prctl Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 199/202] intel_pstate: Fix overflow in busy_scaled due to long delay Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 167/202] tools lib traceevent: Fix string handling in heterogeneous arch environments Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 185/202] md/bitmap: dont pass -1 to bitmap_storage_alloc. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 181/202] m68k: Define asmlinkage_protect Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 151/202] usb: musb: dsps: fix polling in device-only mode Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 195/202] tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 149/202] regmap: debugfs: Dont bother actually printing when calculating max length Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 177/202] vfs: Test for and handle paths that are unreachable from their mnt_root Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 175/202] mmc: core: Dont return an error for CD/WP GPIOs when GPIOLIB is unset Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 148/202] regmap: debugfs: Ensure we dont underflow when printing access masks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 180/202] arm64: readahead: fault retry breaks mmap file read random detection Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 176/202] dcache: Handle escaped paths in prepend_path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 174/202] mmc: sdhci: fix dma memory leak in sdhci_pre_req() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 182/202] net/xen-netfront: only napi_synchronize() if running Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 179/202] arm64: ftrace: fix function_graph tracer panic Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:00 +0200
    [PATCH 4.1 092/202] netfilter: nf_log: wait for rcu grace after logger unregistration Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 096/202] NFS: Do cleanup before resetting pageio read/write to mds Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 100/202] disabling oplocks/leases via module parm enable_oplocks broken for SMB3 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 087/202] netfilter: nf_tables: Use 32 bit addressing register from nft_type_to_reg() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 076/202] PCI: Clear IORESOURCE_UNSET when clipping a bridge window Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 147/202] ipr: Enable SIS pipe commands for SIS-32 devices. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 097/202] nfs: fix pg_test page count calculation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 091/202] netfilter: nftables: Do not run chains in the wrong network namespace Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 094/202] netfilter: nf_log: dont zap all loggers on unregister Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 118/202] [PATCH REPOST] serial/amba-pl011: Disable interrupts around TX softirq Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 140/202] mtd: pxa3xx_nand: add a default chunk size Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 157/202] usb: Add device quirk for Logitech PTZ cameras Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 143/202] PM / AVS: rockchip-io: depend on CONFIG_POWER_AVS Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 101/202] [SMB3] Do not fall back to SMBWriteX in set_file_size error cases Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 098/202] NFS: Fix a write performance regression Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 064/202] ALSA: hda - Apply SPDIF pin ctl to MacBookPro 12,1 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 120/202] ipvs: fix crash if scheduler is changed Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 158/202] USB: Add reset-resume quirk for two Plantronics usb headphones. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 088/202] netfilter: nf_conntrack: Support expectations in different zones Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 161/202] MIPS: dma-default: Fix 32-bit fall back to GFP_DMA Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 102/202] drm/qxl: only report first monitor as connected if we have no state Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 145/202] ath10k: reject 11b tx fragmentation configuration Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 093/202] netfilter: nft_compat: skip family comparison in case of NFPROTO_UNSPEC Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 156/202] USB: chaoskey read offset bug Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 160/202] cpufreq: dt: Tolerance applies on both sides of target voltage Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 119/202] ipvs: do not use random local source address for tunnels Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 121/202] ipvs: skb_orphan in case of forwarding Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 090/202] netfilter: nf_qeueue: Drop queue entries on nf_unregister_hook Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 099/202] [SMB3] Fix sec=krb5 on smb3 mounts Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:10 +0200
    [PATCH 4.1 051/202] s390/compat: correct uc_sigmask of the compat signal frame Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 059/202] ocfs2/dlm: fix deadlock when dispatch assert master Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 063/202] ALSA: hda: Add dock support for ThinkPad T550 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 048/202] x86/xen: Support kexec/kdump in HVM guests by doing a soft reset Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 060/202] mm: hugetlbfs: skip shared VMAs when unmapping private pages to satisfy a fault Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 070/202] ASoC: sgtl5000: fix wrong register MIC_BIAS_VOLTAGE setup on probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 038/202] x86/apic: Serialize LVTT and TSC_DEADLINE writes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 073/202] Btrfs: update fix for read corruption of compressed and shared extents Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 040/202] x86/platform: Fix Geode LX timekeeping in the generic x86 build Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 057/202] mm: migrate: hugetlb: putback destination hugepage to active list Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 036/202] blockdev: dont set S_DAX for misaligned partitions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 056/202] spi: spidev: fix possible NULL dereference Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 041/202] x86/paravirt: Replace the paravirt nop with a bona fide empty function Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 086/202] netfilter: nfnetlink: work around wrong endianess in res_id field Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 085/202] dm raid: fix round up of default region size Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 071/202] btrfs: skip waiting on ordered range for special files Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 058/202] lib/iommu-common.c: do not try to deref a null iommu->lazy_flush() pointer when n < pool->hint Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 069/202] ASoC: db1200: Fix DAI link format for db1300 and db1550 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 072/202] Btrfs: fix read corruption of compressed and shared extents Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 089/202] netfilter: ctnetlink: put back references to master ct and expect objects Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 067/202] ASoC: fix broken pxa SoC support Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 061/202] ALSA: hda - Disable power_save_node for Thinkpads Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 075/202] PCI: Use function 0 VPD for identical functions, regular VPD for others Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 050/202] sched/core: Fix TASK_DEAD race in finish_task_switch() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 068/202] ASoC: dwc: correct irq clear method Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 084/202] md/raid0: apply base queue limits *before* disk_stack_limits Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 043/202] Use WARN_ON_ONCE for missing X86_FEATURE_NRIPS Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 066/202] ASoC: pxa: pxa2xx-ac97: fix dma requestor lines Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 039/202] x86/alternatives: Make optimize_nops() interrupt safe and synced Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 042/202] x86/nmi/64: Fix a paravirt stack-clobbering bug in the NMI code Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:20 +0200
    [PATCH 4.1 037/202] dmaengine: dw: properly read DWC_PARAMS register Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 047/202] x86/mm: Set NX on gap between __ex_table and rodata Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 053/202] spi: Fix documentation of spi_alloc_master() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 016/202] target: Fix v4.1 UNIT_ATTENTION se_node_acl->device_list[] NULL pointer Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 024/202] perf: Fix AUX buffer refcounting Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 023/202] perf header: Fixup reading of HEADER_NRCPUS feature Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 052/202] s390/boot/decompression: disable floating point in decompressor Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 025/202] watchdog: sunxi: fix activation of system reset Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 046/202] x86/process: Add proper bound checks in 64bit get_wchan() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    [PATCH 4.1 054/202] spi: xtensa-xtfpga: fix register endianness Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-18 06:30 +0200
    Re: ***SPAM*** [PATCH 4.1 000/202] 4.1.11-stable review Guenter Roeck <linux@roeck-us.net> - 2015-10-19 06:20 +0200
      Re: ***SPAM*** [PATCH 4.1 000/202] 4.1.11-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-10-19 17:20 +0200
        Re: ***SPAM*** [PATCH 4.1 000/202] 4.1.11-stable review Willy Tarreau <w@1wt.eu> - 2015-10-19 17:30 +0200
          Re: ***SPAM*** [PATCH 4.1 000/202] 4.1.11-stable review Guenter Roeck <linux@roeck-us.net> - 2015-10-20 03:30 +0200
    Re: [PATCH 4.1 000/202] 4.1.11-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2015-10-19 17:30 +0200

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


#1249657 — [PATCH 4.1 193/202] dm cache: fix NULL pointer when switching from cleaner policy

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:00 +0200
Subject[PATCH 4.1 193/202] dm cache: fix NULL pointer when switching from cleaner policy
Message-ID<qkMmu-i6-19@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Joe Thornber <ejt@redhat.com>

commit 2bffa1503c5c06192eb1459180fac4416575a966 upstream.

The cleaner policy doesn't make use of the per cache block hint space in
the metadata (unlike the other policies).  When switching from the
cleaner policy to mq or smq a NULL pointer crash (in dm_tm_new_block)
was observed.  The crash was caused by bugs in dm-cache-metadata.c
when trying to skip creation of the hint btree.

The minimal fix is to change hint size for the cleaner policy to 4 bytes
(only hint size supported).

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

---
 drivers/md/dm-cache-policy-cleaner.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/md/dm-cache-policy-cleaner.c
+++ b/drivers/md/dm-cache-policy-cleaner.c
@@ -435,7 +435,7 @@ static struct dm_cache_policy *wb_create
 static struct dm_cache_policy_type wb_policy_type = {
 	.name = "cleaner",
 	.version = {1, 0, 0},
-	.hint_size = 0,
+	.hint_size = 4,
 	.owner = THIS_MODULE,
 	.create = wb_create
 };


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249659 — [PATCH 4.1 192/202] dm: fix AB-BA deadlock in __dm_destroy()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:00 +0200
Subject[PATCH 4.1 192/202] dm: fix AB-BA deadlock in __dm_destroy()
Message-ID<qkMmv-i6-37@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Junichi Nomura <j-nomura@ce.jp.nec.com>

commit 2a708cff93f1845b9239bc7d6310aef54e716c6a upstream.

__dm_destroy() takes io_barrier SRCU lock (dm_get_live_table) and
suspend_lock in reverse order.  Doing so can cause AB-BA deadlock:

  __dm_destroy                    dm_swap_table
  ---------------------------------------------------
                                  mutex_lock(suspend_lock)
  dm_get_live_table()
    srcu_read_lock(io_barrier)
                                  dm_sync_table()
                                    synchronize_srcu(io_barrier)
                                      .. waiting for dm_put_live_table()
  mutex_lock(suspend_lock)
    .. waiting for suspend_lock

Fix this by taking the locks in proper order.

Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Fixes: ab7c7bb6f4ab ("dm: hold suspend_lock while suspending device during device deletion")
Acked-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2925,8 +2925,6 @@ static void __dm_destroy(struct mapped_d
 
 	might_sleep();
 
-	map = dm_get_live_table(md, &srcu_idx);
-
 	spin_lock(&_minor_lock);
 	idr_replace(&_minor_idr, MINOR_ALLOCED, MINOR(disk_devt(dm_disk(md))));
 	set_bit(DMF_FREEING, &md->flags);
@@ -2940,14 +2938,14 @@ static void __dm_destroy(struct mapped_d
 	 * do not race with internal suspend.
 	 */
 	mutex_lock(&md->suspend_lock);
+	map = dm_get_live_table(md, &srcu_idx);
 	if (!dm_suspended_md(md)) {
 		dm_table_presuspend_targets(map);
 		dm_table_postsuspend_targets(map);
 	}
-	mutex_unlock(&md->suspend_lock);
-
 	/* dm_put_live_table must be before msleep, otherwise deadlock is possible */
 	dm_put_live_table(md, srcu_idx);
+	mutex_unlock(&md->suspend_lock);
 
 	/*
 	 * Rare, but there may be I/O requests still going to complete,


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249666 — [PATCH 4.1 186/202] overlay: Call ovl_drop_write() earlier in ovl_dentry_open()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:00 +0200
Subject[PATCH 4.1 186/202] overlay: Call ovl_drop_write() earlier in ovl_dentry_open()
Message-ID<qkMmv-i6-43@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: David Howells <dhowells@redhat.com>

commit f25801ee4680ef1db21e15c112e6e5fe3ffe8da5 upstream.

Call ovl_drop_write() earlier in ovl_dentry_open() before we call vfs_open()
as we've done the copy up for which we needed the freeze-write lock by that
point.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: "Kamata, Munehisa" <kamatam@amazon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/overlayfs/inode.c |   14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

--- a/fs/overlayfs/inode.c
+++ b/fs/overlayfs/inode.c
@@ -342,31 +342,25 @@ static int ovl_dentry_open(struct dentry
 	int err;
 	struct path realpath;
 	enum ovl_path_type type;
-	bool want_write = false;
 
 	type = ovl_path_real(dentry, &realpath);
 	if (ovl_open_need_copy_up(file->f_flags, type, realpath.dentry)) {
-		want_write = true;
 		err = ovl_want_write(dentry);
 		if (err)
-			goto out;
+			return err;
 
 		if (file->f_flags & O_TRUNC)
 			err = ovl_copy_up_last(dentry, NULL, true);
 		else
 			err = ovl_copy_up(dentry);
+		ovl_drop_write(dentry);
 		if (err)
-			goto out_drop_write;
+			return err;
 
 		ovl_path_upper(dentry, &realpath);
 	}
 
-	err = vfs_open(&realpath, file, cred);
-out_drop_write:
-	if (want_write)
-		ovl_drop_write(dentry);
-out:
-	return err;
+	return vfs_open(&realpath, file, cred);
 }
 
 static const struct inode_operations ovl_file_inode_operations = {


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249759 — [PATCH 4.1 117/202] sched/fair: Prevent throttling in early pick_next_task_fair()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:30 +0200
Subject[PATCH 4.1 117/202] sched/fair: Prevent throttling in early pick_next_task_fair()
Message-ID<qkMPx-19j-25@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Ben Segall <bsegall@google.com>

commit 54d27365cae88fbcc853b391dcd561e71acb81fa upstream.

The optimized task selection logic optimistically selects a new task
to run without first doing a full put_prev_task(). This is so that we
can avoid a put/set on the common ancestors of the old and new task.

Similarly, we should only call check_cfs_rq_runtime() to throttle
eligible groups if they're part of the common ancestry, otherwise it
is possible to end up with no eligible task in the simple task
selection.

Imagine:
		/root
	/prev		/next
	/A		/B

If our optimistic selection ends up throttling /next, we goto simple
and our put_prev_task() ends up throttling /prev, after which we're
going to bug out in set_next_entity() because there aren't any tasks
left.

Avoid this scenario by only throttling common ancestors.

Reported-by: Mohammed Naser <mnaser@vexxhost.com>
Reported-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: Ben Segall <bsegall@google.com>
[ munged Changelog ]
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Roman Gushchin <klamm@yandex-team.ru>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: pjt@google.com
Fixes: 678d5718d8d0 ("sched/fair: Optimize cgroup pick_next_task_fair()")
Link: http://lkml.kernel.org/r/xm26wq1oswoq.fsf@sword-of-the-dawn.mtv.corp.google.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/sched/fair.c |   25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5126,18 +5126,21 @@ again:
 		 * entity, update_curr() will update its vruntime, otherwise
 		 * forget we've ever seen it.
 		 */
-		if (curr && curr->on_rq)
-			update_curr(cfs_rq);
-		else
-			curr = NULL;
+		if (curr) {
+			if (curr->on_rq)
+				update_curr(cfs_rq);
+			else
+				curr = NULL;
 
-		/*
-		 * This call to check_cfs_rq_runtime() will do the throttle and
-		 * dequeue its entity in the parent(s). Therefore the 'simple'
-		 * nr_running test will indeed be correct.
-		 */
-		if (unlikely(check_cfs_rq_runtime(cfs_rq)))
-			goto simple;
+			/*
+			 * This call to check_cfs_rq_runtime() will do the
+			 * throttle and dequeue its entity in the parent(s).
+			 * Therefore the 'simple' nr_running test will indeed
+			 * be correct.
+			 */
+			if (unlikely(check_cfs_rq_runtime(cfs_rq)))
+				goto simple;
+		}
 
 		se = pick_next_entity(cfs_rq, curr);
 		cfs_rq = group_cfs_rq(se);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249764 — [PATCH 4.1 139/202] docs: update HOWTO for 3.x -> 4.x versioning

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:30 +0200
Subject[PATCH 4.1 139/202] docs: update HOWTO for 3.x -> 4.x versioning
Message-ID<qkMPx-19j-35@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Mario Carrillo <mario.alfredo.c.arevalo@intel.com>

commit e4144fe5d47c91c92d36cdbd5f31ed8d6e3a57ab upstream.

The HOWTO document needed updating for the new kernel versioning.

Signed-off-by: Mario Carrillo <mario.alfredo.c.arevalo@intel.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 Documentation/HOWTO |   28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

--- a/Documentation/HOWTO
+++ b/Documentation/HOWTO
@@ -218,16 +218,16 @@ The development process
 Linux kernel development process currently consists of a few different
 main kernel "branches" and lots of different subsystem-specific kernel
 branches.  These different branches are:
-  - main 3.x kernel tree
-  - 3.x.y -stable kernel tree
-  - 3.x -git kernel patches
+  - main 4.x kernel tree
+  - 4.x.y -stable kernel tree
+  - 4.x -git kernel patches
   - subsystem specific kernel trees and patches
-  - the 3.x -next kernel tree for integration tests
+  - the 4.x -next kernel tree for integration tests
 
-3.x kernel tree
+4.x kernel tree
 -----------------
-3.x kernels are maintained by Linus Torvalds, and can be found on
-kernel.org in the pub/linux/kernel/v3.x/ directory.  Its development
+4.x kernels are maintained by Linus Torvalds, and can be found on
+kernel.org in the pub/linux/kernel/v4.x/ directory.  Its development
 process is as follows:
   - As soon as a new kernel is released a two weeks window is open,
     during this period of time maintainers can submit big diffs to
@@ -262,20 +262,20 @@ mailing list about kernel releases:
 	released according to perceived bug status, not according to a
 	preconceived timeline."
 
-3.x.y -stable kernel tree
+4.x.y -stable kernel tree
 ---------------------------
 Kernels with 3-part versions are -stable kernels. They contain
 relatively small and critical fixes for security problems or significant
-regressions discovered in a given 3.x kernel.
+regressions discovered in a given 4.x kernel.
 
 This is the recommended branch for users who want the most recent stable
 kernel and are not interested in helping test development/experimental
 versions.
 
-If no 3.x.y kernel is available, then the highest numbered 3.x
+If no 4.x.y kernel is available, then the highest numbered 4.x
 kernel is the current stable kernel.
 
-3.x.y are maintained by the "stable" team <stable@vger.kernel.org>, and
+4.x.y are maintained by the "stable" team <stable@vger.kernel.org>, and
 are released as needs dictate.  The normal release period is approximately
 two weeks, but it can be longer if there are no pressing problems.  A
 security-related problem, instead, can cause a release to happen almost
@@ -285,7 +285,7 @@ The file Documentation/stable_kernel_rul
 documents what kinds of changes are acceptable for the -stable tree, and
 how the release process works.
 
-3.x -git patches
+4.x -git patches
 ------------------
 These are daily snapshots of Linus' kernel tree which are managed in a
 git repository (hence the name.) These patches are usually released
@@ -317,9 +317,9 @@ revisions to it, and maintainers can mar
 accepted, or rejected.  Most of these patchwork sites are listed at
 http://patchwork.kernel.org/.
 
-3.x -next kernel tree for integration tests
+4.x -next kernel tree for integration tests
 ---------------------------------------------
-Before updates from subsystem trees are merged into the mainline 3.x
+Before updates from subsystem trees are merged into the mainline 4.x
 tree, they need to be integration-tested.  For this purpose, a special
 testing repository exists into which virtually all subsystem trees are
 pulled on an almost daily basis:


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249775 — [PATCH 4.1 020/202] perf hists: Update the column width for the "srcline" sort key

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:30 +0200
Subject[PATCH 4.1 020/202] perf hists: Update the column width for the "srcline" sort key
Message-ID<qkMPy-19j-59@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Arnaldo Carvalho de Melo <acme@redhat.com>

commit e8e6d37e73e6b950c891c780745460b87f4755b6 upstream.

When we introduce a new sort key, we need to update the
hists__calc_col_len() function accordingly, otherwise the width
will be limited to strlen(header).

We can't update it when obtaining a line value for a column (for
instance, in sort__srcline_cmp()), because we reset it all when doing a
resort (see hists__output_recalc_col_len()), so we need to, from what is
in the hist_entry fields, set each of the column widths.

Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Fixes: 409a8be61560 ("perf tools: Add sort by src line/number")
Link: http://lkml.kernel.org/n/tip-jgbe0yx8v1gs89cslr93pvz2@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 tools/perf/util/hist.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -151,6 +151,9 @@ void hists__calc_col_len(struct hists *h
 	hists__new_col_len(hists, HISTC_LOCAL_WEIGHT, 12);
 	hists__new_col_len(hists, HISTC_GLOBAL_WEIGHT, 12);
 
+	if (h->srcline)
+		hists__new_col_len(hists, HISTC_SRCLINE, strlen(h->srcline));
+
 	if (h->transaction)
 		hists__new_col_len(hists, HISTC_TRANSACTION,
 				   hist_entry__transaction_len());


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249777 — [PATCH 4.1 116/202] Initialize msg/shm IPC objects before doing ipc_addid()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:30 +0200
Subject[PATCH 4.1 116/202] Initialize msg/shm IPC objects before doing ipc_addid()
Message-ID<qkMPy-19j-61@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Linus Torvalds <torvalds@linux-foundation.org>

commit b9a532277938798b53178d5a66af6e2915cb27cf upstream.

As reported by Dmitry Vyukov, we really shouldn't do ipc_addid() before
having initialized the IPC object state.  Yes, we initialize the IPC
object in a locked state, but with all the lockless RCU lookup work,
that IPC object lock no longer means that the state cannot be seen.

We already did this for the IPC semaphore code (see commit e8577d1f0329:
"ipc/sem.c: fully initialize sem_array before making it visible") but we
clearly forgot about msg and shm.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Manfred Spraul <manfred@colorfullife.com>
Cc: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 ipc/msg.c  |   14 +++++++-------
 ipc/shm.c  |   13 +++++++------
 ipc/util.c |    8 ++++----
 3 files changed, 18 insertions(+), 17 deletions(-)

--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -137,13 +137,6 @@ static int newque(struct ipc_namespace *
 		return retval;
 	}
 
-	/* ipc_addid() locks msq upon success. */
-	id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni);
-	if (id < 0) {
-		ipc_rcu_putref(msq, msg_rcu_free);
-		return id;
-	}
-
 	msq->q_stime = msq->q_rtime = 0;
 	msq->q_ctime = get_seconds();
 	msq->q_cbytes = msq->q_qnum = 0;
@@ -153,6 +146,13 @@ static int newque(struct ipc_namespace *
 	INIT_LIST_HEAD(&msq->q_receivers);
 	INIT_LIST_HEAD(&msq->q_senders);
 
+	/* ipc_addid() locks msq upon success. */
+	id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni);
+	if (id < 0) {
+		ipc_rcu_putref(msq, msg_rcu_free);
+		return id;
+	}
+
 	ipc_unlock_object(&msq->q_perm);
 	rcu_read_unlock();
 
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -550,12 +550,6 @@ static int newseg(struct ipc_namespace *
 	if (IS_ERR(file))
 		goto no_file;
 
-	id = ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni);
-	if (id < 0) {
-		error = id;
-		goto no_id;
-	}
-
 	shp->shm_cprid = task_tgid_vnr(current);
 	shp->shm_lprid = 0;
 	shp->shm_atim = shp->shm_dtim = 0;
@@ -564,6 +558,13 @@ static int newseg(struct ipc_namespace *
 	shp->shm_nattch = 0;
 	shp->shm_file = file;
 	shp->shm_creator = current;
+
+	id = ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni);
+	if (id < 0) {
+		error = id;
+		goto no_id;
+	}
+
 	list_add(&shp->shm_clist, &current->sysvshm.shm_clist);
 
 	/*
--- a/ipc/util.c
+++ b/ipc/util.c
@@ -237,6 +237,10 @@ int ipc_addid(struct ipc_ids *ids, struc
 	rcu_read_lock();
 	spin_lock(&new->lock);
 
+	current_euid_egid(&euid, &egid);
+	new->cuid = new->uid = euid;
+	new->gid = new->cgid = egid;
+
 	id = idr_alloc(&ids->ipcs_idr, new,
 		       (next_id < 0) ? 0 : ipcid_to_idx(next_id), 0,
 		       GFP_NOWAIT);
@@ -249,10 +253,6 @@ int ipc_addid(struct ipc_ids *ids, struc
 
 	ids->in_use++;
 
-	current_euid_egid(&euid, &egid);
-	new->cuid = new->uid = euid;
-	new->gid = new->cgid = egid;
-
 	if (next_id < 0) {
 		new->seq = ids->seq++;
 		if (ids->seq > IPCID_SEQ_MAX)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249781 — [PATCH 4.1 021/202] perf stat: Get correct cpu id for print_aggr

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:30 +0200
Subject[PATCH 4.1 021/202] perf stat: Get correct cpu id for print_aggr
Message-ID<qkMPy-19j-69@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Kan Liang <kan.liang@intel.com>

commit 601083cffb7cabdcc55b8195d732f0f7028570fa upstream.

print_aggr() fails to print per-core/per-socket statistics after commit
582ec0829b3d ("perf stat: Fix per-socket output bug for uncore events")
if events have differnt cpus. Because in print_aggr(), aggr_get_id needs
index (not cpu id) to find core/pkg id. Also, evsel cpu maps should be
used to get aggregated id.

Here is an example:

Counting events cycles,uncore_imc_0/cas_count_read/. (Uncore event has
cpumask 0,18)

  $ perf stat -e cycles,uncore_imc_0/cas_count_read/ -C0,18 --per-core sleep 2

Without this patch, it failes to get CPU 18 result.

   Performance counter stats for 'CPU(s) 0,18':

  S0-C0           1            7526851      cycles
  S0-C0           1               1.05 MiB  uncore_imc_0/cas_count_read/
  S1-C0           0      <not counted>      cycles
  S1-C0           0      <not counted> MiB  uncore_imc_0/cas_count_read/

With this patch, it can get both CPU0 and CPU18 result.

   Performance counter stats for 'CPU(s) 0,18':

  S0-C0           1            6327768      cycles
  S0-C0           1               0.47 MiB  uncore_imc_0/cas_count_read/
  S1-C0           1             330228      cycles
  S1-C0           1               0.29 MiB  uncore_imc_0/cas_count_read/

Signed-off-by: Kan Liang <kan.liang@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Stephane Eranian <eranian@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Fixes: 582ec0829b3d ("perf stat: Fix per-socket output bug for uncore events")
Link: http://lkml.kernel.org/r/1435820925-51091-1-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 tools/perf/builtin-stat.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1227,7 +1227,7 @@ static void abs_printout(int id, int nr,
 static void print_aggr(char *prefix)
 {
 	struct perf_evsel *counter;
-	int cpu, cpu2, s, s2, id, nr;
+	int cpu, s, s2, id, nr;
 	double uval;
 	u64 ena, run, val;
 
@@ -1240,8 +1240,7 @@ static void print_aggr(char *prefix)
 			val = ena = run = 0;
 			nr = 0;
 			for (cpu = 0; cpu < perf_evsel__nr_cpus(counter); cpu++) {
-				cpu2 = perf_evsel__cpus(counter)->map[cpu];
-				s2 = aggr_get_id(evsel_list->cpus, cpu2);
+				s2 = aggr_get_id(perf_evsel__cpus(counter), cpu);
 				if (s2 != id)
 					continue;
 				val += counter->counts->cpu[cpu].val;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249782 — [PATCH 4.1 115/202] usb: xhci: Add support for URB_ZERO_PACKET to bulk/sg transfers

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:30 +0200
Subject[PATCH 4.1 115/202] usb: xhci: Add support for URB_ZERO_PACKET to bulk/sg transfers
Message-ID<qkMPy-19j-71@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Reyad Attiyat <reyad.attiyat@gmail.com>

commit 4758dcd19a7d9ba9610b38fecb93f65f56f86346 upstream.

This commit checks for the URB_ZERO_PACKET flag and creates an extra
zero-length td if the urb transfer length is a multiple of the endpoint's
max packet length.

Signed-off-by: Reyad Attiyat <reyad.attiyat@gmail.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: Oliver Neukum <oneukum@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/host/xhci-ring.c |   66 +++++++++++++++++++++++++++++++++----------
 drivers/usb/host/xhci.c      |    5 +++
 2 files changed, 57 insertions(+), 14 deletions(-)

--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -3050,9 +3050,11 @@ static int queue_bulk_sg_tx(struct xhci_
 	struct xhci_td *td;
 	struct scatterlist *sg;
 	int num_sgs;
-	int trb_buff_len, this_sg_len, running_total;
+	int trb_buff_len, this_sg_len, running_total, ret;
 	unsigned int total_packet_count;
+	bool zero_length_needed;
 	bool first_trb;
+	int last_trb_num;
 	u64 addr;
 	bool more_trbs_coming;
 
@@ -3068,13 +3070,27 @@ static int queue_bulk_sg_tx(struct xhci_
 	total_packet_count = DIV_ROUND_UP(urb->transfer_buffer_length,
 			usb_endpoint_maxp(&urb->ep->desc));
 
-	trb_buff_len = prepare_transfer(xhci, xhci->devs[slot_id],
+	ret = prepare_transfer(xhci, xhci->devs[slot_id],
 			ep_index, urb->stream_id,
 			num_trbs, urb, 0, mem_flags);
-	if (trb_buff_len < 0)
-		return trb_buff_len;
+	if (ret < 0)
+		return ret;
 
 	urb_priv = urb->hcpriv;
+
+	/* Deal with URB_ZERO_PACKET - need one more td/trb */
+	zero_length_needed = urb->transfer_flags & URB_ZERO_PACKET &&
+		urb_priv->length == 2;
+	if (zero_length_needed) {
+		num_trbs++;
+		xhci_dbg(xhci, "Creating zero length td.\n");
+		ret = prepare_transfer(xhci, xhci->devs[slot_id],
+				ep_index, urb->stream_id,
+				1, urb, 1, mem_flags);
+		if (ret < 0)
+			return ret;
+	}
+
 	td = urb_priv->td[0];
 
 	/*
@@ -3104,6 +3120,7 @@ static int queue_bulk_sg_tx(struct xhci_
 		trb_buff_len = urb->transfer_buffer_length;
 
 	first_trb = true;
+	last_trb_num = zero_length_needed ? 2 : 1;
 	/* Queue the first TRB, even if it's zero-length */
 	do {
 		u32 field = 0;
@@ -3121,12 +3138,15 @@ static int queue_bulk_sg_tx(struct xhci_
 		/* Chain all the TRBs together; clear the chain bit in the last
 		 * TRB to indicate it's the last TRB in the chain.
 		 */
-		if (num_trbs > 1) {
+		if (num_trbs > last_trb_num) {
 			field |= TRB_CHAIN;
-		} else {
-			/* FIXME - add check for ZERO_PACKET flag before this */
+		} else if (num_trbs == last_trb_num) {
 			td->last_trb = ep_ring->enqueue;
 			field |= TRB_IOC;
+		} else if (zero_length_needed && num_trbs == 1) {
+			trb_buff_len = 0;
+			urb_priv->td[1]->last_trb = ep_ring->enqueue;
+			field |= TRB_IOC;
 		}
 
 		/* Only set interrupt on short packet for IN endpoints */
@@ -3188,7 +3208,7 @@ static int queue_bulk_sg_tx(struct xhci_
 		if (running_total + trb_buff_len > urb->transfer_buffer_length)
 			trb_buff_len =
 				urb->transfer_buffer_length - running_total;
-	} while (running_total < urb->transfer_buffer_length);
+	} while (num_trbs > 0);
 
 	check_trb_math(urb, num_trbs, running_total);
 	giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
@@ -3206,7 +3226,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
 	int num_trbs;
 	struct xhci_generic_trb *start_trb;
 	bool first_trb;
+	int last_trb_num;
 	bool more_trbs_coming;
+	bool zero_length_needed;
 	int start_cycle;
 	u32 field, length_field;
 
@@ -3237,7 +3259,6 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
 		num_trbs++;
 		running_total += TRB_MAX_BUFF_SIZE;
 	}
-	/* FIXME: this doesn't deal with URB_ZERO_PACKET - need one more */
 
 	ret = prepare_transfer(xhci, xhci->devs[slot_id],
 			ep_index, urb->stream_id,
@@ -3246,6 +3267,20 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
 		return ret;
 
 	urb_priv = urb->hcpriv;
+
+	/* Deal with URB_ZERO_PACKET - need one more td/trb */
+	zero_length_needed = urb->transfer_flags & URB_ZERO_PACKET &&
+		urb_priv->length == 2;
+	if (zero_length_needed) {
+		num_trbs++;
+		xhci_dbg(xhci, "Creating zero length td.\n");
+		ret = prepare_transfer(xhci, xhci->devs[slot_id],
+				ep_index, urb->stream_id,
+				1, urb, 1, mem_flags);
+		if (ret < 0)
+			return ret;
+	}
+
 	td = urb_priv->td[0];
 
 	/*
@@ -3267,7 +3302,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
 		trb_buff_len = urb->transfer_buffer_length;
 
 	first_trb = true;
-
+	last_trb_num = zero_length_needed ? 2 : 1;
 	/* Queue the first TRB, even if it's zero-length */
 	do {
 		u32 remainder = 0;
@@ -3284,12 +3319,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
 		/* Chain all the TRBs together; clear the chain bit in the last
 		 * TRB to indicate it's the last TRB in the chain.
 		 */
-		if (num_trbs > 1) {
+		if (num_trbs > last_trb_num) {
 			field |= TRB_CHAIN;
-		} else {
-			/* FIXME - add check for ZERO_PACKET flag before this */
+		} else if (num_trbs == last_trb_num) {
 			td->last_trb = ep_ring->enqueue;
 			field |= TRB_IOC;
+		} else if (zero_length_needed && num_trbs == 1) {
+			trb_buff_len = 0;
+			urb_priv->td[1]->last_trb = ep_ring->enqueue;
+			field |= TRB_IOC;
 		}
 
 		/* Only set interrupt on short packet for IN endpoints */
@@ -3327,7 +3365,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
 		trb_buff_len = urb->transfer_buffer_length - running_total;
 		if (trb_buff_len > TRB_MAX_BUFF_SIZE)
 			trb_buff_len = TRB_MAX_BUFF_SIZE;
-	} while (running_total < urb->transfer_buffer_length);
+	} while (num_trbs > 0);
 
 	check_trb_math(urb, num_trbs, running_total);
 	giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1345,6 +1345,11 @@ int xhci_urb_enqueue(struct usb_hcd *hcd
 
 	if (usb_endpoint_xfer_isoc(&urb->ep->desc))
 		size = urb->number_of_packets;
+	else if (usb_endpoint_is_bulk_out(&urb->ep->desc) &&
+	    urb->transfer_buffer_length > 0 &&
+	    urb->transfer_flags & URB_ZERO_PACKET &&
+	    !(urb->transfer_buffer_length % usb_endpoint_maxp(&urb->ep->desc)))
+		size = 2;
 	else
 		size = 1;
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249785 — [PATCH 4.1 018/202] perf/x86/intel: Fix constraint access

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:40 +0200
Subject[PATCH 4.1 018/202] perf/x86/intel: Fix constraint access
Message-ID<qkMZb-1kD-3@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Peter Zijlstra <peterz@infradead.org>

commit ebfb4988f0378e2ac3b4a0aa1ea20d724293f392 upstream.

Sasha reported that we can get here with .idx==-1, and
cpuc->event_constraints unallocated.

Suggested-by: Stephane Eranian <eranian@google.com>
Reported-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: b371b5943178 ("perf/x86: Fix event/group validation")
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kernel/cpu/perf_event_intel.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/arch/x86/kernel/cpu/perf_event_intel.c
+++ b/arch/x86/kernel/cpu/perf_event_intel.c
@@ -2098,9 +2098,12 @@ static struct event_constraint *
 intel_get_event_constraints(struct cpu_hw_events *cpuc, int idx,
 			    struct perf_event *event)
 {
-	struct event_constraint *c1 = cpuc->event_constraint[idx];
+	struct event_constraint *c1 = NULL;
 	struct event_constraint *c2;
 
+	if (idx >= 0) /* fake does < 0 */
+		c1 = cpuc->event_constraint[idx];
+
 	/*
 	 * first time only
 	 * - static constraint: no change across incremental scheduling calls


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249805 — [PATCH 4.1 019/202] perf tools: Fix copying of /proc/kcore

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:40 +0200
Subject[PATCH 4.1 019/202] perf tools: Fix copying of /proc/kcore
Message-ID<qkMZd-1kD-49@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Adrian Hunter <adrian.hunter@intel.com>

commit b5cabbcbd157a4bf5a92dfc85134999a3b55342d upstream.

A copy of /proc/kcore containing the kernel text can be made to the
buildid cache. e.g.

	perf buildid-cache -v -k /proc/kcore

To workaround objdump limitations, a copy is also made when annotating
against /proc/kcore.

The copying process stops working from libelf about v1.62 onwards (the
problem was found with v1.63).

The cause is that a call to gelf_getphdr() in kcore__add_phdr() fails
because additional validation has been added to gelf_getphdr().

The use of gelf_getphdr() is a misguided attempt to get default
initialization of the Gelf_Phdr structure.  That should not be
necessary because every member of the Gelf_Phdr structure is
subsequently assigned.  So just remove the call to gelf_getphdr().

Similarly, a call to gelf_getehdr() in gelf_kcore__init() can be
removed also.

Committer notes:

Note to stable@kernel.org, from Adrian in the cover letter for this
patchkit:

The "Fix copying of /proc/kcore" problem goes back to v3.13 if you think
it is important enough for stable.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1443089122-19082-3-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 tools/perf/util/symbol-elf.c |   33 ++++++++++++---------------------
 1 file changed, 12 insertions(+), 21 deletions(-)

--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -1253,8 +1253,6 @@ out_close:
 static int kcore__init(struct kcore *kcore, char *filename, int elfclass,
 		       bool temp)
 {
-	GElf_Ehdr *ehdr;
-
 	kcore->elfclass = elfclass;
 
 	if (temp)
@@ -1271,9 +1269,7 @@ static int kcore__init(struct kcore *kco
 	if (!gelf_newehdr(kcore->elf, elfclass))
 		goto out_end;
 
-	ehdr = gelf_getehdr(kcore->elf, &kcore->ehdr);
-	if (!ehdr)
-		goto out_end;
+	memset(&kcore->ehdr, 0, sizeof(GElf_Ehdr));
 
 	return 0;
 
@@ -1330,23 +1326,18 @@ static int kcore__copy_hdr(struct kcore
 static int kcore__add_phdr(struct kcore *kcore, int idx, off_t offset,
 			   u64 addr, u64 len)
 {
-	GElf_Phdr gphdr;
-	GElf_Phdr *phdr;
-
-	phdr = gelf_getphdr(kcore->elf, idx, &gphdr);
-	if (!phdr)
-		return -1;
-
-	phdr->p_type	= PT_LOAD;
-	phdr->p_flags	= PF_R | PF_W | PF_X;
-	phdr->p_offset	= offset;
-	phdr->p_vaddr	= addr;
-	phdr->p_paddr	= 0;
-	phdr->p_filesz	= len;
-	phdr->p_memsz	= len;
-	phdr->p_align	= page_size;
+	GElf_Phdr phdr = {
+		.p_type		= PT_LOAD,
+		.p_flags	= PF_R | PF_W | PF_X,
+		.p_offset	= offset,
+		.p_vaddr	= addr,
+		.p_paddr	= 0,
+		.p_filesz	= len,
+		.p_memsz	= len,
+		.p_align	= page_size,
+	};
 
-	if (!gelf_update_phdr(kcore->elf, idx, phdr))
+	if (!gelf_update_phdr(kcore->elf, idx, &phdr))
 		return -1;
 
 	return 0;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249826 — [PATCH 4.1 200/202] mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1)

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:50 +0200
Subject[PATCH 4.1 200/202] mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1)
Message-ID<qkN8S-1wZ-21@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Joonsoo Kim <js1304@gmail.com>

commit 03a2d2a3eafe4015412cf4e9675ca0e2d9204074 upstream.

Commit description is copied from the original post of this bug:

  http://comments.gmane.org/gmane.linux.kernel.mm/135349

Kernels after v3.9 use kmalloc_size(INDEX_NODE + 1) to get the next
larger cache size than the size index INDEX_NODE mapping.  In kernels
3.9 and earlier we used malloc_sizes[INDEX_L3 + 1].cs_size.

However, sometimes we can't get the right output we expected via
kmalloc_size(INDEX_NODE + 1), causing a BUG().

The mapping table in the latest kernel is like:
    index = {0,   1,  2 ,  3,  4,   5,   6,   n}
     size = {0,   96, 192, 8, 16,  32,  64,   2^n}
The mapping table before 3.10 is like this:
    index = {0 , 1 , 2,   3,  4 ,  5 ,  6,   n}
    size  = {32, 64, 96, 128, 192, 256, 512, 2^(n+3)}

The problem on my mips64 machine is as follows:

(1) When configured DEBUG_SLAB && DEBUG_PAGEALLOC && DEBUG_LOCK_ALLOC
    && DEBUG_SPINLOCK, the sizeof(struct kmem_cache_node) will be "150",
    and the macro INDEX_NODE turns out to be "2": #define INDEX_NODE
    kmalloc_index(sizeof(struct kmem_cache_node))

(2) Then the result of kmalloc_size(INDEX_NODE + 1) is 8.

(3) Then "if(size >= kmalloc_size(INDEX_NODE + 1)" will lead to "size
    = PAGE_SIZE".

(4) Then "if ((size >= (PAGE_SIZE >> 3))" test will be satisfied and
    "flags |= CFLGS_OFF_SLAB" will be covered.

(5) if (flags & CFLGS_OFF_SLAB)" test will be satisfied and will go to
    "cachep->slabp_cache = kmalloc_slab(slab_size, 0u)", and the result
    here may be NULL while kernel bootup.

(6) Finally,"BUG_ON(ZERO_OR_NULL_PTR(cachep->slabp_cache));" causes the
    BUG info as the following shows (may be only mips64 has this problem):

This patch fixes the problem of kmalloc_size(INDEX_NODE + 1) and removes
the BUG by adding 'size >= 256' check to guarantee that all necessary
small sized slabs are initialized regardless sequence of slab size in
mapping table.

Fixes: e33660165c90 ("slab: Use common kmalloc_index/kmalloc_size...")
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Reported-by: Liuhailong <liu.hailong6@zte.com.cn>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 mm/slab.c |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2189,9 +2189,16 @@ __kmem_cache_create (struct kmem_cache *
 			size += BYTES_PER_WORD;
 	}
 #if FORCED_DEBUG && defined(CONFIG_DEBUG_PAGEALLOC)
-	if (size >= kmalloc_size(INDEX_NODE + 1)
-	    && cachep->object_size > cache_line_size()
-	    && ALIGN(size, cachep->align) < PAGE_SIZE) {
+	/*
+	 * To activate debug pagealloc, off-slab management is necessary
+	 * requirement. In early phase of initialization, small sized slab
+	 * doesn't get initialized so it would not be possible. So, we need
+	 * to check size >= 256. It guarantees that all necessary small
+	 * sized slab is initialized in current slab initialization sequence.
+	 */
+	if (!slab_early_init && size >= kmalloc_size(INDEX_NODE) &&
+		size >= 256 && cachep->object_size > cache_line_size() &&
+		ALIGN(size, cachep->align) < PAGE_SIZE) {
 		cachep->obj_offset += PAGE_SIZE - ALIGN(size, cachep->align);
 		size = PAGE_SIZE;
 	}


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249827 — [PATCH 4.1 152/202] usb: chipidea: udc: using the correct stall implementation

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:50 +0200
Subject[PATCH 4.1 152/202] usb: chipidea: udc: using the correct stall implementation
Message-ID<qkN8S-1wZ-23@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Peter Chen <peter.chen@freescale.com>

commit 56ffa1d154c7e12af16273f0cdc42690dd05caf5 upstream.

According to spec, there are functional and protocol stalls.

For functional stall, it is for bulk and interrupt endpoints,
below are cases for it:
- Host sends SET_FEATURE request for Set-Halt, the udc driver
needs to set stall, and return true unconditionally.
- The gadget driver may call usb_ep_set_halt to stall certain
endpoints, if there is a transfer in pending, the udc driver
should not set stall, and return -EAGAIN accordingly.
These two kinds of stall need to be cleared by host using CLEAR_FEATURE
request (Clear-Halt).

For protocol stall, it is for control endpoint, this stall will
be set if the control request has failed. This stall will be
cleared by next setup request (hardware will do it).

It fixed usbtest (drivers/usb/misc/usbtest.c) Test 13 "set/clear halt"
test failure, meanwhile, this change has been verified by
USB2 CV Compliance Test and MSC Tests.

Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Felipe Balbi <balbi@ti.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/chipidea/udc.c |   84 +++++++++++++++++++++++----------------------
 1 file changed, 44 insertions(+), 40 deletions(-)

--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -656,6 +656,44 @@ __acquires(hwep->lock)
 	return 0;
 }
 
+static int _ep_set_halt(struct usb_ep *ep, int value, bool check_transfer)
+{
+	struct ci_hw_ep *hwep = container_of(ep, struct ci_hw_ep, ep);
+	int direction, retval = 0;
+	unsigned long flags;
+
+	if (ep == NULL || hwep->ep.desc == NULL)
+		return -EINVAL;
+
+	if (usb_endpoint_xfer_isoc(hwep->ep.desc))
+		return -EOPNOTSUPP;
+
+	spin_lock_irqsave(hwep->lock, flags);
+
+	if (value && hwep->dir == TX && check_transfer &&
+		!list_empty(&hwep->qh.queue) &&
+			!usb_endpoint_xfer_control(hwep->ep.desc)) {
+		spin_unlock_irqrestore(hwep->lock, flags);
+		return -EAGAIN;
+	}
+
+	direction = hwep->dir;
+	do {
+		retval |= hw_ep_set_halt(hwep->ci, hwep->num, hwep->dir, value);
+
+		if (!value)
+			hwep->wedge = 0;
+
+		if (hwep->type == USB_ENDPOINT_XFER_CONTROL)
+			hwep->dir = (hwep->dir == TX) ? RX : TX;
+
+	} while (hwep->dir != direction);
+
+	spin_unlock_irqrestore(hwep->lock, flags);
+	return retval;
+}
+
+
 /**
  * _gadget_stop_activity: stops all USB activity, flushes & disables all endpts
  * @gadget: gadget
@@ -1051,7 +1089,7 @@ __acquires(ci->lock)
 				num += ci->hw_ep_max / 2;
 
 			spin_unlock(&ci->lock);
-			err = usb_ep_set_halt(&ci->ci_hw_ep[num].ep);
+			err = _ep_set_halt(&ci->ci_hw_ep[num].ep, 1, false);
 			spin_lock(&ci->lock);
 			if (!err)
 				isr_setup_status_phase(ci);
@@ -1110,8 +1148,8 @@ delegate:
 
 	if (err < 0) {
 		spin_unlock(&ci->lock);
-		if (usb_ep_set_halt(&hwep->ep))
-			dev_err(ci->dev, "error: ep_set_halt\n");
+		if (_ep_set_halt(&hwep->ep, 1, false))
+			dev_err(ci->dev, "error: _ep_set_halt\n");
 		spin_lock(&ci->lock);
 	}
 }
@@ -1142,9 +1180,9 @@ __acquires(ci->lock)
 					err = isr_setup_status_phase(ci);
 				if (err < 0) {
 					spin_unlock(&ci->lock);
-					if (usb_ep_set_halt(&hwep->ep))
+					if (_ep_set_halt(&hwep->ep, 1, false))
 						dev_err(ci->dev,
-							"error: ep_set_halt\n");
+						"error: _ep_set_halt\n");
 					spin_lock(&ci->lock);
 				}
 			}
@@ -1390,41 +1428,7 @@ static int ep_dequeue(struct usb_ep *ep,
  */
 static int ep_set_halt(struct usb_ep *ep, int value)
 {
-	struct ci_hw_ep *hwep = container_of(ep, struct ci_hw_ep, ep);
-	int direction, retval = 0;
-	unsigned long flags;
-
-	if (ep == NULL || hwep->ep.desc == NULL)
-		return -EINVAL;
-
-	if (usb_endpoint_xfer_isoc(hwep->ep.desc))
-		return -EOPNOTSUPP;
-
-	spin_lock_irqsave(hwep->lock, flags);
-
-#ifndef STALL_IN
-	/* g_file_storage MS compliant but g_zero fails chapter 9 compliance */
-	if (value && hwep->type == USB_ENDPOINT_XFER_BULK && hwep->dir == TX &&
-	    !list_empty(&hwep->qh.queue)) {
-		spin_unlock_irqrestore(hwep->lock, flags);
-		return -EAGAIN;
-	}
-#endif
-
-	direction = hwep->dir;
-	do {
-		retval |= hw_ep_set_halt(hwep->ci, hwep->num, hwep->dir, value);
-
-		if (!value)
-			hwep->wedge = 0;
-
-		if (hwep->type == USB_ENDPOINT_XFER_CONTROL)
-			hwep->dir = (hwep->dir == TX) ? RX : TX;
-
-	} while (hwep->dir != direction);
-
-	spin_unlock_irqrestore(hwep->lock, flags);
-	return retval;
+	return _ep_set_halt(ep, value, true);
 }
 
 /**


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249830 — [PATCH 4.1 044/202] x86/efi: Fix boot crash by mapping EFI memmap entries bottom-up at runtime, instead of top-down

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:50 +0200
Subject[PATCH 4.1 044/202] x86/efi: Fix boot crash by mapping EFI memmap entries bottom-up at runtime, instead of top-down
Message-ID<qkN8S-1wZ-31@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Matt Fleming <matt.fleming@intel.com>

commit a5caa209ba9c29c6421292e7879d2387a2ef39c9 upstream.

Beginning with UEFI v2.5 EFI_PROPERTIES_TABLE was introduced
that signals that the firmware PE/COFF loader supports splitting
code and data sections of PE/COFF images into separate EFI
memory map entries. This allows the kernel to map those regions
with strict memory protections, e.g. EFI_MEMORY_RO for code,
EFI_MEMORY_XP for data, etc.

Unfortunately, an unwritten requirement of this new feature is
that the regions need to be mapped with the same offsets
relative to each other as observed in the EFI memory map. If
this is not done crashes like this may occur,

  BUG: unable to handle kernel paging request at fffffffefe6086dd
  IP: [<fffffffefe6086dd>] 0xfffffffefe6086dd
  Call Trace:
   [<ffffffff8104c90e>] efi_call+0x7e/0x100
   [<ffffffff81602091>] ? virt_efi_set_variable+0x61/0x90
   [<ffffffff8104c583>] efi_delete_dummy_variable+0x63/0x70
   [<ffffffff81f4e4aa>] efi_enter_virtual_mode+0x383/0x392
   [<ffffffff81f37e1b>] start_kernel+0x38a/0x417
   [<ffffffff81f37495>] x86_64_start_reservations+0x2a/0x2c
   [<ffffffff81f37582>] x86_64_start_kernel+0xeb/0xef

Here 0xfffffffefe6086dd refers to an address the firmware
expects to be mapped but which the OS never claimed was mapped.
The issue is that included in these regions are relative
addresses to other regions which were emitted by the firmware
toolchain before the "splitting" of sections occurred at
runtime.

Needless to say, we don't satisfy this unwritten requirement on
x86_64 and instead map the EFI memory map entries in reverse
order. The above crash is almost certainly triggerable with any
kernel newer than v3.13 because that's when we rewrote the EFI
runtime region mapping code, in commit d2f7cbe7b26a ("x86/efi:
Runtime services virtual mapping"). For kernel versions before
v3.13 things may work by pure luck depending on the
fragmentation of the kernel virtual address space at the time we
map the EFI regions.

Instead of mapping the EFI memory map entries in reverse order,
where entry N has a higher virtual address than entry N+1, map
them in the same order as they appear in the EFI memory map to
preserve this relative offset between regions.

This patch has been kept as small as possible with the intention
that it should be applied aggressively to stable and
distribution kernels. It is very much a bugfix rather than
support for a new feature, since when EFI_PROPERTIES_TABLE is
enabled we must map things as outlined above to even boot - we
have no way of asking the firmware not to split the code/data
regions.

In fact, this patch doesn't even make use of the more strict
memory protections available in UEFI v2.5. That will come later.

Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Chun-Yi <jlee@suse.com>
Cc: Dave Young <dyoung@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: James Bottomley <JBottomley@Odin.com>
Cc: Lee, Chun-Yi <jlee@suse.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Jones <pjones@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/1443218539-7610-2-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/platform/efi/efi.c |   67 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 66 insertions(+), 1 deletion(-)

--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -679,6 +679,70 @@ out:
 }
 
 /*
+ * Iterate the EFI memory map in reverse order because the regions
+ * will be mapped top-down. The end result is the same as if we had
+ * mapped things forward, but doesn't require us to change the
+ * existing implementation of efi_map_region().
+ */
+static inline void *efi_map_next_entry_reverse(void *entry)
+{
+	/* Initial call */
+	if (!entry)
+		return memmap.map_end - memmap.desc_size;
+
+	entry -= memmap.desc_size;
+	if (entry < memmap.map)
+		return NULL;
+
+	return entry;
+}
+
+/*
+ * efi_map_next_entry - Return the next EFI memory map descriptor
+ * @entry: Previous EFI memory map descriptor
+ *
+ * This is a helper function to iterate over the EFI memory map, which
+ * we do in different orders depending on the current configuration.
+ *
+ * To begin traversing the memory map @entry must be %NULL.
+ *
+ * Returns %NULL when we reach the end of the memory map.
+ */
+static void *efi_map_next_entry(void *entry)
+{
+	if (!efi_enabled(EFI_OLD_MEMMAP) && efi_enabled(EFI_64BIT)) {
+		/*
+		 * Starting in UEFI v2.5 the EFI_PROPERTIES_TABLE
+		 * config table feature requires us to map all entries
+		 * in the same order as they appear in the EFI memory
+		 * map. That is to say, entry N must have a lower
+		 * virtual address than entry N+1. This is because the
+		 * firmware toolchain leaves relative references in
+		 * the code/data sections, which are split and become
+		 * separate EFI memory regions. Mapping things
+		 * out-of-order leads to the firmware accessing
+		 * unmapped addresses.
+		 *
+		 * Since we need to map things this way whether or not
+		 * the kernel actually makes use of
+		 * EFI_PROPERTIES_TABLE, let's just switch to this
+		 * scheme by default for 64-bit.
+		 */
+		return efi_map_next_entry_reverse(entry);
+	}
+
+	/* Initial call */
+	if (!entry)
+		return memmap.map;
+
+	entry += memmap.desc_size;
+	if (entry >= memmap.map_end)
+		return NULL;
+
+	return entry;
+}
+
+/*
  * Map the efi memory ranges of the runtime services and update new_mmap with
  * virtual addresses.
  */
@@ -688,7 +752,8 @@ static void * __init efi_map_regions(int
 	unsigned long left = 0;
 	efi_memory_desc_t *md;
 
-	for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
+	p = NULL;
+	while ((p = efi_map_next_entry(p))) {
 		md = p;
 		if (!(md->attribute & EFI_MEMORY_RUNTIME)) {
 #ifdef CONFIG_X86_64


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249831 — [PATCH 4.1 187/202] overlayfs: Make f_path always point to the overlay and f_inode to the underlay

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:50 +0200
Subject[PATCH 4.1 187/202] overlayfs: Make f_path always point to the overlay and f_inode to the underlay
Message-ID<qkN8S-1wZ-25@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: David Howells <dhowells@redhat.com>

commit 4bacc9c9234c7c8eec44f5ed4e960d9f96fa0f01 upstream.

Make file->f_path always point to the overlay dentry so that the path in
/proc/pid/fd is correct and to ensure that label-based LSMs have access to the
overlay as well as the underlay (path-based LSMs probably don't need it).

Using my union testsuite to set things up, before the patch I see:

	[root@andromeda union-testsuite]# bash 5</mnt/a/foo107
	[root@andromeda union-testsuite]# ls -l /proc/$$/fd/
	...
	lr-x------. 1 root root 64 Jun  5 14:38 5 -> /a/foo107
	[root@andromeda union-testsuite]# stat /mnt/a/foo107
	...
	Device: 23h/35d Inode: 13381       Links: 1
	...
	[root@andromeda union-testsuite]# stat -L /proc/$$/fd/5
	...
	Device: 23h/35d Inode: 13381       Links: 1
	...

After the patch:

	[root@andromeda union-testsuite]# bash 5</mnt/a/foo107
	[root@andromeda union-testsuite]# ls -l /proc/$$/fd/
	...
	lr-x------. 1 root root 64 Jun  5 14:22 5 -> /mnt/a/foo107
	[root@andromeda union-testsuite]# stat /mnt/a/foo107
	...
	Device: 23h/35d Inode: 40346       Links: 1
	...
	[root@andromeda union-testsuite]# stat -L /proc/$$/fd/5
	...
	Device: 23h/35d Inode: 40346       Links: 1
	...

Note the change in where /proc/$$/fd/5 points to in the ls command.  It was
pointing to /a/foo107 (which doesn't exist) and now points to /mnt/a/foo107
(which is correct).

The inode accessed, however, is the lower layer.  The union layer is on device
25h/37d and the upper layer on 24h/36d.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: "Kamata, Munehisa" <kamatam@amazon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/dcache.c              |    5 +++-
 fs/internal.h            |    1 
 fs/open.c                |   49 ++++++++++++++++++++++++-----------------------
 fs/overlayfs/inode.c     |   14 +++++--------
 fs/overlayfs/overlayfs.h |    1 
 fs/overlayfs/super.c     |    1 
 include/linux/dcache.h   |    2 +
 include/linux/fs.h       |    2 -
 8 files changed, 41 insertions(+), 34 deletions(-)

--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1676,7 +1676,8 @@ void d_set_d_op(struct dentry *dentry, c
 				DCACHE_OP_COMPARE	|
 				DCACHE_OP_REVALIDATE	|
 				DCACHE_OP_WEAK_REVALIDATE	|
-				DCACHE_OP_DELETE ));
+				DCACHE_OP_DELETE	|
+				DCACHE_OP_SELECT_INODE));
 	dentry->d_op = op;
 	if (!op)
 		return;
@@ -1692,6 +1693,8 @@ void d_set_d_op(struct dentry *dentry, c
 		dentry->d_flags |= DCACHE_OP_DELETE;
 	if (op->d_prune)
 		dentry->d_flags |= DCACHE_OP_PRUNE;
+	if (op->d_select_inode)
+		dentry->d_flags |= DCACHE_OP_SELECT_INODE;
 
 }
 EXPORT_SYMBOL(d_set_d_op);
--- a/fs/internal.h
+++ b/fs/internal.h
@@ -107,6 +107,7 @@ extern struct file *do_file_open_root(st
 extern long do_handle_open(int mountdirfd,
 			   struct file_handle __user *ufh, int open_flag);
 extern int open_check_o_direct(struct file *f);
+extern int vfs_open(const struct path *, struct file *, const struct cred *);
 
 /*
  * inode.c
--- a/fs/open.c
+++ b/fs/open.c
@@ -678,18 +678,18 @@ int open_check_o_direct(struct file *f)
 }
 
 static int do_dentry_open(struct file *f,
+			  struct inode *inode,
 			  int (*open)(struct inode *, struct file *),
 			  const struct cred *cred)
 {
 	static const struct file_operations empty_fops = {};
-	struct inode *inode;
 	int error;
 
 	f->f_mode = OPEN_FMODE(f->f_flags) | FMODE_LSEEK |
 				FMODE_PREAD | FMODE_PWRITE;
 
 	path_get(&f->f_path);
-	inode = f->f_inode = f->f_path.dentry->d_inode;
+	f->f_inode = inode;
 	f->f_mapping = inode->i_mapping;
 
 	if (unlikely(f->f_flags & O_PATH)) {
@@ -793,7 +793,8 @@ int finish_open(struct file *file, struc
 	BUG_ON(*opened & FILE_OPENED); /* once it's opened, it's opened */
 
 	file->f_path.dentry = dentry;
-	error = do_dentry_open(file, open, current_cred());
+	error = do_dentry_open(file, d_backing_inode(dentry), open,
+			       current_cred());
 	if (!error)
 		*opened |= FILE_OPENED;
 
@@ -822,6 +823,28 @@ int finish_no_open(struct file *file, st
 }
 EXPORT_SYMBOL(finish_no_open);
 
+/**
+ * vfs_open - open the file at the given path
+ * @path: path to open
+ * @file: newly allocated file with f_flag initialized
+ * @cred: credentials to use
+ */
+int vfs_open(const struct path *path, struct file *file,
+	     const struct cred *cred)
+{
+	struct dentry *dentry = path->dentry;
+	struct inode *inode = dentry->d_inode;
+
+	file->f_path = *path;
+	if (dentry->d_flags & DCACHE_OP_SELECT_INODE) {
+		inode = dentry->d_op->d_select_inode(dentry, file->f_flags);
+		if (IS_ERR(inode))
+			return PTR_ERR(inode);
+	}
+
+	return do_dentry_open(file, inode, NULL, cred);
+}
+
 struct file *dentry_open(const struct path *path, int flags,
 			 const struct cred *cred)
 {
@@ -853,26 +876,6 @@ struct file *dentry_open(const struct pa
 }
 EXPORT_SYMBOL(dentry_open);
 
-/**
- * vfs_open - open the file at the given path
- * @path: path to open
- * @filp: newly allocated file with f_flag initialized
- * @cred: credentials to use
- */
-int vfs_open(const struct path *path, struct file *filp,
-	     const struct cred *cred)
-{
-	struct inode *inode = path->dentry->d_inode;
-
-	if (inode->i_op->dentry_open)
-		return inode->i_op->dentry_open(path->dentry, filp, cred);
-	else {
-		filp->f_path = *path;
-		return do_dentry_open(filp, NULL, cred);
-	}
-}
-EXPORT_SYMBOL(vfs_open);
-
 static inline int build_open_flags(int flags, umode_t mode, struct open_flags *op)
 {
 	int lookup_flags = 0;
--- a/fs/overlayfs/inode.c
+++ b/fs/overlayfs/inode.c
@@ -336,31 +336,30 @@ static bool ovl_open_need_copy_up(int fl
 	return true;
 }
 
-static int ovl_dentry_open(struct dentry *dentry, struct file *file,
-		    const struct cred *cred)
+struct inode *ovl_d_select_inode(struct dentry *dentry, unsigned file_flags)
 {
 	int err;
 	struct path realpath;
 	enum ovl_path_type type;
 
 	type = ovl_path_real(dentry, &realpath);
-	if (ovl_open_need_copy_up(file->f_flags, type, realpath.dentry)) {
+	if (ovl_open_need_copy_up(file_flags, type, realpath.dentry)) {
 		err = ovl_want_write(dentry);
 		if (err)
-			return err;
+			return ERR_PTR(err);
 
-		if (file->f_flags & O_TRUNC)
+		if (file_flags & O_TRUNC)
 			err = ovl_copy_up_last(dentry, NULL, true);
 		else
 			err = ovl_copy_up(dentry);
 		ovl_drop_write(dentry);
 		if (err)
-			return err;
+			return ERR_PTR(err);
 
 		ovl_path_upper(dentry, &realpath);
 	}
 
-	return vfs_open(&realpath, file, cred);
+	return d_backing_inode(realpath.dentry);
 }
 
 static const struct inode_operations ovl_file_inode_operations = {
@@ -371,7 +370,6 @@ static const struct inode_operations ovl
 	.getxattr	= ovl_getxattr,
 	.listxattr	= ovl_listxattr,
 	.removexattr	= ovl_removexattr,
-	.dentry_open	= ovl_dentry_open,
 };
 
 static const struct inode_operations ovl_symlink_inode_operations = {
--- a/fs/overlayfs/overlayfs.h
+++ b/fs/overlayfs/overlayfs.h
@@ -173,6 +173,7 @@ ssize_t ovl_getxattr(struct dentry *dent
 		     void *value, size_t size);
 ssize_t ovl_listxattr(struct dentry *dentry, char *list, size_t size);
 int ovl_removexattr(struct dentry *dentry, const char *name);
+struct inode *ovl_d_select_inode(struct dentry *dentry, unsigned file_flags);
 
 struct inode *ovl_new_inode(struct super_block *sb, umode_t mode,
 			    struct ovl_entry *oe);
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -275,6 +275,7 @@ static void ovl_dentry_release(struct de
 
 static const struct dentry_operations ovl_dentry_operations = {
 	.d_release = ovl_dentry_release,
+	.d_select_inode = ovl_d_select_inode,
 };
 
 static struct ovl_entry *ovl_alloc_entry(unsigned int numlower)
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -160,6 +160,7 @@ struct dentry_operations {
 	char *(*d_dname)(struct dentry *, char *, int);
 	struct vfsmount *(*d_automount)(struct path *);
 	int (*d_manage)(struct dentry *, bool);
+	struct inode *(*d_select_inode)(struct dentry *, unsigned);
 } ____cacheline_aligned;
 
 /*
@@ -225,6 +226,7 @@ struct dentry_operations {
 
 #define DCACHE_MAY_FREE			0x00800000
 #define DCACHE_FALLTHRU			0x01000000 /* Fall through to lower layer */
+#define DCACHE_OP_SELECT_INODE		0x02000000 /* Unioned entry: dcache op selects inode */
 
 extern seqlock_t rename_lock;
 
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1641,7 +1641,6 @@ struct inode_operations {
 	int (*set_acl)(struct inode *, struct posix_acl *, int);
 
 	/* WARNING: probably going away soon, do not use! */
-	int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
 } ____cacheline_aligned;
 
 ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
@@ -2193,7 +2192,6 @@ extern struct file *file_open_name(struc
 extern struct file *filp_open(const char *, int, umode_t);
 extern struct file *file_open_root(struct dentry *, struct vfsmount *,
 				   const char *, int);
-extern int vfs_open(const struct path *, struct file *, const struct cred *);
 extern struct file * dentry_open(const struct path *, int, const struct cred *);
 extern int filp_close(struct file *, fl_owner_t id);
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249834 — [PATCH 4.1 201/202] MIPS: Fix console output for Fulong2e system

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:50 +0200
Subject[PATCH 4.1 201/202] MIPS: Fix console output for Fulong2e system
Message-ID<qkN8T-1wZ-37@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Guenter Roeck <linux@roeck-us.net>

commit fc2ca674470bbfe11d72a20a3f19fd3dc43bfca0 upstream.

Commit 3adeb2566b9b ("MIPS: Loongson: Improve LEFI firmware interface")
made the number of UARTs dynamic if LEFI_FIRMWARE_INTERFACE is configured.
Unfortunately, it did not initialize the number of UARTs if
LEFI_FIRMWARE_INTERFACE is not configured. As a result, the Fulong2e
system has no console.

Fixes: 3adeb2566b9b ("MIPS: Loongson: Improve LEFI firmware interface")
Acked-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/11076/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/loongson/common/env.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/arch/mips/loongson/common/env.c
+++ b/arch/mips/loongson/common/env.c
@@ -64,6 +64,9 @@ void __init prom_init_env(void)
 	}
 	if (memsize == 0)
 		memsize = 256;
+
+	loongson_sysconf.nr_uarts = 1;
+
 	pr_info("memsize=%u, highmemsize=%u\n", memsize, highmemsize);
 #else
 	struct boot_params *boot_p;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249839 — [PATCH 4.1 183/202] igb: do not re-init SR-IOV during probe

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:50 +0200
Subject[PATCH 4.1 183/202] igb: do not re-init SR-IOV during probe
Message-ID<qkN8T-1wZ-47@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: Stefan Assmann <sassmann@kpanic.de>

commit 6423fc34160939142d72ffeaa2db6408317f54df upstream.

During driver probing the following code path is triggered.
igb_probe
->igb_sw_init
  ->igb_probe_vfs
    ->igb_pci_enable_sriov
      ->igb_sriov_reinit

Doing the SR-IOV re-init is not necessary during probing since we're
starting from scratch. Here we can call igb_enable_sriov() right away.

Running igb_sriov_reinit() during igb_probe() also seems to cause
occasional packet loss on some onboard 82576 NICs. Reproduced on
Dell and HP servers with onboard 82576 NICs.
Example:
Intel Corporation 82576 Gigabit Network Connection [8086:10c9] (rev 01)
Subsystem: Dell Device [1028:0481]

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Cc: Daniel J Blueman <daniel@numascale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/igb/igb_main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2864,7 +2864,7 @@ static void igb_probe_vfs(struct igb_ada
 		return;
 
 	pci_sriov_set_totalvfs(pdev, 7);
-	igb_pci_enable_sriov(pdev, max_vfs);
+	igb_enable_sriov(pdev, max_vfs);
 
 #endif /* CONFIG_PCI_IOV */
 }


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249841 — [PATCH 4.1 045/202] x86/kexec: Fix kexec crash in syscall kexec_file_load()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:50 +0200
Subject[PATCH 4.1 045/202] x86/kexec: Fix kexec crash in syscall kexec_file_load()
Message-ID<qkN8T-1wZ-51@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>

commit e3c41e37b0f4b18cbd4dac76cbeece5a7558b909 upstream.

The original bug is a page fault crash that sometimes happens
on big machines when preparing ELF headers:

    BUG: unable to handle kernel paging request at ffffc90613fc9000
    IP: [<ffffffff8103d645>] prepare_elf64_ram_headers_callback+0x165/0x260

The bug is caused by us under-counting the number of memory ranges
and subsequently not allocating enough ELF header space for them.
The bug is typically masked on smaller systems, because the ELF header
allocation is rounded up to the next page.

This patch modifies the code in fill_up_crash_elf_data() by using
walk_system_ram_res() instead of walk_system_ram_range() to correctly
count the max number of crash memory ranges. That's because the
walk_system_ram_range() filters out small memory regions that
reside in the same page, but walk_system_ram_res() does not.

Here's how I found the bug:

After tracing prepare_elf64_headers() and prepare_elf64_ram_headers_callback(),
the code uses walk_system_ram_res() to fill-in crash memory regions information
to the program header, so it counts those small memory regions that
reside in a page area.

But, when the kernel was using walk_system_ram_range() in
fill_up_crash_elf_data() to count the number of crash memory regions,
it filters out small regions.

I printed those small memory regions, for example:

  kexec: Get nr_ram ranges. vaddr=0xffff880077592258 paddr=0x77592258, sz=0xdc0

Based on the code in walk_system_ram_range(), this memory region
will be filtered out:

  pfn = (0x77592258 + 0x1000 - 1) >> 12 = 0x77593
  end_pfn = (0x77592258 + 0xfc0 -1 + 1) >> 12 = 0x77593
  end_pfn - pfn = 0x77593 - 0x77593 = 0  <=== if (end_pfn > pfn) is FALSE

So, the max_nr_ranges that's counted by the kernel doesn't include
small memory regions - causing us to under-allocate the required space.
That causes the page fault crash that happens in a later code path
when preparing ELF headers.

This bug is not easy to reproduce on small machines that have few
CPUs, because the allocated page aligned ELF buffer has more free
space to cover those small memory regions' PT_LOAD headers.

Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Baoquan He <bhe@redhat.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: kexec@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/1443531537-29436-1-git-send-email-jlee@suse.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kernel/crash.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -184,10 +184,9 @@ void native_machine_crash_shutdown(struc
 }
 
 #ifdef CONFIG_KEXEC_FILE
-static int get_nr_ram_ranges_callback(unsigned long start_pfn,
-				unsigned long nr_pfn, void *arg)
+static int get_nr_ram_ranges_callback(u64 start, u64 end, void *arg)
 {
-	int *nr_ranges = arg;
+	unsigned int *nr_ranges = arg;
 
 	(*nr_ranges)++;
 	return 0;
@@ -213,7 +212,7 @@ static void fill_up_crash_elf_data(struc
 
 	ced->image = image;
 
-	walk_system_ram_range(0, -1, &nr_ranges,
+	walk_system_ram_res(0, -1, &nr_ranges,
 				get_nr_ram_ranges_callback);
 
 	ced->max_nr_ranges = nr_ranges;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249849 — [PATCH 4.1 055/202] spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is disabled

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 05:50 +0200
Subject[PATCH 4.1 055/202] spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is disabled
Message-ID<qkN8U-1wZ-67@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: "Tan, Jui Nee" <jui.nee.tan@intel.com>

commit 02bc933ebb59208f42c2e6305b2c17fd306f695d upstream.

On Intel Baytrail, there is case when interrupt handler get called, no SPI
message is captured. The RX FIFO is indeed empty when RX timeout pending
interrupt (SSSR_TINT) happens.

Use the BIOS version where both HSUART and SPI are on the same IRQ. Both
drivers are using IRQF_SHARED when calling the request_irq function. When
running two separate and independent SPI and HSUART application that
generate data traffic on both components, user will see messages like
below on the console:

  pxa2xx-spi pxa2xx-spi.0: bad message state in interrupt handler

This commit will fix this by first checking Receiver Time-out Interrupt,
if it is disabled, ignore the request and return without servicing.

Signed-off-by: Tan, Jui Nee <jui.nee.tan@intel.com>
Acked-by: Jarkko Nikula <jarkko.nikula@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 |    4 ++++
 1 file changed, 4 insertions(+)

--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -624,6 +624,10 @@ static irqreturn_t ssp_int(int irq, void
 	if (!(sccr1_reg & SSCR1_TIE))
 		mask &= ~SSSR_TFS;
 
+	/* Ignore RX timeout interrupt if it is disabled */
+	if (!(sccr1_reg & SSCR1_TINTE))
+		mask &= ~SSSR_TINT;
+
 	if (!(status & mask))
 		return IRQ_NONE;
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249852 — [PATCH 4.1 194/202] staging: speakup: fix speakup-r regression

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-10-18 06:00 +0200
Subject[PATCH 4.1 194/202] staging: speakup: fix speakup-r regression
Message-ID<qkNix-1Is-1@gated-at.bofh.it>
In reply to#1249548
4.1-stable review patch.  If anyone has any objections, please let me know.

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

From: "covici@ccs.covici.com" <covici@ccs.covici.com>

commit b1d562acc78f0af46de0dfe447410bc40bdb7ece upstream.

Here is a patch to make speakup-r work again.

It broke in 3.6 due to commit 4369c64c79a22b98d3b7eff9d089196cd878a10a
"Input: Send events one packet at a time)

The problem was that the fakekey.c routine to fake a down arrow no
longer functioned properly and putting the input_sync fixed it.

Fixes: 4369c64c79a22b98d3b7eff9d089196cd878a10a
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: John Covici <covici@ccs.covici.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/speakup/fakekey.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/staging/speakup/fakekey.c
+++ b/drivers/staging/speakup/fakekey.c
@@ -81,6 +81,7 @@ void speakup_fake_down_arrow(void)
 	__this_cpu_write(reporting_keystroke, true);
 	input_report_key(virt_keyboard, KEY_DOWN, PRESSED);
 	input_report_key(virt_keyboard, KEY_DOWN, RELEASED);
+	input_sync(virt_keyboard);
 	__this_cpu_write(reporting_keystroke, false);
 
 	/* reenable preemption */


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


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

Back to top | Article view | linux.kernel


csiph-web