summaryrefslogtreecommitdiff
path: root/sys/src/9
AgeCommit message (Collapse)Author
2016-01-14wifi: check tkip/ccmp mac and crc in constant time avoiding timing side channelscinap_lenrek
2016-01-14pc64: move idle() routine after CALL main(SB) as the comment suggestscinap_lenrek
2016-01-13pc/pc64: backing out new mp startup code (caused issues with ramnode)cinap_lenrek
apparently, this causes some quadcore ramnode vm to hang on boot, even tho all cores successfully started up and are operational. i suspect some side effect from timersinit()... this would also mean *notsc= would break it (syncclock() would continue)... its unclear. i'm reverting this for now until the problem is better understood.
2016-01-13devssl: use tsmemcmp() to compare mac to close timing side channelcinap_lenrek
2016-01-11pc/pc64: bring up ap's one after another, use idlehands() while waiting for ↵cinap_lenrek
thunderbirdsarego when testing in qemu, launching each ap became slower and slower because all the ap's where spinning in syncclock() waiting for cpu0 to update its mach0->tscticks, which happens only much later after all cpu's have been started up. now we wait for each cpu to do its timer callibration and manually update our tscticks while we wait and each cpu will not spin but halt while waiting for active.thunderbirdsarego. this reduces the system load and noise for timer callibration and makes the mp startup linear with regard to the number of cores.
2016-01-07pc/pc64: remove mpshutdown printcinap_lenrek
2016-01-07kernel: remove todfix overflow iprint() spamcinap_lenrek
2016-01-07format pointer subtraction results with %zd instead of %ld (for long -> ↵cinap_lenrek
intptr on amd64)
2016-01-07introduce signed intptr and %z format modifier for formating uintptr and intptrcinap_lenrek
2016-01-05pc/pc64: import i210 support from erik quanstrom's 9atomcinap_lenrek
2016-01-05kernel: change active.machs from bitmap to char array to support up to 64 ↵cinap_lenrek
cpus on pc64
2015-12-21tls: implement chacha20/poly1305 aead cipher suitscinap_lenrek
2015-12-21kernel: missing changes for ibrk() prototypecinap_lenrek
2015-12-16devprov: remove unused extern int unfaircinap_lenrek
2015-12-16kernel: use uintptr for ibrk() return value (for base >2GB) and clarify ↵cinap_lenrek
segbrk(2)
2015-11-30kernel: cleanup exit()/shutdown()/reboot() codecinap_lenrek
introduce cpushutdown() function that does the common operation of initiating shutdown, returning once all cpu's got the message and are about to shutdown. this avoids duplicated code which isnt really machine specific. automatic reboot on panic only when *debug= is not set and the machine is a cpu server or has no display, otherwise just hang.
2015-11-22bootrc: remove usbwait hack, usbd/nusbrc are now synchronous by previous commitcinap_lenrek
2015-11-22usbd: intoruce /env/usbbusycinap_lenrek
to solve the usb device enumeration race on boot, usbd creates /env/usbbusy on startup and once all devices have been enumerated and readers have consumed all the events, we remove the file so nusbrc/bootrc can continue. this makes sure all the usb devices that where plugged in on boot are made available.
2015-11-22devenv: fix ORCLOSE handlingcinap_lenrek
when opening a /env file ORCLOSE, and the process exits, envgrp() would return nil can crash in envremove() because procexit will have set up->egrp to nil before calling closefgrp(). the solution is to capture the environment on open, keeping a reference in Chan.aux, so it doesnt matter on what process the close happens and a env chan will always refer to its original environment group.
2015-11-06kernel: use nicer check in okaddr(), wet floor signs in fixfault()cinap_lenrek
instead of checking addr+len >= addr, check len >= -addr so that addr == 0 is never valid for len > 0 even if we decide to have memory at the zero page so theres never any chance user can pass in "nil" pointers. put up some signs where we fall thru the switch cases in fixfault()
2015-11-06kernel: fix okaddr() checkcinap_lenrek
2015-10-28devtls: reject SHA2_256 mac for SSL, but TLS is finecinap_lenrek
sha256 is only defined for TLS1.2, however, technically, theres no reason not to use it in TLS1.0/TLS1.1. the choice is up to tlshand and pushtls, not the kernel.
2015-10-17wifi: prioritize rsne over wpaiecinap_lenrek
if beacon/proble contains both wpa information element and rsne, the rsne wins.
2015-10-09wifi: quote value of parsed ether optionscinap_lenrek
introduce wificfg() function to convert ether->opt[] strings to wifictl messages, which needs quoting for the value. so etherX=type=iwl essid='something with spaces' works.
2015-10-07port: fix typo in devmnt mntproc namemischief
2015-09-29pc, pc64: add did for intel wildcat point audio controllermischief
2015-09-27devip: declare cleanarpent() staticcinap_lenrek
2015-09-27devip: various bugfixes and cleanups for arp codecinap_lenrek
- fix missing runlock(ifc) when ifcid != a->ifcid in rxmitsols() (thanks erik quanstro) - don't leak packets when transfering blocks from arp entry hold list to droplist - free rest of droplist when bwrite() errors in arpenter(), remove useless checks (ifc != nil) - free arp entry hold list from cleanarpent() - consistent use of nil for pointers
2015-09-20devsd: handle SYNCHRONIZE CACHE scsi commands as nops in sdfakescsi()cinap_lenrek
2015-09-20sdmmc: handle fakescsi emulationcinap_lenrek
2015-09-20devsd: remove unused timeout field from SDreqcinap_lenrek
2015-09-20pc, pc64: fix sdvirtio descriptor count when sending flushmischief
2015-09-05devqspi: fix qunlock error on stat() -> close()cinap_lenrek
2015-09-05zynq: clean cache unconditionally *before* dma, invalidate cache *after* dma ↵cinap_lenrek
for read case processor might bring data speculatively into the cache, before the dma completes.
2015-09-05usbehci: clean cache unconditionally before handing a buffer to the hardwarecinap_lenrek
even in the read case, we need to clean the cache so the cpu will not flush out old changes while the hardware updates the buffer.
2015-09-05zynq: fix cache flush bug for emmc driver (have to invalidate cache *before* ↵cinap_lenrek
read)
2015-09-02tcp: fix mtu on server sockets again (thans mycroftix)cinap_lenrek
for incoming connection, we used s->laddr to lookup the interface for the incoming call, but this does not work when the announce address is tcp!*!123, then s->laddr is all zeros "::". instead, use the incoming destination address for interface mtu lookup. thanks mycroftix for troubleshooting!
2015-09-01libsec: remove flawed aes() digest and hmac_aes() implementations (thanks aiju)cinap_lenrek
2015-08-27devtls: add sha256 macmischief
2015-08-25fix fuckupglenda
2015-08-25import E script from bell labsmischief
2015-08-21kernel/boot: do not handle kfs bootcinap_lenrek
2015-08-16devether: duplicate flags when copying blocks (thanks erik quanstro)cinap_lenrek
2015-08-15devtls: TLS1.1 explicit iv supportcinap_lenrek
using nrand() to fill the explicit iv, which isnt great but better than no iv.
2015-08-14kernel: try freebroken() *before* killbig() (thanks aiju)cinap_lenrek
2015-08-09zunq: remove unused variables from devqspicinap_lenrek
2015-08-09kernel: move "setargs" field in Proc structure after "nargs" and "args"cinap_lenrek
2015-08-09kernel: mount flag is int not ulong, reduce size of Mount struct by putting ↵cinap_lenrek
mflag field in what would be wasted as padding
2015-08-09kernel: pgrpcpy(), simplify Mount structurecinap_lenrek
instead of ordering the source mount list, order the new destination list which has the advantage that we do not need to wlock the source namespace, so copying can be done in parallel and we do not need the copy forward pointer in the Mount structure. the Mhead back pointer in the Mount strcture was unused, removed.
2015-08-09kernel: fix Mheadachecinap_lenrek
there was a race between cunmount() and walk() on Mhead.from as Mhead.from was unconditionally freed when we cunmount(), but findmount might have already returned the Mhead in walk(). we have to ensure that Mhead.from is not freed before the Mhead itself (now done in putmhead() once the reference count of the Mhead drops to zero). the Mhead struct contained two unused locks, removing. no need to hold Pgrp.ns lock in closegrp() as nobody can get to it (refcount droped to zero). avoid cclose() and freemount() while holding Mhead.lock or Pgrp.ns locks as it might block on a hung up fileserver. remove the debug prints... cleanup: use nil for pointers, remove redundant nil checks before putmhead().