Commit 8de2cef6 authored by Tomasz Pakuła's avatar Tomasz Pakuła Committed by Jiri Kosina
Browse files

HID: pidff: Use ARRAY_SIZE macro instead of sizeof



Could lead to issues when arrays won't be 8 bit fields

Signed-off-by: default avatarTomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Reviewed-by: default avatarOleg Makarenko <oleg@makarenk.ooo>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.com>
parent 6513cfdd
Loading
Loading
Loading
Loading
+23 −23
Original line number Diff line number Diff line
@@ -158,20 +158,20 @@ struct pidff_usage {
struct pidff_device {
	struct hid_device *hid;

	struct hid_report *reports[sizeof(pidff_reports)];
	struct hid_report *reports[ARRAY_SIZE(pidff_reports)];

	struct pidff_usage set_effect[sizeof(pidff_set_effect)];
	struct pidff_usage set_envelope[sizeof(pidff_set_envelope)];
	struct pidff_usage set_condition[sizeof(pidff_set_condition)];
	struct pidff_usage set_periodic[sizeof(pidff_set_periodic)];
	struct pidff_usage set_constant[sizeof(pidff_set_constant)];
	struct pidff_usage set_ramp[sizeof(pidff_set_ramp)];
	struct pidff_usage set_effect[ARRAY_SIZE(pidff_set_effect)];
	struct pidff_usage set_envelope[ARRAY_SIZE(pidff_set_envelope)];
	struct pidff_usage set_condition[ARRAY_SIZE(pidff_set_condition)];
	struct pidff_usage set_periodic[ARRAY_SIZE(pidff_set_periodic)];
	struct pidff_usage set_constant[ARRAY_SIZE(pidff_set_constant)];
	struct pidff_usage set_ramp[ARRAY_SIZE(pidff_set_ramp)];

	struct pidff_usage device_gain[sizeof(pidff_device_gain)];
	struct pidff_usage block_load[sizeof(pidff_block_load)];
	struct pidff_usage pool[sizeof(pidff_pool)];
	struct pidff_usage effect_operation[sizeof(pidff_effect_operation)];
	struct pidff_usage block_free[sizeof(pidff_block_free)];
	struct pidff_usage device_gain[ARRAY_SIZE(pidff_device_gain)];
	struct pidff_usage block_load[ARRAY_SIZE(pidff_block_load)];
	struct pidff_usage pool[ARRAY_SIZE(pidff_pool)];
	struct pidff_usage effect_operation[ARRAY_SIZE(pidff_effect_operation)];
	struct pidff_usage block_free[ARRAY_SIZE(pidff_block_free)];

	/*
	 * Special field is a field that is not composed of
@@ -194,10 +194,10 @@ struct pidff_device {
	/* Special field in effect_operation */
	struct hid_field *effect_operation_status;

	int control_id[sizeof(pidff_device_control)];
	int type_id[sizeof(pidff_effect_types)];
	int status_id[sizeof(pidff_block_load_status)];
	int operation_id[sizeof(pidff_effect_operation_status)];
	int control_id[ARRAY_SIZE(pidff_device_control)];
	int type_id[ARRAY_SIZE(pidff_effect_types)];
	int status_id[ARRAY_SIZE(pidff_block_load_status)];
	int operation_id[ARRAY_SIZE(pidff_effect_operation_status)];

	int pid_id[PID_EFFECTS_MAX];

@@ -583,7 +583,7 @@ static void pidff_set_device_control(struct pidff_device *pidff, int field)
		hid_dbg(pidff->hid, "DEVICE_CONTROL is a bitmask\n");

		/* Clear current bitmask */
		for (i = 0; i < sizeof(pidff_device_control); i++) {
		for (i = 0; i < ARRAY_SIZE(pidff_device_control); i++) {
			index = pidff->control_id[i];
			if (index < 1)
				continue;
@@ -999,7 +999,7 @@ static int pidff_check_usage(int usage)
{
	int i;

	for (i = 0; i < sizeof(pidff_reports); i++)
	for (i = 0; i < ARRAY_SIZE(pidff_reports); i++)
		if (usage == (HID_UP_PID | pidff_reports[i]))
			return i;

@@ -1117,7 +1117,7 @@ static int pidff_find_special_keys(int *keys, struct hid_field *fld,

#define PIDFF_FIND_SPECIAL_KEYS(keys, field, name) \
	pidff_find_special_keys(pidff->keys, pidff->field, pidff_ ## name, \
		sizeof(pidff_ ## name))
		ARRAY_SIZE(pidff_ ## name))

/*
 * Find and check the special fields
@@ -1184,7 +1184,7 @@ static int pidff_find_special_fields(struct pidff_device *pidff)

	if (PIDFF_FIND_SPECIAL_KEYS(status_id, block_load_status,
				    block_load_status) !=
			sizeof(pidff_block_load_status)) {
			ARRAY_SIZE(pidff_block_load_status)) {
		hid_err(pidff->hid,
			"block load status identifiers not found\n");
		return -1;
@@ -1192,7 +1192,7 @@ static int pidff_find_special_fields(struct pidff_device *pidff)

	if (PIDFF_FIND_SPECIAL_KEYS(operation_id, effect_operation_status,
				    effect_operation_status) !=
			sizeof(pidff_effect_operation_status)) {
			ARRAY_SIZE(pidff_effect_operation_status)) {
		hid_err(pidff->hid, "effect operation identifiers not found\n");
		return -1;
	}
@@ -1208,7 +1208,7 @@ static int pidff_find_effects(struct pidff_device *pidff,
{
	int i;

	for (i = 0; i < sizeof(pidff_effect_types); i++) {
	for (i = 0; i < ARRAY_SIZE(pidff_effect_types); i++) {
		int pidff_type = pidff->type_id[i];

		if (pidff->set_effect_type->usage[pidff_type].hid !=
@@ -1258,7 +1258,7 @@ static int pidff_find_effects(struct pidff_device *pidff,
#define PIDFF_FIND_FIELDS(name, report, strict) \
	pidff_find_fields(pidff->name, pidff_ ## name, \
		pidff->reports[report], \
		sizeof(pidff_ ## name), strict)
		ARRAY_SIZE(pidff_ ## name), strict)

/*
 * Fill and check the pidff_usages