CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2013/08/18 16:04:51
Modified files: sys/arch/m88k/include: m88100.h Log message: Fix prototypes of do_load_half() and do_load_byte() - those return a sign-extended 32-bit value. The previous prototypes used too narrow return types since the mvme88k/luna88k code unification 9 years ago. Amazingly this did not cause much harm and took quite a while to understand. The most visible occurence of this bug would be awk aborting early with a syntax error message, on valid output; this is no surprise as awk is probably the largest consumer of `short' types in the tree. Of course, the bug would not be reliably reproduceable, because it would only trigger if the DAE code path was taken, usually during page fault processing; and since uvm_fault() will attempt to fault neighbouring pages, depending upon the particular randomness (stackgap, shared library location) at the time one ran awk, it may (but quite often may not) trigger. [forcing all uvm_fault() narrow helped reproduce the issue reliably and eventually fix it]