Subject: RE: [PATCH net v2 2/2] net/txgbe: add extra handle for MSI/INTx into thread irq handle

From: Jiawen Wu <[email-masked]>
Date: Fri, 28 Jun 2024 10:16:26 +0800

On Fri, Jun 28, 2024 7:44 AM, Jakub Kicinski wrote:
> On Wed, 26 Jun 2024 14:07:03 +0800 Jiawen Wu wrote:
> > Moreover, do not free isb resources in .ndo_stop, to avoid reading
> > memory by a null pointer.
> 
> Please provide more detail on the sequence of events leading to the
> null-defer.
> 
> >  	pdev->irq = pci_irq_vector(pdev, 0);
> > +	wx->num_q_vectors = 1;
> 
> this doesn't seem obviously related

Umm, this is related another fix for MSI/INTx. I'll split it into a separate
commit.

> 
> >
> >  	return 0;
> >  }
> > @@ -2027,6 +2028,9 @@ int wx_setup_isb_resources(struct wx *wx)
> >  {
> >  	struct pci_dev *pdev = wx->pdev;
> >
> > +	if (wx->isb_mem)
> > +		return 0;
> > +
> >  	wx->isb_mem = dma_alloc_coherent(&pdev->dev,
> >  					 sizeof(u32) * 4,
> >  					 &wx->isb_dma,
> > @@ -2050,6 +2054,9 @@ void wx_free_isb_resources(struct wx *wx)
> >  {
> >  	struct pci_dev *pdev = wx->pdev;
> >
> > +	if (!wx->isb_mem)
> > +		return;
> > +
> 
> And neither does this. Why do you need to make these function
> idempotent?

This is also to implement txgbe changes without changing the flow of ngbe.