diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-17 14:31:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-17 14:31:57 -0400 |
commit | 492559af235eb56884d62553f191c0b5c4def990 (patch) | |
tree | a5dfa19243b3b8b976e9f5b9c788cafcd3ad80c7 | |
parent | d3676756968eef4a31da11be5addc4eec1b6db2c (diff) | |
parent | 4f8de2745629330d78776282ea490fece22ee5e4 (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
[IA64] Clean away some code inside some non-existent CONFIG ifdefs
[IA64] ar.itc access must really be after xtime_lock.sequence has been read
[IA64] correctly count CPU objects in the ia64/sn hwperf interface
[IA64] arbitary speed tty ioctl support
[IA64] use machvec=dig on hpzx1 platforms
-rw-r--r-- | arch/ia64/hp/common/sba_iommu.c | 20 | ||||
-rw-r--r-- | arch/ia64/hp/sim/boot/fw-emu.c | 5 | ||||
-rw-r--r-- | arch/ia64/hp/sim/simserial.c | 4 | ||||
-rw-r--r-- | arch/ia64/kernel/fsys.S | 4 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/sn2/sn_hwperf.c | 3 | ||||
-rw-r--r-- | include/asm-ia64/ioctls.h | 4 | ||||
-rw-r--r-- | include/asm-ia64/termbits.h | 5 | ||||
-rw-r--r-- | include/asm-ia64/termios.h | 6 |
8 files changed, 35 insertions, 16 deletions
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c index c1dca226b479..cd4adf52f174 100644 --- a/arch/ia64/hp/common/sba_iommu.c +++ b/arch/ia64/hp/common/sba_iommu.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <linux/efi.h> | 34 | #include <linux/efi.h> |
35 | #include <linux/nodemask.h> | 35 | #include <linux/nodemask.h> |
36 | #include <linux/bitops.h> /* hweight64() */ | 36 | #include <linux/bitops.h> /* hweight64() */ |
37 | #include <linux/crash_dump.h> | ||
37 | 38 | ||
38 | #include <asm/delay.h> /* ia64_get_itc() */ | 39 | #include <asm/delay.h> /* ia64_get_itc() */ |
39 | #include <asm/io.h> | 40 | #include <asm/io.h> |
@@ -43,6 +44,8 @@ | |||
43 | 44 | ||
44 | #include <asm/acpi-ext.h> | 45 | #include <asm/acpi-ext.h> |
45 | 46 | ||
47 | extern int swiotlb_late_init_with_default_size (size_t size); | ||
48 | |||
46 | #define PFX "IOC: " | 49 | #define PFX "IOC: " |
47 | 50 | ||
48 | /* | 51 | /* |
@@ -2026,11 +2029,24 @@ sba_init(void) | |||
2026 | if (!ia64_platform_is("hpzx1") && !ia64_platform_is("hpzx1_swiotlb")) | 2029 | if (!ia64_platform_is("hpzx1") && !ia64_platform_is("hpzx1_swiotlb")) |
2027 | return 0; | 2030 | return 0; |
2028 | 2031 | ||
2032 | #if defined(CONFIG_IA64_GENERIC) && defined(CONFIG_CRASH_DUMP) | ||
2033 | /* If we are booting a kdump kernel, the sba_iommu will | ||
2034 | * cause devices that were not shutdown properly to MCA | ||
2035 | * as soon as they are turned back on. Our only option for | ||
2036 | * a successful kdump kernel boot is to use the swiotlb. | ||
2037 | */ | ||
2038 | if (elfcorehdr_addr < ELFCORE_ADDR_MAX) { | ||
2039 | if (swiotlb_late_init_with_default_size(64 * (1<<20)) != 0) | ||
2040 | panic("Unable to initialize software I/O TLB:" | ||
2041 | " Try machvec=dig boot option"); | ||
2042 | machvec_init("dig"); | ||
2043 | return 0; | ||
2044 | } | ||
2045 | #endif | ||
2046 | |||
2029 | acpi_bus_register_driver(&acpi_sba_ioc_driver); | 2047 | acpi_bus_register_driver(&acpi_sba_ioc_driver); |
2030 | if (!ioc_list) { | 2048 | if (!ioc_list) { |
2031 | #ifdef CONFIG_IA64_GENERIC | 2049 | #ifdef CONFIG_IA64_GENERIC |
2032 | extern int swiotlb_late_init_with_default_size (size_t size); | ||
2033 | |||
2034 | /* | 2050 | /* |
2035 | * If we didn't find something sba_iommu can claim, we | 2051 | * If we didn't find something sba_iommu can claim, we |
2036 | * need to setup the swiotlb and switch to the dig machvec. | 2052 | * need to setup the swiotlb and switch to the dig machvec. |
diff --git a/arch/ia64/hp/sim/boot/fw-emu.c b/arch/ia64/hp/sim/boot/fw-emu.c index 300acd913d9c..1189d035d316 100644 --- a/arch/ia64/hp/sim/boot/fw-emu.c +++ b/arch/ia64/hp/sim/boot/fw-emu.c | |||
@@ -329,11 +329,6 @@ sys_fw_init (const char *args, int arglen) | |||
329 | strcpy(sal_systab->product_id, "HP-simulator"); | 329 | strcpy(sal_systab->product_id, "HP-simulator"); |
330 | #endif | 330 | #endif |
331 | 331 | ||
332 | #ifdef CONFIG_IA64_SDV | ||
333 | strcpy(sal_systab->oem_id, "Intel"); | ||
334 | strcpy(sal_systab->product_id, "SDV"); | ||
335 | #endif | ||
336 | |||
337 | /* fill in an entry point: */ | 332 | /* fill in an entry point: */ |
338 | sal_ed->type = SAL_DESC_ENTRY_POINT; | 333 | sal_ed->type = SAL_DESC_ENTRY_POINT; |
339 | sal_ed->pal_proc = __pa(pal_desc[0]); | 334 | sal_ed->pal_proc = __pa(pal_desc[0]); |
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index 324ea7565e2c..ef252df50e1e 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
@@ -36,10 +36,6 @@ | |||
36 | #include <asm/hw_irq.h> | 36 | #include <asm/hw_irq.h> |
37 | #include <asm/uaccess.h> | 37 | #include <asm/uaccess.h> |
38 | 38 | ||
39 | #ifdef CONFIG_KDB | ||
40 | # include <linux/kdb.h> | ||
41 | #endif | ||
42 | |||
43 | #undef SIMSERIAL_DEBUG /* define this to get some debug information */ | 39 | #undef SIMSERIAL_DEBUG /* define this to get some debug information */ |
44 | 40 | ||
45 | #define KEYBOARD_INTR 3 /* must match with simulator! */ | 41 | #define KEYBOARD_INTR 3 /* must match with simulator! */ |
diff --git a/arch/ia64/kernel/fsys.S b/arch/ia64/kernel/fsys.S index 8589e84a27c6..3f926c2dc708 100644 --- a/arch/ia64/kernel/fsys.S +++ b/arch/ia64/kernel/fsys.S | |||
@@ -247,6 +247,9 @@ ENTRY(fsys_gettimeofday) | |||
247 | .time_redo: | 247 | .time_redo: |
248 | .pred.rel.mutex p8,p9,p10 | 248 | .pred.rel.mutex p8,p9,p10 |
249 | ld4.acq r28 = [r29] // xtime_lock.sequence. Must come first for locking purposes | 249 | ld4.acq r28 = [r29] // xtime_lock.sequence. Must come first for locking purposes |
250 | ;; | ||
251 | and r28 = ~1,r28 // Make sequence even to force retry if odd | ||
252 | ;; | ||
250 | (p8) mov r2 = ar.itc // CPU_TIMER. 36 clocks latency!!! | 253 | (p8) mov r2 = ar.itc // CPU_TIMER. 36 clocks latency!!! |
251 | add r22 = IA64_TIME_INTERPOLATOR_LAST_COUNTER_OFFSET,r20 | 254 | add r22 = IA64_TIME_INTERPOLATOR_LAST_COUNTER_OFFSET,r20 |
252 | (p9) ld8 r2 = [r30] // readq(ti->address). Could also have latency issues.. | 255 | (p9) ld8 r2 = [r30] // readq(ti->address). Could also have latency issues.. |
@@ -284,7 +287,6 @@ EX(.fail_efault, probe.w.fault r31, 3) // This takes 5 cycles and we have spare | |||
284 | (p15) ld8 r17 = [r19],-IA64_TIMESPEC_TV_NSEC_OFFSET | 287 | (p15) ld8 r17 = [r19],-IA64_TIMESPEC_TV_NSEC_OFFSET |
285 | (p7) cmp.ne p7,p0 = r25,r3 // if cmpxchg not successful redo | 288 | (p7) cmp.ne p7,p0 = r25,r3 // if cmpxchg not successful redo |
286 | // simulate tbit.nz.or p7,p0 = r28,0 | 289 | // simulate tbit.nz.or p7,p0 = r28,0 |
287 | and r28 = ~1,r28 // Make sequence even to force retry if odd | ||
288 | getf.sig r2 = f8 | 290 | getf.sig r2 = f8 |
289 | mf | 291 | mf |
290 | add r8 = r8,r18 // Add time interpolator offset | 292 | add r8 = r8,r18 // Add time interpolator offset |
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index 6da9854751cd..df8d5bed6119 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c | |||
@@ -750,9 +750,10 @@ sn_hwperf_ioctl(struct inode *in, struct file *fp, u32 op, u64 arg) | |||
750 | goto error; | 750 | goto error; |
751 | } else | 751 | } else |
752 | if ((r = sn_hwperf_enum_objects(&nobj, &objs)) == 0) { | 752 | if ((r = sn_hwperf_enum_objects(&nobj, &objs)) == 0) { |
753 | int cpuobj_index = 0; | ||
754 | |||
753 | memset(p, 0, a.sz); | 755 | memset(p, 0, a.sz); |
754 | for (i = 0; i < nobj; i++) { | 756 | for (i = 0; i < nobj; i++) { |
755 | int cpuobj_index = 0; | ||
756 | if (!SN_HWPERF_IS_NODE(objs + i)) | 757 | if (!SN_HWPERF_IS_NODE(objs + i)) |
757 | continue; | 758 | continue; |
758 | node = sn_hwperf_obj_to_cnode(objs + i); | 759 | node = sn_hwperf_obj_to_cnode(objs + i); |
diff --git a/include/asm-ia64/ioctls.h b/include/asm-ia64/ioctls.h index 31ee521aeb7a..f41b636a0bf6 100644 --- a/include/asm-ia64/ioctls.h +++ b/include/asm-ia64/ioctls.h | |||
@@ -53,6 +53,10 @@ | |||
53 | #define TIOCSBRK 0x5427 /* BSD compatibility */ | 53 | #define TIOCSBRK 0x5427 /* BSD compatibility */ |
54 | #define TIOCCBRK 0x5428 /* BSD compatibility */ | 54 | #define TIOCCBRK 0x5428 /* BSD compatibility */ |
55 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ | 55 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ |
56 | #define TCGETS2 _IOR('T',0x2A, struct termios2) | ||
57 | #define TCSETS2 _IOW('T',0x2B, struct termios2) | ||
58 | #define TCSETSW2 _IOW('T',0x2C, struct termios2) | ||
59 | #define TCSETSF2 _IOW('T',0x2D, struct termios2) | ||
56 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ | 60 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ |
57 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ | 61 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ |
58 | 62 | ||
diff --git a/include/asm-ia64/termbits.h b/include/asm-ia64/termbits.h index 7fae3109ef47..9f162e0089ad 100644 --- a/include/asm-ia64/termbits.h +++ b/include/asm-ia64/termbits.h | |||
@@ -149,6 +149,7 @@ struct ktermios { | |||
149 | #define HUPCL 0002000 | 149 | #define HUPCL 0002000 |
150 | #define CLOCAL 0004000 | 150 | #define CLOCAL 0004000 |
151 | #define CBAUDEX 0010000 | 151 | #define CBAUDEX 0010000 |
152 | #define BOTHER 0010000 | ||
152 | #define B57600 0010001 | 153 | #define B57600 0010001 |
153 | #define B115200 0010002 | 154 | #define B115200 0010002 |
154 | #define B230400 0010003 | 155 | #define B230400 0010003 |
@@ -164,10 +165,12 @@ struct ktermios { | |||
164 | #define B3000000 0010015 | 165 | #define B3000000 0010015 |
165 | #define B3500000 0010016 | 166 | #define B3500000 0010016 |
166 | #define B4000000 0010017 | 167 | #define B4000000 0010017 |
167 | #define CIBAUD 002003600000 /* input baud rate (not used) */ | 168 | #define CIBAUD 002003600000 /* input baud rate */ |
168 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ | 169 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ |
169 | #define CRTSCTS 020000000000 /* flow control */ | 170 | #define CRTSCTS 020000000000 /* flow control */ |
170 | 171 | ||
172 | #define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */ | ||
173 | |||
171 | /* c_lflag bits */ | 174 | /* c_lflag bits */ |
172 | #define ISIG 0000001 | 175 | #define ISIG 0000001 |
173 | #define ICANON 0000002 | 176 | #define ICANON 0000002 |
diff --git a/include/asm-ia64/termios.h b/include/asm-ia64/termios.h index 08750c2d3607..689d218c0c28 100644 --- a/include/asm-ia64/termios.h +++ b/include/asm-ia64/termios.h | |||
@@ -87,8 +87,10 @@ struct termio { | |||
87 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ | 87 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ |
88 | }) | 88 | }) |
89 | 89 | ||
90 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios)) | 90 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2)) |
91 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios)) | 91 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2)) |
92 | #define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) | ||
93 | #define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) | ||
92 | 94 | ||
93 | # endif /* __KERNEL__ */ | 95 | # endif /* __KERNEL__ */ |
94 | 96 | ||