lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <70c9a1fc-31eb-27c4-1283-35590f8b80f6@smarthome-wolf.de>
Date:   Wed, 13 Dec 2017 17:32:28 +0200
From:   Marcus Wolf <marcus.wolf@...rthome-wolf.de>
To:     Valentin Vidic <Valentin.Vidic@...Net.hr>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     Simon Sandström <simon@...anor.nu>,
        Marcin Ciupak <marcin.s.ciupak@...il.com>,
        Marcus Wolf <linux@...f-entwicklungen.de>,
        devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 6/8] staging: pi433: use defines for shifting register
 values



Am 13.12.2017 um 16:21 schrieb Valentin Vidic:
> Avoid shifting by magic numbers and use defines instead:
> 
>    SHIFT_DATAMODUL_MODULATION_TYPE
>    SHIFT_LNA_CURRENT_GAIN
> 
> Signed-off-by: Valentin Vidic <Valentin.Vidic@...Net.hr>
> ---
>   drivers/staging/pi433/rf69.c           | 4 ++--
>   drivers/staging/pi433/rf69_registers.h | 2 ++
>   2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/pi433/rf69.c b/drivers/staging/pi433/rf69.c
> index b1e243e5bcac..8c4841c9d796 100644
> --- a/drivers/staging/pi433/rf69.c
> +++ b/drivers/staging/pi433/rf69.c
> @@ -102,7 +102,7 @@ enum modulation rf69_get_modulation(struct spi_device *spi)
>   
>   	currentValue = rf69_read_reg(spi, REG_DATAMODUL);
>   
> -	switch ((currentValue & MASK_DATAMODUL_MODULATION_TYPE) >> 3) { // TODO improvement: change 3 to define
> +	switch ((currentValue & MASK_DATAMODUL_MODULATION_TYPE) >> SHIFT_DATAMODUL_MODULATION_TYPE) {

As mentioned by Dan, this change isn't needed any more, since we don't 
need the shift right here, since the DATAMODUL_MODULATION_TYPE_OOK and 
DATAMODUL_MODULATION_TYPE_FSK already contains the bits at the correct 
position.

>   	case DATAMODUL_MODULATION_TYPE_OOK: return OOK;
>   	case DATAMODUL_MODULATION_TYPE_FSK: return FSK;
>   	default:			    return UNDEF;
> @@ -340,7 +340,7 @@ enum lnaGain rf69_get_lna_gain(struct spi_device *spi)
>   
>   	currentValue = rf69_read_reg(spi, REG_LNA);
>   
> -	switch ((currentValue & MASK_LNA_CURRENT_GAIN) >> 3) { // improvement: change 3 to define
> +	switch ((currentValue & MASK_LNA_CURRENT_GAIN) >> SHIFT_LNA_CURRENT_GAIN) {

Regarding my previous mail: I was wrong! This way is right!!

BUT: I would prefer to have a solution, like it was done for the 
modulation type: Do not shift anything here, but introduce new defines 
(LNA_GAIN_AUTO_xyz...), that are used for the casees, having the bits 
set at the right position, so theycan be used without shifting.
Be aware: The old defines must remain untouched, since they are needed 
for an other function.

Thx,

Marcus

>   	case LNA_GAIN_AUTO:	    return automatic;
>   	case LNA_GAIN_MAX:	    return max;
>   	case LNA_GAIN_MAX_MINUS_6:  return maxMinus6;
> diff --git a/drivers/staging/pi433/rf69_registers.h b/drivers/staging/pi433/rf69_registers.h
> index 981b57d7cc0b..da12642cf249 100644
> --- a/drivers/staging/pi433/rf69_registers.h
> +++ b/drivers/staging/pi433/rf69_registers.h
> @@ -124,6 +124,7 @@
>   #define  MASK_DATAMODUL_MODE			0x06
>   #define  MASK_DATAMODUL_MODULATION_TYPE		0x18
>   #define  MASK_DATAMODUL_MODULATION_SHAPE	0x03
> +#define  SHIFT_DATAMODUL_MODULATION_TYPE	3
>   
>   #define  DATAMODUL_MODE_PACKET			0x00 /* default */
>   #define  DATAMODUL_MODE_CONTINUOUS		0x40
> @@ -235,6 +236,7 @@
>   #define  MASK_LNA_ZIN				0x80
>   #define  MASK_LNA_CURRENT_GAIN			0x38
>   #define  MASK_LNA_GAIN				0x07
> +#define  SHIFT_LNA_CURRENT_GAIN			3
>   
>   #define  LNA_GAIN_AUTO				0x00 /* default */
>   #define  LNA_GAIN_MAX				0x01
> 

-- 
Smarthome-Wolf UG (haftungsbeschränkt)
Helene-Lange-Weg 23
80637 München
Amtsgericht München, HRB 223529
Umastzsteuer-ID: DE304719911
Geschäftsführer: Marcus Wolf

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