Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1481599 > unrolled thread
| Started by | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| First post | 2016-09-12 19:10 +0200 |
| Last post | 2016-09-15 08:20 +0200 |
| Articles | 20 on this page of 147 — 5 participants |
Back to article view | Back to linux.kernel
[PATCH 4.4 000/192] 4.4.21-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:10 +0200
[PATCH 4.4 049/192] [PATCH 050/135] lpfc: Fix the FLOGI discovery logic to comply with T11 standards Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:10 +0200
[PATCH 4.4 033/192] [PATCH 034/135] Drivers: hv: util: Increase the timeout for util services Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:10 +0200
[PATCH 4.4 059/192] [PATCH 061/135] s390/cio: update measurement characteristics Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:10 +0200
[PATCH 4.4 077/192] [PATCH 080/135] qla2xxx: Use ATIO type to send correct tmr response Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:10 +0200
[PATCH 4.4 041/192] [PATCH 042/135] cxl: Fix possible idr warning when contexts are released Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:10 +0200
[PATCH 4.4 112/192] [PATCH 116/135] blk-mq: End unstarted requests on dying queue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 098/192] [PATCH 102/135] proc: revert /proc/<pid>/maps [stack:TID] annotation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 116/192] [PATCH 120/135] block: fix blk_rq_get_max_sectors for driver private requests Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 105/192] [PATCH 109/135] time: Verify time values in adjtimex ADJ_SETOFFSET to avoid overflow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 111/192] [PATCH 115/135] cxlflash: Fix to resolve dead-lock during EEH recovery Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 070/192] [PATCH 073/135] mpt3sas: Fix for Asynchronous completion of timedout IO and task abort of timedout IO. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 130/192] [PATCH 134/135] tipc: fix an infoleak in tipc_nl_compat_link_dump Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 148/192] ext4: fix xattr shifting when expanding inodes part 2 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 183/192] ALSA: hda - Enable subwoofer on Dell Inspiron 7559 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 093/192] [PATCH 097/135] Drivers: hv: vmbus: avoid infinite loop in init_vp_index() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 184/192] ALSA: timer: fix NULL pointer dereference in read()/ioctl() race Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 141/192] [PATCH 4.4 12/16] cxlflash: Move to exponential back-off when cmd_room is not available Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 101/192] [PATCH 105/135] perf/x86/cqm: Fix CQM memory leak and notifier leak Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 160/192] drm: Reject page_flip for !DRIVER_MODESET Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 117/192] [PATCH 121/135] lpfc: Fix DMA faults observed upon plugging loopback connector Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 144/192] kernel: Add noaudit variant of ns_capable() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 187/192] scsi: fix upper bounds check of sense key in scsi_sense_key_string() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 069/192] [PATCH 072/135] mpt3sas: A correction in unmap_resources Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 182/192] ALSA: hda - Add headset mic quirk for Dell Inspiron 5468 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 189/192] cpufreq: Fix GOV_LIMITS handling for the userspace governor Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 174/192] vhost/scsi: fix reuse of &vq->iov[out] in response Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 188/192] metag: Fix atomic_*_return inline asm constraints Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 158/192] s390/sclp_ctl: fix potential information leak with /dev/sclp Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 186/192] ALSA: timer: fix NULL pointer dereference on memory allocation failure Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 125/192] [PATCH 129/135] Input: xpad - move pending clear to the correct location Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 142/192] [PATCH 4.4 13/16] drivers:hv: Lock access to hyperv_mmio resource tree Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 118/192] [PATCH 122/135] HID: core: prevent out-of-bound readings Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 138/192] [PATCH 4.4 08/16] cred: Reject inodes with invalid ids in set_create_file_as() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 176/192] uprobes: Fix the memcg accounting Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 150/192] ext4: avoid deadlock when expanding inode size Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 185/192] ALSA: timer: fix division by zero after SNDRV_TIMER_IOCTL_CONTINUE Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 106/192] [PATCH 110/135] ntp: Fix ADJ_SETOFFSET being used w/ ADJ_NANO Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 192/192] lib/mpi: mpi_write_sgl(): fix skipping of leading zero limbs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 091/192] [PATCH 095/135] arcmsr: fixed getting wrong configuration data Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 128/192] [PATCH 132/135] Bluetooth: Add support for Intel Bluetooth device 8265 [8087:0a2b] Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 190/192] hwrng: exynos - Disable runtime PM on probe failure Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 165/192] timekeeping: Avoid taking lock in NMI path with CONFIG_DEBUG_TIMEKEEPING Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 140/192] [PATCH 4.4 11/16] netfilter: x_tables: check for size overflow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 133/192] [PATCH 4.4 02/16] cxlflash: Fix to avoid virtual LUN failover failure Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 163/192] xfs: fix superblock inprogress check Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 178/192] ALSA: usb-audio: Add sample rate inquiry quirk for B850V3 CP2114 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 164/192] timekeeping: Cap array access in timekeeping_debug Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 122/192] [PATCH 126/135] crypto: vmx - IV size failing on skcipher API Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 068/192] [PATCH 071/135] net: cavium: liquidio: fix check for in progress flag Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 170/192] ovl: listxattr: use strnlen() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 073/192] [PATCH 076/135] drm/i915/bxt: update list of PCIIDs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 180/192] ALSA: fireworks: accessing to user space outside spinlock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 147/192] ext4: fix xattr shifting when expanding inodes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 137/192] [PATCH 4.4 07/16] fs: Check for invalid i_uid in may_follow_link() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 071/192] [PATCH 074/135] i40e/i40evf: Fix RSS rx-flow-hash configuration through ethtool Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 152/192] block: Fix race triggered by blk_set_queue_dying() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 096/192] [PATCH 100/135] cxlflash: Fix to avoid unnecessary scan with internal LUNs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 132/192] [PATCH 4.4 01/16] cxlflash: Fix to escalate LINK_RESET also on port 1 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 102/192] [PATCH 106/135] net: thunderx: Fix for multiqset not configured upon interface toggle Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 135/192] [PATCH 4.4 05/16] udp: properly support MSG_PEEK with truncated buffers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 169/192] ovl: remove posix_acl_default from workdir Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 181/192] ALSA: rawmidi: Fix possible deadlock with virmidi registration Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 154/192] cgroup: reduce read locked section of cgroup_threadgroup_rwsem during fork Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 173/192] bcache: RESERVE_PRIO is too small by one when prio_buckets() is a power of two. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 161/192] drm/msm: fix use of copy_from_user() while holding spinlock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 156/192] powerpc/tm: Avoid SLB faults in treclaim/trecheckpoint when RI=0 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 109/192] [PATCH 113/135] ecryptfs: fix handling of directory opening Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:20 +0200
[PATCH 4.4 168/192] ovl: dont copy up opaqueness Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 149/192] ext4: properly align shifted xattrs when expanding inodes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 155/192] nvme: Call pci_disable_device on the error path. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 131/192] [PATCH 135/135] tipc: fix nl compat regression for link statistics Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 146/192] ext4: validate that metadata blocks do not overlap superblock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 162/192] ASoC: atmel_ssc_dai: Dont unconditionally reset SSC on stream startup Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 104/192] [PATCH 108/135] Input: xpad - correctly handle concurrent LED and FF requests Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 175/192] x86/apic: Do not init irq remapping if ioapic is disabled Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 129/192] [PATCH 133/135] netfilter: x_tables: check for size overflow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 153/192] block: make sure a big bio is split into at most 256 bvecs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 145/192] net: Use ns_capable_noaudit() when determining net sysctl permissions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 179/192] ALSA: firewire-tascam: accessing to user space outside spinlock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 134/192] [PATCH 4.4 04/16] crypto: nx-842 - Mask XERS0 bit in return value Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 171/192] ovl: fix workdir creation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 166/192] lustre: remove unused declaration Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 167/192] [PATCH] wrappers for ->i_mutex access Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 157/192] rds: fix an infoleak in rds_inc_info_copy Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 143/192] [PATCH 4.4 14/16] KEYS: Fix ASN.1 indefinite length object parsing Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 136/192] [PATCH 4.4 06/16] IB/IPoIB: Do not set skb truesize since using one linearskb Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 124/192] [PATCH 128/135] net: thunderx: Fix link status reporting Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 113/192] [PATCH 117/135] btrfs: Continue write in case of can_not_nocow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:30 +0200
[PATCH 4.4 123/192] [PATCH 127/135] x86/hyperv: Avoid reporting bogus NMI status for Gen2 instances Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 088/192] [PATCH 092/135] net/mlx5e: Dont try to modify CQ moderation if it is not supported Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 115/192] [PATCH 119/135] irqchip/gicv3-its: numa: Enable workaround for Cavium thunderx erratum 23144 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 092/192] [PATCH 096/135] arcmsr: fixes not release allocated resource Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 065/192] [PATCH 068/135] pwm: lpc32xx: fix and simplify duty cycle and period calculations Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 082/192] [PATCH 086/135] tipc: fix nullptr crash during subscription cancel Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 119/192] [PATCH 123/135] crypto: vmx - comply with ABIs that specify vrsave as reserved. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 100/192] [PATCH 104/135] perf/x86/cqm: Fix CQM handling of grouping events into a cache_group Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 081/192] [PATCH 085/135] arm64: Add workaround for Cavium erratum 27456 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 114/192] [PATCH 118/135] clocksource: Allow unregistering the watchdog Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 078/192] [PATCH 081/135] drm/amdgpu: fix dp link rate selection (v2) Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 097/192] [PATCH 101/135] intel_idle: Support for Intel Xeon Phi Processor x200 Product Family Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 066/192] [PATCH 069/135] irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 099/192] [PATCH 103/135] s390/crypto: provide correct file mode at device register. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 120/192] [PATCH 124/135] crypto: vmx - Fix ABI detection Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 121/192] [PATCH 125/135] tda10071: Fix dependency to REGMAP_I2C Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 086/192] [PATCH 090/135] UVC: Add support for R200 depth camera Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 103/192] [PATCH 107/135] net: thunderx: Fix receive packet stats Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 072/192] [PATCH 075/135] hrtimer: Catch illegal clockids Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 094/192] [PATCH 098/135] Drivers: hv: vmbus: avoid scheduling in interrupt context in vmbus_initiate_unload() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 095/192] [PATCH 099/135] Drivers: hv: vmbus: dont manipulate with clocksources on crash Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 067/192] [PATCH 070/135] arm64: KVM: Configure TCR_EL2.PS at runtime Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 089/192] [PATCH 093/135] net/mlx5e: Dont modify CQ before it was created Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 076/192] [PATCH 079/135] mmc: sdhci: 64-bit DMA actually has 4-byte alignment Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:40 +0200
[PATCH 4.4 054/192] [PATCH 056/135] lpfc: Fix mbox reuse in PLOGI completion Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 026/192] [PATCH 026/135] cxlflash: a couple off by one bugs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 024/192] [PATCH 024/135] fm10k: Cleanup MSI-X interrupts in case of failure Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 064/192] [PATCH 067/135] pwm: lpc32xx: correct number of PWM channels from 2 to 1 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 038/192] [PATCH 039/135] Drivers: hv: vss: run only on supported host versions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 044/192] [PATCH 045/135] cxlflash: Resolve oops in wait_port_offline Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 061/192] [PATCH 064/135] megaraid_sas: Fix SMAP issue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 050/192] [PATCH 051/135] lpfc: Fix RegLogin failed error seen on Lancer FC during port bounce Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 056/192] [PATCH 058/135] qeth: initialize net_device with carrier off Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 035/192] [PATCH 036/135] tools: hv: report ENOSPC errors in hv_fcopy_daemon Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
Re: [PATCH 4.4 035/192] [PATCH 036/135] tools: hv: report ENOSPC errors in hv_fcopy_daemon Ben Hutchings <ben.hutchings@codethink.co.uk> - 2016-09-20 14:40 +0200
[PATCH 4.4 037/192] [PATCH 038/135] drivers/hv: cleanup synic msrs if vmbus connect failed Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 010/192] [PATCH 010/135] i40e: Fix Rx hash reported to the stack by our driver Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 046/192] [PATCH 047/135] cxl: fix build for GCC 4.6.x Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 012/192] [PATCH 012/135] igb: use the correct i210 register for EEMNGCTL Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 043/192] [PATCH 044/135] cxlflash: Fix to resolve cmd leak after host reset Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 048/192] [PATCH 049/135] lpfc: Fix FCF Infinite loop in lpfc_sli4_fcf_rr_next_index_get. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 008/192] [PATCH 008/135] i40evf: check rings before freeing resources Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 042/192] [PATCH 043/135] cxl: Fix DSI misses when the context owning task exits Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 040/192] [PATCH 041/135] Drivers: hv: vmbus: fix rescind-offer handling for device without a driver Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 19:50 +0200
[PATCH 4.4 018/192] [PATCH 018/135] fm10k: do not assume VF always has 1 queue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 20:00 +0200
[PATCH 4.4 022/192] [PATCH 022/135] fm10k: always check init_hw for errors Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 20:00 +0200
[PATCH 4.4 023/192] [PATCH 023/135] fm10k: reinitialize queuing scheme after calling init_hw Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 20:00 +0200
[PATCH 4.4 017/192] [PATCH 017/135] clk: xgene: Fix divider with non-zero shift value Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 20:00 +0200
Re: [PATCH 4.4 017/192] [PATCH 017/135] clk: xgene: Fix divider with non-zero shift value Ben Hutchings <ben.hutchings@codethink.co.uk> - 2016-09-20 13:50 +0200
Re: [PATCH 4.4 017/192] [PATCH 017/135] clk: xgene: Fix divider with non-zero shift value Loc Ho <lho@apm.com> - 2016-09-20 18:10 +0200
Re: [PATCH 4.4 017/192] [PATCH 017/135] clk: xgene: Fix divider with non-zero shift value Ben Hutchings <ben.hutchings@codethink.co.uk> - 2016-09-20 18:30 +0200
Re: [PATCH 4.4 017/192] [PATCH 017/135] clk: xgene: Fix divider with non-zero shift value Loc Ho <lho@apm.com> - 2016-09-20 18:40 +0200
[PATCH 4.4 019/192] [PATCH 019/135] fm10k: Correct MTU for jumbo frames Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 20:00 +0200
[PATCH 4.4 110/192] [PATCH 114/135] drm/radeon/mst: fix regression in lane/link handling. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-12 21:10 +0200
Re: [PATCH 4.4 000/192] 4.4.21-stable review Guenter Roeck <linux@roeck-us.net> - 2016-09-13 05:10 +0200
Re: [PATCH 4.4 000/192] 4.4.21-stable review Shuah Khan <shuah.kh@samsung.com> - 2016-09-13 20:40 +0200
Re: [PATCH 4.4 000/192] 4.4.21-stable review Ben Hutchings <ben.hutchings@codethink.co.uk> - 2016-09-15 00:30 +0200
Re: [PATCH 4.4 000/192] 4.4.21-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-15 08:20 +0200
Page 5 of 8 — ← Prev page 1 2 3 4 [5] 6 7 8 Next page →
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 134/192] [PATCH 4.4 04/16] crypto: nx-842 - Mask XERS0 bit in return value |
| Message-ID | <sgDdp-6jb-37@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Haren Myneni <haren@linux.vnet.ibm.com>
[ Upstream commit 6333ed8f26cf77311088d2e2b7cf16d8480bcbb2 ]
NX842 coprocessor sets 3rd bit in CR register with XER[S0] which is
nothing to do with NX request. Since this bit can be set with other
valuable return status, mast this bit.
One of other bits (INITIATED, BUSY or REJECTED) will be returned for
any given NX request.
Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/powerpc/include/asm/icswx.h | 1 +
drivers/crypto/nx/nx-842-powernv.c | 12 ++++++++----
2 files changed, 9 insertions(+), 4 deletions(-)
--- a/arch/powerpc/include/asm/icswx.h
+++ b/arch/powerpc/include/asm/icswx.h
@@ -164,6 +164,7 @@ struct coprocessor_request_block {
#define ICSWX_INITIATED (0x8)
#define ICSWX_BUSY (0x4)
#define ICSWX_REJECTED (0x2)
+#define ICSWX_XERS0 (0x1) /* undefined or set from XERSO. */
static inline int icswx(__be32 ccw, struct coprocessor_request_block *crb)
{
--- a/drivers/crypto/nx/nx-842-powernv.c
+++ b/drivers/crypto/nx/nx-842-powernv.c
@@ -442,6 +442,14 @@ static int nx842_powernv_function(const
(unsigned int)ccw,
(unsigned int)be32_to_cpu(crb->ccw));
+ /*
+ * NX842 coprocessor sets 3rd bit in CR register with XER[S0].
+ * XER[S0] is the integer summary overflow bit which is nothing
+ * to do NX. Since this bit can be set with other return values,
+ * mask this bit.
+ */
+ ret &= ~ICSWX_XERS0;
+
switch (ret) {
case ICSWX_INITIATED:
ret = wait_for_csb(wmem, csb);
@@ -454,10 +462,6 @@ static int nx842_powernv_function(const
pr_err_ratelimited("ICSWX rejected\n");
ret = -EPROTO;
break;
- default:
- pr_err_ratelimited("Invalid ICSWX return code %x\n", ret);
- ret = -EPROTO;
- break;
}
if (!ret)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 171/192] ovl: fix workdir creation |
| Message-ID | <sgDdp-6jb-41@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Miklos Szeredi <mszeredi@redhat.com>
commit e1ff3dd1ae52cef5b5373c8cc4ad949c2c25a71c upstream.
Workdir creation fails in latest kernel.
Fix by allowing EOPNOTSUPP as a valid return value from
vfs_removexattr(XATTR_NAME_POSIX_ACL_*). Upper filesystem may not support
ACL and still be perfectly able to support overlayfs.
Reported-by: Martin Ziegler <ziegler@uni-freiburg.de>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Fixes: c11b9fdd6a61 ("ovl: remove posix_acl_default from workdir")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/overlayfs/super.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -784,11 +784,11 @@ retry:
goto out_dput;
err = vfs_removexattr(work, XATTR_NAME_POSIX_ACL_DEFAULT);
- if (err && err != -ENODATA)
+ if (err && err != -ENODATA && err != -EOPNOTSUPP)
goto out_dput;
err = vfs_removexattr(work, XATTR_NAME_POSIX_ACL_ACCESS);
- if (err && err != -ENODATA)
+ if (err && err != -ENODATA && err != -EOPNOTSUPP)
goto out_dput;
/* Clear any inherited mode bits */
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 166/192] lustre: remove unused declaration |
| Message-ID | <sgDdo-6jb-27@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Al Viro <viro@zeniv.linux.org.uk>
commit 57b8f112cfe6622ddddb8c2641206bb5fa8a112d upstream.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/staging/lustre/lustre/llite/llite_internal.h | 2 --
1 file changed, 2 deletions(-)
--- a/drivers/staging/lustre/lustre/llite/llite_internal.h
+++ b/drivers/staging/lustre/lustre/llite/llite_internal.h
@@ -631,8 +631,6 @@ struct ll_file_data {
struct lov_stripe_md;
-extern spinlock_t inode_lock;
-
extern struct dentry *llite_root;
extern struct kset *llite_kset;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 167/192] [PATCH] wrappers for ->i_mutex access |
| Message-ID | <sgDdp-6jb-49@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Al Viro <viro@zeniv.linux.org.uk>
commit 5955102c9984fa081b2d570cfac75c97eecf8f3b upstream
parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested},
inode_foo(inode) being mutex_foo(&inode->i_mutex).
Please, use those for access to ->i_mutex; over the coming cycle
->i_mutex will become rwsem, with ->lookup() done with it held
only shared.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
[only the fs.h change included to make backports easier - gregkh]
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/linux/fs.h | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -710,6 +710,31 @@ enum inode_i_mutex_lock_class
I_MUTEX_PARENT2,
};
+static inline void inode_lock(struct inode *inode)
+{
+ mutex_lock(&inode->i_mutex);
+}
+
+static inline void inode_unlock(struct inode *inode)
+{
+ mutex_unlock(&inode->i_mutex);
+}
+
+static inline int inode_trylock(struct inode *inode)
+{
+ return mutex_trylock(&inode->i_mutex);
+}
+
+static inline int inode_is_locked(struct inode *inode)
+{
+ return mutex_is_locked(&inode->i_mutex);
+}
+
+static inline void inode_lock_nested(struct inode *inode, unsigned subclass)
+{
+ mutex_lock_nested(&inode->i_mutex, subclass);
+}
+
void lock_two_nondirectories(struct inode *, struct inode*);
void unlock_two_nondirectories(struct inode *, struct inode*);
@@ -3029,8 +3054,8 @@ static inline bool dir_emit_dots(struct
}
static inline bool dir_relax(struct inode *inode)
{
- mutex_unlock(&inode->i_mutex);
- mutex_lock(&inode->i_mutex);
+ inode_unlock(inode);
+ inode_lock(inode);
return !IS_DEADDIR(inode);
}
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 157/192] rds: fix an infoleak in rds_inc_info_copy |
| Message-ID | <sgDdo-6jb-35@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Kangjie Lu <kangjielu@gmail.com> commit 4116def2337991b39919f3b448326e21c40e0dbb upstream. The last field "flags" of object "minfo" is not initialized. Copying this object out may leak kernel stack data. Assign 0 to it to avoid leak. Signed-off-by: Kangjie Lu <kjlu@gatech.edu> Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Juerg Haefliger <juerg.haefliger@hpe.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- net/rds/recv.c | 2 ++ 1 file changed, 2 insertions(+) --- a/net/rds/recv.c +++ b/net/rds/recv.c @@ -545,5 +545,7 @@ void rds_inc_info_copy(struct rds_incomi minfo.fport = inc->i_hdr.h_dport; } + minfo.flags = 0; + rds_info_copy(iter, &minfo, sizeof(minfo)); }
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 143/192] [PATCH 4.4 14/16] KEYS: Fix ASN.1 indefinite length object parsing |
| Message-ID | <sgDdp-6jb-53@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: David Howells <dhowells@redhat.com>
[ Upstream commit 23c8a812dc3c621009e4f0e5342aa4e2ede1ceaa ]
This fixes CVE-2016-0758.
In the ASN.1 decoder, when the length field of an ASN.1 value is extracted,
it isn't validated against the remaining amount of data before being added
to the cursor. With a sufficiently large size indicated, the check:
datalen - dp < 2
may then fail due to integer overflow.
Fix this by checking the length indicated against the amount of remaining
data in both places a definite length is determined.
Whilst we're at it, make the following changes:
(1) Check the maximum size of extended length does not exceed the capacity
of the variable it's being stored in (len) rather than the type that
variable is assumed to be (size_t).
(2) Compare the EOC tag to the symbolic constant ASN1_EOC rather than the
integer 0.
(3) To reduce confusion, move the initialisation of len outside of:
for (len = 0; n > 0; n--) {
since it doesn't have anything to do with the loop counter n.
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Acked-by: David Woodhouse <David.Woodhouse@intel.com>
Acked-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
lib/asn1_decoder.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
--- a/lib/asn1_decoder.c
+++ b/lib/asn1_decoder.c
@@ -74,7 +74,7 @@ next_tag:
/* Extract a tag from the data */
tag = data[dp++];
- if (tag == 0) {
+ if (tag == ASN1_EOC) {
/* It appears to be an EOC. */
if (data[dp++] != 0)
goto invalid_eoc;
@@ -96,10 +96,8 @@ next_tag:
/* Extract the length */
len = data[dp++];
- if (len <= 0x7f) {
- dp += len;
- goto next_tag;
- }
+ if (len <= 0x7f)
+ goto check_length;
if (unlikely(len == ASN1_INDEFINITE_LENGTH)) {
/* Indefinite length */
@@ -110,14 +108,18 @@ next_tag:
}
n = len - 0x80;
- if (unlikely(n > sizeof(size_t) - 1))
+ if (unlikely(n > sizeof(len) - 1))
goto length_too_long;
if (unlikely(n > datalen - dp))
goto data_overrun_error;
- for (len = 0; n > 0; n--) {
+ len = 0;
+ for (; n > 0; n--) {
len <<= 8;
len |= data[dp++];
}
+check_length:
+ if (len > datalen - dp)
+ goto data_overrun_error;
dp += len;
goto next_tag;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 136/192] [PATCH 4.4 06/16] IB/IPoIB: Do not set skb truesize since using one linearskb |
| Message-ID | <sgDdp-6jb-51@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Carol L Soto <clsoto@linux.vnet.ibm.com>
[ Upstream commit bb6a777369449d15a4a890306d2f925cae720e1c ]
We are seeing this warning: at net/core/skbuff.c:4174
and before commit a44878d10063 ("IB/ipoib: Use one linear skb in RX flow")
skb truesize was not being set when ipoib was using just one skb.
Removing this line avoids the warning when running tcp tests like iperf.
Fixes: a44878d10063 ("IB/ipoib: Use one linear skb in RX flow")
Signed-off-by: Carol L Soto <clsoto@linux.vnet.ibm.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 2 --
1 file changed, 2 deletions(-)
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -245,8 +245,6 @@ static void ipoib_ib_handle_rx_wc(struct
skb_reset_mac_header(skb);
skb_pull(skb, IPOIB_ENCAP_LEN);
- skb->truesize = SKB_TRUESIZE(skb->len);
-
++dev->stats.rx_packets;
dev->stats.rx_bytes += skb->len;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 124/192] [PATCH 128/135] net: thunderx: Fix link status reporting |
| Message-ID | <sgDdp-6jb-57@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 3f4c68cfde30caa1f6d8368fd19590671411ade2 ]
Check for SMU RX local/remote faults along with SPU LINK
status. Otherwise at times link is UP at our end but DOWN
at link partner's side. Also due to an issue in BGX it's
rarely seen that initialization doesn't happen properly
and SMU RX reports faults with everything fine at SPU.
This patch tries to reinitialize LMAC to fix it.
Also fixed LMAC disable sequence to properly bring down link.
Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
Signed-off-by: Tao Wang <tao.wang@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 91 ++++++++++++++--------
drivers/net/ethernet/cavium/thunder/thunder_bgx.h | 2
2 files changed, 62 insertions(+), 31 deletions(-)
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -549,7 +549,9 @@ static int bgx_xaui_check_link(struct lm
}
/* Clear rcvflt bit (latching high) and read it back */
- bgx_reg_modify(bgx, lmacid, BGX_SPUX_STATUS2, SPU_STATUS2_RCVFLT);
+ if (bgx_reg_read(bgx, lmacid, BGX_SPUX_STATUS2) & SPU_STATUS2_RCVFLT)
+ bgx_reg_modify(bgx, lmacid,
+ BGX_SPUX_STATUS2, SPU_STATUS2_RCVFLT);
if (bgx_reg_read(bgx, lmacid, BGX_SPUX_STATUS2) & SPU_STATUS2_RCVFLT) {
dev_err(&bgx->pdev->dev, "Receive fault, retry training\n");
if (bgx->use_training) {
@@ -568,13 +570,6 @@ static int bgx_xaui_check_link(struct lm
return -1;
}
- /* Wait for MAC RX to be ready */
- if (bgx_poll_reg(bgx, lmacid, BGX_SMUX_RX_CTL,
- SMU_RX_CTL_STATUS, true)) {
- dev_err(&bgx->pdev->dev, "SMU RX link not okay\n");
- return -1;
- }
-
/* Wait for BGX RX to be idle */
if (bgx_poll_reg(bgx, lmacid, BGX_SMUX_CTL, SMU_CTL_RX_IDLE, false)) {
dev_err(&bgx->pdev->dev, "SMU RX not idle\n");
@@ -587,29 +582,30 @@ static int bgx_xaui_check_link(struct lm
return -1;
}
- if (bgx_reg_read(bgx, lmacid, BGX_SPUX_STATUS2) & SPU_STATUS2_RCVFLT) {
- dev_err(&bgx->pdev->dev, "Receive fault\n");
- return -1;
- }
-
- /* Receive link is latching low. Force it high and verify it */
- bgx_reg_modify(bgx, lmacid, BGX_SPUX_STATUS1, SPU_STATUS1_RCV_LNK);
- if (bgx_poll_reg(bgx, lmacid, BGX_SPUX_STATUS1,
- SPU_STATUS1_RCV_LNK, false)) {
- dev_err(&bgx->pdev->dev, "SPU receive link down\n");
- return -1;
- }
-
+ /* Clear receive packet disable */
cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_MISC_CONTROL);
cfg &= ~SPU_MISC_CTL_RX_DIS;
bgx_reg_write(bgx, lmacid, BGX_SPUX_MISC_CONTROL, cfg);
- return 0;
+
+ /* Check for MAC RX faults */
+ cfg = bgx_reg_read(bgx, lmacid, BGX_SMUX_RX_CTL);
+ /* 0 - Link is okay, 1 - Local fault, 2 - Remote fault */
+ cfg &= SMU_RX_CTL_STATUS;
+ if (!cfg)
+ return 0;
+
+ /* Rx local/remote fault seen.
+ * Do lmac reinit to see if condition recovers
+ */
+ bgx_lmac_xaui_init(bgx, lmacid, bgx->lmac_type);
+
+ return -1;
}
static void bgx_poll_for_link(struct work_struct *work)
{
struct lmac *lmac;
- u64 link;
+ u64 spu_link, smu_link;
lmac = container_of(work, struct lmac, dwork.work);
@@ -619,8 +615,11 @@ static void bgx_poll_for_link(struct wor
bgx_poll_reg(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1,
SPU_STATUS1_RCV_LNK, false);
- link = bgx_reg_read(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1);
- if (link & SPU_STATUS1_RCV_LNK) {
+ spu_link = bgx_reg_read(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1);
+ smu_link = bgx_reg_read(lmac->bgx, lmac->lmacid, BGX_SMUX_RX_CTL);
+
+ if ((spu_link & SPU_STATUS1_RCV_LNK) &&
+ !(smu_link & SMU_RX_CTL_STATUS)) {
lmac->link_up = 1;
if (lmac->bgx->lmac_type == BGX_MODE_XLAUI)
lmac->last_speed = 40000;
@@ -634,9 +633,15 @@ static void bgx_poll_for_link(struct wor
}
if (lmac->last_link != lmac->link_up) {
+ if (lmac->link_up) {
+ if (bgx_xaui_check_link(lmac)) {
+ /* Errors, clear link_up state */
+ lmac->link_up = 0;
+ lmac->last_speed = SPEED_UNKNOWN;
+ lmac->last_duplex = DUPLEX_UNKNOWN;
+ }
+ }
lmac->last_link = lmac->link_up;
- if (lmac->link_up)
- bgx_xaui_check_link(lmac);
}
queue_delayed_work(lmac->check_link, &lmac->dwork, HZ * 2);
@@ -708,7 +713,7 @@ static int bgx_lmac_enable(struct bgx *b
static void bgx_lmac_disable(struct bgx *bgx, u8 lmacid)
{
struct lmac *lmac;
- u64 cmrx_cfg;
+ u64 cfg;
lmac = &bgx->lmac[lmacid];
if (lmac->check_link) {
@@ -717,9 +722,33 @@ static void bgx_lmac_disable(struct bgx
destroy_workqueue(lmac->check_link);
}
- cmrx_cfg = bgx_reg_read(bgx, lmacid, BGX_CMRX_CFG);
- cmrx_cfg &= ~(1 << 15);
- bgx_reg_write(bgx, lmacid, BGX_CMRX_CFG, cmrx_cfg);
+ /* Disable packet reception */
+ cfg = bgx_reg_read(bgx, lmacid, BGX_CMRX_CFG);
+ cfg &= ~CMR_PKT_RX_EN;
+ bgx_reg_write(bgx, lmacid, BGX_CMRX_CFG, cfg);
+
+ /* Give chance for Rx/Tx FIFO to get drained */
+ bgx_poll_reg(bgx, lmacid, BGX_CMRX_RX_FIFO_LEN, (u64)0x1FFF, true);
+ bgx_poll_reg(bgx, lmacid, BGX_CMRX_TX_FIFO_LEN, (u64)0x3FFF, true);
+
+ /* Disable packet transmission */
+ cfg = bgx_reg_read(bgx, lmacid, BGX_CMRX_CFG);
+ cfg &= ~CMR_PKT_TX_EN;
+ bgx_reg_write(bgx, lmacid, BGX_CMRX_CFG, cfg);
+
+ /* Disable serdes lanes */
+ if (!lmac->is_sgmii)
+ bgx_reg_modify(bgx, lmacid,
+ BGX_SPUX_CONTROL1, SPU_CTL_LOW_POWER);
+ else
+ bgx_reg_modify(bgx, lmacid,
+ BGX_GMP_PCS_MRX_CTL, PCS_MRX_CTL_PWR_DN);
+
+ /* Disable LMAC */
+ cfg = bgx_reg_read(bgx, lmacid, BGX_CMRX_CFG);
+ cfg &= ~CMR_EN;
+ bgx_reg_write(bgx, lmacid, BGX_CMRX_CFG, cfg);
+
bgx_flush_dmac_addrs(bgx, lmacid);
if ((bgx->lmac_type != BGX_MODE_XFI) &&
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
@@ -41,6 +41,7 @@
#define BGX_CMRX_RX_STAT10 0xC0
#define BGX_CMRX_RX_BP_DROP 0xC8
#define BGX_CMRX_RX_DMAC_CTL 0x0E8
+#define BGX_CMRX_RX_FIFO_LEN 0x108
#define BGX_CMR_RX_DMACX_CAM 0x200
#define RX_DMACX_CAM_EN BIT_ULL(48)
#define RX_DMACX_CAM_LMACID(x) (x << 49)
@@ -50,6 +51,7 @@
#define BGX_CMR_CHAN_MSK_AND 0x450
#define BGX_CMR_BIST_STATUS 0x460
#define BGX_CMR_RX_LMACS 0x468
+#define BGX_CMRX_TX_FIFO_LEN 0x518
#define BGX_CMRX_TX_STAT0 0x600
#define BGX_CMRX_TX_STAT1 0x608
#define BGX_CMRX_TX_STAT2 0x610
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:30 +0200 |
| Subject | [PATCH 4.4 113/192] [PATCH 117/135] btrfs: Continue write in case of can_not_nocow |
| Message-ID | <sgDdp-6jb-59@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 4da2e26a2a32b174878744bd0f07db180c875f26 ]
btrfs failed in xfstests btrfs/080 with -o nodatacow.
Can be reproduced by following script:
DEV=/dev/vdg
MNT=/mnt/tmp
umount $DEV &>/dev/null
mkfs.btrfs -f $DEV
mount -o nodatacow $DEV $MNT
dd if=/dev/zero of=$MNT/test bs=1 count=2048 &
btrfs subvolume snapshot -r $MNT $MNT/test_snap &
wait
--
We can see dd failed on NO_SPACE.
Reason:
__btrfs_buffered_write should run cow write when no_cow impossible,
and current code is designed with above logic.
But check_can_nocow() have 2 type of return value(0 and <0) on
can_not_no_cow, and current code only continue write on first case,
the second case happened in doing subvolume.
Fix:
Continue write when check_can_nocow() return 0 and <0.
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/file.c | 37 +++++++++++++++++--------------------
1 file changed, 17 insertions(+), 20 deletions(-)
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1526,27 +1526,24 @@ static noinline ssize_t __btrfs_buffered
reserve_bytes = num_pages << PAGE_CACHE_SHIFT;
- if (BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW |
- BTRFS_INODE_PREALLOC)) {
- ret = check_can_nocow(inode, pos, &write_bytes);
- if (ret < 0)
- break;
- if (ret > 0) {
- /*
- * For nodata cow case, no need to reserve
- * data space.
- */
- only_release_metadata = true;
- /*
- * our prealloc extent may be smaller than
- * write_bytes, so scale down.
- */
- num_pages = DIV_ROUND_UP(write_bytes + offset,
- PAGE_CACHE_SIZE);
- reserve_bytes = num_pages << PAGE_CACHE_SHIFT;
- goto reserve_metadata;
- }
+ if ((BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW |
+ BTRFS_INODE_PREALLOC)) &&
+ check_can_nocow(inode, pos, &write_bytes) > 0) {
+ /*
+ * For nodata cow case, no need to reserve
+ * data space.
+ */
+ only_release_metadata = true;
+ /*
+ * our prealloc extent may be smaller than
+ * write_bytes, so scale down.
+ */
+ num_pages = DIV_ROUND_UP(write_bytes + offset,
+ PAGE_CACHE_SIZE);
+ reserve_bytes = num_pages << PAGE_CACHE_SHIFT;
+ goto reserve_metadata;
}
+
ret = btrfs_check_data_free_space(inode, pos, write_bytes);
if (ret < 0)
break;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 123/192] [PATCH 127/135] x86/hyperv: Avoid reporting bogus NMI status for Gen2 instances |
| Message-ID | <sgDn3-6mO-3@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 1e2ae9ec072f3b7887f456426bc2cf23b80f661a ]
Generation2 instances don't support reporting the NMI status on port 0x61,
read from there returns 'ff' and we end up reporting nonsensical PCI
error (as there is no PCI bus in these instances) on all NMIs:
NMI: PCI system error (SERR) for reason ff on CPU 0.
Dazed and confused, but trying to continue
Fix the issue by overriding x86_platform.get_nmi_reason. Use 'booted on
EFI' flag to detect Gen2 instances.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Cathy Avery <cavery@redhat.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: K. Y. Srinivasan <kys@microsoft.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: devel@linuxdriverproject.org
Link: http://lkml.kernel.org/r/1460728232-31433-1-git-send-email-vkuznets@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kernel/cpu/mshyperv.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -152,6 +152,11 @@ static struct clocksource hyperv_cs = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
+static unsigned char hv_get_nmi_reason(void)
+{
+ return 0;
+}
+
static void __init ms_hyperv_init_platform(void)
{
/*
@@ -191,6 +196,13 @@ static void __init ms_hyperv_init_platfo
machine_ops.crash_shutdown = hv_machine_crash_shutdown;
#endif
mark_tsc_unstable("running on Hyper-V");
+
+ /*
+ * Generation 2 instances don't support reading the NMI status from
+ * 0x61 port.
+ */
+ if (efi_enabled(EFI_BOOT))
+ x86_platform.get_nmi_reason = hv_get_nmi_reason;
}
const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 088/192] [PATCH 092/135] net/mlx5e: Dont try to modify CQ moderation if it is not supported |
| Message-ID | <sgDn4-6mO-11@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 7524a5d88b94afef8397a79f1e664af5b7052c22 ]
If CQ moderation is not supported by the device, print a warning on
netdevice load, and return error when trying to modify/query cq
moderation via ethtool.
Fixes: f62b8bb8f2d3 ('net/mlx5: Extend mlx5_core to support ConnectX-4
Ethernet functionality')
Signed-off-by: Gal Pressman <galp@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 6 ++++++
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 12 ++++++------
2 files changed, 12 insertions(+), 6 deletions(-)
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
@@ -399,6 +399,9 @@ static int mlx5e_get_coalesce(struct net
{
struct mlx5e_priv *priv = netdev_priv(netdev);
+ if (!MLX5_CAP_GEN(priv->mdev, cq_moderation))
+ return -ENOTSUPP;
+
coal->rx_coalesce_usecs = priv->params.rx_cq_moderation_usec;
coal->rx_max_coalesced_frames = priv->params.rx_cq_moderation_pkts;
coal->tx_coalesce_usecs = priv->params.tx_cq_moderation_usec;
@@ -416,6 +419,9 @@ static int mlx5e_set_coalesce(struct net
int tc;
int i;
+ if (!MLX5_CAP_GEN(mdev, cq_moderation))
+ return -ENOTSUPP;
+
priv->params.tx_cq_moderation_usec = coal->tx_coalesce_usecs;
priv->params.tx_cq_moderation_pkts = coal->tx_max_coalesced_frames;
priv->params.rx_cq_moderation_usec = coal->rx_coalesce_usecs;
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -863,12 +863,10 @@ static int mlx5e_open_cq(struct mlx5e_ch
if (err)
goto err_destroy_cq;
- err = mlx5_core_modify_cq_moderation(mdev, &cq->mcq,
- moderation_usecs,
- moderation_frames);
- if (err)
- goto err_destroy_cq;
-
+ if (MLX5_CAP_GEN(mdev, cq_moderation))
+ mlx5_core_modify_cq_moderation(mdev, &cq->mcq,
+ moderation_usecs,
+ moderation_frames);
return 0;
err_destroy_cq:
@@ -1963,6 +1961,8 @@ static int mlx5e_check_required_hca_cap(
}
if (!MLX5_CAP_ETH(mdev, self_lb_en_modifiable))
mlx5_core_warn(mdev, "Self loop back prevention is not supported\n");
+ if (!MLX5_CAP_GEN(mdev, cq_moderation))
+ mlx5_core_warn(mdev, "CQ modiration is not supported\n");
return 0;
}
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 115/192] [PATCH 119/135] irqchip/gicv3-its: numa: Enable workaround for Cavium thunderx erratum 23144 |
| Message-ID | <sgDn3-6mO-1@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit fbf8f40e1658cb2f17452dbd3c708e329c5d27e0 ]
The erratum fixes the hang of ITS SYNC command by avoiding inter node
io and collections/cpu mapping on thunderx dual-socket platform.
This fix is only applicable for Cavium's ThunderX dual-socket platform.
Reviewed-by: Robert Richter <rrichter@cavium.com>
Signed-off-by: Ganapatrao Kulkarni <gkulkarni@caviumnetworks.com>
Signed-off-by: Robert Richter <rrichter@cavium.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm64/Kconfig | 9 +++++++
drivers/irqchip/irq-gic-v3-its.c | 49 +++++++++++++++++++++++++++++++++++++--
2 files changed, 56 insertions(+), 2 deletions(-)
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -391,6 +391,15 @@ config CAVIUM_ERRATUM_22375
If unsure, say Y.
+config CAVIUM_ERRATUM_23144
+ bool "Cavium erratum 23144: ITS SYNC hang on dual socket system"
+ depends on NUMA
+ default y
+ help
+ ITS SYNC command hang for cross node io and collections/cpu mapping.
+
+ If unsure, say Y.
+
config CAVIUM_ERRATUM_23154
bool "Cavium erratum 23154: Access to ICC_IAR1_EL1 is not sync'ed"
default y
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -41,6 +41,7 @@
#define ITS_FLAGS_CMDQ_NEEDS_FLUSHING (1ULL << 0)
#define ITS_FLAGS_WORKAROUND_CAVIUM_22375 (1ULL << 1)
+#define ITS_FLAGS_WORKAROUND_CAVIUM_23144 (1ULL << 2)
#define RDIST_FLAGS_PROPBASE_NEEDS_FLUSHING (1 << 0)
@@ -71,6 +72,7 @@ struct its_node {
struct list_head its_device_list;
u64 flags;
u32 ite_size;
+ int numa_node;
};
#define ITS_ITT_ALIGN SZ_256
@@ -600,11 +602,23 @@ static void its_unmask_irq(struct irq_da
static int its_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
bool force)
{
- unsigned int cpu = cpumask_any_and(mask_val, cpu_online_mask);
+ unsigned int cpu;
+ const struct cpumask *cpu_mask = cpu_online_mask;
struct its_device *its_dev = irq_data_get_irq_chip_data(d);
struct its_collection *target_col;
u32 id = its_get_event_id(d);
+ /* lpi cannot be routed to a redistributor that is on a foreign node */
+ if (its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) {
+ if (its_dev->its->numa_node >= 0) {
+ cpu_mask = cpumask_of_node(its_dev->its->numa_node);
+ if (!cpumask_intersects(mask_val, cpu_mask))
+ return -EINVAL;
+ }
+ }
+
+ cpu = cpumask_any_and(mask_val, cpu_mask);
+
if (cpu >= nr_cpu_ids)
return -EINVAL;
@@ -1081,6 +1095,16 @@ static void its_cpu_init_collection(void
list_for_each_entry(its, &its_nodes, entry) {
u64 target;
+ /* avoid cross node collections and its mapping */
+ if (its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) {
+ struct device_node *cpu_node;
+
+ cpu_node = of_get_cpu_node(cpu, NULL);
+ if (its->numa_node != NUMA_NO_NODE &&
+ its->numa_node != of_node_to_nid(cpu_node))
+ continue;
+ }
+
/*
* We now have to bind each collection to its target
* redistributor.
@@ -1308,9 +1332,14 @@ static void its_irq_domain_activate(stru
{
struct its_device *its_dev = irq_data_get_irq_chip_data(d);
u32 event = its_get_event_id(d);
+ const struct cpumask *cpu_mask = cpu_online_mask;
+
+ /* get the cpu_mask of local node */
+ if (its_dev->its->numa_node >= 0)
+ cpu_mask = cpumask_of_node(its_dev->its->numa_node);
/* Bind the LPI to the first possible CPU */
- its_dev->event_map.col_map[event] = cpumask_first(cpu_online_mask);
+ its_dev->event_map.col_map[event] = cpumask_first(cpu_mask);
/* Map the GIC IRQ and event to the device */
its_send_mapvi(its_dev, d->hwirq, event);
@@ -1400,6 +1429,13 @@ static void __maybe_unused its_enable_qu
its->flags |= ITS_FLAGS_WORKAROUND_CAVIUM_22375;
}
+static void __maybe_unused its_enable_quirk_cavium_23144(void *data)
+{
+ struct its_node *its = data;
+
+ its->flags |= ITS_FLAGS_WORKAROUND_CAVIUM_23144;
+}
+
static const struct gic_quirk its_quirks[] = {
#ifdef CONFIG_CAVIUM_ERRATUM_22375
{
@@ -1409,6 +1445,14 @@ static const struct gic_quirk its_quirks
.init = its_enable_quirk_cavium_22375,
},
#endif
+#ifdef CONFIG_CAVIUM_ERRATUM_23144
+ {
+ .desc = "ITS: Cavium erratum 23144",
+ .iidr = 0xa100034c, /* ThunderX pass 1.x */
+ .mask = 0xffff0fff,
+ .init = its_enable_quirk_cavium_23144,
+ },
+#endif
{
}
};
@@ -1470,6 +1514,7 @@ static int its_probe(struct device_node
its->base = its_base;
its->phys_base = res.start;
its->ite_size = ((readl_relaxed(its_base + GITS_TYPER) >> 4) & 0xf) + 1;
+ its->numa_node = of_node_to_nid(node);
its->cmd_base = kzalloc(ITS_CMD_QUEUE_SZ, GFP_KERNEL);
if (!its->cmd_base) {
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 092/192] [PATCH 096/135] arcmsr: fixes not release allocated resource |
| Message-ID | <sgDn4-6mO-17@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 98f90debc2b64a40a416dd9794ac2d8de6b43af2 ]
Releasing allocated resource if get configuration data failed.
Signed-off-by: Ching Huang <ching2048@areca.com.tw>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Hannes Reinicke <hare@suse.de>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/arcmsr/arcmsr_hba.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -2664,7 +2664,7 @@ static bool arcmsr_hbaB_get_config(struc
if (!arcmsr_hbaB_wait_msgint_ready(acb)) {
printk(KERN_NOTICE "arcmsr%d: wait 'get adapter firmware \
miscellaneous data' timeout \n", acb->host->host_no);
- return false;
+ goto err_free_dma;
}
count = 8;
while (count){
@@ -2707,6 +2707,10 @@ static bool arcmsr_hbaB_get_config(struc
acb->firm_cfg_version = readl(®->message_rwbuffer[25]); /*firm_cfg_version,25,100-103*/
/*firm_ide_channels,4,16-19*/
return true;
+err_free_dma:
+ dma_free_coherent(&acb->pdev->dev, acb->roundup_ccbsize,
+ acb->dma_coherent2, acb->dma_coherent_handle2);
+ return false;
}
static bool arcmsr_hbaC_get_config(struct AdapterControlBlock *pACB)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 065/192] [PATCH 068/135] pwm: lpc32xx: fix and simplify duty cycle and period calculations |
| Message-ID | <sgDn3-6mO-5@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 5a9fc9c666d5d759699cf5495bda85f1da0d747e ]
The change fixes a problem, if duty_ns is too small in comparison
to period_ns (as a valid corner case duty_ns is 0 ns), then due to
PWM_DUTY() macro applied on a value the result is overflowed over 8
bits, and instead of the highest bitfield duty cycle value 0xff the
invalid duty cycle bitfield value 0x00 is written.
For reference the LPC32xx spec defines PWMx_DUTY bitfield description
is this way and it seems to be correct:
[Low]/[High] = [PWM_DUTY]/[256-PWM_DUTY], where 0 < PWM_DUTY <= 255.
In addition according to my oscilloscope measurements LPC32xx PWM is
"tristate" in sense that it produces a wave with floating min/max
voltage levels for different duty cycle values, for corner cases:
PWM_DUTY == 0x01 => signal is in range from -1.05v to 0v
....
PWM_DUTY == 0x80 => signal is in range from -0.75v to +0.75v
....
PWM_DUTY == 0xff => signal is in range from 0v to +1.05v
PWM_DUTY == 0x00 => signal is around 0v, PWM is off
Due to this peculiarity on very long period ranges (less than 1KHz)
and odd pre-divider values PWM generated wave does not remind a
clock shape signal, but rather a heartbit shape signal with positive
and negative peaks, so I would recommend to use high-speed HCLK clock
as a PWM parent clock and avoid using RTC clock as a parent.
The change corrects PWM output in corner cases and prevents any
possible overflows in calculation of values for PWM_DUTY and
PWM_RELOADV bitfields, thus helper macro definitions may be removed.
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/pwm/pwm-lpc32xx.c | 51 ++++++++++++++++------------------------------
1 file changed, 18 insertions(+), 33 deletions(-)
--- a/drivers/pwm/pwm-lpc32xx.c
+++ b/drivers/pwm/pwm-lpc32xx.c
@@ -24,9 +24,7 @@ struct lpc32xx_pwm_chip {
void __iomem *base;
};
-#define PWM_ENABLE (1 << 31)
-#define PWM_RELOADV(x) (((x) & 0xFF) << 8)
-#define PWM_DUTY(x) ((x) & 0xFF)
+#define PWM_ENABLE BIT(31)
#define to_lpc32xx_pwm_chip(_chip) \
container_of(_chip, struct lpc32xx_pwm_chip, chip)
@@ -38,40 +36,27 @@ static int lpc32xx_pwm_config(struct pwm
unsigned long long c;
int period_cycles, duty_cycles;
u32 val;
+ c = clk_get_rate(lpc32xx->clk);
- c = clk_get_rate(lpc32xx->clk) / 256;
- c = c * period_ns;
- do_div(c, NSEC_PER_SEC);
-
- /* Handle high and low extremes */
- if (c == 0)
- c = 1;
- if (c > 255)
- c = 0; /* 0 set division by 256 */
- period_cycles = c;
-
- /* The duty-cycle value is as follows:
- *
- * DUTY-CYCLE HIGH LEVEL
- * 1 99.9%
- * 25 90.0%
- * 128 50.0%
- * 220 10.0%
- * 255 0.1%
- * 0 0.0%
- *
- * In other words, the register value is duty-cycle % 256 with
- * duty-cycle in the range 1-256.
- */
- c = 256 * duty_ns;
- do_div(c, period_ns);
- if (c > 255)
- c = 255;
- duty_cycles = 256 - c;
+ /* The highest acceptable divisor is 256, which is represented by 0 */
+ period_cycles = div64_u64(c * period_ns,
+ (unsigned long long)NSEC_PER_SEC * 256);
+ if (!period_cycles)
+ period_cycles = 1;
+ if (period_cycles > 255)
+ period_cycles = 0;
+
+ /* Compute 256 x #duty/period value and care for corner cases */
+ duty_cycles = div64_u64((unsigned long long)(period_ns - duty_ns) * 256,
+ period_ns);
+ if (!duty_cycles)
+ duty_cycles = 1;
+ if (duty_cycles > 255)
+ duty_cycles = 255;
val = readl(lpc32xx->base + (pwm->hwpwm << 2));
val &= ~0xFFFF;
- val |= PWM_RELOADV(period_cycles) | PWM_DUTY(duty_cycles);
+ val |= (period_cycles << 8) | duty_cycles;
writel(val, lpc32xx->base + (pwm->hwpwm << 2));
return 0;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 082/192] [PATCH 086/135] tipc: fix nullptr crash during subscription cancel |
| Message-ID | <sgDn4-6mO-23@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 4de13d7ed6ffdcbb34317acaa9236f121176f5f8 ]
commit 4d5cfcba2f6e ('tipc: fix connection abort during subscription
cancel'), removes the check for a valid subscription before calling
tipc_nametbl_subscribe().
This will lead to a nullptr exception when we process a
subscription cancel request. For a cancel request, a null
subscription is passed to tipc_nametbl_subscribe() resulting
in exception.
In this commit, we call tipc_nametbl_subscribe() only for
a valid subscription.
Fixes: 4d5cfcba2f6e ('tipc: fix connection abort during subscription cancel')
Reported-by: Anders Widell <anders.widell@ericsson.com>
Signed-off-by: Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/tipc/subscr.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/net/tipc/subscr.c
+++ b/net/tipc/subscr.c
@@ -296,7 +296,8 @@ static void tipc_subscrb_rcv_cb(struct n
if (tipc_subscrp_create(net, (struct tipc_subscr *)buf, subscrb, &sub))
return tipc_conn_terminate(tn->topsrv, subscrb->conid);
- tipc_nametbl_subscribe(sub);
+ if (sub)
+ tipc_nametbl_subscribe(sub);
}
/* Handle one request to establish a new subscriber */
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 119/192] [PATCH 123/135] crypto: vmx - comply with ABIs that specify vrsave as reserved. |
| Message-ID | <sgDn4-6mO-29@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 5ca55738201c7ae1b556ad87bbb22c139ecc01dd ]
It gives significant improvements ( ~+15%) on some modes.
These code has been adopted from OpenSSL project in collaboration
with the original author (Andy Polyakov <appro@openssl.org>).
Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/crypto/vmx/ppc-xlate.pl | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
--- a/drivers/crypto/vmx/ppc-xlate.pl
+++ b/drivers/crypto/vmx/ppc-xlate.pl
@@ -139,6 +139,26 @@ my $vmr = sub {
" vor $vx,$vy,$vy";
};
+# Some ABIs specify vrsave, special-purpose register #256, as reserved
+# for system use.
+my $no_vrsave = ($flavour =~ /aix|linux64le/);
+my $mtspr = sub {
+ my ($f,$idx,$ra) = @_;
+ if ($idx == 256 && $no_vrsave) {
+ " or $ra,$ra,$ra";
+ } else {
+ " mtspr $idx,$ra";
+ }
+};
+my $mfspr = sub {
+ my ($f,$rd,$idx) = @_;
+ if ($idx == 256 && $no_vrsave) {
+ " li $rd,-1";
+ } else {
+ " mfspr $rd,$idx";
+ }
+};
+
# PowerISA 2.06 stuff
sub vsxmem_op {
my ($f, $vrt, $ra, $rb, $op) = @_;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 100/192] [PATCH 104/135] perf/x86/cqm: Fix CQM handling of grouping events into a cache_group |
| Message-ID | <sgDn4-6mO-13@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit a223c1c7ab4cc64537dc4b911f760d851683768a ]
Currently CQM (cache quality of service monitoring) is grouping all
events belonging to same PID to use one RMID. However its not counting
all of these different events. Hence we end up with a count of zero
for all events other than the group leader.
The patch tries to address the issue by keeping a flag in the
perf_event.hw which has other CQM related fields. The field is updated
at event creation and during grouping.
Signed-off-by: Vikas Shivappa <vikas.shivappa@linux.intel.com>
[peterz: Changed hw_perf_event::is_group_event to an int]
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: fenghua.yu@intel.com
Cc: h.peter.anvin@intel.com
Cc: ravi.v.shankar@intel.com
Cc: vikas.shivappa@intel.com
Link: http://lkml.kernel.org/r/1457652732-4499-2-git-send-email-vikas.shivappa@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kernel/cpu/perf_event_intel_cqm.c | 13 ++++++++++---
include/linux/perf_event.h | 1 +
2 files changed, 11 insertions(+), 3 deletions(-)
--- a/arch/x86/kernel/cpu/perf_event_intel_cqm.c
+++ b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
@@ -281,9 +281,13 @@ static bool __match_event(struct perf_ev
/*
* Events that target same task are placed into the same cache group.
+ * Mark it as a multi event group, so that we update ->count
+ * for every event rather than just the group leader later.
*/
- if (a->hw.target == b->hw.target)
+ if (a->hw.target == b->hw.target) {
+ b->hw.is_group_event = true;
return true;
+ }
/*
* Are we an inherited event?
@@ -849,6 +853,7 @@ static void intel_cqm_setup_event(struct
bool conflict = false;
u32 rmid;
+ event->hw.is_group_event = false;
list_for_each_entry(iter, &cache_groups, hw.cqm_groups_entry) {
rmid = iter->hw.cqm_rmid;
@@ -940,7 +945,9 @@ static u64 intel_cqm_event_count(struct
return __perf_event_count(event);
/*
- * Only the group leader gets to report values. This stops us
+ * Only the group leader gets to report values except in case of
+ * multiple events in the same group, we still need to read the
+ * other events.This stops us
* reporting duplicate values to userspace, and gives us a clear
* rule for which task gets to report the values.
*
@@ -948,7 +955,7 @@ static u64 intel_cqm_event_count(struct
* specific packages - we forfeit that ability when we create
* task events.
*/
- if (!cqm_group_leader(event))
+ if (!cqm_group_leader(event) && !event->hw.is_group_event)
return 0;
/*
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -121,6 +121,7 @@ struct hw_perf_event {
struct { /* intel_cqm */
int cqm_state;
u32 cqm_rmid;
+ int is_group_event;
struct list_head cqm_events_entry;
struct list_head cqm_groups_entry;
struct list_head cqm_group_entry;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 081/192] [PATCH 085/135] arm64: Add workaround for Cavium erratum 27456 |
| Message-ID | <sgDn4-6mO-19@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 104a0c02e8b1936c049e18a6d4e4ab040fb61213 ]
On ThunderX T88 pass 1.x through 2.1 parts, broadcast TLBI
instructions may cause the icache to become corrupted if it contains
data for a non-current ASID.
This patch implements the workaround (which invalidates the local
icache when switching the mm) by using code patching.
Signed-off-by: Andrew Pinski <apinski@cavium.com>
Signed-off-by: David Daney <david.daney@cavium.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm64/Kconfig | 11 +++++++++++
arch/arm64/include/asm/cpufeature.h | 3 ++-
arch/arm64/kernel/cpu_errata.c | 9 +++++++++
arch/arm64/mm/proc.S | 12 ++++++++++++
4 files changed, 34 insertions(+), 1 deletion(-)
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -401,6 +401,17 @@ config CAVIUM_ERRATUM_23154
If unsure, say Y.
+config CAVIUM_ERRATUM_27456
+ bool "Cavium erratum 27456: Broadcast TLBI instructions may cause icache corruption"
+ default y
+ help
+ On ThunderX T88 pass 1.x through 2.1 parts, broadcast TLBI
+ instructions may cause the icache to become corrupted if it
+ contains data for a non-current ASID. The fix is to
+ invalidate the icache when changing the mm context.
+
+ If unsure, say Y.
+
endmenu
--- a/arch/arm64/include/asm/cpufeature.h
+++ b/arch/arm64/include/asm/cpufeature.h
@@ -30,8 +30,9 @@
#define ARM64_HAS_LSE_ATOMICS 5
#define ARM64_WORKAROUND_CAVIUM_23154 6
#define ARM64_WORKAROUND_834220 7
+#define ARM64_WORKAROUND_CAVIUM_27456 8
-#define ARM64_NCAPS 8
+#define ARM64_NCAPS 9
#ifndef __ASSEMBLY__
--- a/arch/arm64/kernel/cpu_errata.c
+++ b/arch/arm64/kernel/cpu_errata.c
@@ -100,6 +100,15 @@ const struct arm64_cpu_capabilities arm6
MIDR_RANGE(MIDR_THUNDERX, 0x00, 0x01),
},
#endif
+#ifdef CONFIG_CAVIUM_ERRATUM_27456
+ {
+ /* Cavium ThunderX, T88 pass 1.x - 2.1 */
+ .desc = "Cavium erratum 27456",
+ .capability = ARM64_WORKAROUND_CAVIUM_27456,
+ MIDR_RANGE(MIDR_THUNDERX, 0x00,
+ (1 << MIDR_VARIANT_SHIFT) | 1),
+ },
+#endif
{
}
};
--- a/arch/arm64/mm/proc.S
+++ b/arch/arm64/mm/proc.S
@@ -25,6 +25,8 @@
#include <asm/hwcap.h>
#include <asm/pgtable-hwdef.h>
#include <asm/pgtable.h>
+#include <asm/cpufeature.h>
+#include <asm/alternative.h>
#include "proc-macros.S"
@@ -137,7 +139,17 @@ ENTRY(cpu_do_switch_mm)
bfi x0, x1, #48, #16 // set the ASID
msr ttbr0_el1, x0 // set TTBR0
isb
+alternative_if_not ARM64_WORKAROUND_CAVIUM_27456
ret
+ nop
+ nop
+ nop
+alternative_else
+ ic iallu
+ dsb nsh
+ isb
+ ret
+alternative_endif
ENDPROC(cpu_do_switch_mm)
.section ".text.init", #alloc, #execinstr
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 114/192] [PATCH 118/135] clocksource: Allow unregistering the watchdog |
| Message-ID | <sgDn4-6mO-35@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit bbf66d897adf2bb0c310db96c97e8db6369f39e1 ]
Hyper-V vmbus module registers TSC page clocksource when loaded. This is
the clocksource with the highest rating and thus it becomes the watchdog
making unloading of the vmbus module impossible.
Separate clocksource_select_watchdog() from clocksource_enqueue_watchdog()
and use it on clocksource register/rating change/unregister.
After all, lobotomized monkeys may need some love too.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: K. Y. Srinivasan <kys@microsoft.com>
Link: http://lkml.kernel.org/r/1453483913-25672-1-git-send-email-vkuznets@redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
kernel/time/clocksource.c | 52 +++++++++++++++++++++++++++++++++++++---------
1 file changed, 42 insertions(+), 10 deletions(-)
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -323,13 +323,42 @@ static void clocksource_enqueue_watchdog
/* cs is a watchdog. */
if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS)
cs->flags |= CLOCK_SOURCE_VALID_FOR_HRES;
+ }
+ spin_unlock_irqrestore(&watchdog_lock, flags);
+}
+
+static void clocksource_select_watchdog(bool fallback)
+{
+ struct clocksource *cs, *old_wd;
+ unsigned long flags;
+
+ spin_lock_irqsave(&watchdog_lock, flags);
+ /* save current watchdog */
+ old_wd = watchdog;
+ if (fallback)
+ watchdog = NULL;
+
+ list_for_each_entry(cs, &clocksource_list, list) {
+ /* cs is a clocksource to be watched. */
+ if (cs->flags & CLOCK_SOURCE_MUST_VERIFY)
+ continue;
+
+ /* Skip current if we were requested for a fallback. */
+ if (fallback && cs == old_wd)
+ continue;
+
/* Pick the best watchdog. */
- if (!watchdog || cs->rating > watchdog->rating) {
+ if (!watchdog || cs->rating > watchdog->rating)
watchdog = cs;
- /* Reset watchdog cycles */
- clocksource_reset_watchdog();
- }
}
+ /* If we failed to find a fallback restore the old one. */
+ if (!watchdog)
+ watchdog = old_wd;
+
+ /* If we changed the watchdog we need to reset cycles. */
+ if (watchdog != old_wd)
+ clocksource_reset_watchdog();
+
/* Check if the watchdog timer needs to be started. */
clocksource_start_watchdog();
spin_unlock_irqrestore(&watchdog_lock, flags);
@@ -404,6 +433,7 @@ static void clocksource_enqueue_watchdog
cs->flags |= CLOCK_SOURCE_VALID_FOR_HRES;
}
+static void clocksource_select_watchdog(bool fallback) { }
static inline void clocksource_dequeue_watchdog(struct clocksource *cs) { }
static inline void clocksource_resume_watchdog(void) { }
static inline int __clocksource_watchdog_kthread(void) { return 0; }
@@ -736,6 +766,7 @@ int __clocksource_register_scale(struct
clocksource_enqueue(cs);
clocksource_enqueue_watchdog(cs);
clocksource_select();
+ clocksource_select_watchdog(false);
mutex_unlock(&clocksource_mutex);
return 0;
}
@@ -758,6 +789,7 @@ void clocksource_change_rating(struct cl
mutex_lock(&clocksource_mutex);
__clocksource_change_rating(cs, rating);
clocksource_select();
+ clocksource_select_watchdog(false);
mutex_unlock(&clocksource_mutex);
}
EXPORT_SYMBOL(clocksource_change_rating);
@@ -767,12 +799,12 @@ EXPORT_SYMBOL(clocksource_change_rating)
*/
static int clocksource_unbind(struct clocksource *cs)
{
- /*
- * I really can't convince myself to support this on hardware
- * designed by lobotomized monkeys.
- */
- if (clocksource_is_watchdog(cs))
- return -EBUSY;
+ if (clocksource_is_watchdog(cs)) {
+ /* Select and try to install a replacement watchdog. */
+ clocksource_select_watchdog(true);
+ if (clocksource_is_watchdog(cs))
+ return -EBUSY;
+ }
if (cs == curr_clocksource) {
/* Select and try to install a replacement clock source */
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-12 19:40 +0200 |
| Subject | [PATCH 4.4 078/192] [PATCH 081/135] drm/amdgpu: fix dp link rate selection (v2) |
| Message-ID | <sgDn4-6mO-33@gated-at.bofh.it> |
| In reply to | #1481599 |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 41869c1c7fe583dec932eb3d87de2e010b30a737 ]
Need to properly handle the max link rate in the dpcd.
This prevents some cases where 5.4 Ghz is selected when
it shouldn't be.
v2: simplify logic, add array bounds check
Reviewed-by: Tom St Denis <tom.stdenis@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 96 +++++++++++--------------------
1 file changed, 36 insertions(+), 60 deletions(-)
--- a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
+++ b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
@@ -243,7 +243,7 @@ static void amdgpu_atombios_dp_get_adjus
/* convert bits per color to bits per pixel */
/* get bpc from the EDID */
-static int amdgpu_atombios_dp_convert_bpc_to_bpp(int bpc)
+static unsigned amdgpu_atombios_dp_convert_bpc_to_bpp(int bpc)
{
if (bpc == 0)
return 24;
@@ -251,64 +251,32 @@ static int amdgpu_atombios_dp_convert_bp
return bpc * 3;
}
-/* get the max pix clock supported by the link rate and lane num */
-static int amdgpu_atombios_dp_get_max_dp_pix_clock(int link_rate,
- int lane_num,
- int bpp)
-{
- return (link_rate * lane_num * 8) / bpp;
-}
-
/***** amdgpu specific DP functions *****/
-/* First get the min lane# when low rate is used according to pixel clock
- * (prefer low rate), second check max lane# supported by DP panel,
- * if the max lane# < low rate lane# then use max lane# instead.
- */
-static int amdgpu_atombios_dp_get_dp_lane_number(struct drm_connector *connector,
+static int amdgpu_atombios_dp_get_dp_link_config(struct drm_connector *connector,
const u8 dpcd[DP_DPCD_SIZE],
- int pix_clock)
+ unsigned pix_clock,
+ unsigned *dp_lanes, unsigned *dp_rate)
{
- int bpp = amdgpu_atombios_dp_convert_bpc_to_bpp(amdgpu_connector_get_monitor_bpc(connector));
- int max_link_rate = drm_dp_max_link_rate(dpcd);
- int max_lane_num = drm_dp_max_lane_count(dpcd);
- int lane_num;
- int max_dp_pix_clock;
-
- for (lane_num = 1; lane_num < max_lane_num; lane_num <<= 1) {
- max_dp_pix_clock = amdgpu_atombios_dp_get_max_dp_pix_clock(max_link_rate, lane_num, bpp);
- if (pix_clock <= max_dp_pix_clock)
- break;
- }
-
- return lane_num;
-}
-
-static int amdgpu_atombios_dp_get_dp_link_clock(struct drm_connector *connector,
- const u8 dpcd[DP_DPCD_SIZE],
- int pix_clock)
-{
- int bpp = amdgpu_atombios_dp_convert_bpc_to_bpp(amdgpu_connector_get_monitor_bpc(connector));
- int lane_num, max_pix_clock;
-
- if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) ==
- ENCODER_OBJECT_ID_NUTMEG)
- return 270000;
-
- lane_num = amdgpu_atombios_dp_get_dp_lane_number(connector, dpcd, pix_clock);
- max_pix_clock = amdgpu_atombios_dp_get_max_dp_pix_clock(162000, lane_num, bpp);
- if (pix_clock <= max_pix_clock)
- return 162000;
- max_pix_clock = amdgpu_atombios_dp_get_max_dp_pix_clock(270000, lane_num, bpp);
- if (pix_clock <= max_pix_clock)
- return 270000;
- if (amdgpu_connector_is_dp12_capable(connector)) {
- max_pix_clock = amdgpu_atombios_dp_get_max_dp_pix_clock(540000, lane_num, bpp);
- if (pix_clock <= max_pix_clock)
- return 540000;
+ unsigned bpp =
+ amdgpu_atombios_dp_convert_bpc_to_bpp(amdgpu_connector_get_monitor_bpc(connector));
+ static const unsigned link_rates[3] = { 162000, 270000, 540000 };
+ unsigned max_link_rate = drm_dp_max_link_rate(dpcd);
+ unsigned max_lane_num = drm_dp_max_lane_count(dpcd);
+ unsigned lane_num, i, max_pix_clock;
+
+ for (lane_num = 1; lane_num <= max_lane_num; lane_num <<= 1) {
+ for (i = 0; i < ARRAY_SIZE(link_rates) && link_rates[i] <= max_link_rate; i++) {
+ max_pix_clock = (lane_num * link_rates[i] * 8) / bpp;
+ if (max_pix_clock >= pix_clock) {
+ *dp_lanes = lane_num;
+ *dp_rate = link_rates[i];
+ return 0;
+ }
+ }
}
- return drm_dp_max_link_rate(dpcd);
+ return -EINVAL;
}
static u8 amdgpu_atombios_dp_encoder_service(struct amdgpu_device *adev,
@@ -422,6 +390,7 @@ void amdgpu_atombios_dp_set_link_config(
{
struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector);
struct amdgpu_connector_atom_dig *dig_connector;
+ int ret;
if (!amdgpu_connector->con_priv)
return;
@@ -429,10 +398,14 @@ void amdgpu_atombios_dp_set_link_config(
if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
(dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP)) {
- dig_connector->dp_clock =
- amdgpu_atombios_dp_get_dp_link_clock(connector, dig_connector->dpcd, mode->clock);
- dig_connector->dp_lane_count =
- amdgpu_atombios_dp_get_dp_lane_number(connector, dig_connector->dpcd, mode->clock);
+ ret = amdgpu_atombios_dp_get_dp_link_config(connector, dig_connector->dpcd,
+ mode->clock,
+ &dig_connector->dp_lane_count,
+ &dig_connector->dp_clock);
+ if (ret) {
+ dig_connector->dp_clock = 0;
+ dig_connector->dp_lane_count = 0;
+ }
}
}
@@ -441,14 +414,17 @@ int amdgpu_atombios_dp_mode_valid_helper
{
struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector);
struct amdgpu_connector_atom_dig *dig_connector;
- int dp_clock;
+ unsigned dp_lanes, dp_clock;
+ int ret;
if (!amdgpu_connector->con_priv)
return MODE_CLOCK_HIGH;
dig_connector = amdgpu_connector->con_priv;
- dp_clock =
- amdgpu_atombios_dp_get_dp_link_clock(connector, dig_connector->dpcd, mode->clock);
+ ret = amdgpu_atombios_dp_get_dp_link_config(connector, dig_connector->dpcd,
+ mode->clock, &dp_lanes, &dp_clock);
+ if (ret)
+ return MODE_CLOCK_HIGH;
if ((dp_clock == 540000) &&
(!amdgpu_connector_is_dp12_capable(connector)))
[toc] | [prev] | [next] | [standalone]
Page 5 of 8 — ← Prev page 1 2 3 4 [5] 6 7 8 Next page →
Back to top | Article view | linux.kernel
csiph-web