|
@@ -206,7 +206,7 @@ int smp_request_message_ipi(int virq, int msg)
|
|
|
|
|
|
#ifdef CONFIG_PPC_SMP_MUXED_IPI
|
|
#ifdef CONFIG_PPC_SMP_MUXED_IPI
|
|
struct cpu_messages {
|
|
struct cpu_messages {
|
|
- int messages; /* current messages */
|
|
|
|
|
|
+ long messages; /* current messages */
|
|
unsigned long data; /* data for cause ipi */
|
|
unsigned long data; /* data for cause ipi */
|
|
};
|
|
};
|
|
static DEFINE_PER_CPU_SHARED_ALIGNED(struct cpu_messages, ipi_message);
|
|
static DEFINE_PER_CPU_SHARED_ALIGNED(struct cpu_messages, ipi_message);
|
|
@@ -236,15 +236,15 @@ void smp_muxed_ipi_message_pass(int cpu, int msg)
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef __BIG_ENDIAN__
|
|
#ifdef __BIG_ENDIAN__
|
|
-#define IPI_MESSAGE(A) (1 << (24 - 8 * (A)))
|
|
|
|
|
|
+#define IPI_MESSAGE(A) (1uL << ((BITS_PER_LONG - 8) - 8 * (A)))
|
|
#else
|
|
#else
|
|
-#define IPI_MESSAGE(A) (1 << (8 * (A)))
|
|
|
|
|
|
+#define IPI_MESSAGE(A) (1uL << (8 * (A)))
|
|
#endif
|
|
#endif
|
|
|
|
|
|
irqreturn_t smp_ipi_demux(void)
|
|
irqreturn_t smp_ipi_demux(void)
|
|
{
|
|
{
|
|
struct cpu_messages *info = this_cpu_ptr(&ipi_message);
|
|
struct cpu_messages *info = this_cpu_ptr(&ipi_message);
|
|
- unsigned int all;
|
|
|
|
|
|
+ unsigned long all;
|
|
|
|
|
|
mb(); /* order any irq clear */
|
|
mb(); /* order any irq clear */
|
|
|
|
|