Though following code sequence is safe currently (even w/o BGL):
commit038c4201dae0dd73aa6e777b15a72a65dde58f8d
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 9 Aug 2008 07:08:20 +0000 (9 07:08 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 9 Aug 2008 07:08:20 +0000 (9 07:08 +0000)
treee4d4a74b29d488cf68bdfbf6e8d604b9186ca931
parent21a5b3bf3ae5ce171fbc6f6deb01d7f2ce51a92f
Though following code sequence is safe currently (even w/o BGL):
  if (ipfw_dyn_v != NULL) {
    lockmgr(&dyn_lock, LK_...);
    /* accessing ipfw_dyn_v */
    lockmgr(&dyn_lock, LK_RELEASE)
  }

it will be better for us to guard against future code changes by using:
  if (ipfw_dyn_v != NULL) {
    lockmgr(&dyn_lock, LK_...);
    if (ipfw_dyn_v != NULL) {
      /* accessing ipfw_dyn_v */
    }
    lockmgr(&dyn_lock, LK_RELEASE)
  }
sys/net/ipfw/ip_fw2.c