07/07/2017 09:56, Thomas Monjalon:
> 29/06/2017 07:01, Jeff Guo:
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -1283,6 +1283,7 @@ static inline void i40e_GLQF_reg_init(struct i40e_hw 
> > *hw)
> >  
> >     /* enable uio intr after callback register */
> >     rte_intr_enable(intr_handle);
> > +
> >     /*
> >      * Add an ethertype filter to drop all flow control frames transmitted
> >      * from VSIs. By doing so, we stop VF from sending out PAUSE or PFC
> > @@ -5832,11 +5833,29 @@ struct i40e_vsi *
> >  {
> >     struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
> >     struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> > +   struct rte_uevent event;
> >     uint32_t icr0;
> > +   struct rte_pci_device *pci_dev;
> > +   struct rte_intr_handle *intr_handle;
> > +
> > +   pci_dev = RTE_ETH_DEV_TO_PCI(dev);
> > +   intr_handle = &pci_dev->intr_handle;
> >  
> >     /* Disable interrupt */
> >     i40e_pf_disable_irq0(hw);
> >  
> > +   /* check device uevent */
> > +   if (rte_uevent_get(intr_handle->uevent_fd, &event) == 0) {
> > +           if (event.subsystem == RTE_UEVENT_SUBSYSTEM_UIO) {
> > +                   if (event.action == RTE_UEVENT_REMOVE) {
> > +                           _rte_eth_dev_callback_process(dev,
> > +                                   RTE_ETH_EVENT_INTR_RMV, NULL);
> > +                           return;
> > +                   }
> > +           }
> > +           goto done;
> > +   }
> 
> There is nothing specific to i40e in this patch.
> It seems wrong to add such generic code in every drivers.

It should be managed at bus layer and not be specific to ethdev only.

Reply via email to