Author: jimharris
Date: Sun Nov  3 20:56:28 2013
New Revision: 257591
URL: http://svnweb.freebsd.org/changeset/base/257591

Log:
  MFC r256155:
  
  Do not leak resources during attach if nvme_ctrlr_construct() or the initial
  controller resets fail.
  
  Sponsored by: Intel

Modified:
  stable/9/sys/dev/nvme/nvme.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/nvme/nvme.c
==============================================================================
--- stable/9/sys/dev/nvme/nvme.c        Sun Nov  3 20:55:24 2013        
(r257590)
+++ stable/9/sys/dev/nvme/nvme.c        Sun Nov  3 20:56:28 2013        
(r257591)
@@ -237,8 +237,10 @@ nvme_attach(device_t dev)
 
        status = nvme_ctrlr_construct(ctrlr, dev);
 
-       if (status != 0)
+       if (status != 0) {
+               nvme_ctrlr_destruct(ctrlr, dev);
                return (status);
+       }
 
        /*
         * Reset controller twice to ensure we do a transition from cc.en==1
@@ -246,12 +248,16 @@ nvme_attach(device_t dev)
         *  the controller was left in when boot handed off to OS.
         */
        status = nvme_ctrlr_hw_reset(ctrlr);
-       if (status != 0)
+       if (status != 0) {
+               nvme_ctrlr_destruct(ctrlr, dev);
                return (status);
+       }
 
        status = nvme_ctrlr_hw_reset(ctrlr);
-       if (status != 0)
+       if (status != 0) {
+               nvme_ctrlr_destruct(ctrlr, dev);
                return (status);
+       }
 
        nvme_sysctl_initialize_ctrlr(ctrlr);
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "[email protected]"

Reply via email to