Subject: Re: [PATCH V11 2/7] net: sxgbe: add basic framework for Samsung 10Gb ethernet driver

From: Tomasz Figa <[email-masked]>
Date: Sat, 22 Mar 2014 22:59:38 +0100

On 22.03.2014 22:55, Byungho An wrote:
>
> Tomasz Figa <[email-masked]> :

[snip]

>>> +	if (priv->irq <= 0) {
>>> +		dev_err(dev, "sxgbe common irq parsing failed\n");
>>> +		sxgbe_drv_remove(ndev);
>>> +		return -EINVAL;
>>> +	}
>>> +
>>> +	/* Get the TX/RX IRQ numbers */
>>> +	for (i = 0, chan = 0; i < SXGBE_TX_QUEUES; i++) {
>>> +		priv->txq[i]->irq_no = irq_of_parse_and_map(node, chan++);
>>
>> Hmm, this call looks suspicious. The "chan" variable starts here as 0 and so
> the
>> first call to irq_of_parse_and_map() will end up with parsing the first
> (zeroth)
>> entry of "interrupts" property, which would be the same as returned by
>> platform_get_irq(..., 0) above. Maybe this was the point where the "loop"
>> variable should be used?
> OK. it will be chan instead of loop.
> thanks I missed.
>
>>
>> Anyway, why you couldn't simply use platform_get_irq() here as well?
> I'll change platform_get_irq to irq_of_parse_and_map because latter can
> support PCI and nonPCI

Hmm, since this function is for probing only platform devices, I don't 
see how this code could be used for PCI. For platform devices 
platform_get_irq() is preferred.

Best regards,
Tomasz