[PATCH] UBI: Fix PEB leak in wear_leveling_worker()

2013-08-19 Thread Richard Weinberger
get_peb_for_wl() removes the PEB from the free list.
If the WL subsystem detects that no wear leveling is needed
it cancels the operation and drops the gained PEB.
In this case we have to put the PEB back into the free list.

This issue was introduced with commit ed4b7021c
(UBI: remove PEB from free tree in get_peb_for_wl()).

Cc: stable@vger.kernel.org # 3.7.x
Signed-off-by: Richard Weinberger rich...@nod.at
---
 drivers/mtd/ubi/wl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index 5df49d3..c95bfb1 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -1069,6 +1069,9 @@ static int wear_leveling_worker(struct ubi_device *ubi, 
struct ubi_work *wrk,
if (!(e2-ec - e1-ec = UBI_WL_THRESHOLD)) {
dbg_wl(no WL needed: min used EC %d, max free EC %d,
   e1-ec, e2-ec);
+
+   /* Give the unused PEB back */
+   wl_tree_add(e2, ubi-free);
goto out_cancel;
}
self_check_in_wl_tree(ubi, e1, ubi-used);
-- 
1.8.1.4

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 3.11-rc6 genetlink locking fix offends lockdep

2013-08-19 Thread Johannes Berg

 3.11-rc6's commit 58ad436fcf49 (genetlink: fix family dump race)
 gives me the lockdep trace below at startup.

Hmm. Yes, I see now how this happens, not sure why I didn't run into it.

The problem is that genl_family_rcv_msg() is called with the genl_lock
held, and then calls netlink_dump_start() with it held, creating a
genl_lock-cb_mutex dependency, but obviously the dump continuation is
the other way around.

We could use the semaphore instead, I believe, but I don't really
understand the mutex vs. semaphore well enough to be sure that's
correct.

johannes


diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index f85f8a2..6cfa646 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -792,7 +792,7 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct 
netlink_callback *cb)
bool need_locking = chains_to_skip || fams_to_skip;
 
if (need_locking)
-   genl_lock();
+   down_read(cb_lock);
 
for (i = chains_to_skip; i  GENL_FAM_TAB_SIZE; i++) {
n = 0;
@@ -815,7 +815,7 @@ errout:
cb-args[1] = n;
 
if (need_locking)
-   genl_unlock();
+   up_read(cb_lock);
 
return skb-len;
 }


--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] [BUGFIX] crash/ioapic: Prevent crash_kexec() from deadlocking of ioapic_lock

2013-08-19 Thread Yoshihiro YUNOMAE
Prevent crash_kexec() from deadlocking of ioapic_lock. When crash_kexec()
is executed on a cpu, the cpu will get ioapic_lock in disable_IO_APIC().
So if the cpu gets NMI while locking ioapic_lock, a deadlock wiil happen.
In this patch, ioapic_lock is initialized before disable_IO_APIC().

To confirm this deadlocking, you'll set up as follows:

1. Add mdelay(1000) after raw_spin_lock_irqsave() in
   native_ioapic_set_affinity()@arch/x86/kernel/apic/io_apic.c

   Although the deadlocking can occur without this modification, it will
  increase the potential of the deadlocking problem.

2. Build and install the kernel

3. Set up the OS which will run panic() and kexec when NMI is injected
# echo kernel.unknown_nmi_panic=1  /etc/sysctl.conf
# vim /etc/default/grub
  add nmi_watchdog=0 crashkernel=256M in GRUB_CMDLINE_LINUX line
# grub2-mkconfig

4. Reboot the OS

5. Run following command for each vcpu on the guest
# while true; do echo CPU num  /proc/irq/IO-APIC-edge or 
IO-APIC-fasteoi/smp_affinitity; done;
   By running this command, cpus will get ioapic_lock for setting affinity.

6. Inject NMI (push a dump button or execute 'virsh inject-nmi domain' if you
   use VM)
   After injecting NMI, panic() is called in an nmi-handler context.
   Then, kexec will normally run in panic(), but the operation will be stopped
   by deadlock of ioapic_lock in crash_kexec()-machine_crash_shutdown()-
   native_machine_crash_shutdown()-disable_IO_APIC()-clear_IO_APIC()-
   clear_IO_APIC_pin()-ioapic_read_entry().

Signed-off-by: Yoshihiro YUNOMAE yoshihiro.yunomae...@hitachi.com
Cc: Thomas Gleixner t...@linutronix.de
Cc: Ingo Molnar mi...@redhat.com
Cc: H. Peter Anvin h...@zytor.com
Cc: x...@kernel.org
Cc: Andrew Morton a...@linux-foundation.org
Cc: Andi Kleen a...@linux.intel.com
Cc: Seiji Aguchi seiji.agu...@hds.com
Cc: Konrad Rzeszutek Wilk konrad.w...@oracle.com
Cc: Sebastian Andrzej Siewior sebast...@breakpoint.cc
Cc: Joerg Roedel j...@8bytes.org
Cc: Zhang Yanfei zhangyan...@cn.fujitsu.com
Cc: Eric W. Biederman ebied...@xmission.com
Cc: Gleb Natapov g...@redhat.com
Cc: Marcelo Tosatti mtosa...@redhat.com
Cc: linux-ker...@vger.kernel.org
Cc: stable@vger.kernel.org
---
 arch/x86/include/asm/apic.h|2 ++
 arch/x86/kernel/apic/io_apic.c |5 +
 arch/x86/kernel/crash.c|4 
 3 files changed, 11 insertions(+)

diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index f8119b5..ddb06af 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -715,4 +715,6 @@ static inline void exiting_ack_irq(void)
ack_APIC_irq();
 }
 
+extern void ioapic_lock_init(void);
+
 #endif /* _ASM_X86_APIC_H */
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 9ed796c..2816c07 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1534,6 +1534,11 @@ void intel_ir_io_apic_print_entries(unsigned int apic,
}
 }
 
+void ioapic_lock_init(void)
+{
+   raw_spin_lock_init(ioapic_lock);
+}
+
 __apicdebuginit(void) print_IO_APIC(int ioapic_idx)
 {
union IO_APIC_reg_00 reg_00;
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index 74467fe..ea039d5 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -129,6 +129,10 @@ void native_machine_crash_shutdown(struct pt_regs *regs)
 
lapic_shutdown();
 #if defined(CONFIG_X86_IO_APIC)
+   /*
+* Prevent crash_kexec() from deadlocking of ioapic_lock.
+*/
+   ioapic_lock_init();
disable_IO_APIC();
 #endif
 #ifdef CONFIG_HPET_TIMER

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] mac80211: don't wait for TX status forever

2013-08-19 Thread Luciano Coelho
From: Johannes Berg johannes.b...@intel.com

TX status notification can get lost, or the frames could
get stuck on the queue, so don't wait for the callback
from the driver forever and instead time out after half
a second.

Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg johannes.b...@intel.com
(cherry picked from commit cb236d2d713cff83d024a82b836757d9e2b50715)

Conflicts:
net/mac80211/mlme.c

Signed-off-by: Luciano Coelho luciano.coe...@intel.com
---
 net/mac80211/mlme.c |   15 ---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 741448b..940ea7d 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -31,10 +31,12 @@
 #include led.h
 
 #define IEEE80211_AUTH_TIMEOUT (HZ / 5)
+#define IEEE80211_AUTH_TIMEOUT_LONG(HZ / 2)
 #define IEEE80211_AUTH_TIMEOUT_SHORT   (HZ / 10)
 #define IEEE80211_AUTH_MAX_TRIES   3
 #define IEEE80211_AUTH_WAIT_ASSOC  (HZ * 5)
 #define IEEE80211_ASSOC_TIMEOUT(HZ / 5)
+#define IEEE80211_ASSOC_TIMEOUT_LONG   (HZ / 2)
 #define IEEE80211_ASSOC_TIMEOUT_SHORT  (HZ / 10)
 #define IEEE80211_ASSOC_MAX_TRIES  3
 
@@ -3461,10 +3463,13 @@ static int ieee80211_probe_auth(struct 
ieee80211_sub_if_data *sdata)
 
if (tx_flags == 0) {
auth_data-timeout = jiffies + IEEE80211_AUTH_TIMEOUT;
-   ifmgd-auth_data-timeout_started = true;
+   auth_data-timeout_started = true;
run_again(ifmgd, auth_data-timeout);
} else {
-   auth_data-timeout_started = false;
+   auth_data-timeout =
+   round_jiffies_up(jiffies + IEEE80211_AUTH_TIMEOUT_LONG);
+   auth_data-timeout_started = true;
+   run_again(ifmgd, auth_data-timeout);
}
 
return 0;
@@ -3501,7 +3506,11 @@ static int ieee80211_do_assoc(struct 
ieee80211_sub_if_data *sdata)
assoc_data-timeout_started = true;
run_again(sdata-u.mgd, assoc_data-timeout);
} else {
-   assoc_data-timeout_started = false;
+   assoc_data-timeout =
+   round_jiffies_up(jiffies +
+IEEE80211_ASSOC_TIMEOUT_LONG);
+   assoc_data-timeout_started = true;
+   run_again(sdata-u.mgd, assoc_data-timeout);
}
 
return 0;
-- 
1.7.10.4

-
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] ARC: gdbserver breakage in Big-Endian configuration #1

2013-08-19 Thread Vineet Gupta
Hi Greg,

I'd posted these patches for stable backport. Do I need to do anything more to 
get them included.

https://patchwork.kernel.org/patch/2841153/  [1/2] ARC: gdbserver breakage in 
Big-Endian configuration #1https://patchwork.kernel.org/patch/2841153/]
https://patchwork.kernel.org/patch/2841158/  [2/2] ARC: gdbserver breakage in 
Big-Endian configuration #2https://patchwork.kernel.org/patch/2841158/

Thx,
-Vineet


On 08/08/2013 07:23 PM, Vineet Gupta wrote:

Exception handling keeps additional state (whether exception was Trap
and if it was due to a breakpoint) in pt_regs-event, a bitfield member

unsigned long orig_r8:16, event:16;

A bitfield esentially has an offset and a length. What I wasn't
aware of was that, bitfields in a union loose the offset attribute
and all of them are laid out at offset 0.

This obviously means that both @event and @orig_r8 will be incorrectly
referenced to at same 0 offset by C generated code which is
certainly wrong, not because both members are accessed, but because asm
code updates it at different address.

In Little Endian config, @event is at offset 0 and @orig_r8 (not
actively used at all) clashing with it is OK. However in Big Endian
config,

ST 0x_, [addr]

writes 0x to @event (offset 2 in memory) while C code references
it from 0.

Needless to say, this causes ptrace machinery to not detect the breakpoint
scenario (and incorrect stop_pc returned to gdbserver).

--8---
Thi issue is already fixed in mainline 3.11 kernel as part of commit:
502a0c775c7f0a ARC: pt_regs update #5

However that patch has lot more changes than I would like backporting,
hence this seperate change.
--8---

Reported-by: Noam Camus no...@ezchip.commailto:no...@ezchip.com
Cc: stable@vger.kernel.orgmailto:stable@vger.kernel.org # [3.9 and 3.10 
only]
Tested-by: Anton Kolesov akole...@synopsys.commailto:akole...@synopsys.com
Signed-off-by: Vineet Gupta vgu...@synopsys.commailto:vgu...@synopsys.com
---
 arch/arc/include/asm/ptrace.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arc/include/asm/ptrace.h b/arch/arc/include/asm/ptrace.h
index 6179de7..2046a89 100644
--- a/arch/arc/include/asm/ptrace.h
+++ b/arch/arc/include/asm/ptrace.h
@@ -52,12 +52,14 @@ struct pt_regs {

/*to distinguish bet excp, syscall, irq */
union {
+   struct {
 #ifdef CONFIG_CPU_BIG_ENDIAN
/* so that assembly code is same for LE/BE */
unsigned long orig_r8:16, event:16;
 #else
unsigned long event:16, orig_r8:16;
 #endif
+   };
long orig_r8_word;
};
 };


--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] [BUGFIX] crash/ioapic: Prevent crash_kexec() from deadlocking of ioapic_lock

2013-08-19 Thread Ingo Molnar

* Yoshihiro YUNOMAE yoshihiro.yunomae...@hitachi.com wrote:

 Prevent crash_kexec() from deadlocking of ioapic_lock. 

s/of/on

 When crash_kexec() is executed on a cpu, the cpu will get 
 ioapic_lock in disable_IO_APIC(). So if the cpu gets NMI 
 while locking ioapic_lock, a deadlock wiil happen. In 

s/will

 this patch, ioapic_lock is initialized before 
 disable_IO_APIC().
 
 To confirm this deadlocking, you'll set up as follows:

s/deadlocking/deadlock

 1. Add mdelay(1000) after raw_spin_lock_irqsave() in
native_ioapic_set_affinity()@arch/x86/kernel/apic/io_apic.c
 
Although the deadlocking can occur without this modification, it will
   increase the potential of the deadlocking problem.

