INIT_WORK(&device->tape_dnr, tape_delayed_next_request, device); 
tape_alloc_device(void){	struct tape_device *device;	device = (struct tape_device *)		kmalloc(sizeof(struct tape_device), GFP_KERNEL);	if (device == NULL) {		DBF_EXCEPTION(2, "ti:no mem\n");		PRINT_INFO ("can't allocate memory for "			    "tape info structure\n");		return ERR_PTR(-ENOMEM);	}	memset(device, 0, sizeof(struct tape_device));	device->modeset_byte = (char *) kmalloc(1, GFP_KERNEL | GFP_DMA);	if (device->modeset_byte == NULL) {		DBF_EXCEPTION(2, "ti:no mem\n");		PRINT_INFO("can't allocate memory for modeset byte\n");		kfree(device);		return ERR_PTR(-ENOMEM);	}	INIT_LIST_HEAD(&device->req_queue);	INIT_LIST_HEAD(&device->node);	init_waitqueue_head(&device->state_change_wq);	device->tape_state = TS_INIT;	device->medium_state = MS_UNKNOWN;	*device->modeset_byte = 0;	device->first_minor = -1;	atomic_set(&device->ref_count, 1);	return device;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4111796d89b8cfa36054d65d9858460b5ec0e8c7/tape_core.c/buggy/drivers/s390/char/tape_core.c