From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751423AbdJEFVe (ORCPT ); Thu, 5 Oct 2017 01:21:34 -0400 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:46743 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750995AbdJEFVd (ORCPT ); Thu, 5 Oct 2017 01:21:33 -0400 Subject: Re: [PATCH] net: ethernet: stmmac: Convert timers to use To: Kees Cook , References: <20171005005057.GA23332@beast> CC: Alexandre Torgue , , Thomas Gleixner From: Giuseppe CAVALLARO Message-ID: <436427d6-242f-073f-ddc6-a9c07c95414c@st.com> Date: Thu, 5 Oct 2017 07:21:25 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <20171005005057.GA23332@beast> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.75.127.46] X-ClientProxiedBy: SFHDAG5NODE1.st.com (10.75.127.13) To SFHDAG4NODE1.st.com (10.75.127.10) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-10-05_03:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/5/2017 2:50 AM, Kees Cook wrote: > In preparation for unconditionally passing the struct timer_list pointer to > all timer callbacks, switch to using the new timer_setup() and from_timer() > to pass the timer pointer explicitly. > > Cc: Giuseppe Cavallaro > Cc: Alexandre Torgue > Cc: netdev@vger.kernel.org > Cc: Thomas Gleixner > Signed-off-by: Kees Cook Acked-by: Giuseppe Cavallaro > --- > This requires commit 686fef928bba ("timer: Prepare to change timer > callback argument type") in v4.14-rc3, but should be otherwise > stand-alone. > --- > drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c | 22 ++++++++++------------ > 1 file changed, 10 insertions(+), 12 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c b/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c > index 6a9c954492f2..8b50afcdb52d 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c > +++ b/drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c > @@ -118,10 +118,9 @@ int tse_pcs_init(void __iomem *base, struct tse_pcs *pcs) > return ret; > } > > -static void pcs_link_timer_callback(unsigned long data) > +static void pcs_link_timer_callback(struct tse_pcs *pcs) > { > u16 val = 0; > - struct tse_pcs *pcs = (struct tse_pcs *)data; > void __iomem *tse_pcs_base = pcs->tse_pcs_base; > void __iomem *sgmii_adapter_base = pcs->sgmii_adapter_base; > > @@ -138,12 +137,11 @@ static void pcs_link_timer_callback(unsigned long data) > } > } > > -static void auto_nego_timer_callback(unsigned long data) > +static void auto_nego_timer_callback(struct tse_pcs *pcs) > { > u16 val = 0; > u16 speed = 0; > u16 duplex = 0; > - struct tse_pcs *pcs = (struct tse_pcs *)data; > void __iomem *tse_pcs_base = pcs->tse_pcs_base; > void __iomem *sgmii_adapter_base = pcs->sgmii_adapter_base; > > @@ -201,14 +199,14 @@ static void auto_nego_timer_callback(unsigned long data) > } > } > > -static void aneg_link_timer_callback(unsigned long data) > +static void aneg_link_timer_callback(struct timer_list *t) > { > - struct tse_pcs *pcs = (struct tse_pcs *)data; > + struct tse_pcs *pcs = from_timer(pcs, t, aneg_link_timer); > > if (pcs->autoneg == AUTONEG_ENABLE) > - auto_nego_timer_callback(data); > + auto_nego_timer_callback(pcs); > else if (pcs->autoneg == AUTONEG_DISABLE) > - pcs_link_timer_callback(data); > + pcs_link_timer_callback(pcs); > } > > void tse_pcs_fix_mac_speed(struct tse_pcs *pcs, struct phy_device *phy_dev, > @@ -237,8 +235,8 @@ void tse_pcs_fix_mac_speed(struct tse_pcs *pcs, struct phy_device *phy_dev, > > tse_pcs_reset(tse_pcs_base, pcs); > > - setup_timer(&pcs->aneg_link_timer, > - aneg_link_timer_callback, (unsigned long)pcs); > + timer_setup(&pcs->aneg_link_timer, aneg_link_timer_callback, > + 0); > mod_timer(&pcs->aneg_link_timer, jiffies + > msecs_to_jiffies(AUTONEGO_LINK_TIMER)); > } else if (phy_dev->autoneg == AUTONEG_DISABLE) { > @@ -270,8 +268,8 @@ void tse_pcs_fix_mac_speed(struct tse_pcs *pcs, struct phy_device *phy_dev, > > tse_pcs_reset(tse_pcs_base, pcs); > > - setup_timer(&pcs->aneg_link_timer, > - aneg_link_timer_callback, (unsigned long)pcs); > + timer_setup(&pcs->aneg_link_timer, aneg_link_timer_callback, > + 0); > mod_timer(&pcs->aneg_link_timer, jiffies + > msecs_to_jiffies(AUTONEGO_LINK_TIMER)); > }