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