Search Linux Wireless

Re: [PATCH 2/2] compat: fix endless recursion in flush_scheduled_work

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

 



On 08/06/2012 08:52 PM, Luis R. Rodriguez wrote:
> On Thu, Aug 2, 2012 at 9:28 AM, Hauke Mehrtens <hauke@xxxxxxxxxx> wrote:
>> The hader file defines flush_scheduled_work(a)
>> compat_flush_scheduled_work(a), which causes flush_scheduled_work() and
>> compat_flush_scheduled_work() to be the same function.
>>
>> With this patch it calls the actual function in the kernel.
>>
>> This fixes problems when unloading mac80211 from compat-wireless.
>>
>> Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
>> ---
>>  compat/compat-2.6.36.c |    1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/compat/compat-2.6.36.c b/compat/compat-2.6.36.c
>> index 8f25be0..05b41c2 100644
>> --- a/compat/compat-2.6.36.c
>> +++ b/compat/compat-2.6.36.c
>> @@ -133,6 +133,7 @@ int compat_schedule_delayed_work_on(int cpu,
>>  }
>>  EXPORT_SYMBOL_GPL(compat_schedule_delayed_work_on);
>>
>> +#undef flush_scheduled_work(a)
>>  void compat_flush_scheduled_work(void)
> 
> Hah! Nice. I'll add this and push... Zefir can you see if after
> getting today's compat.git and then by reverting your patch
> 3da0495cf863288b on compat.git if the unloading issues still happens.
> Likely this was the *real* cause, although it is odd to me you ended
> up removing the flush_workqueue() and not the flush_scheduled_work().
> 
>   Luis
> 
Yep, works. Thanks Hauke for the proper fix.

As for why I removed the wrong line, I got the macro mapping wrong,
assuming it ended in calling flush_workqueue() - and chose to remove the
wrong one.

Still curious why it is not crashing with my quick hack, that remained
recursion intact...


Thanks


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


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux