diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-09-11 12:52:22 +0400 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-09-11 12:52:22 +0400 |
commit | 81155f8fa8d96c24b5aeda54c0c0997cab1f3019 (patch) | |
tree | ca80163a4c15505b0e677c123e9b15a9ccef6d0a /init/init.c | |
parent | 2fdba24620314729941bb30e6dd987dd1a1f1709 (diff) |
Update definition of struct serial_struct, per linux-2.6.0-test5,
to avoid stack corruption problems on some 64bit architectures
when sizeof(void*) != sizeof(int). Thanks to Atsushi Nemoto
for finding this problem.
Diffstat (limited to 'init/init.c')
-rw-r--r-- | init/init.c | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/init/init.c b/init/init.c index 26bbc3428..8da358cb5 100644 --- a/init/init.c +++ b/init/init.c @@ -69,20 +69,25 @@ static const int VT_GETSTATE = 0x5603; /* get global vt state info */ /* From <linux/serial.h> */ struct serial_struct { - int type; - int line; - int port; - int irq; - int flags; - int xmit_fifo_size; - int custom_divisor; - int baud_base; - unsigned short close_delay; - char reserved_char[2]; - int hub6; - unsigned short closing_wait; /* time to wait before closing */ - unsigned short closing_wait2; /* no longer used... */ - int reserved[4]; + int type; + int line; + unsigned int port; + int irq; + int flags; + int xmit_fifo_size; + int custom_divisor; + int baud_base; + unsigned short close_delay; + char io_type; + char reserved_char[1]; + int hub6; + unsigned short closing_wait; /* time to wait before closing */ + unsigned short closing_wait2; /* no longer used... */ + unsigned char *iomem_base; + unsigned short iomem_reg_shift; + unsigned int port_high; + unsigned long iomap_base; /* cookie passed into ioremap */ + int reserved[1]; }; |