s/deadlocking/deadlock

 
 2. Build and install the kernel
 
 3. Set up the OS which will run panic() and kexec when NMI is injected
 # echo kernel.unknown_nmi_panic=1  /etc/sysctl.conf
 # vim /etc/default/grub
   add nmi_watchdog=0 crashkernel=256M in GRUB_CMDLINE_LINUX line
 # grub2-mkconfig
 
 4. Reboot the OS
 
 5. Run following command for each vcpu on the guest
 # while true; do echo CPU num  /proc/irq/IO-APIC-edge or 
 IO-APIC-fasteoi/smp_affinitity; done;
By running this command, cpus will get ioapic_lock for setting affinity.
 
 6. Inject NMI (push a dump button or execute 'virsh inject-nmi domain' if 
 you
use VM)
After injecting NMI, panic() is called in an nmi-handler context.
Then, kexec will normally run in panic(), but the operation will be stopped
by deadlock of ioapic_lock in crash_kexec()-machine_crash_shutdown()-

s/of/on

native_machine_crash_shutdown()-disable_IO_APIC()-clear_IO_APIC()-
clear_IO_APIC_pin()-ioapic_read_entry().

I suppose we could do this patch if it's a common 
occurance.

A few minor details need fixing:

 
 Signed-off-by: Yoshihiro YUNOMAE yoshihiro.yunomae...@hitachi.com
 Cc: Thomas Gleixner t...@linutronix.de
 Cc: Ingo Molnar mi...@redhat.com
 Cc: H. Peter Anvin h...@zytor.com
 Cc: x...@kernel.org
 Cc: Andrew Morton a...@linux-foundation.org
 Cc: Andi Kleen a...@linux.intel.com
 Cc: Seiji Aguchi seiji.agu...@hds.com
 Cc: Konrad Rzeszutek Wilk konrad.w...@oracle.com
 Cc: Sebastian Andrzej Siewior sebast...@breakpoint.cc
 Cc: Joerg Roedel j...@8bytes.org
 Cc: Zhang Yanfei zhangyan...@cn.fujitsu.com
 Cc: Eric W. Biederman ebied...@xmission.com
 Cc: Gleb Natapov g...@redhat.com
 Cc: Marcelo Tosatti mtosa...@redhat.com
 Cc: linux-ker...@vger.kernel.org
 Cc: stable@vger.kernel.org
 ---
  arch/x86/include/asm/apic.h|2 ++
  arch/x86/kernel/apic/io_apic.c |5 +
  arch/x86/kernel/crash.c|4 
  3 files changed, 11 insertions(+)
 
 diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
 index f8119b5..ddb06af 100644
 --- a/arch/x86/include/asm/apic.h
 +++ b/arch/x86/include/asm/apic.h
 @@ -715,4 +715,6 @@ static inline void exiting_ack_irq(void)
   ack_APIC_irq();
  }
  
 +extern void ioapic_lock_init(void);
 +
  #endif /* _ASM_X86_APIC_H */
 diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
 index 9ed796c..2816c07 100644
 --- a/arch/x86/kernel/apic/io_apic.c
 +++ b/arch/x86/kernel/apic/io_apic.c
 @@ -1534,6 +1534,11 @@ void intel_ir_io_apic_print_entries(unsigned int apic,
   }
  }
  
 +void ioapic_lock_init(void)
 +{
 + raw_spin_lock_init(ioapic_lock);
 +}

Please name this ioapic_zap_locks() to make clear that this 
is crash handling related.

 +
  __apicdebuginit(void) print_IO_APIC(int ioapic_idx)
  {
   union IO_APIC_reg_00 reg_00;
 diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
 index 74467fe..ea039d5 100644
 --- a/arch/x86/kernel/crash.c
 +++ b/arch/x86/kernel/crash.c
 @@ -129,6 +129,10 @@ void native_machine_crash_shutdown(struct pt_regs *regs)
  
   lapic_shutdown();
  #if defined(CONFIG_X86_IO_APIC)

Please enhance this #ifdef while at it.

 + /*
 +  * Prevent crash_kexec() from deadlocking of ioapic_lock.
 +  */

s/of/on.

Also, single-line comment can go /* here */.

 + ioapic_lock_init();
   disable_IO_APIC();
  #endif
  #ifdef CONFIG_HPET_TIMER
 

Thanks,

Ingo
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 3.11-rc6 genetlink locking fix offends lockdep

2013-08-19 Thread Ding Tianhong
On 2013/8/19 16:00, Johannes Berg wrote:
 
 3.11-rc6's commit 58ad436fcf49 (genetlink: fix family dump race)
 gives me the lockdep trace below at startup.
 
 Hmm. Yes, I see now how this happens, not sure why I didn't run into it.
 
 The problem is that genl_family_rcv_msg() is called with the genl_lock
 held, and then calls netlink_dump_start() with it held, creating a
 genl_lock-cb_mutex dependency, but obviously the dump continuation is
 the other way around.
 
 We could use the semaphore instead, I believe, but I don't really
 understand the mutex vs. semaphore well enough to be sure that's
 correct.
 
 johannes
 
it is useless, the logic need to modify or otherwise it will still call lockdep 
trace.
maybe i could send a patch for it, if you wish.

 
 diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
 index f85f8a2..6cfa646 100644
 --- a/net/netlink/genetlink.c
 +++ b/net/netlink/genetlink.c
 @@ -792,7 +792,7 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct 
 netlink_callback *cb)
   bool need_locking = chains_to_skip || fams_to_skip;
  
   if (need_locking)
 - genl_lock();
 + down_read(cb_lock);
  
   for (i = chains_to_skip; i  GENL_FAM_TAB_SIZE; i++) {
   n = 0;
 @@ -815,7 +815,7 @@ errout:
   cb-args[1] = n;
  
   if (need_locking)
 - genl_unlock();
 + up_read(cb_lock);
  
   return skb-len;
  }
 
 
 --
 To unsubscribe from this list: send the line unsubscribe netdev in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
 .
 


--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] USB: mos7720: fix big-endian control requests

2013-08-19 Thread Johan Hovold
Fix endianess bugs in parallel-port code which caused corrupt
control-requests to be issued on big-endian machines.

Reported-by: kbuild test robot fengguang...@intel.com
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold jhov...@gmail.com
---

Here's another endianess fix detected by sparse after a recent change to these
lines which reproduced the endianess bugs.

Thanks,
Johan


 drivers/usb/serial/mos7720.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/serial/mos7720.c b/drivers/usb/serial/mos7720.c
index b013001..c724ed5 100644
--- a/drivers/usb/serial/mos7720.c
+++ b/drivers/usb/serial/mos7720.c
@@ -382,8 +382,8 @@ static int write_parport_reg_nonblock(struct 
mos7715_parport *mos_parport,
}
urbtrack-setup-bRequestType = (__u8)0x40;
urbtrack-setup-bRequest = (__u8)0x0e;
-   urbtrack-setup-wValue = get_reg_value(reg, dummy);
-   urbtrack-setup-wIndex = get_reg_index(reg);
+   urbtrack-setup-wValue = cpu_to_le16(get_reg_value(reg, dummy));
+   urbtrack-setup-wIndex = cpu_to_le16(get_reg_index(reg));
urbtrack-setup-wLength = 0;
usb_fill_control_urb(urbtrack-urb, usbdev,
 usb_sndctrlpipe(usbdev, 0),
-- 
1.8.3.2

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 3.11-rc6 genetlink locking fix offends lockdep

2013-08-19 Thread Johannes Berg
On Mon, 2013-08-19 at 19:00 +0800, Ding Tianhong wrote:
 On 2013/8/19 16:00, Johannes Berg wrote:
  
  3.11-rc6's commit 58ad436fcf49 (genetlink: fix family dump race)
  gives me the lockdep trace below at startup.
  
  Hmm. Yes, I see now how this happens, not sure why I didn't run into it.
  
  The problem is that genl_family_rcv_msg() is called with the genl_lock
  held, and then calls netlink_dump_start() with it held, creating a
  genl_lock-cb_mutex dependency, but obviously the dump continuation is
  the other way around.
  
  We could use the semaphore instead, I believe, but I don't really
  understand the mutex vs. semaphore well enough to be sure that's
  correct.
  
  johannes
  
 it is useless, the logic need to modify or otherwise it will still call 
 lockdep trace.

I don't believe so, the semaphore and cb_mutex don't have a dependency
yet, afaict.

 maybe i could send a patch for it, if you wish.

What do you mean?

johannes

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] [3.10.y] NFC: llcp: Fix non blocking sockets connections

2013-08-19 Thread Samuel Ortiz

This is a backport for the linux-3.10.y stable branch
commit b4011239a08e7e6c2c6e970dfa9e8ecb73139261 upstream

Without the new LLCP_CONNECTING state, non blocking sockets will be
woken up with a POLLHUP right after calling connect() because their
state is stuck at LLCP_CLOSED.
That prevents userspace from implementing any proper non blocking
socket based NFC p2p client.

Signed-off-by: Samuel Ortiz sa...@linux.intel.com
---
 net/nfc/llcp.h  |1 +
 net/nfc/llcp_sock.c |8 +---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/net/nfc/llcp.h b/net/nfc/llcp.h
index ff8c434..f924dd2 100644
--- a/net/nfc/llcp.h
+++ b/net/nfc/llcp.h
@@ -19,6 +19,7 @@
 
 enum llcp_state {
LLCP_CONNECTED = 1, /* wait_for_packet() wants that */
+   LLCP_CONNECTING,
LLCP_CLOSED,
LLCP_BOUND,
LLCP_LISTEN,
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c
index 380253e..7522c37 100644
--- a/net/nfc/llcp_sock.c
+++ b/net/nfc/llcp_sock.c
@@ -571,7 +571,7 @@ static unsigned int llcp_sock_poll(struct file *file, 
struct socket *sock,
if (sk-sk_shutdown == SHUTDOWN_MASK)
mask |= POLLHUP;
 
-   if (sock_writeable(sk))
+   if (sock_writeable(sk)  sk-sk_state == LLCP_CONNECTED)
mask |= POLLOUT | POLLWRNORM | POLLWRBAND;
else
set_bit(SOCK_ASYNC_NOSPACE, sk-sk_socket-flags);
@@ -722,14 +722,16 @@ static int llcp_sock_connect(struct socket *sock, struct 
sockaddr *_addr,
if (ret)
goto sock_unlink;
 
+   sk-sk_state = LLCP_CONNECTING;
+
ret = sock_wait_state(sk, LLCP_CONNECTED,
  sock_sndtimeo(sk, flags  O_NONBLOCK));
-   if (ret)
+   if (ret  ret != -EINPROGRESS)
goto sock_unlink;
 
release_sock(sk);
 
-   return 0;
+   return ret;
 
 sock_unlink:
nfc_llcp_put_ssap(local, llcp_sock-ssap);
-- 
1.7.10.4

-- 
Intel Open Source Technology Centre
http://oss.intel.com/
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: linux-next: build failure after merge of the libata tree

2013-08-19 Thread Tejun Heo
On Sun, Aug 18, 2013 at 08:18:55PM -0700, Terry Suereth wrote:
 Per my original patch, 0x3x26 in code should be 0x3726 (as in the
 unpatched version).  I refer to x26 in comments as a forward-looking
 assumption, but AFAIK only 3726 and 3826 exist at this time.

Heh... No idea how that happened.  Fixed.  Sorry about the trouble.

-- 
tejun
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] ARC: gdbserver breakage in Big-Endian configuration #1

2013-08-19 Thread greg Kroah-Hartman
On Mon, Aug 19, 2013 at 09:08:49AM +, Vineet Gupta wrote:
 Hi Greg,
 
 I'd posted these patches for stable backport. Do I need to do anything more 
 to get them included.
 
 https://patchwork.kernel.org/patch/2841153/  [1/2] ARC: gdbserver breakage in 
 Big-Endian configuration #1https://patchwork.kernel.org/patch/2841153/]
 https://patchwork.kernel.org/patch/2841158/  [2/2] ARC: gdbserver breakage in 
 Big-Endian configuration #2https://patchwork.kernel.org/patch/2841158/

I ignored them as I thought you were submitting them for upstream
inclusion.  If they are already in Linus's tree, then take a look at the
file, Documentation/stable_kernel_rules.txt for how to send a patch for
inclusion into a stable release (hint, I need to know the git commit id
that the patch has in Linus's tree, which I didn't see anywhere here.)

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Move kvm_guest_enter, exit closer to sie

2013-08-19 Thread Dominik Dingel
Attached is a backport of the following patch, with git commit id:
2b29a9fdcb92bfc6b6f4c412d71505869de61a56 

This patch is intended for 3.10-stable tree.

Dominik Dingel (1):
  Move kvm_guest_enter,exit closer to sie

 arch/s390/kvm/kvm-s390.c |   21 ++---
 1 files changed, 14 insertions(+), 7 deletions(-)

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Move kvm_guest_enter,exit closer to sie

2013-08-19 Thread Dominik Dingel
Any uaccess between guest_enter and guest_exit could trigger a page fault,
the page fault handler would handle it as a guest fault and translate a
user address as guest address.

Signed-off-by: Dominik Dingel din...@linux.vnet.ibm.com
---
 arch/s390/kvm/kvm-s390.c |   21 ++---
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index c1c7c68..698fb82 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -622,14 +622,25 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
kvm_s390_deliver_pending_interrupts(vcpu);
 
vcpu-arch.sie_block-icptcode = 0;
-   preempt_disable();
-   kvm_guest_enter();
-   preempt_enable();
VCPU_EVENT(vcpu, 6, entering sie flags %x,
   atomic_read(vcpu-arch.sie_block-cpuflags));
trace_kvm_s390_sie_enter(vcpu,
 atomic_read(vcpu-arch.sie_block-cpuflags));
+
+   /*
+* As PF_VCPU will be used in fault handler, between guest_enter
+* and guest_exit should be no uaccess.
+*/
+   preempt_disable();
+   kvm_guest_enter();
+   preempt_enable();
rc = sie64a(vcpu-arch.sie_block, vcpu-run-s.regs.gprs);
+   kvm_guest_exit();
+
+   VCPU_EVENT(vcpu, 6, exit sie icptcode %d,
+  vcpu-arch.sie_block-icptcode);
+   trace_kvm_s390_sie_exit(vcpu, vcpu-arch.sie_block-icptcode);
+
if (rc) {
if (kvm_is_ucontrol(vcpu-kvm)) {
rc = SIE_INTERCEPT_UCONTROL;
@@ -639,10 +650,6 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
rc = kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
}
}
-   VCPU_EVENT(vcpu, 6, exit sie icptcode %d,
-  vcpu-arch.sie_block-icptcode);
-   trace_kvm_s390_sie_exit(vcpu, vcpu-arch.sie_block-icptcode);
-   kvm_guest_exit();
 
memcpy(vcpu-run-s.regs.gprs[14], vcpu-arch.sie_block-gg14, 16);
return rc;
-- 
1.7.1

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] UBI: Fix PEB leak in wear_leveling_worker()

2013-08-19 Thread Artem Bityutskiy
On Mon, 2013-08-19 at 08:48 +0200, Richard Weinberger wrote:
 get_peb_for_wl() removes the PEB from the free list.
 If the WL subsystem detects that no wear leveling is needed
 it cancels the operation and drops the gained PEB.
 In this case we have to put the PEB back into the free list.
 
 This issue was introduced with commit ed4b7021c
 (UBI: remove PEB from free tree in get_peb_for_wl()).
 
 Cc: stable@vger.kernel.org # 3.7.x
 Signed-off-by: Richard Weinberger rich...@nod.at

Pushed to linux-ubi.git, thanks.

And special thanks for taking care about Ccing -stable.

-- 
Best Regards,
Artem Bityutskiy

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[3.10][3.8][3.5] ARM: Fix FIQ code on VIVT CPUs (was Re: [PATCH 076/133] ARM: update FIQ support for relocation of vectors)

2013-08-19 Thread Kamal Mostafa
Thanks Aaro.  I'll apply 2ba85e7 ARM: Fix FIQ code on VIVT CPUs to
3.8-stable.

Greg KH and Luis Henriques:  Heads up!  3.10-stable and 3.5-stable also
need 2ba85e7 but it isn't marked cc: stable.

 -Kamal


On Mon, 2013-08-19 at 00:09 +0300, Aaro Koskinen wrote:
 On Fri, Aug 16, 2013 at 03:33:38PM -0700, Kamal Mostafa wrote:
  3.8.13.7 -stable review patch.  If anyone has any objections, please let me 
  know.
  
  --
  
  From: Russell King rmk+ker...@arm.linux.org.uk
  
  commit e39e3f3ebfef03450cf7bfa7a974a8c61f7980c8 upstream.
  
  FIQ should no longer copy the FIQ code into the user visible vector
  page.  Instead, it should use the hidden page.  This change makes
  that happen.
 
 FYI, this patch introduced regression (kernel crash) at least on Amstrad
 E1 board (where FIQ is used for the keyboard). See the following thread:
 http://marc.info/?t=13758316993r=1w=2
 
 So any stable kernels where this patch was added should also take:
 
   commit 2ba85e7af4c639d933c9a87a6d7363f2983d5ada
   Author: Russell King rmk+ker...@arm.linux.org.uk
   Date:   Thu Aug 8 11:51:21 2013 +0100
 
   ARM: Fix FIQ code on VIVT CPUs
 
 That patch fixes the regression.
 
 A.
 



signature.asc
Description: This is a digitally signed message part


Re: [3.10][3.8][3.5] ARM: Fix FIQ code on VIVT CPUs (was Re: [PATCH 076/133] ARM: update FIQ support for relocation of vectors)

2013-08-19 Thread Russell King - ARM Linux
On Mon, Aug 19, 2013 at 09:02:23AM -0700, Kamal Mostafa wrote:
 Thanks Aaro.  I'll apply 2ba85e7 ARM: Fix FIQ code on VIVT CPUs to
 3.8-stable.
 
 Greg KH and Luis Henriques:  Heads up!  3.10-stable and 3.5-stable also
 need 2ba85e7 but it isn't marked cc: stable.

There's others from that branch which are probably also needed but I want
them to sit in -rc for a bit before I request them to move into the stable
trees - in case anyone finds anything more from the security fixes a while
back.
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Hi there! So i'm looking for husband!

2013-08-19 Thread Abe Haven
vgctm trmljqkbdp vnvyarei
jnxhebc otqhdkjyd xxevtp
xkfjss M N Q R Y K P K N L T V
gouevuchh Y Y U V H P P B R O
cuqrd ceaecghyoi cbdbbxtlqpjqyhlwraui
xrnzgfhtv lfzfgsz dtzcjsk
wrwcx T H Z U C A I H F W H Z S Z D R
kqsmctdqwdkxvgor M U V Y G C C V R S M Y Nattachment: vivew.jpg

Linux 3.6.11.7

2013-08-19 Thread Steven Rostedt

I'm announcing the release of the 3.6.11.7 kernel.

The updated 3.6.11.y git tree can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git 
v3.6-stable

The patch can be downloaded at:

https://www.kernel.org/pub/linux/kernel/projects/rt/3.6/stable/patch-3.6.11.7.xz

thanks,

-- Steve

 MAINTAINERS   |1 +
 Makefile  |2 +-
 arch/arm/include/asm/cacheflush.h |4 +-
 arch/arm/mm/flush.c   |   33 
 arch/arm/mm/nommu.c   |6 +
 arch/tile/lib/exports.c   |2 +
 arch/x86/Kconfig  |1 +
 arch/x86/include/asm/irq_remapping.h  |2 +
 arch/x86/kernel/early-quirks.c|   20 +++
 arch/x86/kvm/x86.c|5 +-
 arch/x86/xen/time.c   |   17 +-
 block/genhd.c |2 +-
 crypto/algapi.c   |3 +-
 crypto/algboss.c  |   15 +-
 crypto/api.c  |6 -
 crypto/internal.h |6 +
 drivers/acpi/acpica/hwxfsleep.c   |8 +-
 drivers/ata/libahci.c |3 +-
 drivers/ata/libata-acpi.c |   35 +++-
 drivers/ata/libata-core.c |2 +
 drivers/ata/libata.h  |2 +
 drivers/block/nbd.c   |9 +-
 drivers/cdrom/cdrom.c |2 +-
 drivers/clk/clk.c |1 +
 drivers/dma/pl330.c   |4 +-
 drivers/gpu/drm/radeon/radeon_ring.c  |   10 ++
 drivers/hv/ring_buffer.c  |2 +-
 drivers/hv/vmbus_drv.c|2 +-
 drivers/input/touchscreen/cyttsp_core.c   |2 +-
 drivers/iommu/intel_irq_remapping.c   |   10 ++
 drivers/iommu/irq_remapping.c |6 +
 drivers/iommu/irq_remapping.h |1 +
 drivers/net/ethernet/freescale/gianfar_ptp.c  |1 +
 drivers/net/ethernet/realtek/8139cp.c |1 +
 drivers/net/ethernet/renesas/sh_eth.c |   15 +-
 drivers/net/phy/phy.c |2 +-
 drivers/net/team/team.c   |2 +-
 drivers/net/team/team_mode_roundrobin.c   |2 +
 drivers/net/wan/dlci.c|   26 ++-
 drivers/net/wireless/ath/ath9k/htc_drv_main.c |2 +-
 drivers/net/wireless/iwlwifi/dvm/rxon.c   |2 +-
 drivers/net/wireless/rtlwifi/rtl8192cu/rf.c   |2 +-
 drivers/pci/probe.c   |8 +-
 drivers/pcmcia/at91_cf.c  |4 +-
 drivers/power/charger-manager.c   |2 +-
 drivers/rtc/rtc-rv3029c2.c|2 +-
 drivers/scsi/osd/osd_uld.c|2 +-
 drivers/scsi/qla2xxx/tcm_qla2xxx.c|6 +-
 drivers/scsi/sd.c |2 +-
 drivers/target/iscsi/iscsi_target_erl0.c  |4 +-
 drivers/usb/gadget/f_mass_storage.c   |2 +
 drivers/usb/host/xhci-mem.c   |4 +
 drivers/usb/host/xhci-plat.c  |1 +
 drivers/usb/serial/ti_usb_3410_5052.c |3 +-
 drivers/usb/serial/ti_usb_3410_5052.h |4 +-
 fs/cifs/cifs_unicode.h|8 +-
 fs/cifs/cifsencrypt.c |6 +-
 fs/cifs/inode.c   |5 +
 fs/exec.c |   16 +-
 fs/ext3/namei.c   |7 +-
 fs/ext4/extents.c |4 +-
 fs/ext4/inode.c   |4 +-
 fs/ext4/mballoc.c |   11 +-
 fs/ext4/namei.c   |7 +-
 fs/hpfs/map.c |3 +-
 fs/hpfs/super.c   |8 +-
 fs/jbd2/journal.c |3 +-
 fs/jbd2/transaction.c |2 +-
 fs/nfsd/nfs4xdr.c |2 +-
 fs/ocfs2/xattr.c  |   10 ++
 fs/ubifs/dir.c|   54 --
 include/linux/hugetlb.h   |   16 ++
 include/linux/nbd.h   |1 +
 include/linux/perf_event.h|3 +-
 include/linux/rculist_nulls.h |7 +-
 include/linux/socket.h|3 +
 kernel/cgroup.c   |   25 ++-
 kernel/events/core.c  |  233 +
 kernel/events/hw_breakpoint.c |4 +-
 kernel/events/internal.h  |4 +
 kernel/futex.c|3 +-
 kernel/irq/manage.c

Re: [PATCH] drm/radeon/si: Add support for CP DMA to CS checker for compute v2

2013-08-19 Thread Alex Deucher
On Fri, Aug 16, 2013 at 5:47 PM, Tom Stellard t...@stellard.net wrote:

 From: Tom Stellard thomas.stell...@amd.com

 Also add a new RADEON_INFO query to check that CP DMA packets are
 supported on the compute ring.

 v2:
   - Don't bump kms version, so this patch can be backported to stable
 kernels.

 Cc: stable@vger.kernel.org
 Signed-off-by: Tom Stellard thomas.stell...@amd.com

I've applied this to my tree and updated the the commit regarding why
it needs to go to stable.

Thanks!

Alex

 ---
  drivers/gpu/drm/radeon/radeon_kms.c |   3 +
  drivers/gpu/drm/radeon/si.c | 106 
 +---
  include/uapi/drm/radeon_drm.h   |   2 +
  3 files changed, 66 insertions(+), 45 deletions(-)

 diff --git a/drivers/gpu/drm/radeon/radeon_kms.c 
 b/drivers/gpu/drm/radeon/radeon_kms.c
 index 49ff3d1..cc2ca38 100644
 --- a/drivers/gpu/drm/radeon/radeon_kms.c
 +++ b/drivers/gpu/drm/radeon/radeon_kms.c
 @@ -433,6 +433,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, 
 struct drm_file *filp)
 return -EINVAL;
 }
 break;
 +   case RADEON_INFO_SI_CP_DMA_COMPUTE:
 +   *value = 1;
 +   break;
 default:
 DRM_DEBUG_KMS(Invalid request %d\n, info-request);
 return -EINVAL;
 diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
 index daa8d2d..8a21132 100644
 --- a/drivers/gpu/drm/radeon/si.c
 +++ b/drivers/gpu/drm/radeon/si.c
 @@ -4083,13 +4083,64 @@ static int si_vm_packet3_ce_check(struct 
 radeon_device *rdev,
 return 0;
  }

 +static int si_vm_packet3_cp_dma_check(u32 *ib, u32 idx)
 +{
 +   u32 start_reg, reg, i;
 +   u32 command = ib[idx + 4];
 +   u32 info = ib[idx + 1];
 +   u32 idx_value = ib[idx];
 +   if (command  PACKET3_CP_DMA_CMD_SAS) {
 +   /* src address space is register */
 +   if (((info  0x6000)  29) == 0) {
 +   start_reg = idx_value  2;
 +   if (command  PACKET3_CP_DMA_CMD_SAIC) {
 +   reg = start_reg;
 +   if (!si_vm_reg_valid(reg)) {
 +   DRM_ERROR(CP DMA Bad SRC 
 register\n);
 +   return -EINVAL;
 +   }
 +   } else {
 +   for (i = 0; i  (command  0x1f); i++) {
 +   reg = start_reg + (4 * i);
 +   if (!si_vm_reg_valid(reg)) {
 +   DRM_ERROR(CP DMA Bad SRC 
 register\n);
 +   return -EINVAL;
 +   }
 +   }
 +   }
 +   }
 +   }
 +   if (command  PACKET3_CP_DMA_CMD_DAS) {
 +   /* dst address space is register */
 +   if (((info  0x0030)  20) == 0) {
 +   start_reg = ib[idx + 2];
 +   if (command  PACKET3_CP_DMA_CMD_DAIC) {
 +   reg = start_reg;
 +   if (!si_vm_reg_valid(reg)) {
 +   DRM_ERROR(CP DMA Bad DST 
 register\n);
 +   return -EINVAL;
 +   }
 +   } else {
 +   for (i = 0; i  (command  0x1f); i++) {
 +   reg = start_reg + (4 * i);
 +   if (!si_vm_reg_valid(reg)) {
 +   DRM_ERROR(CP DMA Bad DST 
 register\n);
 +   return -EINVAL;
 +   }
 +   }
 +   }
 +   }
 +   }
 +   return 0;
 +}
 +
  static int si_vm_packet3_gfx_check(struct radeon_device *rdev,
u32 *ib, struct radeon_cs_packet *pkt)
  {
 +   int r;
 u32 idx = pkt-idx + 1;
 u32 idx_value = ib[idx];
 u32 start_reg, end_reg, reg, i;
 -   u32 command, info;

 switch (pkt-opcode) {
 case PACKET3_NOP:
 @@ -4190,50 +4241,9 @@ static int si_vm_packet3_gfx_check(struct 
 radeon_device *rdev,
 }
 break;
 case PACKET3_CP_DMA:
 -   command = ib[idx + 4];
 -   info = ib[idx + 1];
 -   if (command  PACKET3_CP_DMA_CMD_SAS) {
 -   /* src address space is register */
 -   if (((info  0x6000)  29) == 0) {
 -   start_reg = idx_value  2;
 -   if (command  PACKET3_CP_DMA_CMD_SAIC) {
 -   reg = start_reg;
 - 

[PATCH 4/4] drm/radeon: update line buffer allocation for dce8

2013-08-19 Thread Alex Deucher
We need to allocate line buffer to each display when
setting up the watermarks.  Failure to do so can lead
to a blank screen.  This fixes blank screen problems
on dce8 asics.

Based on an initial fix from:
Jay Cornwall jay.cornw...@amd.com

Signed-off-by: Alex Deucher alexander.deuc...@amd.com
Cc: stable@vger.kernel.org
---
 drivers/gpu/drm/radeon/cik.c  | 29 ++---
 drivers/gpu/drm/radeon/cikd.h |  4 
 2 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index 582f8e4..1942571 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -7367,8 +7367,8 @@ static u32 dce8_line_buffer_adjust(struct radeon_device 
*rdev,
   struct radeon_crtc *radeon_crtc,
   struct drm_display_mode *mode)
 {
-   u32 tmp;
-
+   u32 tmp, buffer_alloc, i;
+   u32 pipe_offset = radeon_crtc-crtc_id * 0x20;
/*
 * Line Buffer Setup
 * There are 6 line buffers, one for each display controllers.
@@ -7378,22 +7378,37 @@ static u32 dce8_line_buffer_adjust(struct radeon_device 
*rdev,
 * them using the stereo blender.
 */
if (radeon_crtc-base.enabled  mode) {
-   if (mode-crtc_hdisplay  1920)
+   if (mode-crtc_hdisplay  1920) {
tmp = 1;
-   else if (mode-crtc_hdisplay  2560)
+   buffer_alloc = 2;
+   } else if (mode-crtc_hdisplay  2560) {
tmp = 2;
-   else if (mode-crtc_hdisplay  4096)
+   buffer_alloc = 2;
+   } else if (mode-crtc_hdisplay  4096) {
tmp = 0;
-   else {
+   buffer_alloc = (rdev-flags  RADEON_IS_IGP) ? 2 : 4;
+   } else {
DRM_DEBUG_KMS(Mode too big for LB!\n);
tmp = 0;
+   buffer_alloc = (rdev-flags  RADEON_IS_IGP) ? 2 : 4;
}
-   } else
+   } else {
tmp = 1;
+   buffer_alloc = 0;
+   }
 
WREG32(LB_MEMORY_CTRL + radeon_crtc-crtc_offset,
   LB_MEMORY_CONFIG(tmp) | LB_MEMORY_SIZE(0x6B0));
 
+   WREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset,
+  DMIF_BUFFERS_ALLOCATED(buffer_alloc));
+   for (i = 0; i  rdev-usec_timeout; i++) {
+   if (RREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset) 
+   DMIF_BUFFERS_ALLOCATED_COMPLETED)
+   break;
+   udelay(1);
+   }
+
if (radeon_crtc-base.enabled  mode) {
switch (tmp) {
case 0:
diff --git a/drivers/gpu/drm/radeon/cikd.h b/drivers/gpu/drm/radeon/cikd.h
index 6a92f49..203d2a0 100644
--- a/drivers/gpu/drm/radeon/cikd.h
+++ b/drivers/gpu/drm/radeon/cikd.h
@@ -393,6 +393,10 @@
 
 #define DMIF_ADDR_CALC 0xC00
 
+#definePIPE0_DMIF_BUFFER_CONTROL 0x0ca0
+#   define DMIF_BUFFERS_ALLOCATED(x)  ((x)  0)
+#   define DMIF_BUFFERS_ALLOCATED_COMPLETED   (1  4)
+
 #defineSRBM_GFX_CNTL   0xE44
 #definePIPEID(x)   ((x)  
0)
 #defineMEID(x) ((x)  
2)
-- 
1.8.3.1

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/4] drm/radeon: update line buffer allocation for dce6

2013-08-19 Thread Alex Deucher
We need to allocate line buffer to each display when
setting up the watermarks.  Failure to do so can lead
to a blank screen.  This fixes blank screen problems
on dce6 asics.

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=64850

Based on an initial fix from:
Jay Cornwall jay.cornw...@amd.com

Signed-off-by: Alex Deucher alexander.deuc...@amd.com
Cc: stable@vger.kernel.org
---
 drivers/gpu/drm/radeon/si.c  | 23 +++
 drivers/gpu/drm/radeon/sid.h |  4 
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index 0b4e979..89393ed 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -1711,7 +1711,8 @@ static u32 dce6_line_buffer_adjust(struct radeon_device 
*rdev,
   struct drm_display_mode *mode,
   struct drm_display_mode *other_mode)
 {
-   u32 tmp;
+   u32 tmp, buffer_alloc, i;
+   u32 pipe_offset = radeon_crtc-crtc_id * 0x20;
/*
 * Line Buffer Setup
 * There are 3 line buffers, each one shared by 2 display controllers.
@@ -1726,16 +1727,30 @@ static u32 dce6_line_buffer_adjust(struct radeon_device 
*rdev,
 * non-linked crtcs for maximum line buffer allocation.
 */
if (radeon_crtc-base.enabled  mode) {
-   if (other_mode)
+   if (other_mode) {
tmp = 0; /* 1/2 */
-   else
+   buffer_alloc = 1;
+   } else {
tmp = 2; /* whole */
-   } else
+   buffer_alloc = 2;
+   }
+   } else {
tmp = 0;
+   buffer_alloc = 0;
+   }
 
WREG32(DC_LB_MEMORY_SPLIT + radeon_crtc-crtc_offset,
   DC_LB_MEMORY_CONFIG(tmp));
 
+   WREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset,
+  DMIF_BUFFERS_ALLOCATED(buffer_alloc));
+   for (i = 0; i  rdev-usec_timeout; i++) {
+   if (RREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset) 
+   DMIF_BUFFERS_ALLOCATED_COMPLETED)
+   break;
+   udelay(1);
+   }
+
if (radeon_crtc-base.enabled  mode) {
switch (tmp) {
case 0:
diff --git a/drivers/gpu/drm/radeon/sid.h b/drivers/gpu/drm/radeon/sid.h
index 91dae16..52d2ab6 100644
--- a/drivers/gpu/drm/radeon/sid.h
+++ b/drivers/gpu/drm/radeon/sid.h
@@ -282,6 +282,10 @@
 
 #define DMIF_ADDR_CALC 0xC00
 
+#definePIPE0_DMIF_BUFFER_CONTROL 0x0ca0
+#   define DMIF_BUFFERS_ALLOCATED(x)  ((x)  0)
+#   define DMIF_BUFFERS_ALLOCATED_COMPLETED   (1  4)
+
 #defineSRBM_STATUS 0xE50
 #defineGRBM_RQ_PENDING (1  5)
 #defineVMC_BUSY(1  8)
-- 
1.8.3.1

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/4] drm/radeon: update line buffer allocation for dce4.1/5

2013-08-19 Thread Alex Deucher
We need to allocate line buffer to each display when
setting up the watermarks.  Failure to do so can lead
to a blank screen.  This fixes blank screen problems
on dce4.1/5 asics.

Based on an initial fix from:
Jay Cornwall jay.cornw...@amd.com

Signed-off-by: Alex Deucher alexander.deuc...@amd.com
Cc: stable@vger.kernel.org
---
 drivers/gpu/drm/radeon/evergreen.c  | 25 +
 drivers/gpu/drm/radeon/evergreend.h |  4 
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 2ca9f13..1832136 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1812,7 +1812,8 @@ static u32 evergreen_line_buffer_adjust(struct 
radeon_device *rdev,
struct drm_display_mode *mode,
struct drm_display_mode *other_mode)
 {
-   u32 tmp;
+   u32 tmp, buffer_alloc, i;
+   u32 pipe_offset = radeon_crtc-crtc_id * 0x20;
/*
 * Line Buffer Setup
 * There are 3 line buffers, each one shared by 2 display controllers.
@@ -1835,18 +1836,34 @@ static u32 evergreen_line_buffer_adjust(struct 
radeon_device *rdev,
 * non-linked crtcs for maximum line buffer allocation.
 */
if (radeon_crtc-base.enabled  mode) {
-   if (other_mode)
+   if (other_mode) {
tmp = 0; /* 1/2 */
-   else
+   buffer_alloc = 1;
+   } else {
tmp = 2; /* whole */
-   } else
+   buffer_alloc = 2;
+   }
+   } else {
tmp = 0;
+   buffer_alloc = 0;
+   }
 
/* second controller of the pair uses second half of the lb */
if (radeon_crtc-crtc_id % 2)
tmp += 4;
WREG32(DC_LB_MEMORY_SPLIT + radeon_crtc-crtc_offset, tmp);
 
+   if (ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev)) {
+   WREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset,
+  DMIF_BUFFERS_ALLOCATED(buffer_alloc));
+   for (i = 0; i  rdev-usec_timeout; i++) {
+   if (RREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset) 
+   DMIF_BUFFERS_ALLOCATED_COMPLETED)
+   break;
+   udelay(1);
+   }
+   }
+
if (radeon_crtc-base.enabled  mode) {
switch (tmp) {
case 0:
diff --git a/drivers/gpu/drm/radeon/evergreend.h 
b/drivers/gpu/drm/radeon/evergreend.h
index 430997a..8768fd6 100644
--- a/drivers/gpu/drm/radeon/evergreend.h
+++ b/drivers/gpu/drm/radeon/evergreend.h
@@ -1160,6 +1160,10 @@
 #   define LATENCY_LOW_WATERMARK(x)   ((x)  0)
 #   define LATENCY_HIGH_WATERMARK(x)  ((x)  16)
 
+#definePIPE0_DMIF_BUFFER_CONTROL 0x0ca0
+#   define DMIF_BUFFERS_ALLOCATED(x)  ((x)  0)
+#   define DMIF_BUFFERS_ALLOCATED_COMPLETED   (1  4)
+
 #define IH_RB_CNTL0x3e00
 #   define IH_RB_ENABLE   (1  0)
 #   define IH_IB_SIZE(x)  ((x)  1) /* log2 */
-- 
1.8.3.1

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/4] drm/radeon: move watermark setup out of set base callback

2013-08-19 Thread Alex Deucher
Some of the watermark registers need to be programmed prior
to enabling the display.  Doing this in the set base callback
means the watermark registers can be updated at arbitray times
when the display offset is changed which can lead to display
problems.

Signed-off-by: Alex Deucher alexander.deuc...@amd.com
Cc: stable@vger.kernel.org
---
 drivers/gpu/drm/radeon/atombios_crtc.c  | 13 +++--
 drivers/gpu/drm/radeon/radeon_legacy_crtc.c |  6 +++---
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c 
b/drivers/gpu/drm/radeon/atombios_crtc.c
index b9d3b43..dd11e00 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -1278,9 +1278,6 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
radeon_bo_unreserve(rbo);
}
 
