[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20130823013058.GA7632@weiyang.vnet.ibm.com>
Date: Fri, 23 Aug 2013 09:30:58 +0800
From: Wei Yang <weiyang@...ux.vnet.ibm.com>
To: Alex Williamson <alex.williamson@...hat.com>
Cc: Alexey Kardashevskiy <aik@...abs.ru>, paulus@....ibm.com,
benh@....ibm.com, linuxppc-dev@...ts.ozlabs.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] powerpc/iommu: check dev->iommu_group before remove
a device from iommu_group
On Thu, Aug 22, 2013 at 10:17:20AM -0600, Alex Williamson wrote:
>On Thu, 2013-08-22 at 23:41 +0800, Wei Yang wrote:
>> >>
>> >> Alex,
>> >>
>> >> Sorry for not including you in the very beginning, which may spend you more
>> >> efforts to track previous mails in this thread.
>> >>
>> >> Do you think it is reasonable to check the dev->iommu_group in
>> >> iommu_group_remove_device()? Or we can count on the bus notifier to check it?
>> >>
>> >> Welcome your suggestions~
>> >
>> >I don't really see the point of patch 1/2. iommu_group_remove_device()
>> >is specifically to remove a device from an iommu_group, so why would you
>> >call it on a device that's not part of an iommu_group. If you want to
>> >avoid testing dev->iommu_group, then implement the .remove_device
>> >callback rather than using the notifier. Thanks,
>> >
>>
>> You mean the .remove_device like intel_iommu_remove_device()?
>>
>> Hmm... this function didn't check the dev->iommu_group and just call
>> iommu_group_remove_device(). I see this guard is put in iommu_bus_notifier(),
>> which will check dev->iommu_group before invoke .remove_device.
>>
>> Let me explain the case to triger the problem a little.
>>
>> On some platform, like powernv, we implement another bus notifier when devices
>> are added or removed in the system. Like Alexey mentioned, he missed the check
>> for dev->iommu_group in the notifier before removing it from iommu_group. This
>> trigger the crash.
>>
>> So do you think it is reasonable to guard the kernel in
>> iommu_group_remove_device(), or we give the platform developers the
>> responsibility to check the dev->iommu_group before calling it?
>
>I don't see it as we need either patch 1/2 or patch 2/2. We absolutely
>need some form of patch 2/2. Patch 1/2 isn't necessarily bad, but it
>facilitates sloppy usage. The iommu driver shouldn't be calling
>iommu_group_remove_device() on arbitrary devices that may or may not be
>part of an iommu_group. Perhaps patch 1/2 should be:
>
>if (WARN_ON(!group))
> return;
>
Agree, this one sounds more reasonable. :-)
Since patch 2/2 is merged by Alexey, I will re-send patch 1/2 alone.
Thanks for your comments ~
>Thanks,
>
>Alex
>
>_______________________________________________
>Linuxppc-dev mailing list
>Linuxppc-dev@...ts.ozlabs.org
>https://lists.ozlabs.org/listinfo/linuxppc-dev
--
Richard Yang
Help you, Help me
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists