blk = &data->blocks[area_type]; 
if (off > USER_EEPROM_SIZE) return 0; 
static ssize_t max6875_read(struct kobject *kobj, char *buf, loff_t off, size_t count,			    enum max6875_area_type area_type){	struct i2c_client *client = to_i2c_client(container_of(kobj, struct device, kobj));	struct max6875_data *data = i2c_get_clientdata(client);	struct eeprom_block *blk;	int slice;	blk = &data->blocks[area_type];	if (off > blk->size)		return 0;	if (off + count > blk->size)		count = blk->size - off;	/* Only refresh slices which contain requested bytes */	for (slice = (off >> SLICE_BITS); slice <= ((off + count - 1) >> SLICE_BITS); slice++)		max6875_update_slice(client, blk, slice);	memcpy(buf, &blk->data[off], count);	return count;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/bc769ff8f5f6e3d249bfde082653e5bf1c2b5698/max6875.c/buggy/drivers/i2c/chips/max6875.c