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]

Reply via email to