Skip to contentSkip to conversation

Hexagon: Export raw I/O routines for modules

PATCH Superseded Nathan Chancellor 2 participants 4 messages Jul 8, 2021 – Aug 4, 2021 Qualcomm hexagon architecture

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Hexagon: Export raw I/O routines for modules

When building ARCH=hexagon allmodconfig, the following errors occur:

ERROR: modpost: "__raw_readsl" [drivers/i3c/master/svc-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!

Export these symbols so that modules can use them without any errors.

Fixes 013bf24c3829 ("Hexagon: Provide basic implementation and/or stubs for I/O routines.")

---

It would be nice if this could get into 5.14 at some point so that we can build ARCH=hexagon allmodconfig in our CI.

 arch/hexagon/lib/io.c | 4 ++++
 1 file changed, 4 insertions(+)
arch/hexagon/lib/io.c +4 -0
index d35d69d6588c..55f75392857b 100644
@@ -27,6 +27,7 @@ void __raw_readsw(const void __iomem *addr, void *data, int len)
 		*dst++ = *src;
 
 }
+EXPORT_SYMBOL(__raw_readsw);
 
 /*
  * __raw_writesw - read words a short at a time
@@ -47,6 +48,7 @@ void __raw_writesw(void __iomem *addr, const void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_writesw);
 
 /*  Pretty sure len is pre-adjusted for the length of the access already */
 void __raw_readsl(const void __iomem *addr, void *data, int len)
