read_packet_data(char *buffer, loff_t pos, size_t count) 
static ssize_t read_packet_data(char *buffer, loff_t pos, size_t count) 
read_packet_data(char *buffer, loff_t pos, size_t count){	int retval;	size_t bytes_left;	size_t data_length;	char *ptempBuf = buffer;	unsigned long imagesize;	/* check to see if we have something to return */	if (rbu_data.num_packets == 0) {		pr_debug("read_packet_data: no packets written\n");		retval = -ENOMEM;		goto read_rbu_data_exit;	}	imagesize = rbu_data.num_packets * rbu_data.packetsize;	if (pos > imagesize) {		retval = 0;		printk(KERN_WARNING "dell_rbu:read_packet_data: "			"data underrun\n");		goto read_rbu_data_exit;	}	bytes_left = imagesize - pos;	data_length = min(bytes_left, count);	if ((retval = packet_read_list(ptempBuf, &data_length)) < 0)		goto read_rbu_data_exit;	if ((pos + count) > imagesize) {		rbu_data.packet_read_count = 0;		/* this was the last copy */		retval = bytes_left;	} else		retval = count;      read_rbu_data_exit:	return retval;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/dda8577fb5a00507e5aea737833190a10516b257/dell_rbu.c/buggy/drivers/firmware/dell_rbu.c