doc2k: "formatting block"?

David Woodhouse dwmw2 at infradead.org
Tue Feb 6 14:28:04 EST 2001


On Tue, 6 Feb 2001, Ian Eure <Ian Eure wrote:

> while testing a 32mb doc2000, i see these messages:
> 
> -- snip --
> DiskOnChip 2000 found at address 0xD0000
> Flash chip found: Manufacturer ID: 98, Chip ID: 73 (Toshiba TH58V128DC)
> 2 flash chips found. Total DiskOnChip size: 32 Mb
> Block 807: referencing block 110 already in another chain
> Formatting chain at block 807
> Formatting block 807
> Unreferenced block 366, formatting it
> -- snip --

Eep. Can you reproduce it? Did this happen after the M-Systems drivers (or 
firmware) had been writing to the device, or is it purely our software? 
It's unlikely to be hardware.

I'm trying to grok that code - even if the block _is_ linked in another 
chain, we should be able to work out which chain it _ought_ to be in by 
its own VirtUnitNum entry. We still have to format the chain in which the 
block _isn't_ supposed to be, and there's definitely some data corruption 
happened, but we should be able to do a little better than we do ATM, I 
think.

I don't see how this could be caused by a fold in progress - we don't fold 
one chain into _another_, only into itself. But the comment implies 
otherwise...

	printk("Block %d: referencing block %d already in another chain\n", 
		block, rep_block);
	/* XXX: should handle correctly fold in progress chains */
	do_format_chain = 1;
	s->ReplUnitTable[block] = BLOCK_NIL;


-- 
dwmw2





To unsubscribe, send "unsubscribe mtd" to majordomo at infradead.org



More information about the linux-mtd mailing list