It's there because the DMA mapping support code for a platform has to
be converted to handle these chains and audited to make sure the
conversion is right. Some platforms, such as sparc64, took a lot of
work to get right :-)
Once that macro is set, the block device driver has to support it too,
and there are knobs all the way down to the scsi host driver to
indicate this.
The idea is that all of this mess gets deleted in the end, it was
meant to be a safe transition scheme.
-