Update to 3.16.4
svn path=/dists/sid/linux/; revision=21932
This commit is contained in:
parent
9a00ff7db5
commit
79be2bfa11
|
@ -1,4 +1,198 @@
|
|||
linux (3.16.3-3) UNRELEASED; urgency=low
|
||||
linux (3.16.4-1) UNRELEASED; urgency=low
|
||||
|
||||
* New upstream stable update:
|
||||
https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.4
|
||||
- module: Clean up ro/nx after early module load failures
|
||||
(regression in 3.16)
|
||||
- [armhf] cpufreq: OPP: Avoid sleeping while atomic
|
||||
- [armhf] drm/tilcdc: Fix various bugs in removal path
|
||||
- drm/ttm: Fix possible stack overflow by recursive shrinker calls.
|
||||
- [x86] drm/i915: Fix crash when failing to parse MIPI VBT
|
||||
(regression in 3.16)
|
||||
- [x86] drm/i915: read HEAD register back in init_ring_common() to enforce
|
||||
ordering (Closes: #763583)
|
||||
- libata: widen Crucial M550 blacklist matching
|
||||
- pata_scc: propagate return value of scc_wait_after_reset
|
||||
- pwm: Fix period and polarity in pwm_get() for non-perfect matches
|
||||
- aio: add missing smp_rmb() in read_events_ring
|
||||
- [arm64] flush TLS registers during exec
|
||||
- [arm64] use irq_set_affinity with force=false when migrating irqs
|
||||
(regression in 3.15)
|
||||
- [arm*] KVM: Nuke Hyp-mode tlbs before enabling MMU
|
||||
- [x86] i2c: ismt: use correct length when copy buffer
|
||||
- ftrace: Use current addr when converting to nop in
|
||||
__ftrace_replace_code() (regression in 3.16)
|
||||
- ALSA: core: fix buffer overflow in snd_info_get_line()
|
||||
- ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts
|
||||
for Dice quirk (regression in 3.16)
|
||||
- HID: picolcd: sanity check report size in raw_event() callback
|
||||
(CVE-2014-3186)
|
||||
- HID: magicmouse: sanity check report size in raw_event() callback
|
||||
(CVE-2014-3181)
|
||||
- HID: logitech-dj: prevent false errors to be shown (regression in 3.16.2)
|
||||
- [x86] drm/i915: Skip load detect when intel_crtc->new_enable==true
|
||||
(regression in 3.16)
|
||||
- [x86] drm/i915: fix plane/cursor handling when runtime suspended
|
||||
(regression in 3.14)
|
||||
- [x86] drm/i915: Ignore VBT backlight presence check on Acer C720 (4005U)
|
||||
(regression in 3.15)
|
||||
- [x86] drm/i915: Wait for vblank before enabling the TV encoder
|
||||
(regression in 3.16)
|
||||
- [x86] drm/i915/hdmi: fix hdmi audio state readout (regression in 3.16)
|
||||
- drm/radeon: Add ability to get and change dpm state when radeon PX card
|
||||
is turned off (regression in 3.15)
|
||||
- locks: pass correct "before" pointer to locks_unlink_lock in
|
||||
generic_add_lease
|
||||
- ufs: fix deadlocks introduced by sb mutex merge (regression in 3.16)
|
||||
- USB: serial: fix potential stack buffer overflow
|
||||
- USB: serial: fix potential heap buffer overflow
|
||||
- USB: option: reduce interrupt-urb logging verbosity (regression in 3.16)
|
||||
- [armhf] usb: phy: twl4030-usb: Fix lost interrupts after ID pin goes down
|
||||
(regression in 3.13)
|
||||
- [armhf] usb: phy: twl4030-usb: Fix regressions to runtime PM on omaps
|
||||
(regressions in 3.14, 3.15)
|
||||
- uwb: init beacon cache entry before registering uwb device
|
||||
- usb: hub: take hub->hdev reference when processing from eventlist
|
||||
- USB: EHCI: unlink QHs even after the controller has stopped
|
||||
- Revert "ACPI / battery: fix wrong value of capacity_now reported when
|
||||
fully charged" (regression in 3.16)
|
||||
- [x86] iommu/vt-d: Check return value of acpi_bus_get_device()
|
||||
(regression in 3.15)
|
||||
- [armhf/armmp-lpae] iommu/arm-smmu: fix programming of SMMU_CBn_TCR for
|
||||
stage 1
|
||||
- cgroup: check cgroup liveliness before unbreaking kernfs
|
||||
(regression in 3.15)
|
||||
- NFSv4: Fix another bug in the close/open_downgrade code
|
||||
(regression in 3.16.2)
|
||||
- nfsd4: fix corruption of NFSv4 read data (regression in 3.16)
|
||||
- nfs: check wait_on_bit_lock err in page_group_lock
|
||||
- nfs: clear_request_commit while holding i_lock
|
||||
- nfs: fix nonblocking calls to nfs_page_group_lock
|
||||
- nfs: use blocking page_group_lock in add_request
|
||||
- nfs: fix error handling in lock_and_join_requests
|
||||
- nfs: don't sleep with inode lock in lock_and_join_requests
|
||||
- nfs: disallow duplicate pages in pgio page vectors
|
||||
- nfs: can_coalesce_requests must enforce contiguity
|
||||
- [armhf] 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy
|
||||
strex
|
||||
- [armhf] 8133/1: use irq_set_affinity with force=false when migrating irqs
|
||||
(regression in 3.15)
|
||||
- [armel,armhf] 8148/1: flush TLS and thumbee register state during exec
|
||||
- [armel,armhf] 8149/1: perf: Don't sleep while atomic when enabling
|
||||
per-cpu interrupts (regression in 3.15)
|
||||
- [armhf] imx: fix .is_enabled() of shared gate clock (regression in 3.16)
|
||||
- [armhf] 8165/1: alignment: don't break misaligned NEON load/store
|
||||
- [mips*] Fix MFC1 & MFHC1 emulation for 64-bit MIPS systems
|
||||
(regression in 3.15)
|
||||
- ACPICA: Update to GPIO region handler interface.
|
||||
- gpio / ACPI: Use pin index and bit length
|
||||
- ACPI / platform / LPSS: disable async suspend/resume of LPSS devices
|
||||
(regression in 3.16)
|
||||
- ACPI / hotplug: Generate online uevents for ACPI containers
|
||||
(regression in 3.14)
|
||||
- ACPI / video: disable native backlight for ThinkPad X201s
|
||||
(regression in 3.16)
|
||||
- regmap: Fix regcache debugfs initialization (regression in 3.15)
|
||||
- regmap: Fix handling of volatile registers for format_write() chips
|
||||
- regmap: Don't attempt block writes when syncing cache on single_rw
|
||||
devices
|
||||
- cgroup: reject cgroup names with '\n'
|
||||
- cgroup: delay the clearing of cgrp->kn->priv
|
||||
- cgroup: fix unbalanced locking (regression in 3.14)
|
||||
- [s390*] KVM: Fix user triggerable bug in dead code
|
||||
- [s390*] KVM: mm: try a cow on read only pages for key ops
|
||||
- [s390*] KVM: mm: Fix storage key corruption during swapping
|
||||
- [s390*] KVM: mm: Fix guest storage key corruption in
|
||||
ptep_set_access_flags
|
||||
- [x86] xen: don't copy bogus duplicate entries into kernel page tables
|
||||
- [x86] early_ioremap: Increase FIX_BTMAPS_SLOTS to 8 (regression in 3.16)
|
||||
- shmem: fix nlink for rename overwrite directory
|
||||
- SMB3: Fix oops when creating symlinks on smb3
|
||||
- iio: Fix indio_dev->trig assignment in several drivers
|
||||
- Target/iser: Don't put isert_conn inside disconnected handler
|
||||
- target: Fix inverted logic in SE_DEV_ALUA_SUPPORT_STATE_STORE
|
||||
(regression in 3.13)
|
||||
- iscsi-target: Fix memory corruption in iscsit_logout_post_handler_diffcid
|
||||
- SCSI: libiscsi: fix potential buffer overrun in __iscsi_conn_send_pdu
|
||||
- Revert "iwlwifi: dvm: don't enable CTS to self" (regression in 3.16)
|
||||
- iwlwifi: mvm: fix endianity issues with Smart Fifo commands
|
||||
(regression in 3.14)
|
||||
- iwlwifi: mvm: set MAC_FILTER_IN_BEACON correctly for STA/P2P client
|
||||
(regression in 3.16)
|
||||
- workqueue: apply __WQ_ORDERED to create_singlethread_workqueue()
|
||||
(regression in 3.10)
|
||||
- futex: Unlock hb->lock in futex_wait_requeue_pi() error path
|
||||
- block: Fix dev_t minor allocation lifetime
|
||||
- dm cache: fix race causing dirty blocks to be marked as clean
|
||||
- percpu: fix pcpu_alloc_pages() failure path
|
||||
- percpu: perform tlb flush after pcpu_map_pages() failure
|
||||
- regulatory: add NUL to alpha2
|
||||
- lockd: fix rpcbind crash on lockd startup failure (regression in 3.15)
|
||||
- genhd: fix leftover might_sleep() in blk_free_devt()
|
||||
- eventpoll: fix uninitialized variable in epoll_ctl
|
||||
- kcmp: fix standard comparison bug
|
||||
- fs/notify: don't show f_handle if exportfs_encode_inode_fh failed
|
||||
- nilfs2: fix data loss with mmap()
|
||||
- mm, slab: initialize object alignment on cache creation
|
||||
- fs/cachefiles: add missing \n to kerror conversions (regression in 3.16)
|
||||
- mm: softdirty: keep bit when zapping file pte
|
||||
- sched: Fix unreleased llc_shared_mask bit during CPU hotplug
|
||||
- brcmfmac: handle IF event for P2P_DEVICE interface (regression in 3.12)
|
||||
- ath9k_htc: fix random decryption failure (regression in 3.15)
|
||||
- [powerpc,ppc*] Add smp_mb() to arch_spin_is_locked()
|
||||
- [powerpc,ppc*] Add smp_mb()s to arch_spin_unlock_wait()
|
||||
- [hppa] Implement new LWS CAS supporting 64 bit operations.
|
||||
- alarmtimer: Return relative times in timer_gettime
|
||||
- alarmtimer: Do not signal SIGEV_NONE timers
|
||||
- alarmtimer: Lock k_itimer during timer callback
|
||||
- GFS2: fix d_splice_alias() misuses
|
||||
- IB/qib: Correct reference counting in debugfs qp_stats
|
||||
- IB/mlx4: Avoid null pointer dereference in mlx4_ib_scan_netdevs()
|
||||
(regression in 3.14)
|
||||
- IB/mlx4: Don't duplicate the default RoCE GID (regression in 3.14)
|
||||
- IB/core: When marshaling uverbs path, clear unused fields
|
||||
(regression in 3.14)
|
||||
- mm: Fix unbalanced mutex in dma_pool_create(). (regression in 3.16)
|
||||
- PCI: Add pci_ignore_hotplug() to ignore hotplug events for a device
|
||||
(regression in 3.15)
|
||||
- Revert "PCI: Don't scan random busses in pci_scan_bridge()"
|
||||
(regression in 3.15)
|
||||
- drm/nouveau/runpm: fix module unload
|
||||
- drm/radeon/px: fix module unload
|
||||
- fs: Fix nasty 32-bit overflow bug in buffer i/o code.
|
||||
- blk-mq: Avoid race condition with uninitialized requests
|
||||
- [x86] crypto: ccp - Check for CCP before registering crypto algs
|
||||
- nl80211: clear skb cb before passing to netlink
|
||||
- Revert "PCI: Make sure bus number resources stay within their parents
|
||||
bounds" (regression in 3.15)
|
||||
- cpufreq: release policy->rwsem on error (regression in 3.14)
|
||||
- cpufreq: fix cpufreq suspend/resume for intel_pstate (regression in 3.15)
|
||||
- media: it913x: init tuner on attach (regression in 3.15)
|
||||
- media: videobuf2-dma-sg: fix for wrong GFP mask to
|
||||
sg_alloc_table_from_pages (regression in 3.13)
|
||||
- media: vb2: fix vb2 state check when start_streaming fails
|
||||
(regression in 3.16.3)
|
||||
- media: vb2: fix plane index sanity check in vb2_plane_cookie()
|
||||
- md/raid1: clean up request counts properly in close_sync()
|
||||
(regression in 3.13)
|
||||
- md/raid1: be more cautious where we read-balance during resync.
|
||||
(regression in 3.13)
|
||||
- md/raid1: make sure resync waits for conflicting writes to complete.
|
||||
(regression in 3.13)
|
||||
- md/raid1: Don't use next_resync to determine how far resync has
|
||||
progressed (regression in 3.13)
|
||||
- md/raid1: update next_resync under resync_lock. (regression in 3.13)
|
||||
- md/raid1: count resync requests in nr_pending. (regression in 3.13)
|
||||
- md/raid1: fix_read_error should act on all non-faulty devices.
|
||||
- md/raid1: intialise start_next_window for READ case to avoid hang
|
||||
(regression in 3.13)
|
||||
- netfilter: xt_hashlimit: perform garbage collection from process context
|
||||
- mmc: mmci: Reverse IRQ handling for the arm_variant (regression in 3.15)
|
||||
- partitions: aix.c: off by one bug (regression in 3.11)
|
||||
- cpufreq: update 'cpufreq_suspended' after stopping governors
|
||||
- aio: block exit_aio() until all context requests are completed
|
||||
- ext4: propagate errors up to ext4_find_entry()'s callers
|
||||
- ext4: avoid trying to kfree an ERR_PTR pointer
|
||||
|
||||
[ Ian Campbell ]
|
||||
* [armhf] Add Exynos5 disk/usb/nic modules to udebs.
|
||||
|
@ -11,8 +205,6 @@ linux (3.16.3-3) UNRELEASED; urgency=low
|
|||
* [s390*] 3215: fix tty output containing tabs (Closes: #758264)
|
||||
* radeon: Don't check for installed firmware if driver is built-in
|
||||
(Closes: #763305)
|
||||
* [x86] drm/i915: read HEAD register back in init_ring_common() to enforce
|
||||
ordering (Closes: #763583)
|
||||
|
||||
[ Aurelien Jarno ]
|
||||
* [arm64] Change RTC_DRV_PL031 and RTC_DRV_XGENE from modules to built-ins
|
||||
|
|
|
@ -1,161 +0,0 @@
|
|||
From: Benjamin LaHaise <bcrl@kvack.org>
|
||||
Date: Sun, 24 Aug 2014 13:14:05 -0400
|
||||
Subject: aio: fix reqs_available handling
|
||||
Origin: https://git.kernel.org/linus/d856f32a86b2b015ab180ab7a55e455ed8d3ccc5
|
||||
|
||||
As reported by Dan Aloni, commit f8567a3845ac ("aio: fix aio request
|
||||
leak when events are reaped by userspace") introduces a regression when
|
||||
user code attempts to perform io_submit() with more events than are
|
||||
available in the ring buffer. Reverting that commit would reintroduce a
|
||||
regression when user space event reaping is used.
|
||||
|
||||
Fixing this bug is a bit more involved than the previous attempts to fix
|
||||
this regression. Since we do not have a single point at which we can
|
||||
count events as being reaped by user space and io_getevents(), we have
|
||||
to track event completion by looking at the number of events left in the
|
||||
event ring. So long as there are as many events in the ring buffer as
|
||||
there have been completion events generate, we cannot call
|
||||
put_reqs_available(). The code to check for this is now placed in
|
||||
refill_reqs_available().
|
||||
|
||||
A test program from Dan and modified by me for verifying this bug is available
|
||||
at http://www.kvack.org/~bcrl/20140824-aio_bug.c .
|
||||
|
||||
Reported-by: Dan Aloni <dan@kernelim.com>
|
||||
Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
|
||||
Acked-by: Dan Aloni <dan@kernelim.com>
|
||||
Cc: Kent Overstreet <kmo@daterainc.com>
|
||||
Cc: Mateusz Guzik <mguzik@redhat.com>
|
||||
Cc: Petr Matousek <pmatouse@redhat.com>
|
||||
Cc: stable@vger.kernel.org # v3.16 and anything that f8567a3845ac was backported to
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
fs/aio.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 73 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/fs/aio.c
|
||||
+++ b/fs/aio.c
|
||||
@@ -141,6 +141,7 @@ struct kioctx {
|
||||
|
||||
struct {
|
||||
unsigned tail;
|
||||
+ unsigned completed_events;
|
||||
spinlock_t completion_lock;
|
||||
} ____cacheline_aligned_in_smp;
|
||||
|
||||
@@ -880,6 +881,68 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
+/* refill_reqs_available
|
||||
+ * Updates the reqs_available reference counts used for tracking the
|
||||
+ * number of free slots in the completion ring. This can be called
|
||||
+ * from aio_complete() (to optimistically update reqs_available) or
|
||||
+ * from aio_get_req() (the we're out of events case). It must be
|
||||
+ * called holding ctx->completion_lock.
|
||||
+ */
|
||||
+static void refill_reqs_available(struct kioctx *ctx, unsigned head,
|
||||
+ unsigned tail)
|
||||
+{
|
||||
+ unsigned events_in_ring, completed;
|
||||
+
|
||||
+ /* Clamp head since userland can write to it. */
|
||||
+ head %= ctx->nr_events;
|
||||
+ if (head <= tail)
|
||||
+ events_in_ring = tail - head;
|
||||
+ else
|
||||
+ events_in_ring = ctx->nr_events - (head - tail);
|
||||
+
|
||||
+ completed = ctx->completed_events;
|
||||
+ if (events_in_ring < completed)
|
||||
+ completed -= events_in_ring;
|
||||
+ else
|
||||
+ completed = 0;
|
||||
+
|
||||
+ if (!completed)
|
||||
+ return;
|
||||
+
|
||||
+ ctx->completed_events -= completed;
|
||||
+ put_reqs_available(ctx, completed);
|
||||
+}
|
||||
+
|
||||
+/* user_refill_reqs_available
|
||||
+ * Called to refill reqs_available when aio_get_req() encounters an
|
||||
+ * out of space in the completion ring.
|
||||
+ */
|
||||
+static void user_refill_reqs_available(struct kioctx *ctx)
|
||||
+{
|
||||
+ spin_lock_irq(&ctx->completion_lock);
|
||||
+ if (ctx->completed_events) {
|
||||
+ struct aio_ring *ring;
|
||||
+ unsigned head;
|
||||
+
|
||||
+ /* Access of ring->head may race with aio_read_events_ring()
|
||||
+ * here, but that's okay since whether we read the old version
|
||||
+ * or the new version, and either will be valid. The important
|
||||
+ * part is that head cannot pass tail since we prevent
|
||||
+ * aio_complete() from updating tail by holding
|
||||
+ * ctx->completion_lock. Even if head is invalid, the check
|
||||
+ * against ctx->completed_events below will make sure we do the
|
||||
+ * safe/right thing.
|
||||
+ */
|
||||
+ ring = kmap_atomic(ctx->ring_pages[0]);
|
||||
+ head = ring->head;
|
||||
+ kunmap_atomic(ring);
|
||||
+
|
||||
+ refill_reqs_available(ctx, head, ctx->tail);
|
||||
+ }
|
||||
+
|
||||
+ spin_unlock_irq(&ctx->completion_lock);
|
||||
+}
|
||||
+
|
||||
/* aio_get_req
|
||||
* Allocate a slot for an aio request.
|
||||
* Returns NULL if no requests are free.
|
||||
@@ -888,8 +951,11 @@ static inline struct kiocb *aio_get_req(
|
||||
{
|
||||
struct kiocb *req;
|
||||
|
||||
- if (!get_reqs_available(ctx))
|
||||
- return NULL;
|
||||
+ if (!get_reqs_available(ctx)) {
|
||||
+ user_refill_reqs_available(ctx);
|
||||
+ if (!get_reqs_available(ctx))
|
||||
+ return NULL;
|
||||
+ }
|
||||
|
||||
req = kmem_cache_alloc(kiocb_cachep, GFP_KERNEL|__GFP_ZERO);
|
||||
if (unlikely(!req))
|
||||
@@ -948,8 +1014,8 @@ void aio_complete(struct kiocb *iocb, lo
|
||||
struct kioctx *ctx = iocb->ki_ctx;
|
||||
struct aio_ring *ring;
|
||||
struct io_event *ev_page, *event;
|
||||
+ unsigned tail, pos, head;
|
||||
unsigned long flags;
|
||||
- unsigned tail, pos;
|
||||
|
||||
/*
|
||||
* Special case handling for sync iocbs:
|
||||
@@ -1010,10 +1076,14 @@ void aio_complete(struct kiocb *iocb, lo
|
||||
ctx->tail = tail;
|
||||
|
||||
ring = kmap_atomic(ctx->ring_pages[0]);
|
||||
+ head = ring->head;
|
||||
ring->tail = tail;
|
||||
kunmap_atomic(ring);
|
||||
flush_dcache_page(ctx->ring_pages[0]);
|
||||
|
||||
+ ctx->completed_events++;
|
||||
+ if (ctx->completed_events > 1)
|
||||
+ refill_reqs_available(ctx, head, tail);
|
||||
spin_unlock_irqrestore(&ctx->completion_lock, flags);
|
||||
|
||||
pr_debug("added to ring %p at [%u]\n", iocb, tail);
|
||||
@@ -1028,7 +1098,6 @@ void aio_complete(struct kiocb *iocb, lo
|
||||
|
||||
/* everything turned out well, dispose of the aiocb. */
|
||||
kiocb_free(iocb);
|
||||
- put_reqs_available(ctx, 1);
|
||||
|
||||
/*
|
||||
* We have to order our ring_info tail store above and test
|
|
@ -1,49 +0,0 @@
|
|||
From: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Date: Sun, 20 Jul 2014 19:25:33 +0200
|
||||
Subject: MIPS: ZBOOT: add missing <linux/string.h> include
|
||||
Forwarded: http://www.linux-mips.org/archives/linux-mips/2014-07/msg00377.html
|
||||
|
||||
Commit dc4d7b37 (MIPS: ZBOOT: gather string functions into string.c)
|
||||
moved the string related functions into a separate file, which might
|
||||
cause the following build error, depending on the configuration:
|
||||
|
||||
| CC arch/mips/boot/compressed/decompress.o
|
||||
| In file included from linux/arch/mips/boot/compressed/../../../../lib/decompress_unxz.c:234:0,
|
||||
| from linux/arch/mips/boot/compressed/decompress.c:67:
|
||||
| linux/arch/mips/boot/compressed/../../../../lib/xz/xz_dec_stream.c: In function 'fill_temp':
|
||||
| linux/arch/mips/boot/compressed/../../../../lib/xz/xz_dec_stream.c:162:2: error: implicit declaration of function 'memcpy' [-Werror=implicit-function-declaration]
|
||||
| cc1: some warnings being treated as errors
|
||||
| linux/scripts/Makefile.build:308: recipe for target 'arch/mips/boot/compressed/decompress.o' failed
|
||||
| make[6]: *** [arch/mips/boot/compressed/decompress.o] Error 1
|
||||
| linux/arch/mips/Makefile:308: recipe for target 'vmlinuz' failed
|
||||
|
||||
It does not fail with the standard configuration, as when
|
||||
CONFIG_DYNAMIC_DEBUG is not enabled <linux/string.h> gets included in
|
||||
include/linux/dynamic_debug.h. There might be other ways for it to
|
||||
get indirectly included.
|
||||
|
||||
We can't add the include directly in xz_dec_stream.c as some
|
||||
architectures might want to use a different version for the boot/
|
||||
directory (see for example arch/x86/boot/string.h).
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
||||
---
|
||||
arch/mips/boot/compressed/decompress.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c
|
||||
index c00c4dd..5244cec 100644
|
||||
--- a/arch/mips/boot/compressed/decompress.c
|
||||
+++ b/arch/mips/boot/compressed/decompress.c
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
+#include <linux/string.h>
|
||||
|
||||
#include <asm/addrspace.h>
|
||||
|
||||
--
|
||||
2.0.0
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From: Helge Deller <deller@gmx.de>
|
||||
Date: Sun, 21 Sep 2014 20:53:39 +0200
|
||||
Subject: hppa-arch-fast-indirect.patch
|
||||
Bug-Debian: https://bugs.debian.org/762390
|
||||
|
||||
Currently the 64bit hppa kernel gets miscompiled by gcc-4.8 and as such
|
||||
it will not boot.
|
||||
|
||||
The attached patch fixes one of the problems. Latest changes in gcc-4.8
|
||||
made changes to the -mfast-indirect-calls option which now produces wrong code
|
||||
when compiling for 64bit. The problem is being worked on in upstream gcc-4.8,
|
||||
and we don't know yet if we will implement -mfast-indirect-calls for 64bit
|
||||
(which might introduce side-effects) or not. That's the reason why I don't want
|
||||
to push attached patch upstream yet.
|
||||
|
||||
--- a/arch/parisc/Makefile
|
||||
+++ b/arch/parisc/Makefile
|
||||
@@ -48,7 +48,12 @@ cflags-y := -pipe
|
||||
|
||||
# These flags should be implied by an hppa-linux configuration, but they
|
||||
# are not in gcc 3.2.
|
||||
-cflags-y += -mno-space-regs -mfast-indirect-calls
|
||||
+cflags-y += -mno-space-regs
|
||||
+
|
||||
+# -mfast-indirect-calls is only relevant for 32-bit kernels.
|
||||
+ifndef CONFIG_64BIT
|
||||
+cflags-y += -mfast-indirect-calls
|
||||
+endif
|
||||
|
||||
# Currently we save and restore fpregs on all kernel entry/interruption paths.
|
||||
# If that gets optimized, we might need to disable the use of fpregs in the
|
|
@ -1,41 +0,0 @@
|
|||
From: Jiri Kosina <jkosina@suse.cz>
|
||||
Date: Thu, 7 Aug 2014 16:29:53 +0200
|
||||
Subject: drm/i915: read HEAD register back in init_ring_common() to enforce
|
||||
ordering
|
||||
Origin: https://git.kernel.org/linus/ece4a17d237a79f63fbfaf3f724a12b6d500555c
|
||||
|
||||
Withtout this, ring initialization fails reliabily during resume with
|
||||
|
||||
[drm:init_ring_common] *ERROR* render ring initialization failed ctl 0001f001 head ffffff8804 tail 00000000 start 000e4000
|
||||
|
||||
This is not a complete fix, but it is verified to make the ring
|
||||
initialization failures during resume much less likely.
|
||||
|
||||
We were not able to root-cause this bug (likely HW-specific to Gen4 chips)
|
||||
yet. This is therefore used as a ducttape before problem is fully
|
||||
understood and proper fix created, so that people don't suffer from
|
||||
completely unusable systems in the meantime.
|
||||
|
||||
The discussion and debugging is happening at
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=76554
|
||||
|
||||
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
@@ -517,6 +517,9 @@ static int init_ring_common(struct intel
|
||||
else
|
||||
ring_setup_phys_status_page(ring);
|
||||
|
||||
+ /* Enforce ordering by reading HEAD register back */
|
||||
+ I915_READ_HEAD(ring);
|
||||
+
|
||||
/* Initialize the ring. This must happen _after_ we've cleared the ring
|
||||
* registers with the above sequence (the readback of the HEAD registers
|
||||
* also enforces ordering), otherwise the hw might lose the new ring
|
|
@ -51,12 +51,9 @@ bugfix/arm/omap-musb-choice.patch
|
|||
bugfix/mips/disable-advansys.patch
|
||||
bugfix/arm/ixp4xx_iobe.patch
|
||||
bugfix/m68k/ethernat-kconfig.patch
|
||||
bugfix/mips/MIPS-ZBOOT-add-missing-linux-string.h-include.patch
|
||||
bugfix/x86/x86-reject-x32-executables-if-x32-abi-not-supported.patch
|
||||
bugfix/s390/s390-3215-fix-hanging-console-issue.patch
|
||||
bugfix/arm64/arm64-crypto-fix-makefile-rule-for-aes-glue-.o.patch
|
||||
bugfix/parisc/hppa-arch-fast-indirect.patch
|
||||
bugfix/x86/drm-i915-read-HEAD-register-back-in-init_ring_common.patch
|
||||
|
||||
# Arch features
|
||||
features/mips/MIPS-Support-hard-limit-of-cpu-count-nr_cpu_ids.patch
|
||||
|
@ -110,7 +107,6 @@ features/arm64/dts-Add-bindings-for-APM-X-Gene-SoC-ethernet-driver.patch
|
|||
bugfix/all/misc-bmp085-Enable-building-as-a-module.patch
|
||||
bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch
|
||||
bugfix/all/disable-some-marvell-phys.patch
|
||||
bugfix/all/aio-fix-reqs_available-handling.patch
|
||||
debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch
|
||||
bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch
|
||||
bugfix/all/builddeb-put-the-dbg-files-into-the-correct-director.patch
|
||||
|
|
Loading…
Reference in New Issue