Re: [PATCH v7 03/37] sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

2018-02-21 Thread Arnd Bergmann
On Wed, Feb 21, 2018 at 9:05 AM, Greentime Hu  wrote:
> 2018-02-14 22:43 GMT+08:00 Arnd Bergmann :
>> On Tue, Feb 13, 2018 at 10:09 AM, Greentime Hu  wrote:
>>> A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
>>> ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU")
>>> will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
>>> in order to suppress re-definition errors we need to remove the #define
>>> in io_32.h.
>>>
>>> Also, the change adds a prototype for ioremap where size is size_t and
>>> offset is phys_addr_t so fix that as well.
>>>
>>> Signed-off-by: Greentime Hu 
>>
>> This patch should have been addressed to the sparclinux mailing list to
>> the maintainers can see it, otherwise they are unlikely to notice.
>>
>> Added it to Cc now.
>>
>> Can you confirm that the patches are ordered correctly in your series so that
>> at no point, sparc is in a state that fails to be build cleanly?
>>
>> If not, this may have to get merged into the other patch.
>
> Hi, Arnd:
>
> These 2 patch will cause sparc building error in any order.


>
> Should I merge them together like this?
>
> asm-generic/io.h: move ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of
> ifndef CONFIG_MMU
>
> It allows some architectures to use this generic macro instead of
> defining theirs.
>
> sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h
> It will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
> in order to suppress re-definition errors we need to remove the #define
> in arch/sparc/include/asm/io_32.h. Also, the change adds a prototype for
> ioremap where size is size_t and offset is phys_addr_t so fix that as well.
>
> Signed-off-by: Greentime Hu 

That looks reasonable since both patches are fairly small, yes.

For a more complex patch that requires interdependent changes
in different areas of the kernel, it may be necessary instead to
come up with a way to stage out the changes differently so they
are truly independent. Getting that right requires a bit practice
but is usually possible.

   Arnd


Re: [PATCH v7 03/37] sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

2018-02-21 Thread Arnd Bergmann
On Wed, Feb 21, 2018 at 9:05 AM, Greentime Hu  wrote:
> 2018-02-14 22:43 GMT+08:00 Arnd Bergmann :
>> On Tue, Feb 13, 2018 at 10:09 AM, Greentime Hu  wrote:
>>> A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
>>> ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU")
>>> will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
>>> in order to suppress re-definition errors we need to remove the #define
>>> in io_32.h.
>>>
>>> Also, the change adds a prototype for ioremap where size is size_t and
>>> offset is phys_addr_t so fix that as well.
>>>
>>> Signed-off-by: Greentime Hu 
>>
>> This patch should have been addressed to the sparclinux mailing list to
>> the maintainers can see it, otherwise they are unlikely to notice.
>>
>> Added it to Cc now.
>>
>> Can you confirm that the patches are ordered correctly in your series so that
>> at no point, sparc is in a state that fails to be build cleanly?
>>
>> If not, this may have to get merged into the other patch.
>
> Hi, Arnd:
>
> These 2 patch will cause sparc building error in any order.


>
> Should I merge them together like this?
>
> asm-generic/io.h: move ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of
> ifndef CONFIG_MMU
>
> It allows some architectures to use this generic macro instead of
> defining theirs.
>
> sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h
> It will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
> in order to suppress re-definition errors we need to remove the #define
> in arch/sparc/include/asm/io_32.h. Also, the change adds a prototype for
> ioremap where size is size_t and offset is phys_addr_t so fix that as well.
>
> Signed-off-by: Greentime Hu 

That looks reasonable since both patches are fairly small, yes.

For a more complex patch that requires interdependent changes
in different areas of the kernel, it may be necessary instead to
come up with a way to stage out the changes differently so they
are truly independent. Getting that right requires a bit practice
but is usually possible.

   Arnd


Re: [PATCH v7 03/37] sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

2018-02-21 Thread Greentime Hu
2018-02-14 22:43 GMT+08:00 Arnd Bergmann :
> On Tue, Feb 13, 2018 at 10:09 AM, Greentime Hu  wrote:
>> A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
>> ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU")
>> will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
>> in order to suppress re-definition errors we need to remove the #define
>> in io_32.h.
>>
>> Also, the change adds a prototype for ioremap where size is size_t and
>> offset is phys_addr_t so fix that as well.
>>
>> Signed-off-by: Greentime Hu 
>
> This patch should have been addressed to the sparclinux mailing list to
> the maintainers can see it, otherwise they are unlikely to notice.
>
> Added it to Cc now.
>
> Can you confirm that the patches are ordered correctly in your series so that
> at no point, sparc is in a state that fails to be build cleanly?
>
> If not, this may have to get merged into the other patch.

Hi, Arnd:

These 2 patch will cause sparc building error in any order.

commit af84603e339a6832052071aca1f2a16b8963cc2e
Author: Greentime Hu 
Date:   Tue Feb 13 17:09:07 2018 +0800

sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef
CONFIG_MMU")
will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
in order to suppress re-definition errors we need to remove the #define
in io_32.h.

Also, the change adds a prototype for ioremap where size is size_t and
offset is phys_addr_t so fix that as well.

Signed-off-by: Greentime Hu 

commit 1995b30ea6628b261192662741940c22ac978884
Author: Greentime Hu 
Date:   Tue Feb 13 17:09:06 2018 +0800

asm-generic/io.h: move
ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef
CONFIG_MMU

It allows some architectures to use this generic macro instead of
defining theirs.

Signed-off-by: Vincent Chen 
Signed-off-by: Greentime Hu 
Acked-by: Arnd Bergmann 

Should I merge them together like this?

asm-generic/io.h: move ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of
ifndef CONFIG_MMU

It allows some architectures to use this generic macro instead of
defining theirs.

sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h
It will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
in order to suppress re-definition errors we need to remove the #define
in arch/sparc/include/asm/io_32.h. Also, the change adds a prototype for
ioremap where size is size_t and offset is phys_addr_t so fix that as well.

Signed-off-by: Greentime Hu 


Re: [PATCH v7 03/37] sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

2018-02-21 Thread Greentime Hu
2018-02-14 22:43 GMT+08:00 Arnd Bergmann :
> On Tue, Feb 13, 2018 at 10:09 AM, Greentime Hu  wrote:
>> A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
>> ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU")
>> will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
>> in order to suppress re-definition errors we need to remove the #define
>> in io_32.h.
>>
>> Also, the change adds a prototype for ioremap where size is size_t and
>> offset is phys_addr_t so fix that as well.
>>
>> Signed-off-by: Greentime Hu 
>
> This patch should have been addressed to the sparclinux mailing list to
> the maintainers can see it, otherwise they are unlikely to notice.
>
> Added it to Cc now.
>
> Can you confirm that the patches are ordered correctly in your series so that
> at no point, sparc is in a state that fails to be build cleanly?
>
> If not, this may have to get merged into the other patch.

Hi, Arnd:

These 2 patch will cause sparc building error in any order.

commit af84603e339a6832052071aca1f2a16b8963cc2e
Author: Greentime Hu 
Date:   Tue Feb 13 17:09:07 2018 +0800

sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef
CONFIG_MMU")
will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
in order to suppress re-definition errors we need to remove the #define
in io_32.h.

Also, the change adds a prototype for ioremap where size is size_t and
offset is phys_addr_t so fix that as well.

Signed-off-by: Greentime Hu 

commit 1995b30ea6628b261192662741940c22ac978884
Author: Greentime Hu 
Date:   Tue Feb 13 17:09:06 2018 +0800

asm-generic/io.h: move
ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef
CONFIG_MMU

It allows some architectures to use this generic macro instead of
defining theirs.

Signed-off-by: Vincent Chen 
Signed-off-by: Greentime Hu 
Acked-by: Arnd Bergmann 

Should I merge them together like this?

asm-generic/io.h: move ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of
ifndef CONFIG_MMU

It allows some architectures to use this generic macro instead of
defining theirs.

sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h
It will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
in order to suppress re-definition errors we need to remove the #define
in arch/sparc/include/asm/io_32.h. Also, the change adds a prototype for
ioremap where size is size_t and offset is phys_addr_t so fix that as well.

Signed-off-by: Greentime Hu 


Re: [PATCH v7 03/37] sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

2018-02-14 Thread Arnd Bergmann
On Tue, Feb 13, 2018 at 10:09 AM, Greentime Hu  wrote:
> A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
> ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU")
> will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
> in order to suppress re-definition errors we need to remove the #define
> in io_32.h.
>
> Also, the change adds a prototype for ioremap where size is size_t and
> offset is phys_addr_t so fix that as well.
>
> Signed-off-by: Greentime Hu 

This patch should have been addressed to the sparclinux mailing list to
the maintainers can see it, otherwise they are unlikely to notice.

Added it to Cc now.

Can you confirm that the patches are ordered correctly in your series so that
at no point, sparc is in a state that fails to be build cleanly?