@@ -62,6 +64,7 @@ void __raw_readsl(const void __iomem *addr, void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_readsl);
 
 void __raw_writesl(void __iomem *addr, const void *data, int len)
 {
@@ -76,3 +79,4 @@ void __raw_writesl(void __iomem *addr, const void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_writesl);

base-commit: f55966571d5eb2876a11e48e798b4592fa1ffbb7

Signature · 1 line
2.32.0.93.g670b81a890
#1 lore raw
Quoted 54 lines · Nathan Chancellor

When building ARCH=hexagon allmodconfig, the following errors occur:

ERROR: modpost: "__raw_readsl" [drivers/i3c/master/svc-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!

Export these symbols so that modules can use them without any errors.

Fixes 013bf24c3829 ("Hexagon: Provide basic implementation and/or stubs for I/O routines.")

---

It would be nice if this could get into 5.14 at some point so that we can build ARCH=hexagon allmodconfig in our CI.

 arch/hexagon/lib/io.c | 4 ++++
 1 file changed, 4 insertions(+)
arch/hexagon/lib/io.c +4 -0
index d35d69d6588c..55f75392857b 100644
@@ -27,6 +27,7 @@ void __raw_readsw(const void __iomem *addr, void *data, int len)
 		*dst++ = *src;
 
 }
+EXPORT_SYMBOL(__raw_readsw);
 
 /*
  * __raw_writesw - read words a short at a time
@@ -47,6 +48,7 @@ void __raw_writesw(void __iomem *addr, const void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_writesw);
 
 /*  Pretty sure len is pre-adjusted for the length of the access already */
 void __raw_readsl(const void __iomem *addr, void *data, int len)
@@ -62,6 +64,7 @@ void __raw_readsl(const void __iomem *addr, void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_readsl);
 
 void __raw_writesl(void __iomem *addr, const void *data, int len)
 {
@@ -76,3 +79,4 @@ void __raw_writesl(void __iomem *addr, const void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_writesl);
Quoted 3 lines

base-commit: f55966571d5eb2876a11e48e798b4592fa1ffbb7

Signature · 1 line
2.32.0.93.g670b81a890

Ping? Brian, if you do not want to carry this, can you give an ack so that Andrew can?

Cheers,
Nathan

Acked-by
#2 lore raw
Quoted 4 lines

-----Original Message-----
From: Nathan Chancellor <[email protected]>

...

Quoted 1 line · Nathan Chancellor

...

Quoted 21 lines
Quoted 3 lines

Export these symbols so that modules can use them without any errors.

Fixes 013bf24c3829 ("Hexagon: Provide basic implementation and/or stubs

for I/O routines.")

arch/hexagon/lib/io.c void __raw_readsw(const void __iomem *addr, void

Quoted 14 lines

---

It would be nice if this could get into 5.14 at some point so that we can build ARCH=hexagon allmodconfig in our CI.

 arch/hexagon/lib/io.c | 4 ++++
 1 file changed, 4 insertions(+)
arch/hexagon/lib/io.c +0 -0
index d35d69d6588c..55f75392857b 100644
@@ -27,6 +27,7 @@ void __raw_readsw(const void __iomem *addr, void

*data, int len)

Quoted 2 lines
arch/hexagon/lib/io.c +0 -0
 		*dst++ = *src;
 
Quoted 13 lines

arch/hexagon/lib/io.c void __raw_writesw(void __iomem *addr, const void

Quoted 6 lines
arch/hexagon/lib/io.c +1 -0
 }
+EXPORT_SYMBOL(__raw_readsw);
 
 /*
  * __raw_writesw - read words a short at a time
@@ -47,6 +48,7 @@ void __raw_writesw(void __iomem *addr, const void

*data, int len)

Quoted 6 lines
arch/hexagon/lib/io.c +1 -0
 }
+EXPORT_SYMBOL(__raw_writesw);
 
 /*  Pretty sure len is pre-adjusted for the length of the access

already */

Quoted 17 lines

arch/hexagon/lib/io.c void __raw_readsl(const void __iomem *addr, void

Quoted 2 lines
arch/hexagon/lib/io.c +0 -0
 void __raw_readsl(const void __iomem *addr, void *data, int len)
@@ -62,6 +64,7 @@ void __raw_readsl(const void __iomem *addr, void

*data, int len)

arch/hexagon/lib/io.c void __raw_writesl(void __iomem *addr, const void

Quoted 8 lines
arch/hexagon/lib/io.c +1 -0
 }
+EXPORT_SYMBOL(__raw_readsl);
 
 void __raw_writesl(void __iomem *addr, const void *data, int len)
 {
@@ -76,3 +79,4 @@ void __raw_writesl(void __iomem *addr, const void

*data, int len)

Quoted 5 lines
arch/hexagon/lib/io.c +1 -0
 }
+EXPORT_SYMBOL(__raw_writesl);
 
Quoted 6 lines
Quoted 3 lines

base-commit: f55966571d5eb2876a11e48e798b4592fa1ffbb7 --
2.32.0.93.g670b81a890

Ping? Brian, if you do not want to carry this, can you give an ack so that Andrew can?

#3 lore raw
In reply to Nathan Chancellor

Andrew, could you pick this up? Brian gave his ack and we just got a 0day report about this:

https://lore.kernel.org/r/[email protected]/

If you need me to resend this, I can.

Cheers,
Nathan

Quoted 57 lines · Nathan Chancellor

When building ARCH=hexagon allmodconfig, the following errors occur:

ERROR: modpost: "__raw_readsl" [drivers/i3c/master/svc-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!

Export these symbols so that modules can use them without any errors.

Fixes 013bf24c3829 ("Hexagon: Provide basic implementation and/or stubs for I/O routines.")

---

It would be nice if this could get into 5.14 at some point so that we can build ARCH=hexagon allmodconfig in our CI.

 arch/hexagon/lib/io.c | 4 ++++
 1 file changed, 4 insertions(+)
arch/hexagon/lib/io.c +4 -0
index d35d69d6588c..55f75392857b 100644
@@ -27,6 +27,7 @@ void __raw_readsw(const void __iomem *addr, void *data, int len)
 		*dst++ = *src;
 
 }
+EXPORT_SYMBOL(__raw_readsw);
 
 /*
  * __raw_writesw - read words a short at a time
@@ -47,6 +48,7 @@ void __raw_writesw(void __iomem *addr, const void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_writesw);
 
 /*  Pretty sure len is pre-adjusted for the length of the access already */
 void __raw_readsl(const void __iomem *addr, void *data, int len)
@@ -62,6 +64,7 @@ void __raw_readsl(const void __iomem *addr, void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_readsl);
 
 void __raw_writesl(void __iomem *addr, const void *data, int len)
 {
@@ -76,3 +79,4 @@ void __raw_writesl(void __iomem *addr, const void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_writesl);

base-commit: f55966571d5eb2876a11e48e798b4592fa1ffbb7

Signature · 1 line
2.32.0.93.g670b81a890