fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / powerpc / platforms / iseries / lpevents.c
index 2a9f81e..c1f4502 100644 (file)
 
 #include <asm/system.h>
 #include <asm/paca.h>
+#include <asm/firmware.h>
 #include <asm/iseries/it_lp_queue.h>
 #include <asm/iseries/hv_lp_event.h>
 #include <asm/iseries/hv_call_event.h>
-#include <asm/iseries/it_lp_naca.h>
+#include "it_lp_naca.h"
 
 /*
  * The LpQueue is used to pass event data from the hypervisor to
@@ -116,7 +117,7 @@ static void hvlpevent_clear_valid(struct HvLpEvent * event)
        hvlpevent_invalidate(event);
 }
 
-void process_hvlpevents(struct pt_regs *regs)
+void process_hvlpevents(void)
 {
        struct HvLpEvent * event;
 
@@ -144,7 +145,7 @@ void process_hvlpevents(struct pt_regs *regs)
                                __get_cpu_var(hvlpevent_counts)[event->xType]++;
                        if (event->xType < HvLpEvent_Type_NumTypes &&
                                        lpEventHandler[event->xType])
-                               lpEventHandler[event->xType](event, regs);
+                               lpEventHandler[event->xType](event);
                        else
                                printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType );
 
@@ -318,6 +319,9 @@ static int __init proc_lpevents_init(void)
 {
        struct proc_dir_entry *e;
 
+       if (!firmware_has_feature(FW_FEATURE_ISERIES))
+               return 0;
+
        e = create_proc_entry("iSeries/lpevents", S_IFREG|S_IRUGO, NULL);
        if (e)
                e->proc_fops = &proc_lpevents_operations;