summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:20:15 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:20:15 -0800
commit5bf3be033f504f5fd79690fbb13d720407314e40 (patch)
tree96b4fdb8c54f2477829c648e6078a0e54f5e7a6e /include
parent98b8803038fa999212c37952adad1e04144f0ab7 (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')
-rw-r--r--include/asm-i386/highmem.h5
-rw-r--r--include/asm-i386/io_apic.h3
-rw-r--r--include/asm-ia64/module.h8
-rw-r--r--include/asm-sparc/uaccess.h10
-rw-r--r--include/asm-sparc64/ide.h12
-rw-r--r--include/asm-sparc64/pgalloc.h34
-rw-r--r--include/asm-sparc64/shmparam.h7
-rw-r--r--include/asm-sparc64/spitfire.h4
-rw-r--r--include/asm-sparc64/string.h6
-rw-r--r--include/asm-sparc64/uaccess.h18
-rw-r--r--include/linux/capi.h6
-rw-r--r--include/linux/concap.h15
-rw-r--r--include/linux/hysdn_if.h24
-rw-r--r--include/linux/isdn.h19
-rw-r--r--include/linux/isdn_divertif.h22
-rw-r--r--include/linux/isdn_lzscomp.h6
-rw-r--r--include/linux/isdn_ppp.h7
-rw-r--r--include/linux/isdnif.h20
-rw-r--r--include/linux/kernel.h3
-rw-r--r--include/linux/lockd/lockd.h3
-rw-r--r--include/linux/lockd/nlm.h2
-rw-r--r--include/linux/miscdevice.h1
-rw-r--r--include/linux/module.h11
-rw-r--r--include/linux/nfs_fs_i.h1
-rw-r--r--include/linux/pci_ids.h1
-rw-r--r--include/linux/sem.h2
-rw-r--r--include/linux/sysctl.h1
-rw-r--r--include/linux/sysrq.h18
-rw-r--r--include/linux/timer.h1
-rw-r--r--include/net/tcp.h69
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);
}
}