-   /* Bytes per pixel may have changed */
-   radeon_bandwidth_update(rdev);
-
return 0;
 }
 
@@ -1447,9 +1444,6 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
radeon_bo_unreserve(rbo);
}
 
-   /* Bytes per pixel may have changed */
-   radeon_bandwidth_update(rdev);
-
return 0;
 }
 
@@ -1897,6 +1891,11 @@ static void atombios_crtc_prepare(struct drm_crtc *crtc)
 
 static void atombios_crtc_commit(struct drm_crtc *crtc)
 {
+   struct drm_device *dev = crtc-dev;
+   struct radeon_device *rdev = dev-dev_private;
+
+   /* set up watermarks before enabling the display */
+   radeon_bandwidth_update(rdev);
atombios_crtc_dpms(crtc, DRM_MODE_DPMS_ON);
atombios_lock_crtc(crtc, ATOM_DISABLE);
 }
@@ -1910,6 +1909,8 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
int i;
 
atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
+   /* set up watermarks when the display is off */
+   radeon_bandwidth_update(rdev);
if (ASIC_IS_DCE6(rdev))
atombios_powergate_crtc(crtc, ATOM_ENABLE);
 
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c 
b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
index 7cb178a..dbc5b773 100644
--- a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
+++ b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
@@ -537,9 +537,6 @@ int radeon_crtc_do_set_base(struct drm_crtc *crtc,
radeon_bo_unreserve(rbo);
}
 
-   /* Bytes per pixel may have changed */
-   radeon_bandwidth_update(rdev);
-
return 0;
 }
 
@@ -1045,8 +1042,11 @@ static void radeon_crtc_prepare(struct drm_crtc *crtc)
 static void radeon_crtc_commit(struct drm_crtc *crtc)
 {
struct drm_device *dev = crtc-dev;
+   struct radeon_device *rdev = dev-dev_private;
struct drm_crtc *crtci;
 
+   /* set up watermarks before enabling the display */
+   radeon_bandwidth_update(rdev);
/*
* Reenable the CRTCs that should be running.
*/
-- 
1.8.3.1

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 28/45] ALSA: hda - Add a fixup for Gateway LT27

2013-08-19 Thread Greg Kroah-Hartman
On Mon, Aug 19, 2013 at 11:42:28AM -0600, Nathanael D. Noblet wrote:
 No objection, other than that I submitted a revision to that
 patch... Added an additional piece of hardware. The full patch
 should be include two lines.

That patch needs to get into Linus's tree before I can add it to the
stable tree.

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/34] 3.4.59-stable review

2013-08-19 Thread Shuah Khan

On 08/18/2013 02:34 PM, Greg Kroah-Hartman wrote:

This is the start of the stable review cycle for the 3.4.59 release.
There are 34 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Note, there are a number of build fixes in this round, in the quest to
get all arches building properly to be able to track future regressions
easier.  Many thanks to Guenter Roeck and Geert Uytterhoeven for their
work in doing this.

Responses should be made by Tue Aug 20 20:32:48 UTC 2013.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.4.59-rc1.gz
and the diffstat can be found below.

thanks,

greg k-h



Greg,

This release is not looking good on one of test systems. Bluetooth is 
not recognized and wireless doesn't work. I am going to start bisect and 
giving you a head-up. The following new dmesg -l crit regression messages:


CPU2: Package power limit notification (total events = 1)
CPU3: Package power limit notification (total events = 1)
CPU0: Package power limit notification (total events = 1)
CPU1: Package power limit notification (total events = 1)

and the following traces in dmesg:
[  124.802169] init: udevtrigger post-stop process (353) terminated with 
status 1

[  243.439212] INFO: task crda:723 blocked for more than 120 seconds.
[  243.439220] echo 0  /proc/sys/kernel/hung_task_timeout_secs 
disables this message.
[  243.439227] crdaD 88041f253940 0   723362 
0x0004
[  243.439237]  8803fbde59d8 0082 880404a4dbc0 
8803fbde5fd8
[  243.439248]  8803fbde5fd8 8803fbde5fd8 8803eca2c4d0 
880404a4dbc0
[  243.439257]  880404a4dbc0 81caa2a0 880404a4dbc0 
81caa2a4

[  243.439266] Call Trace:
[  243.439283]  [816681f9] schedule+0x29/0x70
[  243.439292]  [816684be] schedule_preempt_disabled+0xe/0x10
[  243.439301]  [81666fa7] __mutex_lock_slowpath+0xd7/0x150
[  243.439312]  [8158498e] ? genl_rcv_msg+0x16e/0x2d0
[  243.439321]  [81666a7a] mutex_lock+0x2a/0x50
[  243.439328]  [815847d5] genl_lock+0x15/0x20
[  243.439335]  [815855fc] ctrl_dumpfamily+0x12c/0x140
[  243.439343]  [81581c53] netlink_dump+0x73/0x1e0
[  243.439350]  [815821d8] netlink_recvmsg+0x338/0x430
[  243.439358]  [8154555d] sock_recvmsg+0xfd/0x130
[  243.439371]  [81172a93] ? __mem_cgroup_commit_charge+0xb3/0x2f0
[  243.439382]  [8114a78d] ? page_add_new_anon_rmap+0xcd/0xf0
[  243.439389]  [8154692a] ? move_addr_to_kernel+0x5a/0xc0
[  243.439399]  [815521a6] ? verify_iovec+0x56/0xd0
[  243.439406]  [81545073] ___sys_recvmsg+0x143/0x2d0
[  243.439414]  [81141349] ? handle_mm_fault+0x259/0x320
[  243.439424]  [8154420c] ? move_addr_to_user+0xbc/0xe0
[  243.439431]  [8154715c] ? sys_getsockname+0xdc/0xf0
[  243.439437]  [81547ae9] __sys_recvmsg+0x49/0x90
[  243.439444]  [81547b42] sys_recvmsg+0x12/0x30
[  243.439455]  [816712e9] system_call_fastpath+0x16/0x1b
[  243.439463] INFO: task NetworkManager:879 blocked for more than 120 
seconds.
[  243.439468] echo 0  /proc/sys/kernel/hung_task_timeout_secs 
disables this message.
[  243.439473] NetworkManager  D 88041f293940 0   879  1 
0x
[  243.439481]  8804065c1a08 0082 8803ecbedbc0 
8804065c1fd8
[  243.439490]  8804065c1fd8 8804065c1fd8 880408d796f0 
8803ecbedbc0
[  243.439498]  8804065c1ab8 81caa2a0 8803ecbedbc0 
81caa2a4

[  243.439506] Call Trace:
[  243.439514]  [816681f9] schedule+0x29/0x70
[  243.439522]  [816684be] schedule_preempt_disabled+0xe/0x10
[  243.439530]  [81666fa7] __mutex_lock_slowpath+0xd7/0x150
[  243.439539]  [81666a7a] mutex_lock+0x2a/0x50
[  243.439546]  [815847d5] genl_lock+0x15/0x20
[  243.439553]  [815847f6] genl_rcv+0x16/0x40
[  243.439560]  [81583d1d] netlink_unicast+0x19d/0x1f0
[  243.439567]  [8158404a] netlink_sendmsg+0x2da/0x390
[  243.439574]  [815456e8] sock_sendmsg+0xf8/0x130
[  243.439582]  [8154692a] ? move_addr_to_kernel+0x5a/0xc0
[  243.439590]  [815521a6] ? verify_iovec+0x56/0xd0
[  243.439597]  [81545b9e] ___sys_sendmsg+0x41e/0x430
[  243.439607]  [8107e733] ? __wake_up+0x53/0x70
[  243.439614]  [81582b43] ? netlink_table_ungrab+0x33/0x40
[  243.439623]  [8154420c] ? move_addr_to_user+0xbc/0xe0
[  243.439629]  [81547115] ? sys_getsockname+0x95/0xf0
[  243.439636]  [81547869] __sys_sendmsg+0x49/0x90
[  243.439643]  [815478c2] sys_sendmsg+0x12/0x30
[  243.439651]  [816712e9] system_call_fastpath+0x16/0x1b
[  363.295849] INFO: task crda:723 blocked for more than 120 seconds.

Re: [ 28/45] ALSA: hda - Add a fixup for Gateway LT27

2013-08-19 Thread Nathanael D. Noblet
No objection, other than that I submitted a revision to that patch... 
Added an additional piece of hardware. The full patch should be include 
two lines.




On 08/18/2013 02:36 PM, Greg Kroah-Hartman wrote:

3.10-stable review patch.  If anyone has any objections, please let me know.

--

From: Takashi Iwai ti...@suse.de

commit 1801928e0f99d94c55e33c584c5eb2ff5e246ee6 upstream.

Gateway LT27 needs a fixup for the inverted digital mic.

Reported-by: Nathanael D. Noblet nathan...@gnat.ca
Signed-off-by: Takashi Iwai ti...@suse.de
Signed-off-by: Greg Kroah-Hartman gre...@linuxfoundation.org

---
  sound/pci/hda/patch_realtek.c |1 +
  1 file changed, 1 insertion(+)

--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4210,6 +4210,7 @@ static const struct snd_pci_quirk alc662
SND_PCI_QUIRK(0x1025, 0x0308, Acer Aspire 8942G, ALC662_FIXUP_ASPIRE),
SND_PCI_QUIRK(0x1025, 0x031c, Gateway NV79, ALC662_FIXUP_SKU_IGNORE),
SND_PCI_QUIRK(0x1025, 0x0349, eMachines eM250, ALC662_FIXUP_INV_DMIC),
+   SND_PCI_QUIRK(0x1025, 0x034a, Gateway LT27, ALC662_FIXUP_INV_DMIC),
SND_PCI_QUIRK(0x1025, 0x038b, Acer Aspire 8943G, ALC662_FIXUP_ASPIRE),
SND_PCI_QUIRK(0x1028, 0x05d8, Dell, 
ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1028, 0x05db, Dell, 
ALC668_FIXUP_DELL_MIC_NO_PRESENCE),






--
Nathanael d. Noblet
t 403.875.4613
--- a/sound/pci/hda/patch_realtek.c	2013-08-15 13:17:49.804492932 -0600
+++ b/sound/pci/hda/patch_realtek.c	2013-08-15 15:17:46.390273328 -0600
@@ -4208,6 +4208,8 @@
 	SND_PCI_QUIRK(0x17aa, 0x3a0d, Lenovo Ideapad Y550, ALC662_FIXUP_IDEAPAD),
 	SND_PCI_QUIRK(0x19da, 0xa130, Zotac Z68, ALC662_FIXUP_ZOTAC_Z68),
 	SND_PCI_QUIRK(0x1b35, 0x2206, CZC P10T, ALC662_FIXUP_CZC_P10T),
