From: Ye Xiaolong <xiaolong.ye@intel.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: dev@dpdk.org, Ferruh Yigit <ferruh.yigit@intel.com>
Subject: Re: [PATCH v2] igb_uio: remove out-of-date comment
Date: Wed, 16 Jan 2019 15:48:36 +0800 [thread overview]
Message-ID: <20190116074836.GB39571@intel.com> (raw)
In-Reply-To: <20190115173822.25a4a979@shemminger-XPS-13-9360>
Hi, Stephen
On 01/15, Stephen Hemminger wrote:
>On Wed, 16 Jan 2019 08:34:52 +0800
>Xiaolong Ye <xiaolong.ye@intel.com> wrote:
>
>> The comment for igbuio_pci_irqhandler is out of date as the code evolves,
>> remove it to avoid misleading.
>>
>> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
>> ---
>> kernel/linux/igb_uio/igb_uio.c | 4 ----
>> 1 file changed, 4 deletions(-)
>>
>> diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
>> index 3cf394bdf..d6ac51e79 100644
>> --- a/kernel/linux/igb_uio/igb_uio.c
>> +++ b/kernel/linux/igb_uio/igb_uio.c
>> @@ -185,10 +185,6 @@ igbuio_pci_irqcontrol(struct uio_info *info, s32 irq_state)
>> return 0;
>> }
>>
>> -/**
>> - * This is interrupt handler which will check if the interrupt is for the right device.
>> - * If yes, disable it here and will be enable later.
>> - */
>> static irqreturn_t
>> igbuio_pci_irqhandler(int irq, void *dev_id)
>> {
>
>The comment is partially correct; if you look at the legacy case.
>
>Maybe better to move the comment to pci_check_and_mask_intx in compat.h?
>I see there is another incorrect comment there.
>
As I tried to understand pci_check_and_mask_intx behavior, I noticed that it
was introduced by commit 399a3f0d ("igb_uio: fix IRQ mode handling"), and it
was derived from igbuio_set_interrupt_mask, however there were two parameters
in igbuio_set_interrupt_mask as below:
static int
igbuio_set_interrupt_mask(struct rte_uio_pci_dev *udev, int32_t state)
while the pci_check_and_mask_intx only has 1 parameter,
static bool pci_check_and_mask_intx(struct pci_dev *pdev)
but in its function body it still use the "state" accorrding to commit 399a3f0d
+static bool pci_check_and_mask_intx(struct pci_dev *pdev)
{
- /* Some function names changes between 3.2.0 and 3.3.0... */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0)
- pci_unblock_user_cfg_access(pdev);
-#else
- pci_cfg_access_unlock(pdev);
-#endif
+ bool pending;
+ uint32_t status;
+
+ pci_block_user_cfg_access(dev);
+ pci_read_config_dword(pdev, PCI_COMMAND, &status);
+
+ /* interrupt is not ours, goes to out */
+ pending = (((status >> 16) & PCI_STATUS_INTERRUPT) != 0);
+ if (pending) {
+ uint16_t old, new;
+
+ old = status;
+ if (state != 0) <=========================== state still in use
+ new = old & (~PCI_COMMAND_INTX_DISABLE);
+ else
+ new = old | PCI_COMMAND_INTX_DISABLE;
+
+ if (old != new)
+ pci_write_config_word(pdev, PCI_COMMAND, new);
+ }
+ pci_unblock_user_cfg_access(dev);
+
+ return pending;
and later this was fixed as a typo in commit 5b2f8137 ("igb_uio: fix typos for
kernel older than 3.3") which seems not correct.
old = status;
- if (state != 0)
+ if (status != 0)
I feel like that pci_check_and_mask_intx still needs two parameters from code
point of view, please correct me if I was wrong or miss anything, or you think
it's sensible, I'll cook a patch for it.
Thanks,
Xiaolong
next prev parent reply other threads:[~2019-01-16 7:48 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-15 15:46 [PATCH] igb_uio: remove out-of-date comment Xiaolong Ye
2019-01-15 16:08 ` Burakov, Anatoly
2019-01-15 23:54 ` Ye Xiaolong
2019-01-16 0:34 ` [PATCH v2] " Xiaolong Ye
2019-01-16 1:38 ` Stephen Hemminger
2019-01-16 5:17 ` Ye Xiaolong
2019-01-16 7:48 ` Ye Xiaolong [this message]
2019-01-16 18:55 ` Stephen Hemminger
2019-01-17 2:13 ` Ye Xiaolong
2019-01-22 1:52 ` Ye Xiaolong
2019-01-29 12:49 ` Ferruh Yigit
2019-01-31 8:13 ` Ye Xiaolong
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=20190116074836.GB39571@intel.com \
--to=xiaolong.ye@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=stephen@networkplumber.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.