Author: kadesai
Date: Thu May 26 11:01:25 2016
New Revision: 300730
URL: https://svnweb.freebsd.org/changeset/base/300730

Log:
  MFC r284872 - 284873
  
  r284872: Kernel panic may be observed by user, if MR controller is under Chip 
reset (OCR)
  
  r284873: Counter part of mfi driver commit in mrsas  gracefully fail,
           if the /dev/megaraid_sas_ioctl_node symlink already exists

Modified:
  stable/10/sys/dev/mrsas/mrsas.c
  stable/10/sys/dev/mrsas/mrsas.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/mrsas/mrsas.c
==============================================================================
--- stable/10/sys/dev/mrsas/mrsas.c     Thu May 26 10:55:19 2016        
(r300729)
+++ stable/10/sys/dev/mrsas/mrsas.c     Thu May 26 11:01:25 2016        
(r300730)
@@ -811,6 +811,7 @@ mrsas_attach(device_t dev)
 {
        struct mrsas_softc *sc = device_get_softc(dev);
        uint32_t cmd, bar, error;
+       struct cdev *linux_dev;
 
        /* Look up our softc and initialize its fields. */
        sc->mrsas_dev = dev;
@@ -870,7 +871,8 @@ mrsas_attach(device_t dev)
            GID_OPERATOR, (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP), "mrsas%u",
            device_get_unit(dev));
        if (device_get_unit(dev) == 0)
-               make_dev_alias(sc->mrsas_cdev, "megaraid_sas_ioctl_node");
+               make_dev_alias_p(MAKEDEV_CHECKNAME, &linux_dev, sc->mrsas_cdev,
+                   "megaraid_sas_ioctl_node");
        if (sc->mrsas_cdev)
                sc->mrsas_cdev->si_drv1 = sc;
 
@@ -2712,6 +2714,7 @@ mrsas_reset_ctrl(struct mrsas_softc *sc)
                    "resetting adapter from %s.\n",
                    __func__);
                /* Now return commands back to the CAM layer */
+               mtx_unlock(&sc->sim_lock);
                for (i = 0; i < sc->max_fw_cmds; i++) {
                        mpt_cmd = sc->mpt_cmd_list[i];
                        if (mpt_cmd->ccb_ptr) {
@@ -2721,6 +2724,7 @@ mrsas_reset_ctrl(struct mrsas_softc *sc)
                                mrsas_atomic_dec(&sc->fw_outstanding);
                        }
                }
+               mtx_lock(&sc->sim_lock);
 
                status_reg = mrsas_read_reg(sc, offsetof(mrsas_reg_set,
                    outbound_scratch_pad));

Modified: stable/10/sys/dev/mrsas/mrsas.h
==============================================================================
--- stable/10/sys/dev/mrsas/mrsas.h     Thu May 26 10:55:19 2016        
(r300729)
+++ stable/10/sys/dev/mrsas/mrsas.h     Thu May 26 11:01:25 2016        
(r300730)
@@ -102,7 +102,7 @@ __FBSDID("$FreeBSD$");
  */
 #define        BYTE_ALIGNMENT                                  1
 #define        MRSAS_MAX_NAME_LENGTH                   32
-#define        MRSAS_VERSION                                   
"06.707.04.03-fbsd"
+#define        MRSAS_VERSION                                   
"06.707.05.00-fbsd"
 #define        MRSAS_ULONG_MAX                                 
0xFFFFFFFFFFFFFFFF
 #define        MRSAS_DEFAULT_TIMEOUT                   0x14    /* Temporarily 
set */
 #define        DONE                                                    0
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to