svn commit: r348760 - head/stand/efi/boot1
Warner Losh
imp at FreeBSD.org
Thu Jun 6 21:04:39 UTC 2019
Author: imp
Date: Thu Jun 6 21:04:37 2019
New Revision: 348760
URL: https://svnweb.freebsd.org/changeset/base/348760
Log:
Use simple malloc/free instead of dropping down to the UEFI
BootServices AllocatePool/FreePool calls. They are simpler to use and
result in the same thing happening.
Reviewed by: tsoome@
Differential Revision: https://reviews.freebsd.org/D20540
Modified:
head/stand/efi/boot1/ufs_module.c
head/stand/efi/boot1/zfs_module.c
Modified: head/stand/efi/boot1/ufs_module.c
==============================================================================
--- head/stand/efi/boot1/ufs_module.c Thu Jun 6 20:54:09 2019 (r348759)
+++ head/stand/efi/boot1/ufs_module.c Thu Jun 6 21:04:37 2019 (r348760)
@@ -167,18 +167,18 @@ load(const char *filepath, dev_info_t *dev, void **buf
return (EFI_INVALID_PARAMETER);
}
- if ((status = BS->AllocatePool(EfiLoaderData, size, &buf)) !=
- EFI_SUCCESS) {
- printf("Failed to allocate read buffer %zu for '%s' (%lu)\n",
- size, filepath, EFI_ERROR_CODE(status));
- return (status);
+ buf = malloc(size);
+ if (buf == NULL) {
+ printf("Failed to allocate read buffer %zu for '%s'\n",
+ size, filepath);
+ return (EFI_OUT_OF_RESOURCES);
}
read = fsread(ino, buf, size);
if ((size_t)read != size) {
printf("Failed to read '%s' (%zd != %zu)\n", filepath, read,
size);
- (void)BS->FreePool(buf);
+ free(buf);
return (EFI_INVALID_PARAMETER);
}
Modified: head/stand/efi/boot1/zfs_module.c
==============================================================================
--- head/stand/efi/boot1/zfs_module.c Thu Jun 6 20:54:09 2019 (r348759)
+++ head/stand/efi/boot1/zfs_module.c Thu Jun 6 21:04:37 2019 (r348760)
@@ -115,19 +115,17 @@ probe(dev_info_t *dev)
{
spa_t *spa;
dev_info_t *tdev;
- EFI_STATUS status;
/* ZFS consumes the dev on success so we need a copy. */
- if ((status = BS->AllocatePool(EfiLoaderData, sizeof(*dev),
- (void**)&tdev)) != EFI_SUCCESS) {
- DPRINTF("Failed to allocate tdev (%lu)\n",
- EFI_ERROR_CODE(status));
- return (status);
+ tdev = malloc(sizeof(*dev));
+ if (tdev == NULL) {
+ DPRINTF("Failed to allocate tdev\n");
+ return (EFI_OUT_OF_RESOURCES);
}
memcpy(tdev, dev, sizeof(*dev));
if (vdev_probe(vdev_read, tdev, &spa) != 0) {
- (void)BS->FreePool(tdev);
+ free(tdev);
return (EFI_UNSUPPORTED);
}
@@ -185,17 +183,17 @@ load(const char *filepath, dev_info_t *devinfo, void *
return (EFI_INVALID_PARAMETER);
}
- if ((status = BS->AllocatePool(EfiLoaderData, (UINTN)st.st_size, &buf))
- != EFI_SUCCESS) {
- printf("Failed to allocate load buffer %jd for pool '%s' for '%s' "
- "(%lu)\n", (intmax_t)st.st_size, spa->spa_name, filepath, EFI_ERROR_CODE(status));
+ buf = malloc(st.st_size);
+ if (buf == NULL) {
+ printf("Failed to allocate load buffer %jd for pool '%s' for '%s' ",
+ (intmax_t)st.st_size, spa->spa_name, filepath);
return (EFI_INVALID_PARAMETER);
}
if ((err = dnode_read(spa, &dn, 0, buf, st.st_size)) != 0) {
printf("Failed to read node from %s (%d)\n", spa->spa_name,
err);
- (void)BS->FreePool(buf);
+ free(buf);
return (EFI_INVALID_PARAMETER);
}
More information about the svn-src-all
mailing list