All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Auger <eric.auger@linaro.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: kvm@vger.kernel.org, patches@linaro.org,
	linux-kernel@vger.kernel.org, alex.williamson@redhat.com,
	eric.auger@st.com, kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 5/6] vfio: platform: use list of registered reset function
Date: Thu, 22 Oct 2015 13:46:27 +0200	[thread overview]
Message-ID: <5628CC93.7000801@linaro.org> (raw)
In-Reply-To: <20554656.kA5nRBgtaJ@wuerfel>

On 10/22/2015 12:19 PM, Arnd Bergmann wrote:
> On Thursday 22 October 2015 11:42:01 Eric Auger wrote:
>> Remove the static lookup table and use the dynamic list of registered
>> reset functions instead. Also load the reset module through its alias.
>> The reset struct module pointer is stored in vfio_platform_device.
>>
>> We also remove the useless struct device pointer parameter in
>> vfio_platform_get_reset.
>>
>> This patch fixes the issue related to the usage of __symbol_get, which
>> besides from being moot, prevented compilation with CONFIG_MODULES
>> disabled.
>>
>> Also usage of MODULE_ALIAS makes possible to add a new reset module
>> without needing to update the framework. This was suggested by Arnd.
>>
>> Signed-off-by: Eric Auger <eric.auger@linaro.org>
>> Reported-by: Arnd Bergmann <arnd@arndb.de>
> 
> Looks good, just small style issues:
> 
>>
>> -			}
>> +	mutex_lock(&reset_lock);
>> +	list_for_each_entry(iter, &reset_list, link) {
>> +		if (!strcmp(iter->compat, compat) &&
>> +			try_module_get(iter->owner)) {
>> +			*module = iter->owner;
>> +			mutex_unlock(&reset_lock);
>> +			return iter->reset;
>>  		}
>>  	}
>> +
>> +	mutex_unlock(&reset_lock);
>> +	return NULL;
> 
> Better use 'break' to have a single mutex_unlock and return  statement.
OK
> 
>> +
>>  
>>  static void vfio_platform_put_reset(struct vfio_platform_device *vdev)
>>  {
>> -	if (vdev->reset)
>> -		symbol_put_addr(vdev->reset);
>> +	if (vdev->reset) {
>> +		module_put(vdev->reset_module);
>> +		vdev->reset_module = NULL;
>> +		vdev->reset = NULL;
>> +	}
>>  }
> 
> This gets called from the remove callback. No need to clear those
> struct members immediately before the kfree().
I should have added those assignments in next patch actually. This
latter moves the vfio_platform_put_reset call in the release function.

Best Regards

Eric
> 
> 	Arnd
> 

WARNING: multiple messages have this Message-ID (diff)
From: eric.auger@linaro.org (Eric Auger)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 5/6] vfio: platform: use list of registered reset function
Date: Thu, 22 Oct 2015 13:46:27 +0200	[thread overview]
Message-ID: <5628CC93.7000801@linaro.org> (raw)
In-Reply-To: <20554656.kA5nRBgtaJ@wuerfel>

