summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2003-07-01 17:15:06 +0000
committerkrw <krw@openbsd.org>2003-07-01 17:15:06 +0000
commit21d58af63337217ebe078a16c378915bc1906941 (patch)
tree245b7a02f570baa48f238fb0dee61af5c9c0e64f /lib/libc/stdio
parentBelatedly nuke clause 3 (or is that 4?). (diff)
downloadwireguard-openbsd-21d58af63337217ebe078a16c378915bc1906941.tar.xz
wireguard-openbsd-21d58af63337217ebe078a16c378915bc1906941.zip
Don't dma map the xs->cmd. Copy it to a safe buffer that is already
mapped and sync'ed appropriately, and is guaranteed to be in one memory page. Eliminate now unused dmamap_cmd and rs_cmd fields. Fix another error message (adding active command to reset list) so that it includes the adapter name. Add missing letoh32() calls to debug code. The evils of directly mapping *xs->cmd were pointed out by Mickey during osiop development. In particular, *xs->cmd may start on one memory page and run into the next. Since the dma logic in most cards/drivers (including siop) only allocates one address/size pair to map *xs->cmd, parts of a command could be lost or corrupted. The large number of 6 byte dma mappings noted long ago by someone (Henric?). This change reduces the dma mapping activity per i/o by 1/3 to 1/2 and may give a performance boost of some kind. Successfully tested on i386, sparc64 (ultra30 - thanks Jolan, blade100), macppc and alpha. Unfortunately these changes don't fix the Blade1000 siop problems. **NOTE** If scsi_generic is ever upped to 16 bytes the offsets in siop.ss must be updated!
Diffstat (limited to 'lib/libc/stdio')
0 files changed, 0 insertions, 0 deletions