All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] use sparc64 version of prom/printf.c
@ 2008-12-07 18:29 Robert Reif
  2008-12-07 19:19 ` Sam Ravnborg
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Robert Reif @ 2008-12-07 18:29 UTC (permalink / raw)
  To: sparclinux

[-- Attachment #1: Type: text/plain, Size: 197 bytes --]

Use sparc64 version of prom/printf.c.

The only differences for sparc32 is that prom_printf is no longer 
exported for modules which should be OK.

Signed-off-by: Robert Reif <reif@earthlink.net>


[-- Attachment #2: prom-printf.diff.txt --]
[-- Type: text/plain, Size: 5419 bytes --]

 arch/sparc/include/asm/oplib_32.h |    2 +-
 arch/sparc/prom/Makefile          |    2 +-
 arch/sparc/prom/printf.c          |   47 ++++++++++++++++++++++++++++++++++++
 arch/sparc/prom/printf_32.c       |   48 -------------------------------------
 arch/sparc/prom/printf_64.c       |   47 ------------------------------------
 5 files changed, 49 insertions(+), 97 deletions(-)
 create mode 100644 arch/sparc/prom/printf.c
 delete mode 100644 arch/sparc/prom/printf_32.c
 delete mode 100644 arch/sparc/prom/printf_64.c

diff --git a/arch/sparc/include/asm/oplib_32.h b/arch/sparc/include/asm/oplib_32.h
index 3bdf56f..73d4552 100644
--- a/arch/sparc/include/asm/oplib_32.h
+++ b/arch/sparc/include/asm/oplib_32.h
@@ -136,7 +136,7 @@ extern char prom_getchar(void);
 extern void prom_putchar(char character);
 
 /* Prom's internal routines, don't use in kernel/boot code. */
-extern void prom_printf(char *fmt, ...);
+extern void prom_printf(const char *fmt, ...);
 extern void prom_write(const char *buf, unsigned int len);
 
 /* Multiprocessor operations... */
diff --git a/arch/sparc/prom/Makefile b/arch/sparc/prom/Makefile
index f8e0278..1b8c073 100644
--- a/arch/sparc/prom/Makefile
+++ b/arch/sparc/prom/Makefile
@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += palloc.o
 lib-$(CONFIG_SPARC32) += ranges.o
 lib-$(CONFIG_SPARC32) += segment.o
 lib-y                 += console_$(BITS).o
-lib-y                 += printf_$(BITS).o
+lib-y                 += printf.o
 lib-y                 += tree_$(BITS).o
 lib-$(CONFIG_SPARC64) += p1275.o
 lib-$(CONFIG_SPARC64) += cif.o
diff --git a/arch/sparc/prom/printf.c b/arch/sparc/prom/printf.c
new file mode 100644
index 0000000..660943e
--- /dev/null
+++ b/arch/sparc/prom/printf.c
@@ -0,0 +1,47 @@
+/*
+ * printf.c:  Internal prom library printf facility.
+ *
+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
+ * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
+ * Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com)
+ *
+ * We used to warn all over the code: DO NOT USE prom_printf(),
+ * and yet people do. Anton's banking code was outputting banks
+ * with prom_printf for most of the 2.4 lifetime. Since an effective
+ * stick is not available, we deployed a carrot: an early printk
+ * through PROM by means of -p boot option. This ought to fix it.
+ * USE printk; if you need, deploy -p.
+ */
+
+#include <linux/kernel.h>
+
+#include <asm/openprom.h>
+#include <asm/oplib.h>
+
+static char ppbuf[1024];
+
+void
+prom_write(const char *buf, unsigned int n)
+{
+	char ch;
+
+	while (n != 0) {
+		--n;
+		if ((ch = *buf++) == '\n')
+			prom_putchar('\r');
+		prom_putchar(ch);
+	}
+}
+
+void
+prom_printf(const char *fmt, ...)
+{
+	va_list args;
+	int i;
+
+	va_start(args, fmt);
+	i = vscnprintf(ppbuf, sizeof(ppbuf), fmt, args);
+	va_end(args);
+
+	prom_write(ppbuf, i);
+}
diff --git a/arch/sparc/prom/printf_32.c b/arch/sparc/prom/printf_32.c
deleted file mode 100644
index a36ab9c..0000000
--- a/arch/sparc/prom/printf_32.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * printf.c:  Internal prom library printf facility.
- *
- * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
- * Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com)
- *
- * We used to warn all over the code: DO NOT USE prom_printf(),
- * and yet people do. Anton's banking code was outputting banks
- * with prom_printf for most of the 2.4 lifetime. Since an effective
- * stick is not available, we deployed a carrot: an early printk
- * through PROM by means of -p boot option. This ought to fix it.
- * USE printk; if you need, deploy -p.
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-
-#include <asm/openprom.h>
-#include <asm/oplib.h>
-
-static char ppbuf[1024];
-
-void
-prom_write(const char *buf, unsigned int n)
-{
-	char ch;
-
-	while (n != 0) {
-		--n;
-		if ((ch = *buf++) == '\n')
-			prom_putchar('\r');
-		prom_putchar(ch);
-	}
-}
-
-void
-prom_printf(char *fmt, ...)
-{
-	va_list args;
-	int i;
-
-	va_start(args, fmt);
-	i = vscnprintf(ppbuf, sizeof(ppbuf), fmt, args);
-	va_end(args);
-
-	prom_write(ppbuf, i);
-}
-EXPORT_SYMBOL(prom_printf);
diff --git a/arch/sparc/prom/printf_64.c b/arch/sparc/prom/printf_64.c
deleted file mode 100644
index 660943e..0000000
--- a/arch/sparc/prom/printf_64.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * printf.c:  Internal prom library printf facility.
- *
- * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
- * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
- * Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com)
- *
- * We used to warn all over the code: DO NOT USE prom_printf(),
- * and yet people do. Anton's banking code was outputting banks
- * with prom_printf for most of the 2.4 lifetime. Since an effective
- * stick is not available, we deployed a carrot: an early printk
- * through PROM by means of -p boot option. This ought to fix it.
- * USE printk; if you need, deploy -p.
- */
-
-#include <linux/kernel.h>
-
-#include <asm/openprom.h>
-#include <asm/oplib.h>
-
-static char ppbuf[1024];
-
-void
-prom_write(const char *buf, unsigned int n)
-{
-	char ch;
-
-	while (n != 0) {
-		--n;
-		if ((ch = *buf++) == '\n')
-			prom_putchar('\r');
-		prom_putchar(ch);
-	}
-}
-
-void
-prom_printf(const char *fmt, ...)
-{
-	va_list args;
-	int i;
-
-	va_start(args, fmt);
-	i = vscnprintf(ppbuf, sizeof(ppbuf), fmt, args);
-	va_end(args);
-
-	prom_write(ppbuf, i);
-}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] use sparc64 version of prom/printf.c
  2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
@ 2008-12-07 19:19 ` Sam Ravnborg
  2008-12-07 19:40 ` Sam Ravnborg
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Sam Ravnborg @ 2008-12-07 19:19 UTC (permalink / raw)
  To: sparclinux

Hi Robert.

On Sun, Dec 07, 2008 at 01:29:42PM -0500, Robert Reif wrote:
> Use sparc64 version of prom/printf.c.
> 
> The only differences for sparc32 is that prom_printf is no longer 
> exported for modules which should be OK.

cyber200fb uses prom_prinf and can be built as a module.
From Kconfig:

config FB_CYBER2000
        tristate "CyberPro 2000/2010/5000 support"
        depends on FB && PCI && (BROKEN || !SPARC64)

So it looks to me we should keep the EXPORT.

	Sam

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] use sparc64 version of prom/printf.c
  2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
  2008-12-07 19:19 ` Sam Ravnborg
