diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 20:20:15 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 20:20:15 -0800 |
| commit | 5bf3be033f504f5fd79690fbb13d720407314e40 (patch) | |
| tree | 96b4fdb8c54f2477829c648e6078a0e54f5e7a6e /include | |
| parent | 98b8803038fa999212c37952adad1e04144f0ab7 (diff) | |
v2.4.10.1 -> v2.4.10.2
- me/Al Viro: fix bdget() oops with block device modules that don't
clean up after they exit
- Alan Cox: continued merging (drivers, license tags)
- David Miller: sparc update, network fixes
- Christoph Hellwig: work around broken drivers that add a gendisk more
than once
- Jakub Jelinek: handle more ELF loading special cases
- Trond Myklebust: NFS client and lockd reclaimer cleanups/fixes
- Greg KH: USB updates
- Mikael Pettersson: sparate out local APIC / IO-APIC config options
Diffstat (limited to 'include')
30 files changed, 186 insertions, 153 deletions
diff --git a/include/asm-i386/highmem.h b/include/asm-i386/highmem.h index 49c848738f87..42f32426eac5 100644 --- a/include/asm-i386/highmem.h +++ b/include/asm-i386/highmem.h @@ -26,8 +26,11 @@ #include <asm/kmap_types.h> #include <asm/pgtable.h> -/* undef for production */ +#ifdef CONFIG_DEBUG_HIGHMEM #define HIGHMEM_DEBUG 1 +#else +#define HIGHMEM_DEBUG 0 +#endif /* declarations for highmem.c */ extern unsigned long highstart_pfn, highend_pfn; diff --git a/include/asm-i386/io_apic.h b/include/asm-i386/io_apic.h index 69f1eb9a9b96..b132819e0871 100644 --- a/include/asm-i386/io_apic.h +++ b/include/asm-i386/io_apic.h @@ -28,7 +28,8 @@ struct IO_APIC_reg_00 { struct IO_APIC_reg_01 { __u32 version : 8, - __reserved_2 : 8, + __reserved_2 : 7, + PRQ : 1, entries : 8, __reserved_1 : 8; } __attribute__ ((packed)); diff --git a/include/asm-ia64/module.h b/include/asm-ia64/module.h index 10c1e866db25..52f500a875a8 100644 --- a/include/asm-ia64/module.h +++ b/include/asm-ia64/module.h @@ -14,7 +14,13 @@ #define module_map(x) vmalloc(x) #define module_unmap(x) ia64_module_unmap(x) #define module_arch_init(x) ia64_module_init(x) -#define arch_init_modules(x) do { } while (0) +#define arch_init_modules(x) { static struct archdata archdata; \ + register char *kernel_gp asm ("gp");\ + archdata.gp = kernel_gp; \ + kernel_module.archdata_start = (const char *) &archdata; \ + kernel_module.archdata_end = (const char *) (&archdata + 1); \ + } + /* * This must match in size and layout the data created by diff --git a/include/asm-sparc/uaccess.h b/include/asm-sparc/uaccess.h index 1587f92f968a..96cdb786590f 100644 --- a/include/asm-sparc/uaccess.h +++ b/include/asm-sparc/uaccess.h @@ -1,4 +1,4 @@ -/* $Id: uaccess.h,v 1.22 2000/08/29 07:01:58 davem Exp $ +/* $Id: uaccess.h,v 1.23 2001/09/24 03:51:39 davem Exp $ * uaccess.h: User space memore access functions. * * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) @@ -116,6 +116,7 @@ switch (size) { \ case 1: __put_user_asm(x,b,addr,__pu_ret); break; \ case 2: __put_user_asm(x,h,addr,__pu_ret); break; \ case 4: __put_user_asm(x,,addr,__pu_ret); break; \ +case 8: __put_user_asm(x,d,addr,__pu_ret); break; \ default: __pu_ret = __put_user_bad(); break; \ } } else { __pu_ret = -EFAULT; } __pu_ret; }) @@ -126,6 +127,7 @@ switch (size) { \ case 1: __put_user_asm_ret(x,b,addr,retval,__foo); break; \ case 2: __put_user_asm_ret(x,h,addr,retval,__foo); break; \ case 4: __put_user_asm_ret(x,,addr,retval,__foo); break; \ +case 8: __put_user_asm_ret(x,d,addr,retval,__foo); break; \ default: if (__put_user_bad()) return retval; break; \ } } else return retval; }) @@ -135,6 +137,7 @@ switch (size) { \ case 1: __put_user_asm(x,b,addr,__pu_ret); break; \ case 2: __put_user_asm(x,h,addr,__pu_ret); break; \ case 4: __put_user_asm(x,,addr,__pu_ret); break; \ +case 8: __put_user_asm(x,d,addr,__pu_ret); break; \ default: __pu_ret = __put_user_bad(); break; \ } __pu_ret; }) @@ -144,6 +147,7 @@ switch (size) { \ case 1: __put_user_asm_ret(x,b,addr,retval,__foo); break; \ case 2: __put_user_asm_ret(x,h,addr,retval,__foo); break; \ case 4: __put_user_asm_ret(x,,addr,retval,__foo); break; \ +case 8: __put_user_asm_ret(x,d,addr,retval,__foo); break; \ default: if (__put_user_bad()) return retval; break; \ } }) @@ -202,6 +206,7 @@ switch (size) { \ case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break; \ case 2: __get_user_asm(__gu_val,uh,addr,__gu_ret); break; \ case 4: __get_user_asm(__gu_val,,addr,__gu_ret); break; \ +case 8: __get_user_asm(__gu_val,d,addr,__gu_ret); break; \ default: __gu_val = 0; __gu_ret = __get_user_bad(); break; \ } } else { __gu_val = 0; __gu_ret = -EFAULT; } x = (type) __gu_val; __gu_ret; }) @@ -212,6 +217,7 @@ switch (size) { \ case 1: __get_user_asm_ret(__gu_val,ub,addr,retval); break; \ case 2: __get_user_asm_ret(__gu_val,uh,addr,retval); break; \ case 4: __get_user_asm_ret(__gu_val,,addr,retval); break; \ +case 8: __get_user_asm_ret(__gu_val,d,addr,retval); break; \ default: if (__get_user_bad()) return retval; \ } x = (type) __gu_val; } else return retval; }) @@ -222,6 +228,7 @@ switch (size) { \ case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break; \ case 2: __get_user_asm(__gu_val,uh,addr,__gu_ret); break; \ case 4: __get_user_asm(__gu_val,,addr,__gu_ret); break; \ +case 8: __get_user_asm(__gu_val,d,addr,__gu_ret); break; \ default: __gu_val = 0; __gu_ret = __get_user_bad(); break; \ } x = (type) __gu_val; __gu_ret; }) @@ -231,6 +238,7 @@ switch (size) { \ case 1: __get_user_asm_ret(__gu_val,ub,addr,retval); break; \ case 2: __get_user_asm_ret(__gu_val,uh,addr,retval); break; \ case 4: __get_user_asm_ret(__gu_val,,addr,retval); break; \ +case 8: __get_user_asm_ret(__gu_val,d,addr,retval); break; \ default: if (__get_user_bad()) return retval; \ } x = (type) __gu_val; }) diff --git a/include/asm-sparc64/ide.h b/include/asm-sparc64/ide.h index 4f621f2cb463..cddeb3274448 100644 --- a/include/asm-sparc64/ide.h +++ b/include/asm-sparc64/ide.h @@ -1,4 +1,4 @@ -/* $Id: ide.h,v 1.19 2000/05/27 00:49:37 davem Exp $ +/* $Id: ide.h,v 1.21 2001/09/25 20:21:48 kanoj Exp $ * ide.h: Ultra/PCI specific IDE glue. * * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) @@ -14,6 +14,8 @@ #include <asm/pgalloc.h> #include <asm/io.h> #include <asm/hdreg.h> +#include <asm/page.h> +#include <asm/spitfire.h> #undef MAX_HWIFS #define MAX_HWIFS 2 @@ -151,7 +153,9 @@ static __inline__ void ide_insw(unsigned long port, void *dst, unsigned long count) { +#if (L1DCACHE_SIZE > PAGE_SIZE) /* is there D$ aliasing problem */ unsigned long end = (unsigned long)dst + (count << 1); +#endif u16 *ps = dst; u32 *pi; @@ -172,7 +176,9 @@ static __inline__ void ide_insw(unsigned long port, if(count) *ps++ = inw_be(port); +#if (L1DCACHE_SIZE > PAGE_SIZE) /* is there D$ aliasing problem */ __flush_dcache_range((unsigned long)dst, end); +#endif } static __inline__ void outw_be(unsigned short w, unsigned long addr) @@ -186,7 +192,9 @@ static __inline__ void ide_outsw(unsigned long port, const void *src, unsigned long count) { +#if (L1DCACHE_SIZE > PAGE_SIZE) /* is there D$ aliasing problem */ unsigned long end = (unsigned long)src + (count << 1); +#endif const u16 *ps = src; const u32 *pi; @@ -207,7 +215,9 @@ static __inline__ void ide_outsw(unsigned long port, if(count) outw_be(*ps, port); +#if (L1DCACHE_SIZE > PAGE_SIZE) /* is there D$ aliasing problem */ __flush_dcache_range((unsigned long)src, end); +#endif } #define T_CHAR (0x0000) /* char: don't touch */ diff --git a/include/asm-sparc64/pgalloc.h b/include/asm-sparc64/pgalloc.h index fa0dfb673c09..feba6c1a05d4 100644 --- a/include/asm-sparc64/pgalloc.h +++ b/include/asm-sparc64/pgalloc.h @@ -1,4 +1,4 @@ -/* $Id: pgalloc.h,v 1.21 2001/08/22 22:16:56 kanoj Exp $ */ +/* $Id: pgalloc.h,v 1.23 2001/09/25 20:21:48 kanoj Exp $ */ #ifndef _SPARC64_PGALLOC_H #define _SPARC64_PGALLOC_H @@ -7,6 +7,8 @@ #include <linux/sched.h> #include <asm/page.h> +#include <asm/spitfire.h> +#include <asm/pgtable.h> /* Cache and TLB flush operations. */ @@ -29,6 +31,8 @@ extern void flush_icache_range(unsigned long start, unsigned long end); extern void __flush_dcache_page(void *addr, int flush_icache); +extern void __flush_icache_page(unsigned long); +#if (L1DCACHE_SIZE > PAGE_SIZE) /* is there D$ aliasing problem */ #define flush_dcache_page(page) \ do { if ((page)->mapping && \ !((page)->mapping->i_mmap) && \ @@ -39,6 +43,18 @@ do { if ((page)->mapping && \ ((tlb_type == spitfire) && \ (page)->mapping != NULL)); \ } while(0) +#else /* L1DCACHE_SIZE > PAGE_SIZE */ +#define flush_dcache_page(page) \ +do { if ((page)->mapping && \ + !((page)->mapping->i_mmap) && \ + !((page)->mapping->i_mmap_shared)) \ + set_bit(PG_dcache_dirty, &(page)->flags); \ + else \ + if ((tlb_type == spitfire) && \ + (page)->mapping != NULL) \ + __flush_icache_page(__get_phys((unsigned long)((page)->virtual))); \ +} while(0) +#endif /* L1DCACHE_SIZE > PAGE_SIZE */ extern void __flush_dcache_range(unsigned long start, unsigned long end); @@ -227,6 +243,14 @@ extern __inline__ void free_pgd_slow(pgd_t *pgd) #endif /* CONFIG_SMP */ +#if (L1DCACHE_SIZE > PAGE_SIZE) /* is there D$ aliasing problem */ +#define VPTE_COLOR(address) (((address) >> (PAGE_SHIFT + 10)) & 1UL) +#define DCACHE_COLOR(address) (((address) >> PAGE_SHIFT) & 1UL) +#else +#define VPTE_COLOR(address) 0 +#define DCACHE_COLOR(address) 0 +#endif + #define pgd_populate(MM, PGD, PMD) pgd_set(PGD, PMD) extern __inline__ pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) @@ -254,9 +278,7 @@ extern __inline__ pmd_t *pmd_alloc_one_fast(struct mm_struct *mm, unsigned long extern __inline__ void free_pmd_fast(pmd_t *pmd) { - unsigned long color; - - color = (((unsigned long)pmd >> PAGE_SHIFT) & 0x1UL); + unsigned long color = DCACHE_COLOR((unsigned long)pmd); *(unsigned long *)pmd = (unsigned long) pte_quicklist[color]; pte_quicklist[color] = (unsigned long *) pmd; pgtable_cache_size++; @@ -273,7 +295,7 @@ extern pte_t *pte_alloc_one(struct mm_struct *mm, unsigned long address); extern __inline__ pte_t *pte_alloc_one_fast(struct mm_struct *mm, unsigned long address) { - unsigned long color = (address >> (PAGE_SHIFT + 10)) & 0x1UL; + unsigned long color = VPTE_COLOR(address); unsigned long *ret; if((ret = (unsigned long *)pte_quicklist[color]) != NULL) { @@ -286,7 +308,7 @@ extern __inline__ pte_t *pte_alloc_one_fast(struct mm_struct *mm, unsigned long extern __inline__ void free_pte_fast(pte_t *pte) { - unsigned long color = (((unsigned long)pte >> PAGE_SHIFT) & 0x1); + unsigned long color = DCACHE_COLOR((unsigned long)pte); *(unsigned long *)pte = (unsigned long) pte_quicklist[color]; pte_quicklist[color] = (unsigned long *) pte; pgtable_cache_size++; diff --git a/include/asm-sparc64/shmparam.h b/include/asm-sparc64/shmparam.h index 03ace40fd0bb..97c667e7c0e4 100644 --- a/include/asm-sparc64/shmparam.h +++ b/include/asm-sparc64/shmparam.h @@ -1,7 +1,10 @@ -/* $Id: shmparam.h,v 1.4 1999/12/09 10:32:44 davem Exp $ */ +/* $Id: shmparam.h,v 1.5 2001/09/24 21:17:57 kanoj Exp $ */ #ifndef _ASMSPARC64_SHMPARAM_H #define _ASMSPARC64_SHMPARAM_H -#define SHMLBA (PAGE_SIZE<<1) /* attach addr a multiple of this */ +#include <asm/spitfire.h> + +/* attach addr a multiple of this */ +#define SHMLBA ((PAGE_SIZE > L1DCACHE_SIZE) ? PAGE_SIZE : L1DCACHE_SIZE) #endif /* _ASMSPARC64_SHMPARAM_H */ diff --git a/include/asm-sparc64/spitfire.h b/include/asm-sparc64/spitfire.h index 4554806dac66..26a67f822452 100644 --- a/include/asm-sparc64/spitfire.h +++ b/include/asm-sparc64/spitfire.h @@ -1,4 +1,4 @@ -/* $Id: spitfire.h,v 1.15 2001/03/27 00:10:15 davem Exp $ +/* $Id: spitfire.h,v 1.16 2001/09/24 21:17:57 kanoj Exp $ * spitfire.h: SpitFire/BlackBird/Cheetah inline MMU operations. * * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) @@ -46,6 +46,8 @@ extern enum ultra_tlb_layout tlb_type; #define SPITFIRE_HIGHEST_LOCKED_TLBENT (64 - 1) #define CHEETAH_HIGHEST_LOCKED_TLBENT (16 - 1) +#define L1DCACHE_SIZE 0x4000 + #define sparc64_highest_locked_tlbent() \ (tlb_type == spitfire ? \ SPITFIRE_HIGHEST_LOCKED_TLBENT : \ diff --git a/include/asm-sparc64/string.h b/include/asm-sparc64/string.h index 5aa023f91395..88348de5635d 100644 --- a/include/asm-sparc64/string.h +++ b/include/asm-sparc64/string.h @@ -1,4 +1,4 @@ -/* $Id: string.h,v 1.19 2001/06/05 20:56:33 davem Exp $ +/* $Id: string.h,v 1.20 2001/09/27 04:36:24 kanoj Exp $ * string.h: External definitions for optimized assembly string * routines for the Linux Kernel. * @@ -17,10 +17,6 @@ extern void __memmove(void *,const void *,__kernel_size_t); extern __kernel_size_t __memcpy(void *,const void *,__kernel_size_t); -extern __kernel_size_t __memcpy_short(void *,const void *,__kernel_size_t,long,long); -extern __kernel_size_t __memcpy_entry(void *,const void *,__kernel_size_t,long,long); -extern __kernel_size_t __memcpy_16plus(void *,const void *,__kernel_size_t,long,long); -extern __kernel_size_t __memcpy_384plus(void *,const void *,__kernel_size_t,long,long); extern void *__memset(void *,int,__kernel_size_t); extern void *__builtin_memcpy(void *,const void *,__kernel_size_t); extern void *__builtin_memset(void *,int,__kernel_size_t); diff --git a/include/asm-sparc64/uaccess.h b/include/asm-sparc64/uaccess.h index bf60670f47b3..a5590b897c8c 100644 --- a/include/asm-sparc64/uaccess.h +++ b/include/asm-sparc64/uaccess.h @@ -1,4 +1,4 @@ -/* $Id: uaccess.h,v 1.33 2000/08/29 07:01:58 davem Exp $ */ +/* $Id: uaccess.h,v 1.34 2001/09/27 04:36:24 kanoj Exp $ */ #ifndef _ASM_UACCESS_H #define _ASM_UACCESS_H @@ -249,22 +249,6 @@ __asm__ __volatile__( \ extern int __get_user_bad(void); -extern __kernel_size_t __memcpy_short(void *to, const void *from, - __kernel_size_t size, - long asi_src, long asi_dst); - -extern __kernel_size_t __memcpy_entry(void *to, const void *from, - __kernel_size_t size, - long asi_src, long asi_dst); - -extern __kernel_size_t __memcpy_16plus(void *to, const void *from, - __kernel_size_t size, - long asi_src, long asi_dst); - -extern __kernel_size_t __memcpy_386plus(void *to, const void *from, - __kernel_size_t size, - long asi_src, long asi_dst); - extern __kernel_size_t __copy_from_user(void *to, const void *from, __kernel_size_t size); diff --git a/include/linux/capi.h b/include/linux/capi.h index 0c347e003b21..f474920a7541 100644 --- a/include/linux/capi.h +++ b/include/linux/capi.h @@ -1,10 +1,12 @@ -/* - * $Id: capi.h,v 1.4 2000/06/12 09:20:20 kai Exp $ +/* $Id: capi.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $ * * CAPI 2.0 Interface for Linux * * Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de) * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * */ #ifndef __LINUX_CAPI_H__ diff --git a/include/linux/concap.h b/include/linux/concap.h index 79d642288891..b58f9667b6c2 100644 --- a/include/linux/concap.h +++ b/include/linux/concap.h @@ -1,5 +1,11 @@ -/* $Id: concap.h,v 1.2 1999/08/23 15:54:21 keil Exp $ -*/ +/* $Id: concap.h,v 1.2.8.1 2001/09/23 22:25:05 kai Exp $ + * + * Copyright 1997 by Henner Eisen <eis@baty.hanse.de> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + */ + #ifndef _LINUX_CONCAP_H #define _LINUX_CONCAP_H #ifdef __KERNEL__ @@ -9,15 +15,12 @@ /* Stuff to support encapsulation protocols genericly. The encapsulation protocol is processed at the uppermost layer of the network interface. - (c) 1997 by Henner Eisen <eis@baty.hanse.de> - This software is subject to the GNU General Public License. - Based on a ideas developed in a 'synchronous device' thread in the linux-x25 mailing list contributed by Alan Cox, Thomasz Motylewski and Jonathan Naylor. For more documetation on this refer to Documentation/isdn/README.concap - */ +*/ struct concap_proto_ops; struct concap_device_ops; diff --git a/include/linux/hysdn_if.h b/include/linux/hysdn_if.h index 9abd59bd707a..166d5ec134d8 100644 --- a/include/linux/hysdn_if.h +++ b/include/linux/hysdn_if.h @@ -1,23 +1,13 @@ -/* $Id: hysdn_if.h,v 1.1.8.2 2001/05/17 20:41:52 kai Exp $ - - * Linux driver for HYSDN cards, ioctl definitions shared by hynetmgr and driver. - * written by Werner Cornelius (werner@titro.de) for Hypercope GmbH - * - * Copyright 1999 by Werner Cornelius (werner@titro.de) +/* $Id: hysdn_if.h,v 1.1.8.3 2001/09/23 22:25:05 kai Exp $ * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. + * Linux driver for HYSDN cards + * ioctl definitions shared by hynetmgr and driver. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Author Werner Cornelius (werner@titro.de) for Hypercope GmbH + * Copyright 1999 by Werner Cornelius (werner@titro.de) * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * */ diff --git a/include/linux/isdn.h b/include/linux/isdn.h index ef82d31915d5..0f1dda941c26 100644 --- a/include/linux/isdn.h +++ b/include/linux/isdn.h @@ -1,24 +1,13 @@ -/* $Id: isdn.h,v 1.111.6.8 2001/08/17 12:34:28 kai Exp $ - +/* $Id: isdn.h,v 1.111.6.9 2001/09/23 22:25:05 kai Exp $ + * * Main header for the Linux ISDN subsystem (linklevel). * * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de) * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de) * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * */ diff --git a/include/linux/isdn_divertif.h b/include/linux/isdn_divertif.h index ef532bad430f..0e7e44ce8301 100644 --- a/include/linux/isdn_divertif.h +++ b/include/linux/isdn_divertif.h @@ -1,22 +1,12 @@ -/* $Id: isdn_divertif.h,v 1.4 2000/05/11 22:29:22 kai Exp $ - - * Header for the diversion supplementary interface for i4l. +/* $Id: isdn_divertif.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $ * - * Copyright 1998 by Werner Cornelius (werner@isdn4linux.de) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. + * Header for the diversion supplementary interface for i4l. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Author Werner Cornelius (werner@titro.de) + * Copyright by Werner Cornelius (werner@titro.de) * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * */ diff --git a/include/linux/isdn_lzscomp.h b/include/linux/isdn_lzscomp.h index 8f64bfa6720f..ca16cb1be43a 100644 --- a/include/linux/isdn_lzscomp.h +++ b/include/linux/isdn_lzscomp.h @@ -1,10 +1,12 @@ -/* - * $Id: isdn_lzscomp.h,v 1.1 1998/07/08 16:52:33 hipp Exp $ +/* $Id: isdn_lzscomp.h,v 1.1.10.1 2001/09/23 22:25:05 kai Exp $ * * Header for isdn_lzscomp.c * Concentrated here to not mess up half a dozen kernel headers with code * snippets * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * */ #define CI_LZS_COMPRESS 17 diff --git a/include/linux/isdn_ppp.h b/include/linux/isdn_ppp.h index c43517f16f87..cc2df8915c89 100644 --- a/include/linux/isdn_ppp.h +++ b/include/linux/isdn_ppp.h @@ -1,4 +1,9 @@ -/* -*- mode: c; c-basic-offset: 2 -*- */ +/* + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + #ifndef _LINUX_ISDN_PPP_H #define _LINUX_ISDN_PPP_H diff --git a/include/linux/isdnif.h b/include/linux/isdnif.h index e09c9cccee02..672e8b15cbf6 100644 --- a/include/linux/isdnif.h +++ b/include/linux/isdnif.h @@ -1,25 +1,13 @@ -/* $Id: isdnif.h,v 1.37.6.5 2001/06/11 22:08:38 kai Exp $ - - * Linux ISDN subsystem +/* $Id: isdnif.h,v 1.37.6.6 2001/09/23 22:25:05 kai Exp $ * + * Linux ISDN subsystem * Definition of the interface between the subsystem and its low-level drivers. * * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de) * Copyright 1995,96 Thinking Objects Software GmbH Wuerzburg * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * */ diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 1ee66f6e10c9..904588c1754e 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -96,6 +96,9 @@ static inline void console_verbose(void) extern void bust_spinlocks(int yes); extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */ +extern int tainted; +extern const char *print_tainted(void); + #if DEBUG #define pr_debug(fmt,arg...) \ printk(KERN_DEBUG fmt,##arg) diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h index 5df76c9c4321..caa826a929e4 100644 --- a/include/linux/lockd/lockd.h +++ b/include/linux/lockd/lockd.h @@ -47,6 +47,7 @@ struct nlm_host { unsigned short h_authflavor; /* RPC authentication type */ unsigned short h_reclaiming : 1, h_inuse : 1, + h_killed : 1, h_monitored : 1; wait_queue_head_t h_gracewait; /* wait while reclaiming */ u32 h_state; /* pseudo-state counter */ @@ -120,7 +121,7 @@ extern struct svc_procedure nlmsvc_procedures[]; #ifdef CONFIG_LOCKD_V4 extern struct svc_procedure nlmsvc_procedures4[]; #endif -extern unsigned long nlmsvc_grace_period; +extern int nlmsvc_grace_period; extern unsigned long nlmsvc_timeout; /* diff --git a/include/linux/lockd/nlm.h b/include/linux/lockd/nlm.h index e22388d5097b..869b630cba24 100644 --- a/include/linux/lockd/nlm.h +++ b/include/linux/lockd/nlm.h @@ -49,10 +49,10 @@ enum { #define NLMPROC_CANCEL_RES 13 #define NLMPROC_UNLOCK_RES 14 #define NLMPROC_GRANTED_RES 15 +#define NLMPROC_NSM_NOTIFY 16 /* statd callback */ #define NLMPROC_SHARE 20 #define NLMPROC_UNSHARE 21 #define NLMPROC_NM_LOCK 22 #define NLMPROC_FREE_ALL 23 -#define NLMPROC_NSM_NOTIFY 24 /* statd callback */ #endif /* LINUX_LOCKD_NLM_H */ diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h index c06273bbf126..cbf710c5572d 100644 --- a/include/linux/miscdevice.h +++ b/include/linux/miscdevice.h @@ -21,6 +21,7 @@ #define NVRAM_MINOR 144 #define I2O_MINOR 166 #define MICROCODE_MINOR 184 +#define MWAVE_MINOR 219 /* ACP/Mwave Modem */ #define MPT_MINOR 220 #define MISC_DYNAMIC_MINOR 255 diff --git a/include/linux/module.h b/include/linux/module.h index 7dc117a3329c..d32bf62b8fb0 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -346,12 +346,14 @@ extern struct module *module_list; #define __EXPORT_SYMBOL(sym,str) error config_must_be_included_before_module #define EXPORT_SYMBOL(var) error config_must_be_included_before_module #define EXPORT_SYMBOL_NOVERS(var) error config_must_be_included_before_module +#define EXPORT_SYMBOL_GPL(var) error config_must_be_included_before_module #elif !defined(CONFIG_MODULES) #define __EXPORT_SYMBOL(sym,str) #define EXPORT_SYMBOL(var) #define EXPORT_SYMBOL_NOVERS(var) +#define EXPORT_SYMBOL_GPL(var) #else @@ -362,10 +364,19 @@ const struct module_symbol __ksymtab_##sym \ __attribute__((section("__ksymtab"))) = \ { (unsigned long)&sym, __kstrtab_##sym } +#define __EXPORT_SYMBOL_GPL(sym, str) \ +const char __kstrtab_##sym[] \ +__attribute__((section(".kstrtab"))) = str; \ +const struct module_symbol __ksymtab_GPLONLY_##sym \ +__attribute__((section("__ksymtab"))) = \ +{ (unsigned long)&sym, __kstrtab_GPLONLY_##sym } + #if defined(MODVERSIONS) || !defined(CONFIG_MODVERSIONS) #define EXPORT_SYMBOL(var) __EXPORT_SYMBOL(var, __MODULE_STRING(var)) +#define EXPORT_SYMBOL_GPL(var) __EXPORT_SYMBOL_GPL(var, __MODULE_STRING(var)) #else #define EXPORT_SYMBOL(var) __EXPORT_SYMBOL(var, __MODULE_STRING(__VERSIONED_SYMBOL(var))) +#define EXPORT_SYMBOL_GPL(var) __EXPORT_SYMBOL(var, __MODULE_STRING(__VERSIONED_SYMBOL(var))) #endif #define EXPORT_SYMBOL_NOVERS(var) __EXPORT_SYMBOL(var, __MODULE_STRING(var)) diff --git a/include/linux/nfs_fs_i.h b/include/linux/nfs_fs_i.h index 2903f4c83b6c..7fc3bae2278b 100644 --- a/include/linux/nfs_fs_i.h +++ b/include/linux/nfs_fs_i.h @@ -99,5 +99,6 @@ struct nfs_lock_info { * Lock flag values */ #define NFS_LCK_GRANTED 0x0001 /* lock has been granted */ +#define NFS_LCK_RECLAIM 0x0002 /* lock marked for reclaiming */ #endif diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 2d7b4f7a044a..0cba3d5028d3 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -345,6 +345,7 @@ #define PCI_DEVICE_ID_IBM_3780IDSP 0x007d #define PCI_DEVICE_ID_IBM_CHUKAR 0x0096 #define PCI_DEVICE_ID_IBM_405GP 0x0156 +#define PCI_DEVICE_ID_IBM_SERVERAIDI960 0x01bd #define PCI_DEVICE_ID_IBM_MPIC_2 0xffff #define PCI_VENDOR_ID_COMPEX2 0x101a // pci.ids says "AT&T GIS (NCR)" diff --git a/include/linux/sem.h b/include/linux/sem.h index 7013af7ea617..3679276fdb21 100644 --- a/include/linux/sem.h +++ b/include/linux/sem.h @@ -68,11 +68,11 @@ struct seminfo { #define SEMMNS (SEMMNI*SEMMSL) /* <= INT_MAX max # of semaphores in system */ #define SEMOPM 32 /* <= 1 000 max num of ops per semop call */ #define SEMVMX 32767 /* <= 32767 semaphore maximum value */ +#define SEMAEM SEMVMX /* adjust on exit max value */ /* unused */ #define SEMUME SEMOPM /* max num of undo entries per process */ #define SEMMNU SEMMNS /* num of undo structures system wide */ -#define SEMAEM (SEMVMX >> 1) /* adjust on exit max value */ #define SEMMAP SEMMNS /* # of entries in semaphore map */ #define SEMUSZ 20 /* sizeof struct sem_undo */ diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 3d34e45883a8..de85345183a7 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -121,6 +121,7 @@ enum KERN_IEEE_EMULATION_WARNINGS=50, /* int: unimplemented ieee instructions */ KERN_S390_USER_DEBUG_LOGGING=51, /* int: dumps of user faults */ KERN_CORE_USES_PID=52, /* int: use core or core.%pid */ + KERN_TAINTED=53, /* int: various kernel tainted flags */ KERN_CADPID=54, /* int: PID of the process to notify on CAD */ }; diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h index de03136e551a..1e484e5fd032 100644 --- a/include/linux/sysrq.h +++ b/include/linux/sysrq.h @@ -24,6 +24,8 @@ struct sysrq_key_op { char *action_msg; }; +#ifdef CONFIG_MAGIC_SYSRQ + /* Generic SysRq interface -- you may call it from any device driver, supplying * ASCII code of the key, pointer to registers and kbd/tty structs (if they * are available -- else NULL's). @@ -42,7 +44,6 @@ void __handle_sysrq_nolock(int, struct pt_regs *, struct kbd_struct *, struct tty_struct *); -#ifdef CONFIG_MAGIC_SYSRQ /* * Sysrq registration manipulation functions @@ -55,7 +56,8 @@ void __sysrq_put_key_op (int key, struct sysrq_key_op *op_p); extern __inline__ int __sysrq_swap_key_ops_nolock(int key, struct sysrq_key_op *insert_op_p, - struct sysrq_key_op *remove_op_p) { + struct sysrq_key_op *remove_op_p) +{ int retval; if (__sysrq_get_key_op(key) == remove_op_p) { __sysrq_put_key_op(key, insert_op_p); @@ -87,10 +89,18 @@ static inline int unregister_sysrq_key(int key, struct sysrq_key_op *op_p) } #else -#define register_sysrq_key(a,b) do {} while(0) -#define unregister_sysrq_key(a,b) do {} while(0) + +static inline int __reterr(void) +{ + return -EINVAL; +} + +#define register_sysrq_key(ig,nore) __reterr() +#define unregister_sysrq_key(ig,nore) __reterr() + #endif + /* Deferred actions */ extern int emergency_sync_scheduled; diff --git a/include/linux/timer.h b/include/linux/timer.h index 803d268f12e3..e3249bf933a0 100644 --- a/include/linux/timer.h +++ b/include/linux/timer.h @@ -19,7 +19,6 @@ struct timer_list { unsigned long data; void (*function)(unsigned long); }; -typedef struct timer_list timer_t; extern void add_timer(struct timer_list * timer); extern int del_timer(struct timer_list * timer); diff --git a/include/net/tcp.h b/include/net/tcp.h index 4cb72ebec3f7..2cd60784ada2 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -266,13 +266,13 @@ static __inline__ int tcp_sk_listen_hashfn(struct sock *sk) * Never offer a window over 32767 without using window scaling. Some * poor stacks do signed 16bit maths! */ -#define MAX_TCP_WINDOW 32767 +#define MAX_TCP_WINDOW 32767U /* Minimal accepted MSS. It is (60+60+8) - (20+20). */ -#define TCP_MIN_MSS 88 +#define TCP_MIN_MSS 88U /* Minimal RCV_MSS. */ -#define TCP_MIN_RCVMSS 536 +#define TCP_MIN_RCVMSS 536U /* After receiving this amount of duplicate ACKs fast retransmit starts. */ #define TCP_FASTRETRANS_THRESH 3 @@ -281,7 +281,7 @@ static __inline__ int tcp_sk_listen_hashfn(struct sock *sk) #define TCP_MAX_REORDERING 127 /* Maximal number of ACKs sent quickly to accelerate slow-start. */ -#define TCP_MAX_QUICKACKS 16 +#define TCP_MAX_QUICKACKS 16U /* urg_data states */ #define TCP_URG_VALID 0x0100 @@ -323,21 +323,21 @@ static __inline__ int tcp_sk_listen_hashfn(struct sock *sk) * TIME-WAIT timer. */ -#define TCP_DELACK_MAX (HZ/5) /* maximal time to delay before sending an ACK */ +#define TCP_DELACK_MAX ((unsigned)(HZ/5)) /* maximal time to delay before sending an ACK */ #if HZ >= 100 -#define TCP_DELACK_MIN (HZ/25) /* minimal time to delay before sending an ACK */ -#define TCP_ATO_MIN (HZ/25) +#define TCP_DELACK_MIN ((unsigned)(HZ/25)) /* minimal time to delay before sending an ACK */ +#define TCP_ATO_MIN ((unsigned)(HZ/25)) #else -#define TCP_DELACK_MIN 4 -#define TCP_ATO_MIN 4 +#define TCP_DELACK_MIN 4U +#define TCP_ATO_MIN 4U #endif -#define TCP_RTO_MAX (120*HZ) -#define TCP_RTO_MIN (HZ/5) -#define TCP_TIMEOUT_INIT (3*HZ) /* RFC 1122 initial RTO value */ +#define TCP_RTO_MAX ((unsigned)(120*HZ)) +#define TCP_RTO_MIN ((unsigned)(HZ/5)) +#define TCP_TIMEOUT_INIT ((unsigned)(3*HZ)) /* RFC 1122 initial RTO value */ -#define TCP_RESOURCE_PROBE_INTERVAL (HZ/2) /* Maximal interval between probes - * for local resources. - */ +#define TCP_RESOURCE_PROBE_INTERVAL ((unsigned)(HZ/2U)) /* Maximal interval between probes + * for local resources. + */ #define TCP_KEEPALIVE_TIME (120*60*HZ) /* two hours */ #define TCP_KEEPALIVE_PROBES 9 /* Max of 9 keepalive probes */ @@ -919,14 +919,13 @@ static __inline__ unsigned int tcp_current_mss(struct sock *sk) static inline void tcp_initialize_rcv_mss(struct sock *sk) { struct tcp_opt *tp = &sk->tp_pinfo.af_tcp; - unsigned int hint = min_t(unsigned int, tp->advmss, tp->mss_cache); + unsigned int hint = min(tp->advmss, tp->mss_cache); - hint = min_t(unsigned int, hint, tp->rcv_wnd/2); - - tp->ack.rcv_mss = max_t(unsigned int, - min_t(unsigned int, - hint, TCP_MIN_RCVMSS), - TCP_MIN_MSS); + hint = min(hint, tp->rcv_wnd/2); + hint = min(hint, TCP_MIN_RCVMSS); + hint = max(hint, TCP_MIN_MSS); + + tp->ack.rcv_mss = hint; } static __inline__ void __tcp_fast_path_on(struct tcp_opt *tp, u32 snd_wnd) @@ -1065,7 +1064,7 @@ static inline int tcp_wspace(struct sock *sk) * "Packets left network, but not honestly ACKed yet" PLUS * "Packets fast retransmitted" */ -static __inline__ int tcp_packets_in_flight(struct tcp_opt *tp) +static __inline__ unsigned int tcp_packets_in_flight(struct tcp_opt *tp) { return tp->packets_out - tp->left_out + tp->retrans_out; } @@ -1077,7 +1076,7 @@ static __inline__ int tcp_packets_in_flight(struct tcp_opt *tp) */ static inline __u32 tcp_recalc_ssthresh(struct tcp_opt *tp) { - return max_t(u32, tp->snd_cwnd >> 1, 2); + return max(tp->snd_cwnd >> 1U, 2U); } /* If cwnd > ssthresh, we may raise ssthresh to be half-way to cwnd. @@ -1089,7 +1088,7 @@ static inline __u32 tcp_current_ssthresh(struct tcp_opt *tp) if ((1<<tp->ca_state)&(TCPF_CA_CWR|TCPF_CA_Recovery)) return tp->snd_ssthresh; else - return max_t(u32, tp->snd_ssthresh, + return max(tp->snd_ssthresh, ((tp->snd_cwnd >> 1) + (tp->snd_cwnd >> 2))); } @@ -1126,8 +1125,8 @@ static inline void __tcp_enter_cwr(struct tcp_opt *tp) { tp->undo_marker = 0; tp->snd_ssthresh = tcp_recalc_ssthresh(tp); - tp->snd_cwnd = min_t(u32, tp->snd_cwnd, - tcp_packets_in_flight(tp) + 1); + tp->snd_cwnd = min(tp->snd_cwnd, + tcp_packets_in_flight(tp) + 1U); tp->snd_cwnd_cnt = 0; tp->high_seq = tp->snd_nxt; tp->snd_cwnd_stamp = tcp_time_stamp; @@ -1484,16 +1483,18 @@ static inline void tcp_syn_build_options(__u32 *ptr, int mss, int ts, int sack, * be a multiple of mss if possible. We assume here that mss >= 1. * This MUST be enforced by all callers. */ -static inline void tcp_select_initial_window(int space, __u32 mss, +static inline void tcp_select_initial_window(int __space, __u32 mss, __u32 *rcv_wnd, __u32 *window_clamp, int wscale_ok, __u8 *rcv_wscale) { + unsigned int space = (__space < 0 ? 0 : __space); + /* If no clamp set the clamp to the max possible scaled window */ if (*window_clamp == 0) (*window_clamp) = (65535 << 14); - space = min_t(u32, *window_clamp, space); + space = min(*window_clamp, space); /* Quantize space offering to a multiple of mss if possible. */ if (space > mss) @@ -1505,7 +1506,7 @@ static inline void tcp_select_initial_window(int space, __u32 mss, * our initial window offering to 32k. There should also * be a sysctl option to stop being nice. */ - (*rcv_wnd) = min_t(int, space, MAX_TCP_WINDOW); + (*rcv_wnd) = min(space, MAX_TCP_WINDOW); (*rcv_wscale) = 0; if (wscale_ok) { /* See RFC1323 for an explanation of the limit to 14 */ @@ -1514,7 +1515,7 @@ static inline void tcp_select_initial_window(int space, __u32 mss, (*rcv_wscale)++; } if (*rcv_wscale && sysctl_tcp_app_win && space>=mss && - space - max_t(unsigned int, (space>>sysctl_tcp_app_win), mss>>*rcv_wscale) < 65536/2) + space - max((space>>sysctl_tcp_app_win), mss>>*rcv_wscale) < 65536/2) (*rcv_wscale)--; } @@ -1532,7 +1533,7 @@ static inline void tcp_select_initial_window(int space, __u32 mss, *rcv_wnd = init_cwnd*mss; } /* Set the clamp no higher than max representable value */ - (*window_clamp) = min_t(u32, 65535 << (*rcv_wscale), *window_clamp); + (*window_clamp) = min(65535U << (*rcv_wscale), *window_clamp); } static inline int tcp_win_from_space(int space) @@ -1698,8 +1699,8 @@ static inline void tcp_enter_memory_pressure(void) static inline void tcp_moderate_sndbuf(struct sock *sk) { if (!(sk->userlocks&SOCK_SNDBUF_LOCK)) { - sk->sndbuf = min_t(int, sk->sndbuf, sk->wmem_queued/2); - sk->sndbuf = max_t(int, sk->sndbuf, SOCK_MIN_SNDBUF); + sk->sndbuf = min(sk->sndbuf, sk->wmem_queued/2); + sk->sndbuf = max(sk->sndbuf, SOCK_MIN_SNDBUF); } } |
