Commit 1f3d6740 authored by Linus Torvalds's avatar Linus Torvalds

This is a general announcement of the imminent code-freeze that will

hopefully make linux 1.0 a reality.  The plan has been discussed a bit
with various developers already, and is already late, but is still in
effect otherwise.

In short, the next version of linux (0.99.15) will be a "full-featured"
release, and only obvious bug-fixes to existing features will be applied
before calling it 1.0.  If this means that your favourite feature or
networking version won't make it, don't despair: there is life even
after beta (and it's probably not worth mailing me about it any more:
I've seen quite a few favourite features already ;-).

In fact, 1.0 has little "real meaning", as far as development goes, but
should be taken as an indication that it can be used for real work
(which has been true for some time, depending on your definition of
"real work").  Development won't stop or even slow down: some of it has
even been shelved pending a 1.0 already.

Calling it 1.0 will not necessarily make all bugs go away (quite the
opposite, judging by some other programs), but I hope it will be a
reasonably stable release.  In order to accomplish this, the code-freeze
after 0.99.15 will be about a month, and I hope people will test out
that kernel heavily, instead of waiting for "the real release" so that
any potential bugs can be found and fixed.

As to where we are now: as of this moment, the latest release is the 'r'
version of pl14 (aka "ALPHA-pl14r").  I've made ALPHA releases available
on ftp.funet.fi almost daily, and expect a final pl15 within a few more
days.  Testing out the ALPHA releases is not discouraged either if you
like recompiling kernels every day or two..

And finally: we also try to create a "credits" file that mentions the
developers of the kernel and essential linux utilities.  The credit file
compilator is jmartin@opus.starlab.csc.com (John A. Martin), and if you
feel you have cause to be mentioned in it, please contact him.

            Linus
parent ac27c05b
VERSION = 0.99
PATCHLEVEL = 14
ALPHA = q
ALPHA = r
all: Version zImage
......
......@@ -1574,7 +1574,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
*/
if (info->flags & ASYNC_CLOSING) {
interruptible_sleep_on(&info->close_wait);
return -ERESTARTSYS;
return -EAGAIN;
}
/*
......@@ -1632,7 +1632,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
current->state = TASK_INTERRUPTIBLE;
if (tty_hung_up_p(filp) ||
!(info->flags & ASYNC_INITIALIZED)) {
retval = -ERESTARTSYS;
retval = -EAGAIN;
break;
}
if (!(info->flags & ASYNC_CALLOUT_ACTIVE) &&
......
......@@ -10,5 +10,6 @@
#define MAP_PRIVATE 2 /* Changes are private */
#define MAP_TYPE 0xf /* Mask for type of mapping */
#define MAP_FIXED 0x10 /* Interpret addr exactly */
#define MAP_ANONYMOUS 0x20 /* don't use a file */
#endif /* _LINUX_MMAN_H */
......@@ -137,17 +137,20 @@ int do_mmap(struct file * file, unsigned long addr, unsigned long len,
asmlinkage int sys_mmap(unsigned long *buffer)
{
int error;
unsigned long fd;
struct file * file;
unsigned long flags;
struct file * file = NULL;
error = verify_area(VERIFY_READ, buffer, 6*4);
if (error)
return error;
fd = get_fs_long(buffer+4);
if (fd >= NR_OPEN || !(file = current->filp[fd]))
return -EBADF;
flags = get_fs_long(buffer+3);
if (!(flags & MAP_ANONYMOUS)) {
unsigned long fd = get_fs_long(buffer+4);
if (fd >= NR_OPEN || !(file = current->filp[fd]))
return -EBADF;
}
return do_mmap(file, get_fs_long(buffer), get_fs_long(buffer+1),
get_fs_long(buffer+2), get_fs_long(buffer+3), get_fs_long(buffer+5));
get_fs_long(buffer+2), flags, get_fs_long(buffer+5));
}
/*
......
......@@ -158,7 +158,7 @@ void * vmalloc(unsigned long size)
area->size = size + PAGE_SIZE;
area->next = NULL;
for (p = &vmlist; (tmp = *p) ; p = &tmp->next) {
if (size + (unsigned long) addr <= (unsigned long) tmp->addr)
if (size + (unsigned long) addr < (unsigned long) tmp->addr)
break;
addr = (void *) (tmp->size + (unsigned long) tmp->addr);
}
......
......@@ -800,6 +800,7 @@ static struct sk_buff *ip_glue(struct ipq *qp)
iph = skb->h.iph;
iph->frag_off = 0;
iph->tot_len = htons((iph->ihl * sizeof(unsigned long)) + count);
skb->ip_hdr = iph;
return(skb);
}
......
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