* [PATCH reset-next 0/2] reset: brcmstb: Misc fixes @ 2019-01-23 0:33 Florian Fainelli 2019-01-23 0:33 ` [PATCH reset-next 1/2] reset: brcmstb: Make it tristate Florian Fainelli ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Florian Fainelli @ 2019-01-23 0:33 UTC (permalink / raw) To: linux-kernel Cc: Florian Fainelli, Philipp Zabel, Rob Herring, Mark Rutland, Brian Norris, Gregory Fong, maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE, rdunlap, linux-next, sfr, paul.gortmaker Hi Philipp, These two patches fix some recent issues brought up by Paul and Randy, feel free to squash into c196cdc7659d ("reset: Add Broadcom STB SW_INIT reset controller driver") since this is only in reset/next and linux-next so far. Thank you! Florian Fainelli (2): reset: brcmstb: Make it tristate reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t drivers/reset/Kconfig | 3 ++- drivers/reset/reset-brcmstb.c | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH reset-next 1/2] reset: brcmstb: Make it tristate 2019-01-23 0:33 [PATCH reset-next 0/2] reset: brcmstb: Misc fixes Florian Fainelli @ 2019-01-23 0:33 ` Florian Fainelli 2019-01-23 0:33 ` [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t Florian Fainelli 2019-01-23 9:41 ` [PATCH reset-next 0/2] reset: brcmstb: Misc fixes Philipp Zabel 2 siblings, 0 replies; 8+ messages in thread From: Florian Fainelli @ 2019-01-23 0:33 UTC (permalink / raw) To: linux-kernel Cc: Florian Fainelli, Philipp Zabel, Rob Herring, Mark Rutland, Brian Norris, Gregory Fong, maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE, rdunlap, linux-next, sfr, paul.gortmaker The driver can be built as a module just fine, so let's make it selectable as such. Reported-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- drivers/reset/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig index 1ca03c57e049..d9a02b7f90cf 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -41,7 +41,8 @@ config RESET_BERLIN This enables the reset controller driver for Marvell Berlin SoCs. config RESET_BRCMSTB - bool "Broadcom STB reset controller" if COMPILE_TEST + tristate "Broadcom STB reset controller" + depends on ARCH_BRCMSTB || COMPILE_TEST default ARCH_BRCMSTB help This enables the reset controller driver for Broadcom STB SoCs using -- 2.17.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t 2019-01-23 0:33 [PATCH reset-next 0/2] reset: brcmstb: Misc fixes Florian Fainelli 2019-01-23 0:33 ` [PATCH reset-next 1/2] reset: brcmstb: Make it tristate Florian Fainelli @ 2019-01-23 0:33 ` Florian Fainelli 2019-01-23 0:53 ` Randy Dunlap ` (2 more replies) 2019-01-23 9:41 ` [PATCH reset-next 0/2] reset: brcmstb: Misc fixes Philipp Zabel 2 siblings, 3 replies; 8+ messages in thread From: Florian Fainelli @ 2019-01-23 0:33 UTC (permalink / raw) To: linux-kernel Cc: Florian Fainelli, Philipp Zabel, Rob Herring, Mark Rutland, Brian Norris, Gregory Fong, maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE, rdunlap, linux-next, sfr, paul.gortmaker On 32-bit architectures defining resource_size_t as 64-bit (because of PAE), we can run into a linker failure because of the modulo and the division against resource_size(), replace the two problematic operations with an alignment check on the register resource (instead of modulo), and the division with DIV_ROUND_CLOSEST_ULL(). Reported-by: Randy Dunlap <rdunlap@infradead.org> Fixes: c196cdc7659d ("reset: Add Broadcom STB SW_INIT reset controller driver") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- drivers/reset/reset-brcmstb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/reset/reset-brcmstb.c b/drivers/reset/reset-brcmstb.c index 01ab1f71518b..c4cab8b5052d 100644 --- a/drivers/reset/reset-brcmstb.c +++ b/drivers/reset/reset-brcmstb.c @@ -91,7 +91,8 @@ static int brcmstb_reset_probe(struct platform_device *pdev) return -ENOMEM; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (resource_size(res) % SW_INIT_BANK_SIZE) { + if (!IS_ALIGNED(res->start, SW_INIT_BANK_SIZE) || + !IS_AGLINED(resource_size(res), SW_INIT_BANK_SIZE)) { dev_err(kdev, "incorrect register range\n"); return -EINVAL; } @@ -103,7 +104,8 @@ static int brcmstb_reset_probe(struct platform_device *pdev) dev_set_drvdata(kdev, priv); priv->rcdev.owner = THIS_MODULE; - priv->rcdev.nr_resets = (resource_size(res) / SW_INIT_BANK_SIZE) * 32; + priv->rcdev.nr_resets = DIV_ROUND_CLOSEST_ULL(resource_size(res), + SW_INIT_BANK_SIZE) * 32; priv->rcdev.ops = &brcmstb_reset_ops; priv->rcdev.of_node = kdev->of_node; /* Use defaults: 1 cell and simple xlate function */ -- 2.17.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t 2019-01-23 0:33 ` [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t Florian Fainelli @ 2019-01-23 0:53 ` Randy Dunlap 2019-01-23 9:39 ` Philipp Zabel 2019-01-23 14:23 ` David Laight 2 siblings, 0 replies; 8+ messages in thread From: Randy Dunlap @ 2019-01-23 0:53 UTC (permalink / raw) To: Florian Fainelli, linux-kernel Cc: Philipp Zabel, Rob Herring, Mark Rutland, Brian Norris, Gregory Fong, maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE, linux-next, sfr, paul.gortmaker On 1/22/19 4:33 PM, Florian Fainelli wrote: > On 32-bit architectures defining resource_size_t as 64-bit (because of > PAE), we can run into a linker failure because of the modulo and the > division against resource_size(), replace the two problematic operations > with an alignment check on the register resource (instead of modulo), > and the division with DIV_ROUND_CLOSEST_ULL(). > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Fixes: c196cdc7659d ("reset: Add Broadcom STB SW_INIT reset controller driver") > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > --- > drivers/reset/reset-brcmstb.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/reset/reset-brcmstb.c b/drivers/reset/reset-brcmstb.c > index 01ab1f71518b..c4cab8b5052d 100644 > --- a/drivers/reset/reset-brcmstb.c > +++ b/drivers/reset/reset-brcmstb.c > @@ -91,7 +91,8 @@ static int brcmstb_reset_probe(struct platform_device *pdev) > return -ENOMEM; > > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (resource_size(res) % SW_INIT_BANK_SIZE) { > + if (!IS_ALIGNED(res->start, SW_INIT_BANK_SIZE) || > + !IS_AGLINED(resource_size(res), SW_INIT_BANK_SIZE)) { > dev_err(kdev, "incorrect register range\n"); > return -EINVAL; > } > @@ -103,7 +104,8 @@ static int brcmstb_reset_probe(struct platform_device *pdev) > dev_set_drvdata(kdev, priv); > > priv->rcdev.owner = THIS_MODULE; > - priv->rcdev.nr_resets = (resource_size(res) / SW_INIT_BANK_SIZE) * 32; > + priv->rcdev.nr_resets = DIV_ROUND_CLOSEST_ULL(resource_size(res), > + SW_INIT_BANK_SIZE) * 32; > priv->rcdev.ops = &brcmstb_reset_ops; > priv->rcdev.of_node = kdev->of_node; > /* Use defaults: 1 cell and simple xlate function */ > Hi Florian, This gives me: CC drivers/reset/reset-brcmstb.o ../drivers/reset/reset-brcmstb.c: In function ‘brcmstb_reset_probe’: ../drivers/reset/reset-brcmstb.c:95:6: error: implicit declaration of function ‘IS_AGLINED’ [-Werror=implicit-function-declaration] !IS_AGLINED(resource_size(res), SW_INIT_BANK_SIZE)) { ^ but if the typo is fixed, it is fine :) then you can added: Acked-by: Randy Dunlap <rdunlap@infradead.org> Thanks. -- ~Randy ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t 2019-01-23 0:33 ` [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t Florian Fainelli 2019-01-23 0:53 ` Randy Dunlap @ 2019-01-23 9:39 ` Philipp Zabel 2019-01-23 14:23 ` David Laight 2 siblings, 0 replies; 8+ messages in thread From: Philipp Zabel @ 2019-01-23 9:39 UTC (permalink / raw) To: Florian Fainelli, linux-kernel Cc: Rob Herring, Mark Rutland, Brian Norris, Gregory Fong, maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE, rdunlap, linux-next, sfr, paul.gortmaker Hi Florian, On Tue, 2019-01-22 at 16:33 -0800, Florian Fainelli wrote: > On 32-bit architectures defining resource_size_t as 64-bit (because of > PAE), we can run into a linker failure because of the modulo and the > division against resource_size(), replace the two problematic operations > with an alignment check on the register resource (instead of modulo), > and the division with DIV_ROUND_CLOSEST_ULL(). > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Fixes: c196cdc7659d ("reset: Add Broadcom STB SW_INIT reset controller driver") > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > --- > drivers/reset/reset-brcmstb.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/reset/reset-brcmstb.c b/drivers/reset/reset-brcmstb.c > index 01ab1f71518b..c4cab8b5052d 100644 > --- a/drivers/reset/reset-brcmstb.c > +++ b/drivers/reset/reset-brcmstb.c > @@ -91,7 +91,8 @@ static int brcmstb_reset_probe(struct platform_device *pdev) > return -ENOMEM; > > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (resource_size(res) % SW_INIT_BANK_SIZE) { > + if (!IS_ALIGNED(res->start, SW_INIT_BANK_SIZE) || > + !IS_AGLINED(resource_size(res), SW_INIT_BANK_SIZE)) { Typo. > dev_err(kdev, "incorrect register range\n"); > return -EINVAL; > } > @@ -103,7 +104,8 @@ static int brcmstb_reset_probe(struct platform_device *pdev) > dev_set_drvdata(kdev, priv); > > priv->rcdev.owner = THIS_MODULE; > - priv->rcdev.nr_resets = (resource_size(res) / SW_INIT_BANK_SIZE) * 32; > + priv->rcdev.nr_resets = DIV_ROUND_CLOSEST_ULL(resource_size(res), > + SW_INIT_BANK_SIZE) * 32; This should be DIV_ROUND_DOWN_ULL. regards Philipp ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t 2019-01-23 0:33 ` [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t Florian Fainelli 2019-01-23 0:53 ` Randy Dunlap 2019-01-23 9:39 ` Philipp Zabel @ 2019-01-23 14:23 ` David Laight 2 siblings, 0 replies; 8+ messages in thread From: David Laight @ 2019-01-23 14:23 UTC (permalink / raw) To: 'Florian Fainelli', linux-kernel@vger.kernel.org Cc: Philipp Zabel, Rob Herring, Mark Rutland, Brian Norris, Gregory Fong, maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE, rdunlap@infradead.org, linux-next@vger.kernel.org, sfr@canb.auug.org.au, paul.gortmaker@windriver.com From: Florian Fainelli > Sent: 23 January 2019 00:34 > > On 32-bit architectures defining resource_size_t as 64-bit (because of > PAE), we can run into a linker failure because of the modulo and the > division against resource_size(), replace the two problematic operations > with an alignment check on the register resource (instead of modulo), > and the division with DIV_ROUND_CLOSEST_ULL(). > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Fixes: c196cdc7659d ("reset: Add Broadcom STB SW_INIT reset controller driver") > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > --- > drivers/reset/reset-brcmstb.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/reset/reset-brcmstb.c b/drivers/reset/reset-brcmstb.c > index 01ab1f71518b..c4cab8b5052d 100644 > --- a/drivers/reset/reset-brcmstb.c > +++ b/drivers/reset/reset-brcmstb.c > @@ -91,7 +91,8 @@ static int brcmstb_reset_probe(struct platform_device *pdev) > return -ENOMEM; > > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (resource_size(res) % SW_INIT_BANK_SIZE) { > + if (!IS_ALIGNED(res->start, SW_INIT_BANK_SIZE) || > + !IS_AGLINED(resource_size(res), SW_INIT_BANK_SIZE)) { > dev_err(kdev, "incorrect register range\n"); > return -EINVAL; > } > @@ -103,7 +104,8 @@ static int brcmstb_reset_probe(struct platform_device *pdev) > dev_set_drvdata(kdev, priv); > > priv->rcdev.owner = THIS_MODULE; > - priv->rcdev.nr_resets = (resource_size(res) / SW_INIT_BANK_SIZE) * 32; > + priv->rcdev.nr_resets = DIV_ROUND_CLOSEST_ULL(resource_size(res), > + SW_INIT_BANK_SIZE) * 32; > priv->rcdev.ops = &brcmstb_reset_ops; > priv->rcdev.of_node = kdev->of_node; > /* Use defaults: 1 cell and simple xlate function */ Isn't it enough to assign resource_size(res) to an 'unsigned int' ? The value is never actually going to be over 4G. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales) ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH reset-next 0/2] reset: brcmstb: Misc fixes 2019-01-23 0:33 [PATCH reset-next 0/2] reset: brcmstb: Misc fixes Florian Fainelli 2019-01-23 0:33 ` [PATCH reset-next 1/2] reset: brcmstb: Make it tristate Florian Fainelli 2019-01-23 0:33 ` [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t Florian Fainelli @ 2019-01-23 9:41 ` Philipp Zabel 2019-01-23 22:56 ` Florian Fainelli 2 siblings, 1 reply; 8+ messages in thread From: Philipp Zabel @ 2019-01-23 9:41 UTC (permalink / raw) To: Florian Fainelli, linux-kernel Cc: Rob Herring, Mark Rutland, Brian Norris, Gregory Fong, maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE, rdunlap, linux-next, sfr, paul.gortmaker On Tue, 2019-01-22 at 16:33 -0800, Florian Fainelli wrote: > Hi Philipp, > > These two patches fix some recent issues brought up by Paul and Randy, > feel free to squash into c196cdc7659d ("reset: Add Broadcom STB SW_INIT > reset controller driver") since this is only in reset/next and > linux-next so far. If you want this squashed, feel free to submit an updated version of the original patches and I'll replace them. That way I don't have to decide how to stitch (or drop) the commit messages. thanks Philipp ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH reset-next 0/2] reset: brcmstb: Misc fixes 2019-01-23 9:41 ` [PATCH reset-next 0/2] reset: brcmstb: Misc fixes Philipp Zabel @ 2019-01-23 22:56 ` Florian Fainelli 0 siblings, 0 replies; 8+ messages in thread From: Florian Fainelli @ 2019-01-23 22:56 UTC (permalink / raw) To: Philipp Zabel, Florian Fainelli, linux-kernel Cc: Rob Herring, Mark Rutland, Brian Norris, Gregory Fong, maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE, rdunlap, linux-next, sfr, paul.gortmaker On 1/23/19 1:41 AM, Philipp Zabel wrote: > On Tue, 2019-01-22 at 16:33 -0800, Florian Fainelli wrote: >> Hi Philipp, >> >> These two patches fix some recent issues brought up by Paul and Randy, >> feel free to squash into c196cdc7659d ("reset: Add Broadcom STB SW_INIT >> reset controller driver") since this is only in reset/next and >> linux-next so far. > > If you want this squashed, feel free to submit an updated version of the > original patches and I'll replace them. That way I don't have to decide > how to stitch (or drop) the commit messages. Thanks, I sent you a replacement version for the second patch only, hope that is alright. -- Florian ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-01-23 22:56 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-01-23 0:33 [PATCH reset-next 0/2] reset: brcmstb: Misc fixes Florian Fainelli 2019-01-23 0:33 ` [PATCH reset-next 1/2] reset: brcmstb: Make it tristate Florian Fainelli 2019-01-23 0:33 ` [PATCH reset-next 2/2] reset: brcmstb: Fix 32-bit build with 64-bit resource_size_t Florian Fainelli 2019-01-23 0:53 ` Randy Dunlap 2019-01-23 9:39 ` Philipp Zabel 2019-01-23 14:23 ` David Laight 2019-01-23 9:41 ` [PATCH reset-next 0/2] reset: brcmstb: Misc fixes Philipp Zabel 2019-01-23 22:56 ` Florian Fainelli
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).