@ 2008-12-07 19:40 ` Sam Ravnborg
  2008-12-08  1:53 ` Robert Reif
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Sam Ravnborg @ 2008-12-07 19:40 UTC (permalink / raw)
  To: sparclinux

On Sun, Dec 07, 2008 at 08:19:21PM +0100, Sam Ravnborg wrote:
> Hi Robert.
> 
> On Sun, Dec 07, 2008 at 01:29:42PM -0500, Robert Reif wrote:
> > Use sparc64 version of prom/printf.c.
> > 
> > The only differences for sparc32 is that prom_printf is no longer 
> > exported for modules which should be OK.
> 
> cyber200fb uses prom_prinf and can be built as a module.
> >From Kconfig:
> 
> config FB_CYBER2000
>         tristate "CyberPro 2000/2010/5000 support"
>         depends on FB && PCI && (BROKEN || !SPARC64)
> 
> So it looks to me we should keep the EXPORT.

And a test bult with your patch confirmed this:
  MODPOST 5 modules
ERROR: "prom_printf" [drivers/video/cyber2000fb.ko] undefined!
make[2]: *** [__modpost] Error 1
make[1]: *** [modules] Error 2

Please redo your patch with the EXPORT kept.
I cannot see that it hurts sparc64 so no need to do it conditionally.

	Sam

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] use sparc64 version of prom/printf.c
  2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
  2008-12-07 19:19 ` Sam Ravnborg
  2008-12-07 19:40 ` Sam Ravnborg
@ 2008-12-08  1:53 ` Robert Reif
  2008-12-08  7:42 ` David Miller
  2008-12-08  9:00 ` David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: Robert Reif @ 2008-12-08  1:53 UTC (permalink / raw)
  To: sparclinux

Sam Ravnborg wrote:
> Hi Robert.
>
> On Sun, Dec 07, 2008 at 01:29:42PM -0500, Robert Reif wrote:
>   
>> Use sparc64 version of prom/printf.c.
>>
>> The only differences for sparc32 is that prom_printf is no longer 
>> exported for modules which should be OK.
>>     
>
> cyber200fb uses prom_prinf and can be built as a module.
> >From Kconfig:
>
> config FB_CYBER2000
>         tristate "CyberPro 2000/2010/5000 support"
>         depends on FB && PCI && (BROKEN || !SPARC64)
>
> So it looks to me we should keep the EXPORT.
>
> 	Sam
>
>   
Since this is the only driver that can use prom_printf in a module
and it appears that the only sparc system that uses it is an unreleased
version of the java station, wouldn't it be better to change the
prom_printf to a printk in this driver?

I didn't see this problem because I don't compile with pci support
because it's one of the things I have to disable to get a kernel
small enough to actually load.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] use sparc64 version of prom/printf.c
  2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
                   ` (2 preceding siblings ...)
  2008-12-08  1:53 ` Robert Reif
@ 2008-12-08  7:42 ` David Miller
  2008-12-08  9:00 ` David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2008-12-08  7:42 UTC (permalink / raw)
  To: sparclinux

From: Robert Reif <reif@earthlink.net>
Date: Sun, 07 Dec 2008 20:53:40 -0500

> Sam Ravnborg wrote:
> > Hi Robert.
> >
> > On Sun, Dec 07, 2008 at 01:29:42PM -0500, Robert Reif wrote:
> >   
> >> Use sparc64 version of prom/printf.c.
> >>
> >> The only differences for sparc32 is that prom_printf is no longer exported for modules which should be OK.
> >>     
> >
> > cyber200fb uses prom_prinf and can be built as a module.
> > >From Kconfig:
> >
> > config FB_CYBER2000
> >         tristate "CyberPro 2000/2010/5000 support"
> >         depends on FB && PCI && (BROKEN || !SPARC64)
> >
> > So it looks to me we should keep the EXPORT.
> >
> > 	Sam
> >
> >   
> Since this is the only driver that can use prom_printf in a module
> and it appears that the only sparc system that uses it is an unreleased
> version of the java station, wouldn't it be better to change the
> prom_printf to a printk in this driver?

That's a reasonable way to handle this problem.

The reason that prom_printf() tends to be widespread
is that long ago we didn't have a "-p" kernel boot
command line option which is useful for debugging
console driver failures.

Otherwise you don't get the message so have no idea
what has gone wrong :)

I'll sort this out, thanks guys.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] use sparc64 version of prom/printf.c
  2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
                   ` (3 preceding siblings ...)
  2008-12-08  7:42 ` David Miller
@ 2008-12-08  9:00 ` David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2008-12-08  9:00 UTC (permalink / raw)
  To: sparclinux

From: Robert Reif <reif@earthlink.net>
Date: Sun, 07 Dec 2008 13:29:42 -0500

> Use sparc64 version of prom/printf.c.
> 
> The only differences for sparc32 is that prom_printf is no longer exported for modules which should be OK.
> 
> Signed-off-by: Robert Reif <reif@earthlink.net>

Applied, thanks Robert.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-12-08  9:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
2008-12-07 19:19 ` Sam Ravnborg
2008-12-07 19:40 ` Sam Ravnborg
2008-12-08  1:53 ` Robert Reif
2008-12-08  7:42 ` David Miller
2008-12-08  9:00 ` David Miller

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.