Re: [PATCH 2/5] s390/MSI: Use standard mask and unmask funtions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2014/7/4 22:28, Sebastian Ott wrote:
> On Fri, 4 Jul 2014, Yijing Wang wrote:
>> MSI irqchip in s390 has its own mask and unmask MSI irq
>> functions, zpci_enable_irq() and zpci_disable_irq().
>> They mask and unmask MSI irq in standard ways, no arch
>> special. MSI driver provides two global standard functions
>> mask_msi_irq() and unmask_msi_irq(). Local zpci_enable_irq()
>> and zpci_disable_irq() are almost the same as the standard
>> two. the difference is local mask/unmask functions
>> read the mask status before mask and unmask everytime.
>> Then change the value and rewrite to hardware. In standard
>> functions, save the mask status after mask and unmask msi
>> irq, and use the cached status to change the mask status.
>> When we mask or unmask a MSI irq, we always cache its
>> mask status except we know need not to cache it, like in
>> pci_msi_shutdown. So use the standard functions to replace
>> the local is safe.
> 
> Thanks, for doing that!
> At first glance the last hunk looks funny.

Thanks for your review.

> 
>>
>> Signed-off-by: Yijing Wang <wangyijing@xxxxxxxxxx>
>> ---
>>  arch/s390/pci/pci.c |   49 ++++++-------------------------------------------

>>  }
>> @@ -487,7 +447,10 @@ void arch_teardown_msi_irqs(struct pci_dev *pdev)
>>
>>  	/* Release MSI interrupts */
>>  	list_for_each_entry(msi, &pdev->msi_list, list) {
>> -		zpci_msi_set_mask_bits(msi, 1, 1);
>> +		if (msi->msi_attrib.is_msix)
>> +			default_msi_mask_irq(msi, 1, 1);
>> +		else
>> +			default_msix_mask_irq(msi, 1);
> 
> This one looks inverted.

Oh, my mistake, will update and resend.


Thanks!
Yijing.

> 
>>  		irq_set_msi_desc(msi->irq, NULL);
>>  		irq_free_desc(msi->irq);
>>  		msi->msg.address_lo = 0;
> 
> Regards,
> Sebastian
> 
> 
> .
> 


-- 
Thanks!
Yijing

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux