* [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL
@ 2015-08-10 14:17 Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mm: avoid setting up anonymous pages into file mapping Jiri Slaby
` (25 more replies)
0 siblings, 26 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Herton R. Krzesinski, Jiri Kosina, Oliver Neukum, Jiri Slaby
From: "Herton R. Krzesinski" <herton@redhat.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 7250dc3fee806eb2b7560ab7d6072302e7ae8cf8 upstream.
I received a report from an user of following mouse which needs this quirk:
usb 1-1.6: USB disconnect, device number 58
usb 1-1.6: new low speed USB device number 59 using ehci_hcd
usb 1-1.6: New USB device found, idVendor=04f2, idProduct=1053
usb 1-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.6: Product: USB Optical Mouse
usb 1-1.6: Manufacturer: PixArt
usb 1-1.6: configuration #1 chosen from 1 choice
input: PixArt USB Optical Mouse as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/input/input5887
generic-usb 0003:04F2:1053.16FE: input,hidraw2: USB HID v1.11 Mouse [PixArt USB Optical Mouse] on usb-0000:00:1a.0-1.6/input0
The quirk was tested by the reporter and it fixed the frequent disconnections etc.
[jkosina@suse.cz: reorder the position in hid-ids.h]
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/hid/hid-ids.h | 1 +
drivers/hid/usbhid/hid-quirks.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 2e65d7791060..6da09931a987 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -218,6 +218,7 @@
#define USB_DEVICE_ID_CHICONY_TACTICAL_PAD 0x0418
#define USB_DEVICE_ID_CHICONY_MULTI_TOUCH 0xb19d
#define USB_DEVICE_ID_CHICONY_WIRELESS 0x0618
+#define USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE 0x1053
#define USB_DEVICE_ID_CHICONY_WIRELESS2 0x1123
#define USB_DEVICE_ID_CHICONY_AK1D 0x1125
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 8f884a6a8a8f..7bc98db768eb 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -69,6 +69,7 @@ static const struct hid_blacklist {
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE, HID_QUIRK_ALWAYS_POLL },
{ USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ELAN_TOUCHSCREEN, HID_QUIRK_ALWAYS_POLL },
{ USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ELAN_TOUCHSCREEN_009B, HID_QUIRK_ALWAYS_POLL },
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] mm: avoid setting up anonymous pages into file mapping
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] freeing unlinked file indefinitely delayed Jiri Slaby
` (24 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable
Cc: Kirill A. Shutemov, Andrew Morton, Willy Tarreau, Linus Torvalds,
Jiri Slaby
From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 6b7339f4c31ad69c8e9c0b2859276e22cf72176d upstream.
Reading page fault handler code I've noticed that under right
circumstances kernel would map anonymous pages into file mappings: if
the VMA doesn't have vm_ops->fault() and the VMA wasn't fully populated
on ->mmap(), kernel would handle page fault to not populated pte with
do_anonymous_page().
Let's change page fault handler to use do_anonymous_page() only on
anonymous VMA (->vm_ops == NULL) and make sure that the VMA is not
shared.
For file mappings without vm_ops->fault() or shred VMA without vm_ops,
page fault on pte_none() entry would lead to SIGBUS.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Willy Tarreau <w@1wt.eu>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
mm/memory.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/mm/memory.c b/mm/memory.c
index 38617f049b9f..d0d84c36cd5c 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -3213,6 +3213,10 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
pte_unmap(page_table);
+ /* File mapping without ->vm_ops ? */
+ if (vma->vm_flags & VM_SHARED)
+ return VM_FAULT_SIGBUS;
+
/* Check if we need to add a guard page to the stack */
if (check_stack_guard_page(vma, address) < 0)
return VM_FAULT_SIGSEGV;
@@ -3480,6 +3484,9 @@ static int do_linear_fault(struct mm_struct *mm, struct vm_area_struct *vma,
- vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;
pte_unmap(page_table);
+ /* The VMA was not fully populated on mmap() or missing VM_DONTEXPAND */
+ if (!vma->vm_ops->fault)
+ return VM_FAULT_SIGBUS;
return __do_fault(mm, vma, address, pmd, pgoff, flags, orig_pte);
}
@@ -3691,11 +3698,9 @@ static int handle_pte_fault(struct mm_struct *mm,
entry = ACCESS_ONCE(*pte);
if (!pte_present(entry)) {
if (pte_none(entry)) {
- if (vma->vm_ops) {
- if (likely(vma->vm_ops->fault))
- return do_linear_fault(mm, vma, address,
+ if (vma->vm_ops)
+ return do_linear_fault(mm, vma, address,
pte, pmd, flags, entry);
- }
return do_anonymous_page(mm, vma, address,
pte, pmd, flags);
}
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] freeing unlinked file indefinitely delayed
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mm: avoid setting up anonymous pages into file mapping Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] s390/sclp: clear upper register halves in _sclp_print_early Jiri Slaby
` (23 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Al Viro, Al Viro, Jiri Slaby
From: Al Viro <viro@ZenIV.linux.org.uk>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 75a6f82a0d10ef8f13cd8fe7212911a0252ab99e upstream.
Normally opening a file, unlinking it and then closing will have
the inode freed upon close() (provided that it's not otherwise busy and
has no remaining links, of course). However, there's one case where that
does *not* happen. Namely, if you open it by fhandle with cold dcache,
then unlink() and close().
In normal case you get d_delete() in unlink(2) notice that dentry
is busy and unhash it; on the final dput() it will be forcibly evicted from
dcache, triggering iput() and inode removal. In this case, though, we end
up with *two* dentries - disconnected (created by open-by-fhandle) and
regular one (used by unlink()). The latter will have its reference to inode
dropped just fine, but the former will not - it's considered hashed (it
is on the ->s_anon list), so it will stay around until the memory pressure
will finally do it in. As the result, we have the final iput() delayed
indefinitely. It's trivial to reproduce -
void flush_dcache(void)
{
system("mount -o remount,rw /");
}
static char buf[20 * 1024 * 1024];
main()
{
int fd;
union {
struct file_handle f;
char buf[MAX_HANDLE_SZ];
} x;
int m;
x.f.handle_bytes = sizeof(x);
chdir("/root");
mkdir("foo", 0700);
fd = open("foo/bar", O_CREAT | O_RDWR, 0600);
close(fd);
name_to_handle_at(AT_FDCWD, "foo/bar", &x.f, &m, 0);
flush_dcache();
fd = open_by_handle_at(AT_FDCWD, &x.f, O_RDWR);
unlink("foo/bar");
write(fd, buf, sizeof(buf));
system("df ."); /* 20Mb eaten */
close(fd);
system("df ."); /* should've freed those 20Mb */
flush_dcache();
system("df ."); /* should be the same as #2 */
}
will spit out something like
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 322023 303843 1131 100% /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 322023 303843 1131 100% /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 322023 283282 21692 93% /
- inode gets freed only when dentry is finally evicted (here we trigger
than by remount; normally it would've happened in response to memory
pressure hell knows when).
Acked-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
fs/dcache.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/dcache.c b/fs/dcache.c
index 64cfe24cdd88..4c227f81051b 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -622,6 +622,9 @@ repeat:
if (unlikely(d_unhashed(dentry)))
goto kill_it;
+ if (unlikely(dentry->d_flags & DCACHE_DISCONNECTED))
+ goto kill_it;
+
if (unlikely(dentry->d_flags & DCACHE_OP_DELETE)) {
if (dentry->d_op->d_delete(dentry))
goto kill_it;
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] s390/sclp: clear upper register halves in _sclp_print_early
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mm: avoid setting up anonymous pages into file mapping Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] freeing unlinked file indefinitely delayed Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ARC: make sure instruction_pointer() returns unsigned value Jiri Slaby
` (22 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Martin Schwidefsky, Jiri Slaby
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit f9c87a6f46d508eae0d9ae640be98d50f237f827 upstream.
If the kernel is compiled with gcc 5.1 and the XZ compression option
the decompress_kernel function calls _sclp_print_early in 64-bit mode
while the content of the upper register half of %r6 is non-zero.
This causes a specification exception on the servc instruction in
_sclp_servc.
The _sclp_print_early function saves and restores the upper registers
halves but it fails to clear them for the 31-bit code of the mini sclp
driver.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
arch/s390/kernel/sclp.S | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/s390/kernel/sclp.S b/arch/s390/kernel/sclp.S
index 29bd7bec4176..1ecd47b5e250 100644
--- a/arch/s390/kernel/sclp.S
+++ b/arch/s390/kernel/sclp.S
@@ -276,6 +276,8 @@ ENTRY(_sclp_print_early)
jno .Lesa2
ahi %r15,-80
stmh %r6,%r15,96(%r15) # store upper register halves
+ basr %r13,0
+ lmh %r0,%r15,.Lzeroes-.(%r13) # clear upper register halves
.Lesa2:
#endif
lr %r10,%r2 # save string pointer
@@ -299,6 +301,8 @@ ENTRY(_sclp_print_early)
#endif
lm %r6,%r15,120(%r15) # restore registers
br %r14
+.Lzeroes:
+ .fill 64,4,0
.LwritedataS4:
.long 0x00760005 # SCLP command for write data
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] ARC: make sure instruction_pointer() returns unsigned value
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (2 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] s390/sclp: clear upper register halves in _sclp_print_early Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD Jiri Slaby
` (21 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable
Cc: Alexey Brodkin, arc-linux-dev, linux-kernel, Vineet Gupta,
Jiri Slaby
From: Alexey Brodkin <abrodkin@synopsys.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit f51e2f1911122879eefefa4c592dea8bf794b39c upstream.
Currently instruction_pointer() returns pt_regs->ret and so return value
is of type "long", which implicitly stands for "signed long".
While that's perfectly fine when dealing with 32-bit values if return
value of instruction_pointer() gets assigned to 64-bit variable sign
extension may happen.
And at least in one real use-case it happens already.
In perf_prepare_sample() return value of perf_instruction_pointer()
(which is an alias to instruction_pointer() in case of ARC) is assigned
to (struct perf_sample_data)->ip (which type is "u64").
And what we see if instuction pointer points to user-space application
that in case of ARC lays below 0x8000_0000 "ip" gets set properly with
leading 32 zeros. But if instruction pointer points to kernel address
space that starts from 0x8000_0000 then "ip" is set with 32 leadig
"f"-s. I.e. id instruction_pointer() returns 0x8100_0000, "ip" will be
assigned with 0xffff_ffff__8100_0000. Which is obviously wrong.
In particular that issuse broke output of perf, because perf was unable
to associate addresses like 0xffff_ffff__8100_0000 with anything from
/proc/kallsyms.
That's what we used to see:
----------->8----------
6.27% ls [unknown] [k] 0xffffffff8046c5cc
2.96% ls libuClibc-0.9.34-git.so [.] memcpy
2.25% ls libuClibc-0.9.34-git.so [.] memset
1.66% ls [unknown] [k] 0xffffffff80666536
1.54% ls libuClibc-0.9.34-git.so [.] 0x000224d6
1.18% ls libuClibc-0.9.34-git.so [.] 0x00022472
----------->8----------
With that change perf output looks much better now:
----------->8----------
8.21% ls [kernel.kallsyms] [k] memset
3.52% ls libuClibc-0.9.34-git.so [.] memcpy
2.11% ls libuClibc-0.9.34-git.so [.] malloc
1.88% ls libuClibc-0.9.34-git.so [.] memset
1.64% ls [kernel.kallsyms] [k] _raw_spin_unlock_irqrestore
1.41% ls [kernel.kallsyms] [k] __d_lookup_rcu
----------->8----------
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: arc-linux-dev@synopsys.com
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
arch/arc/include/asm/ptrace.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arc/include/asm/ptrace.h b/arch/arc/include/asm/ptrace.h
index 1bfeec2c0558..2a58af7a2e3a 100644
--- a/arch/arc/include/asm/ptrace.h
+++ b/arch/arc/include/asm/ptrace.h
@@ -63,7 +63,7 @@ struct callee_regs {
long r25, r24, r23, r22, r21, r20, r19, r18, r17, r16, r15, r14, r13;
};
-#define instruction_pointer(regs) ((regs)->ret)
+#define instruction_pointer(regs) (unsigned long)((regs)->ret)
#define profile_pc(regs) instruction_pointer(regs)
/* return 1 if user mode or 0 if kernel mode */
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (3 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ARC: make sure instruction_pointer() returns unsigned value Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4 Jiri Slaby
` (20 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Thomas Gleixner, Jiri Slaby
From: Thomas Gleixner <tglx@linutronix.de>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 75a06189fc508a2acf470b0b12710362ffb2c4b1 upstream.
The resend mechanism happily calls the interrupt handler of interrupts
which are marked IRQ_NESTED_THREAD from softirq context. This can
result in crashes because the interrupt handler is not the proper way
to invoke the device handlers. They must be invoked via
handle_nested_irq.
Prevent the resend even if the interrupt has no valid parent irq
set. Its better to have a lost interrupt than a crashing machine.
Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
kernel/irq/resend.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c
index 9065107f083e..7a5237a1bce5 100644
--- a/kernel/irq/resend.c
+++ b/kernel/irq/resend.c
@@ -75,13 +75,21 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq)
!desc->irq_data.chip->irq_retrigger(&desc->irq_data)) {
#ifdef CONFIG_HARDIRQS_SW_RESEND
/*
- * If the interrupt has a parent irq and runs
- * in the thread context of the parent irq,
- * retrigger the parent.
+ * If the interrupt is running in the thread
+ * context of the parent irq we need to be
+ * careful, because we cannot trigger it
+ * directly.
*/
- if (desc->parent_irq &&
- irq_settings_is_nested_thread(desc))
+ if (irq_settings_is_nested_thread(desc)) {
+ /*
+ * If the parent_irq is valid, we
+ * retrigger the parent, otherwise we
+ * do nothing.
+ */
+ if (!desc->parent_irq)
+ return;
irq = desc->parent_irq;
+ }
/* Set it pending and activate the softirq: */
set_bit(irq, irqs_resend);
tasklet_schedule(&resend_tasklet);
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (4 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: usb-audio: add dB range mapping for some devices Jiri Slaby
` (19 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Dominic Sacré, Albert Huitsing, Takashi Iwai, Jiri Slaby
From: Dominic Sacré <dominic.sacre@gmx.de>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 0689a86ae814f39af94a9736a0a5426dd82eb107 upstream.
The Steinberg MI2 and MI4 interfaces are compatible with the USB class
audio spec, but the MIDI part of the devices is reported as a vendor
specific interface.
This patch adds entries to quirks-table.h to recognize the MIDI
endpoints. Audio functionality was already working and is unaffected by
this change.
Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de>
Signed-off-by: Albert Huitsing <albert@huitsing.nl>
Acked-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
sound/usb/quirks-table.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index 5293b5ac8b9d..7c24088bcaa4 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -2516,6 +2516,74 @@ YAMAHA_DEVICE(0x7010, "UB99"),
}
},
+/* Steinberg devices */
+{
+ /* Steinberg MI2 */
+ USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x2040),
+ .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
+ .ifnum = QUIRK_ANY_INTERFACE,
+ .type = QUIRK_COMPOSITE,
+ .data = & (const struct snd_usb_audio_quirk[]) {
+ {
+ .ifnum = 0,
+ .type = QUIRK_AUDIO_STANDARD_INTERFACE
+ },
+ {
+ .ifnum = 1,
+ .type = QUIRK_AUDIO_STANDARD_INTERFACE
+ },
+ {
+ .ifnum = 2,
+ .type = QUIRK_AUDIO_STANDARD_INTERFACE
+ },
+ {
+ .ifnum = 3,
+ .type = QUIRK_MIDI_FIXED_ENDPOINT,
+ .data = &(const struct snd_usb_midi_endpoint_info) {
+ .out_cables = 0x0001,
+ .in_cables = 0x0001
+ }
+ },
+ {
+ .ifnum = -1
+ }
+ }
+ }
+},
+{
+ /* Steinberg MI4 */
+ USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x4040),
+ .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
+ .ifnum = QUIRK_ANY_INTERFACE,
+ .type = QUIRK_COMPOSITE,
+ .data = & (const struct snd_usb_audio_quirk[]) {
+ {
+ .ifnum = 0,
+ .type = QUIRK_AUDIO_STANDARD_INTERFACE
+ },
+ {
+ .ifnum = 1,
+ .type = QUIRK_AUDIO_STANDARD_INTERFACE
+ },
+ {
+ .ifnum = 2,
+ .type = QUIRK_AUDIO_STANDARD_INTERFACE
+ },
+ {
+ .ifnum = 3,
+ .type = QUIRK_MIDI_FIXED_ENDPOINT,
+ .data = &(const struct snd_usb_midi_endpoint_info) {
+ .out_cables = 0x0001,
+ .in_cables = 0x0001
+ }
+ },
+ {
+ .ifnum = -1
+ }
+ }
+ }
+},
+
/* TerraTec devices */
{
USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0012),
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] ALSA: usb-audio: add dB range mapping for some devices
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (5 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4 Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: hda - Fix MacBook Pro 5,2 quirk Jiri Slaby
` (18 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Yao-Wen Mao, Takashi Iwai, Jiri Slaby
From: Yao-Wen Mao <yaowen@google.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 2d1cb7f658fb9c3ba8f9dab8aca297d4dfdec835 upstream.
Add the correct dB ranges of Bose Companion 5 and Drangonfly DAC 1.2.
Signed-off-by: Yao-Wen Mao <yaowen@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
sound/usb/mixer_maps.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
index d06fbd9f7cbe..2d17f40fb16d 100644
--- a/sound/usb/mixer_maps.c
+++ b/sound/usb/mixer_maps.c
@@ -330,6 +330,20 @@ static const struct usbmix_name_map scms_usb3318_map[] = {
{ 0 }
};
+/* Bose companion 5, the dB conversion factor is 16 instead of 256 */
+static struct usbmix_dB_map bose_companion5_dB = {-5006, -6};
+static struct usbmix_name_map bose_companion5_map[] = {
+ { 3, NULL, .dB = &bose_companion5_dB },
+ { 0 } /* terminator */
+};
+
+/* Dragonfly DAC 1.2, the dB conversion factor is 1 instead of 256 */
+static struct usbmix_dB_map dragonfly_1_2_dB = {0, 5000};
+static struct usbmix_name_map dragonfly_1_2_map[] = {
+ { 7, NULL, .dB = &dragonfly_1_2_dB },
+ { 0 } /* terminator */
+};
+
/*
* Control map entries
*/
@@ -432,6 +446,16 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
.id = USB_ID(0x25c4, 0x0003),
.map = scms_usb3318_map,
},
+ {
+ /* Bose Companion 5 */
+ .id = USB_ID(0x05a7, 0x1020),
+ .map = bose_companion5_map,
+ },
+ {
+ /* Dragonfly DAC 1.2 */
+ .id = USB_ID(0x21b4, 0x0081),
+ .map = dragonfly_1_2_map,
+ },
{ 0 } /* terminator */
};
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] ALSA: hda - Fix MacBook Pro 5,2 quirk
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (6 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: usb-audio: add dB range mapping for some devices Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] st: null pointer dereference panic caused by use after kref_put by st_open Jiri Slaby
` (17 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Takashi Iwai, Jiri Slaby
From: Takashi Iwai <tiwai@suse.de>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 649ccd08534ee26deb2e5b08509800d0e95167f5 upstream.
MacBook Pro 5,2 with ALC889 codec had already a fixup entry, but this
seems not working correctly, a fix for pin NID 0x15 is needed in
addition. It's equivalent with the fixup for MacBook Air 1,1, so use
this instead.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102131
Reported-and-tested-by: Jeffery Miller <jefferym@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
sound/pci/hda/patch_realtek.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index a2e6f3ec7d26..f92057919273 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2213,7 +2213,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
SND_PCI_QUIRK(0x106b, 0x4300, "iMac 9,1", ALC889_FIXUP_IMAC91_VREF),
SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC889_FIXUP_IMAC91_VREF),
SND_PCI_QUIRK(0x106b, 0x4900, "iMac 9,1 Aluminum", ALC889_FIXUP_IMAC91_VREF),
- SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_IMAC91_VREF),
+ SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_MBA11_VREF),
SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD),
SND_PCI_QUIRK(0x1462, 0x7350, "MSI-7350", ALC889_FIXUP_CD),
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] st: null pointer dereference panic caused by use after kref_put by st_open
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (7 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: hda - Fix MacBook Pro 5,2 quirk Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mac80211: clear subdir_stations when removing debugfs Jiri Slaby
` (16 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Seymour, Shane M, Darren Lavender, James Bottomley, Jiri Slaby
From: "Seymour, Shane M" <shane.seymour@hp.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit e7ac6c6666bec0a354758a1298d3231e4a635362 upstream.
Two SLES11 SP3 servers encountered similar crashes simultaneously
following some kind of SAN/tape target issue:
...
qla2xxx [0000:81:00.0]-801c:3: Abort command issued nexus=3:0:2 -- 1 2002.
qla2xxx [0000:81:00.0]-801c:3: Abort command issued nexus=3:0:2 -- 1 2002.
qla2xxx [0000:81:00.0]-8009:3: DEVICE RESET ISSUED nexus=3:0:2 cmd=ffff882f89c2c7c0.
qla2xxx [0000:81:00.0]-800c:3: do_reset failed for cmd=ffff882f89c2c7c0.
qla2xxx [0000:81:00.0]-800f:3: DEVICE RESET FAILED: Task management failed nexus=3:0:2 cmd=ffff882f89c2c7c0.
qla2xxx [0000:81:00.0]-8009:3: TARGET RESET ISSUED nexus=3:0:2 cmd=ffff882f89c2c7c0.
qla2xxx [0000:81:00.0]-800c:3: do_reset failed for cmd=ffff882f89c2c7c0.
qla2xxx [0000:81:00.0]-800f:3: TARGET RESET FAILED: Task management failed nexus=3:0:2 cmd=ffff882f89c2c7c0.
qla2xxx [0000:81:00.0]-8012:3: BUS RESET ISSUED nexus=3:0:2.
qla2xxx [0000:81:00.0]-802b:3: BUS RESET SUCCEEDED nexus=3:0:2.
qla2xxx [0000:81:00.0]-505f:3: Link is operational (8 Gbps).
qla2xxx [0000:81:00.0]-8018:3: ADAPTER RESET ISSUED nexus=3:0:2.
qla2xxx [0000:81:00.0]-00af:3: Performing ISP error recovery - ha=ffff88bf04d18000.
rport-3:0-0: blocked FC remote port time out: removing target and saving binding
qla2xxx [0000:81:00.0]-505f:3: Link is operational (8 Gbps).
qla2xxx [0000:81:00.0]-8017:3: ADAPTER RESET SUCCEEDED nexus=3:0:2.
rport-2:0-0: blocked FC remote port time out: removing target and saving binding
sg_rq_end_io: device detached
BUG: unable to handle kernel NULL pointer dereference at 00000000000002a8
IP: [<ffffffff8133b268>] __pm_runtime_idle+0x28/0x90
PGD 7e6586f067 PUD 7e5af06067 PMD 0 [1739975.390354] Oops: 0002 [#1] SMP
CPU 0
...
Supported: No, Proprietary modules are loaded [1739975.390463]
Pid: 27965, comm: ABCD Tainted: PF X 3.0.101-0.29-default #1 HP ProLiant DL580 Gen8
RIP: 0010:[<ffffffff8133b268>] [<ffffffff8133b268>] __pm_runtime_idle+0x28/0x90
RSP: 0018:ffff8839dc1e7c68 EFLAGS: 00010202
RAX: 0000000000000000 RBX: ffff883f0592fc00 RCX: 0000000000000090
RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000138
RBP: 0000000000000138 R08: 0000000000000010 R09: ffffffff81bd39d0
R10: 00000000000009c0 R11: ffffffff81025790 R12: 0000000000000001
R13: ffff883022212b80 R14: 0000000000000004 R15: ffff883022212b80
FS: 00007f8e54560720(0000) GS:ffff88407f800000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00000000000002a8 CR3: 0000007e6ced6000 CR4: 00000000001407f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process ABCD (pid: 27965, threadinfo ffff8839dc1e6000, task ffff883592e0c640)
Stack:
ffff883f0592fc00 00000000fffffffa 0000000000000001 ffff883022212b80
ffff883eff772400 ffffffffa03fa309 0000000000000000 0000000000000000
ffffffffa04003a0 ffff883f063196c0 ffff887f0379a930 ffffffff8115ea1e
Call Trace:
[<ffffffffa03fa309>] st_open+0x129/0x240 [st]
[<ffffffff8115ea1e>] chrdev_open+0x13e/0x200
[<ffffffff811588a8>] __dentry_open+0x198/0x310
[<ffffffff81167d74>] do_last+0x1f4/0x800
[<ffffffff81168fe9>] path_openat+0xd9/0x420
[<ffffffff8116946c>] do_filp_open+0x4c/0xc0
[<ffffffff8115a00f>] do_sys_open+0x17f/0x250
[<ffffffff81468d92>] system_call_fastpath+0x16/0x1b
[<00007f8e4f617fd0>] 0x7f8e4f617fcf
Code: eb d3 90 48 83 ec 28 40 f6 c6 04 48 89 6c 24 08 4c 89 74 24 20 48 89 fd 48 89 1c 24 4c 89 64 24 10 41 89 f6 4c 89 6c 24 18 74 11 <f0> ff 8f 70 01 00 00 0f 94 c0 45 31 ed 84 c0 74 2b 4c 8d a5 a0
RIP [<ffffffff8133b268>] __pm_runtime_idle+0x28/0x90
RSP <ffff8839dc1e7c68>
CR2: 00000000000002a8
Analysis reveals the cause of the crash to be due to STp->device
being NULL. The pointer was NULLed via scsi_tape_put(STp) when it
calls scsi_tape_release(). In st_open() we jump to err_out after
scsi_block_when_processing_errors() completes and returns the
device as offline (sdev_state was SDEV_DEL):
1180 /* Open the device. Needs to take the BKL only because of incrementing the SCSI host
1181 module count. */
1182 static int st_open(struct inode *inode, struct file *filp)
1183 {
1184 int i, retval = (-EIO);
1185 int resumed = 0;
1186 struct scsi_tape *STp;
1187 struct st_partstat *STps;
1188 int dev = TAPE_NR(inode);
1189 char *name;
...
1217 if (scsi_autopm_get_device(STp->device) < 0) {
1218 retval = -EIO;
1219 goto err_out;
1220 }
1221 resumed = 1;
1222 if (!scsi_block_when_processing_errors(STp->device)) {
1223 retval = (-ENXIO);
1224 goto err_out;
1225 }
...
1264 err_out:
1265 normalize_buffer(STp->buffer);
1266 spin_lock(&st_use_lock);
1267 STp->in_use = 0;
1268 spin_unlock(&st_use_lock);
1269 scsi_tape_put(STp); <-- STp->device = 0 after this
1270 if (resumed)
1271 scsi_autopm_put_device(STp->device);
1272 return retval;
The ref count for the struct scsi_tape had already been reduced
to 1 when the .remove method of the st module had been called.
The kref_put() in scsi_tape_put() caused scsi_tape_release()
to be called:
0266 static void scsi_tape_put(struct scsi_tape *STp)
0267 {
0268 struct scsi_device *sdev = STp->device;
0269
0270 mutex_lock(&st_ref_mutex);
0271 kref_put(&STp->kref, scsi_tape_release); <-- calls this
0272 scsi_device_put(sdev);
0273 mutex_unlock(&st_ref_mutex);
0274 }
In scsi_tape_release() the struct scsi_device in the struct
scsi_tape gets set to NULL:
4273 static void scsi_tape_release(struct kref *kref)
4274 {
4275 struct scsi_tape *tpnt = to_scsi_tape(kref);
4276 struct gendisk *disk = tpnt->disk;
4277
4278 tpnt->device = NULL; <<<---- where the dev is nulled
4279
4280 if (tpnt->buffer) {
4281 normalize_buffer(tpnt->buffer);
4282 kfree(tpnt->buffer->reserved_pages);
4283 kfree(tpnt->buffer);
4284 }
4285
4286 disk->private_data = NULL;
4287 put_disk(disk);
4288 kfree(tpnt);
4289 return;
4290 }
Although the problem was reported on SLES11.3 the problem appears
in linux-next as well.
The crash is fixed by reordering the code so we no longer access
the struct scsi_tape after the kref_put() is done on it in st_open().
Signed-off-by: Shane Seymour <shane.seymour@hp.com>
Signed-off-by: Darren Lavender <darren.lavender@hp.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.com>
Acked-by: Kai Mäkisara <kai.makisara@kolumbus.fi>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/scsi/st.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index ff44b3c2cff2..9903f1d58d3e 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -1262,9 +1262,9 @@ static int st_open(struct inode *inode, struct file *filp)
spin_lock(&st_use_lock);
STp->in_use = 0;
spin_unlock(&st_use_lock);
- scsi_tape_put(STp);
if (resumed)
scsi_autopm_put_device(STp->device);
+ scsi_tape_put(STp);
return retval;
}
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] mac80211: clear subdir_stations when removing debugfs
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (8 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] st: null pointer dereference panic caused by use after kref_put by st_open Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mmc: sdhci-esdhc: Make 8BIT bus work Jiri Slaby
` (15 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Tom Hughes, Johannes Berg, Jiri Slaby
From: Tom Hughes <tom@compton.nu>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 4479004e6409087d1b4986881dc98c6c15dffb28 upstream.
If we don't do this, and we then fail to recreate the debugfs
directory during a mode change, then we will fail later trying
to add stations to this now bogus directory:
BUG: unable to handle kernel NULL pointer dereference at 0000006c
IP: [<c0a92202>] mutex_lock+0x12/0x30
Call Trace:
[<c0678ab4>] start_creating+0x44/0xc0
[<c0679203>] debugfs_create_dir+0x13/0xf0
[<f8a938ae>] ieee80211_sta_debugfs_add+0x6e/0x490 [mac80211]
Signed-off-by: Tom Hughes <tom@compton.nu>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
net/mac80211/debugfs_netdev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 8e41f0163c5a..92be2863b7db 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -698,6 +698,7 @@ void ieee80211_debugfs_remove_netdev(struct ieee80211_sub_if_data *sdata)
debugfs_remove_recursive(sdata->vif.debugfs_dir);
sdata->vif.debugfs_dir = NULL;
+ sdata->debugfs.subdir_stations = NULL;
}
void ieee80211_debugfs_rename_netdev(struct ieee80211_sub_if_data *sdata)
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] mmc: sdhci-esdhc: Make 8BIT bus work
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (9 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mac80211: clear subdir_stations when removing debugfs Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 15:27 ` Joakim Tjernlund
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mmc: sdhci-pxav3: fix platform_data is not initialized Jiri Slaby
` (14 subsequent siblings)
25 siblings, 1 reply; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Joakim Tjernlund, Joakim Tjernlund, Ulf Hansson, Jiri Slaby
From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 8e91125ff3f57f15c6568e2a6d32743b3f7815e4 upstream.
Support for 8BIT bus with was added some time ago to sdhci-esdhc but
then missed to remove the 8BIT from the reserved bit mask which made
8BIT non functional.
Fixes: 66b50a00992d ("mmc: esdhc: Add support for 8-bit bus width and..")
Signed-off-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/mmc/host/sdhci-esdhc.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci-esdhc.h b/drivers/mmc/host/sdhci-esdhc.h
index a2a06420e463..ebff71092743 100644
--- a/drivers/mmc/host/sdhci-esdhc.h
+++ b/drivers/mmc/host/sdhci-esdhc.h
@@ -47,7 +47,7 @@
#define ESDHC_DMA_SYSCTL 0x40c
#define ESDHC_DMA_SNOOP 0x00000040
-#define ESDHC_HOST_CONTROL_RES 0x05
+#define ESDHC_HOST_CONTROL_RES 0x01
static inline void esdhc_set_clock(struct sdhci_host *host, unsigned int clock,
unsigned int host_clock)
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] mmc: sdhci-pxav3: fix platform_data is not initialized
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (10 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mmc: sdhci-esdhc: Make 8BIT bus work Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] md/raid1: fix test for 'was read error from last working device' Jiri Slaby
` (13 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Jingju Hou, Ulf Hansson, Jiri Slaby
From: Jingju Hou <houjingj@marvell.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 9cd76049f0d90ae241f5ad80e311489824527000 upstream.
pdev->dev.platform_data is not initialized if match is true in function
sdhci_pxav3_probe. Just local variable pdata is assigned the return value
from function pxav3_get_mmc_pdata().
static int sdhci_pxav3_probe(struct platform_device *pdev) {
struct sdhci_pxa_platdata *pdata = pdev->dev.platform_data;
...
if (match) {
ret = mmc_of_parse(host->mmc);
if (ret)
goto err_of_parse;
sdhci_get_of_property(pdev);
pdata = pxav3_get_mmc_pdata(dev);
}
...
}
Signed-off-by: Jingju Hou <houjingj@marvell.com>
Fixes: b650352dd3df("mmc: sdhci-pxa: Add device tree support")
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/mmc/host/sdhci-pxav3.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
index 561c6b4907a1..b80766699249 100644
--- a/drivers/mmc/host/sdhci-pxav3.c
+++ b/drivers/mmc/host/sdhci-pxav3.c
@@ -257,6 +257,7 @@ static int sdhci_pxav3_probe(struct platform_device *pdev)
goto err_of_parse;
sdhci_get_of_property(pdev);
pdata = pxav3_get_mmc_pdata(dev);
+ pdev->dev.platform_data = pdata;
} else if (pdata) {
/* on-chip device */
if (pdata->flags & PXA_FLAG_CARD_PERMANENT)
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] md/raid1: fix test for 'was read error from last working device'.
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (11 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mmc: sdhci-pxav3: fix platform_data is not initialized Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] tile: use free_bootmem_late() for initrd Jiri Slaby
` (12 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: NeilBrown, Jiri Slaby
From: NeilBrown <neilb@suse.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 34cab6f42003cb06f48f86a86652984dec338ae9 upstream.
When we get a read error from the last working device, we don't
try to repair it, and don't fail the device. We simple report a
read error to the caller.
However the current test for 'is this the last working device' is
wrong.
When there is only one fully working device, it assumes that a
non-faulty device is that device. However a spare which is rebuilding
would be non-faulty but so not the only working device.
So change the test from "!Faulty" to "In_sync". If ->degraded says
there is only one fully working device and this device is in_sync,
this must be the one.
This bug has existed since we allowed read_balance to read from
a recovering spare in v3.0
Reported-and-tested-by: Alexander Lyakas <alex.bolshoy@gmail.com>
Fixes: 76073054c95b ("md/raid1: clean up read_balance.")
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/md/raid1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 633b6e1e7d4d..14934ac112c3 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -327,7 +327,7 @@ static void raid1_end_read_request(struct bio *bio, int error)
spin_lock_irqsave(&conf->device_lock, flags);
if (r1_bio->mddev->degraded == conf->raid_disks ||
(r1_bio->mddev->degraded == conf->raid_disks-1 &&
- !test_bit(Faulty, &conf->mirrors[mirror].rdev->flags)))
+ test_bit(In_sync, &conf->mirrors[mirror].rdev->flags)))
uptodate = 1;
spin_unlock_irqrestore(&conf->device_lock, flags);
}
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] tile: use free_bootmem_late() for initrd
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (12 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] md/raid1: fix test for 'was read error from last working device' Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen Jiri Slaby
` (11 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Chris Metcalf, Jiri Slaby
From: Chris Metcalf <cmetcalf@ezchip.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 3f81d2447b37ac697b3c600039f2c6b628c06e21 upstream.
We were previously using free_bootmem() and just getting lucky
that nothing too bad happened.
Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
arch/tile/kernel/setup.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/tile/kernel/setup.c b/arch/tile/kernel/setup.c
index 74c91729a62a..bdb3ecf8e168 100644
--- a/arch/tile/kernel/setup.c
+++ b/arch/tile/kernel/setup.c
@@ -1146,7 +1146,7 @@ static void __init load_hv_initrd(void)
void __init free_initrd_mem(unsigned long begin, unsigned long end)
{
- free_bootmem(__pa(begin), end - begin);
+ free_bootmem_late(__pa(begin), end - begin);
}
static int __init setup_initrd(char *str)
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (13 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] tile: use free_bootmem_late() for initrd Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] blkcg: fix gendisk reference leak in blkg_conf_prep() Jiri Slaby
` (10 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Bernhard Bender, Dmitry Torokhov, Jiri Slaby
From: Bernhard Bender <bernhard.bender@bytecmed.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 968491709e5b1aaf429428814fff3d932fa90b60 upstream.
This patch fixes a problem in the usbtouchscreen driver for DMC TSC-30
touch screen. Due to a missing delay between the RESET and SET_RATE
commands, the touch screen may become unresponsive during system startup or
driver loading.
According to the DMC documentation, a delay is needed after the RESET
command to allow the chip to complete its internal initialization. As this
delay is not guaranteed, we had a system where the touch screen
occasionally did not send any touch data. There was no other indication of
the problem.
The patch fixes the problem by adding a 150ms delay between the RESET and
SET_RATE commands.
Suggested-by: Jakob Mustafa <jakob.mustafa@bytecmed.com>
Signed-off-by: Bernhard Bender <bernhard.bender@bytecmed.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/input/touchscreen/usbtouchscreen.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.c
index e565530e3596..5679cd9003cc 100644
--- a/drivers/input/touchscreen/usbtouchscreen.c
+++ b/drivers/input/touchscreen/usbtouchscreen.c
@@ -628,6 +628,9 @@ static int dmc_tsc10_init(struct usbtouch_usb *usbtouch)
goto err_out;
}
+ /* TSC-25 data sheet specifies a delay after the RESET command */
+ msleep(150);
+
/* set coordinate output rate */
buf[0] = buf[1] = 0xFF;
ret = usb_control_msg(dev, usb_rcvctrlpipe (dev, 0),
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] blkcg: fix gendisk reference leak in blkg_conf_prep()
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (14 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ata: pmp: add quirk for Marvell 4140 SATA PMP Jiri Slaby
` (9 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Tejun Heo, Jens Axboe, Jiri Slaby
From: Tejun Heo <tj@kernel.org>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 5f6c2d2b7dbb541c1e922538c49fa04c494ae3d7 upstream.
When a blkcg configuration is targeted to a partition rather than a
whole device, blkg_conf_prep fails with -EINVAL; unfortunately, it
forgets to put the gendisk ref in that case. Fix it.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
block/blk-cgroup.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index a573d4bd71d9..47bf1599aa2f 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -703,8 +703,12 @@ int blkg_conf_prep(struct blkcg *blkcg, const struct blkcg_policy *pol,
return -EINVAL;
disk = get_gendisk(MKDEV(major, minor), &part);
- if (!disk || part)
+ if (!disk)
return -EINVAL;
+ if (part) {
+ put_disk(disk);
+ return -EINVAL;
+ }
rcu_read_lock();
spin_lock_irq(disk->queue->queue_lock);
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] ata: pmp: add quirk for Marvell 4140 SATA PMP
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (15 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] blkcg: fix gendisk reference leak in blkg_conf_prep() Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] usb-storage: ignore ZTE MF 823 card reader in mode 0x1225 Jiri Slaby
` (8 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Lior Amsalem, Thomas Petazzoni, Tejun Heo, Jiri Slaby
From: Lior Amsalem <alior@marvell.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 945b47441d83d2392ac9f984e0267ad521f24268 upstream.
This commit adds the necessary quirk to make the Marvell 4140 SATA PMP
work properly. This PMP doesn't like SRST on port number 4 (the host
port) so this commit marks this port as not supporting SRST.
Signed-off-by: Lior Amsalem <alior@marvell.com>
Reviewed-by: Nadav Haklai <nadavh@marvell.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/ata/libata-pmp.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c
index 7ccc084bf1df..85aa76116a30 100644
--- a/drivers/ata/libata-pmp.c
+++ b/drivers/ata/libata-pmp.c
@@ -460,6 +460,13 @@ static void sata_pmp_quirks(struct ata_port *ap)
ATA_LFLAG_NO_SRST |
ATA_LFLAG_ASSUME_ATA;
}
+ } else if (vendor == 0x11ab && devid == 0x4140) {
+ /* Marvell 4140 quirks */
+ ata_for_each_link(link, ap, EDGE) {
+ /* port 4 is for SEMB device and it doesn't like SRST */
+ if (link->pmp == 4)
+ link->flags |= ATA_LFLAG_DISABLED;
+ }
}
}
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] usb-storage: ignore ZTE MF 823 card reader in mode 0x1225
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (16 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ata: pmp: add quirk for Marvell 4140 SATA PMP Jiri Slaby
@ 2015-08-10 14:17 ` Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: Calculate old endpoints correctly on device reset Jiri Slaby
` (7 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:17 UTC (permalink / raw)
To: stable; +Cc: Oliver Neukum, Jiri Slaby
From: Oliver Neukum <oneukum@suse.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 5fb2c782f451a4fb9c19c076e2c442839faf0f76 upstream.
This device automatically switches itself to another mode (0x1405)
unless the specific access pattern of Windows is followed in its
initial mode. That makes a dirty unmount of the internal storage
devices inevitable if they are mounted. So the card reader of
such a device should be ignored, lest an unclean removal become
inevitable.
This replaces an earlier patch that ignored all LUNs of this device.
That patch was overly broad.
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Reviewed-by: Lars Melin <larsm17@gmail.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/usb/storage/unusual_devs.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index 00b47646522b..ff273d527b6e 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -2045,6 +2045,18 @@ UNUSUAL_DEV( 0x1908, 0x3335, 0x0200, 0x0200,
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_NO_READ_DISC_INFO ),
+/* Reported by Oliver Neukum <oneukum@suse.com>
+ * This device morphes spontaneously into another device if the access
+ * pattern of Windows isn't followed. Thus writable media would be dirty
+ * if the initial instance is used. So the device is limited to its
+ * virtual CD.
+ * And yes, the concept that BCD goes up to 9 is not heeded */
+UNUSUAL_DEV( 0x19d2, 0x1225, 0x0000, 0xffff,
+ "ZTE,Incorporated",
+ "ZTE WCDMA Technologies MSM",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_SINGLE_LUN ),
+
/* Reported by Sven Geggus <sven-usbst@geggus.net>
* This encrypted pen drive returns bogus data for the initial READ(10).
*/
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] xhci: Calculate old endpoints correctly on device reset
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (17 preceding siblings ...)
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] usb-storage: ignore ZTE MF 823 card reader in mode 0x1225 Jiri Slaby
@ 2015-08-10 14:18 ` Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: report U3 when link is in resume state Jiri Slaby
` (6 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:18 UTC (permalink / raw)
To: stable; +Cc: Brian Campbell, Mathias Nyman, Jiri Slaby
From: Brian Campbell <bacam@z273.org.uk>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 326124a027abc9a7f43f72dc94f6f0f7a55b02b3 upstream.
When resetting a device the number of active TTs may need to be
corrected by xhci_update_tt_active_eps, but the number of old active
endpoints supplied to it was always zero, so the number of TTs and the
bandwidth reserved for them was not updated, and could rise
unnecessarily.
This affected systems using Intel's Patherpoint chipset, which rely on
software bandwidth checking. For example, a Lenovo X230 would lose the
ability to use ports on the docking station after enough suspend/resume
cycles because the bandwidth calculated would rise with every cycle when
a suitable device is attached.
The correct number of active endpoints is calculated in the same way as
in xhci_reserve_bandwidth.
Signed-off-by: Brian Campbell <bacam@z273.org.uk>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/usb/host/xhci.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index e0ccc95c91e2..00686a8c4fa0 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -3423,6 +3423,9 @@ int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev)
return -EINVAL;
}
+ if (virt_dev->tt_info)
+ old_active_eps = virt_dev->tt_info->active_eps;
+
if (virt_dev->udev != udev) {
/* If the virt_dev and the udev does not match, this virt_dev
* may belong to another udev.
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] xhci: report U3 when link is in resume state
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (18 preceding siblings ...)
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: Calculate old endpoints correctly on device reset Jiri Slaby
@ 2015-08-10 14:18 ` Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: prevent bus_suspend if SS port resuming in phase 1 Jiri Slaby
` (5 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:18 UTC (permalink / raw)
To: stable; +Cc: Zhuang Jin Can, Mathias Nyman, Jiri Slaby
From: Zhuang Jin Can <jin.can.zhuang@intel.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 243292a2ad3dc365849b820a64868927168894ac upstream.
xhci_hub_report_usb3_link_state() returns pls as U0 when the link
is in resume state, and this causes usb core to think the link is in
U0 while actually it's in resume state. When usb core transfers
control request on the link, it fails with TRB error as the link
is not ready for transfer.
To fix the issue, report U3 when the link is in resume state, thus
usb core knows the link it's not ready for transfer.
Signed-off-by: Zhuang Jin Can <jin.can.zhuang@intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/usb/host/xhci-hub.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index abb36165515a..86cebec3c5d6 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -480,10 +480,13 @@ static void xhci_hub_report_usb3_link_state(struct xhci_hcd *xhci,
u32 pls = status_reg & PORT_PLS_MASK;
/* resume state is a xHCI internal state.
- * Do not report it to usb core.
+ * Do not report it to usb core, instead, pretend to be U3,
+ * thus usb core knows it's not ready for transfer
*/
- if (pls == XDEV_RESUME)
+ if (pls == XDEV_RESUME) {
+ *status |= USB_SS_PORT_LS_U3;
return;
+ }
/* When the CAS bit is set then warm reset
* should be performed on port
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] xhci: prevent bus_suspend if SS port resuming in phase 1
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (19 preceding siblings ...)
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: report U3 when link is in resume state Jiri Slaby
@ 2015-08-10 14:18 ` Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: do not report PLC when link is in internal resume state Jiri Slaby
` (4 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:18 UTC (permalink / raw)
To: stable; +Cc: Zhuang Jin Can, Mathias Nyman, Jiri Slaby
From: Zhuang Jin Can <jin.can.zhuang@intel.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit fac4271d1126c45ceaceb7f4a336317b771eb121 upstream.
When the link is just waken, it's in Resume state, and driver sets PLS to
U0. This refers to Phase 1. Phase 2 refers to when the link has completed
the transition from Resume state to U0.
With the fix of xhci: report U3 when link is in resume state, it also
exposes an issue that usb3 roothub and controller can suspend right
after phase 1, and this causes a hard hang in controller.
To fix the issue, we need to prevent usb3 bus suspend if any port is
resuming in phase 1.
[merge separate USB2 and USB3 port resume checking to one -Mathias]
Signed-off-by: Zhuang Jin Can <jin.can.zhuang@intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/usb/host/xhci-hub.c | 6 +++---
drivers/usb/host/xhci-ring.c | 3 +++
drivers/usb/host/xhci.h | 1 +
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 86cebec3c5d6..4adc1be24b4a 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -1120,10 +1120,10 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
spin_lock_irqsave(&xhci->lock, flags);
if (hcd->self.root_hub->do_remote_wakeup) {
- if (bus_state->resuming_ports) {
+ if (bus_state->resuming_ports || /* USB2 */
+ bus_state->port_remote_wakeup) { /* USB3 */
spin_unlock_irqrestore(&xhci->lock, flags);
- xhci_dbg(xhci, "suspend failed because "
- "a port is resuming\n");
+ xhci_dbg(xhci, "suspend failed because a port is resuming\n");
return -EBUSY;
}
}
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 07aafa50f453..b16404723fc2 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1707,6 +1707,9 @@ static void handle_port_status(struct xhci_hcd *xhci,
usb_hcd_resume_root_hub(hcd);
}
+ if (hcd->speed == HCD_USB3 && (temp & PORT_PLS_MASK) == XDEV_INACTIVE)
+ bus_state->port_remote_wakeup &= ~(1 << faked_port_index);
+
if ((temp & PORT_PLC) && (temp & PORT_PLS_MASK) == XDEV_RESUME) {
xhci_dbg(xhci, "port resume event for port %d\n", port_id);
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 510e9c0efd18..8686a06d83d4 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -285,6 +285,7 @@ struct xhci_op_regs {
#define XDEV_U0 (0x0 << 5)
#define XDEV_U2 (0x2 << 5)
#define XDEV_U3 (0x3 << 5)
+#define XDEV_INACTIVE (0x6 << 5)
#define XDEV_RESUME (0xf << 5)
/* true: port has power (see HCC_PPC) */
#define PORT_POWER (1 << 9)
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] xhci: do not report PLC when link is in internal resume state
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (20 preceding siblings ...)
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: prevent bus_suspend if SS port resuming in phase 1 Jiri Slaby
@ 2015-08-10 14:18 ` Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] rds: rds_ib_device.refcount overflow Jiri Slaby
` (3 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:18 UTC (permalink / raw)
To: stable; +Cc: Zhuang Jin Can, Mathias Nyman, Jiri Slaby
From: Zhuang Jin Can <jin.can.zhuang@intel.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit aca3a0489ac019b58cf32794d5362bb284cb9b94 upstream.
Port link change with port in resume state should not be
reported to usbcore, as this is an internal state to be
handled by xhci driver. Reporting PLC to usbcore may
cause usbcore clearing PLC first and port change event irq
won't be generated.
Signed-off-by: Zhuang Jin Can <jin.can.zhuang@intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/usb/host/xhci-hub.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 4adc1be24b4a..55b3aa33bc06 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -586,7 +586,14 @@ static u32 xhci_get_port_status(struct usb_hcd *hcd,
status |= USB_PORT_STAT_C_RESET << 16;
/* USB3.0 only */
if (hcd->speed == HCD_USB3) {
- if ((raw_port_status & PORT_PLC))
+ /* Port link change with port in resume state should not be
+ * reported to usbcore, as this is an internal state to be
+ * handled by xhci driver. Reporting PLC to usbcore may
+ * cause usbcore clearing PLC first and port change event
+ * irq won't be generated.
+ */
+ if ((raw_port_status & PORT_PLC) &&
+ (raw_port_status & PORT_PLS_MASK) != XDEV_RESUME)
status |= USB_PORT_STAT_C_LINK_STATE << 16;
if ((raw_port_status & PORT_WRC))
status |= USB_PORT_STAT_C_BH_RESET << 16;
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] rds: rds_ib_device.refcount overflow
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (21 preceding siblings ...)
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: do not report PLC when link is in internal resume state Jiri Slaby
@ 2015-08-10 14:18 ` Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] vhost: actually track log eventfd file Jiri Slaby
` (2 subsequent siblings)
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:18 UTC (permalink / raw)
To: stable; +Cc: Wengang Wang, Doug Ledford, Jiri Slaby
From: Wengang Wang <wen.gang.wang@oracle.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 4fabb59449aa44a585b3603ffdadd4c5f4d0c033 upstream.
Fixes: 3e0249f9c05c ("RDS/IB: add refcount tracking to struct rds_ib_device")
There lacks a dropping on rds_ib_device.refcount in case rds_ib_alloc_fmr
failed(mr pool running out). this lead to the refcount overflow.
A complain in line 117(see following) is seen. From vmcore:
s_ib_rdma_mr_pool_depleted is 2147485544 and rds_ibdev->refcount is -2147475448.
That is the evidence the mr pool is used up. so rds_ib_alloc_fmr is very likely
to return ERR_PTR(-EAGAIN).
115 void rds_ib_dev_put(struct rds_ib_device *rds_ibdev)
116 {
117 BUG_ON(atomic_read(&rds_ibdev->refcount) <= 0);
118 if (atomic_dec_and_test(&rds_ibdev->refcount))
119 queue_work(rds_wq, &rds_ibdev->free_work);
120 }
fix is to drop refcount when rds_ib_alloc_fmr failed.
Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com>
Reviewed-by: Haggai Eran <haggaie@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
net/rds/ib_rdma.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/rds/ib_rdma.c b/net/rds/ib_rdma.c
index e8fdb172adbb..a985158d95d5 100644
--- a/net/rds/ib_rdma.c
+++ b/net/rds/ib_rdma.c
@@ -759,8 +759,10 @@ void *rds_ib_get_mr(struct scatterlist *sg, unsigned long nents,
}
ibmr = rds_ib_alloc_fmr(rds_ibdev);
- if (IS_ERR(ibmr))
+ if (IS_ERR(ibmr)) {
+ rds_ib_dev_put(rds_ibdev);
return ibmr;
+ }
ret = rds_ib_map_fmr(rds_ibdev, ibmr, sg, nents);
if (ret == 0)
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] vhost: actually track log eventfd file
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (22 preceding siblings ...)
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] rds: rds_ib_device.refcount overflow Jiri Slaby
@ 2015-08-10 14:18 ` Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] iscsi-target: Fix use-after-free during TPG session shutdown Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] iscsi-target: Fix iser explicit logout TX kthread leak Jiri Slaby
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:18 UTC (permalink / raw)
To: stable; +Cc: Marc-André Lureau, Michael S. Tsirkin, Jiri Slaby
From: Marc-André Lureau <marcandre.lureau@redhat.com>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 7932c0bd7740f4cd2aa168d3ce0199e7af7d72d5 upstream.
While reviewing vhost log code, I found out that log_file is never
set. Note: I haven't tested the change (QEMU doesn't use LOG_FD yet).
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/vhost/vhost.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 69068e0d8f31..384bcc8ed7ad 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -878,6 +878,7 @@ long vhost_dev_ioctl(struct vhost_dev *d, unsigned int ioctl, void __user *argp)
}
if (eventfp != d->log_file) {
filep = d->log_file;
+ d->log_file = eventfp;
ctx = d->log_ctx;
d->log_ctx = eventfp ?
eventfd_ctx_fileget(eventfp) : NULL;
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] iscsi-target: Fix use-after-free during TPG session shutdown
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (23 preceding siblings ...)
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] vhost: actually track log eventfd file Jiri Slaby
@ 2015-08-10 14:18 ` Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] iscsi-target: Fix iser explicit logout TX kthread leak Jiri Slaby
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:18 UTC (permalink / raw)
To: stable; +Cc: Nicholas Bellinger, Sunilkumar Nadumuttlu, Jiri Slaby
From: Nicholas Bellinger <nab@linux-iscsi.org>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 417c20a9bdd1e876384127cf096d8ae8b559066c upstream.
This patch fixes a use-after-free bug in iscsit_release_sessions_for_tpg()
where se_portal_group->session_lock was incorrectly released/re-acquired
while walking the active se_portal_group->tpg_sess_list.
The can result in a NULL pointer dereference when iscsit_close_session()
shutdown happens in the normal path asynchronously to this code, causing
a bogus dereference of an already freed list entry to occur.
To address this bug, walk the session list checking for the same state
as before, but move entries to a local list to avoid dropping the lock
while walking the active list.
As before, signal using iscsi_session->session_restatement=1 for those
list entries to be released locally by iscsit_free_session() code.
Reported-by: Sunilkumar Nadumuttlu <sjn@datera.io>
Cc: Sunilkumar Nadumuttlu <sjn@datera.io>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/target/iscsi/iscsi_target.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
index 8ac1800eef06..13af385fc859 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -4707,6 +4707,7 @@ int iscsit_release_sessions_for_tpg(struct iscsi_portal_group *tpg, int force)
struct iscsi_session *sess;
struct se_portal_group *se_tpg = &tpg->tpg_se_tpg;
struct se_session *se_sess, *se_sess_tmp;
+ LIST_HEAD(free_list);
int session_count = 0;
spin_lock_bh(&se_tpg->session_lock);
@@ -4728,14 +4729,17 @@ int iscsit_release_sessions_for_tpg(struct iscsi_portal_group *tpg, int force)
}
atomic_set(&sess->session_reinstatement, 1);
spin_unlock(&sess->conn_lock);
- spin_unlock_bh(&se_tpg->session_lock);
- iscsit_free_session(sess);
- spin_lock_bh(&se_tpg->session_lock);
+ list_move_tail(&se_sess->sess_list, &free_list);
+ }
+ spin_unlock_bh(&se_tpg->session_lock);
+ list_for_each_entry_safe(se_sess, se_sess_tmp, &free_list, sess_list) {
+ sess = (struct iscsi_session *)se_sess->fabric_sess_ptr;
+
+ iscsit_free_session(sess);
session_count++;
}
- spin_unlock_bh(&se_tpg->session_lock);
pr_debug("Released %d iSCSI Session(s) from Target Portal"
" Group: %hu\n", session_count, tpg->tpgt);
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [patch added to the 3.12 stable tree] iscsi-target: Fix iser explicit logout TX kthread leak
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
` (24 preceding siblings ...)
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] iscsi-target: Fix use-after-free during TPG session shutdown Jiri Slaby
@ 2015-08-10 14:18 ` Jiri Slaby
25 siblings, 0 replies; 30+ messages in thread
From: Jiri Slaby @ 2015-08-10 14:18 UTC (permalink / raw)
To: stable; +Cc: Nicholas Bellinger, Sagi Grimberg, Jiri Slaby
From: Nicholas Bellinger <nab@linux-iscsi.org>
This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.
===============
commit 007d038bdf95ccfe2491d0078be54040d110fd06 upstream.
This patch fixes a regression introduced with the following commit
in v4.0-rc1 code, where an explicit iser-target logout would result
in ->tx_thread_active being incorrectly cleared by the logout post
handler, and subsequent TX kthread leak:
commit 88dcd2dab5c23b1c9cfc396246d8f476c872f0ca
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date: Thu Feb 26 22:19:15 2015 -0800
iscsi-target: Convert iscsi_thread_set usage to kthread.h
To address this bug, change iscsit_logout_post_handler_closesession()
and iscsit_logout_post_handler_samecid() to only cmpxchg() on
->tx_thread_active for traditional iscsi/tcp connections.
This is required because iscsi/tcp connections are invoking logout
post handler logic directly from TX kthread context, while iser
connections are invoking logout post handler logic from a seperate
workqueue context.
Cc: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/target/iscsi/iscsi_target.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
index 13af385fc859..60e06fb049ef 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -4474,7 +4474,18 @@ static void iscsit_logout_post_handler_closesession(
struct iscsi_conn *conn)
{
struct iscsi_session *sess = conn->sess;
- int sleep = cmpxchg(&conn->tx_thread_active, true, false);
+ int sleep = 1;
+ /*
+ * Traditional iscsi/tcp will invoke this logic from TX thread
+ * context during session logout, so clear tx_thread_active and
+ * sleep if iscsit_close_connection() has not already occured.
+ *
+ * Since iser-target invokes this logic from it's own workqueue,
+ * always sleep waiting for RX/TX thread shutdown to complete
+ * within iscsit_close_connection().
+ */
+ if (conn->conn_transport->transport_type == ISCSI_TCP)
+ sleep = cmpxchg(&conn->tx_thread_active, true, false);
atomic_set(&conn->conn_logout_remove, 0);
complete(&conn->conn_logout_comp);
@@ -4488,7 +4499,10 @@ static void iscsit_logout_post_handler_closesession(
static void iscsit_logout_post_handler_samecid(
struct iscsi_conn *conn)
{
- int sleep = cmpxchg(&conn->tx_thread_active, true, false);
+ int sleep = 1;
+
+ if (conn->conn_transport->transport_type == ISCSI_TCP)
+ sleep = cmpxchg(&conn->tx_thread_active, true, false);
atomic_set(&conn->conn_logout_remove, 0);
complete(&conn->conn_logout_comp);
--
2.5.0
^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [patch added to the 3.12 stable tree] mmc: sdhci-esdhc: Make 8BIT bus work
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mmc: sdhci-esdhc: Make 8BIT bus work Jiri Slaby
@ 2015-08-10 15:27 ` Joakim Tjernlund
2015-08-11 7:16 ` Jiri Slaby
0 siblings, 1 reply; 30+ messages in thread
From: Joakim Tjernlund @ 2015-08-10 15:27 UTC (permalink / raw)
To: stable@vger.kernel.org, jslaby@suse.cz; +Cc: ulf.hansson@linaro.org
On Mon, 2015-08-10 at 16:17 +0200, Jiri Slaby wrote:
> From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
>
> This patch has been added to the 3.12 stable tree. If you have any
> objections, please let us know.
I think 8BIT support was added after 3.12 and if so I do not think this
is appropriate for 3.12
Jocke
>
> ===============
>
> commit 8e91125ff3f57f15c6568e2a6d32743b3f7815e4 upstream.
>
> Support for 8BIT bus with was added some time ago to sdhci-esdhc but
> then missed to remove the 8BIT from the reserved bit mask which made
> 8BIT non functional.
>
> Fixes: 66b50a00992d ("mmc: esdhc: Add support for 8-bit bus width and..")
> Signed-off-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> ---
> drivers/mmc/host/sdhci-esdhc.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-esdhc.h b/drivers/mmc/host/sdhci-esdhc.h
> index a2a06420e463..ebff71092743 100644
> --- a/drivers/mmc/host/sdhci-esdhc.h
> +++ b/drivers/mmc/host/sdhci-esdhc.h
> @@ -47,7 +47,7 @@
> #define ESDHC_DMA_SYSCTL 0x40c
> #define ESDHC_DMA_SNOOP 0x00000040
>
> -#define ESDHC_HOST_CONTROL_RES 0x05
> +#define ESDHC_HOST_CONTROL_RES 0x01
>
> static inline void esdhc_set_clock(struct sdhci_host *host, unsigned int clock,
> unsigned int host_clock)
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [patch added to the 3.12 stable tree] mmc: sdhci-esdhc: Make 8BIT bus work
2015-08-10 15:27 ` Joakim Tjernlund
@ 2015-08-11 7:16 ` Jiri Slaby
2015-08-11 8:26 ` Joakim Tjernlund
0 siblings, 1 reply; 30+ messages in thread
From: Jiri Slaby @ 2015-08-11 7:16 UTC (permalink / raw)
To: Joakim Tjernlund, stable@vger.kernel.org; +Cc: ulf.hansson@linaro.org, Greg KH
On 08/10/2015, 05:27 PM, Joakim Tjernlund wrote:
> On Mon, 2015-08-10 at 16:17 +0200, Jiri Slaby wrote:
>> From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
>>
>> This patch has been added to the 3.12 stable tree. If you have any
>> objections, please let us know.
>
> I think 8BIT support was added after 3.12 and if so I do not think this
> is appropriate for 3.12
It's in 3.12 already:
$ git describe --exact-match --contains 66b50a00992d
v3.11-rc1~50^2~5
But 3.10 does not need the patch. 3.10.86 was released with that though.
Is it worth reverting or can it cause any havoc to the system?
>> ===============
>>
>> commit 8e91125ff3f57f15c6568e2a6d32743b3f7815e4 upstream.
>>
>> Support for 8BIT bus with was added some time ago to sdhci-esdhc but
>> then missed to remove the 8BIT from the reserved bit mask which made
>> 8BIT non functional.
>>
>> Fixes: 66b50a00992d ("mmc: esdhc: Add support for 8-bit bus width and..")
>> Signed-off-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
>> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
>> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
>> ---
>> drivers/mmc/host/sdhci-esdhc.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/sdhci-esdhc.h b/drivers/mmc/host/sdhci-esdhc.h
>> index a2a06420e463..ebff71092743 100644
>> --- a/drivers/mmc/host/sdhci-esdhc.h
>> +++ b/drivers/mmc/host/sdhci-esdhc.h
>> @@ -47,7 +47,7 @@
>> #define ESDHC_DMA_SYSCTL 0x40c
>> #define ESDHC_DMA_SNOOP 0x00000040
>>
>> -#define ESDHC_HOST_CONTROL_RES 0x05
>> +#define ESDHC_HOST_CONTROL_RES 0x01
>>
>> static inline void esdhc_set_clock(struct sdhci_host *host, unsigned int clock,
>> unsigned int host_clock)
thanks,
--
js
suse labs
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [patch added to the 3.12 stable tree] mmc: sdhci-esdhc: Make 8BIT bus work
2015-08-11 7:16 ` Jiri Slaby
@ 2015-08-11 8:26 ` Joakim Tjernlund
0 siblings, 0 replies; 30+ messages in thread
From: Joakim Tjernlund @ 2015-08-11 8:26 UTC (permalink / raw)
To: stable@vger.kernel.org, jslaby@suse.cz
Cc: ulf.hansson@linaro.org, gregkh@linuxfoundation.org
On Tue, 2015-08-11 at 09:16 +0200, Jiri Slaby wrote:
> On 08/10/2015, 05:27 PM, Joakim Tjernlund wrote:
> > On Mon, 2015-08-10 at 16:17 +0200, Jiri Slaby wrote:
> > > From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
> > >
> > > This patch has been added to the 3.12 stable tree. If you have any
> > > objections, please let us know.
> >
> > I think 8BIT support was added after 3.12 and if so I do not think this
> > is appropriate for 3.12
>
> It's in 3.12 already:
> $ git describe --exact-match --contains 66b50a00992d
> v3.11-rc1~50^2~5
I see, thanks
>
> But 3.10 does not need the patch. 3.10.86 was released with that though.
> Is it worth reverting or can it cause any havoc to the system?
I am not familiar with 3.10 but I think it is a good chance that the patch is
harmless.
Jocke
^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2015-08-11 8:26 UTC | newest]
Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-10 14:17 [patch added to the 3.12 stable tree] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mm: avoid setting up anonymous pages into file mapping Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] freeing unlinked file indefinitely delayed Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] s390/sclp: clear upper register halves in _sclp_print_early Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ARC: make sure instruction_pointer() returns unsigned value Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4 Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: usb-audio: add dB range mapping for some devices Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ALSA: hda - Fix MacBook Pro 5,2 quirk Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] st: null pointer dereference panic caused by use after kref_put by st_open Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mac80211: clear subdir_stations when removing debugfs Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mmc: sdhci-esdhc: Make 8BIT bus work Jiri Slaby
2015-08-10 15:27 ` Joakim Tjernlund
2015-08-11 7:16 ` Jiri Slaby
2015-08-11 8:26 ` Joakim Tjernlund
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] mmc: sdhci-pxav3: fix platform_data is not initialized Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] md/raid1: fix test for 'was read error from last working device' Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] tile: use free_bootmem_late() for initrd Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] blkcg: fix gendisk reference leak in blkg_conf_prep() Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] ata: pmp: add quirk for Marvell 4140 SATA PMP Jiri Slaby
2015-08-10 14:17 ` [patch added to the 3.12 stable tree] usb-storage: ignore ZTE MF 823 card reader in mode 0x1225 Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: Calculate old endpoints correctly on device reset Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: report U3 when link is in resume state Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: prevent bus_suspend if SS port resuming in phase 1 Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] xhci: do not report PLC when link is in internal resume state Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] rds: rds_ib_device.refcount overflow Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] vhost: actually track log eventfd file Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] iscsi-target: Fix use-after-free during TPG session shutdown Jiri Slaby
2015-08-10 14:18 ` [patch added to the 3.12 stable tree] iscsi-target: Fix iser explicit logout TX kthread leak Jiri Slaby
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.