Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/ip/keysock.c
          +++ new/usr/src/uts/common/inet/ip/keysock.c
↓ open down ↓ 529 lines elided ↑ open up ↑
 530  530                  mutex_exit(&keystack->keystack_consumers_lock);
 531  531                  mutex_destroy(&kc->kc_lock);
 532  532                  netstack_rele(kc->kc_keystack->keystack_netstack);
 533  533          } else {
 534  534                  ks = (keysock_t *)ptr;
 535  535                  keystack = ks->keysock_keystack;
 536  536  
 537  537                  ks3dbg(keystack,
 538  538                      ("Driver close, PF_KEY socket is going away.\n"));
 539  539                  if ((ks->keysock_flags & KEYSOCK_EXTENDED) != 0)
 540      -                        atomic_add_32(&keystack->keystack_num_extended, -1);
      540 +                        atomic_dec_32(&keystack->keystack_num_extended);
 541  541                  size = sizeof (keysock_t);
 542  542                  mutex_enter(&keystack->keystack_list_lock);
 543  543                  *(ks->keysock_ptpn) = ks->keysock_next;
 544  544                  if (ks->keysock_next != NULL)
 545  545                          ks->keysock_next->keysock_ptpn = ks->keysock_ptpn;
 546  546                  mutex_exit(&keystack->keystack_list_lock);
 547  547                  mutex_destroy(&ks->keysock_lock);
 548  548                  vmem_free(keysock_vmem, (void *)(uintptr_t)ks->keysock_serial,
 549  549                      1);
 550  550                  netstack_rele(ks->keysock_keystack->keystack_netstack);
↓ open down ↓ 1007 lines elided ↑ open up ↑
1558 1558                          keysock_passdown(ks, downmp, *satypes, downextv,
1559 1559                              B_FALSE);
1560 1560                          ++satypes;
1561 1561                  }
1562 1562                  freemsg(mp);
1563 1563          }
1564 1564  
1565 1565          /*
1566 1566           * Set global to indicate we prefer an extended ACQUIRE.
1567 1567           */
1568      -        atomic_add_32(&keystack->keystack_num_extended, 1);
     1568 +        atomic_inc_32(&keystack->keystack_num_extended);
1569 1569  }
1570 1570  
1571 1571  static void
1572 1572  keysock_delpair_all(keysock_t *ks, mblk_t *mp, sadb_ext_t *extv[])
1573 1573  {
1574 1574          int i, start, finish;
1575 1575          mblk_t *mp1 = NULL;
1576 1576          keysock_stack_t *keystack = ks->keysock_keystack;
1577 1577  
1578 1578          start = 0;
↓ open down ↓ 749 lines elided ↑ open up ↑
2328 2328  
2329 2329                          if (samsg->sadb_msg_errno != 0)
2330 2330                                  keystack->keystack_flushdump_errno =
2331 2331                                      samsg->sadb_msg_errno;
2332 2332  
2333 2333                          /*
2334 2334                           * Lower the atomic "flushing" count.  If it's
2335 2335                           * the last one, send up the end-of-{FLUSH,DUMP} to
2336 2336                           * the appropriate PF_KEY socket.
2337 2337                           */
2338      -                        if (atomic_add_32_nv(&keystack->keystack_flushdump,
2339      -                            -1) != 0) {
     2338 +                        if (atomic_dec_32_nv(&keystack->keystack_flushdump) !=
     2339 +                            0) {
2340 2340                                  ks1dbg(keystack,
2341 2341                                      ("One flush/dump message back from %d,"
2342 2342                                      " more to go.\n", samsg->sadb_msg_satype));
2343 2343                                  freemsg(mp1);
2344 2344                                  return;
2345 2345                          }
2346 2346  
2347 2347                          samsg->sadb_msg_errno =
2348 2348                              (uint8_t)keystack->keystack_flushdump_errno;
2349 2349                          if (samsg->sadb_msg_type == SADB_DUMP) {
↓ open down ↓ 25 lines elided ↑ open up ↑
2375 2375          keysock_stack_t *keystack = ns->netstack_keysock;
2376 2376  
2377 2377          return (keystack->keystack_num_extended != 0);
2378 2378  }
2379 2379  
2380 2380  uint32_t
2381 2381  keysock_next_seq(netstack_t *ns)
2382 2382  {
2383 2383          keysock_stack_t *keystack = ns->netstack_keysock;
2384 2384  
2385      -        return (atomic_add_32_nv(&keystack->keystack_acquire_seq, -1));
     2385 +        return (atomic_dec_32_nv(&keystack->keystack_acquire_seq));
2386 2386  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX