aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-09-11 08:52:22 +0000
committerEric Andersen <andersen@codepoet.org>2003-09-11 08:52:22 +0000
commit81155f8fa8d96c24b5aeda54c0c0997cab1f3019 (patch)
treeca80163a4c15505b0e677c123e9b15a9ccef6d0a
parent2fdba24620314729941bb30e6dd987dd1a1f1709 (diff)
downloadbusybox-w32-81155f8fa8d96c24b5aeda54c0c0997cab1f3019.tar.gz
busybox-w32-81155f8fa8d96c24b5aeda54c0c0997cab1f3019.tar.bz2
busybox-w32-81155f8fa8d96c24b5aeda54c0c0997cab1f3019.zip
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.
-rw-r--r--init/init.c33
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 */
69 69
70/* From <linux/serial.h> */ 70/* From <linux/serial.h> */
71struct serial_struct { 71struct serial_struct {
72 int type; 72 int type;
73 int line; 73 int line;
74 int port; 74 unsigned int port;
75 int irq; 75 int irq;
76 int flags; 76 int flags;
77 int xmit_fifo_size; 77 int xmit_fifo_size;
78 int custom_divisor; 78 int custom_divisor;
79 int baud_base; 79 int baud_base;
80 unsigned short close_delay; 80 unsigned short close_delay;
81 char reserved_char[2]; 81 char io_type;
82 int hub6; 82 char reserved_char[1];
83 unsigned short closing_wait; /* time to wait before closing */ 83 int hub6;
84 unsigned short closing_wait2; /* no longer used... */ 84 unsigned short closing_wait; /* time to wait before closing */
85 int reserved[4]; 85 unsigned short closing_wait2; /* no longer used... */
86 unsigned char *iomem_base;
87 unsigned short iomem_reg_shift;
88 unsigned int port_high;
89 unsigned long iomap_base; /* cookie passed into ioremap */
90 int reserved[1];
86}; 91};
87 92
88 93