Page MenuHomeFreeBSD

D19779.id55902.diff
No OneTemporary

D19779.id55902.diff

Index: sbin/camcontrol/camcontrol.c
===================================================================
--- sbin/camcontrol/camcontrol.c
+++ sbin/camcontrol/camcontrol.c
@@ -7788,6 +7788,7 @@
flags |= CAM_DIR_IN;
mmc_data = malloc(mmc_data_len);
memset(mmc_data, 0, mmc_data_len);
+ memset(&mmc_d, 0, sizeof(mmc_d));
mmc_d.len = mmc_data_len;
mmc_d.data = mmc_data;
mmc_d.flags = MMC_DATA_READ;
Index: sys/cam/mmc/mmc_da.c
===================================================================
--- sys/cam/mmc/mmc_da.c
+++ sys/cam/mmc/mmc_da.c
@@ -791,6 +791,11 @@
softc->state = SDDA_STATE_INIT;
softc->mmcdata =
(struct mmc_data *)malloc(sizeof(struct mmc_data), M_DEVBUF, M_NOWAIT|M_ZERO);
+ if (softc->mmcdata == NULL) {
+ printf("sddaregister: Unable to probe new device. "
+ "Unable to allocate mmcdata\n");
+ return (CAM_REQ_CMP_ERR);
+ }
periph->softc = softc;
softc->periph = periph;
@@ -889,6 +894,7 @@
struct mmc_data d;
KASSERT(buf_len == 512, ("Buffer for ext csd must be 512 bytes"));
+ memset(&d, 0, sizeof(d));
d.data = rawextcsd;
d.len = buf_len;
d.flags = MMC_DATA_READ;
@@ -1013,6 +1019,7 @@
int err;
memset(res, 0, 64);
+ memset(&mmc_d, 0, sizeof(mmc_d));
mmc_d.len = 64;
mmc_d.data = res;
mmc_d.flags = MMC_DATA_READ;
@@ -1804,6 +1811,7 @@
mmcio->cmd.flags = MMC_RSP_R1 | MMC_CMD_ADTC;
mmcio->cmd.data = softc->mmcdata;
+ memset(mmcio->cmd.data, 0, sizeof(struct mmc_data));
mmcio->cmd.data->data = bp->bio_data;
mmcio->cmd.data->len = 512 * count;
mmcio->cmd.data->flags = (bp->bio_cmd == BIO_READ ? MMC_DATA_READ : MMC_DATA_WRITE);
Index: sys/dev/mmc/mmcreg.h
===================================================================
--- sys/dev/mmc/mmcreg.h
+++ sys/dev/mmc/mmcreg.h
@@ -190,6 +190,8 @@
struct mmc_data {
size_t len; /* size of the data */
+ size_t block_size; /* block size for CMD53 */
+ size_t block_count; /* block count for CMD53 */
size_t xfer_len;
void *data; /* data buffer */
uint32_t flags;
@@ -197,6 +199,7 @@
#define MMC_DATA_READ (1UL << 1)
#define MMC_DATA_STREAM (1UL << 2)
#define MMC_DATA_MULTI (1UL << 3)
+#define MMC_DATA_BLOCK_SIZE (1UL << 4)
struct mmc_request *mrq;
};

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 12, 5:55 PM (3 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23633826
Default Alt Text
D19779.id55902.diff (2 KB)

Event Timeline