fill_last_packet(void *data, size_t length) 
static int fill_last_packet(void *data, size_t length) 
fill_last_packet(void *data, size_t length){	struct list_head *ptemp_list;	struct packet_data *packet = NULL;	int packet_count = 0;	pr_debug("fill_last_packet: entry \n");	if (!rbu_data.num_packets) {		pr_debug("fill_last_packet: num_packets=0\n");		return -ENOMEM;	}	packet_count = rbu_data.num_packets;	ptemp_list = (&packet_data_head.list)->prev;	packet = list_entry(ptemp_list, struct packet_data, list);	if ((rbu_data.packet_write_count + length) > rbu_data.packetsize) {		pr_debug("dell_rbu:%s: packet size data "			"overrun\n", __FUNCTION__);		return -EINVAL;	}	pr_debug("fill_last_packet : buffer = %p\n", packet->data);	memcpy((packet->data + rbu_data.packet_write_count), data, length);	if ((rbu_data.packet_write_count + length) == rbu_data.packetsize) {		/*		 * this was the last data chunk in the packet		 * so reinitialize the packet data counter to zero		 */		rbu_data.packet_write_count = 0;	} else		rbu_data.packet_write_count += length;	pr_debug("fill_last_packet: exit \n");	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/dda8577fb5a00507e5aea737833190a10516b257/dell_rbu.c/buggy/drivers/firmware/dell_rbu.c