Message ID | 20090610174323.28045.70169.sendpatchset@subratamodak.linux.ibm.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
Hi Subrata, On Wed, 10 Jun 2009 23:13:23 +0530 Subrata Modak <subrata@linux.vnet.ibm.com> wrote: > > /* Find the TBI PHY. If it's not there, we don't support SGMII */ > - ph = of_get_property(np, "tbi-handle", NULL); > + ph = (phandle *)of_get_property(np, "tbi-handle", NULL); You don't need this cast because of_get_property() returns "void *".
On Thu, 2009-06-11 at 11:05 +1000, Stephen Rothwell wrote: > Hi Subrata, > > On Wed, 10 Jun 2009 23:13:23 +0530 Subrata Modak <subrata@linux.vnet.ibm.com> wrote: > > > > /* Find the TBI PHY. If it's not there, we don't support SGMII */ > > - ph = of_get_property(np, "tbi-handle", NULL); > > + ph = (phandle *)of_get_property(np, "tbi-handle", NULL); > > You don't need this cast because of_get_property() returns "void *". Stephen, True. But without this gcc complains: CC [M] drivers/net/ucc_geth.o drivers/net/ucc_geth.c: In function ‘ucc_geth_probe’: drivers/net/ucc_geth.c:3824: warning: assignment discards qualifiers from pointer target type Else gcc just builds fine: CC [M] drivers/net/ucc_geth.o This is an just an extra caution to fix both the build and warning regression(s). Regards-- Subrata > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 2009-06-11 at 07:26 +0530, Subrata Modak wrote: > On Thu, 2009-06-11 at 11:05 +1000, Stephen Rothwell wrote: > > Hi Subrata, > > > > On Wed, 10 Jun 2009 23:13:23 +0530 Subrata Modak <subrata@linux.vnet.ibm.com> wrote: > > > > > > /* Find the TBI PHY. If it's not there, we don't support SGMII */ > > > - ph = of_get_property(np, "tbi-handle", NULL); > > > + ph = (phandle *)of_get_property(np, "tbi-handle", NULL); > > > > You don't need this cast because of_get_property() returns "void *". > > Stephen, > > True. But without this gcc complains: > > CC [M] drivers/net/ucc_geth.o > drivers/net/ucc_geth.c: In function ‘ucc_geth_probe’: > drivers/net/ucc_geth.c:3824: warning: assignment discards qualifiers from pointer target type ^^^^^^^^^^^ And what does that warning actually mean? Your cast actually introduces a bug. cheers
Subrata Modak <subrata@linux.vnet.ibm.com> writes: > On Thu, 2009-06-11 at 11:05 +1000, Stephen Rothwell wrote: >> Hi Subrata, >> >> On Wed, 10 Jun 2009 23:13:23 +0530 Subrata Modak <subrata@linux.vnet.ibm.com> wrote: >> > >> > /* Find the TBI PHY. If it's not there, we don't support SGMII */ >> > - ph = of_get_property(np, "tbi-handle", NULL); >> > + ph = (phandle *)of_get_property(np, "tbi-handle", NULL); >> >> You don't need this cast because of_get_property() returns "void *". > > Stephen, > > True. But without this gcc complains: > > CC [M] drivers/net/ucc_geth.o > drivers/net/ucc_geth.c: In function ‘ucc_geth_probe’: > drivers/net/ucc_geth.c:3824: warning: assignment discards qualifiers > from pointer target type ph should be declared const phandle *. Look at other uses of of_get_property. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- linux-2.6.30-rc8/drivers/net/ucc_geth.c.orig 2009-06-10 11:58:39.000000000 -0500 +++ linux-2.6.30-rc8/drivers/net/ucc_geth.c 2009-06-10 12:37:15.000000000 -0500 @@ -3595,6 +3595,8 @@ static const struct net_device_ops ucc_g static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *match) { + struct device_node *mdio; + phandle *ph; struct device *device = &ofdev->dev; struct device_node *np = ofdev->node; struct net_device *dev = NULL; @@ -3819,7 +3821,7 @@ static int ucc_geth_probe(struct of_devi ugeth->node = np; /* Find the TBI PHY. If it's not there, we don't support SGMII */ - ph = of_get_property(np, "tbi-handle", NULL); + ph = (phandle *)of_get_property(np, "tbi-handle", NULL); if (ph) { struct device_node *tbi = of_find_node_by_phandle(*ph); struct of_device *ofdev;