lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 13 Nov 2009 11:34:44 +0100
From:	Kristoffer Glembo <kristoffer@...sler.com>
To:	David Miller <davem@...emloft.net>
CC:	sfr@...b.auug.org.au, linux-next@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: linux-next: sparc tree build failure

I noticed just now that this patch broke the driver on LEON SPARC. It
does not find the root node by using of_find_node_by_name(NULL, "/").

I'm not sure whether this is because we build our OF tree wrong or if
it is an incorrect way of doing things. But if I instead change it to
of_find_node_by_path("/") it works fine.

Signed-off-by: Kristoffer Glembo <kristoffer@...sler.com>

---
  drivers/serial/apbuart.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/serial/apbuart.c b/drivers/serial/apbuart.c
index a1e9503..fe91319 100644
--- a/drivers/serial/apbuart.c
+++ b/drivers/serial/apbuart.c
@@ -609,7 +609,7 @@ static void grlib_apbuart_configure(void)
                 return;

         /* Get bus frequency */
-       rp = of_find_node_by_name(NULL, "/");
+       rp = of_find_node_by_path("/");
         rp = of_get_next_child(rp, NULL);
         prop = of_get_property(rp, "clock-frequency", NULL);
         freq_khz = *prop;
--
1.5.2.2


David Miller wrote:
> 
> Hmm, it took a tiny bit more than that :-)  Here's what I commited
> to fix this, thanks.
> 
> apbuart: Kill dependency on deprecated Sparc-only PROM interfaces.
> 
> Use the proper modern OF ones instead.
> 
> Noticed by Stephen Rothwell.
> 
> Signed-off-by: David S. Miller <davem@...emloft.net>
> ---
>  drivers/serial/apbuart.c |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/serial/apbuart.c b/drivers/serial/apbuart.c
> index c7883a3..5f9dec3 100644
> --- a/drivers/serial/apbuart.c
> +++ b/drivers/serial/apbuart.c
> @@ -29,7 +29,6 @@
>  #include <linux/io.h>
>  #include <linux/serial_core.h>
>  #include <asm/irq.h>
> -#include <asm/oplib.h>
>  
>  #include "apbuart.h"
>  
> @@ -596,10 +595,9 @@ static struct of_platform_driver grlib_apbuart_of_driver = {
>  static void grlib_apbuart_configure(void)
>  {
>  	static int enum_done;
> -	struct device_node *np;
> +	struct device_node *np, *rp;
>  	struct uart_port *port = NULL;
> -
> -	int node;
> +	const u32 *prop;
>  	int freq_khz;
>  	int v = 0, d = 0;
>  	unsigned int addr;
> @@ -610,8 +608,10 @@ static void grlib_apbuart_configure(void)
>  		return;
>  
>  	/* Get bus frequency */
> -	node = prom_getchild(prom_root_node);
> -	freq_khz = prom_getint(node, "clock-frequency");
> +	rp = of_find_node_by_name(NULL, "/");
> +	rp = of_get_next_child(rp, NULL);
> +	prop = of_get_property(rp, "clock-frequency", NULL);
> +	freq_khz = *prop;
>  
>  	line = 0;
>  	for_each_matching_node(np, apbuart_match) {

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