• Arnd Bergmann's avatar
    mtd: docg3: don't set conflicting BCH_CONST_PARAMS option · fbd70354
    Arnd Bergmann authored
    commit be2e1c9d upstream.
    I noticed during the creation of another bugfix that the BCH_CONST_PARAMS
    option that is set by DOCG3 breaks setting variable parameters for any
    other users of the BCH library code.
    The only other user we have today is the MTD_NAND software BCH
    implementation (most flash controllers use hardware BCH these days
    and are not affected). I considered removing BCH_CONST_PARAMS entirely
    because of the inherent conflict, but according to the description in
    lib/bch.c there is a significant performance benefit in keeping it.
    To avoid the immediate problem of the conflict between MTD_NAND_BCH
    and DOCG3, this only sets the constant parameters if MTD_NAND_BCH
    is disabled, which should fix the problem for all cases that
    are affected. This should also work for all stable kernels.
    Note that there is only one machine that actually seems to use the
    DOCG3 driver (arch/arm/mach-pxa/mioa701.c), so most users should have
    the driver disabled, but it almost certainly shows up if we wanted
    to test random kernels on machines that use software BCH in MTD.
    Fixes: d13d19ec
     ("mtd: docg3: add ECC correction code")
    Cc: stable@vger.kernel.org
    Cc: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>