summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-12-02/lib/greg: Ebios[]cinap_lenrek
2012-12-02ape: fix buffer overflow in _envsetup()cinap_lenrek
2012-12-02sdiahci: fix staggered spinup wait loop, fix confusioncinap_lenrek
setting Asud in the cmd register is not needed, because Apwr is (Asud|Apod) already. the problem really was that the drive comes up with sstatus Spresent (001), so we never spun it up because (p->sstatus & Sphylink) == 0 was never met (Sphylink being a mask (011) overlaping Spresent bit). the spinup wait loop has to run only for the staggered spinup case (h->cap & Hss) and it should wait for the drive to be detected by the phy, not just cold presence detect.
2012-12-02sdiahci: make drive dvd drive spinup work, add *ahcidebug= boot parametercinap_lenrek
thinkpad r400 dvd drive was not recognized. port status indicated present device but no Sphylink because the device did not spin up. setting the Asud bit in ahciconfigdrive() made it come up clean. add scsciverify() call in iaverify() for atapi inquiry. keep in some of the debug prints and add a *ahcidebug= boot parameter to enable them.
2012-11-30nusb/kb: fix 5ms sleep polling in repeatproc, notegroup, cleanupcinap_lenrek
fix repeatproc timeout handling, add constants for Kbdelay and Kbrepeat. set procname so one knows which is keyboard and which is mouse and on what endpoints they work. 9front's /dev/mousein and /dev/kbdin allow multiple opens, so theres no need for the refcounted Kin structures. spawn the worker procs in ther own note group, so they wont get killed on interrupt in the original notegroup.
2012-11-30upas/ned: fix M commandcinap_lenrek
2012-11-30nusb/kb: add support for evoluent vertical mousecinap_lenrek
2012-11-28upas/fs: fix tlsClient() memory leakscinap_lenrek
2012-11-28usbehci: route ports to all ehci controllers, not just the firstcinap_lenrek
i belive the seizing up was a side effect of broken bios handover. ehci will not work on the other controllers if we do not route the ports to them.
2012-11-28audiohda: add pci vid/did for lenovo thinkpad x230tcinap_lenrek
2012-11-27upas: handle Bcc: headercinap_lenrek
when -8 flag is given, upas/marshal override To:, Cc: and Bcc: headers. add -B option for Bcc. it is also now valid to pass recipient list on upas/marshal arguments and have -8 flag set. make nedmail and /rc/bin/mail call upas/marshal with -8 now to make it effective.
2012-11-27reverting string "general purpose password" braindamagecinap_lenrek
2012-11-27passwd: improved messageglenda
2012-11-26sysinfo: -m handle e-mail from unconfigured systemsstanley lieber
2012-11-25nusb/kb: skip 0x01 lead byte hack, you dont wanna knowcinap_lenrek
apparently, some mouse send constant 0x01 byte before normal 4 byte mouse packet. this is known in openbsd/freebsd as UQ_MS_LEADING_BYTE quirk.
2012-11-25usbehci: fix broken bios takeovercinap_lenrek
bios takeover was broken. bad Ceecpmask (was 8, should be 0xFF) causing it to miss the legacy control ecap and properly take overship of the controller. also the order seems wrong, we have to takeover before we do anything with the controller. remove the pci config space 0xc0 = 0x2000 write. this the uhci legacy register. its not anywhere in the ehci spec.
2012-11-24usbohci: revert td overrun error handling change from sourcescinap_lenrek
regarding the ohci spec, a overrun td might supply a full packet of data. this change seemed to have caused nusb/kb to fail with getting spurious zero byte reads. reverting for now.
2012-11-24nusb/kb: zero reads, error handling, priority, cleanupcinap_lenrek
handle short reads as errors and retry. this can happen on ohci and some ps2 to usb converter. it might'v deen caused by a recent change on sources handling td overrun differently. fix error handling. have to check f->ep == nil after recovery and check packet size. also, use f->ep->dfd instead of ptrfd and kbdfd as it might be different after recovery. make a setleds() error non fatal. boost process priority for keyboard and mouse worker processes. cleanup: use single write() in putmod(), improve error reporting.
2012-11-24usbohci: implement smm handover, timeouts, donehead dequeue.cinap_lenrek
implement SMM emulation driver handover in ohcireset(). this fixes hang and defunct internal keyboard problems on a acer notebook. dont spin forever waiting for the controller on soft reset in init(). check both, donehead pointer *and* interrupt status for processed td event (Wdh) similar to the ohci spec example for processed tds and unlink immidiately. acknowledge *all* the interrupt status bits before masking. mask out unhandled events. various stuff: check for christmas light interrupt status (cardbus controller removed?) add (missing?) break for Tddataovr error case in qhinterrupt(). (changed on sources, not clear why?) mask interrupt events on shutdown() (from sources).
2012-11-23ratrace: fix race conditions and range checkcinap_lenrek
the syscallno check in syscallfmt() was wrong. the unsigned syscall number was cast to an signed integer. so negative values would pass the check provoking bad memory access from kernel. the check also has an off by one. one has to check syscallno >= nsyscalls instead of syscallno > nsyscalls. access to the p->syscalltrace string was not protected from modification in devproc. you could awake the process and cause it to free the string giving an opportunity for the kernel to access bad memory. or someone could kill the process (pexit would just free it). now the string is protected by the usual p->debug qlock. we also keep the string arround until it is overwritten again or the process exists. this has the nice side effect that one can inspect it after the process crashed. another problem was that our validaddr() would error() instead of pexiting the current process. the code was changed to only access up->s.args after it was validated and copied instead of accessing the user stack directly. this also prevents a sneaky multithreaded process from chaning the arguments under us. in case our validaddr() errors, we cannot assume valid user stack after the waserror() if block. use up->s.arg[0] for the noted() call to avoid bad access.
2012-11-22libmach: fix file permission for map.ccinap_lenrek
2012-11-22hgfs: work in progress stuff...cinap_lenrek
2012-11-21hgfs: remove bogus OTRUNC mode from create() call in fmktemp()cinap_lenrek
2012-11-21hgfs: various improvementscinap_lenrek
lazily close revlog files and keep up to 8 revlogs arround. also cache the latest extracted file descriptor of a revision in the revlog. this avoids the quite expensive reextracting/patching when we reopen the same file revision. dont use the racy mktemp()/create, instead create a uniqueue name and create with OEXCL. this also avoids a bunch of access() calls. fix eof case and use pread() in fcopy() to avoid the seeks. dont modify changelog temp file but simulate trailing newline instead.
2012-11-21derp: handle file type changescinap_lenrek
handle cases when files become directories or directories become files.
2012-11-18hjfs: eleminate seek syscallscinap_lenrek
reduce syscalls by using pread/pwrite instead of seek/read/write.
2012-11-18mergecinap_lenrek
2012-11-18mergecinap_lenrek
2012-11-18hjfs: ORCLOSE parent check, estrdup / erealloc, CHFNOPERM consistencycinap_lenrek
check for write premission in the parent directory for open with ORCLOSE. honor CHFNOPERM not just in chancreat(), pikeshedd the error handling. added estrdup()/erealloc() that call sysfatal instead of returning nil.
2012-11-18hgfs: work in progress stuffcinap_lenrek
2012-11-18mergecinap_lenrek
2012-11-18hjfs: fix dump / createcinap_lenrek
getdent() introduced a bug as the qid check fails in the case when we walk to DUMPROOTQID, but get ROOTQID in the directory instead. newentry() getblk(..., GBCREATE) caused the whole directory to get dumped until it hit a free slot. we cannot do this because this changes the addresses of Dentries of files but doesnt update the loctree. this caused the bogus walks when we hit a different directory than we expected. what we do now is the following: newentry() was changed to never dump anything. it will just read the directory and return a the address of a free slot or create a new block having space for one. chancreat() then makes a loc in the loctree for the free slot, drops the dirent buffer and calls willmodify() on the new slot. this will dump the block containing the slot (and possible other slots) and updates the loctree to the new version. after that, chancreate() modifies the slot filling the Dentry. there should be no race, as newentry() skips slots that have a loc in the loctree. theres one case where newentry() can dump the block immidiately when it is called from dump. added new parameter for that and documented in the comment. createuserdir() was simplified by just calling chancreat(). to get arround the permission check, a new per channel flag CHFNOPERM was added.
2012-11-17fortunes: did anyone at iwp9 give an update about osprey? anyone ask when ↵stanley lieber
it'll be available?
2012-11-16hjfs: fix getfree() races, fix very rare buf leak in deltraverse()cinap_lenrek
2012-11-16hjfs: fix potential deadlock in putloc()cinap_lenrek
2012-11-16hjfs: dentry qid checking, prevent newentry() from allocating already in use ↵cinap_lenrek
slot always check if the directory entry qid from the loc still matches the one on disk before doing anything. helps catching bugs and is basically equivalent to what cwfs does with its checktag. make a haveloc() check in newentry() to make sure we dont allocate a file slot thats still in use, but deleted. this seems to fix the NPROC>1 build problems.
2012-11-15fix spacescinap_lenrek
2012-11-15add C-Keens tls-client-authcinap_lenrek
This patch adds client TLS authentication to libsec in compliance with rfc 4346. A new -c flag has been introduced for tlsclient allowing the user to specify a certificate in pem(8) format which will be provided to the server upon request. A -D debug flag has been introduced to enable debugging output. The patch has been tested against OpenSSL 0.9.7j 04 May 2006. It exists today because of the great (debugging) help and insight provided by Matthias Bauer. TODOs: - specification of a certain client key in factotum is not possible at the moment - tlssrv should support this too These will get added in another patch. The first try to submit this patch failed due to a network error. Sorry for the duplication! Kind regards, Christian
2012-11-15hjfs: fix more missing dirty marks, error handling, cleanupcinap_lenrek
2012-11-15hjfs: fix missing BDELWRI mark in newentry()cinap_lenrek
2012-11-12mergecinap_lenrek
2012-11-12tap: various improvementscinap_lenrek
dont use sed pipeline for indention, cache process arguments, get process list once at start.
2012-11-10ssam: add usagestanley lieber
2012-11-10vt: on resize, restore screen using history buffercinap_lenrek
2012-11-10rio: fix auto compmplete candidates getting read back without promptcinap_lenrek
2012-11-09kbdfs: send interrupt note in separate proc to prevent potential deadlockcinap_lenrek
2012-11-09kbdfs: kill input buffer on interrupt keycinap_lenrek
2012-11-08pstree: manpage, print pid in first column, bio, silly walkscinap_lenrek
2012-11-07limit clunk queue length for cclose()cinap_lenrek
dont let the clunk queue grow too large if we are allowed to block (cclose) as the fileserver might run out of fids.
2012-11-07pstree: sort children, fix missing close, strip newline from argscinap_lenrek