From db4d0648e2d59f0df9b00afa7ffe0c1fef2c8a6d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 5 Sep 2014 22:28:29 -0400 Subject: [PATCH] Linux v3.16.2 --- ...epth-to-32-when-connected-over-usb-2.patch | 36 ---- ...sing-streams-on-the-Etron-EJ168-cont.patch | 100 --------- NFSv3-Fix-another-acl-regression.patch | 37 ---- ...hen-processing-relocated-directories.patch | 199 ------------------ kernel.spec | 49 +---- ...l-check-get_acl-result-with-IS_ERR_O.patch | 41 ---- sched-fix-sched_setparam-policy-1-logic.patch | 68 ------ sources | 2 +- ...eams-on-Via-XHCI-with-device-id-0x34.patch | 42 ---- 9 files changed, 6 insertions(+), 568 deletions(-) delete mode 100644 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch delete mode 100644 0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch delete mode 100644 NFSv3-Fix-another-acl-regression.patch delete mode 100644 isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch delete mode 100644 nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch delete mode 100644 sched-fix-sched_setparam-policy-1-logic.patch delete mode 100644 xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch diff --git a/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch b/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch deleted file mode 100644 index ec2af2ab2..000000000 --- a/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 86da2d12cf6f76b1fa487f7acf3995f058a2e516 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 1 Aug 2014 17:27:49 +0200 -Subject: [PATCH v2 1/2] uas: Limit qdepth to 32 when connected over usb-2 - -Some jmicron uas chipsets act up (they disconnect from the bus) when sending -more then 32 commands to them at once. - -Rather then building an ever growing list with usb-id based quirks for -devices using this chipset, simply reduce the qdepth to 32 when connected -over usb-2. 32 should be plenty to keep things close to maximum -possible throughput on usb-2. - -Cc: stable@vger.kernel.org -Tested-and-reported-by: Laszlo T. -Signed-off-by: Hans de Goede ---- - drivers/usb/storage/uas.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c -index 511b229..3f42785 100644 ---- a/drivers/usb/storage/uas.c -+++ b/drivers/usb/storage/uas.c -@@ -1026,7 +1026,7 @@ static int uas_configure_endpoints(struct uas_dev_info *devinfo) - usb_endpoint_num(&eps[3]->desc)); - - if (udev->speed != USB_SPEED_SUPER) { -- devinfo->qdepth = 256; -+ devinfo->qdepth = 32; - devinfo->use_streams = 0; - } else { - devinfo->qdepth = usb_alloc_streams(devinfo->intf, eps + 1, --- -2.0.4 - diff --git a/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch b/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch deleted file mode 100644 index 1b6c45be0..000000000 --- a/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch +++ /dev/null @@ -1,100 +0,0 @@ -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1121288 -Upstream-status: Send upstream for 3.16/3.17 with Cc: stable - -From 508b353921aa266c48f70e1cd9332d3e2ef67171 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 25 Jul 2014 12:28:02 +0200 -Subject: [PATCH v2] xhci: Blacklist using streams on the Etron EJ168 - controller - -Streams on the EJ168 do not work as they should. I've spend 2 days trying -to get them to work, but without success. - -The first problem is that when ever you ring the stream-ring doorbell, the -controller starts executing trbs at the beginning of the first ring segment, -event if it ended somewhere else previously. This can be worked around by -allowing enqueing only one td (not a problem with how streams are typically -used) and then resetting our copies of the enqueueing en dequeueing pointers -on a td completion to match what the controller seems to be doing. - -This way things seem to start working with uas and instead of being able -to complete only the very first scsi command, the scsi core can probe the disk. - -But then things break later on when td-s get enqueued with more then one -trb. The controller does seem to increase its dequeue pointer while executing -a stream-ring (data transfer events I inserted for debugging do trigger). -However execution seems to stop at the final normal trb of a multi trb td, -even if there is a data transfer event inserted after the final trb. - -The first problem alone is a serious deviation from the spec, and esp. -dealing with cancellation would have been very tricky if not outright -impossible, but the second problem simply is a deal breaker altogether, -so this patch simply disables streams. - -Note this will cause the usb-storage + uas driver pair to automatically switch -to using usb-storage instead of uas on these devices, essentially reverting -to the 3.14 and earlier behavior when uas was marked CONFIG_BROKEN. - -https://bugzilla.redhat.com/show_bug.cgi?id=1121288 -https://bugzilla.kernel.org/show_bug.cgi?id=80101 - -Cc: stable@vger.kernel.org # 3.15 -Signed-off-by: Hans de Goede ---- - drivers/usb/host/xhci-pci.c | 4 +++- - drivers/usb/host/xhci.c | 3 ++- - drivers/usb/host/xhci.h | 2 ++ - 3 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index e20520f..464049f 100644 ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -143,6 +143,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) - pdev->device == PCI_DEVICE_ID_ASROCK_P67) { - xhci->quirks |= XHCI_RESET_ON_RESUME; - xhci->quirks |= XHCI_TRUST_TX_LENGTH; -+ xhci->quirks |= XHCI_BROKEN_STREAMS; - } - if (pdev->vendor == PCI_VENDOR_ID_RENESAS && - pdev->device == 0x0015) -@@ -230,7 +231,8 @@ static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) - goto put_usb3_hcd; - /* Roothub already marked as USB 3.0 speed */ - -- if (HCC_MAX_PSA(xhci->hcc_params) >= 4) -+ if (!(xhci->quirks & XHCI_BROKEN_STREAMS) && -+ HCC_MAX_PSA(xhci->hcc_params) >= 4) - xhci->shared_hcd->can_do_streams = 1; - - /* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */ -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 7d02e1b..758bc31 100644 ---- a/drivers/usb/host/xhci.c -+++ b/drivers/usb/host/xhci.c -@@ -3163,7 +3163,8 @@ int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev, - num_streams); - - /* MaxPSASize value 0 (2 streams) means streams are not supported */ -- if (HCC_MAX_PSA(xhci->hcc_params) < 4) { -+ if ((xhci->quirks & XHCI_BROKEN_STREAMS) || -+ HCC_MAX_PSA(xhci->hcc_params) < 4) { - xhci_dbg(xhci, "xHCI controller does not support streams.\n"); - return -ENOSYS; - } -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 1411069..88b2958 100644 ---- a/drivers/usb/host/xhci.h -+++ b/drivers/usb/host/xhci.h -@@ -1558,6 +1558,8 @@ struct xhci_hcd { - #define XHCI_PLAT (1 << 16) - #define XHCI_SLOW_SUSPEND (1 << 17) - #define XHCI_SPURIOUS_WAKEUP (1 << 18) -+/* For controllers with a broken beyond repair streams implementation */ -+#define XHCI_BROKEN_STREAMS (1 << 19) - unsigned int num_active_eps; - unsigned int limit_active_eps; - /* There are two roothubs to keep track of bus suspend info for */ --- -2.0.4 - diff --git a/NFSv3-Fix-another-acl-regression.patch b/NFSv3-Fix-another-acl-regression.patch deleted file mode 100644 index af3af2a66..000000000 --- a/NFSv3-Fix-another-acl-regression.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 498a0fb58f119bfa222065fc4f2932e81e1510ed Mon Sep 17 00:00:00 2001 -From: Trond Myklebust -Date: Sun, 24 Aug 2014 14:46:48 -0400 -Subject: [PATCH] NFSv3: Fix another acl regression - -When creating a new object on the NFS server, we should not be sending -posix setacl requests unless the preceding posix_acl_create returned a -non-trivial acl. Doing so, causes Solaris servers in particular to -return an EINVAL. - -Fixes: 013cdf1088d72 (nfs: use generic posix ACL infrastructure,,,) -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1132786 -Cc: stable@vger.kernel.org # 3.14+ -Signed-off-by: Trond Myklebust ---- - fs/nfs/nfs3acl.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c -index d0fec260132a..24c6898159cc 100644 ---- a/fs/nfs/nfs3acl.c -+++ b/fs/nfs/nfs3acl.c -@@ -129,7 +129,10 @@ static int __nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl, - .rpc_argp = &args, - .rpc_resp = &fattr, - }; -- int status; -+ int status = 0; -+ -+ if (acl == NULL && (!S_ISDIR(inode->i_mode) || dfacl == NULL)) -+ goto out; - - status = -EOPNOTSUPP; - if (!nfs_server_capable(inode, NFS_CAP_ACLS)) --- -1.9.3 - diff --git a/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch b/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch deleted file mode 100644 index e937682f0..000000000 --- a/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch +++ /dev/null @@ -1,199 +0,0 @@ -commit 410dd3cf4c9b36f27ed4542ee18b1af5e68645a4 -Author: Jan Kara -Date: Sun Aug 17 11:49:57 2014 +0200 - - isofs: Fix unbounded recursion when processing relocated directories - - We did not check relocated directory in any way when processing Rock - Ridge 'CL' tag. Thus a corrupted isofs image can possibly have a CL - entry pointing to another CL entry leading to possibly unbounded - recursion in kernel code and thus stack overflow or deadlocks (if there - is a loop created from CL entries). - - Fix the problem by not allowing CL entry to point to a directory entry - with CL entry (such use makes no good sense anyway) and by checking - whether CL entry doesn't point to itself. - - CC: stable@vger.kernel.org - Reported-by: Chris Evans - Signed-off-by: Jan Kara - -diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c -index 4556ce1..5ddaf86 100644 ---- a/fs/isofs/inode.c -+++ b/fs/isofs/inode.c -@@ -61,7 +61,7 @@ static void isofs_put_super(struct super_block *sb) - return; - } - --static int isofs_read_inode(struct inode *); -+static int isofs_read_inode(struct inode *, int relocated); - static int isofs_statfs (struct dentry *, struct kstatfs *); - - static struct kmem_cache *isofs_inode_cachep; -@@ -1259,7 +1259,7 @@ out_toomany: - goto out; - } - --static int isofs_read_inode(struct inode *inode) -+static int isofs_read_inode(struct inode *inode, int relocated) - { - struct super_block *sb = inode->i_sb; - struct isofs_sb_info *sbi = ISOFS_SB(sb); -@@ -1404,7 +1404,7 @@ static int isofs_read_inode(struct inode *inode) - */ - - if (!high_sierra) { -- parse_rock_ridge_inode(de, inode); -+ parse_rock_ridge_inode(de, inode, relocated); - /* if we want uid/gid set, override the rock ridge setting */ - if (sbi->s_uid_set) - inode->i_uid = sbi->s_uid; -@@ -1483,9 +1483,10 @@ static int isofs_iget5_set(struct inode *ino, void *data) - * offset that point to the underlying meta-data for the inode. The - * code below is otherwise similar to the iget() code in - * include/linux/fs.h */ --struct inode *isofs_iget(struct super_block *sb, -- unsigned long block, -- unsigned long offset) -+struct inode *__isofs_iget(struct super_block *sb, -+ unsigned long block, -+ unsigned long offset, -+ int relocated) - { - unsigned long hashval; - struct inode *inode; -@@ -1507,7 +1508,7 @@ struct inode *isofs_iget(struct super_block *sb, - return ERR_PTR(-ENOMEM); - - if (inode->i_state & I_NEW) { -- ret = isofs_read_inode(inode); -+ ret = isofs_read_inode(inode, relocated); - if (ret < 0) { - iget_failed(inode); - inode = ERR_PTR(ret); -diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h -index 9916723..0ac4c1f 100644 ---- a/fs/isofs/isofs.h -+++ b/fs/isofs/isofs.h -@@ -107,7 +107,7 @@ extern int iso_date(char *, int); - - struct inode; /* To make gcc happy */ - --extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *); -+extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *, int relocated); - extern int get_rock_ridge_filename(struct iso_directory_record *, char *, struct inode *); - extern int isofs_name_translate(struct iso_directory_record *, char *, struct inode *); - -@@ -118,9 +118,24 @@ extern struct dentry *isofs_lookup(struct inode *, struct dentry *, unsigned int - extern struct buffer_head *isofs_bread(struct inode *, sector_t); - extern int isofs_get_blocks(struct inode *, sector_t, struct buffer_head **, unsigned long); - --extern struct inode *isofs_iget(struct super_block *sb, -- unsigned long block, -- unsigned long offset); -+struct inode *__isofs_iget(struct super_block *sb, -+ unsigned long block, -+ unsigned long offset, -+ int relocated); -+ -+static inline struct inode *isofs_iget(struct super_block *sb, -+ unsigned long block, -+ unsigned long offset) -+{ -+ return __isofs_iget(sb, block, offset, 0); -+} -+ -+static inline struct inode *isofs_iget_reloc(struct super_block *sb, -+ unsigned long block, -+ unsigned long offset) -+{ -+ return __isofs_iget(sb, block, offset, 1); -+} - - /* Because the inode number is no longer relevant to finding the - * underlying meta-data for an inode, we are free to choose a more -diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c -index c0bf424..f488bba 100644 ---- a/fs/isofs/rock.c -+++ b/fs/isofs/rock.c -@@ -288,12 +288,16 @@ eio: - goto out; - } - -+#define RR_REGARD_XA 1 -+#define RR_RELOC_DE 2 -+ - static int - parse_rock_ridge_inode_internal(struct iso_directory_record *de, -- struct inode *inode, int regard_xa) -+ struct inode *inode, int flags) - { - int symlink_len = 0; - int cnt, sig; -+ unsigned int reloc_block; - struct inode *reloc; - struct rock_ridge *rr; - int rootflag; -@@ -305,7 +309,7 @@ parse_rock_ridge_inode_internal(struct iso_directory_record *de, - - init_rock_state(&rs, inode); - setup_rock_ridge(de, inode, &rs); -- if (regard_xa) { -+ if (flags & RR_REGARD_XA) { - rs.chr += 14; - rs.len -= 14; - if (rs.len < 0) -@@ -485,12 +489,22 @@ repeat: - "relocated directory\n"); - goto out; - case SIG('C', 'L'): -- ISOFS_I(inode)->i_first_extent = -- isonum_733(rr->u.CL.location); -- reloc = -- isofs_iget(inode->i_sb, -- ISOFS_I(inode)->i_first_extent, -- 0); -+ if (flags & RR_RELOC_DE) { -+ printk(KERN_ERR -+ "ISOFS: Recursive directory relocation " -+ "is not supported\n"); -+ goto eio; -+ } -+ reloc_block = isonum_733(rr->u.CL.location); -+ if (reloc_block == ISOFS_I(inode)->i_iget5_block && -+ ISOFS_I(inode)->i_iget5_offset == 0) { -+ printk(KERN_ERR -+ "ISOFS: Directory relocation points to " -+ "itself\n"); -+ goto eio; -+ } -+ ISOFS_I(inode)->i_first_extent = reloc_block; -+ reloc = isofs_iget_reloc(inode->i_sb, reloc_block, 0); - if (IS_ERR(reloc)) { - ret = PTR_ERR(reloc); - goto out; -@@ -637,9 +651,11 @@ static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit) - return rpnt; - } - --int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode) -+int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode, -+ int relocated) - { -- int result = parse_rock_ridge_inode_internal(de, inode, 0); -+ int flags = relocated ? RR_RELOC_DE : 0; -+ int result = parse_rock_ridge_inode_internal(de, inode, flags); - - /* - * if rockridge flag was reset and we didn't look for attributes -@@ -647,7 +663,8 @@ int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode) - */ - if ((ISOFS_SB(inode->i_sb)->s_rock_offset == -1) - && (ISOFS_SB(inode->i_sb)->s_rock == 2)) { -- result = parse_rock_ridge_inode_internal(de, inode, 14); -+ result = parse_rock_ridge_inode_internal(de, inode, -+ flags | RR_REGARD_XA); - } - return result; - } diff --git a/kernel.spec b/kernel.spec index 677bad1bb..02f960536 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 301 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 1 +%define stable_update 2 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -632,30 +632,9 @@ Patch25109: revert-input-wacom-testing-result-shows-get_report-is-unnecessary.pa #rhbz 1021036, submitted upstream Patch25110: 0001-ideapad-laptop-Change-Lenovo-Yoga-2-series-rfkill-ha.patch -#rhbz 1117942 -Patch25118: sched-fix-sched_setparam-policy-1-logic.patch - #CVE-2014-{5206,5207} rhbz 1129662 1129669 Patch25119: namespaces-remount-fixes.patch -#rhbz 1121288 -Patch25120: 0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch - -#rhbz 1128472 -Patch25121: 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch - -#rhbz 1131551 -Patch25122: nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch - -#rhbz 1132666 -Patch26016: xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch - -#CVE-2014-{5471,5472} rhbz 1134099 1134101 -Patch26017: isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch - -#rhbz 1132786 -Patch26018: NFSv3-Fix-another-acl-regression.patch - #rhbz 1134969 Patch26019: Input-wacom-Add-support-for-the-Cintiq-Companion.patch @@ -1375,30 +1354,9 @@ ApplyPatch revert-input-wacom-testing-result-shows-get_report-is-unnecessary.pat #rhbz 1021036, submitted upstream ApplyPatch 0001-ideapad-laptop-Change-Lenovo-Yoga-2-series-rfkill-ha.patch -#rhbz 1117942 -ApplyPatch sched-fix-sched_setparam-policy-1-logic.patch - #CVE-2014-{5206,5207} rhbz 1129662 1129669 ApplyPatch namespaces-remount-fixes.patch -#rhbz 1121288 -ApplyPatch 0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch - -#rhbz 1128472 -ApplyPatch 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch - -#rhbz 1131551 -ApplyPatch nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch - -#rhbz 1132666 -ApplyPatch xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch - -#CVE-2014-{5471,5472} rhbz 1134099 1134101 -ApplyPatch isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch - -#rhbz 1132786 -ApplyPatch NFSv3-Fix-another-acl-regression.patch - #rhbz 1134969 ApplyPatch Input-wacom-Add-support-for-the-Cintiq-Companion.patch @@ -2278,6 +2236,9 @@ fi # ||----w | # || || %changelog +* Fri Sep 05 2014 Josh Boyer - 3.16.2-300 +- Linux v3.16.2 + * Thu Sep 04 2014 Josh Boyer - Add support for Wacom Cintiq Companion from Benjamin Tissoires (rhbz 1134969) diff --git a/nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch b/nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch deleted file mode 100644 index 5f48a1262..000000000 --- a/nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch +++ /dev/null @@ -1,41 +0,0 @@ -Bugzilla: 1131551 -Upstream-status: 3.17-rc1 and Cc'd to stable - -From 7a9e75a185e6b3a3860e6a26fb6e88691fc2c9d9 Mon Sep 17 00:00:00 2001 -From: Andrey Utkin -Date: Sat, 26 Jul 2014 14:58:01 +0300 -Subject: [PATCH] nfs3_list_one_acl(): check get_acl() result with - IS_ERR_OR_NULL - -There was a check for result being not NULL. But get_acl() may return -NULL, or ERR_PTR, or actual pointer. -The purpose of the function where current change is done is to "list -ACLs only when they are available", so any error condition of get_acl() -mustn't be elevated, and returning 0 there is still valid. - -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81111 -Signed-off-by: Andrey Utkin -Reviewed-by: Christoph Hellwig -Fixes: 74adf83f5d77 (nfs: only show Posix ACLs in listxattr if actually...) -Cc: stable@vger.kernel.org # 3.14+ -Signed-off-by: Trond Myklebust ---- - fs/nfs/nfs3acl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c -index 8f854dde4150..d0fec260132a 100644 ---- a/fs/nfs/nfs3acl.c -+++ b/fs/nfs/nfs3acl.c -@@ -256,7 +256,7 @@ nfs3_list_one_acl(struct inode *inode, int type, const char *name, void *data, - char *p = data + *result; - - acl = get_acl(inode, type); -- if (!acl) -+ if (IS_ERR_OR_NULL(acl)) - return 0; - - posix_acl_release(acl); --- -1.9.3 - diff --git a/sched-fix-sched_setparam-policy-1-logic.patch b/sched-fix-sched_setparam-policy-1-logic.patch deleted file mode 100644 index 060e0dcef..000000000 --- a/sched-fix-sched_setparam-policy-1-logic.patch +++ /dev/null @@ -1,68 +0,0 @@ -Bugzilla: 1117942 -Upstream-status: Sent for 3.16 and seen by peterz - -The scheduler uses policy=-1 to preserve the current policy state to -implement sched_setparam(). But, as (int) -1 is equals to 0xffffffff, -it's matching the if (policy & SCHED_RESET_ON_FORK) on -_sched_setscheduler(). This match changes the policy value to an -invalid value, breaking the sched_setparam() syscall. - -This patch checks policy=-1 before check the SCHED_RESET_ON_FORK flag. - -The following program shows the bug: - -int main(void) -{ - struct sched_param param = { - .sched_priority = 5, - }; - - sched_setscheduler(0, SCHED_FIFO, ¶m); - param.sched_priority = 1; - sched_setparam(0, ¶m); - param.sched_priority = 0; - sched_getparam(0, ¶m); - if (param.sched_priority != 1) - printf("failed priority setting (found %d instead of 1)\n", - param.sched_priority); - else - printf("priority setting fine\n"); -} - -Cc: Peter Zijlstra -Cc: Ingo Molnar -Cc: Thomas Gleixner -Cc: stable@vger.kernel.org # 3.14+ -Fixes: 7479f3c9cf67 "sched: Move SCHED_RESET_ON_FORK into attr::sched_flags" -Reviewed-by: Steven Rostedt -Signed-off-by: Daniel Bristot de Oliveira - ---- - kernel/sched/core.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index bc1638b..0acf96b 100644 ---- a/kernel/sched/core.c -+++ b/kernel/sched/core.c -@@ -3558,9 +3558,10 @@ static int _sched_setscheduler(struct task_struct *p, int policy, - }; - - /* -- * Fixup the legacy SCHED_RESET_ON_FORK hack -+ * Fixup the legacy SCHED_RESET_ON_FORK hack, except if -+ * the policy=-1 was passed by sched_setparam(). - */ -- if (policy & SCHED_RESET_ON_FORK) { -+ if ((policy != -1) && (policy & SCHED_RESET_ON_FORK)) { - attr.sched_flags |= SCHED_FLAG_RESET_ON_FORK; - policy &= ~SCHED_RESET_ON_FORK; - attr.sched_policy = policy; --- -1.9.3 - --- -To unsubscribe from this list: send the line "unsubscribe linux-kernel" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html -Please read the FAQ at http://www.tux.org/lkml/ diff --git a/sources b/sources index 0dc4b028c..a9e9cd325 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ 5c569ed649a0c9711879f333e90c5386 linux-3.16.tar.xz 49868ce6467b35cd9ffea1120d129462 perf-man-3.16.tar.gz -9da4b0f5e343455b8141bcfa47e88cf5 patch-3.16.1.xz +926e6e2ee0634ce53730701da749b040 patch-3.16.2.xz diff --git a/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch b/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch deleted file mode 100644 index 37543b923..000000000 --- a/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 160cf46209944d2fd7e20e39cf3fa77b961b5b20 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 25 Aug 2014 12:21:56 +0200 -Subject: [PATCH] xhci: Disable streams on Via XHCI with device-id 0x3432 - -This is a bit bigger hammer then I would like to use for this, but for now -it will have to make do. I'm working on getting my hands on one of these so -that I can try to get streams to work (with a quirk flag if necessary) and -then we can re-enable them. - -For now this at least makes uas capable disk enclosures work again by forcing -fallback to the usb-storage driver. - -https://bugzilla.kernel.org/show_bug.cgi?id=79511 -Bugzilla: 1132666 -Upstream-status: Sent for 3.17 and Cc'd stable - -Cc: stable@vger.kernel.org # 3.15 -Signed-off-by: Hans de Goede ---- - drivers/usb/host/xhci-pci.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 687d36608155..d973682f72ce 100644 ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -151,6 +151,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) - if (pdev->vendor == PCI_VENDOR_ID_VIA) - xhci->quirks |= XHCI_RESET_ON_RESUME; - -+ /* See https://bugzilla.kernel.org/show_bug.cgi?id=79511 */ -+ if (pdev->vendor == PCI_VENDOR_ID_VIA && -+ pdev->device == 0x3432) -+ xhci->quirks |= XHCI_BROKEN_STREAMS; -+ - if (xhci->quirks & XHCI_RESET_ON_RESUME) - xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, - "QUIRK: Resetting on resume"); --- -1.9.3 -