Commit 971c250e authored by Linus Torvalds's avatar Linus Torvalds

Import 1.3.25

parent 03b1f1e5
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
Linus Linus
---------- ----------
M: Matti Aarnio N: Matti Aarnio
E: mea@utu.fi E: mea@utu.fi
D: LILO for AHA1542, modularized several of drivers/net/, D: LILO for AHA1542, modularized several of drivers/net/,
D: dynamic SLIP devices, dynamic /proc/net/, true size /proc/ksyms, D: dynamic SLIP devices, dynamic /proc/net/, true size /proc/ksyms,
...@@ -15,8 +15,13 @@ D: and other hacks.. ...@@ -15,8 +15,13 @@ D: and other hacks..
D: Documenting various parts of network subsystem (kernel side) D: Documenting various parts of network subsystem (kernel side)
N: Werner Almesberger N: Werner Almesberger
E: almesber@bernina.ethz.ch E: werner.almesberger@lrc.di.epfl.ch
D: dosfs, LILO, some fd features, various other hacks here and there D: dosfs, LILO, some fd features, various other hacks here and there
S: Ecole Polytechnique Federale de Lausanne
S: DI-LRC
S: INR (Ecublens)
S: CH-1015 Lausanne
S: Switzerland
N: H. Peter Anvin N: H. Peter Anvin
E: Peter.Anvin@linux.org E: Peter.Anvin@linux.org
...@@ -673,6 +678,13 @@ S: Reinholdstrasse 14 ...@@ -673,6 +678,13 @@ S: Reinholdstrasse 14
S: D-37083 Goettingen S: D-37083 Goettingen
S: Germany S: Germany
N: David Mosberger-Tang
E: davidm@azstarnet.com
D: Linux/Alpha
S: 2552 E. Copper Street
S: Tucson, AZ 85716-2406
S: USA
N: Ian A. Murdock N: Ian A. Murdock
E: imurdock@gnu.ai.mit.edu E: imurdock@gnu.ai.mit.edu
D: Creator of Debian distribution D: Creator of Debian distribution
......
This diff is collapsed.
This diff is collapsed.
VERSION = 1 VERSION = 1
PATCHLEVEL = 3 PATCHLEVEL = 3
SUBLEVEL = 24 SUBLEVEL = 25
ARCH = i386 ARCH = i386
......
...@@ -69,7 +69,9 @@ endif ...@@ -69,7 +69,9 @@ endif
fastdep: dummy fastdep: dummy
if [ -n "$(wildcard *.[chS])" ]; then \ if [ -n "$(wildcard *.[chS])" ]; then \
awk -f $(TOPDIR)/scripts/depend.awk *.[chS] > .depend; fi awk -f $(TOPDIR)/scripts/depend.awk *.[chS] > .depend; fi
ifdef ALL_SUB_DIRS
set -e; for i in $(ALL_SUB_DIRS); do $(MAKE) -C $$i fastdep; done set -e; for i in $(ALL_SUB_DIRS); do $(MAKE) -C $$i fastdep; done
endif
# #
# A rule to make subdirectories # A rule to make subdirectories
......
...@@ -32,8 +32,9 @@ vmlinux.gz: vmlinux ...@@ -32,8 +32,9 @@ vmlinux.gz: vmlinux
gzip -fv vmlinux gzip -fv vmlinux
vmlinux: tools/build $(TOPDIR)/vmlinux vmlinux: tools/build $(TOPDIR)/vmlinux
cp $(TOPDIR)/vmlinux vmlinux tools/build -v $(TOPDIR)/vmlinux > vmlinux
quickstrip vmlinux # cp $(TOPDIR)/vmlinux vmlinux
# quickstrip vmlinux
tools/lxboot: tools/build tools/lxboot: tools/build
tools/build > tools/lxboot tools/build > tools/lxboot
......
This diff is collapsed.
...@@ -187,7 +187,7 @@ if [ "$CONFIG_NET_ISA" = "y" ]; then ...@@ -187,7 +187,7 @@ if [ "$CONFIG_NET_ISA" = "y" ]; then
fi fi
tristate 'HP PCLAN+ (27247B and 27252A) support' CONFIG_HPLAN_PLUS n tristate 'HP PCLAN+ (27247B and 27252A) support' CONFIG_HPLAN_PLUS n
tristate 'HP PCLAN (27245 and other 27xxx series) support' CONFIG_HPLAN n tristate 'HP PCLAN (27245 and other 27xxx series) support' CONFIG_HPLAN n
tristate 'HP 10/100VG PCLAN (ISA, EISA, PCI) support' CONFIG_HP100 y tristate 'HP 10/100VG PCLAN (ISA, EISA, PCI) support' CONFIG_HP100 n
tristate 'NE2000/NE1000 support' CONFIG_NE2000 y tristate 'NE2000/NE1000 support' CONFIG_NE2000 y
bool 'SK_G16 support' CONFIG_SK_G16 n bool 'SK_G16 support' CONFIG_SK_G16 n
fi fi
...@@ -221,25 +221,28 @@ fi ...@@ -221,25 +221,28 @@ fi
comment 'CD-ROM drivers (not for SCSI or IDE/ATAPI drives)' comment 'CD-ROM drivers (not for SCSI or IDE/ATAPI drives)'
tristate 'Sony CDU31A/CDU33A CDROM support' CONFIG_CDU31A n bool 'Support non-SCSI/IDE/ATAPI drives' CONFIG_CD_NO_IDESCSI n
tristate 'Standard Mitsumi [no XA/Multisession] CDROM support' CONFIG_MCD n if [ "$CONFIG_CD_NO_IDESCSI" = "y" ]; then
tristate 'Experimental Mitsumi [XA/MultiSession] support' CONFIG_MCDX n tristate 'Sony CDU31A/CDU33A CDROM support' CONFIG_CDU31A n
tristate 'Matsushita/Panasonic CDROM support' CONFIG_SBPCD n tristate 'Standard Mitsumi [no XA/Multisession] CDROM support' CONFIG_MCD n
if [ "$CONFIG_SBPCD" != "n" ]; then tristate 'Experimental Mitsumi [XA/MultiSession] support' CONFIG_MCDX n
bool 'Matsushita/Panasonic second CDROM controller support' CONFIG_SBPCD2 n tristate 'Matsushita/Panasonic CDROM support' CONFIG_SBPCD n
if [ "$CONFIG_SBPCD2" = "y" ]; then if [ "$CONFIG_SBPCD" = "y" ]; then
bool 'Matsushita/Panasonic third CDROM controller support' CONFIG_SBPCD3 n bool 'Matsushita/Panasonic second CDROM controller support' CONFIG_SBPCD2 n
if [ "$CONFIG_SBPCD3" = "y" ]; then if [ "$CONFIG_SBPCD2" = "y" ]; then
bool 'Matsushita/Panasonic fourth CDROM controller support' CONFIG_SBPCD4 n bool 'Matsushita/Panasonic third CDROM controller support' CONFIG_SBPCD3 n
if [ "$CONFIG_SBPCD3" = "y" ]; then
bool 'Matsushita/Panasonic fourth CDROM controller support' CONFIG_SBPCD4 n
fi
fi fi
fi fi
tristate 'Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support' CONFIG_AZTCD n
tristate 'Sony CDU535 CDROM support' CONFIG_CDU535 n
tristate 'Goldstar R420 CDROM support' CONFIG_GSCD n
tristate 'Philips/LMS CM206 CDROM support' CONFIG_CM206 n
tristate 'Experimental Optics Storage DOLPHIN 8000AT CDROM support' CONFIG_OPTCD n
bool 'Experimental Sanyo H94A CDROM support' CONFIG_SJCD n
fi fi
tristate 'Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support' CONFIG_AZTCD n
tristate 'Sony CDU535 CDROM support' CONFIG_CDU535 n
tristate 'Goldstar R420 CDROM support' CONFIG_GSCD n
tristate 'Philips/LMS CM206 CDROM support' CONFIG_CM206 n
tristate 'Experimental Optics Storage DOLPHIN 8000AT CDROM support' CONFIG_OPTCD n
bool 'Experimental Sanyo H94A CDROM support' CONFIG_SJCD n
comment 'Filesystems' comment 'Filesystems'
......
...@@ -452,6 +452,3 @@ unsigned long pcibios_init(unsigned long memory_start, unsigned long memory_end) ...@@ -452,6 +452,3 @@ unsigned long pcibios_init(unsigned long memory_start, unsigned long memory_end)
#endif #endif
return memory_start; return memory_start;
} }
...@@ -232,16 +232,12 @@ void dump_thread(struct pt_regs * regs, struct user * dump) ...@@ -232,16 +232,12 @@ void dump_thread(struct pt_regs * regs, struct user * dump)
dump->u_tsize = ((unsigned long) current->mm->end_code) >> 12; dump->u_tsize = ((unsigned long) current->mm->end_code) >> 12;
dump->u_dsize = ((unsigned long) (current->mm->brk + (PAGE_SIZE-1))) >> 12; dump->u_dsize = ((unsigned long) (current->mm->brk + (PAGE_SIZE-1))) >> 12;
dump->u_dsize -= dump->u_tsize; dump->u_dsize -= dump->u_tsize;
if (verify_area(VERIFY_READ, (void *) dump->u_tsize, dump->u_dsize) < 0)
dump->u_dsize = 0;
dump->u_ssize = 0; dump->u_ssize = 0;
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
dump->u_debugreg[i] = current->debugreg[i]; dump->u_debugreg[i] = current->debugreg[i];
if (dump->start_stack < TASK_SIZE) { if (dump->start_stack < TASK_SIZE) {
dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> 12; dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> 12;
if (verify_area(VERIFY_READ, (void *) dump->start_stack, dump->u_ssize) < 0)
dump->u_ssize = 0;
} }
dump->regs = *regs; dump->regs = *regs;
......
...@@ -480,6 +480,8 @@ asmlinkage int sys_ptrace(long request, long pid, long addr, long data) ...@@ -480,6 +480,8 @@ asmlinkage int sys_ptrace(long request, long pid, long addr, long data)
case PTRACE_KILL: { case PTRACE_KILL: {
long tmp; long tmp;
if (child->state == TASK_ZOMBIE) /* already dead */
return 0;
wake_up_process(child); wake_up_process(child);
child->exit_code = SIGKILL; child->exit_code = SIGKILL;
/* make sure the single step bit is not set. */ /* make sure the single step bit is not set. */
......
...@@ -1659,12 +1659,32 @@ init_module(void) ...@@ -1659,12 +1659,32 @@ init_module(void)
#else /* MODULE */ #else /* MODULE */
sony_toc = (struct s535_sony_toc *) sony_toc = (struct s535_sony_toc *)
kmalloc(sizeof *sony_toc, GFP_KERNEL); kmalloc(sizeof *sony_toc, GFP_KERNEL);
if (sony_toc == NULL)
return -ENOMEM;
last_sony_subcode = (struct s535_sony_subcode *) last_sony_subcode = (struct s535_sony_subcode *)
kmalloc(sizeof *last_sony_subcode, GFP_KERNEL); kmalloc(sizeof *last_sony_subcode, GFP_KERNEL);
if (last_sony_subcode == NULL) {
kfree(sony_toc);
return -ENOMEM;
}
sony_buffer = (Byte **) sony_buffer = (Byte **)
kmalloc(4 * sony_buffer_sectors, GFP_KERNEL); kmalloc(4 * sony_buffer_sectors, GFP_KERNEL);
for (i = 0; i < sony_buffer_sectors; i++) if (sony_buffer == NULL) {
kfree(sony_toc);
kfree(last_sony_subcode);
return -ENOMEM;
}
for (i = 0; i < sony_buffer_sectors; i++) {
sony_buffer[i] = (Byte *)kmalloc(2048, GFP_KERNEL); sony_buffer[i] = (Byte *)kmalloc(2048, GFP_KERNEL);
if (sony_buffer[i] == NULL) {
while (--i>=0)
kfree(sony_buffer[i]);
kfree(sony_buffer);
kfree(sony_toc);
kfree(last_sony_subcode);
return -ENOMEM;
}
}
#endif /* MODULE */ #endif /* MODULE */
initialized = 1; initialized = 1;
} }
......
This diff is collapsed.
This diff is collapsed.
#include <linux/autoconf.h> /* fastest method */ #include <linux/autoconf.h> /* fastest method */
#ifdef CONFIG_SCC #ifdef CONFIG_SCC
#define RCS_ID "$Id: scc.c,v 1.25 1995/08/24 21:05:00 jreuter Exp jreuter $" #define RCS_ID "$Id: scc.c,v 1.26 1995/09/07 14:46:19 jreuter Exp jreuter $"
#define BANNER "Z8530 SCC driver v1.9.dl1bke (beta) by dl1bke\n" #define BANNER "Z8530 SCC driver v1.9.dl1bke (beta) by dl1bke\n"
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#ifndef Z8530_MAJOR #ifndef Z8530_MAJOR
#define Z8530_MAJOR 22 #define Z8530_MAJOR 34
#endif #endif
long scc_init(long kmem_start); long scc_init(long kmem_start);
......
...@@ -289,8 +289,9 @@ el1_probe1(struct device *dev, int ioaddr) ...@@ -289,8 +289,9 @@ el1_probe1(struct device *dev, int ioaddr)
printk("%s", version); printk("%s", version);
/* Initialize the device structure. */ /* Initialize the device structure. */
dev->priv = kmalloc(sizeof(struct net_local), GFP_KERNEL);
if (dev->priv == NULL) if (dev->priv == NULL)
dev->priv = kmalloc(sizeof(struct net_local), GFP_KERNEL); return -ENOMEM;
memset(dev->priv, 0, sizeof(struct net_local)); memset(dev->priv, 0, sizeof(struct net_local));
/* The EL1-specific entries in the device structure. */ /* The EL1-specific entries in the device structure. */
......
...@@ -1257,6 +1257,8 @@ elp_init (struct device *dev) ...@@ -1257,6 +1257,8 @@ elp_init (struct device *dev)
*/ */
adapter = (elp_device *)(dev->priv = kmalloc(sizeof(elp_device), GFP_KERNEL)); adapter = (elp_device *)(dev->priv = kmalloc(sizeof(elp_device), GFP_KERNEL));
CHECK_NULL(adapter); CHECK_NULL(adapter);
if (adapter == NULL)
return -ENOMEM;
memset(&(adapter->stats), 0, sizeof(struct enet_statistics)); memset(&(adapter->stats), 0, sizeof(struct enet_statistics));
/* /*
...@@ -1492,6 +1494,8 @@ cleanup_module(void) ...@@ -1492,6 +1494,8 @@ cleanup_module(void)
else else
{ {
unregister_netdev(&dev_3c505); unregister_netdev(&dev_3c505);
kfree(dev_3c505.priv);
dev_3c505.priv = NULL;
/* If we don't do this, we can't re-insmod it later. */ /* If we don't do this, we can't re-insmod it later. */
release_region(dev_3c505.base_addr, ELP_IO_EXTENT); release_region(dev_3c505.base_addr, ELP_IO_EXTENT);
......
...@@ -416,8 +416,9 @@ int el16_probe1(struct device *dev, int ioaddr) ...@@ -416,8 +416,9 @@ int el16_probe1(struct device *dev, int ioaddr)
printk(version); printk(version);
/* Initialize the device structure. */ /* Initialize the device structure. */
dev->priv = kmalloc(sizeof(struct net_local), GFP_KERNEL);
if (dev->priv == NULL) if (dev->priv == NULL)
dev->priv = kmalloc(sizeof(struct net_local), GFP_KERNEL); return -ENOMEM;
memset(dev->priv, 0, sizeof(struct net_local)); memset(dev->priv, 0, sizeof(struct net_local));
dev->open = el16_open; dev->open = el16_open;
...@@ -914,6 +915,8 @@ cleanup_module(void) ...@@ -914,6 +915,8 @@ cleanup_module(void)
else else
{ {
unregister_netdev(&dev_3c507); unregister_netdev(&dev_3c507);
kfree(dev_3c507.priv);
dev_3c507.priv = NULL;
/* If we don't do this, we can't re-insmod it later. */ /* If we don't do this, we can't re-insmod it later. */
free_irq(dev_3c507.irq); free_irq(dev_3c507.irq);
......
...@@ -249,6 +249,8 @@ int el3_probe(struct device *dev) ...@@ -249,6 +249,8 @@ int el3_probe(struct device *dev)
/* Make up a EL3-specific-data structure. */ /* Make up a EL3-specific-data structure. */
dev->priv = kmalloc(sizeof(struct el3_private), GFP_KERNEL); dev->priv = kmalloc(sizeof(struct el3_private), GFP_KERNEL);
if (dev->priv == NULL)
return -ENOMEM;
memset(dev->priv, 0, sizeof(struct el3_private)); memset(dev->priv, 0, sizeof(struct el3_private));
if (el3_debug > 0) if (el3_debug > 0)
......
...@@ -597,6 +597,8 @@ int ethdev_init(struct device *dev) ...@@ -597,6 +597,8 @@ int ethdev_init(struct device *dev)
struct ei_device *ei_local; struct ei_device *ei_local;
dev->priv = kmalloc(sizeof(struct ei_device), GFP_KERNEL); dev->priv = kmalloc(sizeof(struct ei_device), GFP_KERNEL);
if (dev->priv == NULL)
return -ENOMEM;
memset(dev->priv, 0, sizeof(struct ei_device)); memset(dev->priv, 0, sizeof(struct ei_device));
ei_local = (struct ei_device *)dev->priv; ei_local = (struct ei_device *)dev->priv;
ei_local->pingpong = ei_pingpong; ei_local->pingpong = ei_pingpong;
......
This diff is collapsed.
This diff is collapsed.
...@@ -263,8 +263,9 @@ int at1700_probe1(struct device *dev, short ioaddr) ...@@ -263,8 +263,9 @@ int at1700_probe1(struct device *dev, short ioaddr)
printk(version); printk(version);
/* Initialize the device structure. */ /* Initialize the device structure. */
dev->priv = kmalloc(sizeof(struct net_local), GFP_KERNEL);
if (dev->priv == NULL) if (dev->priv == NULL)
dev->priv = kmalloc(sizeof(struct net_local), GFP_KERNEL); return -ENOMEM;
memset(dev->priv, 0, sizeof(struct net_local)); memset(dev->priv, 0, sizeof(struct net_local));
dev->open = net_open; dev->open = net_open;
...@@ -660,6 +661,8 @@ cleanup_module(void) ...@@ -660,6 +661,8 @@ cleanup_module(void)
else else
{ {
unregister_netdev(&dev_at1700); unregister_netdev(&dev_at1700);
kfree(dev_at1700.priv);
dev_at1700.priv = NULL;
/* If we don't do this, we can't re-insmod it later. */ /* If we don't do this, we can't re-insmod it later. */
free_irq(dev_at1700.irq); free_irq(dev_at1700.irq);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment