diff options
author | Dan McDonald <danmcd@joyent.com> | 2020-12-02 10:19:05 -0500 |
---|---|---|
committer | Dan McDonald <danmcd@joyent.com> | 2020-12-02 10:19:06 -0500 |
commit | d79b46fa6a6b38bd45268af896a043dde714b38a (patch) | |
tree | 60bcbe653139d492d2bfcc23141f3c039457bf38 /usr/src/uts/common/io/blkdev/blkdev.c | |
parent | 99f76d09704e2a55d2d5fda310f907fdfbdf0684 (diff) | |
parent | 7b4214534ccdf6f8aa6e566d7501aab328c72e84 (diff) | |
download | illumos-joyent-release-20201203.tar.gz |
[illumos-gate merge]release-20201203
commit 7b4214534ccdf6f8aa6e566d7501aab328c72e84
13324 struct dk_minfo_ext size differences trigger SSP in libfdisk
commit 63f9f2ff473e9cb7f455f032fe3d04a95ec4b537
13332 loader: iterate consoles to draw loader menu screen
Conflicts:
usr/src/boot/sys/boot/forth/support.4th
usr/src/boot/sys/boot/forth/Makefile.inc
Diffstat (limited to 'usr/src/uts/common/io/blkdev/blkdev.c')
-rw-r--r-- | usr/src/uts/common/io/blkdev/blkdev.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/usr/src/uts/common/io/blkdev/blkdev.c b/usr/src/uts/common/io/blkdev/blkdev.c index e9734d1672..c0bdb3dab2 100644 --- a/usr/src/uts/common/io/blkdev/blkdev.c +++ b/usr/src/uts/common/io/blkdev/blkdev.c @@ -1510,6 +1510,7 @@ bd_ioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *credp, int *rvalp) } case DKIOCGMEDIAINFOEXT: { struct dk_minfo_ext miext; + size_t len; /* make sure our state information is current */ bd_update_state(bd); @@ -1518,7 +1519,17 @@ bd_ioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *credp, int *rvalp) miext.dki_lbsize = (1U << bd->d_blkshift); miext.dki_pbsize = (1U << bd->d_pblkshift); miext.dki_capacity = bd->d_numblks; - if (ddi_copyout(&miext, ptr, sizeof (miext), flag)) { + + switch (ddi_model_convert_from(flag & FMODELS)) { + case DDI_MODEL_ILP32: + len = sizeof (struct dk_minfo_ext32); + break; + default: + len = sizeof (struct dk_minfo_ext); + break; + } + + if (ddi_copyout(&miext, ptr, len, flag)) { return (EFAULT); } return (0); |