[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