Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free()
Hello Joe, Sorry for late response, please see inline. Regards Ashish -Original Message- From: Joe Hershberger [mailto:joe.hershber...@gmail.com] Sent: Tuesday, March 07, 2017 3:39 AM To: Ashish Kumar <ashish.ku...@nxp.com> Cc: u-boot <u-boot@lists.denx.de>; Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> Subject: Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free() On Tue, Feb 21, 2017 at 1:47 AM, Ashish Kumar <ashish.ku...@nxp.com> wrote: > Hello Joe, > > Please see inline. > > Regards > Ashish > > -Original Message- > From: Joe Hershberger [mailto:joe.hershber...@gmail.com] > Sent: Thursday, February 16, 2017 5:22 AM > To: Ashish Kumar <ashish.ku...@nxp.com> > Cc: u-boot <u-boot@lists.denx.de> > Subject: Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update > priv->phydev after free() > > On Wed, Feb 15, 2017 at 9:26 AM, Ashish Kumar <ashish.ku...@nxp.com> wrote: >> From: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> >> >> Even after memory free of phydev, priv is still pointing to the >> obsolete address. >> So update priv->phydev as NULL after memory free. >> >> Signed-off-by: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> >> Signed-off-by: Ashish Kumar <ashish.ku...@nxp.com> > > Please always Cc me on network changes. > >> --- >> v2: >> Add signoff >> >> drivers/net/ldpaa_eth/ldpaa_eth.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c >> b/drivers/net/ldpaa_eth/ldpaa_eth.c >> index 4e61700..f235b62 100644 >> --- a/drivers/net/ldpaa_eth/ldpaa_eth.c >> +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c >> @@ -587,8 +587,10 @@ static void ldpaa_eth_stop(struct eth_device >> *net_dev) #ifdef CONFIG_PHYLIB >> if (priv->phydev && bus != NULL) >> phy_shutdown(priv->phydev); >> - else >> + else { >> free(priv->phydev); >> + priv->phydev = NULL; >> + } > > This is strange. Why not just drop the free? It seems bad to delete the > phydev just because the mdio interface is not there, especially in stop(). > [Ashish Kumar] To keep the flow consistent of XFI(which is phy-less) to other > phy based interface, in ldpaa_eth_open there are some dummy allocation, which > is freed in the end in stop(). It just seems strange to spread the logic out like that. Why not just check for this condition and avoid the initial allocation? [Ashish Kumar] In that case, I have to add flag all over the code as to first check if it is XFI, then skip the usage of structure (phydev)'s member. > if ((bus == NULL) && > (enet_if == PHY_INTERFACE_MODE_XGMII)) { > printf("%s %s %d\n",__FILE__, __func__, __LINE__); > priv->phydev = (struct phy_device *) > malloc(sizeof(struct phy_device)); > memset(priv->phydev, 0, sizeof(struct phy_device)); > > priv->phydev->speed = SPEED_1; > priv->phydev->link = 1; > priv->phydev->duplex = DUPLEX_FULL; > } > >> #endif >> >> ldpaa_dpbp_free(); >> -- >> 1.9.1 >> >> ___ >> U-Boot mailing list >> U-Boot@lists.denx.de >> http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free()
On Tue, Feb 21, 2017 at 1:47 AM, Ashish Kumar <ashish.ku...@nxp.com> wrote: > Hello Joe, > > Please see inline. > > Regards > Ashish > > -Original Message- > From: Joe Hershberger [mailto:joe.hershber...@gmail.com] > Sent: Thursday, February 16, 2017 5:22 AM > To: Ashish Kumar <ashish.ku...@nxp.com> > Cc: u-boot <u-boot@lists.denx.de> > Subject: Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev > after free() > > On Wed, Feb 15, 2017 at 9:26 AM, Ashish Kumar <ashish.ku...@nxp.com> wrote: >> From: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> >> >> Even after memory free of phydev, priv is still pointing to the >> obsolete address. >> So update priv->phydev as NULL after memory free. >> >> Signed-off-by: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> >> Signed-off-by: Ashish Kumar <ashish.ku...@nxp.com> > > Please always Cc me on network changes. > >> --- >> v2: >> Add signoff >> >> drivers/net/ldpaa_eth/ldpaa_eth.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c >> b/drivers/net/ldpaa_eth/ldpaa_eth.c >> index 4e61700..f235b62 100644 >> --- a/drivers/net/ldpaa_eth/ldpaa_eth.c >> +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c >> @@ -587,8 +587,10 @@ static void ldpaa_eth_stop(struct eth_device >> *net_dev) #ifdef CONFIG_PHYLIB >> if (priv->phydev && bus != NULL) >> phy_shutdown(priv->phydev); >> - else >> + else { >> free(priv->phydev); >> + priv->phydev = NULL; >> + } > > This is strange. Why not just drop the free? It seems bad to delete the > phydev just because the mdio interface is not there, especially in stop(). > [Ashish Kumar] To keep the flow consistent of XFI(which is phy-less) to other > phy based interface, in ldpaa_eth_open there are some dummy allocation, which > is freed in the end in stop(). It just seems strange to spread the logic out like that. Why not just check for this condition and avoid the initial allocation? > if ((bus == NULL) && > (enet_if == PHY_INTERFACE_MODE_XGMII)) { > printf("%s %s %d\n",__FILE__, __func__, __LINE__); > priv->phydev = (struct phy_device *) > malloc(sizeof(struct phy_device)); > memset(priv->phydev, 0, sizeof(struct phy_device)); > > priv->phydev->speed = SPEED_1; > priv->phydev->link = 1; > priv->phydev->duplex = DUPLEX_FULL; > } > >> #endif >> >> ldpaa_dpbp_free(); >> -- >> 1.9.1 >> >> ___ >> U-Boot mailing list >> U-Boot@lists.denx.de >> http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free()
Hello Joe, Could you please ack if there are no further queries. Regards Ashish -Original Message- From: U-Boot [mailto:u-boot-boun...@lists.denx.de] On Behalf Of Ashish Kumar Sent: Tuesday, February 21, 2017 1:17 PM To: Joe Hershberger <joe.hershber...@gmail.com> Cc: u-boot <u-boot@lists.denx.de> Subject: Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free() Hello Joe, Please see inline. Regards Ashish -Original Message- From: Joe Hershberger [mailto:joe.hershber...@gmail.com] Sent: Thursday, February 16, 2017 5:22 AM To: Ashish Kumar <ashish.ku...@nxp.com> Cc: u-boot <u-boot@lists.denx.de> Subject: Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free() On Wed, Feb 15, 2017 at 9:26 AM, Ashish Kumar <ashish.ku...@nxp.com> wrote: > From: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> > > Even after memory free of phydev, priv is still pointing to the > obsolete address. > So update priv->phydev as NULL after memory free. > > Signed-off-by: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> > Signed-off-by: Ashish Kumar <ashish.ku...@nxp.com> Please always Cc me on network changes. > --- > v2: > Add signoff > > drivers/net/ldpaa_eth/ldpaa_eth.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c > b/drivers/net/ldpaa_eth/ldpaa_eth.c > index 4e61700..f235b62 100644 > --- a/drivers/net/ldpaa_eth/ldpaa_eth.c > +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c > @@ -587,8 +587,10 @@ static void ldpaa_eth_stop(struct eth_device > *net_dev) #ifdef CONFIG_PHYLIB > if (priv->phydev && bus != NULL) > phy_shutdown(priv->phydev); > - else > + else { > free(priv->phydev); > + priv->phydev = NULL; > + } This is strange. Why not just drop the free? It seems bad to delete the phydev just because the mdio interface is not there, especially in stop(). [Ashish Kumar] To keep the flow consistent of XFI(which is phy-less) to other phy based interface, in ldpaa_eth_open there are some dummy allocation, which is freed in the end in stop(). if ((bus == NULL) && (enet_if == PHY_INTERFACE_MODE_XGMII)) { printf("%s %s %d\n",__FILE__, __func__, __LINE__); priv->phydev = (struct phy_device *) malloc(sizeof(struct phy_device)); memset(priv->phydev, 0, sizeof(struct phy_device)); priv->phydev->speed = SPEED_1; priv->phydev->link = 1; priv->phydev->duplex = DUPLEX_FULL; } > #endif > > ldpaa_dpbp_free(); > -- > 1.9.1 > > ___ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free()
On Tue, Feb 21, 2017 at 7:09 AM, Er Krishnawrote: > Hi Guys, > > I want to understand cpu release command of u-boot and its implementation. > > When we do cpu release the satndalone application (may be kernel > or so) starts running on particular processor. How does it happens ? Can > anyone pls let me know this logic and point me in U -boot code for this > function ? Please dispense with the top-posting and the thread hijacking. -Joe > BR/Krish > > On Tue, Feb 21, 2017 at 1:17 PM, Ashish Kumar wrote: > >> Hello Joe, >> >> Please see inline. >> >> Regards >> Ashish ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free()
Hi Guys, I want to understand cpu release command of u-boot and its implementation. When we do cpu release the satndalone application (may be kernel or so) starts running on particular processor. How does it happens ? Can anyone pls let me know this logic and point me in U -boot code for this function ? BR/Krish On Tue, Feb 21, 2017 at 1:17 PM, Ashish Kumar <ashish.ku...@nxp.com> wrote: > Hello Joe, > > Please see inline. > > Regards > Ashish > > -Original Message- > From: Joe Hershberger [mailto:joe.hershber...@gmail.com] > Sent: Thursday, February 16, 2017 5:22 AM > To: Ashish Kumar <ashish.ku...@nxp.com> > Cc: u-boot <u-boot@lists.denx.de> > Subject: Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev > after free() > > On Wed, Feb 15, 2017 at 9:26 AM, Ashish Kumar <ashish.ku...@nxp.com> > wrote: > > From: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> > > > > Even after memory free of phydev, priv is still pointing to the > > obsolete address. > > So update priv->phydev as NULL after memory free. > > > > Signed-off-by: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> > > Signed-off-by: Ashish Kumar <ashish.ku...@nxp.com> > > Please always Cc me on network changes. > > > --- > > v2: > > Add signoff > > > > drivers/net/ldpaa_eth/ldpaa_eth.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c > > b/drivers/net/ldpaa_eth/ldpaa_eth.c > > index 4e61700..f235b62 100644 > > --- a/drivers/net/ldpaa_eth/ldpaa_eth.c > > +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c > > @@ -587,8 +587,10 @@ static void ldpaa_eth_stop(struct eth_device > > *net_dev) #ifdef CONFIG_PHYLIB > > if (priv->phydev && bus != NULL) > > phy_shutdown(priv->phydev); > > - else > > + else { > > free(priv->phydev); > > + priv->phydev = NULL; > > + } > > This is strange. Why not just drop the free? It seems bad to delete the > phydev just because the mdio interface is not there, especially in stop(). > [Ashish Kumar] To keep the flow consistent of XFI(which is phy-less) to > other phy based interface, in ldpaa_eth_open there are some dummy > allocation, which is freed in the end in stop(). > if ((bus == NULL) && > (enet_if == PHY_INTERFACE_MODE_XGMII)) { > printf("%s %s %d\n",__FILE__, __func__, __LINE__); > priv->phydev = (struct phy_device *) > malloc(sizeof(struct phy_device)); > memset(priv->phydev, 0, sizeof(struct phy_device)); > > priv->phydev->speed = SPEED_1; > priv->phydev->link = 1; > priv->phydev->duplex = DUPLEX_FULL; > } > > > #endif > > > > ldpaa_dpbp_free(); > > -- > > 1.9.1 > > > > ___ > > U-Boot mailing list > > U-Boot@lists.denx.de > > http://lists.denx.de/mailman/listinfo/u-boot > ___ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot > ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free()
Hello Joe, Please see inline. Regards Ashish -Original Message- From: Joe Hershberger [mailto:joe.hershber...@gmail.com] Sent: Thursday, February 16, 2017 5:22 AM To: Ashish Kumar <ashish.ku...@nxp.com> Cc: u-boot <u-boot@lists.denx.de> Subject: Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free() On Wed, Feb 15, 2017 at 9:26 AM, Ashish Kumar <ashish.ku...@nxp.com> wrote: > From: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> > > Even after memory free of phydev, priv is still pointing to the > obsolete address. > So update priv->phydev as NULL after memory free. > > Signed-off-by: Prabhakar Kushwaha <prabhakar.kushw...@nxp.com> > Signed-off-by: Ashish Kumar <ashish.ku...@nxp.com> Please always Cc me on network changes. > --- > v2: > Add signoff > > drivers/net/ldpaa_eth/ldpaa_eth.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c > b/drivers/net/ldpaa_eth/ldpaa_eth.c > index 4e61700..f235b62 100644 > --- a/drivers/net/ldpaa_eth/ldpaa_eth.c > +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c > @@ -587,8 +587,10 @@ static void ldpaa_eth_stop(struct eth_device > *net_dev) #ifdef CONFIG_PHYLIB > if (priv->phydev && bus != NULL) > phy_shutdown(priv->phydev); > - else > + else { > free(priv->phydev); > + priv->phydev = NULL; > + } This is strange. Why not just drop the free? It seems bad to delete the phydev just because the mdio interface is not there, especially in stop(). [Ashish Kumar] To keep the flow consistent of XFI(which is phy-less) to other phy based interface, in ldpaa_eth_open there are some dummy allocation, which is freed in the end in stop(). if ((bus == NULL) && (enet_if == PHY_INTERFACE_MODE_XGMII)) { printf("%s %s %d\n",__FILE__, __func__, __LINE__); priv->phydev = (struct phy_device *) malloc(sizeof(struct phy_device)); memset(priv->phydev, 0, sizeof(struct phy_device)); priv->phydev->speed = SPEED_1; priv->phydev->link = 1; priv->phydev->duplex = DUPLEX_FULL; } > #endif > > ldpaa_dpbp_free(); > -- > 1.9.1 > > ___ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free()
On Wed, Feb 15, 2017 at 9:26 AM, Ashish Kumarwrote: > From: Prabhakar Kushwaha > > Even after memory free of phydev, priv is still pointing to the > obsolete address. > So update priv->phydev as NULL after memory free. > > Signed-off-by: Prabhakar Kushwaha > Signed-off-by: Ashish Kumar Please always Cc me on network changes. > --- > v2: > Add signoff > > drivers/net/ldpaa_eth/ldpaa_eth.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c > b/drivers/net/ldpaa_eth/ldpaa_eth.c > index 4e61700..f235b62 100644 > --- a/drivers/net/ldpaa_eth/ldpaa_eth.c > +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c > @@ -587,8 +587,10 @@ static void ldpaa_eth_stop(struct eth_device *net_dev) > #ifdef CONFIG_PHYLIB > if (priv->phydev && bus != NULL) > phy_shutdown(priv->phydev); > - else > + else { > free(priv->phydev); > + priv->phydev = NULL; > + } This is strange. Why not just drop the free? It seems bad to delete the phydev just because the mdio interface is not there, especially in stop(). > #endif > > ldpaa_dpbp_free(); > -- > 1.9.1 > > ___ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH v2] driver: net: ldpaa: Update priv->phydev after free()
From: Prabhakar KushwahaEven after memory free of phydev, priv is still pointing to the obsolete address. So update priv->phydev as NULL after memory free. Signed-off-by: Prabhakar Kushwaha Signed-off-by: Ashish Kumar --- v2: Add signoff drivers/net/ldpaa_eth/ldpaa_eth.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c index 4e61700..f235b62 100644 --- a/drivers/net/ldpaa_eth/ldpaa_eth.c +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c @@ -587,8 +587,10 @@ static void ldpaa_eth_stop(struct eth_device *net_dev) #ifdef CONFIG_PHYLIB if (priv->phydev && bus != NULL) phy_shutdown(priv->phydev); - else + else { free(priv->phydev); + priv->phydev = NULL; + } #endif ldpaa_dpbp_free(); -- 1.9.1 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot