From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: <linux-pci@vger.kernel.org>, Hanjun Guo <guohanjun@huawei.com>
Subject: Re: [PATCH] PCI,pciehp: Don't set slot off when found device already exists.
Date: Sat, 8 Feb 2014 09:50:21 +0800 [thread overview]
Message-ID: <52F58D5D.40503@huawei.com> (raw)
In-Reply-To: <20140129223850.GH16825@google.com>
On 2014/1/30 6:38, Bjorn Helgaas wrote:
> On Mon, Jan 13, 2014 at 04:02:48PM +0800, Yijing Wang wrote:
>> If we found device already exists during hot add device, we should
>> leave it, not to set slot off.
>
> Does this fix a defect? What's the scenario where this fixes a problem
> in the current code? I think this change makes sense, but I'd like to
> have a better description of the problem that we're fixing.
>
> I see the following path that looks like it might be a problem with the
> current code if slot power is off when we resume after a suspend:
>
> pciehp_resume
> pciehp_enable_slot
> board_added
> pciehp_configure_device
>
> Is this the scenario you're addressing?
Yes, it is.
I found this case by reviewing the code. But I have no platform
supports pciehp resume. So I can not test it in real.
Thanks!
Yijing.
>
>> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
>> ---
>> drivers/pci/hotplug/pciehp_ctrl.c | 3 ++-
>> drivers/pci/hotplug/pciehp_pci.c | 2 +-
>> 2 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c
>> index 38f0186..f27b0ff 100644
>> --- a/drivers/pci/hotplug/pciehp_ctrl.c
>> +++ b/drivers/pci/hotplug/pciehp_ctrl.c
>> @@ -224,7 +224,8 @@ static int board_added(struct slot *p_slot)
>> if (retval) {
>> ctrl_err(ctrl, "Cannot add device at %04x:%02x:00\n",
>> pci_domain_nr(parent), parent->number);
>> - goto err_exit;
>> + if (retval != -EEXIST)
>> + goto err_exit;
>> }
>>
>> if (PWR_LED(ctrl))
>> diff --git a/drivers/pci/hotplug/pciehp_pci.c b/drivers/pci/hotplug/pciehp_pci.c
>> index aac7a40..9b87b49 100644
>> --- a/drivers/pci/hotplug/pciehp_pci.c
>> +++ b/drivers/pci/hotplug/pciehp_pci.c
>> @@ -48,7 +48,7 @@ int pciehp_configure_device(struct slot *p_slot)
>> "at %04x:%02x:00, cannot hot-add\n", pci_name(dev),
>> pci_domain_nr(parent), parent->number);
>> pci_dev_put(dev);
>> - return -EINVAL;
>> + return -EEXIST;
>> }
>>
>> num = pci_scan_slot(parent, PCI_DEVFN(0, 0));
>> --
>> 1.7.1
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
--
Thanks!
Yijing
next prev parent reply other threads:[~2014-02-08 1:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-13 8:02 [PATCH] PCI,pciehp: Don't set slot off when found device already exists Yijing Wang
2014-01-29 22:38 ` Bjorn Helgaas
2014-02-08 1:50 ` Yijing Wang [this message]
2014-02-12 0:41 ` Bjorn Helgaas
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=52F58D5D.40503@huawei.com \
--to=wangyijing@huawei.com \
--cc=bhelgaas@google.com \
--cc=guohanjun@huawei.com \
--cc=linux-pci@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).