mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-28 07:23:43 +02:00
opaque_master: Use new API to register shutdown function
This allows opaque masters to register shutdown function in opaque_master struct, which means there is no need to call register_shutdown in init function, since this call is now a part of register_opaque_master. As a consequence of using new API, two things are happening here: 1) No resource leakage anymore in case register_shutdown() would fail, 2) Fixed propagation of register_opaque_master() return values. BUG=b:185191942 TEST=1) builds and ninja test including CB:56413 2) on ARMv7 device flashrom -p linux_mtd -V -> using linux_mtd, chip found Change-Id: Id8471a117556edcbf9694752fabe05cf4501ce70 Signed-off-by: Anastasia Klimchuk <aklm@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/56825 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
This commit is contained in:
parent
cf6668b86b
commit
9db8e12c16
10
linux_mtd.c
10
linux_mtd.c
@ -314,6 +314,7 @@ static const struct opaque_master linux_mtd_opaque_master = {
|
|||||||
.read = linux_mtd_read,
|
.read = linux_mtd_read,
|
||||||
.write = linux_mtd_write,
|
.write = linux_mtd_write,
|
||||||
.erase = linux_mtd_erase,
|
.erase = linux_mtd_erase,
|
||||||
|
.shutdown = linux_mtd_shutdown,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Returns 0 if setup is successful, non-zero to indicate error */
|
/* Returns 0 if setup is successful, non-zero to indicate error */
|
||||||
@ -418,14 +419,7 @@ static int linux_mtd_init(void)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (register_shutdown(linux_mtd_shutdown, (void *)data)) {
|
return register_opaque_master(&linux_mtd_opaque_master, data);
|
||||||
free(data);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
register_opaque_master(&linux_mtd_opaque_master, data);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
linux_mtd_init_exit:
|
linux_mtd_init_exit:
|
||||||
free(param);
|
free(param);
|
||||||
|
@ -446,6 +446,7 @@ static const struct opaque_master opaque_master_nicintel_ee_82580 = {
|
|||||||
.read = nicintel_ee_read,
|
.read = nicintel_ee_read,
|
||||||
.write = nicintel_ee_write_82580,
|
.write = nicintel_ee_write_82580,
|
||||||
.erase = nicintel_ee_erase_82580,
|
.erase = nicintel_ee_erase_82580,
|
||||||
|
.shutdown = nicintel_ee_shutdown_82580,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct opaque_master opaque_master_nicintel_ee_i210 = {
|
static const struct opaque_master opaque_master_nicintel_ee_i210 = {
|
||||||
@ -453,6 +454,7 @@ static const struct opaque_master opaque_master_nicintel_ee_i210 = {
|
|||||||
.read = nicintel_ee_read,
|
.read = nicintel_ee_read,
|
||||||
.write = nicintel_ee_write_i210,
|
.write = nicintel_ee_write_i210,
|
||||||
.erase = nicintel_ee_erase_i210,
|
.erase = nicintel_ee_erase_i210,
|
||||||
|
.shutdown = nicintel_ee_shutdown_i210,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int nicintel_ee_init(void)
|
static int nicintel_ee_init(void)
|
||||||
@ -493,19 +495,13 @@ static int nicintel_ee_init(void)
|
|||||||
*eecp = eec;
|
*eecp = eec;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (register_shutdown(nicintel_ee_shutdown_82580, eecp))
|
return register_opaque_master(&opaque_master_nicintel_ee_82580, eecp);
|
||||||
return 1;
|
|
||||||
|
|
||||||
return register_opaque_master(&opaque_master_nicintel_ee_82580, NULL);
|
|
||||||
} else {
|
} else {
|
||||||
nicintel_eebar = rphysmap("Intel i210 NIC w/ emulated EEPROM",
|
nicintel_eebar = rphysmap("Intel i210 NIC w/ emulated EEPROM",
|
||||||
io_base_addr + 0x12000, MEMMAP_SIZE);
|
io_base_addr + 0x12000, MEMMAP_SIZE);
|
||||||
if (!nicintel_eebar)
|
if (!nicintel_eebar)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (register_shutdown(nicintel_ee_shutdown_i210, NULL))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return register_opaque_master(&opaque_master_nicintel_ee_i210, NULL);
|
return register_opaque_master(&opaque_master_nicintel_ee_i210, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user