efi/esrt: Fix some compiler warnings
Apparently I missed some compiler warnings on 32-bit platforms, where phys_addr_t isn't the same size as void * and I casted it to make printk work. Obviously I should have thought "I'm printing some random type, instead of typecasting I should check Documentation/printk-formats.txt and see how to do it." o/~ The More You Know ☆彡 o/~ This patch also fixes one other warning about an uninitialized variable some compiler versions seem to see. You can't actually hit the code path where it would be uninitialized, because there's a prior test that would error out, but gcc hasn't figured that out. Anyway, it now has a test and returns the error at both places. Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
This commit is contained in:
parent
a93e178838
commit
f2f6b587c5
|
@ -167,7 +167,6 @@ static struct kset *esrt_kset;
|
||||||
|
|
||||||
static int esre_create_sysfs_entry(void *esre, int entry_num)
|
static int esre_create_sysfs_entry(void *esre, int entry_num)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
|
||||||
struct esre_entry *entry;
|
struct esre_entry *entry;
|
||||||
char name[20];
|
char name[20];
|
||||||
|
|
||||||
|
@ -180,13 +179,15 @@ static int esre_create_sysfs_entry(void *esre, int entry_num)
|
||||||
entry->kobj.kset = esrt_kset;
|
entry->kobj.kset = esrt_kset;
|
||||||
|
|
||||||
if (esrt->fw_resource_version == 1) {
|
if (esrt->fw_resource_version == 1) {
|
||||||
|
int rc = 0;
|
||||||
|
|
||||||
entry->esre.esre1 = esre;
|
entry->esre.esre1 = esre;
|
||||||
rc = kobject_init_and_add(&entry->kobj, &esre1_ktype, NULL,
|
rc = kobject_init_and_add(&entry->kobj, &esre1_ktype, NULL,
|
||||||
"%s", name);
|
"%s", name);
|
||||||
}
|
if (rc) {
|
||||||
if (rc) {
|
kfree(entry);
|
||||||
kfree(entry);
|
return rc;
|
||||||
return rc;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
list_add_tail(&entry->list, &entry_list);
|
list_add_tail(&entry->list, &entry_list);
|
||||||
|
@ -248,6 +249,7 @@ void __init efi_esrt_init(void)
|
||||||
size_t size, max, entry_size, entries_size;
|
size_t size, max, entry_size, entries_size;
|
||||||
efi_memory_desc_t md;
|
efi_memory_desc_t md;
|
||||||
int rc;
|
int rc;
|
||||||
|
phys_addr_t end;
|
||||||
|
|
||||||
pr_debug("esrt-init: loading.\n");
|
pr_debug("esrt-init: loading.\n");
|
||||||
if (!esrt_table_exists())
|
if (!esrt_table_exists())
|
||||||
|
@ -335,8 +337,8 @@ void __init efi_esrt_init(void)
|
||||||
esrt_data = (phys_addr_t)efi.esrt;
|
esrt_data = (phys_addr_t)efi.esrt;
|
||||||
esrt_data_size = size;
|
esrt_data_size = size;
|
||||||
|
|
||||||
pr_info("Reserving ESRT space from %p to %p.\n", (void *)esrt_data,
|
end = esrt_data + size;
|
||||||
(char *)esrt_data + size);
|
pr_info("Reserving ESRT space from %pa to %pa.\n", &esrt_data, &end);
|
||||||
memblock_reserve(esrt_data, esrt_data_size);
|
memblock_reserve(esrt_data, esrt_data_size);
|
||||||
|
|
||||||
pr_debug("esrt-init: loaded.\n");
|
pr_debug("esrt-init: loaded.\n");
|
||||||
|
@ -353,11 +355,16 @@ static int __init register_entries(void)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (i = 0; i < le32_to_cpu(esrt->fw_resource_count); i++) {
|
for (i = 0; i < le32_to_cpu(esrt->fw_resource_count); i++) {
|
||||||
void *entry;
|
void *esre = NULL;
|
||||||
if (esrt->fw_resource_version == 1) {
|
if (esrt->fw_resource_version == 1) {
|
||||||
entry = &v1_entries[i];
|
esre = &v1_entries[i];
|
||||||
|
} else {
|
||||||
|
pr_err("Unsupported ESRT version %lld.\n",
|
||||||
|
esrt->fw_resource_version);
|
||||||
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
rc = esre_create_sysfs_entry(entry, i);
|
|
||||||
|
rc = esre_create_sysfs_entry(esre, i);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
pr_err("ESRT entry creation failed with error %d.\n",
|
pr_err("ESRT entry creation failed with error %d.\n",
|
||||||
rc);
|
rc);
|
||||||
|
@ -387,7 +394,7 @@ static int __init esrt_sysfs_init(void)
|
||||||
|
|
||||||
ioesrt = ioremap(esrt_data, esrt_data_size);
|
ioesrt = ioremap(esrt_data, esrt_data_size);
|
||||||
if (!ioesrt) {
|
if (!ioesrt) {
|
||||||
pr_err("ioremap(%p, %zu) failed.\n", (void *)esrt_data,
|
pr_err("ioremap(%pa, %zu) failed.\n", &esrt_data,
|
||||||
esrt_data_size);
|
esrt_data_size);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue