devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Fabrice Gasnier <fabrice.gasnier@st.com>
To: Zhou Wang <wangzhou1@hisilicon.com>
Cc: Jingoo Han <jingoohan1@gmail.com>,
	zhudacai@hisilicon.com, devicetree@vger.kernel.org,
	'Gabriele Paoloni' <gabriele.paoloni@huawei.com>,
	'Arnd Bergmann' <arnd@arndb.de>,
	'Richard Zhu' <Richard.Zhu@freescale.com>,
	linux-pci@vger.kernel.org,
	'Pratyush Anand' <pratyush.anand@gmail.com>,
	'Liviu Dudau' <liviu.dudau@arm.com>,
	'Zhichang Yuan' <yuanzhichang@hisilicon.com>,
	'Kishon Vijay Abraham I' <kishon@ti.com>,
	qiuzhenfa@hisilicon.com, 'Bjorn Helgaas' <bhelgaas@google.com>,
	'Zhang Jukuo' <zhangjukuo@huawei.com>,
	'Liguozhu' <liguozhu@hisilicon.com>,
	linux-arm-kernel@lists.infradead.org,
	'Lucas Stach' <l.stach@pengutronix.de>
Subject: Re: [RFC PATCH v1 1/3] PCI: designware: Add ARM64 support
Date: Tue, 26 May 2015 10:03:21 +0200	[thread overview]
Message-ID: <556428C9.9080202@st.com> (raw)
In-Reply-To: <5563DF4F.4080601@hisilicon.com>

Hi zhou,

On 05/26/2015 04:49 AM, Zhou Wang wrote:
>>   struct pcie_port {
>> >+#ifdef CONFIG_ARM
>> >+    /*
>> >+     * this is a temporary hack to let the driver work on
>> >+     * both arm32 and arm64. it can be removed after the
>> >+     * arm32 cleanup is complete and bios32.c has stopped
>> >+     * referencing host->pci_sys_data.
>> >+     */
>> >+    struct pci_sys_data    dummy;
>> >+#endif
>> >      struct device        *dev;
>> >
>> >
>> >This looks like necessary as bios32 is dereferencing sysdata:
>> >struct pci_sys_data *sysdata = dev->bus->sysdata;
>> >
>> >Best Regards,
>> >Fabrice
>> >
> Hi Fabrice,
>
> Firstly, many thanks for your test:)
>
> I am a little confused that pci_sys_data is still needed as we don't use the code
> in bios32. What was the problem you met? Could you share me more information? Then
> let's see how to solve the problem.

This is not completely true: there is still code in bios32 that requires 
pci_sys_data.
No matters pci_common_init_dev() is being called or not :

You can see pcibios_msi_controller() has a weak definition (in 
drivers/pci/msi.c).
But bios32 defines it for arm. Then it's being used.
So, basically, pci_sys_data is still needed on arm. This is how above 
workaround proposed by Arnd takes care of it.
Without this, dereferencing the pointer as done in bios32, makes it 
hazardous and lead to crashes...
e.g. in pcibios_msi_controller(), pci_sys_data will point to 
"dev->bus->sysdata", aka "struct device *dev" above.

Best Regards,
Fabrice
>
> Thanks again and Best Regards,
> Zhou
>

  parent reply	other threads:[~2015-05-26  8:03 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-25  5:10 [RFC PATCH v1 1/3] PCI: designware: Add ARM64 support Jingoo Han
2015-05-25  9:52 ` Zhou Wang
2015-05-25 13:48   ` Jingoo Han
2015-05-25 15:51     ` Fabrice Gasnier
2015-05-26  2:49       ` Zhou Wang
2015-05-26  8:02         ` Arnd Bergmann
2015-05-27 13:56           ` Zhou Wang
2015-05-27 15:31             ` Arnd Bergmann
2015-05-27 15:43               ` Arnd Bergmann
2015-05-27 16:19                 ` Fabrice Gasnier
2015-05-27 19:51                   ` Arnd Bergmann
2015-05-28 11:48                     ` Zhou Wang
2015-05-28 12:25                       ` Arnd Bergmann
2015-05-28 11:40                   ` Zhou Wang
2015-05-28 11:34                 ` Zhou Wang
     [not found]                   ` <5566FD5C.4050708-C8/M+/jPZTeaMJb+Lgu22Q@public.gmane.org>
2015-05-28 12:30                     ` Arnd Bergmann
2015-05-26  8:03         ` Fabrice Gasnier [this message]
2015-05-27 13:24           ` Zhou Wang
2015-05-27 13:52             ` Fabrice Gasnier
2015-05-26  2:04     ` Zhou Wang
2015-05-26  8:09 ` Arnd Bergmann
2015-05-27 13:28   ` Zhou Wang
  -- strict thread matches above, loose matches on Subject: below --
2015-05-20  6:21 [RFC PATCH v1 0/3] PCI: hisi: Add PCIe host support for Hisilicon Soc Hip05 Zhou Wang
2015-05-20  6:21 ` [RFC PATCH v1 1/3] PCI: designware: Add ARM64 support Zhou Wang
2015-05-25  1:33   ` Zhou Wang

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=556428C9.9080202@st.com \
    --to=fabrice.gasnier@st.com \
    --cc=Richard.Zhu@freescale.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gabriele.paoloni@huawei.com \
    --cc=jingoohan1@gmail.com \
    --cc=kishon@ti.com \
    --cc=l.stach@pengutronix.de \
    --cc=liguozhu@hisilicon.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=liviu.dudau@arm.com \
    --cc=pratyush.anand@gmail.com \
    --cc=qiuzhenfa@hisilicon.com \
    --cc=wangzhou1@hisilicon.com \
    --cc=yuanzhichang@hisilicon.com \
    --cc=zhangjukuo@huawei.com \
    --cc=zhudacai@hisilicon.com \
    /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).