BUG_ON(offs > PAGE_SIZE); 
static void pkt_make_local_copy(struct packet_data *pkt, struct page **pages, int *offsets){	int f, p, offs;	/* Copy all data to pkt->pages[] */	p = 0;	offs = 0;	for (f = 0; f < pkt->frames; f++) {		if (pages[f] != pkt->pages[p]) {			void *vfrom = kmap_atomic(pages[f], KM_USER0) + offsets[f];			void *vto = page_address(pkt->pages[p]) + offs;			memcpy(vto, vfrom, CD_FRAMESIZE);			kunmap_atomic(vfrom, KM_USER0);			pages[f] = pkt->pages[p];			offsets[f] = offs;		} else {			BUG_ON(offsets[f] != offs);		}		offs += CD_FRAMESIZE;		if (offs >= PAGE_SIZE) {			BUG_ON(offs > PAGE_SIZE);			offs = 0;			p++;		}	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/610827dee82731c7be5a135d750d194ac56881a9/pktcdvd.c/buggy/drivers/block/pktcdvd.c