svn commit: r331123 - head/sys/dev/flash
Ian Lepore
ian at FreeBSD.org
Sun Mar 18 15:56:10 UTC 2018
Author: ian
Date: Sun Mar 18 15:56:10 2018
New Revision: 331123
URL: https://svnweb.freebsd.org/changeset/base/331123
Log:
Do not overwrite the contents of BIO_WRITE buffers. SPI inherently
transfers data in both directions at once. When writing to the device,
use a dummy buffer for the incoming data, not the same buffer as the
outgoing data. Writes are done in FLASH_PAGE_SIZE chunks, which is only
256 bytes, so just put the dummy buffer into the softc.
Modified:
head/sys/dev/flash/mx25l.c
Modified: head/sys/dev/flash/mx25l.c
==============================================================================
--- head/sys/dev/flash/mx25l.c Sun Mar 18 15:44:07 2018 (r331122)
+++ head/sys/dev/flash/mx25l.c Sun Mar 18 15:56:10 2018 (r331123)
@@ -90,6 +90,7 @@ struct mx25l_softc
struct bio_queue_head sc_bio_queue;
unsigned int sc_flags;
unsigned int sc_taskstate;
+ uint8_t sc_dummybuf[FLASH_PAGE_SIZE];
};
#define TSTATE_STOPPED 0
@@ -344,7 +345,7 @@ mx25l_write(device_t dev, off_t offset, caddr_t data,
cmd.rx_cmd = rxBuf;
cmd.tx_data = data + bytes_writen;
cmd.tx_data_sz = bytes_to_write;
- cmd.rx_data = data + bytes_writen;
+ cmd.rx_data = sc->sc_dummybuf;
cmd.rx_data_sz = bytes_to_write;
/*
More information about the svn-src-head
mailing list