summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-02tinc(8): add history sectionAlex Musolino
2019-07-02usbxhci: fix mysterious ENABLESLOT failures (update to XHCI spec revision ↵cinap_lenrek
1.2 (2019)) Ori Bernstein had Sunrise Point-H USB 3.0 xHCI Controller that would mysteriously crash on the 5th ENABLESLOT command. This was reproducable by even just allocating slots in a loop right after init. It turns out, the 1.2 spec extended the Max Scratchpad Buffers in HCSPARAMS2 so our driver would not allocate enougth scratchpad buffers and controller firmware would crash once it went beyond our allocated scratchpad buffer array. This change also fixes: - ignore bits 16:31 in PAGESIZE register - preserve bits 10:31 in the CONFIG register - handle ADDESSDEV command failure (so it can be retried)
2019-06-28pc64: preallocate mmupool page tablescinap_lenrek
preallocate 2% of user pages for page tables and MMU structures and keep them mapped in the VMAP range. this leaves more space in the KZERO window and avoids running out of kernel memory on machines with large amounts of memory.
2019-06-24ape: reimplement rename() - fixing compiler warnings and handling more error ↵cinap_lenrek
cases handle empty filename, dot and dotdot. handle mismatching from/to directory/file type. cleanup destination file on error. error when attempting to copy non-empty directories. little test program: #include <unistd.h> #include <stdio.h> int main(int argc, char *argv[]) { if(argc != 3){ fprintf(stderr, "usage: %s old new\n", argv[0]); return 1; } if(rename(argv[1], argv[2])){ perror("rename"); return 1; } return 0; }
2019-06-248c, 6c: LEA x, R; MOV (R), R -> MOV x, Rcinap_lenrek
2019-06-248c, 6c: avoid allocating index registers when we don't have tocinap_lenrek
when a operation receives a chain of OINDEX nodes as its operands, each indexing step used to allocate a new index register. this is wastefull an can result in running out of fixed registers on 386 for code such as: x = a[a[a[a[i]]]]. instead we attempt to reuse the destination register of the operation as the index register if it is not otherwise referenced. this results in the index chain to use a single register for index and result and leaves registers free to be used for something usefull instead. for 6c, try to avoid R13 as well as BP index base register.
2019-06-248c: skip 64-bit regpair allocation for OINDEX nodes in cgen64()cinap_lenrek
OINDEX can only return TLONG result on 386 so give it a register instead of a regpair and let gmove() handle the conversion.
2019-06-23ape: revert rename() changecinap_lenrek
new implementation gets stuck in a infinite loop. backing this out for now.
2019-06-21Turn on warnings when building libap.Ori Bernstein
For ape, we never enabled warnings in cflags. Turning it on brings up a lot of warnings. Most are noise, but a few caught unused variables and trunctaions of pointers. to smaller integers (int, long). A few warnings remain.
2019-06-21gs: apply mitigations against CVE-2017-8291 (thanks jsmoody)cinap_lenrek
To reproduce: gs -q -dNOPAUSE -dSAFER '-sDEVICE=ppmraw' '-sOutputFile=/dev/null' <<. %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: -0 -0 100 100 /size_from 10000 def /size_step 500 def /size_to 65000 def /enlarge 1000 def %/bigarr 65000 array def 0 size_from size_step size_to { pop 1 add } for /buffercount exch def /buffersizes buffercount array def 0 size_from size_step size_to { buffersizes exch 2 index exch put 1 add } for pop /buffers buffercount array def 0 1 buffercount 1 sub { /ind exch def buffersizes ind get /cursize exch def cursize string /curbuf exch def buffers ind curbuf put cursize 16 sub 1 cursize 1 sub { curbuf exch 255 put } for } for /buffersearchvars [0 0 0 0 0] def /sdevice [0] def enlarge array aload { .eqproc buffersearchvars 0 buffersearchvars 0 get 1 add put buffersearchvars 1 0 put buffersearchvars 2 0 put buffercount { buffers buffersearchvars 1 get get buffersizes buffersearchvars 1 get get 16 sub get 254 le { buffersearchvars 2 1 put buffersearchvars 3 buffers buffersearchvars 1 get get put buffersearchvars 4 buffersizes buffersearchvars 1 get get 16 sub put } if buffersearchvars 1 buffersearchvars 1 get 1 add put } repeat buffersearchvars 2 get 1 ge { exit } if %(.) print } loop .eqproc .eqproc .eqproc sdevice 0 currentdevice buffersearchvars 3 get buffersearchvars 4 get 16#7e put buffersearchvars 3 get buffersearchvars 4 get 1 add 16#12 put buffersearchvars 3 get buffersearchvars 4 get 5 add 16#ff put put buffersearchvars 0 get array aload sdevice 0 get 16#3e8 0 put sdevice 0 get 16#3b0 0 put sdevice 0 get 16#3f0 0 put currentdevice null false mark /OutputFile (%pipe%echo gotce) .putdeviceparams 1 true .outputpage .rsdparams %{ } loop 0 0 .quit %asdf .
2019-06-20cwfs: remove orphaned lrand.ccinap_lenrek
2019-06-20cwfs: remove old some assert() debuggingcinap_lenrek
2019-06-20bcm, kw, omap, teg2: implement setregisters()cinap_lenrek
2019-06-20cwfs: fix root access time qid path comparsioncinap_lenrek
2019-06-20upas/smtp: handle temporary authentication failurescinap_lenrek
under heavy load, factotum can return a "too much activity" error, which upas/smtpd and upas/smtp should consider a temporary error instead of a permanent one.
2019-06-20rc-httpd: serve markdown with text/plain content-typeAlex Musolino
2019-06-20pc64: actually fix it, what was i THINKINGcinap_lenrek
2019-06-20pc64: fix compiler warning in rebootjump() entry calculationcinap_lenrek
2019-06-20stdio: fix putc(), plan9 versioncinap_lenrek
2019-06-19ape: fix stdio putc() macro, avoiding "result of operation not used" warningcinap_lenrek
moving _IO_CHMASK masking on the right hand side fixes it.
2019-06-19cc: remove nullwarn() from OCAST codegen, zap void castscinap_lenrek
implicit casts would cause spurious "result of operation not used" warnings such as ape's stdio putc() macro. make (void) casts non-ops when the casted expression has no side effects. this avoid spurious warning with ape's assert() macro.
2019-06-19cwfs: properly handle 64 bit qid pathcinap_lenrek
for historical reasons, kenfs stores directory entries in pre 9p2000 format with directories having the QPDIR bit 31 set in the qid path. however, the 64 bit fileserver allows 64 bit qid paths. given that we do not support pre 9p2000 clients and do not rely on the QPDIR, but want to keep the block check tags consistent, we will *INVERT* the QPDIR bit in directory entry qid paths for directories. this preserves the on-disk semantics (for < 31 bit qmax) but does not complicate qid generation and recovery. also makes it easy to convert between directory entry qid and 9p format.
2019-06-19pcc: back out -+ flag removal to allow gracefull upgrade path with new pcc ↵cinap_lenrek
but old cpp
2019-06-18Always turn on the -+ flag in cppOri Bernstein
C99 comments have been the default in compilers for something like 20 years now. This means we don't need to remember to turn it on when porting software, and gets rid of cryptic errors about unterminated character constants when someone writes something like: // Didn't need to... We still accept the flag to avoid breaking mkfiles, but we do nothing with it. This also removes the documentation, since the option does nothing now.
2019-06-18Import compiler warnings and bugfixes from Charles.Ori Bernstein
This change imports a few warnings and minor fixes from Charles branch here: https://bitbucket.org/plan9-from-bell-labs/plan9. The changes included here: changeset: 1374:9185dc017be0 summary: declare castucom; move a declaration into order; use cast instead of ULL suffix changeset: 1353:5fe8380b1818 summary: supporting functions: 1. castucom to match unlikely mask operation; 2. be sure to snap both sides of pointer subtraction completely; 3. add extra operators as side-effect free changeset: 1352:90058c092d66 summary: 1. correct result type for mixed-mode assignment operators 2. detect divide by zero (erik); 3. detect masks misformed by sign-extension; 4. diagnose mixed old/new prototypes
2019-06-18mergecinap_lenrek
2019-06-188c, 6c: fix INDEX node #reg calculationcinap_lenrek
2019-06-17Delete dead code.Ori Bernstein
Nothing is using (or even building) bound.[ch]
2019-06-17rc-httpd: set charset=utf-8 for all text/* content typesAlex Musolino
2019-06-17rc-httpd: only emit charset option for text/plain content typeAlex Musolino
2019-06-16Add test for pow.cOri Bernstein
2019-06-16Handle NaN and Inf edge cases as specified by posix, instead of barfing.Ori Bernstein
We're not a posix system, but the posix spec is a good reference for what we should do. Thanks Geoff for the inspiration for this patch.
2019-06-14mergecinap_lenrek
2019-06-14devdtracy: make machlocks and dtktab staticcinap_lenrek
2019-06-14bcm64: implement dtracy supportcinap_lenrek
2019-06-11vmx(1): update BUGSaiju
2019-06-11snoopy(8): add support for dhcp classless static routes optionAlex Musolino
To complement the new cl-routes field, the bootp static routes option has been renamed to cf-routes and the network/gateway pairs are separated with a right arrow.
2019-06-11snoopy(8): avoid extra spaces in dhcp filter outputAlex Musolino
2019-06-11snoopy(8): include dhcp.h instead of replicating bootp/dhcp options enumAlex Musolino
2019-06-08file(1): recognise unified diff outputAlex Musolino
2019-06-05rc-httpd(8): avoid duplicate log output in dir-index handlerAlex Musolino
Delay calling do_log until just before emitting the response. This avoids calling do_log before potentially handing control to the static-index handler, which also calls do_log.
2019-06-04Remove trailing whitespace.Ori Bernstein
2019-06-04Lost a trailing \nOri Bernstein
2019-06-04Make 'g' grep recursively by default.Ori Bernstein
2019-05-31plumber: loop will go out of bounds when *++s == '\0'; replace with strstrBurnZeZ
2019-05-27ssh: work around github.com's broken cipher negotiation code (thanks Ori_B)cinap_lenrek
key exchange with git@github.com fails as they appear to try to negotiate a mac algorithm even tho we use an AEAD cipher which does not use a mac algorithm. the work around is to supply a dummy mac algorithm that they can negotiate to make them happy.
2019-05-24/sys/src/cmd/mkfile: fix PCONLY exclude (thanks stefan)cinap_lenrek
2019-05-24awk: no need to call getargv() twice to get the value for FILENAMEcinap_lenrek
2019-05-24gs: fix missing type check in ztype (thanks jsmoody)cinap_lenrek
to reproduce: gs <<. null [[][][][][][][][][][][][][][][]] .type .
2019-05-23gs: apply fixes for CVE-2018-16509 (thanks jsmoody)cinap_lenrek