MIIPHYBB: Return 0xFFFF if the PHY is not asserting TA.
authorRichard Retanubun <RichardRetanubun@RuggedCom.com>
Thu, 2 Jul 2009 17:21:22 +0000 (13:21 -0400)
committerBen Warren <biggerbadderben@gmail.com>
Thu, 23 Jul 2009 05:53:44 +0000 (22:53 -0700)
This patch sets the returned value to 0xFFFF if the PHY does not exist
and does not assert Transfer Acknowledge. A NULL check for the value
pointer is also added for buffer overflow protection.

Without this patch 'mii info' will  show 'phantom' devices because the
value will be not be initialized and return with some random value.

Signed-off-by: Richard Retanubun <RichardRetanubun@RuggedCom.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
drivers/net/phy/miiphybb.c

index e3c163a349f7eed46ec379c4e2fb3bd00ad2cd3c..b77c917462ad654f53da93d9cf9eac3d0039ecb9 100644 (file)
@@ -127,6 +127,11 @@ int bb_miiphy_read (char *devname, unsigned char addr,
        volatile ioport_t *iop = ioport_addr ((immap_t *) CONFIG_SYS_IMMR, MDIO_PORT);
 #endif
 
+       if (value == NULL) {
+               puts("NULL value pointer\n");
+               return (-1);
+       }
+
        miiphy_pre (1, addr, reg);
 
        /* tri-state our MDIO I/O pin so we can read */
@@ -145,6 +150,8 @@ int bb_miiphy_read (char *devname, unsigned char addr,
                        MDC (1);
                        MIIDELAY;
                }
+               /* There is no PHY, set value to 0xFFFF and return */
+               *value = 0xFFFF;
                return (-1);
        }