Commit e7f3dd80 authored by Niklas Schnelle's avatar Niklas Schnelle Committed by Greg Kroah-Hartman
Browse files

firmware: dmi-sysfs: handle HAS_IOPORT=n



In a future patch HAS_IOPORT=n will result in inb()/outb() and friends
not being declared. We thus need to guard sections of code calling them
as alternative access methods.

Co-developed-by: default avatarArnd Bergmann <arnd@kernel.org>
Signed-off-by: default avatarArnd Bergmann <arnd@kernel.org>
Signed-off-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
Link: https://lore.kernel.org/r/20230522105049.1467313-11-schnelle@linux.ibm.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 67d91a1e
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -310,6 +310,7 @@ static const struct kobj_type dmi_system_event_log_ktype = {
	.default_groups = dmi_sysfs_sel_groups,
	.default_groups = dmi_sysfs_sel_groups,
};
};


#ifdef CONFIG_HAS_IOPORT
typedef u8 (*sel_io_reader)(const struct dmi_system_event_log *sel,
typedef u8 (*sel_io_reader)(const struct dmi_system_event_log *sel,
			    loff_t offset);
			    loff_t offset);


@@ -374,6 +375,7 @@ static ssize_t dmi_sel_raw_read_io(struct dmi_sysfs_entry *entry,


	return wrote;
	return wrote;
}
}
#endif


static ssize_t dmi_sel_raw_read_phys32(struct dmi_sysfs_entry *entry,
static ssize_t dmi_sel_raw_read_phys32(struct dmi_sysfs_entry *entry,
				       const struct dmi_system_event_log *sel,
				       const struct dmi_system_event_log *sel,
@@ -409,11 +411,13 @@ static ssize_t dmi_sel_raw_read_helper(struct dmi_sysfs_entry *entry,
	memcpy(&sel, dh, sizeof(sel));
	memcpy(&sel, dh, sizeof(sel));


	switch (sel.access_method) {
	switch (sel.access_method) {
#ifdef CONFIG_HAS_IOPORT
	case DMI_SEL_ACCESS_METHOD_IO8:
	case DMI_SEL_ACCESS_METHOD_IO8:
	case DMI_SEL_ACCESS_METHOD_IO2x8:
	case DMI_SEL_ACCESS_METHOD_IO2x8:
	case DMI_SEL_ACCESS_METHOD_IO16:
	case DMI_SEL_ACCESS_METHOD_IO16:
		return dmi_sel_raw_read_io(entry, &sel, state->buf,
		return dmi_sel_raw_read_io(entry, &sel, state->buf,
					   state->pos, state->count);
					   state->pos, state->count);
#endif
	case DMI_SEL_ACCESS_METHOD_PHYS32:
	case DMI_SEL_ACCESS_METHOD_PHYS32:
		return dmi_sel_raw_read_phys32(entry, &sel, state->buf,
		return dmi_sel_raw_read_phys32(entry, &sel, state->buf,
					       state->pos, state->count);
					       state->pos, state->count);