[linux] 01/02: Update to 3.2.79
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Fri Apr 1 02:18:50 UTC 2016
This is an automated email from the git hooks/post-receive script.
benh pushed a commit to branch wheezy
in repository linux.
commit 1ecda73139763b97e3a1f3bace9730f8bb8bda53
Author: Ben Hutchings <ben at decadent.org.uk>
Date: Fri Apr 1 02:55:00 2016 +0100
Update to 3.2.79
Drop patches applied upstream.
Fix a couple of ABI changes.
drm, agp: Update to 3.4.111
---
debian/changelog | 72 ++++++++++++
...rd-against-other-sk-in-unix_dgram_sendmsg.patch | 40 -------
.../all/crypto-blk-giv-cipher-set-has_setkey.patch | 32 ------
...emove-redundant-log-messages-from-drivers.patch | 42 +++----
...to-algif_skcipher-do-not-dereference-ctx-.patch | 29 -----
...bata-align-ata_device-s-id-on-a-cacheline.patch | 24 ++++
.../tracing-avoid-abi-change-in-3.2.79.patch | 25 ++++
debian/patches/features/all/drm/drm-3.4.patch | 128 ++++++++-------------
debian/patches/series | 5 +-
9 files changed, 193 insertions(+), 204 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 6abd416..3f1e07c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,75 @@
+linux (3.2.79-1) UNRELEASED; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.79
+ - [x86] iommu/vt-d: Fix 64-bit accesses to 32-bit DMAR_GSTS_REG
+ - wext: fix message delay/ordering
+ - cfg80211/wext: fix message ordering
+ - mac80211: fix use of uninitialised values in RX aggregation
+ - nfs: fix nfs_size_to_loff_t
+ - cifs: fix erroneous return value
+ - [s390*] dasd: prevent incorrect length error under z/VM after PAV changes
+ - [s390*] dasd: fix refcount for PAV reassignment
+ - libata: fix HDIO_GET_32BIT ioctl
+ - xen/pciback: Check PF instead of VF for PCI_COMMAND_MEMORY
+ - xen/pciback: Save the number of MSI-X entries to be copied later.
+ - xen/pcifront: Fix mysterious crashes when NUMA locality information was
+ extracted.
+ - ALSA: seq: Fix leak of pool buffer at concurrent writes
+ - tracepoints: Do not trace when cpu is offline
+ - tracing: Fix freak link error caused by branch tracer
+ - ALSA: seq: Fix double port list deletion
+ - af_unix: Don't set err in unix_stream_read_generic unless there was
+ an error
+ - [amd64] uaccess: Handle the caching of 4-byte nocache copies properly in
+ __copy_user_nocache()
+ - usb: dwc3: Fix assignment of EP transfer resources
+ - net/mlx4_en: Count HW buffer overrun only once
+ - USB: option: add support for SIM7100E
+ - USB: cp210x: add IDs for GE B650V3 and B850V3 boards
+ - USB: option: add "4G LTE usb-modem U901"
+ - [x86] Adding Intel Lewisburg device IDs for SATA
+ - ext4: fix bh->b_state corruption
+ - kernel/resource.c: fix muxed resource handling in __request_region()
+ - can: ems_usb: Fix possible tx overflow
+ - mac80211: minstrel_ht: set default tx aggregation timeout to 0
+ - sunrpc/cache: fix off-by-one in qword_get()
+ - KVM: async_pf: do not warn on page allocation failures
+ - Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin"
+ - jffs2: Fix page lock / f->sem deadlock
+ - Fix directory hardlinks from deleted directories
+ - libata: Align ata_device's id on a cacheline
+ - ipr: Fix out-of-bounds null overwrite
+ - ipr: Fix regression when loading firmware
+ - mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED
+ - hpfs: don't truncate the file when delete fails
+ - ALSA: timer: Fix broken compat timer user status ioctl
+ - ALSA: hdspm: Fix wrong boolean ctl value accesses
+ - ALSA: hdsp: Fix wrong boolean ctl value accesses
+ - USB: cp210x: Add ID for Parrot NMEA GPS Flight Recorder
+ - ASoC: wm8958: Fix enum ctl accesses in a wrong type
+ - ASoC: wm8994: Fix enum ctl accesses in a wrong type
+ - USB: serial: option: add support for Quectel UC20
+ - ALSA: seq: oss: Don't drain at closing a client
+ - [x86] PM / sleep: Fix crash on graph trace through x86 suspend
+ - IB/core: Use GRH when the path hop-limit > 0
+ - mld, igmp: Fix reserved tailroom calculation
+ - [mips*] traps: Fix SIGFPE information leak from `do_ov' and
+ `do_trap_or_bp'
+ - ubi: Fix out of bounds write in volume update code
+ - [s390*] mm: four page table levels vs. fork (CVE-2016-2143)
+ - Input: aiptek - fix crash on detecting device without endpoints
+ - include/linux/poison.h: fix LIST_POISON{1,2} offset (CVE-2016-0821)
+ - HID: usbhid: fix recursive deadlock
+
+ [ Ben Hutchings ]
+ * drm, agp: Update to 3.4.111:
+ - drm: add a check for x/y in drm_mode_setcrtc
+ - drm/radeon/combios: add some validation of lvds values
+ * Revert "libata: Align ata_device's id on a cacheline" to avoid ABI change
+
+ -- Ben Hutchings <ben at decadent.org.uk> Fri, 01 Apr 2016 02:11:16 +0100
+
linux (3.2.78-1) wheezy; urgency=medium
* New upstream stable update:
diff --git a/debian/patches/bugfix/all/af_unix-guard-against-other-sk-in-unix_dgram_sendmsg.patch b/debian/patches/bugfix/all/af_unix-guard-against-other-sk-in-unix_dgram_sendmsg.patch
deleted file mode 100644
index 0be82d9..0000000
--- a/debian/patches/bugfix/all/af_unix-guard-against-other-sk-in-unix_dgram_sendmsg.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From: Rainer Weikusat <rweikusat at mobileactivedefense.com>
-Date: Thu, 11 Feb 2016 19:37:27 +0000
-Subject: af_unix: Guard against other == sk in unix_dgram_sendmsg
-Origin: http://mid.gmane.org/87r3gj11jc.fsf_-_@doppelsaurus.mobileactivedefense.com
-
-The unix_dgram_sendmsg routine use the following test
-
-if (unlikely(unix_peer(other) != sk && unix_recvq_full(other))) {
-
-to determine if sk and other are in an n:1 association (either
-established via connect or by using sendto to send messages to an
-unrelated socket identified by address). This isn't correct as the
-specified address could have been bound to the sending socket itself or
-because this socket could have been connected to itself by the time of
-the unix_peer_get but disconnected before the unix_state_lock(other). In
-both cases, the if-block would be entered despite other == sk which
-might either block the sender unintentionally or lead to trying to unlock
-the same spin lock twice for a non-blocking send. Add a other != sk
-check to guard against this.
-
-Fixes: 7d267278a9ec ("unix: avoid use-after-free in ep_remove_wait_queue")
-Reported-By: Philipp Hahn <pmhahn at pmhahn.de>
-Signed-off-by: Rainer Weikusat <rweikusat at mobileactivedefense.com>
----
---- a/net/unix/af_unix.c
-+++ b/net/unix/af_unix.c
-@@ -1694,7 +1694,12 @@ restart_locked:
- goto out_unlock;
- }
-
-- if (unlikely(unix_peer(other) != sk && unix_recvq_full(other))) {
-+ /* other == sk && unix_peer(other) != sk if
-+ * - unix_peer(sk) == NULL, destination address bound to sk
-+ * - unix_peer(sk) == sk by time of get but disconnected before lock
-+ */
-+ if (other != sk &&
-+ unlikely(unix_peer(other) != sk && unix_recvq_full(other))) {
- if (timeo) {
- timeo = unix_wait_for_peer(other, timeo);
-
diff --git a/debian/patches/bugfix/all/crypto-blk-giv-cipher-set-has_setkey.patch b/debian/patches/bugfix/all/crypto-blk-giv-cipher-set-has_setkey.patch
deleted file mode 100644
index 2854d88..0000000
--- a/debian/patches/bugfix/all/crypto-blk-giv-cipher-set-has_setkey.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 06 Mar 2016 19:52:46 +0000
-Subject: crypto: {blk,giv}cipher: Set has_setkey
-
-Commit a1383cd86a06 ("crypto: skcipher - Add crypto_skcipher_has_setkey")
-was incorrectly backported to the 3.2.y and 3.16.y stable branches.
-We need to set ablkcipher_tfm::has_setkey in the
-crypto_init_blkcipher_ops_async() and crypto_init_givcipher_ops()
-functions as well as crypto_init_ablkcipher_ops().
-
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
---- a/crypto/ablkcipher.c
-+++ b/crypto/ablkcipher.c
-@@ -461,6 +461,7 @@ static int crypto_init_givcipher_ops(str
- crt->givdecrypt = alg->givdecrypt ?: no_givdecrypt;
- crt->base = __crypto_ablkcipher_cast(tfm);
- crt->ivsize = alg->ivsize;
-+ crt->has_setkey = alg->max_keysize;
-
- return 0;
- }
---- a/crypto/blkcipher.c
-+++ b/crypto/blkcipher.c
-@@ -458,6 +458,7 @@ static int crypto_init_blkcipher_ops_asy
- }
- crt->base = __crypto_ablkcipher_cast(tfm);
- crt->ivsize = alg->ivsize;
-+ crt->has_setkey = alg->max_keysize;
-
- return 0;
- }
diff --git a/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch b/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
index 7956eae..bdab992 100644
--- a/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
+++ b/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
@@ -95,7 +95,7 @@ upstream submission.
fw_size = firmware->size / sizeof(u32);
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
-@@ -336,10 +336,8 @@ static int ath3k_load_patch(struct usb_d
+@@ -381,10 +381,8 @@ static int ath3k_load_patch(struct usb_d
fw_version.rom_version);
ret = request_firmware(&firmware, filename, &udev->dev);
@@ -107,7 +107,7 @@ upstream submission.
pt_version.rom_version = *(int *)(firmware->data + firmware->size - 8);
pt_version.build_version = *(int *)
-@@ -398,10 +396,8 @@ static int ath3k_load_syscfg(struct usb_
+@@ -443,10 +441,8 @@ static int ath3k_load_syscfg(struct usb_
fw_version.rom_version, clk_value, ".dfu");
ret = request_firmware(&firmware, filename, &udev->dev);
@@ -273,7 +273,7 @@ upstream submission.
release_firmware(rdev->me_fw);
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
-@@ -994,10 +994,7 @@ static int r100_cp_init_microcode(struct
+@@ -998,10 +998,7 @@ static int r100_cp_init_microcode(struct
err = request_firmware(&rdev->me_fw, fw_name, &pdev->dev);
platform_device_unregister(pdev);
@@ -695,7 +695,7 @@ upstream submission.
printk(KERN_INFO "tda1004x: please rename the firmware file to %s\n",
--- a/drivers/media/dvb/frontends/tda10071.c
+++ b/drivers/media/dvb/frontends/tda10071.c
-@@ -930,13 +930,8 @@ static int tda10071_init(struct dvb_fron
+@@ -934,13 +934,8 @@ static int tda10071_init(struct dvb_fron
/* request the firmware, this will block and timeout */
ret = request_firmware(&fw, fw_file, priv->i2c->dev.parent);
@@ -1268,7 +1268,7 @@ upstream submission.
if (bp->mips_firmware->size < sizeof(*mips_fw) ||
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
-@@ -10569,11 +10569,8 @@ int bnx2x_init_firmware(struct bnx2x *bp
+@@ -10573,11 +10573,8 @@ int bnx2x_init_firmware(struct bnx2x *bp
rc = request_firmware(&bp->firmware, fw_file_name,
&bp->pdev->dev);
@@ -1283,7 +1283,7 @@ upstream submission.
if (rc) {
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
-@@ -9604,11 +9604,8 @@ static int tg3_request_firmware(struct t
+@@ -9603,11 +9603,8 @@ static int tg3_request_firmware(struct t
{
const __be32 *fw_data;
@@ -1507,7 +1507,7 @@ upstream submission.
ret = ath9k_hif_usb_download_fw(hif_dev, drv_info);
--- a/drivers/net/wireless/ath/carl9170/usb.c
+++ b/drivers/net/wireless/ath/carl9170/usb.c
-@@ -1018,7 +1018,6 @@ static void carl9170_usb_firmware_step2(
+@@ -1025,7 +1025,6 @@ static void carl9170_usb_firmware_step2(
return;
}
@@ -1661,7 +1661,7 @@ upstream submission.
else
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -909,13 +909,8 @@ static void iwl_ucode_callback(const str
+@@ -913,13 +913,8 @@ static void iwl_ucode_callback(const str
memset(&pieces, 0, sizeof(pieces));
@@ -1894,7 +1894,7 @@ upstream submission.
ERROR(rt2x00dev, "Failed to read Firmware.\n");
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
-@@ -174,11 +174,8 @@ int rtl92c_init_sw_vars(struct ieee80211
+@@ -176,11 +176,8 @@ int rtl92c_init_sw_vars(struct ieee80211
fw_name = rtlpriv->cfg->fw_name;
}
err = request_firmware(&firmware, fw_name, rtlpriv->io.dev);
@@ -1909,7 +1909,7 @@ upstream submission.
("Firmware is too big!\n"));
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
-@@ -71,11 +71,8 @@ static int rtl92cu_init_sw_vars(struct i
+@@ -73,11 +73,8 @@ static int rtl92cu_init_sw_vars(struct i
/* request fw */
err = request_firmware(&firmware, rtlpriv->cfg->fw_name,
rtlpriv->io.dev);
@@ -1939,7 +1939,7 @@ upstream submission.
("Firmware is too big!\n"));
--- a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
-@@ -197,11 +197,8 @@ static int rtl92s_init_sw_vars(struct ie
+@@ -199,11 +199,8 @@ static int rtl92s_init_sw_vars(struct ie
/* request fw */
err = request_firmware(&firmware, rtlpriv->cfg->fw_name,
rtlpriv->io.dev);
@@ -2137,9 +2137,9 @@ upstream submission.
}
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
-@@ -3744,10 +3744,8 @@ static ssize_t ipr_store_update_fw(struc
- len = snprintf(fname, 99, "%s", buf);
- fname[len-1] = '\0';
+@@ -3748,10 +3748,8 @@ static ssize_t ipr_store_update_fw(struc
+ if (endline)
+ *endline = '\0';
- if(request_firmware(&fw_entry, fname, &ioa_cfg->pdev->dev)) {
- dev_err(&ioa_cfg->pdev->dev, "Firmware file %s not found\n", fname);
@@ -2730,7 +2730,7 @@ upstream submission.
BootMajorVersion = rec->data[0];
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
-@@ -870,8 +870,6 @@ static int build_i2c_fw_hdr(__u8 *header
+@@ -886,8 +886,6 @@ static int build_i2c_fw_hdr(__u8 *header
err = request_firmware(&fw, fw_name, dev);
if (err) {
@@ -2739,7 +2739,7 @@ upstream submission.
kfree(buffer);
return err;
}
-@@ -1436,8 +1434,6 @@ static int download_fw(struct edgeport_s
+@@ -1452,8 +1450,6 @@ static int download_fw(struct edgeport_s
err = request_firmware(&fw, fw_name, dev);
if (err) {
@@ -2750,7 +2750,7 @@ upstream submission.
}
--- a/drivers/usb/serial/keyspan.c
+++ b/drivers/usb/serial/keyspan.c
-@@ -1399,10 +1399,8 @@ static int keyspan_fake_startup(struct u
+@@ -1419,10 +1419,8 @@ static int keyspan_fake_startup(struct u
return 1;
}
@@ -2764,7 +2764,7 @@ upstream submission.
--- a/drivers/usb/serial/keyspan_pda.c
+++ b/drivers/usb/serial/keyspan_pda.c
-@@ -765,11 +765,8 @@ static int keyspan_pda_fake_startup(stru
+@@ -768,11 +768,8 @@ static int keyspan_pda_fake_startup(stru
__func__);
return -ENODEV;
}
@@ -2779,7 +2779,7 @@ upstream submission.
while (record) {
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
-@@ -1747,10 +1747,8 @@ static int ti_download_firmware(struct t
+@@ -1750,10 +1750,8 @@ static int ti_download_firmware(struct t
}
status = request_firmware(&fw_p, buf, &dev->dev);
}
@@ -2793,7 +2793,7 @@ upstream submission.
release_firmware(fw_p);
--- a/drivers/usb/serial/whiteheat.c
+++ b/drivers/usb/serial/whiteheat.c
-@@ -301,18 +301,11 @@ static int whiteheat_firmware_download(s
+@@ -304,18 +304,11 @@ static int whiteheat_firmware_download(s
dbg("%s", __func__);
if (request_ihex_firmware(&firmware_fw, "whiteheat.fw",
@@ -2959,7 +2959,7 @@ upstream submission.
return err;
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
-@@ -668,10 +668,8 @@ static int snd_emu1010_load_firmware(str
+@@ -673,10 +673,8 @@ static int snd_emu1010_load_firmware(str
const struct firmware *fw_entry;
err = request_firmware(&fw_entry, filename, &emu->pci->dev);
diff --git a/debian/patches/bugfix/all/revert-crypto-algif_skcipher-do-not-dereference-ctx-.patch b/debian/patches/bugfix/all/revert-crypto-algif_skcipher-do-not-dereference-ctx-.patch
deleted file mode 100644
index d1c8b12..0000000
--- a/debian/patches/bugfix/all/revert-crypto-algif_skcipher-do-not-dereference-ctx-.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 6 Mar 2016 22:07:37 +0000
-Subject: Revert "crypto: algif_skcipher - Do not dereference ctx without socket lock"
-
-This reverts commit c54ddfbb1b691d77c52b76ca6e13ca7082eb3b82, which
-was a poorly backported version of commit
-6454c2b83f719057069777132b13949e4c6b6350 upstream. The small part I
-was able to backport makes no sense by itself.
----
- crypto/algif_skcipher.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
-index da5d4ed238e2..45fa6bd9187b 100644
---- a/crypto/algif_skcipher.c
-+++ b/crypto/algif_skcipher.c
-@@ -249,11 +249,8 @@ static int skcipher_sendmsg(struct kiocb *unused, struct socket *sock,
- {
- struct sock *sk = sock->sk;
- struct alg_sock *ask = alg_sk(sk);
-- struct sock *psk = ask->parent;
-- struct alg_sock *pask = alg_sk(psk);
- struct skcipher_ctx *ctx = ask->private;
-- struct ablkcipher_tfm *skc = pask->private;
-- struct crypto_ablkcipher *tfm = skc->base;
-+ struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(&ctx->req);
- unsigned ivsize = crypto_ablkcipher_ivsize(tfm);
- struct skcipher_sg_list *sgl;
- struct af_alg_control con = {};
diff --git a/debian/patches/debian/revert-libata-align-ata_device-s-id-on-a-cacheline.patch b/debian/patches/debian/revert-libata-align-ata_device-s-id-on-a-cacheline.patch
new file mode 100644
index 0000000..a0b6ce1
--- /dev/null
+++ b/debian/patches/debian/revert-libata-align-ata_device-s-id-on-a-cacheline.patch
@@ -0,0 +1,24 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 14 Mar 2016 17:47:16 +0000
+Subject: Revert "libata: Align ata_device's id on a cacheline"
+Forwarded: not-needed
+
+This reverts commit 2d5a6d0db3c83f5883b542fd3f79a2a80d319b14, which
+was commit 4ee34ea3a12396f35b26d90a094c75db95080baa upstream. It's a
+real fix but we've lived with the problem for many years and it
+doesn't seem worth breaking ABI to fix it right now.
+---
+ include/linux/libata.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/linux/libata.h
++++ b/include/linux/libata.h
+@@ -657,7 +657,7 @@ struct ata_device {
+ union {
+ u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
+ u32 gscr[SATA_PMP_GSCR_DWORDS]; /* PMP GSCR block */
+- } ____cacheline_aligned;
++ };
+
+ /* error history */
+ int spdn_cnt;
diff --git a/debian/patches/debian/tracing-avoid-abi-change-in-3.2.79.patch b/debian/patches/debian/tracing-avoid-abi-change-in-3.2.79.patch
new file mode 100644
index 0000000..a347507
--- /dev/null
+++ b/debian/patches/debian/tracing-avoid-abi-change-in-3.2.79.patch
@@ -0,0 +1,25 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Fri, 01 Apr 2016 02:32:56 +0100
+Subject: tracing: Avoid ABI change in 3.2.79
+Forwarded: not-needed
+
+Hide the new #include's from genksyms.
+
+---
+--- a/include/linux/tracepoint.h
++++ b/include/linux/tracepoint.h
+@@ -14,10 +14,14 @@
+ * See the file COPYING for more details.
+ */
+
++#ifndef __GENKSYMS__
+ #include <linux/smp.h>
++#endif
+ #include <linux/errno.h>
+ #include <linux/types.h>
++#ifndef __GENKSYMS__
+ #include <linux/cpumask.h>
++#endif
+ #include <linux/rcupdate.h>
+ #include <linux/jump_label.h>
+
diff --git a/debian/patches/features/all/drm/drm-3.4.patch b/debian/patches/features/all/drm/drm-3.4.patch
index 1b3d6b5..592c3d0 100644
--- a/debian/patches/features/all/drm/drm-3.4.patch
+++ b/debian/patches/features/all/drm/drm-3.4.patch
@@ -351,7 +351,7 @@ index 6d440fb894cf..325365f6d355 100644
return -EINVAL;
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
-index 20110b4ad791..c61e67222160 100644
+index 20110b4ad791..ed4b7481a865 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -36,11 +36,7 @@
@@ -1282,21 +1282,7 @@ index 20110b4ad791..c61e67222160 100644
struct drm_connector **connector_set = NULL, *connector;
struct drm_framebuffer *fb = NULL;
struct drm_display_mode *mode = NULL;
-@@ -1505,11 +1836,8 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
- if (!drm_core_check_feature(dev, DRIVER_MODESET))
- return -EINVAL;
-
-- /*
-- * Universal plane src offsets are only 16.16, prevent havoc for
-- * drivers using universal plane code internally.
-- */
-- if (crtc_req->x & 0xffff0000 || crtc_req->y & 0xffff0000)
-+ /* For some reason crtc x/y offsets are signed internally. */
-+ if (crtc_req->x > INT_MAX || crtc_req->y > INT_MAX)
- return -ERANGE;
-
- mutex_lock(&dev->mode_config.mutex);
-@@ -1527,14 +1855,12 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
+@@ -1527,14 +1858,12 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
/* If we have a mode we need a framebuffer. */
/* If we pass -1, set the mode with the currently bound fb */
if (crtc_req->fb_id == -1) {
@@ -1316,7 +1302,7 @@ index 20110b4ad791..c61e67222160 100644
} else {
obj = drm_mode_object_find(dev, crtc_req->fb_id,
DRM_MODE_OBJECT_FB);
-@@ -1548,8 +1874,30 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
+@@ -1548,8 +1877,30 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
}
mode = drm_mode_create(dev);
@@ -1348,7 +1334,7 @@ index 20110b4ad791..c61e67222160 100644
}
if (crtc_req->count_connectors == 0 && mode) {
-@@ -1583,7 +1931,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
+@@ -1583,7 +1934,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
}
for (i = 0; i < crtc_req->count_connectors; i++) {
@@ -1357,7 +1343,7 @@ index 20110b4ad791..c61e67222160 100644
if (get_user(out_id, &set_connectors_ptr[i])) {
ret = -EFAULT;
goto out;
-@@ -1617,6 +1965,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
+@@ -1617,6 +1968,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
out:
kfree(connector_set);
@@ -1365,7 +1351,7 @@ index 20110b4ad791..c61e67222160 100644
mutex_unlock(&dev->mode_config.mutex);
return ret;
}
-@@ -1667,6 +2016,42 @@ out:
+@@ -1667,6 +2019,42 @@ out:
return ret;
}
@@ -1408,7 +1394,7 @@ index 20110b4ad791..c61e67222160 100644
/**
* drm_mode_addfb - add an FB to the graphics configuration
* @inode: inode from the ioctl
-@@ -1687,18 +2072,27 @@ out:
+@@ -1687,18 +2075,27 @@ out:
int drm_mode_addfb(struct drm_device *dev,
void *data, struct drm_file *file_priv)
{
@@ -1439,7 +1425,7 @@ index 20110b4ad791..c61e67222160 100644
return -EINVAL;
mutex_lock(&dev->mode_config.mutex);
-@@ -1706,6 +2100,138 @@ int drm_mode_addfb(struct drm_device *dev,
+@@ -1706,6 +2103,138 @@ int drm_mode_addfb(struct drm_device *dev,
/* TODO check buffer is sufficiently large */
/* TODO setup destructor callback */
@@ -1578,7 +1564,7 @@ index 20110b4ad791..c61e67222160 100644
fb = dev->mode_config.funcs->fb_create(dev, file_priv, r);
if (IS_ERR(fb)) {
DRM_ERROR("could not create framebuffer\n");
-@@ -1789,7 +2315,7 @@ out:
+@@ -1789,7 +2318,7 @@ out:
* @arg: arg from ioctl
*
* LOCKING:
@@ -1587,7 +1573,7 @@ index 20110b4ad791..c61e67222160 100644
*
* Lookup the FB given its ID and return info about it.
*
-@@ -1821,18 +2347,8 @@ int drm_mode_getfb(struct drm_device *dev,
+@@ -1821,18 +2350,8 @@ int drm_mode_getfb(struct drm_device *dev,
r->width = fb->width;
r->depth = fb->depth;
r->bpp = fb->bits_per_pixel;
@@ -1608,7 +1594,7 @@ index 20110b4ad791..c61e67222160 100644
out:
mutex_unlock(&dev->mode_config.mutex);
-@@ -1863,7 +2379,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
+@@ -1863,7 +2382,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
fb = obj_to_fb(obj);
num_clips = r->num_clips;
@@ -1617,7 +1603,7 @@ index 20110b4ad791..c61e67222160 100644
if (!num_clips != !clips_ptr) {
ret = -EINVAL;
-@@ -1948,38 +2464,48 @@ void drm_fb_release(struct drm_file *priv)
+@@ -1948,38 +2467,48 @@ void drm_fb_release(struct drm_file *priv)
*
* Add @mode to @connector's user mode list.
*/
@@ -1685,7 +1671,7 @@ index 20110b4ad791..c61e67222160 100644
}
EXPORT_SYMBOL(drm_mode_attachmode_crtc);
-@@ -2058,9 +2584,14 @@ int drm_mode_attachmode_ioctl(struct drm_device *dev,
+@@ -2058,9 +2587,14 @@ int drm_mode_attachmode_ioctl(struct drm_device *dev,
goto out;
}
@@ -1702,7 +1688,7 @@ index 20110b4ad791..c61e67222160 100644
out:
mutex_unlock(&dev->mode_config.mutex);
return ret;
-@@ -2101,7 +2632,12 @@ int drm_mode_detachmode_ioctl(struct drm_device *dev,
+@@ -2101,7 +2635,12 @@ int drm_mode_detachmode_ioctl(struct drm_device *dev,
}
connector = obj_to_connector(obj);
@@ -1716,7 +1702,7 @@ index 20110b4ad791..c61e67222160 100644
ret = drm_mode_detachmode(dev, connector, &mode);
out:
mutex_unlock(&dev->mode_config.mutex);
-@@ -2112,6 +2648,7 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
+@@ -2112,6 +2651,7 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
const char *name, int num_values)
{
struct drm_property *property = NULL;
@@ -1724,7 +1710,7 @@ index 20110b4ad791..c61e67222160 100644
property = kzalloc(sizeof(struct drm_property), GFP_KERNEL);
if (!property)
-@@ -2123,7 +2660,10 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
+@@ -2123,7 +2663,10 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
goto fail;
}
@@ -1736,7 +1722,7 @@ index 20110b4ad791..c61e67222160 100644
property->flags = flags;
property->num_values = num_values;
INIT_LIST_HEAD(&property->enum_blob_list);
-@@ -2136,11 +2676,59 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
+@@ -2136,11 +2679,59 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
list_add_tail(&property->head, &dev->mode_config.property_list);
return property;
fail:
@@ -1796,7 +1782,7 @@ index 20110b4ad791..c61e67222160 100644
int drm_property_add_enum(struct drm_property *property, int index,
uint64_t value, const char *name)
{
-@@ -2259,7 +2847,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -2259,7 +2850,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
struct drm_property_enum *prop_enum;
struct drm_mode_property_enum __user *enum_ptr;
struct drm_property_blob *prop_blob;
@@ -1805,7 +1791,7 @@ index 20110b4ad791..c61e67222160 100644
uint64_t __user *values_ptr;
uint32_t __user *blob_length_ptr;
-@@ -2289,7 +2877,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -2289,7 +2880,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
out_resp->flags = property->flags;
if ((out_resp->count_values >= value_count) && value_count) {
@@ -1814,7 +1800,7 @@ index 20110b4ad791..c61e67222160 100644
for (i = 0; i < value_count; i++) {
if (copy_to_user(values_ptr + i, &property->values[i], sizeof(uint64_t))) {
ret = -EFAULT;
-@@ -2302,7 +2890,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -2302,7 +2893,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
if (property->flags & DRM_MODE_PROP_ENUM) {
if ((out_resp->count_enum_blobs >= enum_count) && enum_count) {
copied = 0;
@@ -1823,7 +1809,7 @@ index 20110b4ad791..c61e67222160 100644
list_for_each_entry(prop_enum, &property->enum_blob_list, head) {
if (copy_to_user(&enum_ptr[copied].value, &prop_enum->value, sizeof(uint64_t))) {
-@@ -2324,8 +2912,8 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
+@@ -2324,8 +2915,8 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
if (property->flags & DRM_MODE_PROP_BLOB) {
if ((out_resp->count_enum_blobs >= blob_count) && blob_count) {
copied = 0;
@@ -1834,7 +1820,7 @@ index 20110b4ad791..c61e67222160 100644
list_for_each_entry(prop_blob, &property->enum_blob_list, head) {
if (put_user(prop_blob->base.id, blob_id_ptr + copied)) {
-@@ -2352,6 +2940,7 @@ static struct drm_property_blob *drm_property_create_blob(struct drm_device *dev
+@@ -2352,6 +2943,7 @@ static struct drm_property_blob *drm_property_create_blob(struct drm_device *dev
void *data)
{
struct drm_property_blob *blob;
@@ -1842,7 +1828,7 @@ index 20110b4ad791..c61e67222160 100644
if (!length || !data)
return NULL;
-@@ -2360,13 +2949,16 @@ static struct drm_property_blob *drm_property_create_blob(struct drm_device *dev
+@@ -2360,13 +2952,16 @@ static struct drm_property_blob *drm_property_create_blob(struct drm_device *dev
if (!blob)
return NULL;
@@ -1862,7 +1848,7 @@ index 20110b4ad791..c61e67222160 100644
list_add_tail(&blob->head, &dev->mode_config.property_blob_list);
return blob;
}
-@@ -2386,7 +2978,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
+@@ -2386,7 +2981,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
struct drm_mode_get_blob *out_resp = data;
struct drm_property_blob *blob;
int ret = 0;
@@ -1871,7 +1857,7 @@ index 20110b4ad791..c61e67222160 100644
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
-@@ -2400,7 +2992,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
+@@ -2400,7 +2995,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
blob = obj_to_blob(obj);
if (out_resp->length == blob->length) {
@@ -1880,7 +1866,7 @@ index 20110b4ad791..c61e67222160 100644
if (copy_to_user(blob_ptr, blob->data, blob->length)){
ret = -EFAULT;
goto done;
-@@ -2545,7 +3137,7 @@ void drm_mode_connector_detach_encoder(struct drm_connector *connector,
+@@ -2545,7 +3140,7 @@ void drm_mode_connector_detach_encoder(struct drm_connector *connector,
}
EXPORT_SYMBOL(drm_mode_connector_detach_encoder);
@@ -1889,7 +1875,7 @@ index 20110b4ad791..c61e67222160 100644
int gamma_size)
{
crtc->gamma_size = gamma_size;
-@@ -2553,10 +3145,10 @@ bool drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
+@@ -2553,10 +3148,10 @@ bool drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
crtc->gamma_store = kzalloc(gamma_size * sizeof(uint16_t) * 3, GFP_KERNEL);
if (!crtc->gamma_store) {
crtc->gamma_size = 0;
@@ -1902,7 +1888,7 @@ index 20110b4ad791..c61e67222160 100644
}
EXPORT_SYMBOL(drm_mode_crtc_set_gamma_size);
-@@ -2702,6 +3294,18 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
+@@ -2702,6 +3297,18 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
goto out;
fb = obj_to_fb(obj);
@@ -1921,7 +1907,7 @@ index 20110b4ad791..c61e67222160 100644
if (page_flip->flags & DRM_MODE_PAGE_FLIP_EVENT) {
ret = -ENOMEM;
spin_lock_irqsave(&dev->event_lock, flags);
-@@ -2731,10 +3335,12 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
+@@ -2731,10 +3338,12 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
ret = crtc->funcs->page_flip(crtc, fb, e);
if (ret) {
@@ -1938,7 +1924,7 @@ index 20110b4ad791..c61e67222160 100644
}
out:
-@@ -2794,3 +3400,72 @@ int drm_mode_destroy_dumb_ioctl(struct drm_device *dev,
+@@ -2794,3 +3403,72 @@ int drm_mode_destroy_dumb_ioctl(struct drm_device *dev,
return dev->driver->dumb_destroy(file_priv, dev, args->handle);
}
@@ -49831,7 +49817,7 @@ index 497da2af4f64..c60100d48ceb 100644
intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c
-index d30ccccb9d73..8fdc95700218 100644
+index e035eaf88454..8fdc95700218 100644
--- a/drivers/gpu/drm/i915/intel_i2c.c
+++ b/drivers/gpu/drm/i915/intel_i2c.c
@@ -37,7 +37,7 @@
@@ -50182,6 +50168,15 @@ index d30ccccb9d73..8fdc95700218 100644
}
intel_i2c_reset(dev_priv->dev);
+@@ -410,7 +399,7 @@ int intel_setup_gmbus(struct drm_device *dev)
+ return 0;
+
+ err:
+- while (i--) {
++ while (--i) {
+ struct intel_gmbus *bus = &dev_priv->gmbus[i];
+ i2c_del_adapter(&bus->adapter);
+ }
@@ -430,19 +419,8 @@ void intel_gmbus_force_bit(struct i2c_adapter *adapter, bool force_bit)
{
struct intel_gmbus *bus = to_intel_gmbus(adapter);
@@ -86114,27 +86109,10 @@ index b6e18c8db9f5..9c6b29a41927 100644
tmp = RREG32_PLL(RADEON_VCLK_ECP_CNTL);
tmp &= ~(RADEON_PIXCLK_ALWAYS_ONb |
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c
-index 87a677e91927..cf5dd63a95c3 100644
+index 87a677e91927..b72eb507df64 100644
--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
-@@ -1259,15 +1259,10 @@ struct radeon_encoder_lvds *radeon_combios_get_lvds_info(struct radeon_encoder
-
- if ((RBIOS16(tmp) == lvds->native_mode.hdisplay) &&
- (RBIOS16(tmp + 2) == lvds->native_mode.vdisplay)) {
-- u32 hss = (RBIOS16(tmp + 21) - RBIOS16(tmp + 19) - 1) * 8;
--
-- if (hss > lvds->native_mode.hdisplay)
-- hss = (10 - 1) * 8;
--
- lvds->native_mode.htotal = lvds->native_mode.hdisplay +
- (RBIOS16(tmp + 17) - RBIOS16(tmp + 19)) * 8;
- lvds->native_mode.hsync_start = lvds->native_mode.hdisplay +
-- hss;
-+ (RBIOS16(tmp + 21) - RBIOS16(tmp + 19) - 1) * 8;
- lvds->native_mode.hsync_end = lvds->native_mode.hsync_start +
- (RBIOS8(tmp + 23) * 8);
-
-@@ -2927,7 +2922,7 @@ bool radeon_combios_external_tmds_setup(struct drm_encoder *encoder)
+@@ -2927,7 +2927,7 @@ bool radeon_combios_external_tmds_setup(struct drm_encoder *encoder)
case 4:
val = RBIOS16(index);
index += 2;
@@ -86143,7 +86121,7 @@ index 87a677e91927..cf5dd63a95c3 100644
break;
case 6:
slave_addr = id & 0xff;
-@@ -3126,7 +3121,7 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
+@@ -3126,7 +3126,7 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
udelay(150);
break;
case 2:
@@ -86152,7 +86130,7 @@ index 87a677e91927..cf5dd63a95c3 100644
break;
case 3:
while (tmp--) {
-@@ -3157,13 +3152,13 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
+@@ -3157,13 +3157,13 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
/*mclk_cntl |= 0x00001111;*//* ??? */
WREG32_PLL(RADEON_MCLK_CNTL,
mclk_cntl);
@@ -86168,7 +86146,7 @@ index 87a677e91927..cf5dd63a95c3 100644
}
break;
default:
-@@ -3399,14 +3394,6 @@ void radeon_combios_asic_init(struct drm_device *dev)
+@@ -3399,14 +3399,6 @@ void radeon_combios_asic_init(struct drm_device *dev)
rdev->pdev->subsystem_device == 0x30ae)
return;
@@ -86801,7 +86779,7 @@ index 213210984764..8fb6f41bd1f2 100644
struct drm_crtc *crtc_p;
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index e51f09f7a175..2f555d782248 100644
+index 8cde84b666d5..2f555d782248 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -89,6 +89,10 @@ static const char radeon_family_name[][16] = {
@@ -86940,15 +86918,7 @@ index e51f09f7a175..2f555d782248 100644
/* reset hpd state */
radeon_hpd_init(rdev);
/* blat the mode back in */
-@@ -960,7 +989,6 @@ int radeon_resume_kms(struct drm_device *dev)
- }
-
- drm_kms_helper_poll_enable(dev);
-- drm_helper_hpd_irq_event(dev);
- return 0;
- }
-
-@@ -1000,36 +1028,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
+@@ -999,36 +1028,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
/*
* Debugfs
*/
@@ -86991,7 +86961,7 @@ index e51f09f7a175..2f555d782248 100644
#if defined(CONFIG_DEBUG_FS)
drm_debugfs_create_files(files, nfiles,
rdev->ddev->control->debugfs_root,
-@@ -1041,6 +1062,22 @@ int radeon_debugfs_add_files(struct radeon_device *rdev,
+@@ -1040,6 +1062,22 @@ int radeon_debugfs_add_files(struct radeon_device *rdev,
return 0;
}
@@ -87014,7 +86984,7 @@ index e51f09f7a175..2f555d782248 100644
#if defined(CONFIG_DEBUG_FS)
int radeon_debugfs_init(struct drm_minor *minor)
{
-@@ -1049,11 +1086,5 @@ int radeon_debugfs_init(struct drm_minor *minor)
+@@ -1048,11 +1086,5 @@ int radeon_debugfs_init(struct drm_minor *minor)
void radeon_debugfs_cleanup(struct drm_minor *minor)
{
diff --git a/debian/patches/series b/debian/patches/series
index 2c01ecd..cf467af 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1165,8 +1165,7 @@ debian/enclosure-fix-abi-change-in-2.6.32.70.patch
debian/fix-abi-changes-for-cve-2013-4312-fix.patch
bugfix/all/aufs-tiny-extract-a-new-func-xino_fwrite_wkq.patch
bugfix/all/aufs-for-4.3-xino-handles-eintr-from-the-dying-proce.patch
-bugfix/all/af_unix-guard-against-other-sk-in-unix_dgram_sendmsg.patch
debian/hrtimer-fix-abi-change-in-3.2.78.patch
-bugfix/all/crypto-blk-giv-cipher-set-has_setkey.patch
debian/crypto-fix-abi-change-in-3.2.77.patch
-bugfix/all/revert-crypto-algif_skcipher-do-not-dereference-ctx-.patch
+debian/revert-libata-align-ata_device-s-id-on-a-cacheline.patch
+debian/tracing-avoid-abi-change-in-3.2.79.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git
More information about the Kernel-svn-changes
mailing list