mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 07:02:34 +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,
|
||||
.write = linux_mtd_write,
|
||||
.erase = linux_mtd_erase,
|
||||
.shutdown = linux_mtd_shutdown,
|
||||
};
|
||||
|
||||
/* Returns 0 if setup is successful, non-zero to indicate error */
|
||||
@ -418,14 +419,7 @@ static int linux_mtd_init(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (register_shutdown(linux_mtd_shutdown, (void *)data)) {
|
||||
free(data);
|
||||
return 1;
|
||||
}
|
||||
|
||||
register_opaque_master(&linux_mtd_opaque_master, data);
|
||||
|
||||
return 0;
|
||||
return register_opaque_master(&linux_mtd_opaque_master, data);
|
||||
|
||||
linux_mtd_init_exit:
|
||||
free(param);
|
||||
|
@ -446,6 +446,7 @@ static const struct opaque_master opaque_master_nicintel_ee_82580 = {
|
||||
.read = nicintel_ee_read,
|
||||
.write = nicintel_ee_write_82580,
|
||||
.erase = nicintel_ee_erase_82580,
|
||||
.shutdown = nicintel_ee_shutdown_82580,
|
||||
};
|
||||
|
||||
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,
|
||||
.write = nicintel_ee_write_i210,
|
||||
.erase = nicintel_ee_erase_i210,
|
||||
.shutdown = nicintel_ee_shutdown_i210,
|
||||
};
|
||||
|
||||
static int nicintel_ee_init(void)
|
||||
@ -493,19 +495,13 @@ static int nicintel_ee_init(void)
|
||||
*eecp = eec;
|
||||
}
|
||||
|
||||
if (register_shutdown(nicintel_ee_shutdown_82580, eecp))
|
||||
return 1;
|
||||
|
||||
return register_opaque_master(&opaque_master_nicintel_ee_82580, NULL);
|
||||
return register_opaque_master(&opaque_master_nicintel_ee_82580, eecp);
|
||||
} else {
|
||||
nicintel_eebar = rphysmap("Intel i210 NIC w/ emulated EEPROM",
|
||||
io_base_addr + 0x12000, MEMMAP_SIZE);
|
||||
if (!nicintel_eebar)
|
||||
return 1;
|
||||
|
||||
if (register_shutdown(nicintel_ee_shutdown_i210, NULL))
|
||||
return 1;
|
||||
|
||||
return register_opaque_master(&opaque_master_nicintel_ee_i210, NULL);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user