On 10/22/2015 12:19 PM, Arnd Bergmann wrote:
> On Thursday 22 October 2015 11:42:01 Eric Auger wrote:
>> Remove the static lookup table and use the dynamic list of registered
>> reset functions instead. Also load the reset module through its alias.
>> The reset struct module pointer is stored in vfio_platform_device.
>>
>> We also remove the useless struct device pointer parameter in
>> vfio_platform_get_reset.
>>
>> This patch fixes the issue related to the usage of __symbol_get, which
>> besides from being moot, prevented compilation with CONFIG_MODULES
>> disabled.
>>
>> Also usage of MODULE_ALIAS makes possible to add a new reset module
>> without needing to update the framework. This was suggested by Arnd.
>>
>> Signed-off-by: Eric Auger <eric.auger@linaro.org>
>> Reported-by: Arnd Bergmann <arnd@arndb.de>
> 
> Looks good, just small style issues:
> 
>>
>> -			}
>> +	mutex_lock(&reset_lock);
>> +	list_for_each_entry(iter, &reset_list, link) {
>> +		if (!strcmp(iter->compat, compat) &&
>> +			try_module_get(iter->owner)) {
>> +			*module = iter->owner;
>> +			mutex_unlock(&reset_lock);
>> +			return iter->reset;
>>  		}
>>  	}
>> +
>> +	mutex_unlock(&reset_lock);
>> +	return NULL;
> 
> Better use 'break' to have a single mutex_unlock and return  statement.
OK
> 
>> +
>>  
>>  static void vfio_platform_put_reset(struct vfio_platform_device *vdev)
>>  {
>> -	if (vdev->reset)
>> -		symbol_put_addr(vdev->reset);
>> +	if (vdev->reset) {
>> +		module_put(vdev->reset_module);
>> +		vdev->reset_module = NULL;
>> +		vdev->reset = NULL;
>> +	}
>>  }
> 
> This gets called from the remove callback. No need to clear those
> struct members immediately before the kfree().
I should have added those assignments in next patch actually. This
latter moves the vfio_platform_put_reset call in the release function.

Best Regards

Eric
> 
> 	Arnd
> 

WARNING: multiple messages have this Message-ID (diff)
From: Eric Auger <eric.auger@linaro.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: eric.auger@st.com, alex.williamson@redhat.com,
	b.reynal@virtualopensystems.com,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	christoffer.dall@linaro.org, linux-kernel@vger.kernel.org,
	patches@linaro.org
Subject: Re: [PATCH v2 5/6] vfio: platform: use list of registered reset function
Date: Thu, 22 Oct 2015 13:46:27 +0200	[thread overview]
Message-ID: <5628CC93.7000801@linaro.org> (raw)
In-Reply-To: <20554656.kA5nRBgtaJ@wuerfel>

On 10/22/2015 12:19 PM, Arnd Bergmann wrote:
> On Thursday 22 October 2015 11:42:01 Eric Auger wrote:
>> Remove the static lookup table and use the dynamic list of registered
>> reset functions instead. Also load the reset module through its alias.
>> The reset struct module pointer is stored in vfio_platform_device.
>>
>> We also remove the useless struct device pointer parameter in
>> vfio_platform_get_reset.
>>
>> This patch fixes the issue related to the usage of __symbol_get, which
>> besides from being moot, prevented compilation with CONFIG_MODULES
>> disabled.
>>
>> Also usage of MODULE_ALIAS makes possible to add a new reset module
>> without needing to update the framework. This was suggested by Arnd.
>>
>> Signed-off-by: Eric Auger <eric.auger@linaro.org>
>> Reported-by: Arnd Bergmann <arnd@arndb.de>
> 
> Looks good, just small style issues:
> 
>>
>> -			}
>> +	mutex_lock(&reset_lock);
>> +	list_for_each_entry(iter, &reset_list, link) {
>> +		if (!strcmp(iter->compat, compat) &&
>> +			try_module_get(iter->owner)) {
>> +			*module = iter->owner;
>> +			mutex_unlock(&reset_lock);
>> +			return iter->reset;
>>  		}
>>  	}
>> +
>> +	mutex_unlock(&reset_lock);
>> +	return NULL;
> 
> Better use 'break' to have a single mutex_unlock and return  statement.
OK
> 
>> +
>>  
>>  static void vfio_platform_put_reset(struct vfio_platform_device *vdev)
>>  {
>> -	if (vdev->reset)
>> -		symbol_put_addr(vdev->reset);
>> +	if (vdev->reset) {
>> +		module_put(vdev->reset_module);
>> +		vdev->reset_module = NULL;
>> +		vdev->reset = NULL;
>> +	}
>>  }
> 
> This gets called from the remove callback. No need to clear those
> struct members immediately before the kfree().
I should have added those assignments in next patch actually. This
latter moves the vfio_platform_put_reset call in the release function.

Best Regards

