aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-10-11 03:56:12 -0400
committerJeff Garzik <jeff@garzik.org>2006-10-11 03:56:12 -0400
commit24fcbacedb0d83cabc6761acbecfbf751265ce52 (patch)
tree7147b206304b028c3cfd5de6317e5c8510098ca9 /include
parent2f614fe04f4463ff22234133319067d7361f54e5 (diff)
parent53a5fbdc2dff55161a206ed1a1385a8fa8055c34 (diff)
Merge branch 'master' into upstream-fixes
Diffstat (limited to 'include')
-rw-r--r--include/acpi/aclocal.h2
-rw-r--r--include/asm-alpha/irq_regs.h1
-rw-r--r--include/asm-alpha/machvec.h5
-rw-r--r--include/asm-arm/arch-clps711x/time.h3
-rw-r--r--include/asm-arm/arch-imx/imx-dma.h8
-rw-r--r--include/asm-arm/arch-l7200/time.h3
-rw-r--r--include/asm-arm/arch-pnx4008/dma.h2
-rw-r--r--include/asm-arm/arch-pxa/dma.h2
-rw-r--r--include/asm-arm/arch-pxa/mmc.h2
-rw-r--r--include/asm-arm/hardware/sharpsl_pm.h6
-rw-r--r--include/asm-arm/hw_irq.h2
-rw-r--r--include/asm-arm/io.h2
-rw-r--r--include/asm-arm/irq_regs.h1
-rw-r--r--include/asm-arm/mach/irq.h9
-rw-r--r--include/asm-arm/mach/time.h4
-rw-r--r--include/asm-frv/dma.h5
-rw-r--r--include/asm-frv/irq_regs.h27
-rw-r--r--include/asm-frv/ptrace.h1
-rw-r--r--include/asm-generic/bug.h16
-rw-r--r--include/asm-generic/irq_regs.h37
-rw-r--r--include/asm-generic/percpu.h2
-rw-r--r--include/asm-i386/apic.h4
-rw-r--r--include/asm-i386/arch_hooks.h2
-rw-r--r--include/asm-i386/floppy.h6
-rw-r--r--include/asm-i386/hpet.h2
-rw-r--r--include/asm-i386/hw_irq.h5
-rw-r--r--include/asm-i386/irq_regs.h1
-rw-r--r--include/asm-i386/mach-default/do_timer.h8
-rw-r--r--include/asm-i386/mach-visws/do_timer.h8
-rw-r--r--include/asm-i386/mach-voyager/do_timer.h6
-rw-r--r--include/asm-i386/smp.h5
-rw-r--r--include/asm-i386/voyager.h4
-rw-r--r--include/asm-ia64/irq_regs.h1
-rw-r--r--include/asm-ia64/machvec.h4
-rw-r--r--include/asm-ia64/sn/pcibr_provider.h2
-rw-r--r--include/asm-ia64/sn/tioca_provider.h4
-rw-r--r--include/asm-ia64/sn/tioce_provider.h2
-rw-r--r--include/asm-ia64/sn/xpc.h2
-rw-r--r--include/asm-m32r/irq_regs.h1
-rw-r--r--include/asm-m68k/atari_stdma.h3
-rw-r--r--include/asm-m68k/dma-mapping.h7
-rw-r--r--include/asm-m68k/floppy.h10
-rw-r--r--include/asm-m68k/ide.h2
-rw-r--r--include/asm-m68k/irq.h11
-rw-r--r--include/asm-m68k/irq_regs.h1
-rw-r--r--include/asm-m68k/mac_iop.h6
-rw-r--r--include/asm-m68k/machdep.h2
-rw-r--r--include/asm-m68k/signal.h1
-rw-r--r--include/asm-m68k/string.h198
-rw-r--r--include/asm-m68k/sun3xflop.h7
-rw-r--r--include/asm-m68k/system.h6
-rw-r--r--include/asm-m68k/unistd.h31
-rw-r--r--include/asm-m68k/user.h2
-rw-r--r--include/asm-mips/dec/ecc.h3
-rw-r--r--include/asm-mips/dec/kn01.h3
-rw-r--r--include/asm-mips/dec/kn02xa.h3
-rw-r--r--include/asm-mips/fpu.h6
-rw-r--r--include/asm-mips/irq.h8
-rw-r--r--include/asm-mips/irq_regs.h21
-rw-r--r--include/asm-mips/jmr3927/irq.h4
-rw-r--r--include/asm-mips/mach-au1x00/au1000_dma.h3
-rw-r--r--include/asm-mips/mach-au1x00/au1000_usbdev.h73
-rw-r--r--include/asm-mips/marvell.h2
-rw-r--r--include/asm-mips/msc01_ic.h2
-rw-r--r--include/asm-mips/thread_info.h1
-rw-r--r--include/asm-mips/time.h8
-rw-r--r--include/asm-parisc/irq_regs.h1
-rw-r--r--include/asm-parisc/pdc.h2
-rw-r--r--include/asm-powerpc/i8259.h4
-rw-r--r--include/asm-powerpc/ibmebus.h2
-rw-r--r--include/asm-powerpc/ipic.h4
-rw-r--r--include/asm-powerpc/irq.h2
-rw-r--r--include/asm-powerpc/irq_regs.h2
-rw-r--r--include/asm-powerpc/iseries/hv_lp_event.h2
-rw-r--r--include/asm-powerpc/iseries/it_lp_queue.h2
-rw-r--r--include/asm-powerpc/machdep.h2
-rw-r--r--include/asm-powerpc/mpic.h4
-rw-r--r--include/asm-powerpc/reg.h2
-rw-r--r--include/asm-powerpc/smp.h3
-rw-r--r--include/asm-ppc/commproc.h3
-rw-r--r--include/asm-ppc/floppy.h6
-rw-r--r--include/asm-ppc/gt64260.h2
-rw-r--r--include/asm-ppc/machdep.h2
-rw-r--r--include/asm-ppc/mpc52xx.h2
-rw-r--r--include/asm-ppc/mv64x60.h4
-rw-r--r--include/asm-ppc/open_pic.h6
-rw-r--r--include/asm-ppc/smp.h2
-rw-r--r--include/asm-s390/hardirq.h2
-rw-r--r--include/asm-s390/irq_regs.h1
-rw-r--r--include/asm-s390/percpu.h4
-rw-r--r--include/asm-s390/s390_ext.h2
-rw-r--r--include/asm-sparc/floppy.h2
-rw-r--r--include/asm-sparc/irq.h6
-rw-r--r--include/asm-sparc/irq_regs.h1
-rw-r--r--include/asm-sparc/spinlock.h28
-rw-r--r--include/asm-sparc64/floppy.h8
-rw-r--r--include/asm-sparc64/irq_regs.h1
-rw-r--r--include/asm-um/irq_regs.h1
-rw-r--r--include/asm-x86_64/apic.h2
-rw-r--r--include/asm-x86_64/floppy.h6
-rw-r--r--include/asm-x86_64/genapic.h1
-rw-r--r--include/asm-x86_64/hw_irq.h2
-rw-r--r--include/asm-x86_64/irq_regs.h1
-rw-r--r--include/asm-x86_64/mach_apic.h1
-rw-r--r--include/asm-x86_64/percpu.h6
-rw-r--r--include/asm-x86_64/proto.h4
-rw-r--r--include/linux/adb.h4
-rw-r--r--include/linux/arcdevice.h2
-rw-r--r--include/linux/cdrom.h28
-rw-r--r--include/linux/compat.h2
-rw-r--r--include/linux/config.h9
-rw-r--r--include/linux/dccp.h2
-rw-r--r--include/linux/hiddev.h4
-rw-r--r--include/linux/ide.h2
-rw-r--r--include/linux/if_vlan.h2
-rw-r--r--include/linux/input.h7
-rw-r--r--include/linux/interrupt.h9
-rw-r--r--include/linux/io.h1
-rw-r--r--include/linux/ioc3.h2
-rw-r--r--include/linux/ioc4.h2
-rw-r--r--include/linux/irq.h66
-rw-r--r--include/linux/istallion.h4
-rw-r--r--include/linux/libata.h4
-rw-r--r--include/linux/mm.h1
-rw-r--r--include/linux/mmc/protocol.h1
-rw-r--r--include/linux/parport.h16
-rw-r--r--include/linux/percpu.h2
-rw-r--r--include/linux/profile.h2
-rw-r--r--include/linux/rtc.h2
-rw-r--r--include/linux/sched.h7
-rw-r--r--include/linux/serial_core.h7
-rw-r--r--include/linux/serio.h5
-rw-r--r--include/linux/smb_fs.h12
-rw-r--r--include/linux/sunrpc/svc.h3
-rw-r--r--include/linux/syscalls.h2
-rw-r--r--include/linux/sysrq.h6
-rw-r--r--include/linux/tifm.h1
-rw-r--r--include/linux/timex.h3
-rw-r--r--include/linux/ufs_fs.h10
-rw-r--r--include/linux/usb.h3
-rw-r--r--include/linux/usb/serial.h12
-rw-r--r--include/linux/xattr.h1
-rw-r--r--include/sound/core.h4
-rw-r--r--include/sound/cs4231.h2
-rw-r--r--include/sound/emu10k1.h2
-rw-r--r--include/sound/gus.h2
-rw-r--r--include/sound/initval.h2
-rw-r--r--include/sound/mpu401.h6
-rw-r--r--include/sound/sb.h6
-rw-r--r--include/sound/version.h6
-rw-r--r--include/sound/vx_core.h2
151 files changed, 538 insertions, 509 deletions
diff --git a/include/acpi/aclocal.h b/include/acpi/aclocal.h
index a4d0e73d5aca..063c4b54290f 100644
--- a/include/acpi/aclocal.h
+++ b/include/acpi/aclocal.h
@@ -708,7 +708,7 @@ struct acpi_bit_register_info {
708 * must be preserved. 708 * must be preserved.
709 */ 709 */
710#define ACPI_PM1_STATUS_PRESERVED_BITS 0x0800 /* Bit 11 */ 710#define ACPI_PM1_STATUS_PRESERVED_BITS 0x0800 /* Bit 11 */
711#define ACPI_PM1_CONTROL_PRESERVED_BITS 0x0201 /* Bit 9, Bit 0 (SCI_EN) */ 711#define ACPI_PM1_CONTROL_PRESERVED_BITS 0x0200 /* Bit 9 (whatever) */
712 712
713/* 713/*
714 * Register IDs 714 * Register IDs
diff --git a/include/asm-alpha/irq_regs.h b/include/asm-alpha/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-alpha/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-alpha/machvec.h b/include/asm-alpha/machvec.h
index aced22f91752..a86c083cdf7f 100644
--- a/include/asm-alpha/machvec.h
+++ b/include/asm-alpha/machvec.h
@@ -15,7 +15,6 @@
15 15
16struct task_struct; 16struct task_struct;
17struct mm_struct; 17struct mm_struct;
18struct pt_regs;
19struct vm_area_struct; 18struct vm_area_struct;
20struct linux_hose_info; 19struct linux_hose_info;
21struct pci_dev; 20struct pci_dev;
@@ -79,8 +78,8 @@ struct alpha_machine_vector
79 78
80 void (*update_irq_hw)(unsigned long, unsigned long, int); 79 void (*update_irq_hw)(unsigned long, unsigned long, int);
81 void (*ack_irq)(unsigned long); 80 void (*ack_irq)(unsigned long);
82 void (*device_interrupt)(unsigned long vector, struct pt_regs *regs); 81 void (*device_interrupt)(unsigned long vector);
83 void (*machine_check)(u64 vector, u64 la, struct pt_regs *regs); 82 void (*machine_check)(u64 vector, u64 la);
84 83
85 void (*smp_callin)(void); 84 void (*smp_callin)(void);
86 void (*init_arch)(void); 85 void (*init_arch)(void);
diff --git a/include/asm-arm/arch-clps711x/time.h b/include/asm-arm/arch-clps711x/time.h
index 0e4a3901d3b3..5edaae1c61d3 100644
--- a/include/asm-arm/arch-clps711x/time.h
+++ b/include/asm-arm/arch-clps711x/time.h
@@ -26,8 +26,9 @@ extern void clps711x_setup_timer(void);
26 * IRQ handler for the timer 26 * IRQ handler for the timer
27 */ 27 */
28static irqreturn_t 28static irqreturn_t
29p720t_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 29p720t_timer_interrupt(int irq, void *dev_id)
30{ 30{
31 struct pt_regs *regs = get_irq_regs();
31 do_leds(); 32 do_leds();
32 do_timer(1); 33 do_timer(1);
33#ifndef CONFIG_SMP 34#ifndef CONFIG_SMP
diff --git a/include/asm-arm/arch-imx/imx-dma.h b/include/asm-arm/arch-imx/imx-dma.h
index 599f03e5a9ef..5b1066da4e1f 100644
--- a/include/asm-arm/arch-imx/imx-dma.h
+++ b/include/asm-arm/arch-imx/imx-dma.h
@@ -45,8 +45,8 @@
45 45
46struct imx_dma_channel { 46struct imx_dma_channel {
47 const char *name; 47 const char *name;
48 void (*irq_handler) (int, void *, struct pt_regs *); 48 void (*irq_handler) (int, void *);
49 void (*err_handler) (int, void *, struct pt_regs *, int errcode); 49 void (*err_handler) (int, void *, int errcode);
50 void *data; 50 void *data;
51 dmamode_t dma_mode; 51 dmamode_t dma_mode;
52 struct scatterlist *sg; 52 struct scatterlist *sg;
@@ -77,8 +77,8 @@ imx_dma_setup_sg(imx_dmach_t dma_ch,
77 77
78int 78int
79imx_dma_setup_handlers(imx_dmach_t dma_ch, 79imx_dma_setup_handlers(imx_dmach_t dma_ch,
80 void (*irq_handler) (int, void *, struct pt_regs *), 80 void (*irq_handler) (int, void *),
81 void (*err_handler) (int, void *, struct pt_regs *, int), void *data); 81 void (*err_handler) (int, void *, int), void *data);
82 82
83void imx_dma_enable(imx_dmach_t dma_ch); 83void imx_dma_enable(imx_dmach_t dma_ch);
84 84
diff --git a/include/asm-arm/arch-l7200/time.h b/include/asm-arm/arch-l7200/time.h
index c69cb508735f..ea22f7fff9cd 100644
--- a/include/asm-arm/arch-l7200/time.h
+++ b/include/asm-arm/arch-l7200/time.h
@@ -43,8 +43,9 @@
43 * Handler for RTC timer interrupt 43 * Handler for RTC timer interrupt
44 */ 44 */
45static irqreturn_t 45static irqreturn_t
46timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 46timer_interrupt(int irq, void *dev_id)
47{ 47{
48 struct pt_regs *regs = get_irq_regs();
48 do_timer(1); 49 do_timer(1);
49#ifndef CONFIG_SMP 50#ifndef CONFIG_SMP
50 update_process_times(user_mode(regs)); 51 update_process_times(user_mode(regs));
diff --git a/include/asm-arm/arch-pnx4008/dma.h b/include/asm-arm/arch-pnx4008/dma.h
index 3aee1204795b..418f15283ff1 100644
--- a/include/asm-arm/arch-pnx4008/dma.h
+++ b/include/asm-arm/arch-pnx4008/dma.h
@@ -137,7 +137,7 @@ extern void pnx4008_free_ll_entry(struct pnx4008_dma_ll *, dma_addr_t);
137extern void pnx4008_free_ll(u32 ll_dma, struct pnx4008_dma_ll *); 137extern void pnx4008_free_ll(u32 ll_dma, struct pnx4008_dma_ll *);
138 138
139extern int pnx4008_request_channel(char *, int, 139extern int pnx4008_request_channel(char *, int,
140 void (*)(int, int, void *, struct pt_regs *), 140 void (*)(int, int, void *),
141 void *); 141 void *);
142extern void pnx4008_free_channel(int); 142extern void pnx4008_free_channel(int);
143extern int pnx4008_config_dma(int, int, int); 143extern int pnx4008_config_dma(int, int, int);
diff --git a/include/asm-arm/arch-pxa/dma.h b/include/asm-arm/arch-pxa/dma.h
index a008150abc59..bed042d71d68 100644
--- a/include/asm-arm/arch-pxa/dma.h
+++ b/include/asm-arm/arch-pxa/dma.h
@@ -56,7 +56,7 @@ for ( \
56 56
57int pxa_request_dma (char *name, 57int pxa_request_dma (char *name,
58 pxa_dma_prio prio, 58 pxa_dma_prio prio,
59 void (*irq_handler)(int, void *, struct pt_regs *), 59 void (*irq_handler)(int, void *),
60 void *data); 60 void *data);
61 61
62void pxa_free_dma (int dma_ch); 62void pxa_free_dma (int dma_ch);
diff --git a/include/asm-arm/arch-pxa/mmc.h b/include/asm-arm/arch-pxa/mmc.h
index 88c17dd02ed2..a38a28c4bbd8 100644
--- a/include/asm-arm/arch-pxa/mmc.h
+++ b/include/asm-arm/arch-pxa/mmc.h
@@ -10,7 +10,7 @@ struct mmc_host;
10struct pxamci_platform_data { 10struct pxamci_platform_data {
11 unsigned int ocr_mask; /* available voltages */ 11 unsigned int ocr_mask; /* available voltages */
12 unsigned long detect_delay; /* delay in jiffies before detecting cards after interrupt */ 12 unsigned long detect_delay; /* delay in jiffies before detecting cards after interrupt */
13 int (*init)(struct device *, irqreturn_t (*)(int, void *, struct pt_regs *), void *); 13 int (*init)(struct device *, irq_handler_t , void *);
14 int (*get_ro)(struct device *); 14 int (*get_ro)(struct device *);
15 void (*setpower)(struct device *, unsigned int); 15 void (*setpower)(struct device *, unsigned int);
16 void (*exit)(struct device *, void *); 16 void (*exit)(struct device *, void *);
diff --git a/include/asm-arm/hardware/sharpsl_pm.h b/include/asm-arm/hardware/sharpsl_pm.h
index a836e76a14f7..2d00db22b981 100644
--- a/include/asm-arm/hardware/sharpsl_pm.h
+++ b/include/asm-arm/hardware/sharpsl_pm.h
@@ -100,7 +100,7 @@ extern struct sharpsl_pm_status sharpsl_pm;
100 100
101void sharpsl_battery_kick(void); 101void sharpsl_battery_kick(void);
102void sharpsl_pm_led(int val); 102void sharpsl_pm_led(int val);
103irqreturn_t sharpsl_ac_isr(int irq, void *dev_id, struct pt_regs *fp); 103irqreturn_t sharpsl_ac_isr(int irq, void *dev_id);
104irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id, struct pt_regs *fp); 104irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id);
105irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id, struct pt_regs *fp); 105irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id);
106 106
diff --git a/include/asm-arm/hw_irq.h b/include/asm-arm/hw_irq.h
index ea856971989a..98d594a973d6 100644
--- a/include/asm-arm/hw_irq.h
+++ b/include/asm-arm/hw_irq.h
@@ -12,7 +12,7 @@
12 if (!(action->flags & IRQF_TIMER) && system_timer->dyn_tick) { \ 12 if (!(action->flags & IRQF_TIMER) && system_timer->dyn_tick) { \
13 write_seqlock(&xtime_lock); \ 13 write_seqlock(&xtime_lock); \
14 if (system_timer->dyn_tick->state & DYN_TICK_ENABLED) \ 14 if (system_timer->dyn_tick->state & DYN_TICK_ENABLED) \
15 system_timer->dyn_tick->handler(irq, 0, regs); \ 15 system_timer->dyn_tick->handler(irq, NULL); \
16 write_sequnlock(&xtime_lock); \ 16 write_sequnlock(&xtime_lock); \
17 } 17 }
18#endif 18#endif
diff --git a/include/asm-arm/io.h b/include/asm-arm/io.h
index 8076a85c3675..34aaaac4f617 100644
--- a/include/asm-arm/io.h
+++ b/include/asm-arm/io.h
@@ -63,7 +63,7 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen);
63 */ 63 */
64extern void __iomem * __ioremap_pfn(unsigned long, unsigned long, size_t, unsigned long); 64extern void __iomem * __ioremap_pfn(unsigned long, unsigned long, size_t, unsigned long);
65extern void __iomem * __ioremap(unsigned long, size_t, unsigned long); 65extern void __iomem * __ioremap(unsigned long, size_t, unsigned long);
66extern void __iounmap(void __iomem *addr); 66extern void __iounmap(volatile void __iomem *addr);
67 67
68/* 68/*
69 * Bad read/write accesses... 69 * Bad read/write accesses...
diff --git a/include/asm-arm/irq_regs.h b/include/asm-arm/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-arm/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-arm/mach/irq.h b/include/asm-arm/mach/irq.h
index 131f33733d25..0e017ecf2096 100644
--- a/include/asm-arm/mach/irq.h
+++ b/include/asm-arm/mach/irq.h
@@ -30,10 +30,9 @@ extern int show_fiq_list(struct seq_file *, void *);
30/* 30/*
31 * Obsolete inline function for calling irq descriptor handlers. 31 * Obsolete inline function for calling irq descriptor handlers.
32 */ 32 */
33static inline void desc_handle_irq(unsigned int irq, struct irq_desc *desc, 33static inline void desc_handle_irq(unsigned int irq, struct irq_desc *desc)
34 struct pt_regs *regs)
35{ 34{
36 desc->handle_irq(irq, desc, regs); 35 desc->handle_irq(irq, desc);
37} 36}
38 37
39void set_irq_flags(unsigned int irq, unsigned int flags); 38void set_irq_flags(unsigned int irq, unsigned int flags);
@@ -51,10 +50,10 @@ void set_irq_flags(unsigned int irq, unsigned int flags);
51#define irqdesc irq_desc 50#define irqdesc irq_desc
52#define irqchip irq_chip 51#define irqchip irq_chip
53 52
54#define do_bad_IRQ(irq,desc,regs) \ 53#define do_bad_IRQ(irq,desc) \
55do { \ 54do { \
56 spin_lock(&desc->lock); \ 55 spin_lock(&desc->lock); \
57 handle_bad_irq(irq, desc, regs); \ 56 handle_bad_irq(irq, desc); \
58 spin_unlock(&desc->lock); \ 57 spin_unlock(&desc->lock); \
59} while(0) 58} while(0)
60 59
diff --git a/include/asm-arm/mach/time.h b/include/asm-arm/mach/time.h
index 1eb93f5c0d6c..5dc357013b79 100644
--- a/include/asm-arm/mach/time.h
+++ b/include/asm-arm/mach/time.h
@@ -57,7 +57,7 @@ struct dyn_tick_timer {
57 int (*enable)(void); /* Enables dynamic tick */ 57 int (*enable)(void); /* Enables dynamic tick */
58 int (*disable)(void); /* Disables dynamic tick */ 58 int (*disable)(void); /* Disables dynamic tick */
59 void (*reprogram)(unsigned long); /* Reprograms the timer */ 59 void (*reprogram)(unsigned long); /* Reprograms the timer */
60 int (*handler)(int, void *, struct pt_regs *); 60 int (*handler)(int, void *);
61}; 61};
62 62
63void timer_dyn_reprogram(void); 63void timer_dyn_reprogram(void);
@@ -66,7 +66,7 @@ void timer_dyn_reprogram(void);
66#endif 66#endif
67 67
68extern struct sys_timer *system_timer; 68extern struct sys_timer *system_timer;
69extern void timer_tick(struct pt_regs *); 69extern void timer_tick(void);
70 70
71/* 71/*
72 * Kernel time keeping support. 72 * Kernel time keeping support.
diff --git a/include/asm-frv/dma.h b/include/asm-frv/dma.h
index 18d6bb8f84fc..683c47d48a5b 100644
--- a/include/asm-frv/dma.h
+++ b/include/asm-frv/dma.h
@@ -24,10 +24,7 @@
24/* 24/*
25 * FRV DMA controller management 25 * FRV DMA controller management
26 */ 26 */
27struct pt_regs; 27typedef irqreturn_t (*dma_irq_handler_t)(int dmachan, unsigned long cstr, void *data);
28
29typedef irqreturn_t (*dma_irq_handler_t)(int dmachan, unsigned long cstr, void *data,
30 struct pt_regs *regs);
31 28
32extern void frv_dma_init(void); 29extern void frv_dma_init(void);
33 30
diff --git a/include/asm-frv/irq_regs.h b/include/asm-frv/irq_regs.h
new file mode 100644
index 000000000000..d22e83289ad1
--- /dev/null
+++ b/include/asm-frv/irq_regs.h
@@ -0,0 +1,27 @@
1/* FRV per-CPU frame pointer holder
2 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12#ifndef _ASM_IRQ_REGS_H
13#define _ASM_IRQ_REGS_H
14
15/*
16 * Per-cpu current frame pointer - the location of the last exception frame on
17 * the stack
18 * - on FRV, GR28 is dedicated to keeping a pointer to the current exception
19 * frame
20 */
21#define ARCH_HAS_OWN_IRQ_REGS
22
23#ifndef __ASSEMBLY__
24#define get_irq_regs() (__frame)
25#endif
26
27#endif /* _ASM_IRQ_REGS_H */
diff --git a/include/asm-frv/ptrace.h b/include/asm-frv/ptrace.h
index 7ff525162a72..9a2241b8eb1e 100644
--- a/include/asm-frv/ptrace.h
+++ b/include/asm-frv/ptrace.h
@@ -12,6 +12,7 @@
12#define _ASM_PTRACE_H 12#define _ASM_PTRACE_H
13 13
14#include <asm/registers.h> 14#include <asm/registers.h>
15#include <asm/irq_regs.h>
15 16
16#define in_syscall(regs) (((regs)->tbr & TBR_TT) == TBR_TT_TRAP0) 17#define in_syscall(regs) (((regs)->tbr & TBR_TT) == TBR_TT_TRAP0)
17 18
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index a5250895155e..1d9573cf4a0b 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -41,14 +41,14 @@
41#endif 41#endif
42#endif 42#endif
43 43
44#define WARN_ON_ONCE(condition) ({ \ 44#define WARN_ON_ONCE(condition) ({ \
45 static int __warn_once = 1; \ 45 static int __warned; \
46 typeof(condition) __ret_warn_once = (condition);\ 46 typeof(condition) __ret_warn_once = (condition); \
47 \ 47 \
48 if (likely(__warn_once)) \ 48 if (unlikely(__ret_warn_once)) \
49 if (WARN_ON(__ret_warn_once)) \ 49 if (WARN_ON(!__warned)) \
50 __warn_once = 0; \ 50 __warned = 1; \
51 unlikely(__ret_warn_once); \ 51 unlikely(__ret_warn_once); \
52}) 52})
53 53
54#ifdef CONFIG_SMP 54#ifdef CONFIG_SMP
diff --git a/include/asm-generic/irq_regs.h b/include/asm-generic/irq_regs.h
new file mode 100644
index 000000000000..5ae1d07d4a12
--- /dev/null
+++ b/include/asm-generic/irq_regs.h
@@ -0,0 +1,37 @@
1/* Fallback per-CPU frame pointer holder
2 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12#ifndef _ASM_GENERIC_IRQ_REGS_H
13#define _ASM_GENERIC_IRQ_REGS_H
14
15#include <linux/percpu.h>
16
17/*
18 * Per-cpu current frame pointer - the location of the last exception frame on
19 * the stack
20 */
21DECLARE_PER_CPU(struct pt_regs *, __irq_regs);
22
23static inline struct pt_regs *get_irq_regs(void)
24{
25 return __get_cpu_var(__irq_regs);
26}
27
28static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
29{
30 struct pt_regs *old_regs, **pp_regs = &__get_cpu_var(__irq_regs);
31
32 old_regs = *pp_regs;
33 *pp_regs = new_regs;
34 return old_regs;
35}
36
37#endif /* _ASM_GENERIC_IRQ_REGS_H */
diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
index 6d45ee5472af..196376262240 100644
--- a/include/asm-generic/percpu.h
+++ b/include/asm-generic/percpu.h
@@ -15,7 +15,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
15 15
16/* var is in discarded region: offset to particular copy we want */ 16/* var is in discarded region: offset to particular copy we want */
17#define per_cpu(var, cpu) (*({ \ 17#define per_cpu(var, cpu) (*({ \
18 extern int simple_indentifier_##var(void); \ 18 extern int simple_identifier_##var(void); \
19 RELOC_HIDE(&per_cpu__##var, __per_cpu_offset[cpu]); })) 19 RELOC_HIDE(&per_cpu__##var, __per_cpu_offset[cpu]); }))
20#define __get_cpu_var(var) per_cpu(var, smp_processor_id()) 20#define __get_cpu_var(var) per_cpu(var, smp_processor_id())
21#define __raw_get_cpu_var(var) per_cpu(var, raw_smp_processor_id()) 21#define __raw_get_cpu_var(var) per_cpu(var, raw_smp_processor_id())
diff --git a/include/asm-i386/apic.h b/include/asm-i386/apic.h
index 3a42b7d6fc92..b9529578fc37 100644
--- a/include/asm-i386/apic.h
+++ b/include/asm-i386/apic.h
@@ -98,7 +98,7 @@ extern void sync_Arb_IDs (void);
98extern void init_bsp_APIC (void); 98extern void init_bsp_APIC (void);
99extern void setup_local_APIC (void); 99extern void setup_local_APIC (void);
100extern void init_apic_mappings (void); 100extern void init_apic_mappings (void);
101extern void smp_local_timer_interrupt (struct pt_regs * regs); 101extern void smp_local_timer_interrupt (void);
102extern void setup_boot_APIC_clock (void); 102extern void setup_boot_APIC_clock (void);
103extern void setup_secondary_APIC_clock (void); 103extern void setup_secondary_APIC_clock (void);
104extern int APIC_init_uniprocessor (void); 104extern int APIC_init_uniprocessor (void);
@@ -107,7 +107,7 @@ extern void enable_APIC_timer(void);
107 107
108extern void enable_NMI_through_LVT0 (void * dummy); 108extern void enable_NMI_through_LVT0 (void * dummy);
109 109
110void smp_send_timer_broadcast_ipi(struct pt_regs *regs); 110void smp_send_timer_broadcast_ipi(void);
111void switch_APIC_timer_to_ipi(void *cpumask); 111void switch_APIC_timer_to_ipi(void *cpumask);
112void switch_ipi_to_APIC_timer(void *cpumask); 112void switch_ipi_to_APIC_timer(void *cpumask);
113#define ARCH_APICTIMER_STOPS_ON_C3 1 113#define ARCH_APICTIMER_STOPS_ON_C3 1
diff --git a/include/asm-i386/arch_hooks.h b/include/asm-i386/arch_hooks.h
index 238cf4275b96..a8c1fca9726d 100644
--- a/include/asm-i386/arch_hooks.h
+++ b/include/asm-i386/arch_hooks.h
@@ -14,7 +14,7 @@
14extern void init_ISA_irqs(void); 14extern void init_ISA_irqs(void);
15extern void apic_intr_init(void); 15extern void apic_intr_init(void);
16extern void smp_intr_init(void); 16extern void smp_intr_init(void);
17extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); 17extern irqreturn_t timer_interrupt(int irq, void *dev_id);
18 18
19/* these are the defined hooks */ 19/* these are the defined hooks */
20extern void intr_init_hook(void); 20extern void intr_init_hook(void);
diff --git a/include/asm-i386/floppy.h b/include/asm-i386/floppy.h
index 359ead60b718..44ef2f55a8e9 100644
--- a/include/asm-i386/floppy.h
+++ b/include/asm-i386/floppy.h
@@ -51,7 +51,7 @@ static char *virtual_dma_addr;
51static int virtual_dma_mode; 51static int virtual_dma_mode;
52static int doing_pdma; 52static int doing_pdma;
53 53
54static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) 54static irqreturn_t floppy_hardint(int irq, void *dev_id)
55{ 55{
56 register unsigned char st; 56 register unsigned char st;
57 57
@@ -63,7 +63,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
63 static int dma_wait=0; 63 static int dma_wait=0;
64#endif 64#endif
65 if (!doing_pdma) 65 if (!doing_pdma)
66 return floppy_interrupt(irq, dev_id, regs); 66 return floppy_interrupt(irq, dev_id);
67 67
68#ifdef TRACE_FLPY_INT 68#ifdef TRACE_FLPY_INT
69 if(!calls) 69 if(!calls)
@@ -106,7 +106,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
106 dma_wait=0; 106 dma_wait=0;
107#endif 107#endif
108 doing_pdma = 0; 108 doing_pdma = 0;
109 floppy_interrupt(irq, dev_id, regs); 109 floppy_interrupt(irq, dev_id);
110 return IRQ_HANDLED; 110 return IRQ_HANDLED;
111 } 111 }
112#ifdef TRACE_FLPY_INT 112#ifdef TRACE_FLPY_INT
diff --git a/include/asm-i386/hpet.h b/include/asm-i386/hpet.h
index af5d435519d1..e47be9a56cc2 100644
--- a/include/asm-i386/hpet.h
+++ b/include/asm-i386/hpet.h
@@ -108,7 +108,7 @@ extern int hpet_set_alarm_time(unsigned char hrs, unsigned char min, unsigned ch
108extern int hpet_set_periodic_freq(unsigned long freq); 108extern int hpet_set_periodic_freq(unsigned long freq);
109extern int hpet_rtc_dropped_irq(void); 109extern int hpet_rtc_dropped_irq(void);
110extern int hpet_rtc_timer_init(void); 110extern int hpet_rtc_timer_init(void);
111extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 111extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id);
112#endif /* CONFIG_HPET_EMULATE_RTC */ 112#endif /* CONFIG_HPET_EMULATE_RTC */
113#endif /* CONFIG_HPET_TIMER */ 113#endif /* CONFIG_HPET_TIMER */
114#endif /* _I386_HPET_H */ 114#endif /* _I386_HPET_H */
diff --git a/include/asm-i386/hw_irq.h b/include/asm-i386/hw_irq.h
index 88f02a073561..0bedbdf5e907 100644
--- a/include/asm-i386/hw_irq.h
+++ b/include/asm-i386/hw_irq.h
@@ -26,9 +26,6 @@
26 * Interrupt entry/exit code at both C and assembly level 26 * Interrupt entry/exit code at both C and assembly level
27 */ 27 */
28 28
29extern u8 irq_vector[NR_IRQ_VECTORS];
30#define IO_APIC_VECTOR(irq) (irq_vector[irq])
31
32extern void (*interrupt[NR_IRQS])(void); 29extern void (*interrupt[NR_IRQS])(void);
33 30
34#ifdef CONFIG_SMP 31#ifdef CONFIG_SMP
@@ -41,7 +38,7 @@ fastcall void call_function_interrupt(void);
41fastcall void apic_timer_interrupt(void); 38fastcall void apic_timer_interrupt(void);
42fastcall void error_interrupt(void); 39fastcall void error_interrupt(void);
43fastcall void spurious_interrupt(void); 40fastcall void spurious_interrupt(void);
44fastcall void thermal_interrupt(struct pt_regs *); 41fastcall void thermal_interrupt(void);
45#define platform_legacy_irq(irq) ((irq) < 16) 42#define platform_legacy_irq(irq) ((irq) < 16)
46#endif 43#endif
47 44
diff --git a/include/asm-i386/irq_regs.h b/include/asm-i386/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-i386/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-i386/mach-default/do_timer.h b/include/asm-i386/mach-default/do_timer.h
index 4182c347ef85..7d606e3364ae 100644
--- a/include/asm-i386/mach-default/do_timer.h
+++ b/include/asm-i386/mach-default/do_timer.h
@@ -14,11 +14,11 @@
14 * timer interrupt as a means of triggering reschedules etc. 14 * timer interrupt as a means of triggering reschedules etc.
15 **/ 15 **/
16 16
17static inline void do_timer_interrupt_hook(struct pt_regs *regs) 17static inline void do_timer_interrupt_hook(void)
18{ 18{
19 do_timer(1); 19 do_timer(1);
20#ifndef CONFIG_SMP 20#ifndef CONFIG_SMP
21 update_process_times(user_mode_vm(regs)); 21 update_process_times(user_mode_vm(get_irq_regs()));
22#endif 22#endif
23/* 23/*
24 * In the SMP case we use the local APIC timer interrupt to do the 24 * In the SMP case we use the local APIC timer interrupt to do the
@@ -26,10 +26,10 @@ static inline void do_timer_interrupt_hook(struct pt_regs *regs)
26 * system, in that case we have to call the local interrupt handler. 26 * system, in that case we have to call the local interrupt handler.
27 */ 27 */
28#ifndef CONFIG_X86_LOCAL_APIC 28#ifndef CONFIG_X86_LOCAL_APIC
29 profile_tick(CPU_PROFILING, regs); 29 profile_tick(CPU_PROFILING);
30#else 30#else
31 if (!using_apic_timer) 31 if (!using_apic_timer)
32 smp_local_timer_interrupt(regs); 32 smp_local_timer_interrupt();
33#endif 33#endif
34} 34}
35 35
diff --git a/include/asm-i386/mach-visws/do_timer.h b/include/asm-i386/mach-visws/do_timer.h
index 8db618c5a72b..21cd696d4d0f 100644
--- a/include/asm-i386/mach-visws/do_timer.h
+++ b/include/asm-i386/mach-visws/do_timer.h
@@ -4,14 +4,14 @@
4#include <asm/i8259.h> 4#include <asm/i8259.h>
5#include "cobalt.h" 5#include "cobalt.h"
6 6
7static inline void do_timer_interrupt_hook(struct pt_regs *regs) 7static inline void do_timer_interrupt_hook(void)
8{ 8{
9 /* Clear the interrupt */ 9 /* Clear the interrupt */
10 co_cpu_write(CO_CPU_STAT,co_cpu_read(CO_CPU_STAT) & ~CO_STAT_TIMEINTR); 10 co_cpu_write(CO_CPU_STAT,co_cpu_read(CO_CPU_STAT) & ~CO_STAT_TIMEINTR);
11 11
12 do_timer(1); 12 do_timer(1);
13#ifndef CONFIG_SMP 13#ifndef CONFIG_SMP
14 update_process_times(user_mode_vm(regs)); 14 update_process_times(user_mode_vm(irq_regs));
15#endif 15#endif
16/* 16/*
17 * In the SMP case we use the local APIC timer interrupt to do the 17 * In the SMP case we use the local APIC timer interrupt to do the
@@ -19,10 +19,10 @@ static inline void do_timer_interrupt_hook(struct pt_regs *regs)
19 * system, in that case we have to call the local interrupt handler. 19 * system, in that case we have to call the local interrupt handler.
20 */ 20 */
21#ifndef CONFIG_X86_LOCAL_APIC 21#ifndef CONFIG_X86_LOCAL_APIC
22 profile_tick(CPU_PROFILING, regs); 22 profile_tick(CPU_PROFILING);
23#else 23#else
24 if (!using_apic_timer) 24 if (!using_apic_timer)
25 smp_local_timer_interrupt(regs); 25 smp_local_timer_interrupt();
26#endif 26#endif
27} 27}
28 28
diff --git a/include/asm-i386/mach-voyager/do_timer.h b/include/asm-i386/mach-voyager/do_timer.h
index 099fe9f5c1b2..04e69c104a74 100644
--- a/include/asm-i386/mach-voyager/do_timer.h
+++ b/include/asm-i386/mach-voyager/do_timer.h
@@ -1,14 +1,14 @@
1/* defines for inline arch setup functions */ 1/* defines for inline arch setup functions */
2#include <asm/voyager.h> 2#include <asm/voyager.h>
3 3
4static inline void do_timer_interrupt_hook(struct pt_regs *regs) 4static inline void do_timer_interrupt_hook(void)
5{ 5{
6 do_timer(1); 6 do_timer(1);
7#ifndef CONFIG_SMP 7#ifndef CONFIG_SMP
8 update_process_times(user_mode_vm(regs)); 8 update_process_times(user_mode_vm(irq_regs));
9#endif 9#endif
10 10
11 voyager_timer_interrupt(regs); 11 voyager_timer_interrupt();
12} 12}
13 13
14static inline int do_timer_overflow(int count) 14static inline int do_timer_overflow(int count)
diff --git a/include/asm-i386/smp.h b/include/asm-i386/smp.h
index 6aa1206f6e2a..bd59c1508e71 100644
--- a/include/asm-i386/smp.h
+++ b/include/asm-i386/smp.h
@@ -46,8 +46,6 @@ extern u8 x86_cpu_to_apicid[];
46 46
47#define cpu_physical_id(cpu) x86_cpu_to_apicid[cpu] 47#define cpu_physical_id(cpu) x86_cpu_to_apicid[cpu]
48 48
49extern u8 apicid_2_node[];
50
51#ifdef CONFIG_HOTPLUG_CPU 49#ifdef CONFIG_HOTPLUG_CPU
52extern void cpu_exit_clear(void); 50extern void cpu_exit_clear(void);
53extern void cpu_uninit(void); 51extern void cpu_uninit(void);
@@ -101,6 +99,9 @@ extern unsigned int num_processors;
101#endif 99#endif
102 100
103#ifndef __ASSEMBLY__ 101#ifndef __ASSEMBLY__
102
103extern u8 apicid_2_node[];
104
104#ifdef CONFIG_X86_LOCAL_APIC 105#ifdef CONFIG_X86_LOCAL_APIC
105static __inline int logical_smp_processor_id(void) 106static __inline int logical_smp_processor_id(void)
106{ 107{
diff --git a/include/asm-i386/voyager.h b/include/asm-i386/voyager.h
index aaf432dd7673..e74c54aa757f 100644
--- a/include/asm-i386/voyager.h
+++ b/include/asm-i386/voyager.h
@@ -505,8 +505,8 @@ extern int voyager_memory_detect(int region, __u32 *addr, __u32 *length);
505extern void voyager_smp_intr_init(void); 505extern void voyager_smp_intr_init(void);
506extern __u8 voyager_extended_cmos_read(__u16 cmos_address); 506extern __u8 voyager_extended_cmos_read(__u16 cmos_address);
507extern void voyager_smp_dump(void); 507extern void voyager_smp_dump(void);
508extern void voyager_timer_interrupt(struct pt_regs *regs); 508extern void voyager_timer_interrupt(void);
509extern void smp_local_timer_interrupt(struct pt_regs * regs); 509extern void smp_local_timer_interrupt(void);
510extern void voyager_power_off(void); 510extern void voyager_power_off(void);
511extern void smp_voyager_power_off(void *dummy); 511extern void smp_voyager_power_off(void *dummy);
512extern void voyager_restart(void); 512extern void voyager_restart(void);
diff --git a/include/asm-ia64/irq_regs.h b/include/asm-ia64/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-ia64/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h
index 90cba967df35..7ffbddf5306f 100644
--- a/include/asm-ia64/machvec.h
+++ b/include/asm-ia64/machvec.h
@@ -26,7 +26,7 @@ typedef void ia64_mv_setup_t (char **);
26typedef void ia64_mv_cpu_init_t (void); 26typedef void ia64_mv_cpu_init_t (void);
27typedef void ia64_mv_irq_init_t (void); 27typedef void ia64_mv_irq_init_t (void);
28typedef void ia64_mv_send_ipi_t (int, int, int, int); 28typedef void ia64_mv_send_ipi_t (int, int, int, int);
29typedef void ia64_mv_timer_interrupt_t (int, void *, struct pt_regs *); 29typedef void ia64_mv_timer_interrupt_t (int, void *);
30typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); 30typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long);
31typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); 31typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *);
32typedef unsigned int ia64_mv_local_vector_to_irq (u8); 32typedef unsigned int ia64_mv_local_vector_to_irq (u8);
@@ -96,7 +96,7 @@ machvec_noop_task (struct task_struct *task)
96} 96}
97 97
98extern void machvec_setup (char **); 98extern void machvec_setup (char **);
99extern void machvec_timer_interrupt (int, void *, struct pt_regs *); 99extern void machvec_timer_interrupt (int, void *);
100extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int); 100extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int);
101extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int); 101extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int);
102extern void machvec_tlb_migrate_finish (struct mm_struct *); 102extern void machvec_tlb_migrate_finish (struct mm_struct *);
diff --git a/include/asm-ia64/sn/pcibr_provider.h b/include/asm-ia64/sn/pcibr_provider.h
index e3b0c3fe5eed..da3eade0cae2 100644
--- a/include/asm-ia64/sn/pcibr_provider.h
+++ b/include/asm-ia64/sn/pcibr_provider.h
@@ -135,7 +135,7 @@ extern void pcireg_intr_addr_addr_set(struct pcibus_info *, int, u64
135extern void pcireg_force_intr_set(struct pcibus_info *, int); 135extern void pcireg_force_intr_set(struct pcibus_info *, int);
136extern u64 pcireg_wrb_flush_get(struct pcibus_info *, int); 136extern u64 pcireg_wrb_flush_get(struct pcibus_info *, int);
137extern void pcireg_int_ate_set(struct pcibus_info *, int, u64); 137extern void pcireg_int_ate_set(struct pcibus_info *, int, u64);
138extern u64 * pcireg_int_ate_addr(struct pcibus_info *, int); 138extern u64 __iomem * pcireg_int_ate_addr(struct pcibus_info *, int);
139extern void pcibr_force_interrupt(struct sn_irq_info *sn_irq_info); 139extern void pcibr_force_interrupt(struct sn_irq_info *sn_irq_info);
140extern void pcibr_change_devices_irq(struct sn_irq_info *sn_irq_info); 140extern void pcibr_change_devices_irq(struct sn_irq_info *sn_irq_info);
141extern int pcibr_ate_alloc(struct pcibus_info *, int); 141extern int pcibr_ate_alloc(struct pcibus_info *, int);
diff --git a/include/asm-ia64/sn/tioca_provider.h b/include/asm-ia64/sn/tioca_provider.h
index 65cdd73c2a57..9a820ac61be3 100644
--- a/include/asm-ia64/sn/tioca_provider.h
+++ b/include/asm-ia64/sn/tioca_provider.h
@@ -162,11 +162,11 @@ static inline void
162tioca_tlbflush(struct tioca_kernel *tioca_kernel) 162tioca_tlbflush(struct tioca_kernel *tioca_kernel)
163{ 163{
164 volatile u64 tmp; 164 volatile u64 tmp;
165 volatile struct tioca *ca_base; 165 volatile struct tioca __iomem *ca_base;
166 struct tioca_common *tioca_common; 166 struct tioca_common *tioca_common;
167 167
168 tioca_common = tioca_kernel->ca_common; 168 tioca_common = tioca_kernel->ca_common;
169 ca_base = (struct tioca *)tioca_common->ca_common.bs_base; 169 ca_base = (struct tioca __iomem *)tioca_common->ca_common.bs_base;
170 170
171 /* 171 /*
172 * Explicit flushes not needed if GART is in cached mode 172 * Explicit flushes not needed if GART is in cached mode
diff --git a/include/asm-ia64/sn/tioce_provider.h b/include/asm-ia64/sn/tioce_provider.h
index 6d62b13f7ae7..32c32f30b099 100644
--- a/include/asm-ia64/sn/tioce_provider.h
+++ b/include/asm-ia64/sn/tioce_provider.h
@@ -53,7 +53,7 @@ struct tioce_dmamap {
53 u64 ct_start; /* coretalk start address */ 53 u64 ct_start; /* coretalk start address */
54 u64 pci_start; /* bus start address */ 54 u64 pci_start; /* bus start address */
55 55
56 u64 *ate_hw; /* hw ptr of first ate in map */ 56 u64 __iomem *ate_hw;/* hw ptr of first ate in map */
57 u64 *ate_shadow; /* shadow ptr of firat ate */ 57 u64 *ate_shadow; /* shadow ptr of firat ate */
58 u16 ate_count; /* # ate's in the map */ 58 u16 ate_count; /* # ate's in the map */
59}; 59};
diff --git a/include/asm-ia64/sn/xpc.h b/include/asm-ia64/sn/xpc.h
index 35e1386f37ab..1d45e1518fb3 100644
--- a/include/asm-ia64/sn/xpc.h
+++ b/include/asm-ia64/sn/xpc.h
@@ -669,7 +669,7 @@ extern struct device *xpc_part;
669extern struct device *xpc_chan; 669extern struct device *xpc_chan;
670extern int xpc_disengage_request_timelimit; 670extern int xpc_disengage_request_timelimit;
671extern int xpc_disengage_request_timedout; 671extern int xpc_disengage_request_timedout;
672extern irqreturn_t xpc_notify_IRQ_handler(int, void *, struct pt_regs *); 672extern irqreturn_t xpc_notify_IRQ_handler(int, void *);
673extern void xpc_dropped_IPI_check(struct xpc_partition *); 673extern void xpc_dropped_IPI_check(struct xpc_partition *);
674extern void xpc_activate_partition(struct xpc_partition *); 674extern void xpc_activate_partition(struct xpc_partition *);
675extern void xpc_activate_kthreads(struct xpc_channel *, int); 675extern void xpc_activate_kthreads(struct xpc_channel *, int);
diff --git a/include/asm-m32r/irq_regs.h b/include/asm-m32r/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-m32r/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-m68k/atari_stdma.h b/include/asm-m68k/atari_stdma.h
index b4eadf852738..8e389b7fa70c 100644
--- a/include/asm-m68k/atari_stdma.h
+++ b/include/asm-m68k/atari_stdma.h
@@ -8,8 +8,7 @@
8 8
9/***************************** Prototypes *****************************/ 9/***************************** Prototypes *****************************/
10 10
11void stdma_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *), 11void stdma_lock(irq_handler_t handler, void *data);
12 void *data);
13void stdma_release( void ); 12void stdma_release( void );
14int stdma_others_waiting( void ); 13int stdma_others_waiting( void );
15int stdma_islocked( void ); 14int stdma_islocked( void );
diff --git a/include/asm-m68k/dma-mapping.h b/include/asm-m68k/dma-mapping.h
index cebbb03370ec..d90d841d3dfd 100644
--- a/include/asm-m68k/dma-mapping.h
+++ b/include/asm-m68k/dma-mapping.h
@@ -5,6 +5,7 @@
5 5
6struct scatterlist; 6struct scatterlist;
7 7
8#ifndef CONFIG_MMU_SUN3
8static inline int dma_supported(struct device *dev, u64 mask) 9static inline int dma_supported(struct device *dev, u64 mask)
9{ 10{
10 return 1; 11 return 1;
@@ -26,7 +27,7 @@ static inline int dma_is_consistent(dma_addr_t dma_addr)
26} 27}
27 28
28extern void *dma_alloc_coherent(struct device *, size_t, 29extern void *dma_alloc_coherent(struct device *, size_t,
29 dma_addr_t *, int); 30 dma_addr_t *, gfp_t);
30extern void dma_free_coherent(struct device *, size_t, 31extern void dma_free_coherent(struct device *, size_t,
31 void *, dma_addr_t); 32 void *, dma_addr_t);
32 33
@@ -88,4 +89,8 @@ static inline int dma_mapping_error(dma_addr_t handle)
88 return 0; 89 return 0;
89} 90}
90 91
92#else
93#include <asm-generic/dma-mapping-broken.h>
94#endif
95
91#endif /* _M68K_DMA_MAPPING_H */ 96#endif /* _M68K_DMA_MAPPING_H */
diff --git a/include/asm-m68k/floppy.h b/include/asm-m68k/floppy.h
index 57f4fdda65ab..45dc908932a3 100644
--- a/include/asm-m68k/floppy.h
+++ b/include/asm-m68k/floppy.h
@@ -17,8 +17,7 @@
17 17
18#include <linux/vmalloc.h> 18#include <linux/vmalloc.h>
19 19
20asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, 20asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id);
21 struct pt_regs *regs);
22 21
23/* constants... */ 22/* constants... */
24 23
@@ -184,8 +183,7 @@ static void fd_disable_dma(void)
184 183
185/* this is the only truly Q40 specific function */ 184/* this is the only truly Q40 specific function */
186 185
187asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, 186asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id)
188 struct pt_regs *regs)
189{ 187{
190 register unsigned char st; 188 register unsigned char st;
191 189
@@ -198,7 +196,7 @@ asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id,
198 static int dma_wait=0; 196 static int dma_wait=0;
199#endif 197#endif
200 if(!doing_pdma) { 198 if(!doing_pdma) {
201 floppy_interrupt(irq, dev_id, regs); 199 floppy_interrupt(irq, dev_id);
202 return IRQ_HANDLED; 200 return IRQ_HANDLED;
203 } 201 }
204 202
@@ -246,7 +244,7 @@ asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id,
246 dma_wait=0; 244 dma_wait=0;
247#endif 245#endif
248 doing_pdma = 0; 246 doing_pdma = 0;
249 floppy_interrupt(irq, dev_id, regs); 247 floppy_interrupt(irq, dev_id);
250 return IRQ_HANDLED; 248 return IRQ_HANDLED;
251 } 249 }
252#ifdef TRACE_FLPY_INT 250#ifdef TRACE_FLPY_INT
diff --git a/include/asm-m68k/ide.h b/include/asm-m68k/ide.h
index 365f76fb8013..f9ffb2cbbae8 100644
--- a/include/asm-m68k/ide.h
+++ b/include/asm-m68k/ide.h
@@ -123,7 +123,7 @@ static __inline__ void ide_release_lock (void)
123} 123}
124 124
125static __inline__ void 125static __inline__ void
126ide_get_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *), void *data) 126ide_get_lock(irq_handler_t handler, void *data)
127{ 127{
128 if (MACH_IS_ATARI) { 128 if (MACH_IS_ATARI) {
129 if (falconide_intr_lock == 0) { 129 if (falconide_intr_lock == 0) {
diff --git a/include/asm-m68k/irq.h b/include/asm-m68k/irq.h
index 3257f9881002..4901cb105e2f 100644
--- a/include/asm-m68k/irq.h
+++ b/include/asm-m68k/irq.h
@@ -83,7 +83,7 @@ struct pt_regs;
83 * interrupt source (if it supports chaining). 83 * interrupt source (if it supports chaining).
84 */ 84 */
85typedef struct irq_node { 85typedef struct irq_node {
86 int (*handler)(int, void *, struct pt_regs *); 86 int (*handler)(int, void *);
87 void *dev_id; 87 void *dev_id;
88 struct irq_node *next; 88 struct irq_node *next;
89 unsigned long flags; 89 unsigned long flags;
@@ -93,12 +93,12 @@ typedef struct irq_node {
93/* 93/*
94 * This structure has only 4 elements for speed reasons 94 * This structure has only 4 elements for speed reasons
95 */ 95 */
96typedef struct irq_handler { 96struct irq_handler {
97 int (*handler)(int, void *, struct pt_regs *); 97 int (*handler)(int, void *);
98 unsigned long flags; 98 unsigned long flags;
99 void *dev_id; 99 void *dev_id;
100 const char *devname; 100 const char *devname;
101} irq_handler_t; 101};
102 102
103struct irq_controller { 103struct irq_controller {
104 const char *name; 104 const char *name;
@@ -122,6 +122,7 @@ extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt,
122 void (*handler)(unsigned int, struct pt_regs *)); 122 void (*handler)(unsigned int, struct pt_regs *));
123extern void m68k_setup_irq_controller(struct irq_controller *, unsigned int, unsigned int); 123extern void m68k_setup_irq_controller(struct irq_controller *, unsigned int, unsigned int);
124 124
125asmlinkage void m68k_handle_int(unsigned int, struct pt_regs *); 125asmlinkage void m68k_handle_int(unsigned int);
126asmlinkage void __m68k_handle_int(unsigned int, struct pt_regs *);
126 127
127#endif /* _M68K_IRQ_H_ */ 128#endif /* _M68K_IRQ_H_ */
diff --git a/include/asm-m68k/irq_regs.h b/include/asm-m68k/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-m68k/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-m68k/mac_iop.h b/include/asm-m68k/mac_iop.h
index b0d2e3473537..a2c7e6fcca38 100644
--- a/include/asm-m68k/mac_iop.h
+++ b/include/asm-m68k/mac_iop.h
@@ -143,17 +143,17 @@ struct iop_msg {
143 int status; /* status of this message */ 143 int status; /* status of this message */
144 __u8 message[IOP_MSG_LEN]; /* the message being sent/received */ 144 __u8 message[IOP_MSG_LEN]; /* the message being sent/received */
145 __u8 reply[IOP_MSG_LEN]; /* the reply to the message */ 145 __u8 reply[IOP_MSG_LEN]; /* the reply to the message */
146 void (*handler)(struct iop_msg *, struct pt_regs *); 146 void (*handler)(struct iop_msg *);
147 /* function to call when reply recvd */ 147 /* function to call when reply recvd */
148}; 148};
149 149
150extern int iop_scc_present,iop_ism_present; 150extern int iop_scc_present,iop_ism_present;
151 151
152extern int iop_listen(uint, uint, 152extern int iop_listen(uint, uint,
153 void (*handler)(struct iop_msg *, struct pt_regs *), 153 void (*handler)(struct iop_msg *),
154 const char *); 154 const char *);
155extern int iop_send_message(uint, uint, void *, uint, __u8 *, 155extern int iop_send_message(uint, uint, void *, uint, __u8 *,
156 void (*)(struct iop_msg *, struct pt_regs *)); 156 void (*)(struct iop_msg *));
157extern void iop_complete_message(struct iop_msg *); 157extern void iop_complete_message(struct iop_msg *);
158extern void iop_upload_code(uint, __u8 *, uint, __u16); 158extern void iop_upload_code(uint, __u8 *, uint, __u16);
159extern void iop_download_code(uint, __u8 *, uint, __u16); 159extern void iop_download_code(uint, __u8 *, uint, __u16);
diff --git a/include/asm-m68k/machdep.h b/include/asm-m68k/machdep.h
index df898f27e434..26d2b91209c5 100644
--- a/include/asm-m68k/machdep.h
+++ b/include/asm-m68k/machdep.h
@@ -10,7 +10,7 @@ struct rtc_time;
10struct rtc_pll_info; 10struct rtc_pll_info;
11struct buffer_head; 11struct buffer_head;
12 12
13extern void (*mach_sched_init) (irqreturn_t (*handler)(int, void *, struct pt_regs *)); 13extern void (*mach_sched_init) (irq_handler_t handler);
14/* machine dependent irq functions */ 14/* machine dependent irq functions */
15extern void (*mach_init_IRQ) (void); 15extern void (*mach_init_IRQ) (void);
16extern void (*mach_get_model) (char *model); 16extern void (*mach_get_model) (char *model);
diff --git a/include/asm-m68k/signal.h b/include/asm-m68k/signal.h
index de1ba6ead3b4..3db8a81942f1 100644
--- a/include/asm-m68k/signal.h
+++ b/include/asm-m68k/signal.h
@@ -198,6 +198,7 @@ static inline int sigfindinword(unsigned long word)
198 return word ^ 31; 198 return word ^ 31;
199} 199}
200 200
201struct pt_regs;
201extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie); 202extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie);
202 203
203#endif /* __KERNEL__ */ 204#endif /* __KERNEL__ */
diff --git a/include/asm-m68k/string.h b/include/asm-m68k/string.h
index 6c59215b285e..2eb7df1e0f5d 100644
--- a/include/asm-m68k/string.h
+++ b/include/asm-m68k/string.h
@@ -1,138 +1,114 @@
1#ifndef _M68K_STRING_H_ 1#ifndef _M68K_STRING_H_
2#define _M68K_STRING_H_ 2#define _M68K_STRING_H_
3 3
4#include <asm/setup.h> 4#include <linux/types.h>
5#include <asm/page.h> 5#include <linux/compiler.h>
6 6
7#define __HAVE_ARCH_STRCPY 7static inline size_t __kernel_strlen(const char *s)
8static inline char * strcpy(char * dest,const char *src)
9{ 8{
10 char *xdest = dest; 9 const char *sc;
11
12 __asm__ __volatile__
13 ("1:\tmoveb %1@+,%0@+\n\t"
14 "jne 1b"
15 : "=a" (dest), "=a" (src)
16 : "0" (dest), "1" (src) : "memory");
17 return xdest;
18}
19 10
20#define __HAVE_ARCH_STRNCPY 11 for (sc = s; *sc++; )
21static inline char * strncpy(char *dest, const char *src, size_t n) 12 ;
22{ 13 return sc - s - 1;
23 char *xdest = dest;
24
25 if (n == 0)
26 return xdest;
27
28 __asm__ __volatile__
29 ("1:\tmoveb %1@+,%0@+\n\t"
30 "jeq 2f\n\t"
31 "subql #1,%2\n\t"
32 "jne 1b\n\t"
33 "2:"
34 : "=a" (dest), "=a" (src), "=d" (n)
35 : "0" (dest), "1" (src), "2" (n)
36 : "memory");
37 return xdest;
38} 14}
39 15
40#define __HAVE_ARCH_STRCAT 16static inline char *__kernel_strcpy(char *dest, const char *src)
41static inline char * strcat(char * dest, const char * src)
42{ 17{
43 char *tmp = dest; 18 char *xdest = dest;
44 19
45 while (*dest) 20 asm volatile ("\n"
46 dest++; 21 "1: move.b (%1)+,(%0)+\n"
47 while ((*dest++ = *src++)) 22 " jne 1b"
48 ; 23 : "+a" (dest), "+a" (src)
49 24 : : "memory");
50 return tmp; 25 return xdest;
51} 26}
52 27
53#define __HAVE_ARCH_STRNCAT 28#ifndef __IN_STRING_C
54static inline char * strncat(char *dest, const char *src, size_t count)
55{
56 char *tmp = dest;
57
58 if (count) {
59 while (*dest)
60 dest++;
61 while ((*dest++ = *src++)) {
62 if (--count == 0) {
63 *dest++='\0';
64 break;
65 }
66 }
67 }
68 29
69 return tmp; 30#define __HAVE_ARCH_STRLEN
70} 31#define strlen(s) (__builtin_constant_p(s) ? \
32 __builtin_strlen(s) : \
33 __kernel_strlen(s))
71 34
72#define __HAVE_ARCH_STRCHR 35#define __HAVE_ARCH_STRNLEN
73static inline char * strchr(const char * s, int c) 36static inline size_t strnlen(const char *s, size_t count)
74{ 37{
75 const char ch = c; 38 const char *sc = s;
76 39
77 for(; *s != ch; ++s) 40 asm volatile ("\n"
78 if (*s == '\0') 41 "1: subq.l #1,%1\n"
79 return( NULL ); 42 " jcs 2f\n"
80 return( (char *) s); 43 " tst.b (%0)+\n"
44 " jne 1b\n"
45 " subq.l #1,%0\n"
46 "2:"
47 : "+a" (sc), "+d" (count));
48 return sc - s;
81} 49}
82 50
83/* strstr !! */ 51#define __HAVE_ARCH_STRCPY
52#if __GNUC__ >= 4
53#define strcpy(d, s) (__builtin_constant_p(s) && \
54 __builtin_strlen(s) <= 32 ? \
55 __builtin_strcpy(d, s) : \
56 __kernel_strcpy(d, s))
57#else
58#define strcpy(d, s) __kernel_strcpy(d, s)
59#endif
84 60
85#define __HAVE_ARCH_STRLEN 61#define __HAVE_ARCH_STRNCPY
86static inline size_t strlen(const char * s) 62static inline char *strncpy(char *dest, const char *src, size_t n)
87{ 63{
88 const char *sc; 64 char *xdest = dest;
89 for (sc = s; *sc != '\0'; ++sc) ; 65
90 return(sc - s); 66 asm volatile ("\n"
67 " jra 2f\n"
68 "1: move.b (%1),(%0)+\n"
69 " jeq 2f\n"
70 " addq.l #1,%1\n"
71 "2: subq.l #1,%2\n"
72 " jcc 1b\n"
73 : "+a" (dest), "+a" (src), "+d" (n)
74 : : "memory");
75 return xdest;
91} 76}
92 77
93/* strnlen !! */ 78#define __HAVE_ARCH_STRCAT
79#define strcat(d, s) ({ \
80 char *__d = (d); \
81 strcpy(__d + strlen(__d), (s)); \
82})
94 83
95#define __HAVE_ARCH_STRCMP 84#define __HAVE_ARCH_STRCHR
96static inline int strcmp(const char * cs,const char * ct) 85static inline char *strchr(const char *s, int c)
97{ 86{
98 char __res; 87 char sc, ch = c;
99 88
100 __asm__ 89 for (; (sc = *s++) != ch; ) {
101 ("1:\tmoveb %0@+,%2\n\t" /* get *cs */ 90 if (!sc)
102 "cmpb %1@+,%2\n\t" /* compare a byte */ 91 return NULL;
103 "jne 2f\n\t" /* not equal, break out */ 92 }
104 "tstb %2\n\t" /* at end of cs? */ 93 return (char *)s - 1;
105 "jne 1b\n\t" /* no, keep going */
106 "jra 3f\n\t" /* strings are equal */
107 "2:\tsubb %1@-,%2\n\t" /* *cs - *ct */
108 "3:"
109 : "=a" (cs), "=a" (ct), "=d" (__res)
110 : "0" (cs), "1" (ct));
111 return __res;
112} 94}
113 95
114#define __HAVE_ARCH_STRNCMP 96#define __HAVE_ARCH_STRCMP
115static inline int strncmp(const char * cs,const char * ct,size_t count) 97static inline int strcmp(const char *cs, const char *ct)
116{ 98{
117 char __res; 99 char res;
118 100
119 if (!count) 101 asm ("\n"
120 return 0; 102 "1: move.b (%0)+,%2\n" /* get *cs */
121 __asm__ 103 " cmp.b (%1)+,%2\n" /* compare a byte */
122 ("1:\tmovb %0@+,%3\n\t" /* get *cs */ 104 " jne 2f\n" /* not equal, break out */
123 "cmpb %1@+,%3\n\t" /* compare a byte */ 105 " tst.b %2\n" /* at end of cs? */
124 "jne 3f\n\t" /* not equal, break out */ 106 " jne 1b\n" /* no, keep going */
125 "tstb %3\n\t" /* at end of cs? */ 107 " jra 3f\n" /* strings are equal */
126 "jeq 4f\n\t" /* yes, all done */ 108 "2: sub.b -(%1),%2\n" /* *cs - *ct */
127 "subql #1,%2\n\t" /* no, adjust count */ 109 "3:"
128 "jne 1b\n\t" /* more to do, keep going */ 110 : "+a" (cs), "+a" (ct), "=d" (res));
129 "2:\tmoveq #0,%3\n\t" /* strings are equal */ 111 return res;
130 "jra 4f\n\t"
131 "3:\tsubb %1@-,%3\n\t" /* *cs - *ct */
132 "4:"
133 : "=a" (cs), "=a" (ct), "=d" (count), "=d" (__res)
134 : "0" (cs), "1" (ct), "2" (count));
135 return __res;
136} 112}
137 113
138#define __HAVE_ARCH_MEMSET 114#define __HAVE_ARCH_MEMSET
@@ -150,4 +126,6 @@ extern void *memmove(void *, const void *, __kernel_size_t);
150extern int memcmp(const void *, const void *, __kernel_size_t); 126extern int memcmp(const void *, const void *, __kernel_size_t);
151#define memcmp(d, s, n) __builtin_memcmp(d, s, n) 127#define memcmp(d, s, n) __builtin_memcmp(d, s, n)
152 128
129#endif
130
153#endif /* _M68K_STRING_H_ */ 131#endif /* _M68K_STRING_H_ */
diff --git a/include/asm-m68k/sun3xflop.h b/include/asm-m68k/sun3xflop.h
index ca8cc4113843..32c45f84ac60 100644
--- a/include/asm-m68k/sun3xflop.h
+++ b/include/asm-m68k/sun3xflop.h
@@ -111,8 +111,7 @@ static void sun3x_82072_fd_outb(unsigned char value, int port)
111} 111}
112 112
113 113
114asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id, 114asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id)
115 struct pt_regs * regs)
116{ 115{
117 register unsigned char st; 116 register unsigned char st;
118 117
@@ -125,7 +124,7 @@ asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id,
125 static int dma_wait=0; 124 static int dma_wait=0;
126#endif 125#endif
127 if(!doing_pdma) { 126 if(!doing_pdma) {
128 floppy_interrupt(irq, dev_id, regs); 127 floppy_interrupt(irq, dev_id);
129 return IRQ_HANDLED; 128 return IRQ_HANDLED;
130 } 129 }
131 130
@@ -189,7 +188,7 @@ asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id,
189 dma_wait=0; 188 dma_wait=0;
190#endif 189#endif
191 190
192 floppy_interrupt(irq, dev_id, regs); 191 floppy_interrupt(irq, dev_id);
193 return IRQ_HANDLED; 192 return IRQ_HANDLED;
194 } 193 }
195 194
diff --git a/include/asm-m68k/system.h b/include/asm-m68k/system.h
index 131a0cb0f491..243dd13e6bfc 100644
--- a/include/asm-m68k/system.h
+++ b/include/asm-m68k/system.h
@@ -78,13 +78,13 @@ static inline int irqs_disabled(void)
78#define mb() barrier() 78#define mb() barrier()
79#define rmb() barrier() 79#define rmb() barrier()
80#define wmb() barrier() 80#define wmb() barrier()
81#define read_barrier_depends() do { } while(0) 81#define read_barrier_depends() ((void)0)
82#define set_mb(var, value) do { xchg(&var, value); } while (0) 82#define set_mb(var, value) ({ (var) = (value); wmb(); })
83 83
84#define smp_mb() barrier() 84#define smp_mb() barrier()
85#define smp_rmb() barrier() 85#define smp_rmb() barrier()
86#define smp_wmb() barrier() 86#define smp_wmb() barrier()
87#define smp_read_barrier_depends() do { } while(0) 87#define smp_read_barrier_depends() ((void)0)
88 88
89 89
90#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) 90#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
diff --git a/include/asm-m68k/unistd.h b/include/asm-m68k/unistd.h
index 3ab716f0fc18..ad4348058c66 100644
--- a/include/asm-m68k/unistd.h
+++ b/include/asm-m68k/unistd.h
@@ -284,10 +284,39 @@
284#define __NR_add_key 279 284#define __NR_add_key 279
285#define __NR_request_key 280 285#define __NR_request_key 280
286#define __NR_keyctl 281 286#define __NR_keyctl 281
287#define __NR_ioprio_set 282
288#define __NR_ioprio_get 283
289#define __NR_inotify_init 284
290#define __NR_inotify_add_watch 285
291#define __NR_inotify_rm_watch 286
292#define __NR_migrate_pages 287
293#define __NR_openat 288
294#define __NR_mkdirat 289
295#define __NR_mknodat 290
296#define __NR_fchownat 291
297#define __NR_futimesat 292
298#define __NR_fstatat64 293
299#define __NR_unlinkat 294
300#define __NR_renameat 295
301#define __NR_linkat 296
302#define __NR_symlinkat 297
303#define __NR_readlinkat 298
304#define __NR_fchmodat 299
305#define __NR_faccessat 300
306#define __NR_pselect6 301
307#define __NR_ppoll 302
308#define __NR_unshare 303
309#define __NR_set_robust_list 304
310#define __NR_get_robust_list 305
311#define __NR_splice 306
312#define __NR_sync_file_range 307
313#define __NR_tee 308
314#define __NR_vmsplice 309
315#define __NR_move_pages 310
287 316
288#ifdef __KERNEL__ 317#ifdef __KERNEL__
289 318
290#define NR_syscalls 282 319#define NR_syscalls 311
291#include <linux/err.h> 320#include <linux/err.h>
292 321
293/* user-visible error numbers are in the range -1 - -MAX_ERRNO: see 322/* user-visible error numbers are in the range -1 - -MAX_ERRNO: see
diff --git a/include/asm-m68k/user.h b/include/asm-m68k/user.h
index e8d5a64c7e79..d7c0b109bd45 100644
--- a/include/asm-m68k/user.h
+++ b/include/asm-m68k/user.h
@@ -81,7 +81,7 @@ struct user{
81 unsigned long magic; /* To uniquely identify a core file */ 81 unsigned long magic; /* To uniquely identify a core file */
82 char u_comm[32]; /* User command that was responsible */ 82 char u_comm[32]; /* User command that was responsible */
83}; 83};
84#define NBPG PAGE_SIZE 84#define NBPG 4096
85#define UPAGES 1 85#define UPAGES 1
86#define HOST_TEXT_START_ADDR (u.start_code) 86#define HOST_TEXT_START_ADDR (u.start_code)
87#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) 87#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
diff --git a/include/asm-mips/dec/ecc.h b/include/asm-mips/dec/ecc.h
index 19495a490e72..707ffdbc9add 100644
--- a/include/asm-mips/dec/ecc.h
+++ b/include/asm-mips/dec/ecc.h
@@ -49,8 +49,7 @@ struct pt_regs;
49 49
50extern void dec_ecc_be_init(void); 50extern void dec_ecc_be_init(void);
51extern int dec_ecc_be_handler(struct pt_regs *regs, int is_fixup); 51extern int dec_ecc_be_handler(struct pt_regs *regs, int is_fixup);
52extern irqreturn_t dec_ecc_be_interrupt(int irq, void *dev_id, 52extern irqreturn_t dec_ecc_be_interrupt(int irq, void *dev_id);
53 struct pt_regs *regs);
54#endif 53#endif
55 54
56#endif /* __ASM_MIPS_DEC_ECC_H */ 55#endif /* __ASM_MIPS_DEC_ECC_H */
diff --git a/include/asm-mips/dec/kn01.h b/include/asm-mips/dec/kn01.h
index eb522aa1e226..28fa717ac423 100644
--- a/include/asm-mips/dec/kn01.h
+++ b/include/asm-mips/dec/kn01.h
@@ -84,8 +84,7 @@ extern spinlock_t kn01_lock;
84 84
85extern void dec_kn01_be_init(void); 85extern void dec_kn01_be_init(void);
86extern int dec_kn01_be_handler(struct pt_regs *regs, int is_fixup); 86extern int dec_kn01_be_handler(struct pt_regs *regs, int is_fixup);
87extern irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id, 87extern irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id);
88 struct pt_regs *regs);
89#endif 88#endif
90 89
91#endif /* __ASM_MIPS_DEC_KN01_H */ 90#endif /* __ASM_MIPS_DEC_KN01_H */
diff --git a/include/asm-mips/dec/kn02xa.h b/include/asm-mips/dec/kn02xa.h
index a25f3d7da7f7..b56b4577f6ef 100644
--- a/include/asm-mips/dec/kn02xa.h
+++ b/include/asm-mips/dec/kn02xa.h
@@ -78,8 +78,7 @@ struct pt_regs;
78 78
79extern void dec_kn02xa_be_init(void); 79extern void dec_kn02xa_be_init(void);
80extern int dec_kn02xa_be_handler(struct pt_regs *regs, int is_fixup); 80extern int dec_kn02xa_be_handler(struct pt_regs *regs, int is_fixup);
81extern irqreturn_t dec_kn02xa_be_interrupt(int irq, void *dev_id, 81extern irqreturn_t dec_kn02xa_be_interrupt(int irq, void *dev_id);
82 struct pt_regs *regs);
83#endif 82#endif
84 83
85#endif /* __ASM_MIPS_DEC_KN02XA_H */ 84#endif /* __ASM_MIPS_DEC_KN02XA_H */
diff --git a/include/asm-mips/fpu.h b/include/asm-mips/fpu.h
index 58c561a9ec6b..efef843b93f0 100644
--- a/include/asm-mips/fpu.h
+++ b/include/asm-mips/fpu.h
@@ -134,9 +134,11 @@ static inline void restore_fp(struct task_struct *tsk)
134 134
135static inline fpureg_t *get_fpu_regs(struct task_struct *tsk) 135static inline fpureg_t *get_fpu_regs(struct task_struct *tsk)
136{ 136{
137 if (cpu_has_fpu) { 137 if (tsk == current) {
138 if ((tsk == current) && __is_fpu_owner()) 138 preempt_disable();
139 if (is_fpu_owner())
139 _save_fp(current); 140 _save_fp(current);
141 preempt_enable();
140 } 142 }
141 143
142 return tsk->thread.fpu.fpr; 144 return tsk->thread.fpu.fpr;
diff --git a/include/asm-mips/irq.h b/include/asm-mips/irq.h
index d35c61776a02..1a9804c65369 100644
--- a/include/asm-mips/irq.h
+++ b/include/asm-mips/irq.h
@@ -26,7 +26,7 @@ static inline int irq_canonicalize(int irq)
26 26
27struct pt_regs; 27struct pt_regs;
28 28
29extern asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs); 29extern asmlinkage unsigned int do_IRQ(unsigned int irq);
30 30
31#ifdef CONFIG_MIPS_MT_SMTC 31#ifdef CONFIG_MIPS_MT_SMTC
32/* 32/*
@@ -55,18 +55,18 @@ do { \
55 * Ideally there should be away to get this into kernel/irq/handle.c to 55 * Ideally there should be away to get this into kernel/irq/handle.c to
56 * avoid the overhead of a call for just a tiny function ... 56 * avoid the overhead of a call for just a tiny function ...
57 */ 57 */
58#define do_IRQ(irq, regs) \ 58#define do_IRQ(irq) \
59do { \ 59do { \
60 irq_enter(); \ 60 irq_enter(); \
61 __DO_IRQ_SMTC_HOOK(); \ 61 __DO_IRQ_SMTC_HOOK(); \
62 __do_IRQ((irq), (regs)); \ 62 __do_IRQ((irq)); \
63 irq_exit(); \ 63 irq_exit(); \
64} while (0) 64} while (0)
65 65
66#endif 66#endif
67 67
68extern void arch_init_irq(void); 68extern void arch_init_irq(void);
69extern void spurious_interrupt(struct pt_regs *regs); 69extern void spurious_interrupt(void);
70 70
71#ifdef CONFIG_MIPS_MT_SMTC 71#ifdef CONFIG_MIPS_MT_SMTC
72struct irqaction; 72struct irqaction;
diff --git a/include/asm-mips/irq_regs.h b/include/asm-mips/irq_regs.h
new file mode 100644
index 000000000000..33bd2a06de57
--- /dev/null
+++ b/include/asm-mips/irq_regs.h
@@ -0,0 +1,21 @@
1/*
2 * This program is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU General Public License
4 * as published by the Free Software Foundation; either version
5 * 2 of the License, or (at your option) any later version.
6 *
7 * Copyright (C) 2006 Ralf Baechle (ralf@linux-mips.org)
8 */
9#ifndef __ASM_IRQ_REGS_H
10#define __ASM_IRQ_REGS_H
11
12#define ARCH_HAS_OWN_IRQ_REGS
13
14#include <linux/thread_info.h>
15
16static inline struct pt_regs *get_irq_regs(void)
17{
18 return current_thread_info()->regs;
19}
20
21#endif /* __ASM_IRQ_REGS_H */
diff --git a/include/asm-mips/jmr3927/irq.h b/include/asm-mips/jmr3927/irq.h
index fe551f33a74f..e3e7ed38da6c 100644
--- a/include/asm-mips/jmr3927/irq.h
+++ b/include/asm-mips/jmr3927/irq.h
@@ -45,10 +45,6 @@ extern int
45toshibaboards_setup_irq(int irq, struct irqaction * new); 45toshibaboards_setup_irq(int irq, struct irqaction * new);
46 46
47 47
48#ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
49extern void tx_branch_likely_bug_fixup(struct pt_regs *regs);
50#endif
51
52extern int (*toshibaboards_gen_iack)(void); 48extern int (*toshibaboards_gen_iack)(void);
53 49
54#endif /* !__ASSEMBLY__ */ 50#endif /* !__ASSEMBLY__ */
diff --git a/include/asm-mips/mach-au1x00/au1000_dma.h b/include/asm-mips/mach-au1x00/au1000_dma.h
index 810f2fa33444..9f29520e8fb0 100644
--- a/include/asm-mips/mach-au1x00/au1000_dma.h
+++ b/include/asm-mips/mach-au1x00/au1000_dma.h
@@ -123,8 +123,7 @@ struct dma_chan {
123extern struct dma_chan au1000_dma_table[]; 123extern struct dma_chan au1000_dma_table[];
124extern int request_au1000_dma(int dev_id, 124extern int request_au1000_dma(int dev_id,
125 const char *dev_str, 125 const char *dev_str,
126 irqreturn_t (*irqhandler)(int, void *, 126 irq_handler_t irqhandler,
127 struct pt_regs *),
128 unsigned long irqflags, 127 unsigned long irqflags,
129 void *irq_dev_id); 128 void *irq_dev_id);
130extern void free_au1000_dma(unsigned int dmanr); 129extern void free_au1000_dma(unsigned int dmanr);
diff --git a/include/asm-mips/mach-au1x00/au1000_usbdev.h b/include/asm-mips/mach-au1x00/au1000_usbdev.h
deleted file mode 100644
index 05bc74bed0b1..000000000000
--- a/include/asm-mips/mach-au1x00/au1000_usbdev.h
+++ /dev/null
@@ -1,73 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1000 USB Device-Side Driver
4 *
5 * Copyright 2001 MontaVista Software Inc.
6 * Author: MontaVista Software, Inc.
7 * stevel@mvista.com or source@mvista.com
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29
30#define USBDEV_REV 0x0110 // BCD
31#define USBDEV_EP0_MAX_PACKET_SIZE 64
32
33typedef enum {
34 ATTACHED = 0,
35 POWERED,
36 DEFAULT,
37 ADDRESS,
38 CONFIGURED
39} usbdev_state_t;
40
41typedef enum {
42 CB_NEW_STATE = 0,
43 CB_PKT_COMPLETE
44} usbdev_cb_type_t;
45
46
47typedef struct usbdev_pkt {
48 int ep_addr; // ep addr this packet routed to
49 int size; // size of payload in bytes
50 unsigned status; // packet status
51 struct usbdev_pkt* next; // function layer can't touch this
52 u8 payload[0]; // the payload
53} usbdev_pkt_t;
54
55#define PKT_STATUS_ACK (1<<0)
56#define PKT_STATUS_NAK (1<<1)
57#define PKT_STATUS_SU (1<<2)
58
59extern int usbdev_init(struct usb_device_descriptor* dev_desc,
60 struct usb_config_descriptor* config_desc,
61 struct usb_interface_descriptor* if_desc,
62 struct usb_endpoint_descriptor* ep_desc,
63 struct usb_string_descriptor* str_desc[],
64 void (*cb)(usbdev_cb_type_t, unsigned long, void *),
65 void* cb_data);
66
67extern void usbdev_exit(void);
68
69extern int usbdev_alloc_packet (int ep_addr, int data_size,
70 usbdev_pkt_t** pkt);
71extern int usbdev_send_packet (int ep_addr, usbdev_pkt_t* pkt);
72extern int usbdev_receive_packet(int ep_addr, usbdev_pkt_t** pkt);
73extern int usbdev_get_byte_count(int ep_addr);
diff --git a/include/asm-mips/marvell.h b/include/asm-mips/marvell.h
index 6bb2125bb053..df94955b098a 100644
--- a/include/asm-mips/marvell.h
+++ b/include/asm-mips/marvell.h
@@ -53,6 +53,6 @@ struct mv_pci_controller {
53 unsigned long config_vreg; 53 unsigned long config_vreg;
54}; 54};
55 55
56extern void ll_mv64340_irq(struct pt_regs *regs); 56extern void ll_mv64340_irq(void);
57 57
58#endif /* __ASM_MIPS_MARVELL_H */ 58#endif /* __ASM_MIPS_MARVELL_H */
diff --git a/include/asm-mips/msc01_ic.h b/include/asm-mips/msc01_ic.h
index 64f17208d602..aa7ad9a71762 100644
--- a/include/asm-mips/msc01_ic.h
+++ b/include/asm-mips/msc01_ic.h
@@ -145,7 +145,7 @@ typedef struct msc_irqmap {
145#define MSC01_IRQ_EDGE 1 145#define MSC01_IRQ_EDGE 1
146 146
147extern void __init init_msc_irqs(unsigned int base, msc_irqmap_t *imp, int nirq); 147extern void __init init_msc_irqs(unsigned int base, msc_irqmap_t *imp, int nirq);
148extern void ll_msc_irq(struct pt_regs *regs); 148extern void ll_msc_irq(void);
149 149
150#endif /* __ASM_MIPS_BOARDS_MSC01_IC_H */ 150#endif /* __ASM_MIPS_BOARDS_MSC01_IC_H */
151 151
diff --git a/include/asm-mips/thread_info.h b/include/asm-mips/thread_info.h
index ae8ada5b42a9..e475c45ea263 100644
--- a/include/asm-mips/thread_info.h
+++ b/include/asm-mips/thread_info.h
@@ -34,6 +34,7 @@ struct thread_info {
34 0-0xFFFFFFFF for kernel-thread 34 0-0xFFFFFFFF for kernel-thread
35 */ 35 */
36 struct restart_block restart_block; 36 struct restart_block restart_block;
37 struct pt_regs *regs;
37}; 38};
38 39
39/* 40/*
diff --git a/include/asm-mips/time.h b/include/asm-mips/time.h
index 2d543735668b..28512ba2266e 100644
--- a/include/asm-mips/time.h
+++ b/include/asm-mips/time.h
@@ -67,18 +67,18 @@ extern unsigned long (*do_gettimeoffset)(void);
67/* 67/*
68 * high-level timer interrupt routines. 68 * high-level timer interrupt routines.
69 */ 69 */
70extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); 70extern irqreturn_t timer_interrupt(int irq, void *dev_id);
71 71
72/* 72/*
73 * the corresponding low-level timer interrupt routine. 73 * the corresponding low-level timer interrupt routine.
74 */ 74 */
75extern asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs); 75extern asmlinkage void ll_timer_interrupt(int irq);
76 76
77/* 77/*
78 * profiling and process accouting is done separately in local_timer_interrupt 78 * profiling and process accouting is done separately in local_timer_interrupt
79 */ 79 */
80extern void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); 80extern void local_timer_interrupt(int irq, void *dev_id);
81extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs); 81extern asmlinkage void ll_local_timer_interrupt(int irq);
82 82
83/* 83/*
84 * board specific routines required by time_init(). 84 * board specific routines required by time_init().
diff --git a/include/asm-parisc/irq_regs.h b/include/asm-parisc/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-parisc/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-parisc/pdc.h b/include/asm-parisc/pdc.h
index c9b2e35326ee..423c2b84b4a0 100644
--- a/include/asm-parisc/pdc.h
+++ b/include/asm-parisc/pdc.h
@@ -774,8 +774,6 @@ int pdc_sti_call(unsigned long func, unsigned long flags,
774 unsigned long inptr, unsigned long outputr, 774 unsigned long inptr, unsigned long outputr,
775 unsigned long glob_cfg); 775 unsigned long glob_cfg);
776 776
777extern void pdc_init(void);
778
779static inline char * os_id_to_string(u16 os_id) { 777static inline char * os_id_to_string(u16 os_id) {
780 switch(os_id) { 778 switch(os_id) {
781 case OS_ID_NONE: return "No OS"; 779 case OS_ID_NONE: return "No OS";
diff --git a/include/asm-powerpc/i8259.h b/include/asm-powerpc/i8259.h
index c80e113052cd..78489fb8d140 100644
--- a/include/asm-powerpc/i8259.h
+++ b/include/asm-powerpc/i8259.h
@@ -6,10 +6,10 @@
6 6
7#ifdef CONFIG_PPC_MERGE 7#ifdef CONFIG_PPC_MERGE
8extern void i8259_init(struct device_node *node, unsigned long intack_addr); 8extern void i8259_init(struct device_node *node, unsigned long intack_addr);
9extern unsigned int i8259_irq(struct pt_regs *regs); 9extern unsigned int i8259_irq(void);
10#else 10#else
11extern void i8259_init(unsigned long intack_addr, int offset); 11extern void i8259_init(unsigned long intack_addr, int offset);
12extern int i8259_irq(struct pt_regs *regs); 12extern int i8259_irq(void);
13#endif 13#endif
14 14
15#endif /* __KERNEL__ */ 15#endif /* __KERNEL__ */
diff --git a/include/asm-powerpc/ibmebus.h b/include/asm-powerpc/ibmebus.h
index 7ab195a27888..3493429b70f5 100644
--- a/include/asm-powerpc/ibmebus.h
+++ b/include/asm-powerpc/ibmebus.h
@@ -65,7 +65,7 @@ void ibmebus_unregister_driver(struct ibmebus_driver *drv);
65 65
66int ibmebus_request_irq(struct ibmebus_dev *dev, 66int ibmebus_request_irq(struct ibmebus_dev *dev,
67 u32 ist, 67 u32 ist,
68 irqreturn_t (*handler)(int, void*, struct pt_regs *), 68 irq_handler_t handler,
69 unsigned long irq_flags, const char * devname, 69 unsigned long irq_flags, const char * devname,
70 void *dev_id); 70 void *dev_id);
71void ibmebus_free_irq(struct ibmebus_dev *dev, u32 ist, void *dev_id); 71void ibmebus_free_irq(struct ibmebus_dev *dev, u32 ist, void *dev_id);
diff --git a/include/asm-powerpc/ipic.h b/include/asm-powerpc/ipic.h
index 1ce09a35906e..9fbb03415860 100644
--- a/include/asm-powerpc/ipic.h
+++ b/include/asm-powerpc/ipic.h
@@ -79,12 +79,12 @@ extern void ipic_clear_mcp_status(u32 mask);
79 79
80#ifdef CONFIG_PPC_MERGE 80#ifdef CONFIG_PPC_MERGE
81extern void ipic_init(struct device_node *node, unsigned int flags); 81extern void ipic_init(struct device_node *node, unsigned int flags);
82extern unsigned int ipic_get_irq(struct pt_regs *regs); 82extern unsigned int ipic_get_irq(void);
83#else 83#else
84extern void ipic_init(phys_addr_t phys_addr, unsigned int flags, 84extern void ipic_init(phys_addr_t phys_addr, unsigned int flags,
85 unsigned int irq_offset, 85 unsigned int irq_offset,
86 unsigned char *senses, unsigned int senses_count); 86 unsigned char *senses, unsigned int senses_count);
87extern int ipic_get_irq(struct pt_regs *regs); 87extern int ipic_get_irq(void);
88#endif 88#endif
89 89
90#endif /* __ASM_IPIC_H__ */ 90#endif /* __ASM_IPIC_H__ */
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h
index 89ed545b446b..f960f5346f40 100644
--- a/include/asm-powerpc/irq.h
+++ b/include/asm-powerpc/irq.h
@@ -825,7 +825,7 @@ extern struct thread_info *softirq_ctx[NR_CPUS];
825 825
826extern void irq_ctx_init(void); 826extern void irq_ctx_init(void);
827extern void call_do_softirq(struct thread_info *tp); 827extern void call_do_softirq(struct thread_info *tp);
828extern int call_handle_irq(int irq, void *p1, void *p2, 828extern int call_handle_irq(int irq, void *p1,
829 struct thread_info *tp, void *func); 829 struct thread_info *tp, void *func);
830#else 830#else
831#define irq_ctx_init() 831#define irq_ctx_init()
diff --git a/include/asm-powerpc/irq_regs.h b/include/asm-powerpc/irq_regs.h
new file mode 100644
index 000000000000..ba94b51a0a70
--- /dev/null
+++ b/include/asm-powerpc/irq_regs.h
@@ -0,0 +1,2 @@
1#include <asm-generic/irq_regs.h>
2
diff --git a/include/asm-powerpc/iseries/hv_lp_event.h b/include/asm-powerpc/iseries/hv_lp_event.h
index 4065a4de4935..6ce2ce1e2690 100644
--- a/include/asm-powerpc/iseries/hv_lp_event.h
+++ b/include/asm-powerpc/iseries/hv_lp_event.h
@@ -50,7 +50,7 @@ struct HvLpEvent {
50 u64 xCorrelationToken; /* Unique value for source/type x10-x17 */ 50 u64 xCorrelationToken; /* Unique value for source/type x10-x17 */
51}; 51};
52 52
53typedef void (*LpEventHandler)(struct HvLpEvent *, struct pt_regs *); 53typedef void (*LpEventHandler)(struct HvLpEvent *);
54 54
55/* Register a handler for an event type - returns 0 on success */ 55/* Register a handler for an event type - returns 0 on success */
56extern int HvLpEvent_registerHandler(HvLpEvent_Type eventType, 56extern int HvLpEvent_registerHandler(HvLpEvent_Type eventType,
diff --git a/include/asm-powerpc/iseries/it_lp_queue.h b/include/asm-powerpc/iseries/it_lp_queue.h
index 3f6814769295..428278838821 100644
--- a/include/asm-powerpc/iseries/it_lp_queue.h
+++ b/include/asm-powerpc/iseries/it_lp_queue.h
@@ -72,7 +72,7 @@ struct hvlpevent_queue {
72extern struct hvlpevent_queue hvlpevent_queue; 72extern struct hvlpevent_queue hvlpevent_queue;
73 73
74extern int hvlpevent_is_pending(void); 74extern int hvlpevent_is_pending(void);
75extern void process_hvlpevents(struct pt_regs *); 75extern void process_hvlpevents(void);
76extern void setup_hvlpevent_queue(void); 76extern void setup_hvlpevent_queue(void);
77 77
78#endif /* _ASM_POWERPC_ISERIES_IT_LP_QUEUE_H */ 78#endif /* _ASM_POWERPC_ISERIES_IT_LP_QUEUE_H */
diff --git a/include/asm-powerpc/machdep.h b/include/asm-powerpc/machdep.h
index c17c13742401..dac90dc341cb 100644
--- a/include/asm-powerpc/machdep.h
+++ b/include/asm-powerpc/machdep.h
@@ -97,7 +97,7 @@ struct machdep_calls {
97 void (*show_percpuinfo)(struct seq_file *m, int i); 97 void (*show_percpuinfo)(struct seq_file *m, int i);
98 98
99 void (*init_IRQ)(void); 99 void (*init_IRQ)(void);
100 unsigned int (*get_irq)(struct pt_regs *); 100 unsigned int (*get_irq)(void);
101#ifdef CONFIG_KEXEC 101#ifdef CONFIG_KEXEC
102 void (*kexec_cpu_down)(int crash_shutdown, int secondary); 102 void (*kexec_cpu_down)(int crash_shutdown, int secondary);
103#endif 103#endif
diff --git a/include/asm-powerpc/mpic.h b/include/asm-powerpc/mpic.h
index a9f9604b9eff..ef0a5458d2b2 100644
--- a/include/asm-powerpc/mpic.h
+++ b/include/asm-powerpc/mpic.h
@@ -409,9 +409,9 @@ extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask);
409void smp_mpic_message_pass(int target, int msg); 409void smp_mpic_message_pass(int target, int msg);
410 410
411/* Fetch interrupt from a given mpic */ 411/* Fetch interrupt from a given mpic */
412extern unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs); 412extern unsigned int mpic_get_one_irq(struct mpic *mpic);
413/* This one gets to the primary mpic */ 413/* This one gets to the primary mpic */
414extern unsigned int mpic_get_irq(struct pt_regs *regs); 414extern unsigned int mpic_get_irq(void);
415 415
416/* Set the EPIC clock ratio */ 416/* Set the EPIC clock ratio */
417void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio); 417void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio);
diff --git a/include/asm-powerpc/reg.h b/include/asm-powerpc/reg.h
index 3a9fcc15811b..8fb96811b55d 100644
--- a/include/asm-powerpc/reg.h
+++ b/include/asm-powerpc/reg.h
@@ -503,7 +503,7 @@
503 503
504/* 504/*
505 * An mtfsf instruction with the L bit set. On CPUs that support this a 505 * An mtfsf instruction with the L bit set. On CPUs that support this a
506 * full 64bits of FPSCR is restored and on other CPUs it is ignored. 506 * full 64bits of FPSCR is restored and on other CPUs the L bit is ignored.
507 * 507 *
508 * Until binutils gets the new form of mtfsf, hardwire the instruction. 508 * Until binutils gets the new form of mtfsf, hardwire the instruction.
509 */ 509 */
diff --git a/include/asm-powerpc/smp.h b/include/asm-powerpc/smp.h
index 068f119aa298..20ea7c70bc38 100644
--- a/include/asm-powerpc/smp.h
+++ b/include/asm-powerpc/smp.h
@@ -34,8 +34,7 @@ extern void cpu_die(void);
34#ifdef CONFIG_SMP 34#ifdef CONFIG_SMP
35 35
36extern void smp_send_debugger_break(int cpu); 36extern void smp_send_debugger_break(int cpu);
37struct pt_regs; 37extern void smp_message_recv(int);
38extern void smp_message_recv(int, struct pt_regs *);
39 38
40#ifdef CONFIG_HOTPLUG_CPU 39#ifdef CONFIG_HOTPLUG_CPU
41extern void fixup_irqs(cpumask_t map); 40extern void fixup_irqs(cpumask_t map);
diff --git a/include/asm-ppc/commproc.h b/include/asm-ppc/commproc.h
index 3247bea5fc2b..7b06b4e6bf30 100644
--- a/include/asm-ppc/commproc.h
+++ b/include/asm-ppc/commproc.h
@@ -690,8 +690,7 @@ typedef struct risc_timer_pram {
690#define CICR_IEN ((uint)0x00000080) /* Int. enable */ 690#define CICR_IEN ((uint)0x00000080) /* Int. enable */
691#define CICR_SPS ((uint)0x00000001) /* SCC Spread */ 691#define CICR_SPS ((uint)0x00000001) /* SCC Spread */
692 692
693extern void cpm_install_handler(int vec, 693extern void cpm_install_handler(int vec, void (*handler)(void *), void *dev_id);
694 void (*handler)(void *, struct pt_regs *regs), void *dev_id);
695extern void cpm_free_handler(int vec); 694extern void cpm_free_handler(int vec);
696 695
697#endif /* __CPM_8XX__ */ 696#endif /* __CPM_8XX__ */
diff --git a/include/asm-ppc/floppy.h b/include/asm-ppc/floppy.h
index d3963ca79ad8..ae316e6d2ca9 100644
--- a/include/asm-ppc/floppy.h
+++ b/include/asm-ppc/floppy.h
@@ -38,14 +38,14 @@ static int virtual_dma_mode;
38static int doing_vdma; 38static int doing_vdma;
39static struct fd_dma_ops *fd_ops; 39static struct fd_dma_ops *fd_ops;
40 40
41static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) 41static irqreturn_t floppy_hardint(int irq, void *dev_id)
42{ 42{
43 unsigned char st; 43 unsigned char st;
44 int lcount; 44 int lcount;
45 char *lptr; 45 char *lptr;
46 46
47 if (!doing_vdma) 47 if (!doing_vdma)
48 return floppy_interrupt(irq, dev_id, regs); 48 return floppy_interrupt(irq, dev_id);
49 49
50 50
51 st = 1; 51 st = 1;
@@ -69,7 +69,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
69 virtual_dma_residue += virtual_dma_count; 69 virtual_dma_residue += virtual_dma_count;
70 virtual_dma_count=0; 70 virtual_dma_count=0;
71 doing_vdma = 0; 71 doing_vdma = 0;
72 floppy_interrupt(irq, dev_id, regs); 72 floppy_interrupt(irq, dev_id);
73 return IRQ_HANDLED; 73 return IRQ_HANDLED;
74 } 74 }
75 return IRQ_HANDLED; 75 return IRQ_HANDLED;
diff --git a/include/asm-ppc/gt64260.h b/include/asm-ppc/gt64260.h
index cd0ef644943d..9e63b3cfffca 100644
--- a/include/asm-ppc/gt64260.h
+++ b/include/asm-ppc/gt64260.h
@@ -315,7 +315,7 @@ int gt64260_get_base(u32 *base);
315int gt64260_pci_exclude_device(u8 bus, u8 devfn); 315int gt64260_pci_exclude_device(u8 bus, u8 devfn);
316 316
317void gt64260_init_irq(void); 317void gt64260_init_irq(void);
318int gt64260_get_irq(struct pt_regs *regs); 318int gt64260_get_irq(void);
319 319
320void gt64260_mpsc_progress(char *s, unsigned short hex); 320void gt64260_mpsc_progress(char *s, unsigned short hex);
321 321
diff --git a/include/asm-ppc/machdep.h b/include/asm-ppc/machdep.h
index da7746738aee..293a444a1d77 100644
--- a/include/asm-ppc/machdep.h
+++ b/include/asm-ppc/machdep.h
@@ -43,7 +43,7 @@ struct machdep_calls {
43 /* Optional, may be NULL. */ 43 /* Optional, may be NULL. */
44 unsigned int (*irq_canonicalize)(unsigned int irq); 44 unsigned int (*irq_canonicalize)(unsigned int irq);
45 void (*init_IRQ)(void); 45 void (*init_IRQ)(void);
46 int (*get_irq)(struct pt_regs *); 46 int (*get_irq)(void);
47 47
48 /* A general init function, called by ppc_init in init/main.c. 48 /* A general init function, called by ppc_init in init/main.c.
49 May be NULL. DEPRECATED ! */ 49 May be NULL. DEPRECATED ! */
diff --git a/include/asm-ppc/mpc52xx.h b/include/asm-ppc/mpc52xx.h
index 7e9842805a28..64c8874618dc 100644
--- a/include/asm-ppc/mpc52xx.h
+++ b/include/asm-ppc/mpc52xx.h
@@ -415,7 +415,7 @@ struct mpc52xx_cdm {
415#ifndef __ASSEMBLY__ 415#ifndef __ASSEMBLY__
416 416
417extern void mpc52xx_init_irq(void); 417extern void mpc52xx_init_irq(void);
418extern int mpc52xx_get_irq(struct pt_regs *regs); 418extern int mpc52xx_get_irq(void);
419 419
420extern unsigned long mpc52xx_find_end_of_memory(void); 420extern unsigned long mpc52xx_find_end_of_memory(void);
421extern void mpc52xx_set_bat(void); 421extern void mpc52xx_set_bat(void);
diff --git a/include/asm-ppc/mv64x60.h b/include/asm-ppc/mv64x60.h
index 663edbee3e91..db3776f18198 100644
--- a/include/asm-ppc/mv64x60.h
+++ b/include/asm-ppc/mv64x60.h
@@ -336,9 +336,9 @@ int mv64x60_pci_exclude_device(u8 bus, u8 devfn);
336 336
337 337
338void gt64260_init_irq(void); 338void gt64260_init_irq(void);
339int gt64260_get_irq(struct pt_regs *regs); 339int gt64260_get_irq(void);
340void mv64360_init_irq(void); 340void mv64360_init_irq(void);
341int mv64360_get_irq(struct pt_regs *regs); 341int mv64360_get_irq(void);
342 342
343u32 mv64x60_mask(u32 val, u32 num_bits); 343u32 mv64x60_mask(u32 val, u32 num_bits);
344u32 mv64x60_shift_left(u32 val, u32 num_bits); 344u32 mv64x60_shift_left(u32 val, u32 num_bits);
diff --git a/include/asm-ppc/open_pic.h b/include/asm-ppc/open_pic.h
index a4fe962d9f73..778d5726212c 100644
--- a/include/asm-ppc/open_pic.h
+++ b/include/asm-ppc/open_pic.h
@@ -48,12 +48,12 @@ extern void openpic_init(int linux_irq_offset);
48extern void openpic_init_nmi_irq(u_int irq); 48extern void openpic_init_nmi_irq(u_int irq);
49extern void openpic_set_irq_priority(u_int irq, u_int pri); 49extern void openpic_set_irq_priority(u_int irq, u_int pri);
50extern void openpic_hookup_cascade(u_int irq, char *name, 50extern void openpic_hookup_cascade(u_int irq, char *name,
51 int (*cascade_fn)(struct pt_regs *)); 51 int (*cascade_fn)(void));
52extern u_int openpic_irq(void); 52extern u_int openpic_irq(void);
53extern void openpic_eoi(void); 53extern void openpic_eoi(void);
54extern void openpic_request_IPIs(void); 54extern void openpic_request_IPIs(void);
55extern void do_openpic_setup_cpu(void); 55extern void do_openpic_setup_cpu(void);
56extern int openpic_get_irq(struct pt_regs *regs); 56extern int openpic_get_irq(void);
57extern void openpic_reset_processor_phys(u_int cpumask); 57extern void openpic_reset_processor_phys(u_int cpumask);
58extern void openpic_setup_ISU(int isu_num, unsigned long addr); 58extern void openpic_setup_ISU(int isu_num, unsigned long addr);
59extern void openpic_cause_IPI(u_int ipi, cpumask_t cpumask); 59extern void openpic_cause_IPI(u_int ipi, cpumask_t cpumask);
@@ -93,6 +93,6 @@ extern void openpic2_init(int linux_irq_offset);
93extern void openpic2_init_nmi_irq(u_int irq); 93extern void openpic2_init_nmi_irq(u_int irq);
94extern u_int openpic2_irq(void); 94extern u_int openpic2_irq(void);
95extern void openpic2_eoi(void); 95extern void openpic2_eoi(void);
96extern int openpic2_get_irq(struct pt_regs *regs); 96extern int openpic2_get_irq(void);
97extern void openpic2_setup_ISU(int isu_num, unsigned long addr); 97extern void openpic2_setup_ISU(int isu_num, unsigned long addr);
98#endif /* _PPC_KERNEL_OPEN_PIC_H */ 98#endif /* _PPC_KERNEL_OPEN_PIC_H */
diff --git a/include/asm-ppc/smp.h b/include/asm-ppc/smp.h
index 0b7fa89589df..e75791ea33a6 100644
--- a/include/asm-ppc/smp.h
+++ b/include/asm-ppc/smp.h
@@ -39,7 +39,7 @@ extern struct smp_ops_t *smp_ops;
39extern void smp_send_tlb_invalidate(int); 39extern void smp_send_tlb_invalidate(int);
40extern void smp_send_xmon_break(int cpu); 40extern void smp_send_xmon_break(int cpu);
41struct pt_regs; 41struct pt_regs;
42extern void smp_message_recv(int, struct pt_regs *); 42extern void smp_message_recv(int);
43 43
44extern int __cpu_disable(void); 44extern int __cpu_disable(void);
45extern void __cpu_die(unsigned int cpu); 45extern void __cpu_die(unsigned int cpu);
diff --git a/include/asm-s390/hardirq.h b/include/asm-s390/hardirq.h
index e84b7ef54aac..c2f6a8782d31 100644
--- a/include/asm-s390/hardirq.h
+++ b/include/asm-s390/hardirq.h
@@ -32,6 +32,6 @@ typedef struct {
32 32
33#define HARDIRQ_BITS 8 33#define HARDIRQ_BITS 8
34 34
35extern void account_ticks(struct pt_regs *); 35extern void account_ticks(void);
36 36
37#endif /* __ASM_HARDIRQ_H */ 37#endif /* __ASM_HARDIRQ_H */
diff --git a/include/asm-s390/irq_regs.h b/include/asm-s390/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-s390/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-s390/percpu.h b/include/asm-s390/percpu.h
index 495ad99c7635..9ea7f1023e57 100644
--- a/include/asm-s390/percpu.h
+++ b/include/asm-s390/percpu.h
@@ -16,7 +16,7 @@
16#if defined(__s390x__) && defined(MODULE) 16#if defined(__s390x__) && defined(MODULE)
17 17
18#define __reloc_hide(var,offset) (*({ \ 18#define __reloc_hide(var,offset) (*({ \
19 extern int simple_indentifier_##var(void); \ 19 extern int simple_identifier_##var(void); \
20 unsigned long *__ptr; \ 20 unsigned long *__ptr; \
21 asm ( "larl %0,per_cpu__"#var"@GOTENT" \ 21 asm ( "larl %0,per_cpu__"#var"@GOTENT" \
22 : "=a" (__ptr) : "X" (per_cpu__##var) ); \ 22 : "=a" (__ptr) : "X" (per_cpu__##var) ); \
@@ -25,7 +25,7 @@
25#else 25#else
26 26
27#define __reloc_hide(var, offset) (*({ \ 27#define __reloc_hide(var, offset) (*({ \
28 extern int simple_indentifier_##var(void); \ 28 extern int simple_identifier_##var(void); \
29 unsigned long __ptr; \ 29 unsigned long __ptr; \
30 asm ( "" : "=a" (__ptr) : "0" (&per_cpu__##var) ); \ 30 asm ( "" : "=a" (__ptr) : "0" (&per_cpu__##var) ); \
31 (typeof(&per_cpu__##var)) (__ptr + (offset)); })) 31 (typeof(&per_cpu__##var)) (__ptr + (offset)); }))
diff --git a/include/asm-s390/s390_ext.h b/include/asm-s390/s390_ext.h
index e9a2862b230d..df9b1017b703 100644
--- a/include/asm-s390/s390_ext.h
+++ b/include/asm-s390/s390_ext.h
@@ -10,7 +10,7 @@
10 * Martin Schwidefsky (schwidefsky@de.ibm.com) 10 * Martin Schwidefsky (schwidefsky@de.ibm.com)
11 */ 11 */
12 12
13typedef void (*ext_int_handler_t)(struct pt_regs *regs, __u16 code); 13typedef void (*ext_int_handler_t)(__u16 code);
14 14
15/* 15/*
16 * Warning: if you change ext_int_info_t you have to change the 16 * Warning: if you change ext_int_info_t you have to change the
diff --git a/include/asm-sparc/floppy.h b/include/asm-sparc/floppy.h
index c53b332c850a..9073c84218ce 100644
--- a/include/asm-sparc/floppy.h
+++ b/include/asm-sparc/floppy.h
@@ -262,7 +262,7 @@ static __inline__ void sun_fd_enable_dma(void)
262} 262}
263 263
264/* Our low-level entry point in arch/sparc/kernel/entry.S */ 264/* Our low-level entry point in arch/sparc/kernel/entry.S */
265irqreturn_t floppy_hardint(int irq, void *unused, struct pt_regs *regs); 265irqreturn_t floppy_hardint(int irq, void *unused);
266 266
267static int sun_fd_request_irq(void) 267static int sun_fd_request_irq(void)
268{ 268{
diff --git a/include/asm-sparc/irq.h b/include/asm-sparc/irq.h
index 3141ddfea97d..ff520ea97473 100644
--- a/include/asm-sparc/irq.h
+++ b/include/asm-sparc/irq.h
@@ -76,8 +76,8 @@ static inline void load_profile_irq(int cpu, int limit)
76 BTFIXUP_CALL(load_profile_irq)(cpu, limit); 76 BTFIXUP_CALL(load_profile_irq)(cpu, limit);
77} 77}
78 78
79extern void (*sparc_init_timers)(irqreturn_t (*lvl10_irq)(int, void *, struct pt_regs *)); 79extern void (*sparc_init_timers)(irq_handler_t lvl10_irq);
80extern void claim_ticker14(irqreturn_t (*irq_handler)(int, void *, struct pt_regs *), 80extern void claim_ticker14(irq_handler_t irq_handler,
81 int irq, 81 int irq,
82 unsigned int timeout); 82 unsigned int timeout);
83 83
@@ -91,7 +91,7 @@ BTFIXUPDEF_CALL(void, set_irq_udt, int)
91#define set_irq_udt(cpu) BTFIXUP_CALL(set_irq_udt)(cpu) 91#define set_irq_udt(cpu) BTFIXUP_CALL(set_irq_udt)(cpu)
92#endif 92#endif
93 93
94extern int request_fast_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, __const__ char *devname); 94extern int request_fast_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, __const__ char *devname);
95 95
96/* On the sun4m, just like the timers, we have both per-cpu and master 96/* On the sun4m, just like the timers, we have both per-cpu and master
97 * interrupt registers. 97 * interrupt registers.
diff --git a/include/asm-sparc/irq_regs.h b/include/asm-sparc/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-sparc/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-sparc/spinlock.h b/include/asm-sparc/spinlock.h
index 557d08959d2f..de2249b267c6 100644
--- a/include/asm-sparc/spinlock.h
+++ b/include/asm-sparc/spinlock.h
@@ -129,6 +129,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw)
129 : /* no outputs */ 129 : /* no outputs */
130 : "r" (lp) 130 : "r" (lp)
131 : "g2", "g4", "memory", "cc"); 131 : "g2", "g4", "memory", "cc");
132 *(volatile __u32 *)&lp->lock = ~0U;
132} 133}
133 134
134static inline int __raw_write_trylock(raw_rwlock_t *rw) 135static inline int __raw_write_trylock(raw_rwlock_t *rw)
@@ -144,15 +145,40 @@ static inline int __raw_write_trylock(raw_rwlock_t *rw)
144 val = rw->lock & ~0xff; 145 val = rw->lock & ~0xff;
145 if (val) 146 if (val)
146 ((volatile u8*)&rw->lock)[3] = 0; 147 ((volatile u8*)&rw->lock)[3] = 0;
148 else
149 *(volatile u32*)&rw->lock = ~0U;
147 } 150 }
148 151
149 return (val == 0); 152 return (val == 0);
150} 153}
151 154
155static inline int __read_trylock(raw_rwlock_t *rw)
156{
157 register raw_rwlock_t *lp asm("g1");
158 register int res asm("o0");
159 lp = rw;
160 __asm__ __volatile__(
161 "mov %%o7, %%g4\n\t"
162 "call ___rw_read_try\n\t"
163 " ldstub [%%g1 + 3], %%g2\n"
164 : "=r" (res)
165 : "r" (lp)
166 : "g2", "g4", "memory", "cc");
167 return res;
168}
169
170#define __raw_read_trylock(lock) \
171({ unsigned long flags; \
172 int res; \
173 local_irq_save(flags); \
174 res = __read_trylock(lock); \
175 local_irq_restore(flags); \
176 res; \
177})
178
152#define __raw_write_unlock(rw) do { (rw)->lock = 0; } while(0) 179#define __raw_write_unlock(rw) do { (rw)->lock = 0; } while(0)
153 180
154#define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock) 181#define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock)
155#define __raw_read_trylock(lock) generic__raw_read_trylock(lock)
156 182
157#define _raw_spin_relax(lock) cpu_relax() 183#define _raw_spin_relax(lock) cpu_relax()
158#define _raw_read_relax(lock) cpu_relax() 184#define _raw_read_relax(lock) cpu_relax()
diff --git a/include/asm-sparc64/floppy.h b/include/asm-sparc64/floppy.h
index abf150038019..dbe033e494db 100644
--- a/include/asm-sparc64/floppy.h
+++ b/include/asm-sparc64/floppy.h
@@ -208,7 +208,7 @@ static void sun_fd_enable_dma(void)
208 pdma_areasize = pdma_size; 208 pdma_areasize = pdma_size;
209} 209}
210 210
211irqreturn_t sparc_floppy_irq(int irq, void *dev_cookie, struct pt_regs *regs) 211irqreturn_t sparc_floppy_irq(int irq, void *dev_cookie)
212{ 212{
213 if (likely(doing_pdma)) { 213 if (likely(doing_pdma)) {
214 void __iomem *stat = (void __iomem *) fdc_status; 214 void __iomem *stat = (void __iomem *) fdc_status;
@@ -255,7 +255,7 @@ irqreturn_t sparc_floppy_irq(int irq, void *dev_cookie, struct pt_regs *regs)
255 } 255 }
256 256
257main_interrupt: 257main_interrupt:
258 return floppy_interrupt(irq, dev_cookie, regs); 258 return floppy_interrupt(irq, dev_cookie);
259} 259}
260 260
261static int sun_fd_request_irq(void) 261static int sun_fd_request_irq(void)
@@ -311,7 +311,7 @@ struct sun_pci_dma_op {
311static struct sun_pci_dma_op sun_pci_dma_current = { -1U, 0, 0, NULL}; 311static struct sun_pci_dma_op sun_pci_dma_current = { -1U, 0, 0, NULL};
312static struct sun_pci_dma_op sun_pci_dma_pending = { -1U, 0, 0, NULL}; 312static struct sun_pci_dma_op sun_pci_dma_pending = { -1U, 0, 0, NULL};
313 313
314extern irqreturn_t floppy_interrupt(int irq, void *dev_id, struct pt_regs *regs); 314extern irqreturn_t floppy_interrupt(int irq, void *dev_id);
315 315
316static unsigned char sun_pci_fd_inb(unsigned long port) 316static unsigned char sun_pci_fd_inb(unsigned long port)
317{ 317{
@@ -446,7 +446,7 @@ static int sun_pci_fd_eject(int drive)
446 446
447void sun_pci_fd_dma_callback(struct ebus_dma_info *p, int event, void *cookie) 447void sun_pci_fd_dma_callback(struct ebus_dma_info *p, int event, void *cookie)
448{ 448{
449 floppy_interrupt(0, NULL, NULL); 449 floppy_interrupt(0, NULL);
450} 450}
451 451
452/* 452/*
diff --git a/include/asm-sparc64/irq_regs.h b/include/asm-sparc64/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-sparc64/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-um/irq_regs.h b/include/asm-um/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-um/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-x86_64/apic.h b/include/asm-x86_64/apic.h
index 9e66d32330c9..e81d0f289f0b 100644
--- a/include/asm-x86_64/apic.h
+++ b/include/asm-x86_64/apic.h
@@ -77,7 +77,7 @@ extern void sync_Arb_IDs (void);
77extern void init_bsp_APIC (void); 77extern void init_bsp_APIC (void);
78extern void setup_local_APIC (void); 78extern void setup_local_APIC (void);
79extern void init_apic_mappings (void); 79extern void init_apic_mappings (void);
80extern void smp_local_timer_interrupt (struct pt_regs * regs); 80extern void smp_local_timer_interrupt (void);
81extern void setup_boot_APIC_clock (void); 81extern void setup_boot_APIC_clock (void);
82extern void setup_secondary_APIC_clock (void); 82extern void setup_secondary_APIC_clock (void);
83extern int APIC_init_uniprocessor (void); 83extern int APIC_init_uniprocessor (void);
diff --git a/include/asm-x86_64/floppy.h b/include/asm-x86_64/floppy.h
index 32ff5d132714..6ea13c3806f3 100644
--- a/include/asm-x86_64/floppy.h
+++ b/include/asm-x86_64/floppy.h
@@ -51,7 +51,7 @@ static char *virtual_dma_addr;
51static int virtual_dma_mode; 51static int virtual_dma_mode;
52static int doing_pdma; 52static int doing_pdma;
53 53
54static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) 54static irqreturn_t floppy_hardint(int irq, void *dev_id)
55{ 55{
56 register unsigned char st; 56 register unsigned char st;
57 57
@@ -63,7 +63,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
63 static int dma_wait=0; 63 static int dma_wait=0;
64#endif 64#endif
65 if (!doing_pdma) 65 if (!doing_pdma)
66 return floppy_interrupt(irq, dev_id, regs); 66 return floppy_interrupt(irq, dev_id);
67 67
68#ifdef TRACE_FLPY_INT 68#ifdef TRACE_FLPY_INT
69 if(!calls) 69 if(!calls)
@@ -106,7 +106,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
106 dma_wait=0; 106 dma_wait=0;
107#endif 107#endif
108 doing_pdma = 0; 108 doing_pdma = 0;
109 floppy_interrupt(irq, dev_id, regs); 109 floppy_interrupt(irq, dev_id);
110 return IRQ_HANDLED; 110 return IRQ_HANDLED;
111 } 111 }
112#ifdef TRACE_FLPY_INT 112#ifdef TRACE_FLPY_INT
diff --git a/include/asm-x86_64/genapic.h b/include/asm-x86_64/genapic.h
index 81e714665344..a0e9a4b93484 100644
--- a/include/asm-x86_64/genapic.h
+++ b/include/asm-x86_64/genapic.h
@@ -18,6 +18,7 @@ struct genapic {
18 u32 int_dest_mode; 18 u32 int_dest_mode;
19 int (*apic_id_registered)(void); 19 int (*apic_id_registered)(void);
20 cpumask_t (*target_cpus)(void); 20 cpumask_t (*target_cpus)(void);
21 cpumask_t (*vector_allocation_domain)(int cpu);
21 void (*init_apic_ldr)(void); 22 void (*init_apic_ldr)(void);
22 /* ipi */ 23 /* ipi */
23 void (*send_IPI_mask)(cpumask_t mask, int vector); 24 void (*send_IPI_mask)(cpumask_t mask, int vector);
diff --git a/include/asm-x86_64/hw_irq.h b/include/asm-x86_64/hw_irq.h
index 53d0d9fd10d6..792dd52fcd70 100644
--- a/include/asm-x86_64/hw_irq.h
+++ b/include/asm-x86_64/hw_irq.h
@@ -74,10 +74,8 @@
74 74
75 75
76#ifndef __ASSEMBLY__ 76#ifndef __ASSEMBLY__
77extern unsigned int irq_vector[NR_IRQ_VECTORS];
78typedef int vector_irq_t[NR_VECTORS]; 77typedef int vector_irq_t[NR_VECTORS];
79DECLARE_PER_CPU(vector_irq_t, vector_irq); 78DECLARE_PER_CPU(vector_irq_t, vector_irq);
80#define IO_APIC_VECTOR(irq) (irq_vector[irq])
81 79
82/* 80/*
83 * Various low-level irq details needed by irq.c, process.c, 81 * Various low-level irq details needed by irq.c, process.c,
diff --git a/include/asm-x86_64/irq_regs.h b/include/asm-x86_64/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-x86_64/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-x86_64/mach_apic.h b/include/asm-x86_64/mach_apic.h
index d33422450c00..7b7115a0c1c9 100644
--- a/include/asm-x86_64/mach_apic.h
+++ b/include/asm-x86_64/mach_apic.h
@@ -17,6 +17,7 @@
17#define INT_DELIVERY_MODE (genapic->int_delivery_mode) 17#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
18#define INT_DEST_MODE (genapic->int_dest_mode) 18#define INT_DEST_MODE (genapic->int_dest_mode)
19#define TARGET_CPUS (genapic->target_cpus()) 19#define TARGET_CPUS (genapic->target_cpus())
20#define vector_allocation_domain (genapic->vector_allocation_domain)
20#define apic_id_registered (genapic->apic_id_registered) 21#define apic_id_registered (genapic->apic_id_registered)
21#define init_apic_ldr (genapic->init_apic_ldr) 22#define init_apic_ldr (genapic->init_apic_ldr)
22#define send_IPI_mask (genapic->send_IPI_mask) 23#define send_IPI_mask (genapic->send_IPI_mask)
diff --git a/include/asm-x86_64/percpu.h b/include/asm-x86_64/percpu.h
index 285756010c51..5ed0ef340842 100644
--- a/include/asm-x86_64/percpu.h
+++ b/include/asm-x86_64/percpu.h
@@ -32,13 +32,13 @@
32 32
33/* var is in discarded region: offset to particular copy we want */ 33/* var is in discarded region: offset to particular copy we want */
34#define per_cpu(var, cpu) (*({ \ 34#define per_cpu(var, cpu) (*({ \
35 extern int simple_indentifier_##var(void); \ 35 extern int simple_identifier_##var(void); \
36 RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu)); })) 36 RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu)); }))
37#define __get_cpu_var(var) (*({ \ 37#define __get_cpu_var(var) (*({ \
38 extern int simple_indentifier_##var(void); \ 38 extern int simple_identifier_##var(void); \
39 RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()); })) 39 RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()); }))
40#define __raw_get_cpu_var(var) (*({ \ 40#define __raw_get_cpu_var(var) (*({ \
41 extern int simple_indentifier_##var(void); \ 41 extern int simple_identifier_##var(void); \
42 RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()); })) 42 RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()); }))
43 43
44/* A macro to avoid #include hell... */ 44/* A macro to avoid #include hell... */
diff --git a/include/asm-x86_64/proto.h b/include/asm-x86_64/proto.h
index c28fc2db2171..c181fef786e4 100644
--- a/include/asm-x86_64/proto.h
+++ b/include/asm-x86_64/proto.h
@@ -66,7 +66,7 @@ extern void free_bootmem_generic(unsigned long phys, unsigned len);
66extern void load_gs_index(unsigned gs); 66extern void load_gs_index(unsigned gs);
67 67
68extern void stop_timer_interrupt(void); 68extern void stop_timer_interrupt(void);
69extern void main_timer_handler(struct pt_regs *regs); 69extern void main_timer_handler(void);
70 70
71extern unsigned long end_pfn_map; 71extern unsigned long end_pfn_map;
72 72
@@ -124,7 +124,7 @@ extern int notsc_setup(char *);
124 124
125extern int gsi_irq_sharing(int gsi); 125extern int gsi_irq_sharing(int gsi);
126 126
127extern void smp_local_timer_interrupt(struct pt_regs * regs); 127extern void smp_local_timer_interrupt(void);
128 128
129long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); 129long do_arch_prctl(struct task_struct *task, int code, unsigned long addr);
130 130
diff --git a/include/linux/adb.h b/include/linux/adb.h
index b7305b178279..64d8878e1444 100644
--- a/include/linux/adb.h
+++ b/include/linux/adb.h
@@ -90,10 +90,10 @@ extern struct blocking_notifier_head adb_client_list;
90int adb_request(struct adb_request *req, void (*done)(struct adb_request *), 90int adb_request(struct adb_request *req, void (*done)(struct adb_request *),
91 int flags, int nbytes, ...); 91 int flags, int nbytes, ...);
92int adb_register(int default_id,int handler_id,struct adb_ids *ids, 92int adb_register(int default_id,int handler_id,struct adb_ids *ids,
93 void (*handler)(unsigned char *, int, struct pt_regs *, int)); 93 void (*handler)(unsigned char *, int, int));
94int adb_unregister(int index); 94int adb_unregister(int index);
95void adb_poll(void); 95void adb_poll(void);
96void adb_input(unsigned char *, int, struct pt_regs *, int); 96void adb_input(unsigned char *, int, int);
97int adb_reset_bus(void); 97int adb_reset_bus(void);
98 98
99int adb_try_handler_change(int address, int new_id); 99int adb_try_handler_change(int address, int new_id);
diff --git a/include/linux/arcdevice.h b/include/linux/arcdevice.h
index 231ba090ae34..2f85049cfb3d 100644
--- a/include/linux/arcdevice.h
+++ b/include/linux/arcdevice.h
@@ -334,7 +334,7 @@ void arcnet_dump_skb(struct net_device *dev, struct sk_buff *skb, char *desc);
334#endif 334#endif
335 335
336void arcnet_unregister_proto(struct ArcProto *proto); 336void arcnet_unregister_proto(struct ArcProto *proto);
337irqreturn_t arcnet_interrupt(int irq, void *dev_id, struct pt_regs *regs); 337irqreturn_t arcnet_interrupt(int irq, void *dev_id);
338struct net_device *alloc_arcdev(char *name); 338struct net_device *alloc_arcdev(char *name);
339 339
340#endif /* __KERNEL__ */ 340#endif /* __KERNEL__ */
diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
index 3c9b0bc05123..bbbe7b4da0bb 100644
--- a/include/linux/cdrom.h
+++ b/include/linux/cdrom.h
@@ -749,7 +749,7 @@ struct request_sense {
749#define MRW_MODE_PC 0x03 749#define MRW_MODE_PC 0x03
750 750
751struct mrw_feature_desc { 751struct mrw_feature_desc {
752 __u16 feature_code; 752 __be16 feature_code;
753#if defined(__BIG_ENDIAN_BITFIELD) 753#if defined(__BIG_ENDIAN_BITFIELD)
754 __u8 reserved1 : 2; 754 __u8 reserved1 : 2;
755 __u8 feature_version : 4; 755 __u8 feature_version : 4;
@@ -776,7 +776,7 @@ struct mrw_feature_desc {
776 776
777/* cf. mmc4r02g.pdf 5.3.10 Random Writable Feature (0020h) pg 197 of 635 */ 777/* cf. mmc4r02g.pdf 5.3.10 Random Writable Feature (0020h) pg 197 of 635 */
778struct rwrt_feature_desc { 778struct rwrt_feature_desc {
779 __u16 feature_code; 779 __be16 feature_code;
780#if defined(__BIG_ENDIAN_BITFIELD) 780#if defined(__BIG_ENDIAN_BITFIELD)
781 __u8 reserved1 : 2; 781 __u8 reserved1 : 2;
782 __u8 feature_version : 4; 782 __u8 feature_version : 4;
@@ -803,7 +803,7 @@ struct rwrt_feature_desc {
803}; 803};
804 804
805typedef struct { 805typedef struct {
806 __u16 disc_information_length; 806 __be16 disc_information_length;
807#if defined(__BIG_ENDIAN_BITFIELD) 807#if defined(__BIG_ENDIAN_BITFIELD)
808 __u8 reserved1 : 3; 808 __u8 reserved1 : 3;
809 __u8 erasable : 1; 809 __u8 erasable : 1;
@@ -849,7 +849,7 @@ typedef struct {
849} disc_information; 849} disc_information;
850 850
851typedef struct { 851typedef struct {
852 __u16 track_information_length; 852 __be16 track_information_length;
853 __u8 track_lsb; 853 __u8 track_lsb;
854 __u8 session_lsb; 854 __u8 session_lsb;
855 __u8 reserved1; 855 __u8 reserved1;
@@ -880,12 +880,12 @@ typedef struct {
880 __u8 lra_v : 1; 880 __u8 lra_v : 1;
881 __u8 reserved3 : 6; 881 __u8 reserved3 : 6;
882#endif 882#endif
883 __u32 track_start; 883 __be32 track_start;
884 __u32 next_writable; 884 __be32 next_writable;
885 __u32 free_blocks; 885 __be32 free_blocks;
886 __u32 fixed_packet_size; 886 __be32 fixed_packet_size;
887 __u32 track_size; 887 __be32 track_size;
888 __u32 last_rec_address; 888 __be32 last_rec_address;
889} track_information; 889} track_information;
890 890
891struct feature_header { 891struct feature_header {
@@ -896,12 +896,12 @@ struct feature_header {
896}; 896};
897 897
898struct mode_page_header { 898struct mode_page_header {
899 __u16 mode_data_length; 899 __be16 mode_data_length;
900 __u8 medium_type; 900 __u8 medium_type;
901 __u8 reserved1; 901 __u8 reserved1;
902 __u8 reserved2; 902 __u8 reserved2;
903 __u8 reserved3; 903 __u8 reserved3;
904 __u16 desc_length; 904 __be16 desc_length;
905}; 905};
906 906
907#ifdef __KERNEL__ 907#ifdef __KERNEL__
@@ -1106,7 +1106,7 @@ typedef struct {
1106#endif 1106#endif
1107 __u8 session_format; 1107 __u8 session_format;
1108 __u8 reserved6; 1108 __u8 reserved6;
1109 __u32 packet_size; 1109 __be32 packet_size;
1110 __u16 audio_pause; 1110 __u16 audio_pause;
1111 __u8 mcn[16]; 1111 __u8 mcn[16];
1112 __u8 isrc[16]; 1112 __u8 isrc[16];
@@ -1151,7 +1151,7 @@ typedef struct {
1151} rpc_state_t; 1151} rpc_state_t;
1152 1152
1153struct event_header { 1153struct event_header {
1154 __u16 data_len; 1154 __be16 data_len;
1155#if defined(__BIG_ENDIAN_BITFIELD) 1155#if defined(__BIG_ENDIAN_BITFIELD)
1156 __u8 nea : 1; 1156 __u8 nea : 1;
1157 __u8 reserved1 : 4; 1157 __u8 reserved1 : 4;
diff --git a/include/linux/compat.h b/include/linux/compat.h
index ef5cd192784c..f4ebf96f5308 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -163,7 +163,7 @@ asmlinkage long
163compat_sys_set_robust_list(struct compat_robust_list_head __user *head, 163compat_sys_set_robust_list(struct compat_robust_list_head __user *head,
164 compat_size_t len); 164 compat_size_t len);
165asmlinkage long 165asmlinkage long
166compat_sys_get_robust_list(int pid, compat_uptr_t *head_ptr, 166compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
167 compat_size_t __user *len_ptr); 167 compat_size_t __user *len_ptr);
168 168
169long compat_sys_semctl(int first, int second, int third, void __user *uptr); 169long compat_sys_semctl(int first, int second, int third, void __user *uptr);
diff --git a/include/linux/config.h b/include/linux/config.h
deleted file mode 100644
index 479ffb0a22d8..000000000000
--- a/include/linux/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
1#ifndef _LINUX_CONFIG_H
2#define _LINUX_CONFIG_H
3/* This file is no longer in use and kept only for backward compatibility.
4 * autoconf.h is now included via -imacros on the commandline
5 */
6#warning Including config.h is deprecated.
7#include <linux/autoconf.h>
8
9#endif
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index d6f4ec467a4b..53553c99cad6 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -191,7 +191,7 @@ enum {
191/* this structure is argument to DCCP_SOCKOPT_CHANGE_X */ 191/* this structure is argument to DCCP_SOCKOPT_CHANGE_X */
192struct dccp_so_feat { 192struct dccp_so_feat {
193 __u8 dccpsf_feat; 193 __u8 dccpsf_feat;
194 __u8 *dccpsf_val; 194 __u8 __user *dccpsf_val;
195 __u8 dccpsf_len; 195 __u8 dccpsf_len;
196}; 196};
197 197
diff --git a/include/linux/hiddev.h b/include/linux/hiddev.h
index 945ba1ad14ac..acbdae6d7ae1 100644
--- a/include/linux/hiddev.h
+++ b/include/linux/hiddev.h
@@ -222,7 +222,7 @@ struct hid_report;
222int hiddev_connect(struct hid_device *); 222int hiddev_connect(struct hid_device *);
223void hiddev_disconnect(struct hid_device *); 223void hiddev_disconnect(struct hid_device *);
224void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, 224void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
225 struct hid_usage *usage, __s32 value, struct pt_regs *regs); 225 struct hid_usage *usage, __s32 value);
226void hiddev_report_event(struct hid_device *hid, struct hid_report *report); 226void hiddev_report_event(struct hid_device *hid, struct hid_report *report);
227int __init hiddev_init(void); 227int __init hiddev_init(void);
228void hiddev_exit(void); 228void hiddev_exit(void);
@@ -230,7 +230,7 @@ void hiddev_exit(void);
230static inline int hiddev_connect(struct hid_device *hid) { return -1; } 230static inline int hiddev_connect(struct hid_device *hid) { return -1; }
231static inline void hiddev_disconnect(struct hid_device *hid) { } 231static inline void hiddev_disconnect(struct hid_device *hid) { }
232static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, 232static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
233 struct hid_usage *usage, __s32 value, struct pt_regs *regs) { } 233 struct hid_usage *usage, __s32 value) { }
234static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { } 234static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { }
235static inline int hiddev_init(void) { return 0; } 235static inline int hiddev_init(void) { return 0; }
236static inline void hiddev_exit(void) { } 236static inline void hiddev_exit(void) { }
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 07d8d725541f..9c2050293f17 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1185,7 +1185,7 @@ extern void ide_stall_queue(ide_drive_t *drive, unsigned long timeout);
1185 1185
1186extern int ide_spin_wait_hwgroup(ide_drive_t *); 1186extern int ide_spin_wait_hwgroup(ide_drive_t *);
1187extern void ide_timer_expiry(unsigned long); 1187extern void ide_timer_expiry(unsigned long);
1188extern irqreturn_t ide_intr(int irq, void *dev_id, struct pt_regs *regs); 1188extern irqreturn_t ide_intr(int irq, void *dev_id);
1189extern void do_ide_request(request_queue_t *); 1189extern void do_ide_request(request_queue_t *);
1190 1190
1191void ide_init_disk(struct gendisk *, ide_drive_t *); 1191void ide_init_disk(struct gendisk *, ide_drive_t *);
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
index ab2740832742..35cb38573583 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -44,7 +44,7 @@ struct vlan_ethhdr {
44 unsigned char h_source[ETH_ALEN]; /* source ether addr */ 44 unsigned char h_source[ETH_ALEN]; /* source ether addr */
45 __be16 h_vlan_proto; /* Should always be 0x8100 */ 45 __be16 h_vlan_proto; /* Should always be 0x8100 */
46 __be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */ 46 __be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */
47 unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */ 47 __be16 h_vlan_encapsulated_proto; /* packet type ID field (or len) */
48}; 48};
49 49
50#include <linux/skbuff.h> 50#include <linux/skbuff.h>
diff --git a/include/linux/input.h b/include/linux/input.h
index 5770105471dd..c38507ba38b5 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -953,7 +953,6 @@ struct input_dev {
953 unsigned int repeat_key; 953 unsigned int repeat_key;
954 struct timer_list timer; 954 struct timer_list timer;
955 955
956 struct pt_regs *regs;
957 int state; 956 int state;
958 957
959 int sync; 958 int sync;
@@ -1149,15 +1148,9 @@ static inline void input_report_switch(struct input_dev *dev, unsigned int code,
1149 input_event(dev, EV_SW, code, !!value); 1148 input_event(dev, EV_SW, code, !!value);
1150} 1149}
1151 1150
1152static inline void input_regs(struct input_dev *dev, struct pt_regs *regs)
1153{
1154 dev->regs = regs;
1155}
1156
1157static inline void input_sync(struct input_dev *dev) 1151static inline void input_sync(struct input_dev *dev)
1158{ 1152{
1159 input_event(dev, EV_SYN, SYN_REPORT, 0); 1153 input_event(dev, EV_SYN, SYN_REPORT, 0);
1160 dev->regs = NULL;
1161} 1154}
1162 1155
1163static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat) 1156static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat)
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 1f97e3d92639..5b83e7b59621 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -64,8 +64,10 @@
64#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING 64#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING
65#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK 65#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK
66 66
67typedef irqreturn_t (*irq_handler_t)(int, void *);
68
67struct irqaction { 69struct irqaction {
68 irqreturn_t (*handler)(int, void *, struct pt_regs *); 70 irq_handler_t handler;
69 unsigned long flags; 71 unsigned long flags;
70 cpumask_t mask; 72 cpumask_t mask;
71 const char *name; 73 const char *name;
@@ -75,9 +77,8 @@ struct irqaction {
75 struct proc_dir_entry *dir; 77 struct proc_dir_entry *dir;
76}; 78};
77 79
78extern irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs); 80extern irqreturn_t no_action(int cpl, void *dev_id);
79extern int request_irq(unsigned int, 81extern int request_irq(unsigned int, irq_handler_t handler,
80 irqreturn_t (*handler)(int, void *, struct pt_regs *),
81 unsigned long, const char *, void *); 82 unsigned long, const char *, void *);
82extern void free_irq(unsigned int, void *); 83extern void free_irq(unsigned int, void *);
83 84
diff --git a/include/linux/io.h b/include/linux/io.h
index aa3f5af670b5..2ad96c3f0e4e 100644
--- a/include/linux/io.h
+++ b/include/linux/io.h
@@ -18,6 +18,7 @@
18#ifndef _LINUX_IO_H 18#ifndef _LINUX_IO_H
19#define _LINUX_IO_H 19#define _LINUX_IO_H
20 20
21#include <linux/types.h>
21#include <asm/io.h> 22#include <asm/io.h>
22#include <asm/page.h> 23#include <asm/page.h>
23 24
diff --git a/include/linux/ioc3.h b/include/linux/ioc3.h
index da7c09e4ede6..38b286e9a46c 100644
--- a/include/linux/ioc3.h
+++ b/include/linux/ioc3.h
@@ -63,7 +63,7 @@ struct ioc3_submodule {
63 /* IRQ stuff */ 63 /* IRQ stuff */
64 unsigned int irq_mask; /* IOC3 IRQ mask, leave clear for Ethernet */ 64 unsigned int irq_mask; /* IOC3 IRQ mask, leave clear for Ethernet */
65 int reset_mask; /* non-zero if you want the ioc3.c module to reset interrupts */ 65 int reset_mask; /* non-zero if you want the ioc3.c module to reset interrupts */
66 int (*intr) (struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int, struct pt_regs *); 66 int (*intr) (struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
67 /* private submodule data */ 67 /* private submodule data */
68 void *data; /* assigned by submodule */ 68 void *data; /* assigned by submodule */
69}; 69};
diff --git a/include/linux/ioc4.h b/include/linux/ioc4.h
index de73a3289cc2..51e2b9fb6372 100644
--- a/include/linux/ioc4.h
+++ b/include/linux/ioc4.h
@@ -157,7 +157,7 @@ struct ioc4_driver_data {
157 unsigned long idd_bar0; 157 unsigned long idd_bar0;
158 struct pci_dev *idd_pdev; 158 struct pci_dev *idd_pdev;
159 const struct pci_device_id *idd_pci_id; 159 const struct pci_device_id *idd_pci_id;
160 struct __iomem ioc4_misc_regs *idd_misc_regs; 160 struct ioc4_misc_regs __iomem *idd_misc_regs;
161 unsigned long count_period; 161 unsigned long count_period;
162 void *idd_serial_data; 162 void *idd_serial_data;
163 unsigned int idd_variant; 163 unsigned int idd_variant;
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 6f463606c318..c64f3cc7e870 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -21,6 +21,12 @@
21 21
22#include <asm/irq.h> 22#include <asm/irq.h>
23#include <asm/ptrace.h> 23#include <asm/ptrace.h>
24#include <asm/irq_regs.h>
25
26struct irq_desc;
27typedef void fastcall (*irq_flow_handler_t)(unsigned int irq,
28 struct irq_desc *desc);
29
24 30
25/* 31/*
26 * IRQ line status. 32 * IRQ line status.
@@ -139,9 +145,7 @@ struct irq_chip {
139 * Pad this out to 32 bytes for cache and indexing reasons. 145 * Pad this out to 32 bytes for cache and indexing reasons.
140 */ 146 */
141struct irq_desc { 147struct irq_desc {
142 void fastcall (*handle_irq)(unsigned int irq, 148 irq_flow_handler_t handle_irq;
143 struct irq_desc *desc,
144 struct pt_regs *regs);
145 struct irq_chip *chip; 149 struct irq_chip *chip;
146 void *handler_data; 150 void *handler_data;
147 void *chip_data; 151 void *chip_data;
@@ -254,43 +258,31 @@ static inline int select_smp_affinity(unsigned int irq)
254extern int no_irq_affinity; 258extern int no_irq_affinity;
255 259
256/* Handle irq action chains: */ 260/* Handle irq action chains: */
257extern int handle_IRQ_event(unsigned int irq, struct pt_regs *regs, 261extern int handle_IRQ_event(unsigned int irq, struct irqaction *action);
258 struct irqaction *action);
259 262
260/* 263/*
261 * Built-in IRQ handlers for various IRQ types, 264 * Built-in IRQ handlers for various IRQ types,
262 * callable via desc->chip->handle_irq() 265 * callable via desc->chip->handle_irq()
263 */ 266 */
264extern void fastcall 267extern void fastcall handle_level_irq(unsigned int irq, struct irq_desc *desc);
265handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); 268extern void fastcall handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc);
266extern void fastcall 269extern void fastcall handle_edge_irq(unsigned int irq, struct irq_desc *desc);
267handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc, 270extern void fastcall handle_simple_irq(unsigned int irq, struct irq_desc *desc);
268 struct pt_regs *regs); 271extern void fastcall handle_percpu_irq(unsigned int irq, struct irq_desc *desc);
269extern void fastcall 272extern void fastcall handle_bad_irq(unsigned int irq, struct irq_desc *desc);
270handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs);
271extern void fastcall
272handle_simple_irq(unsigned int irq, struct irq_desc *desc,
273 struct pt_regs *regs);
274extern void fastcall
275handle_percpu_irq(unsigned int irq, struct irq_desc *desc,
276 struct pt_regs *regs);
277extern void fastcall
278handle_bad_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs);
279 273
280/* 274/*
281 * Get a descriptive string for the highlevel handler, for 275 * Get a descriptive string for the highlevel handler, for
282 * /proc/interrupts output: 276 * /proc/interrupts output:
283 */ 277 */
284extern const char * 278extern const char *handle_irq_name(irq_flow_handler_t handle);
285handle_irq_name(void fastcall (*handle)(unsigned int, struct irq_desc *,
286 struct pt_regs *));
287 279
288/* 280/*
289 * Monolithic do_IRQ implementation. 281 * Monolithic do_IRQ implementation.
290 * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly) 282 * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly)
291 */ 283 */
292#ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ 284#ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ
293extern fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs); 285extern fastcall unsigned int __do_IRQ(unsigned int irq);
294#endif 286#endif
295 287
296/* 288/*
@@ -299,23 +291,23 @@ extern fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs);
299 * irqchip-style controller then we call the ->handle_irq() handler, 291 * irqchip-style controller then we call the ->handle_irq() handler,
300 * and it calls __do_IRQ() if it's attached to an irqtype-style controller. 292 * and it calls __do_IRQ() if it's attached to an irqtype-style controller.
301 */ 293 */
302static inline void generic_handle_irq(unsigned int irq, struct pt_regs *regs) 294static inline void generic_handle_irq(unsigned int irq)
303{ 295{
304 struct irq_desc *desc = irq_desc + irq; 296 struct irq_desc *desc = irq_desc + irq;
305 297
306#ifdef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ 298#ifdef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ
307 desc->handle_irq(irq, desc, regs); 299 desc->handle_irq(irq, desc);
308#else 300#else
309 if (likely(desc->handle_irq)) 301 if (likely(desc->handle_irq))
310 desc->handle_irq(irq, desc, regs); 302 desc->handle_irq(irq, desc);
311 else 303 else
312 __do_IRQ(irq, regs); 304 __do_IRQ(irq);
313#endif 305#endif
314} 306}
315 307
316/* Handling of unhandled and spurious interrupts: */ 308/* Handling of unhandled and spurious interrupts: */
317extern void note_interrupt(unsigned int irq, struct irq_desc *desc, 309extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
318 int action_ret, struct pt_regs *regs); 310 int action_ret);
319 311
320/* Resending of interrupts :*/ 312/* Resending of interrupts :*/
321void check_irq_resend(struct irq_desc *desc, unsigned int irq); 313void check_irq_resend(struct irq_desc *desc, unsigned int irq);
@@ -335,22 +327,15 @@ extern struct irq_chip dummy_irq_chip;
335 327
336extern void 328extern void
337set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, 329set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
338 void fastcall (*handle)(unsigned int, 330 irq_flow_handler_t handle);
339 struct irq_desc *,
340 struct pt_regs *));
341extern void 331extern void
342__set_irq_handler(unsigned int irq, 332__set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained);
343 void fastcall (*handle)(unsigned int, struct irq_desc *,
344 struct pt_regs *),
345 int is_chained);
346 333
347/* 334/*
348 * Set a highlevel flow handler for a given IRQ: 335 * Set a highlevel flow handler for a given IRQ:
349 */ 336 */
350static inline void 337static inline void
351set_irq_handler(unsigned int irq, 338set_irq_handler(unsigned int irq, irq_flow_handler_t handle)
352 void fastcall (*handle)(unsigned int, struct irq_desc *,
353 struct pt_regs *))
354{ 339{
355 __set_irq_handler(irq, handle, 0); 340 __set_irq_handler(irq, handle, 0);
356} 341}
@@ -362,8 +347,7 @@ set_irq_handler(unsigned int irq,
362 */ 347 */
363static inline void 348static inline void
364set_irq_chained_handler(unsigned int irq, 349set_irq_chained_handler(unsigned int irq,
365 void fastcall (*handle)(unsigned int, struct irq_desc *, 350 irq_flow_handler_t handle)
366 struct pt_regs *))
367{ 351{
368 __set_irq_handler(irq, handle, 1); 352 __set_irq_handler(irq, handle, 1);
369} 353}
diff --git a/include/linux/istallion.h b/include/linux/istallion.h
index 1f996621bc9c..b55e2a035605 100644
--- a/include/linux/istallion.h
+++ b/include/linux/istallion.h
@@ -100,7 +100,7 @@ typedef struct stlibrd {
100 unsigned int iobase; 100 unsigned int iobase;
101 int iosize; 101 int iosize;
102 unsigned long memaddr; 102 unsigned long memaddr;
103 void *membase; 103 void __iomem *membase;
104 int memsize; 104 int memsize;
105 int pagesize; 105 int pagesize;
106 int hostoffset; 106 int hostoffset;
@@ -113,7 +113,7 @@ typedef struct stlibrd {
113 void (*enable)(struct stlibrd *brdp); 113 void (*enable)(struct stlibrd *brdp);
114 void (*reenable)(struct stlibrd *brdp); 114 void (*reenable)(struct stlibrd *brdp);
115 void (*disable)(struct stlibrd *brdp); 115 void (*disable)(struct stlibrd *brdp);
116 char *(*getmemptr)(struct stlibrd *brdp, unsigned long offset, int line); 116 void __iomem *(*getmemptr)(struct stlibrd *brdp, unsigned long offset, int line);
117 void (*intr)(struct stlibrd *brdp); 117 void (*intr)(struct stlibrd *brdp);
118 void (*reset)(struct stlibrd *brdp); 118 void (*reset)(struct stlibrd *brdp);
119 stliport_t *ports[STL_MAXPORTS]; 119 stliport_t *ports[STL_MAXPORTS];
diff --git a/include/linux/libata.h b/include/linux/libata.h
index d1af1dbeaeb4..d0a7ad5ed518 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -628,7 +628,7 @@ struct ata_port_operations {
628 void (*error_handler) (struct ata_port *ap); 628 void (*error_handler) (struct ata_port *ap);
629 void (*post_internal_cmd) (struct ata_queued_cmd *qc); 629 void (*post_internal_cmd) (struct ata_queued_cmd *qc);
630 630
631 irqreturn_t (*irq_handler)(int, void *, struct pt_regs *); 631 irq_handler_t irq_handler;
632 void (*irq_clear) (struct ata_port *); 632 void (*irq_clear) (struct ata_port *);
633 633
634 u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg); 634 u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
@@ -769,7 +769,7 @@ extern void ata_exec_command(struct ata_port *ap, const struct ata_taskfile *tf)
769extern int ata_port_start (struct ata_port *ap); 769extern int ata_port_start (struct ata_port *ap);
770extern void ata_port_stop (struct ata_port *ap); 770extern void ata_port_stop (struct ata_port *ap);
771extern void ata_host_stop (struct ata_host *host); 771extern void ata_host_stop (struct ata_host *host);
772extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 772extern irqreturn_t ata_interrupt (int irq, void *dev_instance);
773extern void ata_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, 773extern void ata_mmio_data_xfer(struct ata_device *adev, unsigned char *buf,
774 unsigned int buflen, int write_data); 774 unsigned int buflen, int write_data);
775extern void ata_pio_data_xfer(struct ata_device *adev, unsigned char *buf, 775extern void ata_pio_data_xfer(struct ata_device *adev, unsigned char *buf,
diff --git a/include/linux/mm.h b/include/linux/mm.h
index b7966ab8cb6a..26146623be2f 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -593,6 +593,7 @@ static inline int page_mapped(struct page *page)
593 */ 593 */
594#define NOPAGE_SIGBUS (NULL) 594#define NOPAGE_SIGBUS (NULL)
595#define NOPAGE_OOM ((struct page *) (-1)) 595#define NOPAGE_OOM ((struct page *) (-1))
596#define NOPAGE_REFAULT ((struct page *) (-2)) /* Return to userspace, rerun */
596 597
597/* 598/*
598 * Error return values for the *_nopfn functions 599 * Error return values for the *_nopfn functions
diff --git a/include/linux/mmc/protocol.h b/include/linux/mmc/protocol.h
index 81c3f77f652c..08dec8d9e703 100644
--- a/include/linux/mmc/protocol.h
+++ b/include/linux/mmc/protocol.h
@@ -83,6 +83,7 @@
83 83
84 /* Application commands */ 84 /* Application commands */
85#define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */ 85#define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */
86#define SD_APP_SEND_NUM_WR_BLKS 22 /* adtc R1 */
86#define SD_APP_OP_COND 41 /* bcr [31:0] OCR R3 */ 87#define SD_APP_OP_COND 41 /* bcr [31:0] OCR R3 */
87#define SD_APP_SEND_SCR 51 /* adtc R1 */ 88#define SD_APP_SEND_SCR 51 /* adtc R1 */
88 89
diff --git a/include/linux/parport.h b/include/linux/parport.h
index 5bf321e82c99..80682aaa8f18 100644
--- a/include/linux/parport.h
+++ b/include/linux/parport.h
@@ -229,7 +229,7 @@ struct pardevice {
229 int (*preempt)(void *); 229 int (*preempt)(void *);
230 void (*wakeup)(void *); 230 void (*wakeup)(void *);
231 void *private; 231 void *private;
232 void (*irq_func)(int, void *, struct pt_regs *); 232 void (*irq_func)(int, void *);
233 unsigned int flags; 233 unsigned int flags;
234 struct pardevice *next; 234 struct pardevice *next;
235 struct pardevice *prev; 235 struct pardevice *prev;
@@ -375,7 +375,7 @@ extern void parport_put_port (struct parport *);
375struct pardevice *parport_register_device(struct parport *port, 375struct pardevice *parport_register_device(struct parport *port,
376 const char *name, 376 const char *name,
377 int (*pf)(void *), void (*kf)(void *), 377 int (*pf)(void *), void (*kf)(void *),
378 void (*irq_func)(int, void *, struct pt_regs *), 378 void (*irq_func)(int, void *),
379 int flags, void *handle); 379 int flags, void *handle);
380 380
381/* parport_unregister unlinks a device from the chain. */ 381/* parport_unregister unlinks a device from the chain. */
@@ -457,7 +457,7 @@ static __inline__ int parport_yield_blocking(struct pardevice *dev)
457#define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */ 457#define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */
458 458
459/* IEEE1284 functions */ 459/* IEEE1284 functions */
460extern void parport_ieee1284_interrupt (int, void *, struct pt_regs *); 460extern void parport_ieee1284_interrupt (int, void *);
461extern int parport_negotiate (struct parport *, int mode); 461extern int parport_negotiate (struct parport *, int mode);
462extern ssize_t parport_write (struct parport *, const void *buf, size_t len); 462extern ssize_t parport_write (struct parport *, const void *buf, size_t len);
463extern ssize_t parport_read (struct parport *, void *buf, size_t len); 463extern ssize_t parport_read (struct parport *, void *buf, size_t len);
@@ -502,8 +502,7 @@ extern void parport_daisy_fini (struct parport *port);
502extern struct pardevice *parport_open (int devnum, const char *name, 502extern struct pardevice *parport_open (int devnum, const char *name,
503 int (*pf) (void *), 503 int (*pf) (void *),
504 void (*kf) (void *), 504 void (*kf) (void *),
505 void (*irqf) (int, void *, 505 void (*irqf) (int, void *),
506 struct pt_regs *),
507 int flags, void *handle); 506 int flags, void *handle);
508extern void parport_close (struct pardevice *dev); 507extern void parport_close (struct pardevice *dev);
509extern ssize_t parport_device_id (int devnum, char *buffer, size_t len); 508extern ssize_t parport_device_id (int devnum, char *buffer, size_t len);
@@ -512,13 +511,12 @@ extern void parport_daisy_deselect_all (struct parport *port);
512extern int parport_daisy_select (struct parport *port, int daisy, int mode); 511extern int parport_daisy_select (struct parport *port, int daisy, int mode);
513 512
514/* Lowlevel drivers _can_ call this support function to handle irqs. */ 513/* Lowlevel drivers _can_ call this support function to handle irqs. */
515static __inline__ void parport_generic_irq(int irq, struct parport *port, 514static __inline__ void parport_generic_irq(int irq, struct parport *port)
516 struct pt_regs *regs)
517{ 515{
518 parport_ieee1284_interrupt (irq, port, regs); 516 parport_ieee1284_interrupt (irq, port);
519 read_lock(&port->cad_lock); 517 read_lock(&port->cad_lock);
520 if (port->cad && port->cad->irq_func) 518 if (port->cad && port->cad->irq_func)
521 port->cad->irq_func(irq, port->cad->private, regs); 519 port->cad->irq_func(irq, port->cad->private);
522 read_unlock(&port->cad_lock); 520 read_unlock(&port->cad_lock);
523} 521}
524 522
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index 46ec72fa2c84..600e3d387ffc 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -19,7 +19,7 @@
19 * we force a syntax error here if it isn't. 19 * we force a syntax error here if it isn't.
20 */ 20 */
21#define get_cpu_var(var) (*({ \ 21#define get_cpu_var(var) (*({ \
22 extern int simple_indentifier_##var(void); \ 22 extern int simple_identifier_##var(void); \
23 preempt_disable(); \ 23 preempt_disable(); \
24 &__get_cpu_var(var); })) 24 &__get_cpu_var(var); }))
25#define put_cpu_var(var) preempt_enable() 25#define put_cpu_var(var) preempt_enable()
diff --git a/include/linux/profile.h b/include/linux/profile.h
index e633004ae052..acce53fd38b6 100644
--- a/include/linux/profile.h
+++ b/include/linux/profile.h
@@ -17,7 +17,7 @@ struct notifier_block;
17 17
18/* init basic kernel profiler */ 18/* init basic kernel profiler */
19void __init profile_init(void); 19void __init profile_init(void);
20void profile_tick(int, struct pt_regs *); 20void profile_tick(int);
21void profile_hit(int, void *); 21void profile_hit(int, void *);
22#ifdef CONFIG_PROC_FS 22#ifdef CONFIG_PROC_FS
23void create_prof_cpu_mask(struct proc_dir_entry *); 23void create_prof_cpu_mask(struct proc_dir_entry *);
diff --git a/include/linux/rtc.h b/include/linux/rtc.h
index b89f09357054..09ff4c3e2713 100644
--- a/include/linux/rtc.h
+++ b/include/linux/rtc.h
@@ -208,7 +208,7 @@ int rtc_register(rtc_task_t *task);
208int rtc_unregister(rtc_task_t *task); 208int rtc_unregister(rtc_task_t *task);
209int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg); 209int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg);
210void rtc_get_rtc_time(struct rtc_time *rtc_tm); 210void rtc_get_rtc_time(struct rtc_time *rtc_tm);
211irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 211irqreturn_t rtc_interrupt(int irq, void *dev_id);
212 212
213#endif /* __KERNEL__ */ 213#endif /* __KERNEL__ */
214 214
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 331f4502e92b..6735c1cf334c 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1065,9 +1065,10 @@ static inline int pid_alive(struct task_struct *p)
1065} 1065}
1066 1066
1067/** 1067/**
1068 * is_init - check if a task structure is the first user space 1068 * is_init - check if a task structure is init
1069 * task the kernel created. 1069 * @tsk: Task structure to be checked.
1070 * @p: Task structure to be checked. 1070 *
1071 * Check if a task structure is the first user space task the kernel created.
1071 */ 1072 */
1072static inline int is_init(struct task_struct *tsk) 1073static inline int is_init(struct task_struct *tsk)
1073{ 1074{
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index b661c19f3f72..463ab953b092 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -409,13 +409,12 @@ int uart_resume_port(struct uart_driver *reg, struct uart_port *port);
409 * The following are helper functions for the low level drivers. 409 * The following are helper functions for the low level drivers.
410 */ 410 */
411static inline int 411static inline int
412uart_handle_sysrq_char(struct uart_port *port, unsigned int ch, 412uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
413 struct pt_regs *regs)
414{ 413{
415#ifdef SUPPORT_SYSRQ 414#ifdef SUPPORT_SYSRQ
416 if (port->sysrq) { 415 if (port->sysrq) {
417 if (ch && time_before(jiffies, port->sysrq)) { 416 if (ch && time_before(jiffies, port->sysrq)) {
418 handle_sysrq(ch, regs, port->info->tty); 417 handle_sysrq(ch, port->info->tty);
419 port->sysrq = 0; 418 port->sysrq = 0;
420 return 1; 419 return 1;
421 } 420 }
@@ -425,7 +424,7 @@ uart_handle_sysrq_char(struct uart_port *port, unsigned int ch,
425 return 0; 424 return 0;
426} 425}
427#ifndef SUPPORT_SYSRQ 426#ifndef SUPPORT_SYSRQ
428#define uart_handle_sysrq_char(port,ch,regs) uart_handle_sysrq_char(port, 0, NULL) 427#define uart_handle_sysrq_char(port,ch) uart_handle_sysrq_char(port, 0)
429#endif 428#endif
430 429
431/* 430/*
diff --git a/include/linux/serio.h b/include/linux/serio.h
index c9069310b6ac..3a697cc6ecae 100644
--- a/include/linux/serio.h
+++ b/include/linux/serio.h
@@ -60,8 +60,7 @@ struct serio_driver {
60 unsigned int manual_bind; 60 unsigned int manual_bind;
61 61
62 void (*write_wakeup)(struct serio *); 62 void (*write_wakeup)(struct serio *);
63 irqreturn_t (*interrupt)(struct serio *, unsigned char, 63 irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
64 unsigned int, struct pt_regs *);
65 int (*connect)(struct serio *, struct serio_driver *drv); 64 int (*connect)(struct serio *, struct serio_driver *drv);
66 int (*reconnect)(struct serio *); 65 int (*reconnect)(struct serio *);
67 void (*disconnect)(struct serio *); 66 void (*disconnect)(struct serio *);
@@ -75,7 +74,7 @@ int serio_open(struct serio *serio, struct serio_driver *drv);
75void serio_close(struct serio *serio); 74void serio_close(struct serio *serio);
76void serio_rescan(struct serio *serio); 75void serio_rescan(struct serio *serio);
77void serio_reconnect(struct serio *serio); 76void serio_reconnect(struct serio *serio);
78irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags, struct pt_regs *regs); 77irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags);
79 78
80void __serio_register_port(struct serio *serio, struct module *owner); 79void __serio_register_port(struct serio *serio, struct module *owner);
81static inline void serio_register_port(struct serio *serio) 80static inline void serio_register_port(struct serio *serio)
diff --git a/include/linux/smb_fs.h b/include/linux/smb_fs.h
index 367d6c3e8ed4..13b3af547864 100644
--- a/include/linux/smb_fs.h
+++ b/include/linux/smb_fs.h
@@ -43,17 +43,17 @@ static inline struct smb_inode_info *SMB_I(struct inode *inode)
43 43
44/* macro names are short for word, double-word, long value (?) */ 44/* macro names are short for word, double-word, long value (?) */
45#define WVAL(buf,pos) \ 45#define WVAL(buf,pos) \
46 (le16_to_cpu(get_unaligned((u16 *)((u8 *)(buf) + (pos))))) 46 (le16_to_cpu(get_unaligned((__le16 *)((u8 *)(buf) + (pos)))))
47#define DVAL(buf,pos) \ 47#define DVAL(buf,pos) \
48 (le32_to_cpu(get_unaligned((u32 *)((u8 *)(buf) + (pos))))) 48 (le32_to_cpu(get_unaligned((__le32 *)((u8 *)(buf) + (pos)))))
49#define LVAL(buf,pos) \ 49#define LVAL(buf,pos) \
50 (le64_to_cpu(get_unaligned((u64 *)((u8 *)(buf) + (pos))))) 50 (le64_to_cpu(get_unaligned((__le64 *)((u8 *)(buf) + (pos)))))
51#define WSET(buf,pos,val) \ 51#define WSET(buf,pos,val) \
52 put_unaligned(cpu_to_le16((u16)(val)), (u16 *)((u8 *)(buf) + (pos))) 52 put_unaligned(cpu_to_le16((u16)(val)), (__le16 *)((u8 *)(buf) + (pos)))
53#define DSET(buf,pos,val) \ 53#define DSET(buf,pos,val) \
54 put_unaligned(cpu_to_le32((u32)(val)), (u32 *)((u8 *)(buf) + (pos))) 54 put_unaligned(cpu_to_le32((u32)(val)), (__le32 *)((u8 *)(buf) + (pos)))
55#define LSET(buf,pos,val) \ 55#define LSET(buf,pos,val) \
56 put_unaligned(cpu_to_le64((u64)(val)), (u64 *)((u8 *)(buf) + (pos))) 56 put_unaligned(cpu_to_le64((u64)(val)), (__le64 *)((u8 *)(buf) + (pos)))
57 57
58/* where to find the base of the SMB packet proper */ 58/* where to find the base of the SMB packet proper */
59#define smb_base(buf) ((u8 *)(((u8 *)(buf))+4)) 59#define smb_base(buf) ((u8 *)(((u8 *)(buf))+4))
diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
index d6288e89fd9d..9c9a8ad92477 100644
--- a/include/linux/sunrpc/svc.h
+++ b/include/linux/sunrpc/svc.h
@@ -57,7 +57,8 @@ struct svc_serv {
57 struct svc_stat * sv_stats; /* RPC statistics */ 57 struct svc_stat * sv_stats; /* RPC statistics */
58 spinlock_t sv_lock; 58 spinlock_t sv_lock;
59 unsigned int sv_nrthreads; /* # of server threads */ 59 unsigned int sv_nrthreads; /* # of server threads */
60 unsigned int sv_bufsz; /* datagram buffer size */ 60 unsigned int sv_max_payload; /* datagram payload size */
61 unsigned int sv_max_mesg; /* max_payload + 1 page for overheads */
61 unsigned int sv_xdrsize; /* XDR buffer size */ 62 unsigned int sv_xdrsize; /* XDR buffer size */
62 63
63 struct list_head sv_permsocks; /* all permanent sockets */ 64 struct list_head sv_permsocks; /* all permanent sockets */
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 3efcfc7e9c6c..b0ace3fd7eb9 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -593,7 +593,7 @@ asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags);
593asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, 593asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes,
594 unsigned int flags); 594 unsigned int flags);
595asmlinkage long sys_get_robust_list(int pid, 595asmlinkage long sys_get_robust_list(int pid,
596 struct robust_list_head __user **head_ptr, 596 struct robust_list_head __user * __user *head_ptr,
597 size_t __user *len_ptr); 597 size_t __user *len_ptr);
598asmlinkage long sys_set_robust_list(struct robust_list_head __user *head, 598asmlinkage long sys_set_robust_list(struct robust_list_head __user *head,
599 size_t len); 599 size_t len);
diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
index e657e523b9bf..9df8833670cb 100644
--- a/include/linux/sysrq.h
+++ b/include/linux/sysrq.h
@@ -29,7 +29,7 @@ struct tty_struct;
29#define SYSRQ_ENABLE_RTNICE 0x0100 29#define SYSRQ_ENABLE_RTNICE 0x0100
30 30
31struct sysrq_key_op { 31struct sysrq_key_op {
32 void (*handler)(int, struct pt_regs *, struct tty_struct *); 32 void (*handler)(int, struct tty_struct *);
33 char *help_msg; 33 char *help_msg;
34 char *action_msg; 34 char *action_msg;
35 int enable_mask; 35 int enable_mask;
@@ -42,8 +42,8 @@ struct sysrq_key_op {
42 * are available -- else NULL's). 42 * are available -- else NULL's).
43 */ 43 */
44 44
45void handle_sysrq(int, struct pt_regs *, struct tty_struct *); 45void handle_sysrq(int, struct tty_struct *);
46void __handle_sysrq(int, struct pt_regs *, struct tty_struct *, int check_mask); 46void __handle_sysrq(int, struct tty_struct *, int check_mask);
47int register_sysrq_key(int, struct sysrq_key_op *); 47int register_sysrq_key(int, struct sysrq_key_op *);
48int unregister_sysrq_key(int, struct sysrq_key_op *); 48int unregister_sysrq_key(int, struct sysrq_key_op *);
49struct sysrq_key_op *__sysrq_get_key_op(int key); 49struct sysrq_key_op *__sysrq_get_key_op(int key);
diff --git a/include/linux/tifm.h b/include/linux/tifm.h
index 203dd5e11ecb..dfb8052eee5e 100644
--- a/include/linux/tifm.h
+++ b/include/linux/tifm.h
@@ -17,6 +17,7 @@
17#include <linux/wait.h> 17#include <linux/wait.h>
18#include <linux/delay.h> 18#include <linux/delay.h>
19#include <linux/pci.h> 19#include <linux/pci.h>
20#include <linux/scatterlist.h>
20 21
21/* Host registers (relative to pci base address): */ 22/* Host registers (relative to pci base address): */
22enum { 23enum {
diff --git a/include/linux/timex.h b/include/linux/timex.h
index 049dfe4a11f2..db501dc23c29 100644
--- a/include/linux/timex.h
+++ b/include/linux/timex.h
@@ -293,6 +293,9 @@ extern void second_overflow(void);
293extern void update_ntp_one_tick(void); 293extern void update_ntp_one_tick(void);
294extern int do_adjtimex(struct timex *); 294extern int do_adjtimex(struct timex *);
295 295
296/* Don't use! Compatibility define for existing users. */
297#define tickadj (500/HZ ? : 1)
298
296#endif /* KERNEL */ 299#endif /* KERNEL */
297 300
298#endif /* LINUX_TIMEX_H */ 301#endif /* LINUX_TIMEX_H */
diff --git a/include/linux/ufs_fs.h b/include/linux/ufs_fs.h
index fc62887c5206..61eef508b041 100644
--- a/include/linux/ufs_fs.h
+++ b/include/linux/ufs_fs.h
@@ -351,6 +351,14 @@ struct ufs2_csum_total {
351 __fs64 cs_spare[3]; /* future expansion */ 351 __fs64 cs_spare[3]; /* future expansion */
352}; 352};
353 353
354struct ufs_csum_core {
355 __u64 cs_ndir; /* number of directories */
356 __u64 cs_nbfree; /* number of free blocks */
357 __u64 cs_nifree; /* number of free inodes */
358 __u64 cs_nffree; /* number of free frags */
359 __u64 cs_numclusters; /* number of free clusters */
360};
361
354/* 362/*
355 * File system flags 363 * File system flags
356 */ 364 */
@@ -715,7 +723,7 @@ struct ufs_cg_private_info {
715 723
716struct ufs_sb_private_info { 724struct ufs_sb_private_info {
717 struct ufs_buffer_head s_ubh; /* buffer containing super block */ 725 struct ufs_buffer_head s_ubh; /* buffer containing super block */
718 struct ufs2_csum_total cs_total; 726 struct ufs_csum_core cs_total;
719 __u32 s_sblkno; /* offset of super-blocks in filesys */ 727 __u32 s_sblkno; /* offset of super-blocks in filesys */
720 __u32 s_cblkno; /* offset of cg-block in filesys */ 728 __u32 s_cblkno; /* offset of cg-block in filesys */
721 __u32 s_iblkno; /* offset of inode-blocks in filesys */ 729 __u32 s_iblkno; /* offset of inode-blocks in filesys */
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 190cc1b78fe2..5482bfb3303d 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -764,9 +764,8 @@ struct usb_iso_packet_descriptor {
764}; 764};
765 765
766struct urb; 766struct urb;
767struct pt_regs;
768 767
769typedef void (*usb_complete_t)(struct urb *, struct pt_regs *); 768typedef void (*usb_complete_t)(struct urb *);
770 769
771/** 770/**
772 * struct urb - USB Request Block 771 * struct urb - USB Request Block
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
index 91c983eef899..91b3ea2bbb14 100644
--- a/include/linux/usb/serial.h
+++ b/include/linux/usb/serial.h
@@ -226,10 +226,10 @@ struct usb_serial_driver {
226 int (*tiocmget) (struct usb_serial_port *port, struct file *file); 226 int (*tiocmget) (struct usb_serial_port *port, struct file *file);
227 int (*tiocmset) (struct usb_serial_port *port, struct file *file, unsigned int set, unsigned int clear); 227 int (*tiocmset) (struct usb_serial_port *port, struct file *file, unsigned int set, unsigned int clear);
228 228
229 void (*read_int_callback)(struct urb *urb, struct pt_regs *regs); 229 void (*read_int_callback)(struct urb *urb);
230 void (*write_int_callback)(struct urb *urb, struct pt_regs *regs); 230 void (*write_int_callback)(struct urb *urb);
231 void (*read_bulk_callback)(struct urb *urb, struct pt_regs *regs); 231 void (*read_bulk_callback)(struct urb *urb);
232 void (*write_bulk_callback)(struct urb *urb, struct pt_regs *regs); 232 void (*write_bulk_callback)(struct urb *urb);
233}; 233};
234#define to_usb_serial_driver(d) container_of(d, struct usb_serial_driver, driver) 234#define to_usb_serial_driver(d) container_of(d, struct usb_serial_driver, driver)
235 235
@@ -262,8 +262,8 @@ extern int usb_serial_generic_write (struct usb_serial_port *port, const unsigne
262extern void usb_serial_generic_close (struct usb_serial_port *port, struct file *filp); 262extern void usb_serial_generic_close (struct usb_serial_port *port, struct file *filp);
263extern int usb_serial_generic_write_room (struct usb_serial_port *port); 263extern int usb_serial_generic_write_room (struct usb_serial_port *port);
264extern int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port); 264extern int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port);
265extern void usb_serial_generic_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 265extern void usb_serial_generic_read_bulk_callback (struct urb *urb);
266extern void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 266extern void usb_serial_generic_write_bulk_callback (struct urb *urb);
267extern void usb_serial_generic_shutdown (struct usb_serial *serial); 267extern void usb_serial_generic_shutdown (struct usb_serial *serial);
268extern int usb_serial_generic_register (int debug); 268extern int usb_serial_generic_register (int debug);
269extern void usb_serial_generic_deregister (void); 269extern void usb_serial_generic_deregister (void);
diff --git a/include/linux/xattr.h b/include/linux/xattr.h
index cda8a96e2fa0..0e7f1e20ea45 100644
--- a/include/linux/xattr.h
+++ b/include/linux/xattr.h
@@ -41,6 +41,7 @@ struct xattr_handler {
41}; 41};
42 42
43ssize_t vfs_getxattr(struct dentry *, char *, void *, size_t); 43ssize_t vfs_getxattr(struct dentry *, char *, void *, size_t);
44ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
44int vfs_setxattr(struct dentry *, char *, void *, size_t, int); 45int vfs_setxattr(struct dentry *, char *, void *, size_t, int);
45int vfs_removexattr(struct dentry *, char *); 46int vfs_removexattr(struct dentry *, char *);
46 47
diff --git a/include/sound/core.h b/include/sound/core.h
index b056ea925ecf..fa1ca0127bab 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -89,10 +89,10 @@ struct snd_device {
89struct snd_monitor_file { 89struct snd_monitor_file {
90 struct file *file; 90 struct file *file;
91 struct snd_monitor_file *next; 91 struct snd_monitor_file *next;
92 const struct file_operations *disconnected_f_op;
93 struct list_head shutdown_list;
92}; 94};
93 95
94struct snd_shutdown_f_ops; /* define it later in init.c */
95
96/* main structure for soundcard */ 96/* main structure for soundcard */
97 97
98struct snd_card { 98struct snd_card {
diff --git a/include/sound/cs4231.h b/include/sound/cs4231.h
index 60b5b92a1319..ab51ce1ba9a5 100644
--- a/include/sound/cs4231.h
+++ b/include/sound/cs4231.h
@@ -273,7 +273,7 @@ unsigned char snd_cs4236_ext_in(struct snd_cs4231 *chip, unsigned char reg);
273void snd_cs4231_mce_up(struct snd_cs4231 *chip); 273void snd_cs4231_mce_up(struct snd_cs4231 *chip);
274void snd_cs4231_mce_down(struct snd_cs4231 *chip); 274void snd_cs4231_mce_down(struct snd_cs4231 *chip);
275 275
276irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id, struct pt_regs *regs); 276irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id);
277 277
278const char *snd_cs4231_chip_id(struct snd_cs4231 *chip); 278const char *snd_cs4231_chip_id(struct snd_cs4231 *chip);
279 279
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index 892e310c504d..3d3c1514cf71 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -1194,7 +1194,7 @@ int snd_emu10k1_mixer(struct snd_emu10k1 * emu, int pcm_device, int multi_device
1194int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device); 1194int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device);
1195int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep); 1195int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep);
1196 1196
1197irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs); 1197irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id);
1198 1198
1199void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice); 1199void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice);
1200int snd_emu10k1_init_efx(struct snd_emu10k1 *emu); 1200int snd_emu10k1_init_efx(struct snd_emu10k1 *emu);
diff --git a/include/sound/gus.h b/include/sound/gus.h
index 68a664ab97f3..c49ea57db8cc 100644
--- a/include/sound/gus.h
+++ b/include/sound/gus.h
@@ -638,7 +638,7 @@ int snd_gus_initialize(struct snd_gus_card * gus);
638 638
639/* gus_irq.c */ 639/* gus_irq.c */
640 640
641irqreturn_t snd_gus_interrupt(int irq, void *dev_id, struct pt_regs *regs); 641irqreturn_t snd_gus_interrupt(int irq, void *dev_id);
642#ifdef CONFIG_SND_DEBUG 642#ifdef CONFIG_SND_DEBUG
643void snd_gus_irq_profile_init(struct snd_gus_card *gus); 643void snd_gus_irq_profile_init(struct snd_gus_card *gus);
644#endif 644#endif
diff --git a/include/sound/initval.h b/include/sound/initval.h
index 2ae76efc696f..e85b90750a59 100644
--- a/include/sound/initval.h
+++ b/include/sound/initval.h
@@ -53,7 +53,7 @@
53#ifdef SNDRV_LEGACY_FIND_FREE_IRQ 53#ifdef SNDRV_LEGACY_FIND_FREE_IRQ
54#include <linux/interrupt.h> 54#include <linux/interrupt.h>
55 55
56static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id, struct pt_regs *regs) 56static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id)
57{ 57{
58 return IRQ_HANDLED; 58 return IRQ_HANDLED;
59} 59}
diff --git a/include/sound/mpu401.h b/include/sound/mpu401.h
index ac504321ea56..8c88267e9bea 100644
--- a/include/sound/mpu401.h
+++ b/include/sound/mpu401.h
@@ -106,10 +106,8 @@ struct snd_mpu401 {
106 106
107 */ 107 */
108 108
109irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id, 109irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id);
110 struct pt_regs *regs); 110irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id);
111irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id,
112 struct pt_regs *regs);
113 111
114int snd_mpu401_uart_new(struct snd_card *card, 112int snd_mpu401_uart_new(struct snd_card *card,
115 int device, 113 int device,
diff --git a/include/sound/sb.h b/include/sound/sb.h
index 431d06675e36..2dd5c8e5b4fe 100644
--- a/include/sound/sb.h
+++ b/include/sound/sb.h
@@ -100,7 +100,7 @@ struct snd_sb {
100 struct snd_rawmidi *rmidi; 100 struct snd_rawmidi *rmidi;
101 struct snd_rawmidi_substream *midi_substream_input; 101 struct snd_rawmidi_substream *midi_substream_input;
102 struct snd_rawmidi_substream *midi_substream_output; 102 struct snd_rawmidi_substream *midi_substream_output;
103 irqreturn_t (*rmidi_callback)(int irq, void *dev_id, struct pt_regs *regs); 103 irq_handler_t rmidi_callback;
104 104
105 spinlock_t reg_lock; 105 spinlock_t reg_lock;
106 spinlock_t open_lock; 106 spinlock_t open_lock;
@@ -286,7 +286,7 @@ int snd_sbdsp_reset(struct snd_sb *chip);
286int snd_sbdsp_create(struct snd_card *card, 286int snd_sbdsp_create(struct snd_card *card,
287 unsigned long port, 287 unsigned long port,
288 int irq, 288 int irq,
289 irqreturn_t (*irq_handler)(int, void *, struct pt_regs *), 289 irq_handler_t irq_handler,
290 int dma8, int dma16, 290 int dma8, int dma16,
291 unsigned short hardware, 291 unsigned short hardware,
292 struct snd_sb **r_chip); 292 struct snd_sb **r_chip);
@@ -316,7 +316,7 @@ int snd_sb16dsp_pcm(struct snd_sb *chip, int device, struct snd_pcm ** rpcm);
316const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction); 316const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction);
317int snd_sb16dsp_configure(struct snd_sb *chip); 317int snd_sb16dsp_configure(struct snd_sb *chip);
318/* sb16.c */ 318/* sb16.c */
319irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs); 319irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id);
320 320
321/* exported mixer stuffs */ 321/* exported mixer stuffs */
322enum { 322enum {
diff --git a/include/sound/version.h b/include/sound/version.h
index 2ee849d0e198..4ad86eb6440b 100644
--- a/include/sound/version.h
+++ b/include/sound/version.h
@@ -1,3 +1,3 @@
1/* include/version.h. Generated by configure. */ 1/* include/version.h. Generated by alsa/ksync script. */
2#define CONFIG_SND_VERSION "1.0.12rc1" 2#define CONFIG_SND_VERSION "1.0.13"
3#define CONFIG_SND_DATE " (Thu Jun 22 13:55:50 2006 UTC)" 3#define CONFIG_SND_DATE " (Fri Oct 06 18:28:19 2006 UTC)"
diff --git a/include/sound/vx_core.h b/include/sound/vx_core.h
index dbca14170615..217394652090 100644
--- a/include/sound/vx_core.h
+++ b/include/sound/vx_core.h
@@ -228,7 +228,7 @@ void snd_vx_free_firmware(struct vx_core *chip);
228/* 228/*
229 * interrupt handler; exported for pcmcia 229 * interrupt handler; exported for pcmcia
230 */ 230 */
231irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs); 231irqreturn_t snd_vx_irq_handler(int irq, void *dev);
232 232
233/* 233/*
234 * lowlevel functions 234 * lowlevel functions