+	SND_PCI_QUIRK(0x1025, 0x034a, Gateway LT27, ALC662_FIXUP_INV_DMIC),
+	SND_PCI_QUIRK(0x1025, 0x022f, Acer Aspire One, ALC662_FIXUP_INV_DMIC),
 
 #if 0
 	/* Below is a quirk table taken from the old code.


Re: [ 28/45] ALSA: hda - Add a fixup for Gateway LT27

2013-08-19 Thread Takashi Iwai
At Mon, 19 Aug 2013 10:48:06 -0700,
Greg Kroah-Hartman wrote:
 
 On Mon, Aug 19, 2013 at 11:42:28AM -0600, Nathanael D. Noblet wrote:
  No objection, other than that I submitted a revision to that
  patch... Added an additional piece of hardware. The full patch
  should be include two lines.
 
 That patch needs to get into Linus's tree before I can add it to the
 stable tree.

Don't worry, the patch was applied now.  It'll be included in either
3.11-rc7 or 3.12-rc1.


thanks,

Takashi
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Patch Fix TLB gather virtual address range invalidation corner has been added to the 3.10-stable tree

2013-08-19 Thread Kamal Mostafa
On Sun, 2013-08-18 at 11:57 -0700, Linus Torvalds wrote:
 On Fri, Aug 16, 2013 at 4:05 PM,  gre...@linuxfoundation.org wrote:
 
  This is a note to let you know that I've just added the patch titled
 
  Fix TLB gather virtual address range invalidation corner
 
  to the 3.10-stable tree
 
 So just a note: the original bug was introduced well back into 3.6,
 but it's pretty much impossible to hit until commit 53a59fc67f97 that
 hit 3.8.
 
 *However*, that commit was also back-ported to at least the 3.7 stable
 series, so now the bug exists in all kernels v3.7.2 and newer.
 
 I don't know which stable kernels are live any more (looks like 3.7
 to 3.9 are all EOL as far as you are concerned), but it might be a
 good idea to at least make sure the distros that may use them are
 aware of this. The bug is pretty unlikely, but the symptoms are subtle
 enough (random memory corruption) that it can be very annoying.
 
 OpenSUSE seems to be 3.7-based, but is clearly aware of this (since
 this issue was escalated by Michal). Fedora seems to be 3.10 in both
 F18 and F19 and is thus ok (eventually). Ubuntu might to be affected,
 though (3.8?)


Thanks Linus.  I'll pick this up for the next 3.8 stable cycle
(v3.8.13.8) so Ubuntu and other any other distros following 3.8.y.z[0]
will get it that way.

 -Kamal

[0] https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable


 Other distros?
 
  Linus



signature.asc
Description: This is a digitally signed message part


Re: 3.11-rc6 genetlink locking fix offends lockdep

2013-08-19 Thread Hugh Dickins
On Mon, 19 Aug 2013, Johannes Berg wrote:
 On Mon, 2013-08-19 at 19:00 +0800, Ding Tianhong wrote:
  On 2013/8/19 16:00, Johannes Berg wrote:
   
   3.11-rc6's commit 58ad436fcf49 (genetlink: fix family dump race)
   gives me the lockdep trace below at startup.
   
   Hmm. Yes, I see now how this happens, not sure why I didn't run into it.
   
   The problem is that genl_family_rcv_msg() is called with the genl_lock
   held, and then calls netlink_dump_start() with it held, creating a
   genl_lock-cb_mutex dependency, but obviously the dump continuation is
   the other way around.
   
   We could use the semaphore instead, I believe, but I don't really
   understand the mutex vs. semaphore well enough to be sure that's
   correct.
   
   johannes
   
  it is useless, the logic need to modify or otherwise it will still call 
  lockdep trace.
 
 I don't believe so, the semaphore and cb_mutex don't have a dependency
 yet, afaict.

The down_read(cb_lock) patch you suggested gives the lockdep trace below.

 
  maybe i could send a patch for it, if you wish.
 
 What do you mean?
 
 johannes

[4.027797] e1000e :00:19.0: irq 43 for MSI/MSI-X
[4.129749] e1000e :00:19.0: irq 43 for MSI/MSI-X
[4.130179] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[4.134629] 
[4.134646] ==
[4.134680] [ INFO: possible circular locking dependency detected ]
[4.134714] 3.11.0-rc6 #3 Not tainted
[4.134735] ---
[4.134767] NetworkManager/357 is trying to acquire lock:
[4.134797]  (cb_lock){++}, at: [8148204a] 
ctrl_dumpfamily+0x38/0x108
[4.134853] 
[4.134853] but task is already holding lock:
[4.134883]  (nlk-cb_mutex){+.+.+.}, at: [8147f148] 
netlink_dump+0x1c/0x1d7
[4.134938] 
[4.134938] which lock already depends on the new lock.
[4.134938] 
[4.134981] 
[4.134981] the existing dependency chain (in reverse order) is:
[4.135020] 
[4.135020] - #2 (nlk-cb_mutex){+.+.+.}:
[4.135056][810b34d2] __lock_acquire+0x865/0x956
[4.135094][810b39fc] lock_acquire+0x57/0x6d
[4.135129][81583e52] mutex_lock_nested+0x5e/0x345
[4.135167][81480122] __netlink_dump_start+0xae/0x14e
[4.135205][8148224b] genl_rcv_msg+0xf4/0x252
[4.135239][81481742] netlink_rcv_skb+0x3e/0x8c
[4.135275][8148199b] genl_rcv+0x24/0x34
[4.135307][814811ca] netlink_unicast+0xed/0x17a
[4.135342][814815d4] netlink_sendmsg+0x2fb/0x345
[4.135378][814503f7] sock_sendmsg+0x79/0x8e
[4.135412][81450707] ___sys_sendmsg+0x231/0x2be
[4.135448][81453228] __sys_sendmsg+0x3d/0x5e
[4.135483][81453256] SyS_sendmsg+0xd/0x19
[4.135517][81587c12] system_call_fastpath+0x16/0x1b
[4.13] 
[4.13] - #1 (genl_mutex){+.+.+.}:
[4.135589][810b34d2] __lock_acquire+0x865/0x956
[4.135626][810b39fc] lock_acquire+0x57/0x6d
[4.135661][81583e52] mutex_lock_nested+0x5e/0x345
[4.135697][81482155] genl_lock+0x12/0x14
[4.135730][8148249d] genl_lock_all+0x15/0x17
[4.135763][81482b2a] genl_register_family+0x51/0x142
[4.135801][8148305f] 
genl_register_family_with_ops+0x23/0x70
[4.135842][8195e610] genl_init+0x41/0x80
[4.135876][81000267] do_one_initcall+0x7f/0x108
[4.135912][81930e29] kernel_init_freeable+0x106/0x195
[4.135951][81574621] kernel_init+0x9/0xd1
[4.135985][81587b6c] ret_from_fork+0x7c/0xb0
[4.136019] 
[4.136019] - #0 (cb_lock){++}:
[4.136052][810b1fb0] validate_chain.isra.21+0x836/0xe8e
[4.136091][810b34d2] __lock_acquire+0x865/0x956
[4.136127][810b39fc] lock_acquire+0x57/0x6d
[4.136161][81584629] down_read+0x42/0x57
[4.136194][8148204a] ctrl_dumpfamily+0x38/0x108
[4.136230][8147f1b4] netlink_dump+0x88/0x1d7
[4.136264][8147f4b4] netlink_recvmsg+0x1b1/0x2d1
[4.137410][81450328] sock_recvmsg+0x83/0x98
[4.138459][814500c6] ___sys_recvmsg+0x15d/0x207
[4.139692][814533f7] __sys_recvmsg+0x3d/0x5e
[4.140918][81453425] SyS_recvmsg+0xd/0x19
[4.141975][81587c12] system_call_fastpath+0x16/0x1b
[4.143042] 
[4.143042] other info that might help us debug this:
[4.143042] 
[4.146007] Chain exists of:
[4.146007]   cb_lock -- genl_mutex -- nlk-cb_mutex
[4.146007] 
[4.148919]  Possible unsafe locking scenario:
[

Re: [ 00/34] 3.4.59-stable review

2013-08-19 Thread Greg Kroah-Hartman
On Mon, Aug 19, 2013 at 12:02:17PM -0600, Shuah Khan wrote:
 On 08/18/2013 02:34 PM, Greg Kroah-Hartman wrote:
 This is the start of the stable review cycle for the 3.4.59 release.
 There are 34 patches in this series, all will be posted as a response
 to this one.  If anyone has any issues with these being applied, please
 let me know.
 
 Note, there are a number of build fixes in this round, in the quest to
 get all arches building properly to be able to track future regressions
 easier.  Many thanks to Guenter Roeck and Geert Uytterhoeven for their
 work in doing this.
 
 Responses should be made by Tue Aug 20 20:32:48 UTC 2013.
 Anything received after that time might be too late.
 
 The whole patch series can be found in one patch at:
  kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.4.59-rc1.gz
 and the diffstat can be found below.
 
 thanks,
 
 greg k-h
 
 
 Greg,
 
 This release is not looking good on one of test systems. Bluetooth
 is not recognized and wireless doesn't work. I am going to start
 bisect and giving you a head-up. The following new dmesg -l crit
 regression messages:

That's odd, given that there are no bluetooth changes in this release.

 CPU2: Package power limit notification (total events = 1)
 CPU3: Package power limit notification (total events = 1)
 CPU0: Package power limit notification (total events = 1)
 CPU1: Package power limit notification (total events = 1)
 
 and the following traces in dmesg:
 [  124.802169] init: udevtrigger post-stop process (353) terminated
 with status 1
 [  243.439212] INFO: task crda:723 blocked for more than 120 seconds.

What is crda?

Any luck with bisection?  It should go fast as the majority of patches
here are non-x86.

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/34] 3.4.59-stable review

2013-08-19 Thread Stefan Lippers-Hollmann
Hi

On Monday 19 August 2013, Greg Kroah-Hartman wrote:
 On Mon, Aug 19, 2013 at 12:02:17PM -0600, Shuah Khan wrote:
  On 08/18/2013 02:34 PM, Greg Kroah-Hartman wrote:
[…] 
  and the following traces in dmesg:
  [  124.802169] init: udevtrigger post-stop process (353) terminated
  with status 1
  [  243.439212] INFO: task crda:723 blocked for more than 120 seconds.
 
 What is crda?
 
 Any luck with bisection?  It should go fast as the majority of patches
 here are non-x86.

crda is a userspace helper, invoked by udev events, which sets -and
intersects as needed- the regulatory domain settings for (modern, 
cfg80211 based) wlan hardware based on the device's EEPROM regdom hint,
local configuration (country code) and eventual IEEE 802.11d hints 
(country IEs) beaconed by access points nearby. It hooks into udev with
these udev rules (Debian/ 1.1.2-1):

$ grep -v -e ^$ -e ^\# /lib/udev/rules.d/60-crda.rules 
SUBSYSTEM==ieee80211, ACTION==add, RUN+=/lib/crda/setregdomain

$ grep -v -e ^$ -e ^\# /lib/udev/rules.d/85-regulatory.rules 
KERNEL==regulatory*, ACTION==change, SUBSYSTEM==platform, 
RUN+=/sbin/crda

Full source is at [2], it should be installed on pretty much every 
distro/ system released with wlan support for the last 3 years.

There are two iwl4965 patches in this series, which might be among the
first ones to check - /if/ you actually have that hardware, the second
one (iwl4965: reset firmware after rfkill off) might also indirectly 
have an effect on blutetooth (via rfkill).

Regards
Stefan Lippers-Hollmann

[1] http://wireless.kernel.org/en/developers/Regulatory/CRDA
[2] https://github.com/mcgrof/crda
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/34] 3.4.59-stable review

2013-08-19 Thread Shuah Khan

On 08/19/2013 02:14 PM, Stefan Lippers-Hollmann wrote:

Hi

On Monday 19 August 2013, Greg Kroah-Hartman wrote:

On Mon, Aug 19, 2013 at 12:02:17PM -0600, Shuah Khan wrote:

On 08/18/2013 02:34 PM, Greg Kroah-Hartman wrote:

[…]

and the following traces in dmesg:
[  124.802169] init: udevtrigger post-stop process (353) terminated
with status 1
[  243.439212] INFO: task crda:723 blocked for more than 120 seconds.


What is crda?

Any luck with bisection?  It should go fast as the majority of patches
here are non-x86.


crda is a userspace helper, invoked by udev events, which sets -and
intersects as needed- the regulatory domain settings for (modern,
cfg80211 based) wlan hardware based on the device's EEPROM regdom hint,
local configuration (country code) and eventual IEEE 802.11d hints
(country IEs) beaconed by access points nearby. It hooks into udev with
these udev rules (Debian/ 1.1.2-1):

$ grep -v -e ^$ -e ^\# /lib/udev/rules.d/60-crda.rules
SUBSYSTEM==ieee80211, ACTION==add, RUN+=/lib/crda/setregdomain

$ grep -v -e ^$ -e ^\# /lib/udev/rules.d/85-regulatory.rules
KERNEL==regulatory*, ACTION==change, SUBSYSTEM==platform, 
RUN+=/sbin/crda

Full source is at [2], it should be installed on pretty much every
distro/ system released with wlan support for the last 3 years.

There are two iwl4965 patches in this series, which might be among the
first ones to check - /if/ you actually have that hardware, the second
one (iwl4965: reset firmware after rfkill off) might also indirectly
have an effect on blutetooth (via rfkill).

Regards
Stefan Lippers-Hollmann

[1] http://wireless.kernel.org/en/developers/Regulatory/CRDA
[2] https://github.com/mcgrof/crda



Greg,

git bisect shows the following patch as the problem:

[ 26/34] genetlink: fix family dump race


-- Shuah

--
Shuah Khan
Senior Linux Kernel Developer - Open Source Group
Samsung Research America(Silicon Valley)
shuah...@samsung.com | (970) 672-0658
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/34] 3.4.59-stable review

2013-08-19 Thread Greg Kroah-Hartman
On Mon, Aug 19, 2013 at 04:22:59PM -0600, Shuah Khan wrote:
 On 08/19/2013 02:14 PM, Stefan Lippers-Hollmann wrote:
 Hi
 
 On Monday 19 August 2013, Greg Kroah-Hartman wrote:
 On Mon, Aug 19, 2013 at 12:02:17PM -0600, Shuah Khan wrote:
 On 08/18/2013 02:34 PM, Greg Kroah-Hartman wrote:
 […]
 and the following traces in dmesg:
 [  124.802169] init: udevtrigger post-stop process (353) terminated
 with status 1
 [  243.439212] INFO: task crda:723 blocked for more than 120 seconds.
 
 What is crda?
 
 Any luck with bisection?  It should go fast as the majority of patches
 here are non-x86.
 
 crda is a userspace helper, invoked by udev events, which sets -and
 intersects as needed- the regulatory domain settings for (modern,
 cfg80211 based) wlan hardware based on the device's EEPROM regdom hint,
 local configuration (country code) and eventual IEEE 802.11d hints
 (country IEs) beaconed by access points nearby. It hooks into udev with
 these udev rules (Debian/ 1.1.2-1):
 
 $ grep -v -e ^$ -e ^\# /lib/udev/rules.d/60-crda.rules
 SUBSYSTEM==ieee80211, ACTION==add, RUN+=/lib/crda/setregdomain
 
 $ grep -v -e ^$ -e ^\# /lib/udev/rules.d/85-regulatory.rules
 KERNEL==regulatory*, ACTION==change, SUBSYSTEM==platform, 
 RUN+=/sbin/crda
 
 Full source is at [2], it should be installed on pretty much every
 distro/ system released with wlan support for the last 3 years.
 
 There are two iwl4965 patches in this series, which might be among the
 first ones to check - /if/ you actually have that hardware, the second
 one (iwl4965: reset firmware after rfkill off) might also indirectly
 have an effect on blutetooth (via rfkill).
 
 Regards
  Stefan Lippers-Hollmann
 
 [1]  http://wireless.kernel.org/en/developers/Regulatory/CRDA
 [2]  https://github.com/mcgrof/crda
 
 
 Greg,
 
 git bisect shows the following patch as the problem:
 
 [ 26/34] genetlink: fix family dump race

Johannes, another strike against this patch :(

Any chance on fixing it upstream and me sucking that fix in?

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/34] 3.4.59-stable review

2013-08-19 Thread Shuah Khan

On 08/19/2013 04:22 PM, Shuah Khan wrote:

On 08/19/2013 02:14 PM, Stefan Lippers-Hollmann wrote:

Hi

On Monday 19 August 2013, Greg Kroah-Hartman wrote:

On Mon, Aug 19, 2013 at 12:02:17PM -0600, Shuah Khan wrote:

On 08/18/2013 02:34 PM, Greg Kroah-Hartman wrote:

[…]

and the following traces in dmesg:
[  124.802169] init: udevtrigger post-stop process (353) terminated
with status 1
[  243.439212] INFO: task crda:723 blocked for more than 120 seconds.


What is crda?

Any luck with bisection?  It should go fast as the majority of patches
here are non-x86.


crda is a userspace helper, invoked by udev events, which sets -and
intersects as needed- the regulatory domain settings for (modern,
cfg80211 based) wlan hardware based on the device's EEPROM regdom hint,
local configuration (country code) and eventual IEEE 802.11d hints
(country IEs) beaconed by access points nearby. It hooks into udev with
these udev rules (Debian/ 1.1.2-1):

$ grep -v -e ^$ -e ^\# /lib/udev/rules.d/60-crda.rules
SUBSYSTEM==ieee80211, ACTION==add, RUN+=/lib/crda/setregdomain

$ grep -v -e ^$ -e ^\# /lib/udev/rules.d/85-regulatory.rules
KERNEL==regulatory*, ACTION==change, SUBSYSTEM==platform,
RUN+=/sbin/crda

Full source is at [2], it should be installed on pretty much every
distro/ system released with wlan support for the last 3 years.

There are two iwl4965 patches in this series, which might be among the
first ones to check - /if/ you actually have that hardware, the second
one (iwl4965: reset firmware after rfkill off) might also indirectly
have an effect on blutetooth (via rfkill).

Regards
Stefan Lippers-Hollmann

[1]http://wireless.kernel.org/en/developers/Regulatory/CRDA
[2]https://github.com/mcgrof/crda



Greg,

git bisect shows the following patch as the problem:

[ 26/34] genetlink: fix family dump race


-- Shuah



Interesting. The same patch is in 3.10.8 as well, and I don't see this 
problem on this system on 3.10.8.


-- Shuah

--
Shuah Khan
Senior Linux Kernel Developer - Open Source Group
Samsung Research America(Silicon Valley)
shuah...@samsung.com | (970) 672-0658
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/45] 3.10.8-stable review

2013-08-19 Thread Shuah Khan

On 08/18/2013 02:35 PM, Greg Kroah-Hartman wrote:

This is the start of the stable review cycle for the 3.10.8 release.
There are 45 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Tue Aug 20 20:36:09 UTC 2013.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.10.8-rc1.gz
and the diffstat can be found below.

thanks,

greg k-h



3.10.8-rc1 applied cleanly to 3.10.7.

Compiled and booted on the following systems:

Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphics

dmesgs look good. No regressions compared to the previous dmesgs for 
each of this release. dmesg emerg, crit, alert, err are clean. No 
regressions in warn.


Cross-compile testing: HP Compaq dc7700 SFF desktop: x86-64 Intel Core-i2:

Cross-compile tests results:

alpha: defconfig passed
arm: defconfig passed
arm64: defconfig passed
blackfin: defconfig passed
c6x: defconfig passed
mips: defconfig passed
mipsel: defconfig passed
powerpc: wii_defconfig passed
sh: defconfig passed
sparc: defconfig passed
tile: tilegx_defconfig passed


-- Shuah

--
Shuah Khan
Senior Linux Kernel Developer - Open Source Group
Samsung Research America(Silicon Valley)
shuah...@samsung.com | (970) 672-0658
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/12] 3.0.92-stable review

2013-08-19 Thread Shuah Khan

On 08/18/2013 02:30 PM, Greg Kroah-Hartman wrote:

This is the start of the stable review cycle for the 3.0.92 release.
There are 12 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Tue Aug 20 20:29:24 UTC 2013.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.0.92-rc1.gz
and the diffstat can be found below.

thanks,

greg k-h



3.0.92-rc1 applied cleanly to 3.0.91.

Compiled and booted on the following systems:

Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphics

dmesgs look good. No regressions compared to the previous dmesgs for 
this release. dmesg emerg, crit, alert, err are clean. No regressions in 
warn.


Cross-compile test: HP Compaq dc7700 SFF desktop: x86-64 Intel Core-i2:

Cross-compile tests results:

alpha: defconfig passed
arm: defconfig passed
arm64: not applicable
blackfin: defconfig passed
c6x: not applicable
mips: defconfig passed
mipsel: defconfig passed
powerpc: wii_defconfig passed
sh: defconfig passed
sparc: defconfig passed
tile: tilegx_defconfig passed

-- Shuah

--
Shuah Khan
Senior Linux Kernel Developer - Open Source Group
Samsung Research America(Silicon Valley)
shuah...@samsung.com | (970) 672-0658
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/12] 3.0.92-stable review

2013-08-19 Thread Greg Kroah-Hartman
On Mon, Aug 19, 2013 at 04:53:54PM -0600, Shuah Khan wrote:
 On 08/18/2013 02:30 PM, Greg Kroah-Hartman wrote:
 This is the start of the stable review cycle for the 3.0.92 release.
 There are 12 patches in this series, all will be posted as a response
 to this one.  If anyone has any issues with these being applied, please
 let me know.
 
 Responses should be made by Tue Aug 20 20:29:24 UTC 2013.
 Anything received after that time might be too late.
 
 The whole patch series can be found in one patch at:
  kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.0.92-rc1.gz
 and the diffstat can be found below.
 
 thanks,
 
 greg k-h
 
 
 3.0.92-rc1 applied cleanly to 3.0.91.
 
 Compiled and booted on the following systems:
 
 Samsung Series 9 900X4C Intel Corei5
 HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphics
 
 dmesgs look good. No regressions compared to the previous dmesgs for
 this release. dmesg emerg, crit, alert, err are clean. No
 regressions in warn.

Thanks for letting me know.

greg k-h
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ 00/45] 3.10.8-stable review

2013-08-19 Thread Greg Kroah-Hartman
On Mon, Aug 19, 2013 at 04:48:08PM -0600, Shuah Khan wrote:
 On 08/18/2013 02:35 PM, Greg Kroah-Hartman wrote:
 This is the start of the stable review cycle for the 3.10.8 release.
 There are 45 patches in this series, all will be posted as a response
 to this one.  If anyone has any issues with these being applied, please
 let me know.
 
 Responses should be made by Tue Aug 20 20:36:09 UTC 2013.
 Anything received after that time might be too late.
 
 The whole patch series can be found in one patch at:
  kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.10.8-rc1.gz
 and the diffstat can be found below.
 
 thanks,
 
 greg k-h
 
 
 3.10.8-rc1 applied cleanly to 3.10.7.
 
 Compiled and booted on the following systems:
 
 Samsung Series 9 900X4C Intel Corei5
 HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphics
 
 dmesgs look good. No regressions compared to the previous dmesgs for
 each of this release. dmesg emerg, crit, alert, err are clean. No
 regressions in warn.

Thanks for testing and letting me know.

greg k-h
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Re: [PATCH] [BUGFIX] crash/ioapic: Prevent crash_kexec() from deadlocking of ioapic_lock

2013-08-19 Thread Yoshihiro YUNOMAE

Hi Ingo,

Thank you for fixing typos!
OK, I'll fix them and rename to ioapic_zap_locks().

Thank you again!

Yoshihiro YUNOMAE

(2013/08/19 18:46), Ingo Molnar wrote:


* Yoshihiro YUNOMAE yoshihiro.yunomae...@hitachi.com wrote:


Prevent crash_kexec() from deadlocking of ioapic_lock.


s/of/on


When crash_kexec() is executed on a cpu, the cpu will get
ioapic_lock in disable_IO_APIC(). So if the cpu gets NMI
while locking ioapic_lock, a deadlock wiil happen. In


s/will


this patch, ioapic_lock is initialized before
disable_IO_APIC().

To confirm this deadlocking, you'll set up as follows:


s/deadlocking/deadlock


1. Add mdelay(1000) after raw_spin_lock_irqsave() in
native_ioapic_set_affinity()@arch/x86/kernel/apic/io_apic.c

Although the deadlocking can occur without this modification, it will
   increase the potential of the deadlocking problem.


s/deadlocking/deadlock



2. Build and install the kernel

3. Set up the OS which will run panic() and kexec when NMI is injected
 # echo kernel.unknown_nmi_panic=1  /etc/sysctl.conf
 # vim /etc/default/grub
   add nmi_watchdog=0 crashkernel=256M in GRUB_CMDLINE_LINUX line
 # grub2-mkconfig

4. Reboot the OS

5. Run following command for each vcpu on the guest
 # while true; do echo CPU num  /proc/irq/IO-APIC-edge or 
IO-APIC-fasteoi/smp_affinitity; done;
By running this command, cpus will get ioapic_lock for setting affinity.

6. Inject NMI (push a dump button or execute 'virsh inject-nmi domain' if you
use VM)
After injecting NMI, panic() is called in an nmi-handler context.
Then, kexec will normally run in panic(), but the operation will be stopped
by deadlock of ioapic_lock in crash_kexec()-machine_crash_shutdown()-


s/of/on


native_machine_crash_shutdown()-disable_IO_APIC()-clear_IO_APIC()-
clear_IO_APIC_pin()-ioapic_read_entry().


I suppose we could do this patch if it's a common
occurance.

A few minor details need fixing:



Signed-off-by: Yoshihiro YUNOMAE yoshihiro.yunomae...@hitachi.com
Cc: Thomas Gleixner t...@linutronix.de
Cc: Ingo Molnar mi...@redhat.com
Cc: H. Peter Anvin h...@zytor.com
Cc: x...@kernel.org
Cc: Andrew Morton a...@linux-foundation.org
Cc: Andi Kleen a...@linux.intel.com
Cc: Seiji Aguchi seiji.agu...@hds.com
Cc: Konrad Rzeszutek Wilk konrad.w...@oracle.com
Cc: Sebastian Andrzej Siewior sebast...@breakpoint.cc
Cc: Joerg Roedel j...@8bytes.org
Cc: Zhang Yanfei zhangyan...@cn.fujitsu.com
Cc: Eric W. Biederman ebied...@xmission.com
Cc: Gleb Natapov g...@redhat.com
Cc: Marcelo Tosatti mtosa...@redhat.com
Cc: linux-ker...@vger.kernel.org
Cc: stable@vger.kernel.org
---
  arch/x86/include/asm/apic.h|2 ++
  arch/x86/kernel/apic/io_apic.c |5 +
  arch/x86/kernel/crash.c|4 
  3 files changed, 11 insertions(+)

diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index f8119b5..ddb06af 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -715,4 +715,6 @@ static inline void exiting_ack_irq(void)
ack_APIC_irq();
  }

+extern void ioapic_lock_init(void);
+
  #endif /* _ASM_X86_APIC_H */
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 9ed796c..2816c07 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1534,6 +1534,11 @@ void intel_ir_io_apic_print_entries(unsigned int apic,
}
  }

