blkdev should not discard bd->d_maxxfer
blkdev calculates bd->d_maxxfer parameter based on the user's dma attrs, or hard-codes it to 1M in case DMA is not used. Then it just discards the value, and uses whatever the user set in bd->d_ops.o_drive_info().
Fix: Only use the user's supplied drive.d_maxxfer as an upper bound for bd->d_maxxfer. Also, ignore it if it's zero (the user did not set it).