All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yuri Kululin <ext-yuri.kululin@nokia.com>
To: ext Guenter Roeck <guenter.roeck@ericsson.com>
Cc: Yuri Ershov <ext-yuri.ershov@nokia.com>,
	eric.piel@tremplin-utc.net, samu.p.onkalo@nokia.com,
	akpm@linux-foundation.org, daniel@caiaq.de,
	lm-sensors@lm-sensors.org, linux-kernel@vger.kernel.org
Subject: Re: [lm-sensors] [1/2] lis3: Add device owner
Date: Tue, 28 Sep 2010 08:52:19 +0000	[thread overview]
Message-ID: <4CA1ACC3.4000809@nokia.com> (raw)
In-Reply-To: <20100924202404.GA20813@ericsson.com>

ext Guenter Roeck wrote:
> On Fri, Aug 27, 2010 at 02:33:20PM -0000, Yuri Ershov wrote:
>> Add device owner and change /dev/freefall file operations owner
>> according to the used driver
>>
>> Signed-off-by: Yuri Kululin <ext-yuri.kululin@nokia.com>
>>
>> ---
>> drivers/hwmon/lis3lv02d.c |    8 ++++++--
>>  drivers/hwmon/lis3lv02d.h |    2 ++
>>  2 files changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/hwmon/lis3lv02d.c b/drivers/hwmon/lis3lv02d.c
>> index e278f0e..0f1bd36 100644
>> --- a/drivers/hwmon/lis3lv02d.c
>> +++ b/drivers/hwmon/lis3lv02d.c
>> @@ -591,8 +591,7 @@ static int lis3lv02d_misc_fasync(int fd, struct file *file, int on)
>>  	return fasync_helper(fd, file, on, &lis3_dev.async_queue);
>>  }
>>  
>> -static const struct file_operations lis3lv02d_misc_fops = {
>> -	.owner   = THIS_MODULE,
>> +static struct file_operations lis3lv02d_misc_fops = {
>>  	.llseek  = no_llseek,
>>  	.read    = lis3lv02d_misc_read,
>>  	.open    = lis3lv02d_misc_open,
>> @@ -1007,6 +1006,11 @@ int lis3lv02d_init_device(struct lis3lv02d *dev)
>>  		goto out;
>>  	}
>>  
>> +	if (dev->owner)
>> +		lis3lv02d_misc_fops.owner = dev->owner;
>> +	else
>> +		lis3lv02d_misc_fops.owner = THIS_MODULE;
>> +
> If you retained the static assignment to .owner above, you would not need
> the else part here.

Yes, you are right. I can change this.

> Also, this depends on patch#2, which actually sets dev->owner.
> So the problem isn't really addressed w/o patch #2. Given that,
> I am not sure if it makes sense to have two separate patches.

Ok, I can merge my patches.

> If both patches were applied as one, you might not need the if ()
> above in the first place. And if you do, you might still not have solved
> the problem completely since .owner would not be set correctly
> if dev->owner is NULL. 

I've added "if" here to keep the situation "as is" for all other drivers
(HP driver - hp_accel.c and spi part - lis3lv02d_spi.c. I don't have the HW to 
test) which are using the lis3 core. If we want to avoid the issues with 
unloading completely all parts should set the dev->owner. Not a problem to add 
this to HP driver and lis3lv02d_spi.c.

> On a higher level, reassigning the owner like this seems to be quite uncommon,
> at least in hwmon. I would like to see an Acked-by from Eric to ensure
> that the fix is correct.

I tried to use the standard way of module usage control because all functions 
provided by lis3lv02d_i2c.c, lis3lv02d_spi.c or hp_accel.c can be called through 
  lis3lv02d_misc_fops file ops or joystick poll device.

I can propose another solution. We can use try_module_get(owner) during device 
registration (in lis3lv02d_add_fs()), release module by using module_put(owner) 
  after device unregister (in lis3lv02d_remove_fs()) and do not touch 
lis3lv02d_misc_fops. But anyway dev->owner should be set.

Thanks a lot for reviewing,
Yuri K
> 
> Thanks,
> Guenter


_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

WARNING: multiple messages have this Message-ID (diff)
From: Yuri Kululin <ext-yuri.kululin@nokia.com>
To: ext Guenter Roeck <guenter.roeck@ericsson.com>
Cc: Yuri Ershov <ext-yuri.ershov@nokia.com>,
	eric.piel@tremplin-utc.net, samu.p.onkalo@nokia.com,
	akpm@linux-foundation.org, daniel@caiaq.de,
	lm-sensors@lm-sensors.org, linux-kernel@vger.kernel.org
Subject: Re: [1/2] lis3: Add device owner
Date: Tue, 28 Sep 2010 12:52:19 +0400	[thread overview]
Message-ID: <4CA1ACC3.4000809@nokia.com> (raw)
In-Reply-To: <20100924202404.GA20813@ericsson.com>

ext Guenter Roeck wrote:
> On Fri, Aug 27, 2010 at 02:33:20PM -0000, Yuri Ershov wrote:
>> Add device owner and change /dev/freefall file operations owner
>> according to the used driver
>>
>> Signed-off-by: Yuri Kululin <ext-yuri.kululin@nokia.com>
>>
>> ---
>> drivers/hwmon/lis3lv02d.c |    8 ++++++--
>>  drivers/hwmon/lis3lv02d.h |    2 ++
>>  2 files changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/hwmon/lis3lv02d.c b/drivers/hwmon/lis3lv02d.c
>> index e278f0e..0f1bd36 100644
>> --- a/drivers/hwmon/lis3lv02d.c
>> +++ b/drivers/hwmon/lis3lv02d.c
>> @@ -591,8 +591,7 @@ static int lis3lv02d_misc_fasync(int fd, struct file *file, int on)
>>  	return fasync_helper(fd, file, on, &lis3_dev.async_queue);
>>  }
>>  
>> -static const struct file_operations lis3lv02d_misc_fops = {
>> -	.owner   = THIS_MODULE,
>> +static struct file_operations lis3lv02d_misc_fops = {
>>  	.llseek  = no_llseek,
>>  	.read    = lis3lv02d_misc_read,
>>  	.open    = lis3lv02d_misc_open,
>> @@ -1007,6 +1006,11 @@ int lis3lv02d_init_device(struct lis3lv02d *dev)
>>  		goto out;
>>  	}
>>  
>> +	if (dev->owner)
>> +		lis3lv02d_misc_fops.owner = dev->owner;
>> +	else
>> +		lis3lv02d_misc_fops.owner = THIS_MODULE;
>> +
> If you retained the static assignment to .owner above, you would not need
> the else part here.

Yes, you are right. I can change this.

> Also, this depends on patch#2, which actually sets dev->owner.
> So the problem isn't really addressed w/o patch #2. Given that,
> I am not sure if it makes sense to have two separate patches.

Ok, I can merge my patches.

> If both patches were applied as one, you might not need the if ()
> above in the first place. And if you do, you might still not have solved
> the problem completely since .owner would not be set correctly
> if dev->owner is NULL. 

I've added "if" here to keep the situation "as is" for all other drivers
(HP driver - hp_accel.c and spi part - lis3lv02d_spi.c. I don't have the HW to 
test) which are using the lis3 core. If we want to avoid the issues with 
unloading completely all parts should set the dev->owner. Not a problem to add 
this to HP driver and lis3lv02d_spi.c.

> On a higher level, reassigning the owner like this seems to be quite uncommon,
> at least in hwmon. I would like to see an Acked-by from Eric to ensure
> that the fix is correct.

I tried to use the standard way of module usage control because all functions 
provided by lis3lv02d_i2c.c, lis3lv02d_spi.c or hp_accel.c can be called through 
  lis3lv02d_misc_fops file ops or joystick poll device.

I can propose another solution. We can use try_module_get(owner) during device 
registration (in lis3lv02d_add_fs()), release module by using module_put(owner) 
  after device unregister (in lis3lv02d_remove_fs()) and do not touch 
lis3lv02d_misc_fops. But anyway dev->owner should be set.

Thanks a lot for reviewing,
Yuri K
> 
> Thanks,
> Guenter


  reply	other threads:[~2010-09-28  8:52 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-27 14:33 [lm-sensors] [PATCH 0/2] Accelerometer driver unload Yuri Ershov
2010-08-27 14:33 ` Yuri Ershov
2010-08-27 14:33 ` [lm-sensors] [PATCH 1/2] lis3: Add device owner Yuri Ershov
2010-08-27 14:33   ` Yuri Ershov
2010-08-27 14:33   ` [lm-sensors] [PATCH 2/2] lis3: Set " Yuri Ershov
2010-08-27 14:33     ` Yuri Ershov
2010-09-24 20:27     ` [lm-sensors] [2/2] " Guenter Roeck
2010-09-24 20:27       ` Guenter Roeck
2010-09-24 20:24   ` [lm-sensors] [1/2] lis3: Add " Guenter Roeck
2010-09-24 20:24     ` Guenter Roeck
2010-09-28  8:52     ` Yuri Kululin [this message]
2010-09-28  8:52       ` Yuri Kululin
2010-10-02  0:03       ` [lm-sensors] " Guenter Roeck
2010-10-02  0:03         ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CA1ACC3.4000809@nokia.com \
    --to=ext-yuri.kululin@nokia.com \
    --cc=akpm@linux-foundation.org \
    --cc=daniel@caiaq.de \
    --cc=eric.piel@tremplin-utc.net \
    --cc=ext-yuri.ershov@nokia.com \
    --cc=guenter.roeck@ericsson.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lm-sensors@lm-sensors.org \
    --cc=samu.p.onkalo@nokia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.