[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XenPPC] [pushed] [ppc] OF write method does not handle carriage return



On Tue, 2006-04-25 at 14:14 -0400, Jimi Xenidis wrote:
> changeset:   9945:89fe455f6461cbc0ae0c346dcdf010659ed6ec30
> user:        jimix@xxxxxxxxxxxxxxxxxxxxx
> date:        Tue Apr 18 13:04:01 2006 -0400
> files:       xen/arch/ppc/boot_of.c
> description:
> [ppc] OF write method does not handle carriage return
> 
> 
> diff -r e0f71307b61dca9087d0dfb22b4d64b470f9bc5f -r 
> 89fe455f6461cbc0ae0c346dcdf010659ed6ec30 xen/arch/ppc/boot_of.c
> --- a/xen/arch/ppc/boot_of.c  Tue Apr 11 11:51:04 2006 -0400
> +++ b/xen/arch/ppc/boot_of.c  Tue Apr 18 13:04:01 2006 -0400
> @@ -94,14 +94,48 @@ static int __init of_call(
>  }
>  
>  /* popular OF methods */
> +static int __init _of_write(int ih, const char *addr, u32 len)
> +{
> +    int rets[1] = { OF_FAILURE };
> +    if (of_call("write", 3, 1, rets, ih, addr, len) == OF_FAILURE) {
> +        return OF_FAILURE;
> +    }
> +    return rets[0];
> +}
> +
> +/* popular OF methods */
>  static int __init of_write(int ih, const char *addr, u32 len)
>  {
> -    int rets[1] = { OF_FAILURE };
> -
> -    if (of_call("write", 3, 1, rets, ih, addr, len) == OF_FAILURE) {
> -        return OF_FAILURE;
> -    }
> -    return rets[0];
> +    int rc;
> +    int i = 0;
> +    int sum = 0;
> +
> +    while (i < len) {
> +        if (addr[i] == '\n') {
> +            int l = len - i - 1;
> +            if (l > 0) {
> +                rc = _of_write(ih, addr, len - i - 1);
> +                if (rc == OF_FAILURE) return rc;

Please add a newline after the conditional.

> +                sum += rc;
> +            }
> +            rc = _of_write(ih, "\r\n", 2);
> +            if (rc == OF_FAILURE) return rc;

Again.

> +            sum += rc;
> +            i++;
> +            addr += i;
> +            len -= i;
> +            i = 0;
> +            continue;
> +        }
> +        i++;
> +    }
> +    if (len > 0) {
> +        rc = _of_write(ih, addr, len);
> +        if (rc == OF_FAILURE) return rc;

Again.

> +        sum += rc;
> +    }
> +            
> +    return sum;
>  }
>  
>  static int of_printf(const char *fmt, ...)
> 
> 
> 
> _______________________________________________
> Xen-ppc-devel mailing list
> Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-ppc-devel
-- 
Hollis Blanchard
IBM Linux Technology Center


_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.