summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-05-27kernel: fix sysexec() error handling compiler problem, sysrendez() busyloopcinap_lenrek
the variables elem and file0 and commited are explicitely set to avoid that they get freed in ther waserror() handlers. but it turns out the compiler optimizes this out as he thinks the variables arent used any further. (the compiler is not aware of the waserror() / longjmp() semantics). rearrange the code to account for this. instead of using a local variable to check for point of no return (commited), we use up->seg[SSEG] to figure it out. for file0 and elem, we just rearrange the code. elem can be checked in the error handler if it was already assigned to up->text, and file0 is just free()'d after the poperror(). remove silly busy loop in sysrendez. it is not needed. dequeueproc() will make sure that the process has come to rest.
2013-05-26keep fpregs always in sse (FXSAVE) format, adapt libmach and acid files for ↵cinap_lenrek
new format we now always use the new FXSAVE format in FPsave structure and fpregs file, converting back and forth in fpx87save() and fpx87restore(). document that fprestore() is a destructive operation now. change fp register definition in libmach and adapt fpr() acid funciton. avoid unneccesary copy of fpstate and fpsave in sysfork(). functions including syscalls do not preserve the fp registers and copying fpstate from the current process would mean we had to fpsave(&up->fpsave); first. simply not doing it, new process starts in FPinit state.
2013-05-26add leading dot for explicit domain in webcookies, bump redirection limit to ↵cinap_lenrek
12 in webfs
2013-05-25graphics(2): remove non existing char *mousedir argument from geninitdraw ↵cinap_lenrek
(from sources / geninitdraw-no-mousedir patch)
2013-05-25libdraw: fix agefont crash when display == nil (from sources / ↵cinap_lenrek
agefont-nodisplay patch) If you run this: {for (i in `{seq 1 70000}) echo '½•α·'} | mc | wc mc will eventually suicide. The error comes from /sys/src/libdraw/font.c:/^agefont which assumes it has a display. Normally, this is set up by geninitdraw (usually via initdraw), but mc.c avoids that to avoid the screen redraws (flicker, at a minimum, but worse in long-running cases). graphics(2) does not prohibit this use, so I made the least intrusive change to make it work.
2013-05-25kernel: fix floating point exceptions (was broken by sse kernel changes)cinap_lenrek
the fpenv() instruction stores in x87 format, using mathstate() would interpret fpsave as FPssestate in case it was enabled! instead, pass the status word and fppc explicitely to mathnote() in matherror(). get rid of m->fpsavealign buffer, as we can just use FPssesave struct which has enougth padding so rounding up base pointer will not overflow.
2013-05-21kernel: cleanup /sys/src/9/pc/mkfile PORT= and OBJ= listscinap_lenrek
2013-05-21kernel: prevent alarm(2) from returning instantly when the tick timer wraps. ↵cinap_lenrek
(from erik quanstros alarmwrap patch)
2013-05-21wifi: properly size internal wifi input processing queuecinap_lenrek
we only used wifi->iq to process management frames only, now its also used to forward encrypted data frames, so size it accordingly.
2013-05-21mergecinap_lenrek
2013-05-22mergejpathy
2013-05-22sse kernel support (sources)jpathy
2013-05-21add 6(a|l) sse support to 8(a|l)jpathy
2013-05-21kernel: make allocb() wait instead of panic() when possiblecinap_lenrek
as long as our process doesnt hold any locks or ilocks, we can try to wait for the memory to become available instead of panicing.
2013-05-20uarti8250: print on malloc failurecinap_lenrek
2013-05-20mergecinap_lenrek
2013-05-20pcuart: malloc error handling, cleanupcinap_lenrek
2013-05-20kbmap/ua: fix uppercase ьftrvxmtrx
2013-05-20devether: handle malloc error in etherprobe()cinap_lenrek
2013-05-20wifi: handle malloc errors in wifiattach()cinap_lenrek
2013-05-20use resrcwait() when waiting for memory to become availablecinap_lenrek
use resrcwait() when waiting for memory to become available. randomize the sleep time and properly restore old process status in case tsleep() gets interrupted.
2013-05-19devsd: don't raise Enomem error if sdmalloc() fails, instead wait for the ↵cinap_lenrek
memory to become available filesystems do not handle i/o errors well (cwfs will abandon the blocks), and temporary exhaustion of kernel memory (because of too many i/o's in parallel) causes read and write on the partition to fail. i think it is better to wait for the memory to become available in this case. the single allocation is at max SDmaxio bytes, which makes it likely to become available. if we havnt even enought fo that, then rebooting the machine would be the best option. (aux/reboot)
2013-05-19kbmap/ru: fix uppercase ьftrvxmtrx
2013-05-18nusb/kb: simplify repeat logic as scancode now contains the info about esc1 ↵cinap_lenrek
extension
2013-05-18nusb/kb: oops, fixupftrvxmtrx
2013-05-18nusb/kb: use a flag to indicate extended code; fix the most unix-friendly ↵ftrvxmtrx
key on se/fi kbd layout
2013-05-15faces: just say no to dejavustanley lieber
2013-05-14netaudit: check if ipgw= is an ip addresscinap_lenrek
2013-05-14make clear that the "ipgw" attribute has to be an ip addresscinap_lenrek
2013-05-14fortunes: Subject: [9fans] [gsoc] Dart9Pstanley lieber
2013-05-13rio: place text at beginning of line before cursor and host pointcinap_lenrek
2013-05-13rio: fix completion and readback and make it possible to complete historycinap_lenrek
2013-05-12toppm: no need to initialize errppatience0
2013-05-12toppm: checking for err is useless; it was initialized to nil earlierppatience0
2013-05-12toppm: multichan converts to RGB24, not RGBVppatience0
2013-05-12writeppm: replace WriteGIF by WritePPMppatience0
2013-05-13writeppm: simplifycinap_lenrek
2013-05-12writeppm: for bitmaps, 1 is black, 0 is whiteppatience0
2013-05-12toppm: fix styleppatience0
2013-05-12toppm: add -r flag for raw ppmppatience0
2013-05-12writeppm: fix tab/spacescinap_lenrek
2013-05-12mergecinap_lenrek
2013-05-12devaoe: avoid panic on malloc() error by using smalloc() instead.cinap_lenrek
2013-05-12file: recognize bitmap and graymap ppm imagesppatience0
writeppm: do not print extra space after each pixel for graymap formats to save space
2013-05-12ether8169: do phywakeup magic only for specific mac versions (from openbsd)cinap_lenrek
2013-05-12ether8169: and phy wakeup and reset phy before enabling auto negotiationcinap_lenrek
this brings up the 8198B on BurnZeZ's ASRock Z68 Professional Gen3 board.
2013-05-11devmnt: fix mount device leak and allocation error handling in mntversion()cinap_lenrek
the fist problem is that qopen() might return nil and that kstrdup() will sleep, so we should try to avoid holding the mntalloc lock. so we move the kstrdup() and qopen() calls before the Mnt allocation, and properly recover the memory if we fail later. the second problem was that we error(Eshort) after we already created the Mnt when returnlen < sizeof(f.version). this check has to happen *before* we even attempt to allocate the Mnt structures. note that we only copy the version string once everything is in the clear, so the semantics of the user buffer not being modified in case of error is not changed. a little cleanup in muxclose(), getting rid of mntptfree()...
2013-05-11sdide: add Intel SERIES 6 SATA controller pci idscinap_lenrek
2013-05-11acme: apply nemos acmediskread patch (from sources)cinap_lenrek
pread does not guarantee that it would read all the data asked for. But acme usage of disk assumes that. This issues as many reads as needed to make acme work when read returns less data than it wanted.
2013-05-11ape: change types from unsigned long to void* for rendezvous() and ↵cinap_lenrek
segattach()/segbrk() (erik), use uniqueue rendezvous tags for _buf and listen