Message ID | 20200416150011.820984-2-hch@lst.de (mailing list archive) |
---|---|
State | Mainlined |
Commit | acfaaf52ebfd02de509bc212fc3e8c8bac187110 |
Headers | show |
Series | [1/7] ASoC: txx9: don't work around too small resource_size_t | expand |
On Thu, Apr 16, 2020 at 05:00:05PM +0200, Christoph Hellwig wrote: > The txx9 sound driver deends on HAS_TXX9_ACLC, which is only set for > three tx49xx SOCs, and thus always has a 64-bit phys_addr_t and > resource_size_t. Instead of poking into ioremap internals to work > around a potentially too small resource_size_t just add a BUILD_BUG_ON > to catch such a case. Acked-by: Mark Brown <broonie@kernel.org> or can I just apply this independently of the rest of the series?
On Thu, Apr 16, 2020 at 05:12:26PM +0100, Mark Brown wrote: > On Thu, Apr 16, 2020 at 05:00:05PM +0200, Christoph Hellwig wrote: > > The txx9 sound driver deends on HAS_TXX9_ACLC, which is only set for > > three tx49xx SOCs, and thus always has a 64-bit phys_addr_t and > > resource_size_t. Instead of poking into ioremap internals to work > > around a potentially too small resource_size_t just add a BUILD_BUG_ON > > to catch such a case. > > Acked-by: Mark Brown <broonie@kernel.org> > > or can I just apply this independently of the rest of the series? No, once ioremap is moved out of line the driver would otherwise fail to compile as it doesn't pull in the defintitions anymore.
diff --git a/sound/soc/txx9/txx9aclc-ac97.c b/sound/soc/txx9/txx9aclc-ac97.c index b1d9615f2375..7402448bdb09 100644 --- a/sound/soc/txx9/txx9aclc-ac97.c +++ b/sound/soc/txx9/txx9aclc-ac97.c @@ -175,6 +175,8 @@ static int txx9aclc_ac97_dev_probe(struct platform_device *pdev) int err; int irq; + BUILD_BUG_ON(sizeof(drvdata->physbase) > sizeof(r->start)); + irq = platform_get_irq(pdev, 0); if (irq < 0) return irq; @@ -190,10 +192,6 @@ static int txx9aclc_ac97_dev_probe(struct platform_device *pdev) platform_set_drvdata(pdev, drvdata); drvdata->physbase = r->start; - if (sizeof(drvdata->physbase) > sizeof(r->start) && - r->start >= TXX9_DIRECTMAP_BASE && - r->start < TXX9_DIRECTMAP_BASE + 0x400000) - drvdata->physbase |= 0xf00000000ull; err = devm_request_irq(&pdev->dev, irq, txx9aclc_ac97_irq, 0, dev_name(&pdev->dev), drvdata); if (err < 0)
The txx9 sound driver deends on HAS_TXX9_ACLC, which is only set for three tx49xx SOCs, and thus always has a 64-bit phys_addr_t and resource_size_t. Instead of poking into ioremap internals to work around a potentially too small resource_size_t just add a BUILD_BUG_ON to catch such a case. Signed-off-by: Christoph Hellwig <hch@lst.de> --- sound/soc/txx9/txx9aclc-ac97.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)