us->pid = p; 
 /* Take a reference to the host for the control thread and * count it among all the threads we have launched.  Then * start it up. */ scsi_host_get(us_to_host(us)); 
static int usb_stor_acquire_resources(struct us_data *us){	int p;	us->current_urb = usb_alloc_urb(0, GFP_KERNEL);	if (!us->current_urb) {		US_DEBUGP("URB allocation failed\n");		return -ENOMEM;	}	/* Just before we start our control thread, initialize	 * the device if it needs initialization */	if (us->unusual_dev->initFunction) {		p = us->unusual_dev->initFunction(us);		if (p)			return p;	}	/* Start up our control thread */	p = kernel_thread(usb_stor_control_thread, us, CLONE_VM);	if (p < 0) {		printk(KERN_WARNING USB_STORAGE 		       "Unable to start control thread\n");		return p;	}	us->pid = p;	atomic_inc(&total_threads);	/* Wait for the thread to start */	wait_for_completion(&(us->notify));	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/3f13e66e219238e025ff561d69826da9342c3f4a/usb.c/clean/drivers/usb/storage/usb.c