Merge changes from sid up to 3.16.7-ckt7-1

svn path=/dists/trunk/linux/; revision=22445
This commit is contained in:
Ben Hutchings 2015-03-05 00:45:32 +00:00
commit c6d983ba6a
16 changed files with 1011 additions and 10 deletions

206
debian/changelog vendored
View File

@ -168,6 +168,212 @@ linux (3.17~rc5-1~exp1) experimental; urgency=medium
-- maximilian attems <maks@debian.org> Thu, 18 Sep 2014 23:50:00 +0200
linux (3.16.7-ckt7-1) unstable; urgency=medium
* New upstream stable update:
http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt5
- [x86] vdso: Use asm volatile in __getcpu
- SCSI: fix regression in scsi_send_eh_cmnd() (regression in 3.16)
- Btrfs: don't delay inode ref updates during log replay
(regression in 3.16.7)
- mm: propagate error from stack expansion even for guard page
- vfio-pci: Fix the check on pci device type in vfio_pci_probe()
- rpc: fix xdr_truncate_encode to handle buffer ending on page boundary
(regression in 3.16)
- [arm64] efi: add missing call to early_ioremap_reset()
(regression in 3.16)
- exit: fix race between wait_consider_task() and wait_task_zombie()
(regression in 3.15)
- mm: prevent endless growth of anon_vma hierarchy
- mm: protect set_page_dirty() from ongoing truncation
- mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process
being killed
- sched/deadline: Fix migration of SCHED_DEADLINE tasks
- HID: roccat: potential out of bounds in pyra_sysfs_write_settings()
- mm: Don't count the stack guard page towards RLIMIT_STACK
- mm: fix corner case in anon_vma endless growing prevention
- [arm*][xen] introduce xen_arch_need_swiotlb
- fsnotify: next_i is freed during fsnotify_unmount_inodes.
- [armhf] ASoC: eukrea-tlv320: Fix of_node_put() call with uninitialized
object (regression in 3.15)
- HID: i2c-hid: Do not free buffers in i2c_hid_stop() (regression in 3.15)
- ALSA: fireworks: fix an endianness bug for transaction length
(regression in 3.16)
- [armhf] mtd: nand: omap: Fix NAND enumeration on 3430 LDP
(regression in 3.13)
- ocfs2: fix the wrong directory passed to ocfs2_lookup_ino_from_name()
when link file (regression in 3.14)
- [powerpc*] Fix bad NULL pointer check in udbg_uart_getc_poll()
(regression in 3.12)
- nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races
- [armhf] OMAP4: PM: Only do static dependency configuration in
omap4_init_static_deps (regression in 3.11)
- [armel,armhf] Revert "ARM: 7830/1: delay: don't bother reporting bogomips
in /proc/cpuinfo" (regression in 3.12)
- gre: fix the inner mac header in nbma tunnel xmit path
(regression in 3.16.7-ckt3)
- netlink: Always copy on mmap TX.
- netlink: Don't reorder loads/stores before marking mmap netlink frame as
available
- batman-adv: Unify fragment size calculation (regression in 3.13)
- batman-adv: avoid NULL dereferences and fix if check (regression in 3.13)
- net: Fix stacked vlan offload features computation
- net: Reset secmark when scrubbing packet
- xen-netback: fixing the propagation of the transmit shaper timeout
(regression in 3.16)
- team: avoid possible underflow of count_pending value for notify_peers
and mcast_rejoin (regression in 3.12)
- usb: gadget: gadgetfs: Free memory allocated by memdup_user()
(regression in 3.15)
- iwlwifi: mvm: fix Rx with both chains (regression in 3.16)
- LOCKD: Fix a race when initialising nlmsvc_timeout (regression in 3.11)
- NFSv4.1: Fix client id trunking on Linux
- vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion
- xhci: Check if slot is already in default state before moving it there
(regression in 3.14)
- USB: console: fix uninitialised ldisc semaphore (regression in 3.12)
- USB: console: fix potential use after free
- [armhf] usb: dwc3: gadget: Fix TRB preparation during SG
- [x86] ftrace/jprobes: Fix conflict between jprobes and function graph
tracing
- clk: Don't try to use a struct clk* after it could have been freed
- [x86] drm/i915: Evict CS TLBs between batches
- [xen] Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
(regression in 3.16.7-ckt4)
http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt6
- ipvs: uninitialized data with IP_VS_IPV6
- netfilter: nfnetlink: validate nfnetlink header from batch
- time: settimeofday: Validate the values of tv from user
- drm/radeon: fix VM flush on cayman/aruba (v3)
- drm/radeon: fix VM flush on SI (v3)
- drm/radeon: fix VM flush on CIK (v3)
- drm/radeon: add a dpm quirk list (regression around 3.14)
- can: dev: fix crtlmode_supported check
- can: kvaser_usb: Don't free packets when tight on URBs
- drm/radeon: use rv515_ring_start on r5xx (regression in 3.12)
- PCI: Mark Atheros AR93xx to avoid bus reset (regression in 3.14)
- [x86] PCI: Clip bridge windows to fit in upstream windows
(regression in 3.16)
- [armhf] mvebu: completely disable hardware I/O coherency
- cifs: fix deadlock in cifs_ioctl_clone()
- ipr: wait for aborted command responses
- libata: allow sata_sil24 to opt-out of tag ordered submission
(regression in 3.14.4, 3.15)
- [media] vb2: fix vb2_thread_stop race conditions
- [i386/586] apic: Re-enable PCI_MSI support for non-SMP X86_32
(regression in 3.12)
- dm cache: share cache-metadata object across inactive and active DM
tables
- dm cache: fix problematic dual use of a single migration count variable
- Input: evdev - fix EVIOCG{type} ioctl
- tty: Fix pty master poll() after slave closes v2 (regression in 3.12)
- [armhf] bus: omap_l3_noc: Add resume hook to restore context
(regression in 3.16)
- decompress_bunzip2: off by one in get_next_block()
- kbuild: Fix removal of the debian/ directory (regression in 3.16)
- mm: get rid of radix tree gfp mask for pagecache_get_page
(regression in 3.16)
- regulator: core: fix race condition in regulator_put()
- ASoC: simple-card: Fix crash in asoc_simple_card_unref()
(regression in 3.15)
- [ppc64el] xmon: Fix another endiannes issue in RTAS call from xmon
- nfs: fix dio deadlock when O_DIRECT flag is flipped
- mac80211: properly set CCK flag in radiotap (regression in 3.12)
- [x86] drm/i915: Only fence tiled region of object.
- can: kvaser_usb: Do not sleep in atomic context
- can: kvaser_usb: Send correct context to URB completion
- rbd: fix rbd_dev_parent_get() when parent_overlap == 0
- rbd: drop parent_ref in rbd_dev_unprobe() unconditionally
- dm cache: fix missing ERR_PTR returns and handling
- dm thin: don't allow messages to be sent to a pool target in READ_ONLY
or FAIL mode
- [armhf] mvebu: don't set the PL310 in I/O coherency mode when I/O
coherency is disabled
- vm: add VM_FAULT_SIGSEGV handling support
- vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than
SIGBUS
- perf: Tighten (and fix) the grouping condition
- iwlwifi: mvm: drop non VO frames when flushing (regression in 3.16)
- memcg: remove extra newlines from memcg oom kill log (regression in 3.15)
- ipv4: try to cache dst_entries which would cause a redirect
(regression in 3.16) (CVE-2015-1465)
http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt7
- [ppc64el] powerpc: add little endian flag to syscall_get_arch()
- [arm64] Fix up /proc/cpuinfo
- cifs: Complete oplock break jobs before closing file handle
(regression in 3.15)
- [arm64,or1k] lib/checksum.c: fix carry in csum_tcpudp_nofold
- [mips*] Fix kernel lockup or crash after CPU offline/online
- md/raid5: fix another livelock caused by non-aligned writes.
(regression in 3.16)
- drm/radeon: fix PLLs on RS880 and older v2 (regression in 3.15)
(Closes: #770790)
- [armhf/armmp-lpae] 8299/1: mm: ensure local active ASID is marked as
allocated on rollover
- PCI: Handle read-only BARs on AMD CS553x devices
(regression in 3.16.7-ckt4)
- mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range
- nilfs2: fix deadlock of segment constructor over I_SYNC flag
- ip: zero sockaddr returned on error queue
- net: rps: fix cpu unplug
- ipv6: stop sending PTB packets for MTU < 1280
- udp_diag: Fix socket skipping within chain
- ping: Fix race in free in receive path
- net: don't OOPS on socket aio
- ipv4: tcp: get rid of ugly unicast_sock
- ppp: deflate: never return len larger than output buffer
- [x86] hyperv: Fix the error processing in netvsc_send()
- Bluetooth: ath3k: workaround the compatibility issue with xHCI controller
- ceph: introduce global empty snap context
- drm/vmwgfx: Don't use memory accounting for kernel-side fence objects
- net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr
struct from userland.
- virtio_pci: defer kfree until release callback
[ Ian Campbell ]
* [armhf] Add DTB for Olimex A20-OLinuXino-LIME2. (Closes: #777455)
* [armhf] Enable CONFIG_BACKLIGHT_GPIO as a module. (Closes: #778783)
* [armhf] Enable FB_SIMPLE on sunxi platform, backporting fixes and DTS
entries.
[ Ben Hutchings ]
* shm: add memfd.h to UAPI export list, so kdbus will build
* [x86] HPET force enable for e6xx based systems (Closes: #772951)
* vfs: read file_handle only once in handle_to_path (CVE-2015-1420)
* ASLR: fix stack randomization on 64-bit systems (CVE-2015-1593)
* Revert "quota: Switch ->get_dqblk() and ->set_dqblk() to use bytes as
space units" to avoid ABI change
* rmap: Fix ABI change in 3.16.7-ckt5
* perf: Fix ABI change in 3.16.7-ckt6
* mm: Fix pagecache_get_page() ABI change in 3.16.7-ckt6
* tcp: Fix ABI change in 3.16.7-ckt7
* [x86] ACPI / video: Add disable_native_backlight quirk for various
Samsung models and Dell XPS15 L521X (Closes: #772440)
* [x86] ALSA: Enable SND_SOC, SND_SOC_INTEL_SST, SND_SOC_INTEL_HASWELL_MACH,
SND_SOC_INTEL_BYT_RT5640_MACH, SND_SOC_INTEL_BYT_MAX98090_MACH as modules
(Closes: #773835)
* arcmsr: Backport changes up to Linux 3.18 (Closes: #698821)
* [x86] drm/i915: Quietly reject attempts to create non-pagealigned stolen
objects (Closes: #763155)
* KEYS: request_key() should reget expired keys rather than give EKEYEXPIRED
(Closes: #758870)
* drm: Enable DRM_BOCHS, DRM_QXL as modules
- qxl: Disable by default, as it is incompatible with wheezy's
xserver-xorg-video-qxl. It can be forced to load with module
parameter modeset=1.
* of.h: Keep extern declaration of of_* variables when !CONFIG_OF
(for simplefb)
[ Helge Deller ]
* [alpha] build debian-installer udeb packages
* [hppa] build virtio udeb packages
[ Uwe Kleine-König ]
* Add support for Bananapro board, thanks Karsten Merker for the patch.
(Closes: 779311)
-- Ben Hutchings <ben@decadent.org.uk> Sun, 01 Mar 2015 15:13:40 +0000
linux (3.16.7-ckt4-3) unstable; urgency=medium
[ Ben Hutchings ]

View File

@ -1,10 +0,0 @@
##
## file: arch/alpha/Kconfig
##
# CONFIG_SMP is not set
##
## file: arch/alpha/Kconfig.debug
##
CONFIG_ALPHA_LEGACY_START_ADDRESS=y

View File

@ -874,6 +874,11 @@ CONFIG_AM335X_PHY_USB=m
CONFIG_TWL6030_USB=m
CONFIG_USB_MXS_PHY=m
##
## file: drivers/video/backlight/Kconfig
##
CONFIG_BACKLIGHT_GPIO=m
##
## file: drivers/video/console/Kconfig
##

10
debian/config/config vendored
View File

@ -507,6 +507,11 @@ CONFIG_DRM_SAVAGE=m
##
# CONFIG_DRM_AST is not set
##
## file: drivers/gpu/drm/bochs/Kconfig
##
CONFIG_DRM_BOCHS=m
##
## file: drivers/gpu/drm/bridge/Kconfig
##
@ -537,6 +542,11 @@ CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
##
## file: drivers/gpu/drm/qxl/Kconfig
##
CONFIG_DRM_QXL=m
##
## file: drivers/gpu/drm/radeon/Kconfig
##

View File

@ -1898,3 +1898,16 @@ CONFIG_SND_YMFPCI=m
##
CONFIG_SND_HDA_INTEL=m
##
## file: sound/soc/Kconfig
##
CONFIG_SND_SOC=m
##
## file: sound/soc/intel/Kconfig
##
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m

View File

@ -0,0 +1,98 @@
From: Hector Marco-Gisbert <hecmargi@upv.es>
Date: Sat, 14 Feb 2015 09:33:50 -0800
Subject: ASLR: fix stack randomization on 64-bit systems
Origin: http://article.gmane.org/gmane.linux.kernel/1888210
The issue is that the stack for processes is not properly randomized on 64 bit
architectures due to an integer overflow.
The affected function is randomize_stack_top() in file "fs/binfmt_elf.c":
static unsigned long randomize_stack_top(unsigned long stack_top)
{
unsigned int random_variable = 0;
if ((current->flags & PF_RANDOMIZE) &&
!(current->personality & ADDR_NO_RANDOMIZE)) {
random_variable = get_random_int() & STACK_RND_MASK;
random_variable <<= PAGE_SHIFT;
}
return PAGE_ALIGN(stack_top) + random_variable;
return PAGE_ALIGN(stack_top) - random_variable;
}
Note that, it declares the "random_variable" variable as "unsigned int". Since
the result of the shifting operation between STACK_RND_MASK (which is
0x3fffff on x86_64, 22 bits) and PAGE_SHIFT (which is 12 on x86_64):
random_variable <<= PAGE_SHIFT;
then the two leftmost bits are dropped when storing the result in the
"random_variable". This variable shall be at least 34 bits long to hold the
(22+12) result.
These two dropped bits have an impact on the entropy of process stack.
Concretely, the total stack entropy is reduced by four: from 2^28 to 2^30 (One
fourth of expected entropy).
This patch restores back the entropy by correcting the types involved in the
operations in the functions randomize_stack_top() and stack_maxrandom_size().
The successful fix can be tested with:
$ for i in `seq 1 10`; do cat /proc/self/maps | grep stack; done
7ffeda566000-7ffeda587000 rw-p 00000000 00:00 0 [stack]
7fff5a332000-7fff5a353000 rw-p 00000000 00:00 0 [stack]
7ffcdb7a1000-7ffcdb7c2000 rw-p 00000000 00:00 0 [stack]
7ffd5e2c4000-7ffd5e2e5000 rw-p 00000000 00:00 0 [stack]
...
Once corrected, the leading bytes should be between 7ffc and 7fff, rather
than always being 7fff.
CVE-2015-1593
Signed-off-by: Hector Marco-Gisbert <hecmargi@upv.es>
Signed-off-by: Ismael Ripoll <iripoll@upv.es>
[kees: rebase, fix 80 char, clean up commit message, add test example, cve]
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: stable@vger.kernel.org
---
arch/x86/mm/mmap.c | 6 +++---
fs/binfmt_elf.c | 5 +++--
2 files changed, 6 insertions(+), 5 deletions(-)
--- a/arch/x86/mm/mmap.c
+++ b/arch/x86/mm/mmap.c
@@ -35,12 +35,12 @@ struct __read_mostly va_alignment va_ali
.flags = -1,
};
-static unsigned int stack_maxrandom_size(void)
+static unsigned long stack_maxrandom_size(void)
{
- unsigned int max = 0;
+ unsigned long max = 0;
if ((current->flags & PF_RANDOMIZE) &&
!(current->personality & ADDR_NO_RANDOMIZE)) {
- max = ((-1U) & STACK_RND_MASK) << PAGE_SHIFT;
+ max = ((-1UL) & STACK_RND_MASK) << PAGE_SHIFT;
}
return max;
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -554,11 +554,12 @@ out:
static unsigned long randomize_stack_top(unsigned long stack_top)
{
- unsigned int random_variable = 0;
+ unsigned long random_variable = 0;
if ((current->flags & PF_RANDOMIZE) &&
!(current->personality & ADDR_NO_RANDOMIZE)) {
- random_variable = get_random_int() & STACK_RND_MASK;
+ random_variable = (unsigned long) get_random_int();
+ random_variable &= STACK_RND_MASK;
random_variable <<= PAGE_SHIFT;
}
#ifdef CONFIG_STACK_GROWSUP

View File

@ -0,0 +1,37 @@
From: Sasha Levin <sasha.levin@oracle.com>
Subject: vfs: read file_handle only once in handle_to_path
Date: Wed, 28 Jan 2015 15:30:43 -0500
Origin: http://article.gmane.org/gmane.linux.file-systems/92438
We used to read file_handle twice. Once to get the amount of extra bytes, and
once to fetch the entire structure.
This may be problematic since we do size verifications only after the first
read, so if the number of extra bytes changes in userspace between the first
and second calls, we'll have an incoherent view of file_handle.
Instead, read the constant size once, and copy that over to the final
structure without having to re-read it again.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
---
Change in v2:
- Use the f_handle pointer rather than size of struct
fs/fhandle.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/fs/fhandle.c
+++ b/fs/fhandle.c
@@ -195,8 +195,9 @@ static int handle_to_path(int mountdirfd
goto out_err;
}
/* copy the full handle */
- if (copy_from_user(handle, ufh,
- sizeof(struct file_handle) +
+ *handle = f_handle;
+ if (copy_from_user(&handle->f_handle,
+ &ufh->f_handle,
f_handle.handle_bytes)) {
retval = -EFAULT;
goto out_handle;

View File

@ -0,0 +1,35 @@
From: Hans de Goede <hdegoede@redhat.com>
Date: Sat, 7 Feb 2015 09:53:53 +0100
Subject: ACPI / video: Add disable_native_backlight quirk for Samsung 510R
Origin: https://git.kernel.org/linus/e77a16355a29230b99bafe55834a8252e55308ec
Backlight control through the native intel interface does not work properly
on the Samsung 510R, where as using the acpi_video interface does work, add
a quirk for this.
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1186097
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/video.c | 9 +++++++++
1 file changed, 9 insertions(+)
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -712,6 +712,15 @@ static struct dmi_system_id video_dmi_ta
},
},
{
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1186097 */
+ .callback = video_disable_native_backlight,
+ .ident = "SAMSUNG 3570R/370R/470R/450R/510R/4450RV",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "3570R/370R/470R/450R/510R/4450RV"),
+ },
+ },
+ {
/* https://bugzilla.redhat.com/show_bug.cgi?id=1094948 */
.callback = video_disable_native_backlight,
.ident = "SAMSUNG 730U3E/740U3E",

View File

@ -0,0 +1,34 @@
From: Hans de Goede <hdegoede@redhat.com>
Date: Fri, 9 Jan 2015 16:22:57 +0100
Subject: ACPI / video: Add disable_native_backlight quirk for Samsung
730U3E/740U3E
Origin: https://git.kernel.org/linus/3295d73002f4be341069a000aec4b8d7e5ea8d2c
The Samsung 730U3E/740U3E has integrated ATI Radeon graphics, and backlight
control does not work properly when using the native interfaces.
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1094948
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/video.c | 9 +++++++++
1 file changed, 9 insertions(+)
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -711,6 +711,15 @@ static struct dmi_system_id video_dmi_ta
DMI_MATCH(DMI_PRODUCT_NAME, "370R4E/370R4V/370R5E/3570RE/370R5V"),
},
},
+ {
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1094948 */
+ .callback = video_disable_native_backlight,
+ .ident = "SAMSUNG 730U3E/740U3E",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"),
+ },
+ },
{
/* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */

View File

@ -0,0 +1,46 @@
From: Jens Reyer <jens.reyer@gmail.com>
Date: Tue, 17 Feb 2015 19:07:29 +0100
Subject: ACPI / video: Disable native backlight on Samsung Series 9 laptops
Origin: https://git.kernel.org/linus/3120d03cf64d7f9fd71231827af2c1550aa4caa7
Add video_disable_native_backlight quirk for SAMSUNG 900X3C/900X3D/
900X3E/900X4C/900X4D laptops.
The native intel backlight controls do not work correctly on SAMSUNG
Series 9 (900X3C/900X3D/900X3E/900X4C/900X4D) laptops:
One machine has an completely dimmed (= black) display after boot at the
GDM login screen and brightness controls work only between 0 and 5%
(= no effect).
Another machine has the same brightness control issues if an external
HDMI monitor is or gets connected, although the initial brightness is
ok.
After login to Gnome both machines always work fine.
Tested on both machines.
Link: https://bugs.freedesktop.org/show_bug.cgi?id=87286
Link: https://bugs.debian.org/772440
Signed-off-by: Jens Reyer <jens.reyer@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/video.c | 9 +++++++++
1 file changed, 9 insertions(+)
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -729,6 +729,15 @@ static struct dmi_system_id video_dmi_ta
DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"),
},
},
+ {
+ /* https://bugs.freedesktop.org/show_bug.cgi?id=87286 */
+ .callback = video_disable_native_backlight,
+ .ident = "SAMSUNG 900X3C/900X3D/900X3E/900X4C/900X4D",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "900X3C/900X3D/900X3E/900X4C/900X4D"),
+ },
+ },
{
/* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */

View File

@ -0,0 +1,52 @@
Subject: drm/i915: Quietly reject attempts to create non-pagealigned stolen
objects
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed, 10 Dec 2014 08:17:11 +0000
Origin: http://patchwork.freedesktop.org/patch/38659/
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=86883
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763155
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764528
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768027
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771227
This added as a BUG_ON as it considered that no one would ever request
an unaligned object. However, it turns out that some BIOSes will
allocate a scanout that is offset from 0 and not aligned to a page
boundary, and we were passing this through and hitting the BUG_ON during
boot.
Quietly reject such a request to reserve the unaligned stolen object and
let the boot continue, restoring previous behaviour (i.e. no BIOS
framebuffer preservation).
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86883
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org
Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Tested-by: Johannes W <jargon <at> molb.org>
---
drivers/gpu/drm/i915/i915_gem_stolen.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
@@ -431,13 +431,15 @@ i915_gem_object_create_stolen_for_preall
DRM_DEBUG_KMS("creating preallocated stolen object: stolen_offset=%x, gtt_offset=%x, size=%x\n",
stolen_offset, gtt_offset, size);
- /* KISS and expect everything to be page-aligned */
- BUG_ON(stolen_offset & 4095);
- BUG_ON(size & 4095);
-
if (WARN_ON(size == 0))
return NULL;
+ /* KISS and expect everything to be GTT page-aligned */
+ if ((stolen_offset | size) & 4095) {
+ DRM_DEBUG_KMS("request for unaligned stolen object, denied\n");
+ return NULL;
+ }
+
stolen = kzalloc(sizeof(*stolen), GFP_KERNEL);
if (!stolen)
return NULL;

0
debian/patches/debian/no-clean.patch vendored Normal file
View File

View File

@ -0,0 +1,20 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: qxl: Disable by default
Forwarded: not-needed
This kernel driver is incompatible with older versions of
xserver-xorg-video-qxl, so do not enable it by default. It should be
enabled by a modprobe configuration file installed by
xserver-xorg-video-qxl in jessie.
--- a/drivers/gpu/drm/qxl/qxl_drv.c
+++ b/drivers/gpu/drm/qxl/qxl_drv.c
@@ -47,7 +47,7 @@ static DEFINE_PCI_DEVICE_TABLE(pciidlist
};
MODULE_DEVICE_TABLE(pci, pciidlist);
-static int qxl_modeset = -1;
+static int qxl_modeset = 0;
int qxl_num_crtc = 4;
MODULE_PARM_DESC(modeset, "Disable/Enable modesetting");

View File

@ -0,0 +1,154 @@
From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 19 Jan 2015 14:05:12 +0100
Subject: ARM: dts: sunxi: Add simplefb nodes for de_be0-lcd0, de_be0-lcd0-tve0
pipelines
Origin: https://git.kernel.org/linus/fd18c7eac03540654abdbfedd52e6dfb3718b489
Add simplefb nodes for "[de_fe0-]de_be0-lcd0" and "[de_fe0-]de_be0-lcd0-tve0"
display pipelines for when u-boot has set up a pipeline to drive a LCD panel /
VGA output rather then the HDMI output.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
arch/arm/boot/dts/sun4i-a10.dtsi | 18 ++++++++++++++++++
arch/arm/boot/dts/sun5i-a10s.dtsi | 8 ++++++++
arch/arm/boot/dts/sun5i-a13.dtsi | 14 ++++++++++++++
arch/arm/boot/dts/sun6i-a31.dtsi | 8 ++++++++
arch/arm/boot/dts/sun7i-a20.dtsi | 17 +++++++++++++++++
arch/arm/boot/dts/sun8i-a23.dtsi | 14 ++++++++++++++
6 files changed, 79 insertions(+)
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -39,6 +39,24 @@
<&ahb_gates 44>, <&ahb_gates 46>;
status = "disabled";
};
+
+ framebuffer@2 {
+ compatible = "allwinner,simple-framebuffer",
+ "simple-framebuffer";
+ allwinner,pipeline = "de_fe0-de_be0-lcd0";
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>,
+ <&ahb_gates 46>;
+ status = "disabled";
+ };
+
+ framebuffer@3 {
+ compatible = "allwinner,simple-framebuffer",
+ "simple-framebuffer";
+ allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
+ clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
+ <&ahb_gates 44>, <&ahb_gates 46>;
+ status = "disabled";
+ };
};
cpus {
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
@@ -32,6 +32,14 @@
<&ahb_gates 44>;
status = "disabled";
};
+
+ framebuffer@1 {
+ compatible = "allwinner,simple-framebuffer",
+ "simple-framebuffer";
+ allwinner,pipeline = "de_be0-lcd0";
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
+ status = "disabled";
+ };
};
cpus {
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -16,6 +16,20 @@
/ {
interrupt-parent = <&intc>;
+ chosen {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ framebuffer@0 {
+ compatible = "allwinner,simple-framebuffer",
+ "simple-framebuffer";
+ allwinner,pipeline = "de_be0-lcd0";
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
+ status = "disabled";
+ };
+ };
+
cpus {
#address-cells = <1>;
#size-cells = <0>;
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -67,6 +67,14 @@
clocks = <&pll6 0>;
status = "disabled";
};
+
+ framebuffer@1 {
+ compatible = "allwinner,simple-framebuffer",
+ "simple-framebuffer";
+ allwinner,pipeline = "de_be0-lcd0";
+ clocks = <&pll6 0>;
+ status = "disabled";
+ };
};
cpus {
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -68,6 +68,23 @@
<&ahb_gates 44>;
status = "disabled";
};
+
+ framebuffer@1 {
+ compatible = "allwinner,simple-framebuffer",
+ "simple-framebuffer";
+ allwinner,pipeline = "de_be0-lcd0";
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
+ status = "disabled";
+ };
+
+ framebuffer@2 {
+ compatible = "allwinner,simple-framebuffer",
+ "simple-framebuffer";
+ allwinner,pipeline = "de_be0-lcd0-tve0";
+ clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
+ <&ahb_gates 44>;
+ status = "disabled";
+ };
};
cpus {
--- a/arch/arm/boot/dts/sun8i-a23.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23.dtsi
@@ -52,6 +52,20 @@
/ {
interrupt-parent = <&gic>;
+ chosen {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ framebuffer@0 {
+ compatible = "allwinner,simple-framebuffer",
+ "simple-framebuffer";
+ allwinner,pipeline = "de_be0-lcd0";
+ clocks = <&pll6 0>;
+ status = "disabled";
+ };
+ };
+
cpus {
#address-cells = <1>;
#size-cells = <0>;

View File

@ -0,0 +1,292 @@
From 10662a33dcd97f27004779df7e9188c124bc7076 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Sun, 18 Jan 2015 13:08:19 +0100
Subject: ARM: dts: sun7i: Add dts file for Bananapro board
Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=10662a33dcd97f27004779df7e9188c124bc7076
Add support for the new Bananapro A20 development board from lemaker.org.
This board features 1G RAM, 2 USB A receptacles, 1 micro USB receptacle for
OTG, 1 micro USB receptacle for power, HDMI, sata, Gbit ethernet, ir receiver,
3.5 mm jack for a/v out, on board microphone, 40 gpio pins and sdio wifi.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
[Karsten Merker: replace SUN4I_PINCTRL_10_MA, SUN4I_PINCTRL_NO_PULL and
SUN4I_PINCTRL_PULL_UP with their corresponding values as these symbols are not
yet defined in 3.16.]
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -464,6 +464,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
sun6i-a31-m9.dtb
dtb-$(CONFIG_MACH_SUN7I) += \
sun7i-a20-bananapi.dtb \
+ sun7i-a20-bananapro.dtb \
sun7i-a20-cubieboard2.dtb \
sun7i-a20-cubietruck.dtb \
sun7i-a20-hummingbird.dtb \
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
@@ -0,0 +1,262 @@
+/*
+ * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this file; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun7i-a20.dtsi"
+#include "sunxi-common-regulators.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+ model = "LeMaker Banana Pro";
+ compatible = "lemaker,bananapro", "allwinner,sun7i-a20";
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins_bananapro>;
+
+ blue {
+ label = "bananapro:blue:usr";
+ gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ green {
+ label = "bananapro:green:usr";
+ gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ reg_gmac_3v3: gmac-3v3 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac_power_pin_bananapro>;
+ regulator-name = "gmac-3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <100000>;
+ enable-active-high;
+ gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>;
+ };
+
+ reg_vmmc3: vmmc3 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&vmmc3_pin_bananapro>;
+ regulator-name = "vmmc3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ enable-active-high;
+ gpio = <&pio 7 22 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&ahci {
+ status = "okay";
+};
+
+&ehci0 {
+ status = "okay";
+};
+
+&ehci1 {
+ status = "okay";
+};
+
+&gmac {
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac_pins_rgmii_a>;
+ phy = <&phy1>;
+ phy-mode = "rgmii";
+ phy-supply = <&reg_gmac_3v3>;
+ status = "okay";
+
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ };
+};
+
+&i2c0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_pins_a>;
+ status = "okay";
+
+ axp209: pmic@34 {
+ compatible = "x-powers,axp209";
+ reg = <0x34>;
+ interrupt-parent = <&nmi_intc>;
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+};
+
+&i2c2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins_a>;
+ status = "okay";
+};
+
+&ir0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir0_pins_a>;
+ status = "okay";
+};
+
+&mmc0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapro>;
+ vmmc-supply = <&reg_vcc3v3>;
+ bus-width = <4>;
+ cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
+ cd-inverted;
+ status = "okay";
+};
+
+&mmc3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc3_pins_a>;
+ vmmc-supply = <&reg_vmmc3>;
+ bus-width = <4>;
+ non-removable;
+ status = "okay";
+};
+
+&ohci0 {
+ status = "okay";
+};
+
+&ohci1 {
+ status = "okay";
+};
+
+&pio {
+ gmac_power_pin_bananapro: gmac_power_pin@0 {
+ allwinner,pins = "PH23";
+ allwinner,function = "gpio_out";
+ allwinner,drive = <0>;
+ allwinner,pull = <0>;
+ };
+
+ led_pins_bananapro: led_pins@0 {
+ allwinner,pins = "PH24", "PG2";
+ allwinner,function = "gpio_out";
+ allwinner,drive = <0>;
+ allwinner,pull = <0>;
+ };
+
+ mmc0_cd_pin_bananapro: mmc0_cd_pin@0 {
+ allwinner,pins = "PH10";
+ allwinner,function = "gpio_in";
+ allwinner,drive = <0>;
+ allwinner,pull = <1>;
+ };
+
+ usb1_vbus_pin_bananapro: usb1_vbus_pin@0 {
+ allwinner,pins = "PH0";
+ allwinner,function = "gpio_out";
+ allwinner,drive = <0>;
+ allwinner,pull = <0>;
+ };
+
+ usb2_vbus_pin_bananapro: usb2_vbus_pin@0 {
+ allwinner,pins = "PH1";
+ allwinner,function = "gpio_out";
+ allwinner,drive = <0>;
+ allwinner,pull = <0>;
+ };
+
+ vmmc3_pin_bananapro: vmmc3_pin@0 {
+ allwinner,pins = "PH22";
+ allwinner,function = "gpio_out";
+ allwinner,drive = <0>;
+ allwinner,pull = <0>;
+ };
+};
+
+&reg_usb1_vbus {
+ pinctrl-0 = <&usb1_vbus_pin_bananapro>;
+ gpio = <&pio 7 0 GPIO_ACTIVE_HIGH>; /* PH0 */
+ status = "okay";
+};
+
+&reg_usb2_vbus {
+ pinctrl-0 = <&usb2_vbus_pin_bananapro>;
+ gpio = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
+ status = "okay";
+};
+
+&spi0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi0_pins_a>;
+ status = "okay";
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins_a>;
+ status = "okay";
+};
+
+&uart2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2_pins_a>;
+ status = "okay";
+};
+
+&uart7 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart7_pins_a>;
+ status = "okay";
+};
+
+&usbphy {
+ usb1_vbus-supply = <&reg_usb1_vbus>;
+ usb2_vbus-supply = <&reg_usb2_vbus>;
+ status = "okay";
+};

View File

@ -35,12 +35,17 @@ debian/mgag200-disable-autoload.patch
debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch
debian/snd-pcsp-disable-autoload.patch
bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
debian/qxl-disable-modeset-by-default.patch
# Arch bug fixes
bugfix/mips/disable-advansys.patch
bugfix/m68k/ethernat-kconfig.patch
bugfix/arm64/arm64-add-missing-dts-entry-for-X-Gene-platform.patch
bugfix/arm64/arm64-removed-using-of-the-mask-attribute-in-the-dts.patch
bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch
bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch
bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch
bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch
# Arch features
features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
@ -49,6 +54,8 @@ features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch
features/x86/x86-memtest-WARN-if-bad-RAM-found.patch
features/x86/x86-make-x32-syscall-support-conditional.patch
features/arm/deb-pkg-add-automatic-support-for-armhf-architecture.patch
features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch
features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
# Miscellaneous bug fixes
bugfix/all/misc-bmp085-Enable-building-as-a-module.patch
@ -58,6 +65,8 @@ debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch
bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch
bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch
bugfix/all/net-mv643xx-disable-tso-by-default.patch
bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch
bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch
# Miscellaneous features
features/all/efi-autoload-efi-pstore.patch