All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Avri Altman <avri.altman@wdc.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	linux-mmc@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, Ricky WU <ricky_wu@realtek.com>,
	Avri Altman <avri.altman@wdc.com>
Subject: Re: [PATCH v2 08/10] mmc: core: Allow mmc erase to carry large addresses
Date: Thu, 8 Aug 2024 04:15:40 +0800	[thread overview]
Message-ID: <202408080458.9guIB91o-lkp@intel.com> (raw)
In-Reply-To: <20240807060309.2403023-9-avri.altman@wdc.com>

Hi Avri,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v6.11-rc2 next-20240807]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Avri-Altman/mmc-sd-SDUC-Support-Recognition/20240807-140950
base:   linus/master
patch link:    https://lore.kernel.org/r/20240807060309.2403023-9-avri.altman%40wdc.com
patch subject: [PATCH v2 08/10] mmc: core: Allow mmc erase to carry large addresses
config: i386-randconfig-004-20240807 (https://download.01.org/0day-ci/archive/20240808/202408080458.9guIB91o-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240808/202408080458.9guIB91o-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408080458.9guIB91o-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: drivers/mmc/core/core.o: in function `mmc_do_erase':
>> drivers/mmc/core/core.c:1651: undefined reference to `__udivdi3'
>> ld: drivers/mmc/core/core.c:1652: undefined reference to `__udivdi3'
   ld: drivers/mmc/core/core.o: in function `mmc_erase':
>> drivers/mmc/core/core.c:1827: undefined reference to `__umoddi3'
   ld: drivers/mmc/core/core.o: in function `mmc_align_erase_size':
   drivers/mmc/core/core.c:1745: undefined reference to `__umoddi3'
   ld: drivers/mmc/core/core.o: in function `mmc_erase':
   drivers/mmc/core/core.c:1803: undefined reference to `__umoddi3'


vim +1651 drivers/mmc/core/core.c

dfe86cba7676d5 Adrian Hunter   2010-08-11  1618  
d3d1cbaa99327c Avri Altman     2024-08-07  1619  static int mmc_do_erase(struct mmc_card *card, sector_t from,
d3d1cbaa99327c Avri Altman     2024-08-07  1620  			sector_t to, unsigned int arg)
dfe86cba7676d5 Adrian Hunter   2010-08-11  1621  {
c7836d1593b87c Masahiro Yamada 2016-12-19  1622  	struct mmc_command cmd = {};
bb4eecf23be259 Baolin Wang     2016-07-25  1623  	unsigned int qty = 0, busy_timeout = 0;
e62f1e0b2384e2 Ulf Hansson     2021-05-04  1624  	bool use_r1b_resp;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1625  	int err;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1626  
8f11d1064e01e1 Adrian Hunter   2015-05-07  1627  	mmc_retune_hold(card->host);
8f11d1064e01e1 Adrian Hunter   2015-05-07  1628  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1629  	/*
dfe86cba7676d5 Adrian Hunter   2010-08-11  1630  	 * qty is used to calculate the erase timeout which depends on how many
dfe86cba7676d5 Adrian Hunter   2010-08-11  1631  	 * erase groups (or allocation units in SD terminology) are affected.
dfe86cba7676d5 Adrian Hunter   2010-08-11  1632  	 * We count erasing part of an erase group as one erase group.
dfe86cba7676d5 Adrian Hunter   2010-08-11  1633  	 * For SD, the allocation units are always a power of 2.  For MMC, the
dfe86cba7676d5 Adrian Hunter   2010-08-11  1634  	 * erase group size is almost certainly also power of 2, but it does not
dfe86cba7676d5 Adrian Hunter   2010-08-11  1635  	 * seem to insist on that in the JEDEC standard, so we fall back to
dfe86cba7676d5 Adrian Hunter   2010-08-11  1636  	 * division in that case.  SD may not specify an allocation unit size,
dfe86cba7676d5 Adrian Hunter   2010-08-11  1637  	 * in which case the timeout is based on the number of write blocks.
dfe86cba7676d5 Adrian Hunter   2010-08-11  1638  	 *
dfe86cba7676d5 Adrian Hunter   2010-08-11  1639  	 * Note that the timeout for secure trim 2 will only be correct if the
dfe86cba7676d5 Adrian Hunter   2010-08-11  1640  	 * number of erase groups specified is the same as the total of all
dfe86cba7676d5 Adrian Hunter   2010-08-11  1641  	 * preceding secure trim 1 commands.  Since the power may have been
dfe86cba7676d5 Adrian Hunter   2010-08-11  1642  	 * lost since the secure trim 1 commands occurred, it is generally
dfe86cba7676d5 Adrian Hunter   2010-08-11  1643  	 * impossible to calculate the secure trim 2 timeout correctly.
dfe86cba7676d5 Adrian Hunter   2010-08-11  1644  	 */
dfe86cba7676d5 Adrian Hunter   2010-08-11  1645  	if (card->erase_shift)
dfe86cba7676d5 Adrian Hunter   2010-08-11  1646  		qty += ((to >> card->erase_shift) -
dfe86cba7676d5 Adrian Hunter   2010-08-11  1647  			(from >> card->erase_shift)) + 1;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1648  	else if (mmc_card_sd(card))
dfe86cba7676d5 Adrian Hunter   2010-08-11  1649  		qty += to - from + 1;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1650  	else
dfe86cba7676d5 Adrian Hunter   2010-08-11 @1651  		qty += ((to / card->erase_size) -
dfe86cba7676d5 Adrian Hunter   2010-08-11 @1652  			(from / card->erase_size)) + 1;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1653  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1654  	if (!mmc_card_blockaddr(card)) {
dfe86cba7676d5 Adrian Hunter   2010-08-11  1655  		from <<= 9;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1656  		to <<= 9;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1657  	}
dfe86cba7676d5 Adrian Hunter   2010-08-11  1658  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1659  	if (mmc_card_sd(card))
dfe86cba7676d5 Adrian Hunter   2010-08-11  1660  		cmd.opcode = SD_ERASE_WR_BLK_START;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1661  	else
dfe86cba7676d5 Adrian Hunter   2010-08-11  1662  		cmd.opcode = MMC_ERASE_GROUP_START;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1663  	cmd.arg = from;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1664  	cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_AC;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1665  	err = mmc_wait_for_cmd(card->host, &cmd, 0);
dfe86cba7676d5 Adrian Hunter   2010-08-11  1666  	if (err) {
a3c76eb9d4a1e6 Girish K S      2011-10-11  1667  		pr_err("mmc_erase: group start error %d, "
dfe86cba7676d5 Adrian Hunter   2010-08-11  1668  		       "status %#x\n", err, cmd.resp[0]);
67716327eec7e9 Adrian Hunter   2011-08-29  1669  		err = -EIO;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1670  		goto out;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1671  	}
dfe86cba7676d5 Adrian Hunter   2010-08-11  1672  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1673  	memset(&cmd, 0, sizeof(struct mmc_command));
dfe86cba7676d5 Adrian Hunter   2010-08-11  1674  	if (mmc_card_sd(card))
dfe86cba7676d5 Adrian Hunter   2010-08-11  1675  		cmd.opcode = SD_ERASE_WR_BLK_END;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1676  	else
dfe86cba7676d5 Adrian Hunter   2010-08-11  1677  		cmd.opcode = MMC_ERASE_GROUP_END;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1678  	cmd.arg = to;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1679  	cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_AC;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1680  	err = mmc_wait_for_cmd(card->host, &cmd, 0);
dfe86cba7676d5 Adrian Hunter   2010-08-11  1681  	if (err) {
a3c76eb9d4a1e6 Girish K S      2011-10-11  1682  		pr_err("mmc_erase: group end error %d, status %#x\n",
dfe86cba7676d5 Adrian Hunter   2010-08-11  1683  		       err, cmd.resp[0]);
67716327eec7e9 Adrian Hunter   2011-08-29  1684  		err = -EIO;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1685  		goto out;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1686  	}
dfe86cba7676d5 Adrian Hunter   2010-08-11  1687  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1688  	memset(&cmd, 0, sizeof(struct mmc_command));
dfe86cba7676d5 Adrian Hunter   2010-08-11  1689  	cmd.opcode = MMC_ERASE;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1690  	cmd.arg = arg;
bb4eecf23be259 Baolin Wang     2016-07-25  1691  	busy_timeout = mmc_erase_timeout(card, arg, qty);
e62f1e0b2384e2 Ulf Hansson     2021-05-04  1692  	use_r1b_resp = mmc_prepare_busy_cmd(card->host, &cmd, busy_timeout);
bb4eecf23be259 Baolin Wang     2016-07-25  1693  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1694  	err = mmc_wait_for_cmd(card->host, &cmd, 0);
dfe86cba7676d5 Adrian Hunter   2010-08-11  1695  	if (err) {
a3c76eb9d4a1e6 Girish K S      2011-10-11  1696  		pr_err("mmc_erase: erase error %d, status %#x\n",
dfe86cba7676d5 Adrian Hunter   2010-08-11  1697  		       err, cmd.resp[0]);
dfe86cba7676d5 Adrian Hunter   2010-08-11  1698  		err = -EIO;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1699  		goto out;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1700  	}
dfe86cba7676d5 Adrian Hunter   2010-08-11  1701  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1702  	if (mmc_host_is_spi(card->host))
dfe86cba7676d5 Adrian Hunter   2010-08-11  1703  		goto out;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1704  
bb4eecf23be259 Baolin Wang     2016-07-25  1705  	/*
bb4eecf23be259 Baolin Wang     2016-07-25  1706  	 * In case of when R1B + MMC_CAP_WAIT_WHILE_BUSY is used, the polling
bb4eecf23be259 Baolin Wang     2016-07-25  1707  	 * shall be avoided.
bb4eecf23be259 Baolin Wang     2016-07-25  1708  	 */
bb4eecf23be259 Baolin Wang     2016-07-25  1709  	if ((card->host->caps & MMC_CAP_WAIT_WHILE_BUSY) && use_r1b_resp)
bb4eecf23be259 Baolin Wang     2016-07-25  1710  		goto out;
bb4eecf23be259 Baolin Wang     2016-07-25  1711  
0d84c3e6a5b2cd Ulf Hansson     2020-02-04  1712  	/* Let's poll to find out when the erase operation completes. */
04f967ad28c836 Ulf Hansson     2021-05-04  1713  	err = mmc_poll_for_busy(card, busy_timeout, false, MMC_BUSY_ERASE);
8fee476b219d18 Trey Ramsay     2012-11-16  1714  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1715  out:
8f11d1064e01e1 Adrian Hunter   2015-05-07  1716  	mmc_retune_release(card->host);
dfe86cba7676d5 Adrian Hunter   2010-08-11  1717  	return err;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1718  }
dfe86cba7676d5 Adrian Hunter   2010-08-11  1719  
71085123d27dc5 Baolin Wang     2016-09-07  1720  static unsigned int mmc_align_erase_size(struct mmc_card *card,
d3d1cbaa99327c Avri Altman     2024-08-07  1721  					 sector_t *from,
d3d1cbaa99327c Avri Altman     2024-08-07  1722  					 sector_t *to,
71085123d27dc5 Baolin Wang     2016-09-07  1723  					 unsigned int nr)
71085123d27dc5 Baolin Wang     2016-09-07  1724  {
d3d1cbaa99327c Avri Altman     2024-08-07  1725  	sector_t from_new = *from;
d3d1cbaa99327c Avri Altman     2024-08-07  1726  	unsigned int nr_new = nr, rem;
71085123d27dc5 Baolin Wang     2016-09-07  1727  
6c689886fbe41b Baolin Wang     2016-09-07  1728  	/*
6c689886fbe41b Baolin Wang     2016-09-07  1729  	 * When the 'card->erase_size' is power of 2, we can use round_up/down()
6c689886fbe41b Baolin Wang     2016-09-07  1730  	 * to align the erase size efficiently.
6c689886fbe41b Baolin Wang     2016-09-07  1731  	 */
6c689886fbe41b Baolin Wang     2016-09-07  1732  	if (is_power_of_2(card->erase_size)) {
d3d1cbaa99327c Avri Altman     2024-08-07  1733  		sector_t temp = from_new;
6c689886fbe41b Baolin Wang     2016-09-07  1734  
6c689886fbe41b Baolin Wang     2016-09-07  1735  		from_new = round_up(temp, card->erase_size);
6c689886fbe41b Baolin Wang     2016-09-07  1736  		rem = from_new - temp;
6c689886fbe41b Baolin Wang     2016-09-07  1737  
6c689886fbe41b Baolin Wang     2016-09-07  1738  		if (nr_new > rem)
6c689886fbe41b Baolin Wang     2016-09-07  1739  			nr_new -= rem;
6c689886fbe41b Baolin Wang     2016-09-07  1740  		else
6c689886fbe41b Baolin Wang     2016-09-07  1741  			return 0;
6c689886fbe41b Baolin Wang     2016-09-07  1742  
6c689886fbe41b Baolin Wang     2016-09-07  1743  		nr_new = round_down(nr_new, card->erase_size);
6c689886fbe41b Baolin Wang     2016-09-07  1744  	} else {
71085123d27dc5 Baolin Wang     2016-09-07  1745  		rem = from_new % card->erase_size;
71085123d27dc5 Baolin Wang     2016-09-07  1746  		if (rem) {
71085123d27dc5 Baolin Wang     2016-09-07  1747  			rem = card->erase_size - rem;
71085123d27dc5 Baolin Wang     2016-09-07  1748  			from_new += rem;
71085123d27dc5 Baolin Wang     2016-09-07  1749  			if (nr_new > rem)
71085123d27dc5 Baolin Wang     2016-09-07  1750  				nr_new -= rem;
71085123d27dc5 Baolin Wang     2016-09-07  1751  			else
71085123d27dc5 Baolin Wang     2016-09-07  1752  				return 0;
71085123d27dc5 Baolin Wang     2016-09-07  1753  		}
71085123d27dc5 Baolin Wang     2016-09-07  1754  
71085123d27dc5 Baolin Wang     2016-09-07  1755  		rem = nr_new % card->erase_size;
71085123d27dc5 Baolin Wang     2016-09-07  1756  		if (rem)
71085123d27dc5 Baolin Wang     2016-09-07  1757  			nr_new -= rem;
6c689886fbe41b Baolin Wang     2016-09-07  1758  	}
71085123d27dc5 Baolin Wang     2016-09-07  1759  
71085123d27dc5 Baolin Wang     2016-09-07  1760  	if (nr_new == 0)
71085123d27dc5 Baolin Wang     2016-09-07  1761  		return 0;
71085123d27dc5 Baolin Wang     2016-09-07  1762  
71085123d27dc5 Baolin Wang     2016-09-07  1763  	*to = from_new + nr_new;
71085123d27dc5 Baolin Wang     2016-09-07  1764  	*from = from_new;
71085123d27dc5 Baolin Wang     2016-09-07  1765  
71085123d27dc5 Baolin Wang     2016-09-07  1766  	return nr_new;
71085123d27dc5 Baolin Wang     2016-09-07  1767  }
71085123d27dc5 Baolin Wang     2016-09-07  1768  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1769  /**
dfe86cba7676d5 Adrian Hunter   2010-08-11  1770   * mmc_erase - erase sectors.
dfe86cba7676d5 Adrian Hunter   2010-08-11  1771   * @card: card to erase
dfe86cba7676d5 Adrian Hunter   2010-08-11  1772   * @from: first sector to erase
dfe86cba7676d5 Adrian Hunter   2010-08-11  1773   * @nr: number of sectors to erase
bc47e2f6f9e261 Avri Altman     2019-02-26  1774   * @arg: erase command argument
dfe86cba7676d5 Adrian Hunter   2010-08-11  1775   *
dfe86cba7676d5 Adrian Hunter   2010-08-11  1776   * Caller must claim host before calling this function.
dfe86cba7676d5 Adrian Hunter   2010-08-11  1777   */
d3d1cbaa99327c Avri Altman     2024-08-07  1778  int mmc_erase(struct mmc_card *card, sector_t from, unsigned int nr,
dfe86cba7676d5 Adrian Hunter   2010-08-11  1779  	      unsigned int arg)
dfe86cba7676d5 Adrian Hunter   2010-08-11  1780  {
d3d1cbaa99327c Avri Altman     2024-08-07  1781  	unsigned int rem;
d3d1cbaa99327c Avri Altman     2024-08-07  1782  	sector_t to = from + nr;
642c28ab86f766 David Jander    2015-06-23  1783  	int err;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1784  
94fe2580a2f3bb Ulf Hansson     2020-05-08  1785  	if (!(card->csd.cmdclass & CCC_ERASE))
dfe86cba7676d5 Adrian Hunter   2010-08-11  1786  		return -EOPNOTSUPP;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1787  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1788  	if (!card->erase_size)
dfe86cba7676d5 Adrian Hunter   2010-08-11  1789  		return -EOPNOTSUPP;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1790  
bc47e2f6f9e261 Avri Altman     2019-02-26  1791  	if (mmc_card_sd(card) && arg != SD_ERASE_ARG && arg != SD_DISCARD_ARG)
dfe86cba7676d5 Adrian Hunter   2010-08-11  1792  		return -EOPNOTSUPP;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1793  
bc47e2f6f9e261 Avri Altman     2019-02-26  1794  	if (mmc_card_mmc(card) && (arg & MMC_SECURE_ARGS) &&
dfe86cba7676d5 Adrian Hunter   2010-08-11  1795  	    !(card->ext_csd.sec_feature_support & EXT_CSD_SEC_ER_EN))
dfe86cba7676d5 Adrian Hunter   2010-08-11  1796  		return -EOPNOTSUPP;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1797  
489d144563f239 Christian Löhle 2022-11-17  1798  	if (mmc_card_mmc(card) && is_trim_arg(arg) &&
dfe86cba7676d5 Adrian Hunter   2010-08-11  1799  	    !(card->ext_csd.sec_feature_support & EXT_CSD_SEC_GB_CL_EN))
dfe86cba7676d5 Adrian Hunter   2010-08-11  1800  		return -EOPNOTSUPP;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1801  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1802  	if (arg == MMC_SECURE_ERASE_ARG) {
dfe86cba7676d5 Adrian Hunter   2010-08-11  1803  		if (from % card->erase_size || nr % card->erase_size)
dfe86cba7676d5 Adrian Hunter   2010-08-11  1804  			return -EINVAL;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1805  	}
dfe86cba7676d5 Adrian Hunter   2010-08-11  1806  
71085123d27dc5 Baolin Wang     2016-09-07  1807  	if (arg == MMC_ERASE_ARG)
71085123d27dc5 Baolin Wang     2016-09-07  1808  		nr = mmc_align_erase_size(card, &from, &to, nr);
dfe86cba7676d5 Adrian Hunter   2010-08-11  1809  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1810  	if (nr == 0)
dfe86cba7676d5 Adrian Hunter   2010-08-11  1811  		return 0;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1812  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1813  	if (to <= from)
dfe86cba7676d5 Adrian Hunter   2010-08-11  1814  		return -EINVAL;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1815  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1816  	/* 'from' and 'to' are inclusive */
dfe86cba7676d5 Adrian Hunter   2010-08-11  1817  	to -= 1;
dfe86cba7676d5 Adrian Hunter   2010-08-11  1818  
642c28ab86f766 David Jander    2015-06-23  1819  	/*
642c28ab86f766 David Jander    2015-06-23  1820  	 * Special case where only one erase-group fits in the timeout budget:
642c28ab86f766 David Jander    2015-06-23  1821  	 * If the region crosses an erase-group boundary on this particular
642c28ab86f766 David Jander    2015-06-23  1822  	 * case, we will be trimming more than one erase-group which, does not
642c28ab86f766 David Jander    2015-06-23  1823  	 * fit in the timeout budget of the controller, so we need to split it
642c28ab86f766 David Jander    2015-06-23  1824  	 * and call mmc_do_erase() twice if necessary. This special case is
642c28ab86f766 David Jander    2015-06-23  1825  	 * identified by the card->eg_boundary flag.
642c28ab86f766 David Jander    2015-06-23  1826  	 */
642c28ab86f766 David Jander    2015-06-23 @1827  	rem = card->erase_size - (from % card->erase_size);
489d144563f239 Christian Löhle 2022-11-17  1828  	if ((arg & MMC_TRIM_OR_DISCARD_ARGS) && card->eg_boundary && nr > rem) {
642c28ab86f766 David Jander    2015-06-23  1829  		err = mmc_do_erase(card, from, from + rem - 1, arg);
642c28ab86f766 David Jander    2015-06-23  1830  		from += rem;
642c28ab86f766 David Jander    2015-06-23  1831  		if ((err) || (to <= from))
642c28ab86f766 David Jander    2015-06-23  1832  			return err;
642c28ab86f766 David Jander    2015-06-23  1833  	}
642c28ab86f766 David Jander    2015-06-23  1834  
dfe86cba7676d5 Adrian Hunter   2010-08-11  1835  	return mmc_do_erase(card, from, to, arg);
dfe86cba7676d5 Adrian Hunter   2010-08-11  1836  }
dfe86cba7676d5 Adrian Hunter   2010-08-11  1837  EXPORT_SYMBOL(mmc_erase);
dfe86cba7676d5 Adrian Hunter   2010-08-11  1838  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2024-08-07 20:16 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-07  6:02 [PATCH v2 00/10] Add SDUC Support Avri Altman
2024-08-07  6:03 ` [PATCH v2 01/10] mmc: sd: SDUC Support Recognition Avri Altman
2024-08-09  9:53   ` Ricky WU
2024-08-10  7:58     ` Avri Altman
2024-08-13  5:42       ` Avri Altman
2024-08-07  6:03 ` [PATCH v2 02/10] mmc: sd: Add SD CSD version 3.0 Avri Altman
2024-08-07  6:03 ` [PATCH v2 03/10] mmc: sd: Add Extension memory addressing Avri Altman
2024-08-09  9:54   ` Ricky WU
2024-08-10  8:11     ` Avri Altman
2024-08-07  6:03 ` [PATCH v2 04/10] mmc: core: Add open-ended Ext " Avri Altman
2024-08-07  6:03 ` [PATCH v2 05/10] mmc: host: Always use manual-cmd23 in SDUC Avri Altman
2024-08-07  6:03 ` [PATCH v2 06/10] mmc: core: Add close-ended Ext memory addressing Avri Altman
2024-08-07  6:03 ` [PATCH v2 07/10] mmc: host: " Avri Altman
2024-08-07  6:03 ` [PATCH v2 08/10] mmc: core: Allow mmc erase to carry large addresses Avri Altman
2024-08-07 20:15   ` kernel test robot [this message]
2024-08-07 21:07   ` kernel test robot
2024-08-07  6:03 ` [PATCH v2 09/10] mmc: core: Add Ext memory addressing for erase Avri Altman
2024-08-07  6:03 ` [PATCH v2 10/10] mmc: core: Adjust ACMD22 to SDUC Avri Altman
2024-08-09  6:54 ` [PATCH v2 00/10] Add SDUC Support Ricky WU
2024-08-09  7:37   ` Avri Altman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202408080458.9guIB91o-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=avri.altman@wdc.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=ricky_wu@realtek.com \
    --cc=ulf.hansson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.