Linux v3.16.2
This commit is contained in:
parent
52fafd4758
commit
db4d0648e2
@ -1,36 +0,0 @@
|
|||||||
From 86da2d12cf6f76b1fa487f7acf3995f058a2e516 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
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. <tlacix@gmail.com>
|
|
||||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -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 <hdegoede@redhat.com>
|
|
||||||
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 <hdegoede@redhat.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
From 498a0fb58f119bfa222065fc4f2932e81e1510ed Mon Sep 17 00:00:00 2001
|
|
||||||
From: Trond Myklebust <trond.myklebust@primarydata.com>
|
|
||||||
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 <trond.myklebust@primarydata.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,199 +0,0 @@
|
|||||||
commit 410dd3cf4c9b36f27ed4542ee18b1af5e68645a4
|
|
||||||
Author: Jan Kara <jack@suse.cz>
|
|
||||||
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 <cevans@google.com>
|
|
||||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
49
kernel.spec
49
kernel.spec
@ -42,7 +42,7 @@ Summary: The Linux kernel
|
|||||||
# For non-released -rc kernels, this will be appended after the rcX and
|
# 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"
|
# 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}
|
%global fedora_build %{baserelease}
|
||||||
|
|
||||||
# base_sublevel is the kernel version we're starting with and patching
|
# base_sublevel is the kernel version we're starting with and patching
|
||||||
@ -54,7 +54,7 @@ Summary: The Linux kernel
|
|||||||
%if 0%{?released_kernel}
|
%if 0%{?released_kernel}
|
||||||
|
|
||||||
# Do we have a -stable update to apply?
|
# Do we have a -stable update to apply?
|
||||||
%define stable_update 1
|
%define stable_update 2
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%if 0%{?stable_update}
|
%if 0%{?stable_update}
|
||||||
%define stablerev %{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
|
#rhbz 1021036, submitted upstream
|
||||||
Patch25110: 0001-ideapad-laptop-Change-Lenovo-Yoga-2-series-rfkill-ha.patch
|
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
|
#CVE-2014-{5206,5207} rhbz 1129662 1129669
|
||||||
Patch25119: namespaces-remount-fixes.patch
|
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
|
#rhbz 1134969
|
||||||
Patch26019: Input-wacom-Add-support-for-the-Cintiq-Companion.patch
|
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
|
#rhbz 1021036, submitted upstream
|
||||||
ApplyPatch 0001-ideapad-laptop-Change-Lenovo-Yoga-2-series-rfkill-ha.patch
|
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
|
#CVE-2014-{5206,5207} rhbz 1129662 1129669
|
||||||
ApplyPatch namespaces-remount-fixes.patch
|
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
|
#rhbz 1134969
|
||||||
ApplyPatch Input-wacom-Add-support-for-the-Cintiq-Companion.patch
|
ApplyPatch Input-wacom-Add-support-for-the-Cintiq-Companion.patch
|
||||||
|
|
||||||
@ -2278,6 +2236,9 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 05 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.16.2-300
|
||||||
|
- Linux v3.16.2
|
||||||
|
|
||||||
* Thu Sep 04 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
* Thu Sep 04 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
||||||
- Add support for Wacom Cintiq Companion from Benjamin Tissoires (rhbz 1134969)
|
- Add support for Wacom Cintiq Companion from Benjamin Tissoires (rhbz 1134969)
|
||||||
|
|
||||||
|
@ -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 <andrey.krieger.utkin@gmail.com>
|
|
||||||
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 <andrey.krieger.utkin@gmail.com>
|
|
||||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
|
||||||
Fixes: 74adf83f5d77 (nfs: only show Posix ACLs in listxattr if actually...)
|
|
||||||
Cc: stable@vger.kernel.org # 3.14+
|
|
||||||
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -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 <peterz@infradead.org>
|
|
||||||
Cc: Ingo Molnar <mingo@kernel.org>
|
|
||||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
|
||||||
Cc: stable@vger.kernel.org # 3.14+
|
|
||||||
Fixes: 7479f3c9cf67 "sched: Move SCHED_RESET_ON_FORK into attr::sched_flags"
|
|
||||||
Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
|
|
||||||
Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
|
|
||||||
|
|
||||||
---
|
|
||||||
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/
|
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
|||||||
5c569ed649a0c9711879f333e90c5386 linux-3.16.tar.xz
|
5c569ed649a0c9711879f333e90c5386 linux-3.16.tar.xz
|
||||||
49868ce6467b35cd9ffea1120d129462 perf-man-3.16.tar.gz
|
49868ce6467b35cd9ffea1120d129462 perf-man-3.16.tar.gz
|
||||||
9da4b0f5e343455b8141bcfa47e88cf5 patch-3.16.1.xz
|
926e6e2ee0634ce53730701da749b040 patch-3.16.2.xz
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
From 160cf46209944d2fd7e20e39cf3fa77b961b5b20 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
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 <hdegoede@redhat.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user