diff mbox series

[3/3] hwrng: npcm - Add a local variable for struct device pointer

Message ID 20250410070623.3676647-4-sakari.ailus@linux.intel.com (mailing list archive)
State New
Headers show
Series Use a local device pointer for hwrng drivers instead of casting constantly | expand

Commit Message

Sakari Ailus April 10, 2025, 7:06 a.m. UTC
Add a local variable for a struct device pointer instead of obtaining the
hwrng priv field and casting it as a struct device pointer whenever it's
needed.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/char/hw_random/npcm-rng.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

kernel test robot April 10, 2025, 9:59 a.m. UTC | #1
Hi Sakari,

kernel test robot noticed the following build errors:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on char-misc/char-misc-next char-misc/char-misc-linus herbert-cryptodev-2.6/master linus/master v6.15-rc1 next-20250410]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Sakari-Ailus/hwrng-atmel-Add-a-local-variable-for-struct-device-pointer/20250410-151223
base:   char-misc/char-misc-testing
patch link:    https://lore.kernel.org/r/20250410070623.3676647-4-sakari.ailus%40linux.intel.com
patch subject: [PATCH 3/3] hwrng: npcm - Add a local variable for struct device pointer
config: csky-randconfig-001-20250410 (https://download.01.org/0day-ci/archive/20250410/202504101705.PeW9QC3m-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250410/202504101705.PeW9QC3m-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504101705.PeW9QC3m-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/char/hw_random/npcm-rng.c: In function 'npcm_rng_read':
>> drivers/char/hw_random/npcm-rng.c:58:9: error: expected ',' or ';' before 'int'
      58 |         int retval = 0;
         |         ^~~
>> drivers/char/hw_random/npcm-rng.c:78:17: error: 'retval' undeclared (first use in this function)
      78 |                 retval++;
         |                 ^~~~~~
   drivers/char/hw_random/npcm-rng.c:78:17: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/char/hw_random/npcm-rng.c:87:1: warning: control reaches end of non-void function [-Wreturn-type]
      87 | }
         | ^


vim +58 drivers/char/hw_random/npcm-rng.c

c98429297d8b25a Tomer Maimon 2019-09-12  53  
c98429297d8b25a Tomer Maimon 2019-09-12  54  static int npcm_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
c98429297d8b25a Tomer Maimon 2019-09-12  55  {
c98429297d8b25a Tomer Maimon 2019-09-12  56  	struct npcm_rng *priv = to_npcm_rng(rng);
11fd03b27c8824f Sakari Ailus 2025-04-10  57  	struct device *dev = (struct device *)priv->rng.priv
c98429297d8b25a Tomer Maimon 2019-09-12 @58  	int retval = 0;
c98429297d8b25a Tomer Maimon 2019-09-12  59  	int ready;
c98429297d8b25a Tomer Maimon 2019-09-12  60  
11fd03b27c8824f Sakari Ailus 2025-04-10  61  	pm_runtime_get_sync(dev);
c98429297d8b25a Tomer Maimon 2019-09-12  62  
c2fb644638ae45c Tomer Maimon 2020-09-24  63  	while (max) {
c98429297d8b25a Tomer Maimon 2019-09-12  64  		if (wait) {
c2fb644638ae45c Tomer Maimon 2020-09-24  65  			if (readb_poll_timeout(priv->base + NPCM_RNGCS_REG,
c98429297d8b25a Tomer Maimon 2019-09-12  66  					       ready,
c98429297d8b25a Tomer Maimon 2019-09-12  67  					       ready & NPCM_RNG_DATA_VALID,
c98429297d8b25a Tomer Maimon 2019-09-12  68  					       NPCM_RNG_POLL_USEC,
c98429297d8b25a Tomer Maimon 2019-09-12  69  					       NPCM_RNG_TIMEOUT_USEC))
c98429297d8b25a Tomer Maimon 2019-09-12  70  				break;
c98429297d8b25a Tomer Maimon 2019-09-12  71  		} else {
c2fb644638ae45c Tomer Maimon 2020-09-24  72  			if ((readb(priv->base + NPCM_RNGCS_REG) &
c98429297d8b25a Tomer Maimon 2019-09-12  73  			    NPCM_RNG_DATA_VALID) == 0)
c98429297d8b25a Tomer Maimon 2019-09-12  74  				break;
c98429297d8b25a Tomer Maimon 2019-09-12  75  		}
c98429297d8b25a Tomer Maimon 2019-09-12  76  
c2fb644638ae45c Tomer Maimon 2020-09-24  77  		*(u8 *)buf = readb(priv->base + NPCM_RNGD_REG);
c2fb644638ae45c Tomer Maimon 2020-09-24 @78  		retval++;
c2fb644638ae45c Tomer Maimon 2020-09-24  79  		buf++;
c2fb644638ae45c Tomer Maimon 2020-09-24  80  		max--;
c98429297d8b25a Tomer Maimon 2019-09-12  81  	}
c98429297d8b25a Tomer Maimon 2019-09-12  82  
11fd03b27c8824f Sakari Ailus 2025-04-10  83  	pm_runtime_mark_last_busy(dev);
11fd03b27c8824f Sakari Ailus 2025-04-10  84  	pm_runtime_put_sync_autosuspend(dev);
c98429297d8b25a Tomer Maimon 2019-09-12  85  
c98429297d8b25a Tomer Maimon 2019-09-12  86  	return retval || !wait ? retval : -EIO;
c98429297d8b25a Tomer Maimon 2019-09-12 @87  }
c98429297d8b25a Tomer Maimon 2019-09-12  88
kernel test robot April 10, 2025, 3:55 p.m. UTC | #2
Hi Sakari,

