summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-01-22sdiahci: fix hardcoded 512 byte sector sizecinap_lenrek
2014-01-21kernel: fix ulong abuse in xalloccinap_lenrek
2014-01-20kernel: convert putmmu() to uintptr for va and pacinap_lenrek
2014-01-20kernel: various cleanupscinap_lenrek
2014-01-20malloc(2): update alloctag typescinap_lenrek
2014-01-20kernel: apply uintptr for ulong when a pointer is storedcinap_lenrek
this change is in preparation for amd64. the systab calling convention was also changed to return uintptr (as segattach returns a pointer) and the arguments are now passed as va_list which handles amd64 arguments properly (all arguments are passed in 64bit quantities on the stack, tho the upper part will not be initialized when the element is smaller than 8 bytes). this is partial. xalloc needs to be converted in the future.
2014-01-20malloc: change malloc and realloc tag types to uintptrcinap_lenrek
2014-01-20ape: remove local copy of memccpy()cinap_lenrek
2014-01-19kernel: fix declaration of getcallerpc()cinap_lenrek
2014-01-19kernel: replace BY2WD in scanline width calculation to sizeof(ulong) like ↵cinap_lenrek
libmemdraw
2014-01-17libmach: fix wrong operand order of MOVLQSX instruction disassemblycinap_lenrek
2014-01-17Corrected some man pages.aap
2014-01-14devdraw: fix memory corruption reading draw ctl filecinap_lenrek
when user does read of exactly 12*12 bytes on draw ctl file, the snprint() adds one more \0 byte writing beyond the user buffer and corrupting memory. fix this by not snprint()ing the final space and add it manually.
2014-01-13mergemischief
2014-01-13hpost: fix Content-Type parameter separator for multipart/form-data POSTsmischief
2014-01-12add /lib/uriel; delete fortunesstanley lieber
2014-01-12added a segment for segattach(2) that gives access to the raspberry pi's ↵Matthew Veety
gpio header.
2014-01-12etheryuk: fix lockups (thanks burnzez for testing)cinap_lenrek
according to a comment in linux driver, reading Isrc2 register caused interrupts to be disabled. we used to read Isrc2 in ifstat() and it was confirmed that reading ifstat locks up ethernet. removing the Isrc2 read in ifstats, and also reenable interrupts after reading Isrc2 when the interrupt was not for us. (this is from the linux driver) in replenish(), set ring software write pointer (Sring.wp) *before* the hardware write index register. otherwise rx() could get status notification for completed receive but wont find the rx descriptor in the ring. handle uint wrap arround when calculating ring fill count and remaining count.
2014-01-11netif: fix wrong qid in 3rd level stats/ifstats files (thanks burnzez)cinap_lenrek
the stats and ifstats files in the 3rd level of a netif are not per connection, but for the interface. this made fstat fail for /net/ether0/N/*stats where N > 0 as the NETID() bits in the qid didnt compare.
2014-01-11rio: properly handle initial wrap arround in wlook()cinap_lenrek
2014-01-11rio: implement "look" (thanks lf94)cinap_lenrek
2014-01-10kernel: fix fairshare formula in comment (thanks erik)cinap_lenrek
2014-01-10mixfs: make mixbuffer addition atomiccinap_lenrek
serialize mixing with spinlock to make the addition on the mixbuffer samples atomic.
2014-01-10mergecinap_lenrek
2014-01-10libdraw: cleanup string() and stringwidth()cinap_lenrek
getting rid of the goto at the end of the while loop by moving the if(subfontnae) case before the cachechars() call.
2014-01-08winwatch: this is not about sanity. rows might be negativemischief
2014-01-08winwatch: prevent divide by zero if the window height is too smallmischief
2014-01-07mothra: remove versioncinap_lenrek
2014-01-07libframe: fix _frcanfit() for zero width runes, simplify chopframe()cinap_lenrek
2014-01-06weather: trim garbage from outputstanley lieber
2014-01-06libframe: avoid _frcanfit() call in frdelete()cinap_lenrek
no need to calculate number of runes to fit in box when box contains no runes.
2014-01-06libdraw: fix stringwidth problemscinap_lenrek
cachechars() used to skip over characters on its own when loadchar() could not find the character or a PJW replacement. this resulted in wrong width calculation. now we just return and handle the case inside _string and _stringwidth. fix subfont leak in stringwidth() remove annoying prints in stringwidth()
2014-01-05mergecinap_lenrek
2014-01-05rio: make scrollwheel handling consistent with samcinap_lenrek
scrollwheel now works proportional to y mouse position. special case is when shift is hold down. then scrollwheel will work like before and scroll one line up or down.
2014-01-04fortunes: This is Go.stanley lieber
2014-01-039fs: add atom and atomdump (fix the mount spec)cinap_lenrek
2014-01-039fs: add atom alias for atom.9atom.orgcinap_lenrek
2014-01-03kernel: simplify procalarm()cinap_lenrek
2014-01-03alarm: skip timed out alarms when inserting in procalarm() (thanks erik)cinap_lenrek
from erik quanstros 9fans post: i think the list insertion code needs a single-read test that f->alarm != 0. to prevent the 0 from acting like a fencepost. e.g. trying to insert -10 into list -40 -30 0 -20. if(alarms.head) { l = &alarms.head; for(f = *l; f; f = f->palarm) { >> fw = f->alarm; >> if(fw != 0 && (long)(fw - when) >= 0) { up->palarm = f; *l = up; goto done; } l = &f->palarm; } *l = up; }
2014-01-02ps2mouse: retry disable packet streaming command 0xf5cinap_lenrek
disabling mouse packet streaming command 0xf5 can fail when a packet is currently transmitted. this can be seen when one moves the mouse while running: while(){echo accelerated >/dev/mousectl; sleep 0.5}
2014-01-02ps2mouse: disable packet streaming during reprogrammingcinap_lenrek
sometimes, ps2 mouse setup failed on thinkpads during boot. disabling packet streaming while we program the mouse seems to fix the issue.
2014-01-01mergecinap_lenrek
2014-01-01kernel: nil check, exited procs handling in postnote()cinap_lenrek
make sure not to dereference Proc* nil pointer. this can potentially happen from devip which has code like: if(er->read4p) postnote(er->read4p, 1, "unbind", 0); the process it is about to kill can zero er->read4p at any time, so there is the possibility of the condition to be true and then er->read4p becoming nil. check if the process has already exited (p->pid == 0) in postnote() under p->debug qlock.
2014-01-01proc(3): the args file is writable, not read only (thanks qrstuv)cinap_lenrek
2014-01-01kernel: remove error label in pgrpnote() arround postnotecinap_lenrek
postnote does not raise error, so the error label is not neccesary.
2014-01-01kernel: fix alarm postnote racecinap_lenrek
when alarmkproc is commited to send the alarm note to the process, the process might have exited already, or worse, being reused for another process. pexit() zeros p->alarm at the beginning, but the kalarmproc() might read p->alarm before pexit() zeroed it, decide to send the note, then get preempted and pexit() releases the proc. once kalarmproc() is resumed, the proc might be already something different and we send the note to the wrong thing. we now check p->alarm under the debug qlock. that way, pexit() cannot make progress while we test the condition. remove the error label arround postnote(). postnote does not raise error.
2013-12-31devproc: fix noteid permission checks for nonecinap_lenrek
make sure noteid is valid (>0). prohibit changing note group of kernel processes. this is also checked for in pgrpnote(). prevent "none" user from changing its note group to another "none" sessions. this would allow him to send notes other none processes other than its own.
2013-12-31kernel: check for error label stack underflow in nexterror()cinap_lenrek
2013-12-31mothra: mouse scrollwheel behave the same as in samstanley lieber
2013-12-31kernel: halt idle processors on mp system by default (from sources)cinap_lenrek
one can add: int idle_spin = 1; in the kernel configuration to enable the old behaviour. see the comment at idlehands().