+void ioapic_lock_init(void)
+{
+   raw_spin_lock_init(ioapic_lock);
+}


Please name this ioapic_zap_locks() to make clear that this
is crash handling related.


+
  __apicdebuginit(void) print_IO_APIC(int ioapic_idx)
  {
union IO_APIC_reg_00 reg_00;
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index 74467fe..ea039d5 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -129,6 +129,10 @@ void native_machine_crash_shutdown(struct pt_regs *regs)

lapic_shutdown();
  #if defined(CONFIG_X86_IO_APIC)


Please enhance this #ifdef while at it.


+   /*
+* Prevent crash_kexec() from deadlocking of ioapic_lock.
+*/


s/of/on.

Also, single-line comment can go /* here */.


+   ioapic_lock_init();
disable_IO_APIC();
  #endif
  #ifdef CONFIG_HPET_TIMER



Thanks,

Ingo
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



--
Yoshihiro YUNOMAE
Software Platform Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: yoshihiro.yunomae...@hitachi.com


--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [REGRESSION] 3.10.{6,7} crashes on network activity

2013-08-19 Thread Greg Kroah-Hartman
On Tue, Aug 20, 2013 at 08:26:11AM +0800, Tom Gundersen wrote:
 On Tue, Aug 20, 2013 at 8:03 AM, Greg Kroah-Hartman
 gre...@linuxfoundation.org wrote:
  On Tue, Aug 20, 2013 at 07:59:47AM +0800, Tom Gundersen wrote:
  Hi guys,
 
  Starting with 3.10.6 (and still present in .7) I get an oops on
  connecting to the network.
 
  The attached picture shows the oops. In case it does not reach the ML,
  the top of the call trace reads:
 
  brcms_c_compute_rtscts_dur
  brcms_c_ampdu_finalize
  ampdu_finalize
  dma_txfast
  brcms_c_txfifo
  brcms_c_sendpkt_mac80211
  brcms_ops_tx
  __ieee80211_tx
 
  I bisected the problem and the first bad commit is
 
  commit ef47a5e4f1aaf1d0e2e6875e34b2c9595897bef6
  Author: Felix Fietkau n...@openwrt.org
  Date:   Fri Jun 28 21:04:35 2013 +0200
 
  mac80211/minstrel_ht: fix cck rate sampling
 
  commit 1cd158573951f737fbc878a35cb5eb47bf9af3d5 upstream.
 
  Reverting it on top of .7 fixes the problem.
 
  I had the same (I suppose) problem on mainline some time ago, but I
  have not bisected it, verified that the problem still occurs there, or
  checked if reverting the upstream patch fixes it. I'd be happy to do
  that if it would help though.
 
  Let me know if you need any more information.
 
  Do you have this same problem with 3.11-rc6 as well?
 
 Yes, I just confirmed. I also confirmed that reverting the mainline
 commit on top of -rc6 fixes the problem.

Great, thanks.

Felix and Johannes, any chance we can get this reverted in Linus tree
soon, and push that revert back to the 3.10 stable tree as well?

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH tip/core/rcu 6/9] rculist: list_first_or_null_rcu() should use list_entry_rcu()

