sdiahci: fix hardcoded 512 byte sector size

This commit is contained in:
cinap_lenrek 2014-01-22 20:12:19 +01:00
parent 520957e254
commit ca7c413ff1

View file

@ -1573,7 +1573,7 @@ iadisable(SDev *s)
} }
static Alist* static Alist*
ahcibuild(Drive *d, int rw, void *data, uint n, vlong lba) ahcibuild(Drive *d, int rw, void *data, int nsect, vlong lba)
{ {
uchar *c; uchar *c;
uint flags; uint flags;
@ -1581,11 +1581,11 @@ ahcibuild(Drive *d, int rw, void *data, uint n, vlong lba)
m = &d->portm; m = &d->portm;
c = m->ctab->cfis; c = m->ctab->cfis;
rwfis(m, c, rw, n, lba); rwfis(m, c, rw, nsect, lba);
flags = Lpref; flags = Lpref;
if(rw == SDwrite) if(rw == SDwrite)
flags |= Lwrite; flags |= Lwrite;
return mkalist(m, flags, data, 512*n); return mkalist(m, flags, data, nsect * d->secsize);
} }
static Alist* static Alist*
@ -2297,7 +2297,7 @@ iarctl(SDunit *u, char *p, int l)
p = capfmt(p, e, ctab, nelem(ctab), o->cmd); p = capfmt(p, e, ctab, nelem(ctab), o->cmd);
p = seprint(p, e, "\n"); p = seprint(p, e, "\n");
p = seprint(p, e, "mode\t%s %s\n", modes[d->mode], modes[maxmode(c)]); p = seprint(p, e, "mode\t%s %s\n", modes[d->mode], modes[maxmode(c)]);
p = seprint(p, e, "geometry %llud %lud\n", d->sectors, u->secsize); p = seprint(p, e, "geometry %llud %d\n", d->sectors, d->secsize);
p = seprint(p, e, "alignment %d %d\n", p = seprint(p, e, "alignment %d %d\n",
d->secsize<<d->portm.physshift, d->portm.physalign); d->secsize<<d->portm.physshift, d->portm.physalign);
p = seprint(p, e, "missirq\t%ud\n", c->missirq); p = seprint(p, e, "missirq\t%ud\n", c->missirq);