diff options
Diffstat (limited to 'drivers/net/phy/sfp.c')
| -rw-r--r-- | drivers/net/phy/sfp.c | 20 | 
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c index 4637d980310e..52fffb98fde9 100644 --- a/drivers/net/phy/sfp.c +++ b/drivers/net/phy/sfp.c @@ -398,7 +398,6 @@ static umode_t sfp_hwmon_is_visible(const void *data,  	switch (type) {  	case hwmon_temp:  		switch (attr) { -		case hwmon_temp_input:  		case hwmon_temp_min_alarm:  		case hwmon_temp_max_alarm:  		case hwmon_temp_lcrit_alarm: @@ -407,13 +406,16 @@ static umode_t sfp_hwmon_is_visible(const void *data,  		case hwmon_temp_max:  		case hwmon_temp_lcrit:  		case hwmon_temp_crit: +			if (!(sfp->id.ext.enhopts & SFP_ENHOPTS_ALARMWARN)) +				return 0; +			/* fall through */ +		case hwmon_temp_input:  			return 0444;  		default:  			return 0;  		}  	case hwmon_in:  		switch (attr) { -		case hwmon_in_input:  		case hwmon_in_min_alarm:  		case hwmon_in_max_alarm:  		case hwmon_in_lcrit_alarm: @@ -422,13 +424,16 @@ static umode_t sfp_hwmon_is_visible(const void *data,  		case hwmon_in_max:  		case hwmon_in_lcrit:  		case hwmon_in_crit: +			if (!(sfp->id.ext.enhopts & SFP_ENHOPTS_ALARMWARN)) +				return 0; +			/* fall through */ +		case hwmon_in_input:  			return 0444;  		default:  			return 0;  		}  	case hwmon_curr:  		switch (attr) { -		case hwmon_curr_input:  		case hwmon_curr_min_alarm:  		case hwmon_curr_max_alarm:  		case hwmon_curr_lcrit_alarm: @@ -437,6 +442,10 @@ static umode_t sfp_hwmon_is_visible(const void *data,  		case hwmon_curr_max:  		case hwmon_curr_lcrit:  		case hwmon_curr_crit: +			if (!(sfp->id.ext.enhopts & SFP_ENHOPTS_ALARMWARN)) +				return 0; +			/* fall through */ +		case hwmon_curr_input:  			return 0444;  		default:  			return 0; @@ -452,7 +461,6 @@ static umode_t sfp_hwmon_is_visible(const void *data,  		    channel == 1)  			return 0;  		switch (attr) { -		case hwmon_power_input:  		case hwmon_power_min_alarm:  		case hwmon_power_max_alarm:  		case hwmon_power_lcrit_alarm: @@ -461,6 +469,10 @@ static umode_t sfp_hwmon_is_visible(const void *data,  		case hwmon_power_max:  		case hwmon_power_lcrit:  		case hwmon_power_crit: +			if (!(sfp->id.ext.enhopts & SFP_ENHOPTS_ALARMWARN)) +				return 0; +			/* fall through */ +		case hwmon_power_input:  			return 0444;  		default:  			return 0;  |