[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
mint-1.11h1
I've put up a new re-sync patch...
I don't know how useful this will be, but a few people wanted me to do
this.
This time I had to be a bit more creative... I've messed with the
sources quite a bit. Therefore it can very well be that I missed one
patch or the other. (However, if you don't find your patch in the
changes list below the reason could also be that you re-submitted an
1.10h9 patch which were inherited from the merged sources of 1.11beta1
and 1.10h9.)
I haven't applied Wolgang Lux' biosfs.c patches, as those seemed to
address the same problems like Juergen's earlier patches. -- I
combined the various f_delete() solutions; I prefixed Evan's cookie
definitions with "COOKIE_" (in cookie.h). -- I hope you like what I
did. See the log of changes below for details.
Now available via ftp from ftp.inf.tu-dresden.de:
pub/atari/Mint/Kernel/mint-1.10h9-1.11h1-diffs.gz
Diffs against the kernel patched with the 1.10h patches
pub/atari/Mint/Kernel/mint-1.10-1.11h1-diffs.gz
Diffs against the virgin 1.10 kernel.
pub/atari/Mint/Kernel/mint-1.11beta1-1.11h1-diffs.gz
Diffs against a virgin 1.11-BETA1 kernel
You can also get this via email by sending a message to
ftpmail@ftp.inf.tu-dresden.de containing this text in the message body:
send pub/atari/Mint/Kernel/mint-1.10h9-1.11h1-diffs.gz
or
send pub/atari/Mint/Kernel/mint-1.10-1.11h1-diffs.gz
or
send pub/atari/Mint/Kernel/mint-1.11beta1-1.11h1-diffs.gz
After my .sig are the last few commit messages.
Bye,
Michael
--
Email: hohmuth@inf.tu-dresden.de
WWW: http://www.inf.tu-dresden.de/~mh1/
**************************************
merge v1_11_beta into the main trunk
**************************************
From: Julian Reschke <reschke@GOEDEL.UNI-MUENSTER.DE>
Subject: Dpathconf diffs
Message-Id: <9408100953.AA25615@math.uni-muenster.de>
biosfs.c, dosfile.c, file.h, pipefs.c, procfs.c, proto.h, shmfs.c, signal.c,
tosfs.c, unifs.c:
implement a way to find out which parts of an XATTR structure
reflect 'real' values and which parts are only emulated:
define two new opcodes for Dpathconf()
**************************************
From: Torsten Scherer <itschere@techfak.uni-bielefeld.de>
Subject: ok, the biosfs_chmode() story in 1.11...
Message-Id: <9408120800.AA26193@kassandra.techfak.uni-bielefeld.de>
biosfs.c:
fix bug: the owner of a tty wasn't allowed to
change its mode, so that tools like `mesg' didn't work
**************************************
Message-Id: <m0qYtQm-0004pkC@uss.lonestar.org>
From: evanlang@uss.lonestar.org (Evan Langlois)
Subject: mint 1.11 patch
biosfs.c, dosdir.c, file.h, filesys.c, mint.h, pipefs.c, procfs.c,
proto.h, shmfs.c:
and added a new flag to all file systems
included in the kernel except unifs and tosfs. These changes
are the file cookie cache. It speeds lookup operations to twice
the speed (on my system anyway). The flag mentioned above tells
the system not to cache the file cookies for that system (I found
that a background top could eat up lots of cookies in the proc
filesystem, so I decided not to cache /proc, /pipe, /dev, or
/shm). It doesn't cache NO_PARSE systems either. Everything for
this is ifdef'd. You must compile with -DFCOOKIE_CACHE to use
this code.
#define FCOOKIE_CACHE in mint.h, making this the default --hohmuth
**************************************
Message-Id: <m0qYtQm-0004pkC@uss.lonestar.org>
From: evanlang@uss.lonestar.org (Evan Langlois)
Subject: mint 1.11 patch
filesys.c makefile mint.h:
changed DIRSEP so that a Unix slash is accepted by all file
systems except TOSFS (and maybe other NO_PARSE systems). This
has been well tested - it makes things easier with no side effects
that I can tell.
#ifdef'd DIRSEP_SLASH this change (this is off by default) --hohmuth
**************************************
From: evanlang@uss.lonestar.org (Evan Langlois)
Subject: mint 1.11 patch
Message-Id: <m0qYtQm-0004pkC@uss.lonestar.org>
main.c:
add redirection for AUX in mint.cnf
**************************************
From: evanlang@uss.lonestar.org (Evan Langlois)
Subject: mint 1.11 patch
Message-Id: <m0qYtQm-0004pkC@uss.lonestar.org>
cookie.h, dos.c, main.c, makefile, proto.h, cookie.c (new):
added the s_cookie() call for reading system cookie
information. This is mainly the cookie jar, but also the
200Hz timer, and possibly other info if you decide to support
it. This code is a bit buggy in that it needs a proper sanity
check (see code) and the jar resizing doesn't work. The code
worked with Malloc() before I put it in the kernel, but I
guess I'm not allocating the new memory region properly.
Main.c and cookie.h were changed for readability - no more
treating cookie tags as a string. Cookie.h lists the values
for the cookies - and could be expanded into a "master
listing" of cookies.
prefixed cookie definitions in cookie.h with "COOKIE_" --hohmuth
added prototypes for local functions in cookie.c --hohmuth
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408131636.AA00124@jelal.north.de>
bios.c, biosfs.c, console.c, cookie.h, dosfile.c, file.h, main.c,
mint.h, proc.h, proto.h, sproto.h, syscall.spp, timeout.c, tty.c,
xbios.c:
add TIOCHPCL (hang up on close), TIOCCAR (require carrier, SIGHUP),
TIOCWONLINE, and some more to also do BRKINT, VMIN, VTIME...
simple RSVF cookie support, pass thru TIOC[IO]BAUD, FIONREAD (SCC) and
some others (but not the callback stuff, use select, TIOCCAR etc instead)
and add a few check_sigs after killgroup and some more fixes.
yes you can login over modem2 with 38400bps now and have it hang up
properly and SIGHUP your shell when disconnected, just don't forget
security on MiNT is still a joke... :) i think the only thing thats
still really missing now is a real cooked mode i.e. raise SIGQUIT
when ^\ received, don't wait until someone tries to read it.
(workaround: go thru a pty, script /dev/null, telnet 127.1...)
there is a #define MDM0_IOCTLS in tty.c, if you leave that in you can
use the stty that comes with mdm0 to change local mode and hupcl until
i have patches for mintlib etc.
make the RSVF cookie stuff work with Evan's new cookie scheme --hohmuth
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408131636.AA00124@jelal.north.de>
pipefs.c:
pipe_read/write: save some context changes, don't wake(select) other
end when the buffer hasn't changed, otherwise they only wake up and
go to sleep again. (or am i confused? tty response looks a bit
faster now...)
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408131636.AA00124@jelal.north.de>
pipefs.c:
SIGHUP pty slaves when master end closes... or would this break
multitos binaries too? :/
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408131636.AA00124@jelal.north.de>
proc.c:
fix another sleep deadlock, checkkeys/checkbttys can wake() the
condition curproc just wants to sleep for... and if there are other
processes ready only reset proc_clock when really going to sleep.
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408131636.AA00124@jelal.north.de>
dosmem.c, main.c, mem.h:
another GEM crash workaround... :) (and give processes a bit more
time for shutdown) if you use execgem also add the F_ALLOCZERO bit to
its create-basepage Pexec, you can check a running process memflags
with Julians ps (ps -wvx).
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408131636.AA00124@jelal.north.de>
tosfs.c:
turn the INODE_PER_CRC code off (once again)
**************************************
From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Subject: Re: Talarm() problem
Message-Id: <9408150837.AA15092@issan.informatik.uni-dortmund.de>
timeout.c:
Here is a solution to the timeout problem. The strategy is as follows:
- when a timeout expires instead of disposing it, put it on a special
list of expired timeouts
- in add[root]timeout first check this list if there is a timeout that
has the same process and function attached and reuse it
- cancel[root]timeout looks at this list, too, as well as
cancelalltimeouts
I think this is the only way to reliably prevent cancel[root]timeout
from cancelling the wrong timeout. Since timeouts are normally used
for periodically calling a certain function, add[root]timeout will
always reuse the same timout structure and thus remove it from the
list of expired timeouts. I have verified this by adding a function to
print out this list, and everytime i checked it was empty.
Btw, what's the purpose of the wierd cast in timout()? There is no
place where the exact value of kintr matters, just if it is zero or
not. I have changed it to a simple assignment.
**************************************
From: Torsten Scherer <itschere@techfak.uni-bielefeld.de>
Subject: Re: Permissions in / are 777
Message-Id: <9408160822.AB09978@pirol.techfak.uni-bielefeld.de>
unifs.c:
prevent the "normal" user from removing/creating links in u:/
**************************************
From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Subject: MiNT 1.11 BETA
Message-Id: <9408160833.AA24823@issan.informatik.uni-dortmund.de>
quickmov.spp:
add memcpy alias for gcc >= 2.5.8, which uses this
instead of the obsolete bcopy
**************************************
From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Subject: MiNT 1.11 BETA
Message-Id: <9408160833.AA24823@issan.informatik.uni-dortmund.de>
dosdir.c:
don't follow links in Fchown (Un*x systems that follow
links in chown nomally provide lchown for symlinks)
**************************************
From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Subject: MiNT 1.11 BETA
Message-Id: <9408160833.AA24823@issan.informatik.uni-dortmund.de>
procfs.c, signal.c:
discard the saved interrupt frame when restarting with
PTRACEGO, etc., so that the 68030 doesn't try to restart after a bus
error.
always pass the signal to the tracer even if it is blocked
or ignored in the traced process.
**************************************
From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Subject: MiNT 1.11 BETA
Message-Id: <9408160833.AA24823@issan.informatik.uni-dortmund.de>
signal.c:
implement sigcontext, passed as third argument to signal
handler, which can modify it.
**************************************
From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Subject: MiNT 1.11 BETA
Message-Id: <9408170839.AA29372@issan.informatik.uni-dortmund.de>
main.c:
fix type wrt opening /dev/midi
**************************************
From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Subject: MiNT 1.11 BETA: optimize loadavg calculation
Message-Id: <9408160832.AA24818@issan.informatik.uni-dortmund.de>
Subject: Re: MiNT 1.11 BETA: optimize loadavg calculation
Message-Id: <9408170838.AA29365@issan.informatik.uni-dortmund.de>
intr.spp, proc.c, proto.h:
optimize the loadavg calculation a bit:
- make uptimetick short instead of long, the same for some more vars
in proc.c
- in the 200hz timer, just decrement uptimetick
- in the vbl intr if uptimetick < 0 call calc_load_average
- in calc_load_average just add 200 to uptimetick, this way we never
lose an interrupt (unless vbl is blocked for more than 32768/200 =
163 seconds :-)
- uptime_vbl deleted, checkbttys_vbl moved to intr.spp
- gen_average changed to not to use that many arguments, only three
are needed
There are some more optimisations in intr.spp to save some cycles.
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408171903.AA00235@jelal.north.de>
biosfs.c, tty.c:
a few more bugfixes
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408171903.AA00235@jelal.north.de>
bios.c, biosfs.c, main.c:
improve /dev/midi performance, add a bios_tty struct so reads can
go to sleep and use VMIN etc, allow writes to busy-wait for 2 hz_200
ticks before a yield (BIOS midi writes are not interrupt driven,
only reads...) fix select for write, always return true unless
TS_HOLD (same reason, there is nothing that would wake them and
since there is no other kind of flow control...) and inc aux_cnt
in main so a `normal' open /dev/midi gets a re-initialized tty like
on other ports.
**************************************
From: Juergen Lock <nox@jelal.north.de>
Subject: Re: MiNT 1.11 BETA
Message-Id: <9408171903.AA00235@jelal.north.de>
tty.c:
use t_flushc, default ^o.
(or should UNDEF still be default i.e. == off?)
**************************************
From: Kay Roemer <roemer@informatik.uni-frankfurt.de>
Subject: Mint 1.11 beta: ikill()
Message-Id: <9408202225.AA03329@hera.rbi.informatik.uni-frankfurt.de>
signal.c:
Mint 1.11's current version ok ikill() is pretty useless, a device driver
could use kerinfo->dostab->p_kill with the same effect.
A device driver should be able to send signals to processes on behalf
of any process (at interrupt time or in an addroottimeout timeout function
any process may be active!).
You may think of this as a security hole but remember only privileged
processes can access the struct kerinfo using Dcntl (DEV_INSTALL) etc.
Second, due to the limited time the system should spend in interrupt
handlers/timeout function calls checksigs() should not be called from
ikill().
This patch removes these problems.
**************************************
From: Kay Roemer <roemer@informatik.uni-frankfurt.de>
Subject: Mint 1.11 beta: fselect bug
Message-Id: <9408202226.AA03339@hera.rbi.informatik.uni-frankfurt.de>
dosfile.c:
Unfortunately Mint 1.11's collision detection code in Fselect doesn't
work at all. The following patch fixes this, implements collision
detection for exceptional conditions and add's a missing call to
dev->unselect.
**************************************
From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Subject: killgroup security hole
Message-Id: <9408230844.AA26303@issan.informatik.uni-dortmund.de>
bios.c, debug.c, dossig.c, pipefs.c, proto.h, signal.c, tty.c:
Pkill has a security hole big enough to drive a truck through :) You
can kill any process you like with it, you just have to know (or
guess) its process group and call Pkill with -pgrp! There are no
access checks in killgroup!
The fix is to add an additional parameter to killgroup that tells it
if the signal is generated by the kernel, otherwise unauthorized
accesses are denied.
**************************************
From: ibmpa!rio.heidelbg.ibm.com!lux@ibminet.awdpa.ibm.com (Wolfgang Lux)
Subject: MiNT patches
Message-Id: <9408231007.AA20275@rio.heidelbg.ibm.com>
dosdir.c, dosfile.c, filesys.c, mint.h, proto.h:
- Changed f_chown, so a user can change the group of a file
to any of his supplementary groups, not only the effective group id.
Also added one more "posix"ism; if the file has set-uid or set-gid bit
set these bits are reset when f_chown is called by a non-root process
and the file is not a directory.
- Added BSD-like setgid and sticky bit
semantics for directories. Setgid semantics are implemented in do_open
and d_mkdir, so that any file or directory that is created in a
directory whose setgid bit is on, will be created with a group id
equal to that of the directory instead of the process' effective group
id. (This complements nicely the existence of supplementary groups
:-). Sticky bit semantics prevent any non-root process from deleting a
file or directory in a directory with sticky bit on, which the process
doesn't own. This is implemented d_delete, f_delete and f_rename(!).
As a side effect I modified the dir_access routine, so that it returns
the file mode bits in a (new) third parameter.
**************************************
From: ibmpa!rio.heidelbg.ibm.com!lux@ibminet.awdpa.ibm.com (Wolfgang Lux)
Subject: MiNT patches
Message-Id: <9408231007.AA20275@rio.heidelbg.ibm.com>
nalloc2.c:
restore the old check whether the size of a block matches the
requested size.
The code I fixed always checks for enough size to save the requested
memory plus the size of a block header, however this made the test
whether to unlink the block completly always fail. I restored the old
behaviour (which has worked for me in (a fixed) MiNT 1.09 for around
half a year without problems).
**************************************
From: ibmpa!rio.heidelbg.ibm.com!lux@ibminet.awdpa.ibm.com (Wolfgang Lux)
Subject: MiNT patches
Message-Id: <9408231007.AA20275@rio.heidelbg.ibm.com>
xbios.c:
make the mapin function a local function in xbios.c to avoid
any further (mis)uses of this function outside xbios.c. (There don't
seem to be any useful applications to this function outside of
xbios.c, anyway :-)
**************************************
From: ibmpa!rio.heidelbg.ibm.com!lux@ibminet.awdpa.ibm.com (Wolfgang Lux)
Subject: MiNT patches
Message-Id: <9408231007.AA20275@rio.heidelbg.ibm.com>
tty.c:
On all Un*x systems I know, the werase character deletes the
previous even if there are white space characters between the cursor
and the previous word. In MiNT the word was only deleted if the cursor
was at the end of the word. I fixed this behaviour to be like Un*x.
**************************************
console.c, dosfile.c, tty.c:
remove references to "extern char *vt52xkey" where not needed,
and make vt52xkey local to tty.c again --hohmuth
**************************************
dosfile.c, mint.h:
make the "Fcreate() works on existing pipes/ptys" code
switch-off-able by #undef'ing CREATE_PIPES in mint.h --hohmuth
**************************************
README.1ST: update. --hohmuth