Thread (1 message) 1 message, 1 author, 2012-03-01

[PATCH 2/8] serial: pxa: add OF support

From: Russell King - ARM Linux <hidden>
Date: 2012-03-01 09:48:53
Also in: linux-devicetree

On Thu, Mar 01, 2012 at 09:47:39AM +0000, Arnd Bergmann wrote:
On Thursday 01 March 2012, Haojian Zhuang wrote:
quoted
@@ -792,7 +826,7 @@ static int serial_pxa_probe(struct platform_device *dev)
        if (!mmres || !irqres)
                return -ENODEV;
 
-       sport = kzalloc(sizeof(struct uart_pxa_port), GFP_KERNEL);
+       sport = kzalloc(sizeof(struct uart_pxa_port) + 8, GFP_KERNEL);
        if (!sport)
                return -ENOMEM;
 
@@ -808,20 +842,18 @@ static int serial_pxa_probe(struct platform_device *dev)
+       ret = serial_pxa_probe_dt(dev, sport);
+       if (ret > 0)
+               sport->port.line = dev->id;
+       else if (ret < 0)
+               goto err_clk;
+       sport->name = (char *)((unsigned int)sport + 8);
+       /* name can't exceed 8 bytes */
+       sprintf(sport->name, "UART%d", sport->port.line + 1);
The pointer arithmetic looks wrong to me, both technically and morally ;-)

Since struct uart_pxa_port is a local data structure, why don't you just
turn the name field into a fixed-length array?
and then use snprintf() to ensure that it doesn't overflow.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help