Search Linux Wireless

Re: [PATCH 1/3] compat: fix device_lock functions on non rt kernel

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

 



On 10/24/2010 09:19 PM, Blaise Gassend wrote:
> I agree that CONFIG_NONE should have been CONFIG_PREEMPT_NONE. On the
> other hand, I disagree that CONFIG_PREEMPT_NONE and
> CONFIG_PREEMPT_VOLUNTARY should be removed. They might not be in the
> latest RT patch, but they are in older patches (2.6.29 in particular).
>  Leaving them in will not hinder kernels that no longer have
> CONFIG_PREEMPT_NONE and CONFIG_PREEMPT_VOLUNTARY. Removing them will
> cause the build to fail for some configurations of 2.6.29-rt, and
> probably others.

Hi Blaise,

in the Ubuntu 10.04 default kernel config CONFIG_PREEMPT_VOLUNTARY=y is
set, but it does not use the RT patches, so compat-wireless build
failed. If you are using a mainline kernel you can choose between
CONFIG_PREEMPT_NONE, CONFIG_PREEMPT_VOLUNTARY and CONFIG_PREEMPT (all
localed in kernel/Kconfig.preempt for a least kernel 2.6.24), so these
options are not indicating that the RT patches are applied. The RT patch
adds CONFIG_PREEMPT_RT and CONFIG_PREEMPT_DESKTOP and removes
CONFIG_PREEMPT, so choosing one of these options to detect that the RT
patch is applied is not a good idea. I do not had the time to look
through the hole rt patch to find a better indicator if it is applied so
I just removed the ones preventing compiling on normal kernels. I just
looked into patch-2.6.33.7-rt29.bz2 and not the other RT patches.

It will be nice if you could find a better option which is set in the rt
patch every time, but is never set in a normal kernel. As I see it none
of the CONFIG_PREEMPT_ is of that type.

compat.wireless focus at first to build on mainline kernels and if it is
no problem we are able to support some kernels with extra patches like
the rt patch, because most of the users are using a mainline kernel.

Hauke

> On Sat, Oct 23, 2010 at 11:13 AM, Hauke Mehrtens <hauke@xxxxxxxxxx> wrote:
>> CONFIG_NONE and CONFIG_PREEMPT_VOLUNTARY are not added by the last RT
>> patch. I have not found any references to CONFIG_NONE, probably
>> CONFIG_PREEMPT_NONE was meant, but that is also wrong like
>> CONFIG_PREEMPT_VOLUNTARY. These two options are also in the normal kernel
>> config system without the rt patch.
>>
>> This patch only checks for KConfig options added by the rt patch, but a
>> rt-patch user could also select PREEMPT_NONE or PREEMPT_VOLUNTARY, and
>> compat-wireless will not build. I do not think this will hapen often, so leave
>> it like this.
>>
>> This patch fixes build with all non rt-kernels.
>>
>> CC: Blaise Gassend <blaise@xxxxxxxxxxxxxxxx>
>> Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
>> ---
>>  include/linux/compat-2.6.34.h |    9 +++------
>>  1 files changed, 3 insertions(+), 6 deletions(-)
>>
>> diff --git a/include/linux/compat-2.6.34.h b/include/linux/compat-2.6.34.h
>> index 1cfd6e5..f710d08 100644
>> --- a/include/linux/compat-2.6.34.h
>> +++ b/include/linux/compat-2.6.34.h
>> @@ -142,8 +142,7 @@ do {                                                                \
>>
>>  static inline void device_lock(struct device *dev)
>>  {
>> -#if defined(CONFIG_NONE) || defined(CONFIG_PREEMPT_RT) || \
>> -    defined(CONFIG_PREEMPT_VOLUNTARY) || defined(CONFIG_PREEMPT_DESKTOP)
>> +#if defined(CONFIG_PREEMPT_RT) || defined(CONFIG_PREEMPT_DESKTOP)
>>         mutex_lock(&dev->parent->mutex);
>>  #else
>>        down(&dev->sem);
>> @@ -152,8 +151,7 @@ static inline void device_lock(struct device *dev)
>>
>>  static inline int device_trylock(struct device *dev)
>>  {
>> -#if defined(CONFIG_NONE) || defined(CONFIG_PREEMPT_RT) || \
>> -    defined(CONFIG_PREEMPT_VOLUNTARY) || defined(CONFIG_PREEMPT_DESKTOP)
>> +#if defined(CONFIG_PREEMPT_RT) || defined(CONFIG_PREEMPT_DESKTOP)
>>        return mutex_trylock(&dev->mutex);
>>  #else
>>        return down_trylock(&dev->sem);
>> @@ -162,8 +160,7 @@ static inline int device_trylock(struct device *dev)
>>
>>  static inline void device_unlock(struct device *dev)
>>  {
>> -#if defined(CONFIG_NONE) || defined(CONFIG_PREEMPT_RT) || \
>> -    defined(CONFIG_PREEMPT_VOLUNTARY) || defined(CONFIG_PREEMPT_DESKTOP)
>> +#if defined(CONFIG_PREEMPT_RT) || defined(CONFIG_PREEMPT_DESKTOP)
>>         mutex_unlock(&dev->mutex);
>>  #else
>>        up(&dev->sem);
--
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 Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux