Re: [PATCH v2 03/22] MSI: Remove the redundant irq_set_chip_data()
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Thierry Reding <thierry.reding@xxxxxxxxx>
- Subject: Re: [PATCH v2 03/22] MSI: Remove the redundant irq_set_chip_data()
- From: Yijing Wang <wangyijing@xxxxxxxxxx>
- Date: Fri, 26 Sep 2014 10:04:45 +0800
- Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>, <linux-pci@xxxxxxxxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx>, Xinwei Hu <huxinwei@xxxxxxxxxx>, Wuyun <wuyun.wu@xxxxxxxxxx>, <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>, Russell King <linux@xxxxxxxxxxxxxxxx>, <linux-arch@xxxxxxxxxxxxxxx>, <arnab.basu@xxxxxxxxxxxxx>, <Bharat.Bhushan@xxxxxxxxxxxxx>, <x86@xxxxxxxxxx>, Arnd Bergmann <arnd@xxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, "Konrad Rzeszutek Wilk" <konrad.wilk@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Joerg Roedel <joro@xxxxxxxxxx>, <iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx>, <linux-mips@xxxxxxxxxxxxxx>, Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>, <linuxppc-dev@xxxxxxxxxxxxxxxx>, <linux-s390@xxxxxxxxxxxxxxx>, Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx>, "Tony Luck" <tony.luck@xxxxxxxxx>, <linux-ia64@xxxxxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, <sparclinux@xxxxxxxxxxxxxxx>, Chris Metcalf <cmetcalf@xxxxxxxxxx>, Ralf Baechle <ralf@xxxxxxxxxxxxxx>, Lucas Stach <l.stach@xxxxxxxxxxxxxx>, David Vrabel <david.vrabel@xxxxxxxxxx>, "Sergei Shtylyov" <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>, Michael Ellerman <mpe@xxxxxxxxxxxxxx>, Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
- In-reply-to: <20140925071919.GH12423@ulmo>
- List-id: <linux-ia64.vger.kernel.org>
- References: <1411614872-4009-1-git-send-email-wangyijing@huawei.com> <1411614872-4009-4-git-send-email-wangyijing@huawei.com> <20140925071919.GH12423@ulmo>
- User-agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.0.1
On 2014/9/25 15:19, Thierry Reding wrote:
> On Thu, Sep 25, 2014 at 11:14:13AM +0800, Yijing Wang wrote:
>> Currently, pcie-designware, pcie-rcar, pci-tegra drivers
>> use irq chip_data to save the msi_chip pointer. They
>> already call irq_set_chip_data() in their own MSI irq map
>> functions. So irq_set_chip_data() in arch_setup_msi_irq()
>> is useless.
>
> Again, I think this should be the other way around. If drivers do
> something that's already handled by the core, then the duplicate code
> should be dropped from the drivers.
Hi Thierry, this is different thing, because chip_data is specific to IRQ
controller, and in other platform, like in x86, chip_data is used to save irq_cfg.
So we can not call irq_set_chip_data() in core code.
x86 irq piece code
int arch_setup_hwirq(unsigned int irq, int node)
{
struct irq_cfg *cfg;
unsigned long flags;
int ret;
cfg = alloc_irq_cfg(irq, node);
if (!cfg)
return -ENOMEM;
raw_spin_lock_irqsave(&vector_lock, flags);
ret = __assign_irq_vector(irq, cfg, apic->target_cpus());
raw_spin_unlock_irqrestore(&vector_lock, flags);
if (!ret)
irq_set_chip_data(irq, cfg); ------------->Save irq_cfg
else
free_irq_cfg(irq, cfg);
return ret;
}
Thanks!
Yijing.
>
> Thierry
>
--
Thanks!
Yijing
--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Index of Archives]
[Linux Kernel]
[Sparc Linux]
[DCCP]
[Linux ARM]
[Yosemite News]
[Linux SCSI]
[Linux x86_64]
[Linux for Ham Radio]