Commit 69fad3f9 authored by Martin Schwidefsky's avatar Martin Schwidefsky Committed by Linus Torvalds

[PATCH] 2.5.22: s390 fixes.

some recent changes in the s390 architectures files:
1) Makefile fixes.
2) Add missing include statements.
3) Convert all parametes in the 31 bit emulation wrapper of sys_futex.
4) Remove semicolons after 'fi' in Config.in
5) Fix scheduler defines in system.h
6) Simplifications in qdio.c
parent abffad5d
...@@ -6,6 +6,7 @@ O_TARGET := math-emu.o ...@@ -6,6 +6,7 @@ O_TARGET := math-emu.o
obj-$(CONFIG_MATHEMU) := math.o qrnnd.o obj-$(CONFIG_MATHEMU) := math.o qrnnd.o
EXTRA_CFLAGS = -I. -I$(TOPDIR)/include/math-emu -w EXTRA_CFLAGS = -I. -I$(TOPDIR)/include/math-emu -w
EXTRA_AFLAGS := -traditional
include $(TOPDIR)/Rules.make include $(TOPDIR)/Rules.make
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
*/ */
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/mm.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/pgalloc.h> #include <asm/pgalloc.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
......
...@@ -1112,6 +1112,8 @@ sys32_fstat64_wrapper: ...@@ -1112,6 +1112,8 @@ sys32_fstat64_wrapper:
sys32_futex_wrapper: sys32_futex_wrapper:
llgtr %r2,%r2 # void * llgtr %r2,%r2 # void *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
lgfr %r4,%r4 # int
llgtr %r5,%r5 # struct timespec *
jg sys_futex # branch to system call jg sys_futex # branch to system call
.globl sys32_setxattr_wrapper .globl sys32_setxattr_wrapper
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
*/ */
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/mm.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/pgalloc.h> #include <asm/pgalloc.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
......
...@@ -17,18 +17,18 @@ if [ "$CONFIG_DASD" != "n" ]; then ...@@ -17,18 +17,18 @@ if [ "$CONFIG_DASD" != "n" ]; then
dep_tristate ' Support for ECKD Disks' CONFIG_DASD_ECKD $CONFIG_DASD dep_tristate ' Support for ECKD Disks' CONFIG_DASD_ECKD $CONFIG_DASD
if [ "$CONFIG_DASD_ECKD" = "m" ]; then if [ "$CONFIG_DASD_ECKD" = "m" ]; then
bool ' Automatic activation of ECKD module' CONFIG_DASD_AUTO_ECKD bool ' Automatic activation of ECKD module' CONFIG_DASD_AUTO_ECKD
fi; fi
dep_tristate ' Support for FBA Disks' CONFIG_DASD_FBA $CONFIG_DASD dep_tristate ' Support for FBA Disks' CONFIG_DASD_FBA $CONFIG_DASD
if [ "$CONFIG_DASD_FBA" = "m" ]; then if [ "$CONFIG_DASD_FBA" = "m" ]; then
bool ' Automatic activation of FBA module' CONFIG_DASD_AUTO_FBA bool ' Automatic activation of FBA module' CONFIG_DASD_AUTO_FBA
fi; fi
# dep_tristate ' Support for CKD Disks' CONFIG_DASD_CKD $CONFIG_DASD # dep_tristate ' Support for CKD Disks' CONFIG_DASD_CKD $CONFIG_DASD
if [ "$CONFIG_ARCH_S390X" != "y" ]; then if [ "$CONFIG_ARCH_S390X" != "y" ]; then
dep_tristate ' Support for DIAG access to CMS reserved Disks' CONFIG_DASD_DIAG $CONFIG_DASD dep_tristate ' Support for DIAG access to CMS reserved Disks' CONFIG_DASD_DIAG $CONFIG_DASD
if [ "$CONFIG_DASD_DIAG" = "m" ]; then if [ "$CONFIG_DASD_DIAG" = "m" ]; then
bool ' Automatic activation of DIAG module' CONFIG_DASD_AUTO_DIAG bool ' Automatic activation of DIAG module' CONFIG_DASD_AUTO_DIAG
fi; fi
fi; fi
fi fi
endmenu endmenu
......
...@@ -7,6 +7,6 @@ export-objs := s390dyn.o qdio.o ...@@ -7,6 +7,6 @@ export-objs := s390dyn.o qdio.o
obj-$(CONFIG_QDIO) += qdio.o obj-$(CONFIG_QDIO) += qdio.o
obj-y += s390mach.o s390dyn.o sysinfo.o obj-y += s390mach.o s390dyn.o sysinfo.o
obj-y += block/ char/ misc/ net/ scsi/ cio/ obj-y += block/ char/ misc/ net/ cio/
include $(TOPDIR)/Rules.make include $(TOPDIR)/Rules.make
...@@ -61,9 +61,7 @@ void volatile qdio_eyecatcher(void) ...@@ -61,9 +61,7 @@ void volatile qdio_eyecatcher(void)
MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>"); MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>");
MODULE_DESCRIPTION("QDIO base support version 2, " \ MODULE_DESCRIPTION("QDIO base support version 2, " \
"Copyright 2000 IBM Corporation"); "Copyright 2000 IBM Corporation");
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,12))
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#endif
/******************** HERE WE GO ***********************************/ /******************** HERE WE GO ***********************************/
...@@ -1584,7 +1582,7 @@ static void qdio_release_irq_memory(qdio_irq_t *irq_ptr) ...@@ -1584,7 +1582,7 @@ static void qdio_release_irq_memory(qdio_irq_t *irq_ptr)
kfree(irq_ptr->input_qs[i]); kfree(irq_ptr->input_qs[i]);
next: next:
if (!irq_ptr->output_qs[i]) goto next2; if (!irq_ptr->output_qs[i]) continue;
available=0; available=0;
if (!irq_ptr->output_qs[i]->is_0copy_sbals_q) if (!irq_ptr->output_qs[i]->is_0copy_sbals_q)
for (j=0;j<QDIO_MAX_BUFFERS_PER_Q;j++) { for (j=0;j<QDIO_MAX_BUFFERS_PER_Q;j++) {
...@@ -1599,7 +1597,7 @@ static void qdio_release_irq_memory(qdio_irq_t *irq_ptr) ...@@ -1599,7 +1597,7 @@ static void qdio_release_irq_memory(qdio_irq_t *irq_ptr)
if (irq_ptr->output_qs[i]->slib) if (irq_ptr->output_qs[i]->slib)
kfree(irq_ptr->output_qs[i]->slib); kfree(irq_ptr->output_qs[i]->slib);
kfree(irq_ptr->output_qs[i]); kfree(irq_ptr->output_qs[i]);
next2:
} }
if (irq_ptr->qdr) kfree(irq_ptr->qdr); if (irq_ptr->qdr) kfree(irq_ptr->qdr);
kfree(irq_ptr); kfree(irq_ptr);
...@@ -2191,21 +2189,12 @@ static int qdio_chsc(qdio_chsc_area_t *chsc_area) ...@@ -2191,21 +2189,12 @@ static int qdio_chsc(qdio_chsc_area_t *chsc_area)
{ {
int cc; int cc;
#ifdef QDIO_32_BIT
asm volatile (
".insn rre,0xb25f0000,%1,0 \n\t"
"ipm %0 \n\t"
"srl %0,28 \n\t"
: "=d" (cc) : "d" (chsc_area) : "cc"
);
#else /* QDIO_32_BIT */
asm volatile ( asm volatile (
".insn rre,0xb25f0000,%1,0 \n\t" ".insn rre,0xb25f0000,%1,0 \n\t"
"ipm %0 \n\t" "ipm %0 \n\t"
"srl %0,28 \n\t" "srl %0,28 \n\t"
: "=d" (cc) : "d" (chsc_area) : "cc" : "=d" (cc) : "d" (chsc_area) : "cc"
); );
#endif /* QDIO_32_BIT */
return cc; return cc;
} }
......
...@@ -18,8 +18,12 @@ ...@@ -18,8 +18,12 @@
#endif #endif
#include <linux/kernel.h> #include <linux/kernel.h>
#define prepare_to_switch() do { } while(0) #define prepare_arch_schedule(prev) do { } while (0)
#define switch_to(prev,next) do { \ #define finish_arch_schedule(prev) do { } while (0)
#define prepare_arch_switch(rq) do { } while (0)
#define finish_arch_switch(rq) spin_unlock_irq(&(rq)->lock)
#define switch_to(prev,next,last) do { \
if (prev == next) \ if (prev == next) \
break; \ break; \
save_fp_regs1(&prev->thread.fp_regs); \ save_fp_regs1(&prev->thread.fp_regs); \
......
...@@ -18,8 +18,12 @@ ...@@ -18,8 +18,12 @@
#endif #endif
#include <linux/kernel.h> #include <linux/kernel.h>
#define prepare_to_switch() do { } while(0) #define prepare_arch_schedule(prev) do { } while (0)
#define switch_to(prev,next) do { \ #define finish_arch_schedule(prev) do { } while (0)
#define prepare_arch_switch(rq) do { } while (0)
#define finish_arch_switch(rq) spin_unlock_irq(&(rq)->lock)
#define switch_to(prev,next),last do { \
if (prev == next) \ if (prev == next) \
break; \ break; \
save_fp_regs(&prev->thread.fp_regs); \ save_fp_regs(&prev->thread.fp_regs); \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment