svn commit: r284180 - head/sys/dev/mfi
Doug Ambrisko
ambrisko at FreeBSD.org
Tue Jun 9 15:51:12 UTC 2015
Author: ambrisko
Date: Tue Jun 9 15:51:11 2015
New Revision: 284180
URL: https://svnweb.freebsd.org/changeset/base/284180
Log:
Switch from make_dev_alias to make_dev_alias_p since make_dev_alias_p can
gracefully fail if the /dev/megaraid_sas_ioctl_node symlink already exists.
This can happen if mfi(4) and mrsas(4) are both attached to cards and
providing Linux emulation support. Let the first one win. An equivalent
change needs to be done to mrsas(4). Extra credit would be to pass the
Linux emulation call to the other driver when appropriate. This will
probably be a rare case and the user can manually change where the symlink
points to.
MFC after: 3 days
Modified:
head/sys/dev/mfi/mfi.c
Modified: head/sys/dev/mfi/mfi.c
==============================================================================
--- head/sys/dev/mfi/mfi.c Tue Jun 9 14:31:18 2015 (r284179)
+++ head/sys/dev/mfi/mfi.c Tue Jun 9 15:51:11 2015 (r284180)
@@ -369,6 +369,7 @@ mfi_attach(struct mfi_softc *sc)
int error, commsz, framessz, sensesz;
int frames, unit, max_fw_sge, max_fw_cmds;
uint32_t tb_mem_size = 0;
+ struct cdev *dev_t;
if (sc == NULL)
return EINVAL;
@@ -763,7 +764,8 @@ mfi_attach(struct mfi_softc *sc)
sc->mfi_cdev = make_dev(&mfi_cdevsw, unit, UID_ROOT, GID_OPERATOR,
0640, "mfi%d", unit);
if (unit == 0)
- make_dev_alias(sc->mfi_cdev, "megaraid_sas_ioctl_node");
+ make_dev_alias_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, &dev_t,
+ sc->mfi_cdev, "%s", "megaraid_sas_ioctl_node");
if (sc->mfi_cdev != NULL)
sc->mfi_cdev->si_drv1 = sc;
SYSCTL_ADD_INT(device_get_sysctl_ctx(sc->mfi_dev),
More information about the svn-src-all
mailing list