Eric
> 
> 	Arnd
> 


  reply	other threads:[~2015-10-22 11:43 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-22  9:41 [PATCH v2 0/6] VFIO platform reset module rework Eric Auger
2015-10-22  9:41 ` Eric Auger
2015-10-22  9:41 ` [PATCH v2 1/6] vfio: platform: add capability to register a reset function Eric Auger
2015-10-22  9:41   ` Eric Auger
2015-10-22  9:41   ` Eric Auger
2015-10-22 10:06   ` Arnd Bergmann
2015-10-22 10:06     ` Arnd Bergmann
2015-10-22  9:41 ` [PATCH v2 2/6] vfio: platform: reset: add vfio_platform_reset_private.h Eric Auger
2015-10-22  9:41   ` Eric Auger
2015-10-22  9:41   ` Eric Auger
2015-10-22 10:12   ` Arnd Bergmann
2015-10-22 10:12     ` Arnd Bergmann
2015-10-22 10:12     ` Arnd Bergmann
2015-10-22  9:41 ` [PATCH v2 3/6] vfio: platform: reset: calxedaxgmac: add reset function registration Eric Auger
2015-10-22  9:41   ` Eric Auger
2015-10-22  9:41   ` Eric Auger
2015-10-22 10:13   ` Arnd Bergmann
2015-10-22 10:13     ` Arnd Bergmann
2015-10-22 11:54     ` Eric Auger
2015-10-22 11:54       ` Eric Auger
2015-10-22 11:54       ` Eric Auger
2015-10-22 12:09       ` Arnd Bergmann
2015-10-22 12:09         ` Arnd Bergmann
2015-10-22 12:29         ` Eric Auger
2015-10-22 12:29           ` Eric Auger
2015-10-22 12:29           ` Eric Auger
2015-10-22  9:42 ` [PATCH v2 4/6] vfio: platform: add compat in vfio_platform_device Eric Auger
2015-10-22  9:42   ` Eric Auger
2015-10-22  9:42   ` Eric Auger
2015-10-22  9:42 ` [PATCH v2 5/6] vfio: platform: use list of registered reset function Eric Auger
2015-10-22  9:42   ` Eric Auger
2015-10-22  9:42   ` Eric Auger
2015-10-22 10:19   ` Arnd Bergmann
2015-10-22 10:19     ` Arnd Bergmann
2015-10-22 10:19     ` Arnd Bergmann
2015-10-22 11:46     ` Eric Auger [this message]
2015-10-22 11:46       ` Eric Auger
2015-10-22 11:46       ` Eric Auger
2015-10-22  9:42 ` [PATCH v2 6/6] vfio: platform: move get/put reset at open/release Eric Auger
2015-10-22  9:42   ` Eric Auger
2015-10-22  9:42   ` Eric Auger
2015-10-22 10:29   ` Arnd Bergmann
2015-10-22 10:29     ` Arnd Bergmann
2015-10-22 10:29     ` Arnd Bergmann
2015-10-22 11:40     ` Eric Auger
2015-10-22 11:40       ` Eric Auger
2015-10-22 12:05       ` Arnd Bergmann
2015-10-22 12:05         ` Arnd Bergmann
2015-10-22 12:27         ` Eric Auger
2015-10-22 12:27           ` Eric Auger
2015-10-22 12:27           ` Eric Auger
2015-10-22 13:26     ` Eric Auger
2015-10-22 13:26       ` Eric Auger
2015-10-22 13:26       ` Eric Auger
2015-10-22 14:10       ` Arnd Bergmann
2015-10-22 14:10         ` Arnd Bergmann
2015-10-22 14:10         ` Arnd Bergmann
2015-10-22 14:23         ` Eric Auger
2015-10-22 14:23           ` Eric Auger
2015-10-22 14:23           ` Eric Auger
2015-10-22 15:40           ` Alex Williamson
2015-10-22 15:40             ` Alex Williamson
2015-10-22 15:40             ` Alex Williamson

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=5628CC93.7000801@linaro.org \
    --to=eric.auger@linaro.org \
    --cc=alex.williamson@redhat.com \
    --cc=arnd@arndb.de \
    --cc=eric.auger@st.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@linaro.org \
    /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.