There is a change at the beginning:
In kernel 2.0.25:
/* limits */
#define MAX_CHRDEV 64
#define MAX_BLKDEV 64
In kernel 2.0.26 and the following kernels up to 2.0.28:
/* limits */
#define MAX_CHRDEV 128
#define MAX_BLKDEV 128
If I change MAX_BLKDEV back to 64 everything works well again. MAX_BLKDEV is
used in linux/drivers/scsi/scsi.c.
The use in scsi.c is only in a routine that's compiled #ifdef DEBUG_TIMEOUT, so
it seems rather unlikely that's the problem.
What version of GCC was being used to compile the kernel? Perhaps there is a
compiler bug that this change tickles. You'd think if this were a widespread
problem we'd have heard about it sooner.
Leonard