sandbox: host bind must close file descriptor

Each invocation of the 'host bind' command with a file name argument opens
a file descriptor. The next invocation of the 'host bind' command destroys
the block device but the file descriptor remains open. The same holds true
for the 'unbind blk' command.

Close the file descriptor when unbinding the host block device.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Heinrich Schuchardt 2021-02-03 00:21:56 +01:00 committed by Simon Glass
parent 67637d4b5a
commit 297b8b3ebf

View File

@ -231,6 +231,18 @@ int host_get_dev_err(int devnum, struct blk_desc **blk_devp)
}
#ifdef CONFIG_BLK
int sandbox_host_unbind(struct udevice *dev)
{
struct host_block_dev *host_dev;
/* Data validity is checked in host_dev_bind() */
host_dev = dev_get_plat(dev);
os_close(host_dev->fd);
return 0;
}
static const struct blk_ops sandbox_host_blk_ops = {
.read = host_block_read,
.write = host_block_write,
@ -240,6 +252,7 @@ U_BOOT_DRIVER(sandbox_host_blk) = {
.name = "sandbox_host_blk",
.id = UCLASS_BLK,
.ops = &sandbox_host_blk_ops,
.unbind = sandbox_host_unbind,
.plat_auto = sizeof(struct host_block_dev),
};
#else