kernel test robot noticed the following build errors:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on char-misc/char-misc-next char-misc/char-misc-linus herbert-cryptodev-2.6/master linus/master v6.15-rc1 next-20250410]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Sakari-Ailus/hwrng-atmel-Add-a-local-variable-for-struct-device-pointer/20250410-151223
base:   char-misc/char-misc-testing
patch link:    https://lore.kernel.org/r/20250410070623.3676647-4-sakari.ailus%40linux.intel.com
patch subject: [PATCH 3/3] hwrng: npcm - Add a local variable for struct device pointer
config: arm-randconfig-001-20250410 (https://download.01.org/0day-ci/archive/20250410/202504102028.H0evWtkl-lkp@intel.com/config)
compiler: clang version 19.1.1 (https://github.com/llvm/llvm-project d401987fe349a87c53fe25829215b080b70c0c1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250410/202504102028.H0evWtkl-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504102028.H0evWtkl-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/char/hw_random/npcm-rng.c:57:54: error: expected ';' at end of declaration
      57 |         struct device *dev = (struct device *)priv->rng.priv
         |                                                             ^
         |                                                             ;
   1 error generated.


vim +57 drivers/char/hw_random/npcm-rng.c

    53	
    54	static int npcm_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
    55	{
    56		struct npcm_rng *priv = to_npcm_rng(rng);
  > 57		struct device *dev = (struct device *)priv->rng.priv
    58		int retval = 0;
    59		int ready;
    60	
    61		pm_runtime_get_sync(dev);
    62	
    63		while (max) {
    64			if (wait) {
    65				if (readb_poll_timeout(priv->base + NPCM_RNGCS_REG,
    66						       ready,
    67						       ready & NPCM_RNG_DATA_VALID,
    68						       NPCM_RNG_POLL_USEC,
    69						       NPCM_RNG_TIMEOUT_USEC))
    70					break;
    71			} else {
    72				if ((readb(priv->base + NPCM_RNGCS_REG) &
    73				    NPCM_RNG_DATA_VALID) == 0)
    74					break;
    75			}
    76	
    77			*(u8 *)buf = readb(priv->base + NPCM_RNGD_REG);
    78			retval++;
    79			buf++;
    80			max--;
    81		}
    82	
    83		pm_runtime_mark_last_busy(dev);
    84		pm_runtime_put_sync_autosuspend(dev);
    85	
    86		return retval || !wait ? retval : -EIO;
    87	}
    88
diff mbox series

Patch

diff --git a/drivers/char/hw_random/npcm-rng.c b/drivers/char/hw_random/npcm-rng.c
index 9ff00f096f38..beec96391af7 100644
--- a/drivers/char/hw_random/npcm-rng.c
+++ b/drivers/char/hw_random/npcm-rng.c
@@ -54,10 +54,11 @@  static void npcm_rng_cleanup(struct hwrng *rng)
 static int npcm_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
 {
 	struct npcm_rng *priv = to_npcm_rng(rng);
+	struct device *dev = (struct device *)priv->rng.priv
 	int retval = 0;
 	int ready;
 
-	pm_runtime_get_sync((struct device *)priv->rng.priv);
+	pm_runtime_get_sync(dev);
 
 	while (max) {
 		if (wait) {
@@ -79,8 +80,8 @@  static int npcm_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
 		max--;
 	}
 
-	pm_runtime_mark_last_busy((struct device *)priv->rng.priv);
-	pm_runtime_put_sync_autosuspend((struct device *)priv->rng.priv);
+	pm_runtime_mark_last_busy(dev);
+	pm_runtime_put_sync_autosuspend(dev);
 
 	return retval || !wait ? retval : -EIO;
 }