[1/2] mtd: docg3: don't set conflicting BCH_CONST_PARAMS option

Message ID 20181011110639.2649053-1-arnd@arndb.de
State Accepted
Commit be2e1c9dcf76886a83fb1c433a316e26d4ca2550
Headers show
Series
  • [1/2] mtd: docg3: don't set conflicting BCH_CONST_PARAMS option
Related show

Commit Message

Arnd Bergmann Oct. 11, 2018, 11:06 a.m.
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: d13d19ece39f ("mtd: docg3: add ECC correction code")
Cc: stable@vger.kernel.org
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/mtd/devices/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.18.0

Comments

Boris Brezillon Nov. 5, 2018, 10:55 p.m. | #1
On Thu, 11 Oct 2018 13:06:16 +0200
Arnd Bergmann <arnd@arndb.de> wrote:

> 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: d13d19ece39f ("mtd: docg3: add ECC correction code")

> Cc: stable@vger.kernel.org

> Cc: Robert Jarzmik <robert.jarzmik@free.fr>

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Applied.

Thanks,

Boris

> ---

>  drivers/mtd/devices/Kconfig | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig

> index e514d57a0419..aa983422aa97 100644

> --- a/drivers/mtd/devices/Kconfig

> +++ b/drivers/mtd/devices/Kconfig

> @@ -207,7 +207,7 @@ comment "Disk-On-Chip Device Drivers"

>  config MTD_DOCG3

>  	tristate "M-Systems Disk-On-Chip G3"

>  	select BCH

> -	select BCH_CONST_PARAMS

> +	select BCH_CONST_PARAMS if !MTD_NAND_BCH

>  	select BITREVERSE

>  	help

>  	  This provides an MTD device driver for the M-Systems DiskOnChip

Patch

diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig
index e514d57a0419..aa983422aa97 100644
--- a/drivers/mtd/devices/Kconfig
+++ b/drivers/mtd/devices/Kconfig
@@ -207,7 +207,7 @@  comment "Disk-On-Chip Device Drivers"
 config MTD_DOCG3
 	tristate "M-Systems Disk-On-Chip G3"
 	select BCH
-	select BCH_CONST_PARAMS
+	select BCH_CONST_PARAMS if !MTD_NAND_BCH
 	select BITREVERSE
 	help
 	  This provides an MTD device driver for the M-Systems DiskOnChip