private = hid->ff_private = kcalloc(1, sizeof(struct hid_ff_pid), GFP_KERNEL); 
private = hid->ff_private = kzalloc(sizeof(struct hid_ff_pid), GFP_KERNEL); 
int hid_pid_init(struct hid_device *hid){	struct hid_ff_pid *private;	struct hid_input *hidinput = list_entry(&hid->inputs, struct hid_input, list);	private = hid->ff_private = kcalloc(1, sizeof(struct hid_ff_pid), GFP_KERNEL);	if (!private)		return -ENOMEM;	private->hid = hid;	hid->ff_exit = hid_pid_exit;	hid->ff_event = hid_pid_event;	/* Open output URB */	if (!(private->urbffout = usb_alloc_urb(0, GFP_KERNEL))) {		kfree(private);		return -1;	}	usb_fill_control_urb(private->urbffout, hid->dev, 0,			     (void *)&private->ffcr, private->ctrl_buffer, 8,			     hid_pid_ctrl_out, hid);	hidinput->input.upload_effect = hid_pid_upload_effect;	hidinput->input.flush = hid_pid_flush;	hidinput->input.ff_effects_max = 8;	// A random default	set_bit(EV_FF, hidinput->input.evbit);	set_bit(EV_FF_STATUS, hidinput->input.evbit);	spin_lock_init(&private->lock);	printk(KERN_INFO "Force feedback driver for PID devices by Rodrigo Damazio <rdamazio@lsi.usp.br>.\n");	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7b842b6e3704f4b9606ff8a4ffe03579d9addf5e/pid.c/buggy/drivers/usb/input/pid.c