Commit 9b2ffa61 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'mtd/fixes-for-6.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux

Pull mtd fixes from Miquel Raynal:
 "Four minor fixes for NAND controller drivers (cleanup path, double
  actions, and W=1 warning) as well as a cast to avoid overflows in an
  mtd device driver"

* tag 'mtd/fixes-for-6.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
  mtd: rawnand: omap2: Fix build warnings with W=1
  mtd: rawnand: arasan: Fix missing de-registration of NAND
  mtd: rawnand: arasan: Fix double assertion of chip-select
  mtd: diskonchip: Cast an operand to prevent potential overflow
  mtd: rawnand: fix double free in atmel_pmecc_create_user()
parents ef49c460 140054a2
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -1409,8 +1409,8 @@ static int anfc_parse_cs(struct arasan_nfc *nfc)
	 * case, the "not" chosen CS is assigned to nfc->spare_cs and selected
	 * whenever a GPIO CS must be asserted.
	 */
	if (nfc->cs_array && nfc->ncs > 2) {
		if (!nfc->cs_array[0] && !nfc->cs_array[1]) {
	if (nfc->cs_array) {
		if (nfc->ncs > 2 && !nfc->cs_array[0] && !nfc->cs_array[1]) {
			dev_err(nfc->dev,
				"Assign a single native CS when using GPIOs\n");
			return -EINVAL;
@@ -1478,8 +1478,15 @@ static int anfc_probe(struct platform_device *pdev)

static void anfc_remove(struct platform_device *pdev)
{
	int i;
	struct arasan_nfc *nfc = platform_get_drvdata(pdev);

	for (i = 0; i < nfc->ncs; i++) {
		if (nfc->cs_array[i]) {
			gpiod_put(nfc->cs_array[i]);
		}
	}

	anfc_chips_cleanup(nfc);
}

+1 −3
Original line number Diff line number Diff line
@@ -380,10 +380,8 @@ atmel_pmecc_create_user(struct atmel_pmecc *pmecc,
	user->delta = user->dmu + req->ecc.strength + 1;

	gf_tables = atmel_pmecc_get_gf_tables(req);
	if (IS_ERR(gf_tables)) {
		kfree(user);
	if (IS_ERR(gf_tables))
		return ERR_CAST(gf_tables);
	}

	user->gf_tables = gf_tables;

+1 −1
Original line number Diff line number Diff line
@@ -1098,7 +1098,7 @@ static inline int __init inftl_partscan(struct mtd_info *mtd, struct mtd_partiti
		    (i == 0) && (ip->firstUnit > 0)) {
			parts[0].name = " DiskOnChip IPL / Media Header partition";
			parts[0].offset = 0;
			parts[0].size = mtd->erasesize * ip->firstUnit;
			parts[0].size = (uint64_t)mtd->erasesize * ip->firstUnit;
			numparts = 1;
		}

+16 −0
Original line number Diff line number Diff line
@@ -254,6 +254,10 @@ static int omap_prefetch_reset(int cs, struct omap_nand_info *info)

/**
 * omap_nand_data_in_pref - NAND data in using prefetch engine
 * @chip: NAND chip
 * @buf: output buffer where NAND data is placed into
 * @len: length of transfer
 * @force_8bit: force 8-bit transfers
 */
static void omap_nand_data_in_pref(struct nand_chip *chip, void *buf,
				   unsigned int len, bool force_8bit)
@@ -297,6 +301,10 @@ static void omap_nand_data_in_pref(struct nand_chip *chip, void *buf,

/**
 * omap_nand_data_out_pref - NAND data out using Write Posting engine
 * @chip: NAND chip
 * @buf: input buffer that is sent to NAND
 * @len: length of transfer
 * @force_8bit: force 8-bit transfers
 */
static void omap_nand_data_out_pref(struct nand_chip *chip,
				    const void *buf, unsigned int len,
@@ -440,6 +448,10 @@ static inline int omap_nand_dma_transfer(struct nand_chip *chip,

/**
 * omap_nand_data_in_dma_pref - NAND data in using DMA and Prefetch
 * @chip: NAND chip
 * @buf: output buffer where NAND data is placed into
 * @len: length of transfer
 * @force_8bit: force 8-bit transfers
 */
static void omap_nand_data_in_dma_pref(struct nand_chip *chip, void *buf,
				       unsigned int len, bool force_8bit)
@@ -460,6 +472,10 @@ static void omap_nand_data_in_dma_pref(struct nand_chip *chip, void *buf,

/**
 * omap_nand_data_out_dma_pref - NAND data out using DMA and write posting
 * @chip: NAND chip
 * @buf: input buffer that is sent to NAND
 * @len: length of transfer
 * @force_8bit: force 8-bit transfers
 */
static void omap_nand_data_out_dma_pref(struct nand_chip *chip,
					const void *buf, unsigned int len,