All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Ashfield <bruce.ashfield@windriver.com>
To: Darren Hart <dvhart@linux.intel.com>
Cc: Yocto Project <yocto@yoctoproject.org>
Subject: Re: [PATCH][linux-yocto] pch_gbe: Do not abort probe on bad MAC
Date: Tue, 24 Jan 2012 11:25:29 -0500	[thread overview]
Message-ID: <4F1EDB79.1030407@windriver.com> (raw)
In-Reply-To: <4F1E4FA3.90602@windriver.com>

On 12-01-24 01:28 AM, Bruce Ashfield wrote:
> On 12-01-23 7:26 PM, Darren Hart wrote:
>>
>>
>> On 01/22/2012 08:01 PM, Bruce Ashfield wrote:
>>> On 12-01-19 4:34 PM, Darren Hart wrote:
>>>> Bruce, please apply to linux-yocto-3.0/yocto/standard/base
>>>
>>> Queued.
>>
>> I don't see this in the repository yet, is it still pending? I'm trying
>> to write a BSP that is dependent on it.'
>
> It's queued with the rest of my 3.0 updates. I've been spending
> time on 3.2 and haven't pushed these out yet.

FYI: You can see this in the 3.0 kernel repo now, I fetched davem's
net repo and cherry-picked it in. The SRCREV update will follow once
I've merged 3.0.18 (or .17 if .18 takes too long).

Cheers,

Bruce

>
> Bruce
>
>>
>> Thanks,
>>
>> Darren
>>
>>>
>>> Bruce
>>>
>>>>
>>>> Upstream-Status: Accepted (Linux 3.3)
>>>>
>>>> If the MAC is invalid or not implemented, do not abort the probe. Issue
>>>> a warning and prevent bringing the interface up until a MAC is set
>>>> manually
>>>> (via ifconfig $IFACE hw ether $MAC).
>>>>
>>>> Tested on two platforms, one with a valid MAC, the other without a
>>>> MAC. The real
>>>> MAC is used if present, the interface fails to come up until the MAC
>>>> is set on
>>>> the other. They successfully get an IP over DHCP and pass a simple
>>>> ping and
>>>> login over ssh test.
>>>>
>>>> This is meant to allow the Inforce SYS940X development board:
>>>> http://www.inforcecomputing.com/SYS940X_ECX.html
>>>> (and others suffering from a missing MAC) to work with the mainline
>>>> kernel.
>>>> Without this patch, the probe will fail and the interface will not
>>>> be created,
>>>> preventing the user from configuring the MAC manually.
>>>>
>>>> This does not make any attempt to address a missing or invalid MAC
>>>> for the
>>>> pch_phub driver.
>>>>
>>>> Signed-off-by: Darren Hart<dvhart@linux.intel.com>
>>>> CC: Arjan van de Ven<arjan@linux.intel.com>
>>>> CC: Alan Cox<alan@linux.intel.com>
>>>> CC: Tomoya MORINAGA<tomoya.rohm@gmail.com>
>>>> CC: Jeff Kirsher<jeffrey.t.kirsher@intel.com>
>>>> CC: "David S. Miller"<davem@davemloft.net>
>>>> CC: Paul Gortmaker<paul.gortmaker@windriver.com>
>>>> CC: Jon Mason<jdmason@kudzu.us>
>>>> CC: netdev@vger.kernel.org
>>>> CC: Mark Brown<broonie@opensource.wolfsonmicro.com>
>>>> CC: David Laight<David.Laight@ACULAB.COM>
>>>> CC: Joe Perches<joe@perches.com>
>>>> ---
>>>> drivers/net/pch_gbe/pch_gbe_main.c | 17 ++++++++++++++---
>>>> 1 files changed, 14 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/net/pch_gbe/pch_gbe_main.c
>>>> b/drivers/net/pch_gbe/pch_gbe_main.c
>>>> index eac3c5c..e7412f2 100644
>>>> --- a/drivers/net/pch_gbe/pch_gbe_main.c
>>>> +++ b/drivers/net/pch_gbe/pch_gbe_main.c
>>>> @@ -1701,6 +1701,12 @@ int pch_gbe_up(struct pch_gbe_adapter *adapter)
>>>> struct pch_gbe_rx_ring *rx_ring = adapter->rx_ring;
>>>> int err;
>>>>
>>>> + /* Ensure we have a valid MAC */
>>>> + if (!is_valid_ether_addr(adapter->hw.mac.addr)) {
>>>> + pr_err("Error: Invalid MAC address\n");
>>>> + return -EINVAL;
>>>> + }
>>>> +
>>>> /* hardware has been reset, we need to reload some things */
>>>> pch_gbe_set_multi(netdev);
>>>>
>>>> @@ -2392,9 +2398,14 @@ static int pch_gbe_probe(struct pci_dev *pdev,
>>>>
>>>> memcpy(netdev->dev_addr, adapter->hw.mac.addr, netdev->addr_len);
>>>> if (!is_valid_ether_addr(netdev->dev_addr)) {
>>>> - dev_err(&pdev->dev, "Invalid MAC Address\n");
>>>> - ret = -EIO;
>>>> - goto err_free_adapter;
>>>> + /*
>>>> + * If the MAC is invalid (or just missing), display a warning
>>>> + * but do not abort setting up the device. pch_gbe_up will
>>>> + * prevent the interface from being brought up until a valid MAC
>>>> + * is set.
>>>> + */
>>>> + dev_err(&pdev->dev, "Invalid MAC address, "
>>>> + "interface disabled.\n");
>>>> }
>>>> setup_timer(&adapter->watchdog_timer, pch_gbe_watchdog,
>>>> (unsigned long)adapter);
>>>
>>> _______________________________________________
>>> yocto mailing list
>>> yocto@yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/yocto
>>
>
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto



  reply	other threads:[~2012-01-24 16:25 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-19 21:34 [PATCH][linux-yocto] pch_gbe: Do not abort probe on bad MAC Darren Hart
2012-01-23  4:01 ` Bruce Ashfield
2012-01-24  0:26   ` Darren Hart
2012-01-24  6:28     ` Bruce Ashfield
2012-01-24 16:25       ` Bruce Ashfield [this message]
2012-01-24 16:28         ` Darren Hart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F1EDB79.1030407@windriver.com \
    --to=bruce.ashfield@windriver.com \
    --cc=dvhart@linux.intel.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.