Author: cem
Date: Sat Oct 20 19:42:38 2018
New Revision: 339478
URL: https://svnweb.freebsd.org/changeset/base/339478

Log:
  dev_refthread: Do not initialize *ref when reference was not acquired
  
  Like the companion API devvn_refthread, leave *ref uninitialized when a
  reference was not acquired.  Initializing to 1 provides a vaguely
  correct-looking but bogus value for broken callers to (mistakenly) pass to
  dev_relthread() when refthread fails.
  
  Make it even more clear to consumers that dev_relthread is only valid when
  dev_refthread succeeds.
  
  Reviewed by:  kib, markj
  Sponsored by: Dell EMC Isilon
  Differential Revision:        https://reviews.freebsd.org/D16885

Modified:
  head/sys/kern/kern_conf.c

Modified: head/sys/kern/kern_conf.c
==============================================================================
--- head/sys/kern/kern_conf.c   Sat Oct 20 19:18:30 2018        (r339477)
+++ head/sys/kern/kern_conf.c   Sat Oct 20 19:42:38 2018        (r339478)
@@ -202,7 +202,8 @@ dev_refthread(struct cdev *dev, int *ref)
                        csw = NULL;
        }
        dev_unlock();
-       *ref = 1;
+       if (csw != NULL)
+               *ref = 1;
        return (csw);
 }
 
_______________________________________________
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