2013-08-19 Thread Paul E. McKenney
From: Tejun Heo t...@kernel.org

list_first_or_null() should test whether the list is empty and return
pointer to the first entry if not in a RCU safe manner.  It's broken
in several ways.

* It compares __kernel @__ptr with __rcu @__next triggering the
  following sparse warning.

  net/core/dev.c:4331:17: error: incompatible types in comparison expression 
(different address spaces)

* It doesn't perform rcu_dereference*() and computes the entry address
  using container_of() directly from the __rcu pointer which is
  inconsitent with other rculist interface.  As a result, all three
  in-kernel users - net/core/dev.c, macvlan, cgroup - are buggy.  They
  dereference the pointer w/o going through read barrier.

* While -next dereference passes through list_next_rcu(), the
  compiler is still free to fetch -next more than once and thus
  nullify the __ptr != __next condition check.

Fix it by making list_first_or_null_rcu() dereference -next directly
using ACCESS_ONCE() and then use list_entry_rcu() on it like other
rculist accessors.

v2: Paul pointed out that the compiler may fetch the pointer more than
once nullifying the condition check.  ACCESS_ONCE() added on
-next dereference.

v3: Restored () around macro param which was accidentally removed.
Spotted by Paul.

Signed-off-by: Tejun Heo t...@kernel.org
Reported-by: Fengguang Wu fengguang...@intel.com
Cc: Dipankar Sarma dipan...@in.ibm.com
Cc: Paul E. McKenney paul...@linux.vnet.ibm.com
Cc: David S. Miller da...@davemloft.net
Cc: Li Zefan lize...@huawei.com
Cc: Patrick McHardy ka...@trash.net
Cc: stable@vger.kernel.org
Signed-off-by: Paul E. McKenney paul...@linux.vnet.ibm.com
Reviewed-by: Josh Triplett j...@joshtriplett.org
---
 include/linux/rculist.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/linux/rculist.h b/include/linux/rculist.h
index f4b1001..4106721 100644
--- a/include/linux/rculist.h
+++ b/include/linux/rculist.h
@@ -267,8 +267,9 @@ static inline void list_splice_init_rcu(struct list_head 
*list,
  */
 #define list_first_or_null_rcu(ptr, type, member) \
({struct list_head *__ptr = (ptr); \
- struct list_head __rcu *__next = list_next_rcu(__ptr); \
- likely(__ptr != __next) ? container_of(__next, type, member) : NULL; \
+ struct list_head *__next = ACCESS_ONCE(__ptr-next); \
+ likely(__ptr != __next) ? \
+   list_entry_rcu(__next, type, member) : NULL; \
})
 
 /**
-- 
1.8.1.5

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] ath9k: Enable PLL fix only for AR9340/AR9330

2013-08-19 Thread Sujith Manoharan
From: Sujith Manoharan c_man...@qca.qualcomm.com

The PLL hang workaround is required only for AR9330 and
AR9340. This issue was first observed on an AP121 and the WAR
is enabled for AR9340 also (DB120 etc.), since it uses a PLL
design identical to AR9330. This is not required for AR9485 and AR9550.

Various bugs have been reported regarding this:

https://bugzilla.redhat.com/show_bug.cgi?id=997217
https://bugzilla.redhat.com/show_bug.cgi?id=994648

Cc: stable@vger.kernel.org
Signed-off-by: Sujith Manoharan c_man...@qca.qualcomm.com
---
 drivers/net/wireless/ath/ath9k/main.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/main.c 
b/drivers/net/wireless/ath/ath9k/main.c
index ac9f18f..e4f6590 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -173,8 +173,7 @@ static void ath_restart_work(struct ath_softc *sc)
 {
ieee80211_queue_delayed_work(sc-hw, sc-tx_complete_work, 0);
 
-   if (AR_SREV_9340(sc-sc_ah) || AR_SREV_9485(sc-sc_ah) ||
-   AR_SREV_9550(sc-sc_ah))
+   if (AR_SREV_9340(sc-sc_ah) || AR_SREV_9330(sc-sc_ah))
ieee80211_queue_delayed_work(sc-hw, sc-hw_pll_work,
 msecs_to_jiffies(ATH_PLL_WORK_INTERVAL));
 
-- 
1.8.3.4

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [REGRESSION] 3.10.{6,7} crashes on network activity

2013-08-19 Thread Felix Fietkau
On 2013-08-20 2:28 AM, Greg Kroah-Hartman wrote:
 On Tue, Aug 20, 2013 at 08:26:11AM +0800, Tom Gundersen wrote:
 On Tue, Aug 20, 2013 at 8:03 AM, Greg Kroah-Hartman
 gre...@linuxfoundation.org wrote:
  On Tue, Aug 20, 2013 at 07:59:47AM +0800, Tom Gundersen wrote:
  Hi guys,
 
  Starting with 3.10.6 (and still present in .7) I get an oops on
  connecting to the network.
 
  The attached picture shows the oops. In case it does not reach the ML,
  the top of the call trace reads:
 
  brcms_c_compute_rtscts_dur
  brcms_c_ampdu_finalize
  ampdu_finalize
  dma_txfast
  brcms_c_txfifo
  brcms_c_sendpkt_mac80211
  brcms_ops_tx
  __ieee80211_tx
 
  I bisected the problem and the first bad commit is
 
  commit ef47a5e4f1aaf1d0e2e6875e34b2c9595897bef6
  Author: Felix Fietkau n...@openwrt.org
  Date:   Fri Jun 28 21:04:35 2013 +0200
 
  mac80211/minstrel_ht: fix cck rate sampling
 
  commit 1cd158573951f737fbc878a35cb5eb47bf9af3d5 upstream.
 
  Reverting it on top of .7 fixes the problem.
 
  I had the same (I suppose) problem on mainline some time ago, but I
  have not bisected it, verified that the problem still occurs there, or
  checked if reverting the upstream patch fixes it. I'd be happy to do
  that if it would help though.
 
  Let me know if you need any more information.
 
  Do you have this same problem with 3.11-rc6 as well?
 
 Yes, I just confirmed. I also confirmed that reverting the mainline
 commit on top of -rc6 fixes the problem.
 
 Great, thanks.
 
 Felix and Johannes, any chance we can get this reverted in Linus tree
 soon, and push that revert back to the 3.10 stable tree as well?
I'd like to avoid a revert, since that will simply replace one set of
issues with another. Let's limit the use of the feature that brcmsmac
can't handle to drivers that are known to work with it. Tom, Please
test this patch to see if it fixes your issue.

- Felix
---
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1501,6 +1501,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_RC_TABLE  = 124,
IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF  = 125,
IEEE80211_HW_TIMING_BEACON_ONLY = 126,
+   IEEE80211_HW_SUPPORTS_HT_CCK_RATES  = 127,
 };
 
 /**
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -828,6 +828,9 @@ minstrel_ht_update_cck(struct minstrel_p
if (sband-band != IEEE80211_BAND_2GHZ)
return;
 
+   if (!(mp-hw-flags  IEEE80211_HW_SUPPORTS_HT_CCK_RATES))
+   return;
+
mi-cck_supported = 0;
mi-cck_supported_short = 0;
for (i = 0; i  4; i++) {
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -807,7 +807,8 @@ void ath9k_set_hw_capab(struct ath_softc
IEEE80211_HW_PS_NULLFUNC_STACK |
IEEE80211_HW_SPECTRUM_MGMT |
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
-   IEEE80211_HW_SUPPORTS_RC_TABLE;
+   IEEE80211_HW_SUPPORTS_RC_TABLE |
+   IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
 
if (sc-sc_ah-caps.hw_caps  ATH9K_HW_CAP_HT) {
hw-flags |= IEEE80211_HW_AMPDU_AGGREGATION;
--- a/drivers/net/wireless/ath/carl9170/main.c
+++ b/drivers/net/wireless/ath/carl9170/main.c
@@ -1878,7 +1878,8 @@ void *carl9170_alloc(size_t priv_size)
 IEEE80211_HW_PS_NULLFUNC_STACK |
 IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC |
 IEEE80211_HW_SUPPORTS_RC_TABLE |
-IEEE80211_HW_SIGNAL_DBM;
+IEEE80211_HW_SIGNAL_DBM |
+IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
 
if (!modparam_noht) {
/*
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -6327,7 +6327,8 @@ static int rt2800_probe_hw_mode(struct r
IEEE80211_HW_SUPPORTS_PS |
IEEE80211_HW_PS_NULLFUNC_STACK |
IEEE80211_HW_AMPDU_AGGREGATION |
-   IEEE80211_HW_REPORTS_TX_ACK_STATUS;
+   IEEE80211_HW_REPORTS_TX_ACK_STATUS |
+   IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
 
/*
 * Don't set IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING for USB devices

--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] ARC: gdbserver breakage in Big-Endian configuration #1

2013-08-19 Thread Vineet Gupta
Hi Greg,

On 08/19/2013 08:27 PM, greg Kroah-Hartman wrote:
 On Mon, Aug 19, 2013 at 09:08:49AM +, Vineet Gupta wrote:
 Hi Greg,

 I'd posted these patches for stable backport. Do I need to do anything more 
 to get them included.

 https://patchwork.kernel.org/patch/2841153/  [1/2] ARC: gdbserver breakage 
 in Big-Endian configuration #1https://patchwork.kernel.org/patch/2841153/]
 https://patchwork.kernel.org/patch/2841158/  [2/2] ARC: gdbserver breakage 
 in Big-Endian configuration #2https://patchwork.kernel.org/patch/2841158/
 
 I ignored them as I thought you were submitting them for upstream
 inclusion.  If they are already in Linus's tree, then take a look at the
 file, Documentation/stable_kernel_rules.txt for how to send a patch for
 inclusion into a stable release (hint, I need to know the git commit id
 that the patch has in Linus's tree, which I didn't see anywhere here.)


I'm sure I mentioned the commit-id in the patch. Hint, please look at annotation
within ---8--- blocks in changelogs.

The caveat however is we can't apply those exact commits as it is as that 
warrants
more changes to be pulled in. However I'm going by the last stable kernel rule 
It
or an equivalent fix must already exist in Linus' tree (upstream).

Anyhow, since both these patches are extracted from same commit, I'll respin a
single patch (with a small addition - again part of the same commit) and send it
over. OK !

Thx,
-Vineet
--
To unsubscribe from this list: send the line unsubscribe stable in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html