If not, this may have to get merged into the other patch.

Arnd

> ---
>  arch/sparc/include/asm/io_32.h | 5 -
>  arch/sparc/kernel/ioport.c | 4 ++--
>  2 files changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
> index cd51a89b393c..df2dc1784673 100644
> --- a/arch/sparc/include/asm/io_32.h
> +++ b/arch/sparc/include/asm/io_32.h
> @@ -127,12 +127,7 @@ static inline void sbus_memcpy_toio(volatile void 
> __iomem *dst,
>   * Bus number may be embedded in the higher bits of the physical address.
>   * This is why we have no bus number argument to ioremap().
>   */
> -void __iomem *ioremap(unsigned long offset, unsigned long size);
> -#define ioremap_nocache(X,Y)   ioremap((X),(Y))
> -#define ioremap_wc(X,Y)ioremap((X),(Y))
> -#define ioremap_wt(X,Y)ioremap((X),(Y))
>  void iounmap(volatile void __iomem *addr);
> -
>  /* Create a virtual mapping cookie for an IO port range */
>  void __iomem *ioport_map(unsigned long port, unsigned int nr);
>  void ioport_unmap(void __iomem *);
> diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
> index 7eeef80c02f7..3bcef9ce74df 100644
> --- a/arch/sparc/kernel/ioport.c
> +++ b/arch/sparc/kernel/ioport.c
> @@ -122,12 +122,12 @@ static void xres_free(struct xresource *xrp) {
>   *
>   * Bus type is always zero on IIep.
>   */
> -void __iomem *ioremap(unsigned long offset, unsigned long size)
> +void __iomem *ioremap(phys_addr_t offset, size_t size)
>  {
> char name[14];
>
> sprintf(name, "phys_%08x", (u32)offset);
> -   return _sparc_alloc_io(0, offset, size, name);
> +   return _sparc_alloc_io(0, (unsigned long)offset, size, name);
>  }
>  EXPORT_SYMBOL(ioremap);
>
> --
> 2.16.1
>


Re: [PATCH v7 03/37] sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

2018-02-14 Thread Arnd Bergmann
On Tue, Feb 13, 2018 at 10:09 AM, Greentime Hu  wrote:
> A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
> ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU")
> will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
> in order to suppress re-definition errors we need to remove the #define
> in io_32.h.
>
> Also, the change adds a prototype for ioremap where size is size_t and
> offset is phys_addr_t so fix that as well.
>
> Signed-off-by: Greentime Hu 

This patch should have been addressed to the sparclinux mailing list to
the maintainers can see it, otherwise they are unlikely to notice.

Added it to Cc now.

Can you confirm that the patches are ordered correctly in your series so that
at no point, sparc is in a state that fails to be build cleanly?

If not, this may have to get merged into the other patch.

Arnd

> ---
>  arch/sparc/include/asm/io_32.h | 5 -
>  arch/sparc/kernel/ioport.c | 4 ++--
>  2 files changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
> index cd51a89b393c..df2dc1784673 100644
> --- a/arch/sparc/include/asm/io_32.h
> +++ b/arch/sparc/include/asm/io_32.h
> @@ -127,12 +127,7 @@ static inline void sbus_memcpy_toio(volatile void 
> __iomem *dst,
>   * Bus number may be embedded in the higher bits of the physical address.
>   * This is why we have no bus number argument to ioremap().
>   */
> -void __iomem *ioremap(unsigned long offset, unsigned long size);
> -#define ioremap_nocache(X,Y)   ioremap((X),(Y))
> -#define ioremap_wc(X,Y)ioremap((X),(Y))
> -#define ioremap_wt(X,Y)ioremap((X),(Y))
>  void iounmap(volatile void __iomem *addr);
> -
>  /* Create a virtual mapping cookie for an IO port range */
>  void __iomem *ioport_map(unsigned long port, unsigned int nr);
>  void ioport_unmap(void __iomem *);
> diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
> index 7eeef80c02f7..3bcef9ce74df 100644
> --- a/arch/sparc/kernel/ioport.c
> +++ b/arch/sparc/kernel/ioport.c
> @@ -122,12 +122,12 @@ static void xres_free(struct xresource *xrp) {
>   *
>   * Bus type is always zero on IIep.
>   */
> -void __iomem *ioremap(unsigned long offset, unsigned long size)
> +void __iomem *ioremap(phys_addr_t offset, size_t size)
>  {
> char name[14];
>
> sprintf(name, "phys_%08x", (u32)offset);
> -   return _sparc_alloc_io(0, offset, size, name);
> +   return _sparc_alloc_io(0, (unsigned long)offset, size, name);
>  }
>  EXPORT_SYMBOL(ioremap);
>
> --
> 2.16.1
>


[PATCH v7 03/37] sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

2018-02-13 Thread Greentime Hu
A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU")
will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
in order to suppress re-definition errors we need to remove the #define
in io_32.h.

Also, the change adds a prototype for ioremap where size is size_t and
offset is phys_addr_t so fix that as well.

Signed-off-by: Greentime Hu 
---
 arch/sparc/include/asm/io_32.h | 5 -
 arch/sparc/kernel/ioport.c | 4 ++--
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index cd51a89b393c..df2dc1784673 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -127,12 +127,7 @@ static inline void sbus_memcpy_toio(volatile void __iomem 
*dst,
  * Bus number may be embedded in the higher bits of the physical address.
  * This is why we have no bus number argument to ioremap().
  */
-void __iomem *ioremap(unsigned long offset, unsigned long size);
-#define ioremap_nocache(X,Y)   ioremap((X),(Y))
-#define ioremap_wc(X,Y)ioremap((X),(Y))
-#define ioremap_wt(X,Y)ioremap((X),(Y))
 void iounmap(volatile void __iomem *addr);
-
 /* Create a virtual mapping cookie for an IO port range */
 void __iomem *ioport_map(unsigned long port, unsigned int nr);
 void ioport_unmap(void __iomem *);
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
index 7eeef80c02f7..3bcef9ce74df 100644
--- a/arch/sparc/kernel/ioport.c
+++ b/arch/sparc/kernel/ioport.c
@@ -122,12 +122,12 @@ static void xres_free(struct xresource *xrp) {
  *
  * Bus type is always zero on IIep.
  */
-void __iomem *ioremap(unsigned long offset, unsigned long size)
+void __iomem *ioremap(phys_addr_t offset, size_t size)
 {
char name[14];
 
sprintf(name, "phys_%08x", (u32)offset);
-   return _sparc_alloc_io(0, offset, size, name);
+   return _sparc_alloc_io(0, (unsigned long)offset, size, name);
 }
 EXPORT_SYMBOL(ioremap);
 
-- 
2.16.1



[PATCH v7 03/37] sparc: io: To use the define of ioremap_[nocache|wc|wb] in asm-generic/io.h

2018-02-13 Thread Greentime Hu
A commit for the nds32 architecture bootstrap("asm-generic/io.h: move
ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU")
will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that
in order to suppress re-definition errors we need to remove the #define
in io_32.h.

Also, the change adds a prototype for ioremap where size is size_t and
offset is phys_addr_t so fix that as well.

Signed-off-by: Greentime Hu 
---
 arch/sparc/include/asm/io_32.h | 5 -
 arch/sparc/kernel/ioport.c | 4 ++--
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index cd51a89b393c..df2dc1784673 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -127,12 +127,7 @@ static inline void sbus_memcpy_toio(volatile void __iomem 
*dst,
  * Bus number may be embedded in the higher bits of the physical address.
  * This is why we have no bus number argument to ioremap().
  */
-void __iomem *ioremap(unsigned long offset, unsigned long size);
-#define ioremap_nocache(X,Y)   ioremap((X),(Y))
-#define ioremap_wc(X,Y)ioremap((X),(Y))
-#define ioremap_wt(X,Y)ioremap((X),(Y))
 void iounmap(volatile void __iomem *addr);
-
 /* Create a virtual mapping cookie for an IO port range */
 void __iomem *ioport_map(unsigned long port, unsigned int nr);
 void ioport_unmap(void __iomem *);
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
index 7eeef80c02f7..3bcef9ce74df 100644
--- a/arch/sparc/kernel/ioport.c
+++ b/arch/sparc/kernel/ioport.c
@@ -122,12 +122,12 @@ static void xres_free(struct xresource *xrp) {
  *
  * Bus type is always zero on IIep.
  */
-void __iomem *ioremap(unsigned long offset, unsigned long size)
+void __iomem *ioremap(phys_addr_t offset, size_t size)
 {
char name[14];
 
sprintf(name, "phys_%08x", (u32)offset);
-   return _sparc_alloc_io(0, offset, size, name);
+   return _sparc_alloc_io(0, (unsigned long)offset, size, name);
 }
 EXPORT_SYMBOL(ioremap);
 
-- 
2.16.1