]> err.no Git - linux-2.6/commitdiff
Merge branch 'for-2.6.24' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerp...
authorPaul Mackerras <paulus@samba.org>
Fri, 14 Dec 2007 05:46:50 +0000 (16:46 +1100)
committerPaul Mackerras <paulus@samba.org>
Fri, 14 Dec 2007 05:46:50 +0000 (16:46 +1100)
arch/powerpc/configs/ps3_defconfig
arch/powerpc/platforms/iseries/lpevents.c
arch/powerpc/platforms/ps3/Kconfig

index 5bd547ecd60af86eb1b584e3d47d797d08453333..0b5469fb6e0fa9b65f36ef44bab25c331f5eaa08 100644 (file)
@@ -157,7 +157,7 @@ CONFIG_PS3_HTAB_SIZE=20
 CONFIG_PS3_USE_LPAR_ADDR=y
 CONFIG_PS3_VUART=y
 CONFIG_PS3_PS3AV=y
-CONFIG_PS3_SYS_MANAGER=m
+CONFIG_PS3_SYS_MANAGER=y
 CONFIG_PS3_STORAGE=y
 CONFIG_PS3_DISK=y
 CONFIG_PS3_ROM=y
index 34bdbbe3ce590a73a70d04e5d91732189f1b43cb..275f49449839e189ff2776a0047fd03813595544 100644 (file)
@@ -121,6 +121,7 @@ void process_hvlpevents(void)
 {
        struct HvLpEvent * event;
 
+ restart:
        /* If we have recursed, just return */
        if (!spin_trylock(&hvlpevent_queue.hq_lock))
                return;
@@ -146,8 +147,20 @@ void process_hvlpevents(void)
                        if (event->xType < HvLpEvent_Type_NumTypes &&
                                        lpEventHandler[event->xType])
                                lpEventHandler[event->xType](event);
-                       else
-                               printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType );
+                       else {
+                               u8 type = event->xType;
+
+                               /*
+                                * Don't printk in the spinlock as printk
+                                * may require ack events form the HV to send
+                                * any characters there.
+                                */
+                               hvlpevent_clear_valid(event);
+                               spin_unlock(&hvlpevent_queue.hq_lock);
+                               printk(KERN_INFO
+                                       "Unexpected Lp Event type=%d\n", type);
+                               goto restart;
+                       }
 
                        hvlpevent_clear_valid(event);
                } else if (hvlpevent_queue.hq_overflow_pending)
index 67144d1d14056de4a88076830cc40a274ce5980d..298f1c9679fbd0b3b3e9d16b964c746230a0515c 100644 (file)
@@ -91,7 +91,7 @@ config PS3_SYS_MANAGER
        depends on PPC_PS3
        tristate "PS3 System Manager driver" if PS3_ADVANCED
        select PS3_VUART
-       default m
+       default y
        help
          Include support for the PS3 System Manager.