From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AA2BAC43381 for ; Mon, 18 Feb 2019 10:45:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3D5B62147A for ; Mon, 18 Feb 2019 10:45:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=aruba.it header.i=@aruba.it header.b="V1IKjKmB" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730129AbfBRKpt (ORCPT ); Mon, 18 Feb 2019 05:45:49 -0500 Received: from smtpcmd01-d.aruba.it ([62.149.158.245]:55771 "EHLO smtpcmd01-d.aruba.it" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728258AbfBRKps (ORCPT ); Mon, 18 Feb 2019 05:45:48 -0500 X-Greylist: delayed 433 seconds by postgrey-1.27 at vger.kernel.org; Mon, 18 Feb 2019 05:45:46 EST Received: from [192.168.0.102] ([93.146.66.165]) by smtpcmd01.ad.aruba.it with bizsmtp id eAeN1z00n3Zw7e501AePUi; Mon, 18 Feb 2019 11:38:31 +0100 Subject: Re: Possible bug into DSA2 code. To: Florian Fainelli , Andrew Lunn Cc: Vivien Didelot , "David S. Miller" , netdev@vger.kernel.org References: <528f797d-445b-a314-d8ef-db15a3b6a8ce@enneenne.com> <20190209193409.GI30856@lunn.ch> <084b3973-88b9-8c71-50d5-9d773999ad04@enneenne.com> <49728829-49cc-6d6a-04b1-ccfc1e5266dd@enneenne.com> <2651a882-c5ab-ba3b-ef4c-731dca90147d@gmail.com> <24527f56-41dd-f257-0f5e-c568cb80881e@gmail.com> From: Rodolfo Giometti Message-ID: Date: Mon, 18 Feb 2019 11:38:22 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <24527f56-41dd-f257-0f5e-c568cb80881e@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aruba.it; s=a1; t=1550486311; bh=Oe4uQkFiToxXCIJMni3dq4V2B0y2DNgM1jiANuoJdHU=; h=Subject:To:From:Date:MIME-Version:Content-Type; b=V1IKjKmBsvA+yBSkveuZAKO2KkcbumUduMIax4q2Sb/BLGIwpMUThT7+z05idv40Q j7Gp15X9jb0QVzUaUfJM7vobBO2/agibft1PMvU3MZd10w5Kc5NDNst21MaaHyhJWh RRQFd7TzWL3mSx92+ptCa5QR+5Wch5tZc0P4IHTuZjm0T3J2DkPB+m48sKL03iJ+na 6yPzMmCt2I7QNbth95rla9T9yQeB0rrQj0fcOfi8KvmcFxFB22fBVbw6rt53JaAo7I 0szycNfj8he0/qsYhXtBEHFnwXXh8vp7cvSl5jLHR6a+8rTtp38KoDKjfsMvvKmEz0 ZRcPkHpp6YJqQ== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On 11/02/2019 20:13, Florian Fainelli wrote: > Does that work: > > diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c > index a1917025e155..54cf6a5c865d 100644 > --- a/net/dsa/dsa2.c > +++ b/net/dsa/dsa2.c > @@ -368,6 +368,9 @@ static int dsa_switch_setup(struct dsa_switch *ds) > if (err) > return err; > > + if (ds->slave_mii_bus && (ds->ops->phy_read || ds->ops->phy_write)) > + return -EINVAL; > + > if (!ds->slave_mii_bus && ds->ops->phy_read) { > ds->slave_mii_bus = devm_mdiobus_alloc(ds->dev); > if (!ds->slave_mii_bus) > diff --git a/net/dsa/legacy.c b/net/dsa/legacy.c > index cb42939db776..0796c6213be6 100644 > --- a/net/dsa/legacy.c > +++ b/net/dsa/legacy.c > @@ -176,6 +176,9 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, > if (ret) > return ret; > > + if (ds->slave_mii_bus && (ops->phy_read || ops->phy_write)) > + return -EINVAL; > + > if (!ds->slave_mii_bus && ops->phy_read) { > ds->slave_mii_bus = devm_mdiobus_alloc(ds->dev); > if (!ds->slave_mii_bus) OK, now probing of mv88e6085 fails! [ 42.745004] mv88e6085: probe of d0032004.mdio-mii:01 failed with error -22 Now I suppose mv88e6085's driver should set ds->slave_mii_bus as follow: diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 54a5b660640a..bb46ebbb2bb8 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -2399,7 +2399,7 @@ static int mv88e6xxx_setup(struct dsa_switch *ds) int i; chip->ds = ds; - ds->slave_mii_bus = mv88e6xxx_default_mdio_bus(chip); + ds->slave_mii_bus = NULL; mutex_lock(&chip->reg_lock); Is that right? Ciao, Rodolfo -- GNU/Linux Solutions e-mail: giometti@enneenne.com Linux Device Driver giometti@linux.it Embedded Systems phone: +39 349 2432127 UNIX programming skype: rodolfo.giometti