ptr++; 
z90crypt_status_write(struct file *file, const char __user *buffer,		      unsigned long count, void *data){	int i, j, len, offs, found, eof;	unsigned char *lbuf;	unsigned int local_count;#define LBUFSIZE 600	lbuf = kmalloc(LBUFSIZE, GFP_KERNEL);	if (!lbuf) {		PRINTK("kmalloc failed!\n");		return 0;	}	if (count <= 0)		return 0;	local_count = UMIN((unsigned int)count, LBUFSIZE-1);	if (copy_from_user(lbuf, buffer, local_count) != 0) {		kfree(lbuf);		return -EFAULT;	}	lbuf[local_count-1] = '\0';	len = 0;	eof = 0;	found = 0;	while (!eof) {		found = scan_string(lbuf+len, local_count-len, &offs, &eof,				    "Online devices");		len += offs;		if (found == 1)			break;	}	if (eof) {		kfree(lbuf);		return count;	}	if (found)		found = scan_char(lbuf+len, local_count-len, &offs, &eof, '\n');	if (!found || eof) {		kfree(lbuf);		return count;	}	len += offs;	j = 0;	for (i = 0; i < 80; i++) {		switch (*(lbuf+len+i)) {		case '\t':		case ' ':			break;		case '\n':		default:			eof = 1;			break;		case '0':		case '1':		case '2':		case '3':		case '4':		case '5':			j++;			break;		case 'd':		case 'D':			disable_card(j);			j++;			break;		case 'e':		case 'E':			enable_card(j);			j++;			break;		}		if (eof)			break;	}	kfree(lbuf);	return count;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2dee702fcb197d80c1a94650fb611539dd8135ce/z90main.c/buggy/drivers/s390/crypto/z90main.c