Print this page
5253 kmem_alloc/kmem_zalloc won't fail with KM_SLEEP
5254 getrbuf won't fail with KM_SLEEP


 316 
 317         mutex_init(&rdc_ping_lock, NULL, MUTEX_DRIVER, NULL);
 318         mutex_init(&net_blk_lock, NULL, MUTEX_DRIVER, NULL);
 319         mutex_init(&rdc_conf_lock, NULL, MUTEX_DRIVER, NULL);
 320         mutex_init(&rdc_many_lock, NULL, MUTEX_DRIVER, NULL);
 321         mutex_init(&rdc_net_hnd_id_lock, NULL, MUTEX_DRIVER, NULL);
 322         mutex_init(&rdc_clnt_lock, NULL, MUTEX_DRIVER, NULL);
 323         mutex_init(&sync_info.lock, NULL, MUTEX_DRIVER, NULL);
 324 
 325 #ifdef DEBUG
 326         mutex_init(&rdc_cntlock, NULL, MUTEX_DRIVER, NULL);
 327 #endif
 328 
 329         if ((i = nsc_max_devices()) < rdc_max_sets)
 330                 rdc_max_sets = i;
 331         /* following case for partial installs that may fail */
 332         if (!rdc_max_sets)
 333                 rdc_max_sets = 1024;
 334 
 335         rdc_k_info = kmem_zalloc(sizeof (*rdc_k_info) * rdc_max_sets, KM_SLEEP);
 336         if (!rdc_k_info)
 337                 return (ENOMEM);
 338 
 339         rdc_u_info = kmem_zalloc(sizeof (*rdc_u_info) * rdc_max_sets, KM_SLEEP);
 340         if (!rdc_u_info) {
 341                 kmem_free(rdc_k_info, sizeof (*rdc_k_info) * rdc_max_sets);
 342                 return (ENOMEM);
 343         }
 344 
 345         net_exit = ATM_NONE;
 346         for (i = 0; i < rdc_max_sets; i++) {
 347                 krdc = &rdc_k_info[i];
 348                 bzero(krdc, sizeof (*krdc));
 349                 krdc->index = i;
 350                 mutex_init(&krdc->dc_sleep, NULL, MUTEX_DRIVER, NULL);
 351                 mutex_init(&krdc->bmapmutex, NULL, MUTEX_DRIVER, NULL);
 352                 mutex_init(&krdc->kstat_mutex, NULL, MUTEX_DRIVER, NULL);
 353                 mutex_init(&krdc->bmp_kstat_mutex, NULL, MUTEX_DRIVER, NULL);
 354                 mutex_init(&krdc->syncbitmutex, NULL, MUTEX_DRIVER, NULL);
 355                 cv_init(&krdc->busycv, NULL, CV_DRIVER, NULL);
 356                 cv_init(&krdc->closingcv, NULL, CV_DRIVER, NULL);
 357                 cv_init(&krdc->haltcv, NULL, CV_DRIVER, NULL);
 358                 cv_init(&krdc->synccv, NULL, CV_DRIVER, NULL);
 359         }
 360 
 361         rdc_volume_update = nsc_register_svc("RDCVolumeUpdated",
 362             rdc_volume_update_svc);
 363 




 316 
 317         mutex_init(&rdc_ping_lock, NULL, MUTEX_DRIVER, NULL);
 318         mutex_init(&net_blk_lock, NULL, MUTEX_DRIVER, NULL);
 319         mutex_init(&rdc_conf_lock, NULL, MUTEX_DRIVER, NULL);
 320         mutex_init(&rdc_many_lock, NULL, MUTEX_DRIVER, NULL);
 321         mutex_init(&rdc_net_hnd_id_lock, NULL, MUTEX_DRIVER, NULL);
 322         mutex_init(&rdc_clnt_lock, NULL, MUTEX_DRIVER, NULL);
 323         mutex_init(&sync_info.lock, NULL, MUTEX_DRIVER, NULL);
 324 
 325 #ifdef DEBUG
 326         mutex_init(&rdc_cntlock, NULL, MUTEX_DRIVER, NULL);
 327 #endif
 328 
 329         if ((i = nsc_max_devices()) < rdc_max_sets)
 330                 rdc_max_sets = i;
 331         /* following case for partial installs that may fail */
 332         if (!rdc_max_sets)
 333                 rdc_max_sets = 1024;
 334 
 335         rdc_k_info = kmem_zalloc(sizeof (*rdc_k_info) * rdc_max_sets, KM_SLEEP);


 336 
 337         rdc_u_info = kmem_zalloc(sizeof (*rdc_u_info) * rdc_max_sets, KM_SLEEP);




 338 
 339         net_exit = ATM_NONE;
 340         for (i = 0; i < rdc_max_sets; i++) {
 341                 krdc = &rdc_k_info[i];
 342                 bzero(krdc, sizeof (*krdc));
 343                 krdc->index = i;
 344                 mutex_init(&krdc->dc_sleep, NULL, MUTEX_DRIVER, NULL);
 345                 mutex_init(&krdc->bmapmutex, NULL, MUTEX_DRIVER, NULL);
 346                 mutex_init(&krdc->kstat_mutex, NULL, MUTEX_DRIVER, NULL);
 347                 mutex_init(&krdc->bmp_kstat_mutex, NULL, MUTEX_DRIVER, NULL);
 348                 mutex_init(&krdc->syncbitmutex, NULL, MUTEX_DRIVER, NULL);
 349                 cv_init(&krdc->busycv, NULL, CV_DRIVER, NULL);
 350                 cv_init(&krdc->closingcv, NULL, CV_DRIVER, NULL);
 351                 cv_init(&krdc->haltcv, NULL, CV_DRIVER, NULL);
 352                 cv_init(&krdc->synccv, NULL, CV_DRIVER, NULL);
 353         }
 354 
 355         rdc_volume_update = nsc_register_svc("RDCVolumeUpdated",
 356             rdc_volume_update_svc);
 357