Print this page
8368 remove warlock leftovers from usr/src/uts


 211                 return (DDI_FAILURE);
 212         }
 213 
 214         if (ddi_soft_state_zalloc(av1394_statep, instance) != 0) {
 215                 TNF_PROBE_0(av1394_attach_error_soft_state_zalloc,
 216                     AV1394_TNF_INST_ERROR, "");
 217                 AV1394_TNF_EXIT(av1394_attach);
 218                 return (DDI_FAILURE);
 219         }
 220         avp = AV1394_INST2STATE(instance);
 221 
 222         if (av1394_t1394_attach(avp, dip) != DDI_SUCCESS) {
 223                 av1394_cleanup(avp, 1);
 224                 AV1394_TNF_EXIT(av1394_attach);
 225                 return (DDI_FAILURE);
 226         }
 227 
 228         mutex_init(&avp->av_mutex, NULL, MUTEX_DRIVER,
 229             avp->av_attachinfo.iblock_cookie);
 230 
 231 #ifndef __lock_lint
 232         avp->av_dip = dip;
 233         avp->av_instance = instance;
 234 #endif
 235 
 236         if (av1394_add_events(avp) != DDI_SUCCESS) {
 237                 av1394_cleanup(avp, 2);
 238                 AV1394_TNF_EXIT(av1394_attach);
 239                 return (DDI_FAILURE);
 240         }
 241 
 242         if (av1394_isoch_attach(avp) != DDI_SUCCESS) {
 243                 av1394_cleanup(avp, 3);
 244                 AV1394_TNF_EXIT(av1394_attach);
 245                 return (DDI_FAILURE);
 246         }
 247 
 248         if (av1394_async_attach(avp) != DDI_SUCCESS) {
 249                 av1394_cleanup(avp, 4);
 250                 AV1394_TNF_EXIT(av1394_attach);
 251                 return (DDI_FAILURE);
 252         }
 253 
 254 #ifndef __lock_lint
 255         avp->av_dev_state = AV1394_DEV_ONLINE;
 256 #endif
 257 
 258         ddi_report_dev(dip);
 259 
 260         AV1394_TNF_EXIT(av1394_attach);
 261         return (DDI_SUCCESS);
 262 }
 263 
 264 static int
 265 av1394_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
 266 {
 267         int             instance = ddi_get_instance(dip);
 268         av1394_inst_t   *avp;
 269 
 270         AV1394_TNF_ENTER(av1394_detach);
 271 
 272         if ((avp = AV1394_INST2STATE(instance)) == NULL) {
 273                 TNF_PROBE_0(av1394_detach_error_instance,
 274                     AV1394_TNF_INST_ERROR, "");
 275                 AV1394_TNF_EXIT(av1394_detach);
 276                 return (DDI_FAILURE);




 211                 return (DDI_FAILURE);
 212         }
 213 
 214         if (ddi_soft_state_zalloc(av1394_statep, instance) != 0) {
 215                 TNF_PROBE_0(av1394_attach_error_soft_state_zalloc,
 216                     AV1394_TNF_INST_ERROR, "");
 217                 AV1394_TNF_EXIT(av1394_attach);
 218                 return (DDI_FAILURE);
 219         }
 220         avp = AV1394_INST2STATE(instance);
 221 
 222         if (av1394_t1394_attach(avp, dip) != DDI_SUCCESS) {
 223                 av1394_cleanup(avp, 1);
 224                 AV1394_TNF_EXIT(av1394_attach);
 225                 return (DDI_FAILURE);
 226         }
 227 
 228         mutex_init(&avp->av_mutex, NULL, MUTEX_DRIVER,
 229             avp->av_attachinfo.iblock_cookie);
 230 

 231         avp->av_dip = dip;
 232         avp->av_instance = instance;

 233 
 234         if (av1394_add_events(avp) != DDI_SUCCESS) {
 235                 av1394_cleanup(avp, 2);
 236                 AV1394_TNF_EXIT(av1394_attach);
 237                 return (DDI_FAILURE);
 238         }
 239 
 240         if (av1394_isoch_attach(avp) != DDI_SUCCESS) {
 241                 av1394_cleanup(avp, 3);
 242                 AV1394_TNF_EXIT(av1394_attach);
 243                 return (DDI_FAILURE);
 244         }
 245 
 246         if (av1394_async_attach(avp) != DDI_SUCCESS) {
 247                 av1394_cleanup(avp, 4);
 248                 AV1394_TNF_EXIT(av1394_attach);
 249                 return (DDI_FAILURE);
 250         }
 251 

 252         avp->av_dev_state = AV1394_DEV_ONLINE;

 253 
 254         ddi_report_dev(dip);
 255 
 256         AV1394_TNF_EXIT(av1394_attach);
 257         return (DDI_SUCCESS);
 258 }
 259 
 260 static int
 261 av1394_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
 262 {
 263         int             instance = ddi_get_instance(dip);
 264         av1394_inst_t   *avp;
 265 
 266         AV1394_TNF_ENTER(av1394_detach);
 267 
 268         if ((avp = AV1394_INST2STATE(instance)) == NULL) {
 269                 TNF_PROBE_0(av1394_detach_error_instance,
 270                     AV1394_TNF_INST_ERROR, "");
 271                 AV1394_TNF_EXIT(av1394_detach);
 272                 return (DDI_FAILURE);