summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/blkdev/blkdev.c
diff options
context:
space:
mode:
authorDan McDonald <danmcd@joyent.com>2020-12-02 10:19:05 -0500
committerDan McDonald <danmcd@joyent.com>2020-12-02 10:19:06 -0500
commitd79b46fa6a6b38bd45268af896a043dde714b38a (patch)
tree60bcbe653139d492d2bfcc23141f3c039457bf38 /usr/src/uts/common/io/blkdev/blkdev.c
parent99f76d09704e2a55d2d5fda310f907fdfbdf0684 (diff)
parent7b4214534ccdf6f8aa6e566d7501aab328c72e84 (diff)
downloadillumos-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.c13
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);