On Tue, 2010-10-26 at 20:35 -0700, Nishanth Aravamudan wrote:

No much comments... I'm amazed how complex he firmware folks managed to
make this ... 

>  static int iommu_reconfig_notifier(struct notifier_block *nb, unsigned long 
> action, void *node)
>  {
>       int err = NOTIFY_OK;
>       struct device_node *np = node;
>       struct pci_dn *pci = PCI_DN(np);
> +     struct direct_window *window;
>  
>       switch (action) {
>       case PSERIES_RECONFIG_REMOVE:
>               if (pci && pci->iommu_table)
>                       iommu_free_table(pci->iommu_table, np->full_name);
> +
> +             spin_lock(&direct_window_list_lock);
> +             list_for_each_entry(window, &direct_window_list, list) {
> +                     if (window->device == np) {
> +                             list_del(&window->list);
> +                             break;
> +                     }
> +             }
> +             spin_unlock(&direct_window_list_lock);

Should you also kfree the window ?


Cheers,
Ben.


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to