Re: [PATCH v2] staging: tidspbridge: protect dmm_map properly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Dec 28, 2010 at 2:18 PM, Ohad Ben-Cohen <ohad@xxxxxxxxxx> wrote:
> On Tue, Dec 28, 2010 at 2:12 PM, Felipe Contreras
> <felipe.contreras@xxxxxxxxx> wrote:
>> I haven't investigated why that happens, but kernel-space should not
>> panic regardless of what user-space does.
>
> Agree of course. But that's not what we were discussing...

Well, hopefully after applying your patch it would be easier to figure that out.

>>> Anyhow, a thread that is calling proc_*_dma() will both increase the
>>> reference count and decrease it back before going back to user space.
>>> Otherwise your patch would be problematic as well - who will unlock
>>> the mutex you take in proc_*_dma() ?
>>
>> I'm saying that user-space might crash *before* proc_*_dma() finishes,
>> before the reference count has been decreased.
>>
>> In my patch there would be no issue because proc_un_map() would wait
>> until proc_*_dma() has released the lock.
>
> But what will happen if, as you say, user-space would crash before
> proc_*_dma() has released the lock ? how could proc_un_map() run ?

user-space crashed, not kernel-space; the code would continue to run
and eventually release the lock.

> This is all good, and I have no problem with it. As I said, I don't
> resist your patch as a temporary fix. But it doesn't mean I like it...

Yeah, so the chances of getting this fixed on 2.6.37 are dimmed.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux