diff options
author | mav <mav@FreeBSD.org> | 2015-10-05 07:40:18 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2015-10-05 07:40:18 +0000 |
commit | d5fb1f0517d19a783291de939dd2e9c1cdc91bce (patch) | |
tree | 6b50b9ca659269bd0616639ed68c6607704cbe90 | |
parent | 656ac26a525c2bd9c19e4909b6655df3939a3688 (diff) | |
download | FreeBSD-src-d5fb1f0517d19a783291de939dd2e9c1cdc91bce.zip FreeBSD-src-d5fb1f0517d19a783291de939dd2e9c1cdc91bce.tar.gz |
MFC r281531 (by asomers):
Initialize async_arg_ptr in xpt_async when called with async_code
AC_ADVINFO_CHANGED.
Without this change, newly inserted hard disks won't always have their
physical path device nodes created. The problem reproduces most readily
when attaching a large number of disks at once.
-rw-r--r-- | sys/cam/cam_xpt.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 5c3c37d..711baae 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -4268,8 +4268,10 @@ xpt_async(u_int32_t async_code, struct cam_path *path, void *async_arg) } memcpy(ccb->casync.async_arg_ptr, async_arg, size); ccb->casync.async_arg_size = size; - } else if (size < 0) + } else if (size < 0) { + ccb->casync.async_arg_ptr = async_arg; ccb->casync.async_arg_size = size; + } if (path->device != NULL && path->device->lun_id != CAM_LUN_WILDCARD) xpt_freeze_devq(path, 1); else |