Re: [PATCH] hwmon: (w83627ehf) Fix crash seen with W83627DHG-P

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Guenter Roeck (linux@xxxxxxxxxxxx) wrote:
> Loading the driver on a system with W83627DHG-P crashes as follows.
> 
> w83627ehf: Found W83627DHG-P chip at 0x290
> BUG: kernel NULL pointer dereference, address: 0000000000000000
> PGD 0 P4D 0
> Oops: 0000 [#1] SMP NOPTI
> CPU: 0 PID: 604 Comm: sensors Not tainted 5.6.0-rc2-00055-gca7e1fd1026c #29
> Hardware name:  /D425KT, BIOS MWPNT10N.86A.0132.2013.0726.1534 07/26/2013
> RIP: 0010:w83627ehf_read_string+0x27/0x70 [w83627ehf]
> Code: [... ]
> RSP: 0018:ffffb95980657df8 EFLAGS: 00010293
> RAX: 0000000000000000 RBX: ffff96caaa7f5218 RCX: 0000000000000000
> RDX: 0000000000000015 RSI: 0000000000000001 RDI: ffff96caa736ec08
> RBP: 0000000000000000 R08: ffffb95980657e20 R09: 0000000000000001
> R10: ffff96caaa635cc0 R11: 0000000000000000 R12: ffff96caa9f7cf00
> R13: ffff96caa9ec3d00 R14: ffff96caa9ec3d28 R15: ffff96caa9ec3d40
> FS:  00007fbc7c4e2740(0000) GS:ffff96caabc00000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000000000000 CR3: 0000000129d58000 CR4: 00000000000006f0
> Call Trace:
>  ? cp_new_stat+0x12d/0x160
>  hwmon_attr_show_string+0x37/0x70 [hwmon]
>  dev_attr_show+0x14/0x50
>  sysfs_kf_seq_show+0xb5/0x1b0
>  seq_read+0xcf/0x460
>  vfs_read+0x9b/0x150
>  ksys_read+0x5f/0xe0
>  do_syscall_64+0x48/0x190
>  entry_SYSCALL_64_after_hwframe+0x44/0xa9
> ...
> 
> Temperature labels are not always present. Adjust sysfs attribute
> visibility accordingly.
> 
> Reported-by: Meelis Roos <mroos@xxxxxxxx>
> Cc: Meelis Roos <mroos@xxxxxxxx>
> Cc: Dr. David Alan Gilbert <linux@xxxxxxxxxxx>
> Fixes: 266cd5835947 ("hwmon: (w83627ehf) convert to with_info interface")
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Signed-off-by: Dr. David Alan Gilbert <linux@xxxxxxxxxxx>

> ---
>  drivers/hwmon/w83627ehf.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
> index 7ffadc2da57b..5a5120121e50 100644
> --- a/drivers/hwmon/w83627ehf.c
> +++ b/drivers/hwmon/w83627ehf.c
> @@ -1346,8 +1346,13 @@ w83627ehf_is_visible(const void *drvdata, enum hwmon_sensor_types type,
>  		/* channel 0.., name 1.. */
>  		if (!(data->have_temp & (1 << channel)))
>  			return 0;
> -		if (attr == hwmon_temp_input || attr == hwmon_temp_label)
> +		if (attr == hwmon_temp_input)
>  			return 0444;
> +		if (attr == hwmon_temp_label) {
> +			if (data->temp_label)
> +				return 0444;
> +			return 0;
> +		}
>  		if (channel == 2 && data->temp3_val_only)
>  			return 0;
>  		if (attr == hwmon_temp_max) {
> -- 
> 2.17.1
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux