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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 26 Jan 2020 11:26:35 +0100
From:   Pavel Machek <pavel@...x.de>
To:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     linux-kernel@...r.kernel.org, stable@...r.kernel.org,
        Bruno Thomsen <bruno.thomsen@...il.com>,
        Alexandre Belloni <alexandre.belloni@...tlin.com>,
        Sasha Levin <sashal@...nel.org>
Subject: Re: [PATCH 4.19 521/639] rtc: pcf2127: bugfix: read rtc disables
 watchdog

On Fri 2020-01-24 10:31:31, Greg Kroah-Hartman wrote:
> From: Bruno Thomsen <bruno.thomsen@...il.com>
> 
> [ Upstream commit 7f43020e3bdb63d65661ed377682702f8b34d3ea ]
> 
> The previous fix listed bulk read of registers as root cause of
> accendential disabling of watchdog, since the watchdog counter
> register (WD_VAL) was zeroed.
> 
> Fixes: 3769a375ab83 rtc: pcf2127: bulk read only date and time registers.
> 
> Tested with the same PCF2127 chip as Sean reveled root cause
> of WD_VAL register value zeroing was caused by reading CTRL2
> register which is one of the watchdog feature control registers.
> 
> So the solution is to not read the first two control registers
> (CTRL1 and CTRL2) in pcf2127_rtc_read_time as they are not
> needed anyway. Size of local buf variable is kept to allow
> easy usage of register defines to improve readability of code.

Should the array be zeroed before or something? This way, one array
contains both undefined values and valid data...

> Debug trace line was updated after CTRL1 and CTRL2 are no longer
> read from the chip. Also replaced magic numbers in buf access
> with register defines.

That part is not an improvement. Previously the code was formatted so
that you could parse what is being printed.

Best regards,							Pavel

> @@ -91,14 +85,12 @@ static int pcf2127_rtc_read_time(struct device *dev, struct rtc_time *tm)
>  	}
>  
>  	dev_dbg(dev,
> -		"%s: raw data is cr1=%02x, cr2=%02x, cr3=%02x, "
> -		"sec=%02x, min=%02x, hr=%02x, "
> +		"%s: raw data is cr3=%02x, sec=%02x, min=%02x, hr=%02x, "
>  		"mday=%02x, wday=%02x, mon=%02x, year=%02x\n",
> -		__func__,
> -		buf[0], buf[1], buf[2],
> -		buf[3], buf[4], buf[5],
> -		buf[6], buf[7], buf[8], buf[9]);
> -
> +		__func__, buf[PCF2127_REG_CTRL3], buf[PCF2127_REG_SC],
> +		buf[PCF2127_REG_MN], buf[PCF2127_REG_HR],
> +		buf[PCF2127_REG_DM], buf[PCF2127_REG_DW],
> +		buf[PCF2127_REG_MO], buf[PCF2127_REG_YR]);
>  
>  	tm->tm_sec = bcd2bin(buf[PCF2127_REG_SC] & 0x7F);
>  	tm->tm_min = bcd2bin(buf[PCF2127_REG_MN] & 0x7F);
> -- 
> 2.20.1
> 
> 

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Download attachment "signature.asc" of type "application/pgp-signature" (196 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