All of lore.kernel.org
 help / color / mirror / Atom feed
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: u-boot@lists.denx.de, agraf@csgraf.de, Simon Glass <sjg@chromium.org>
Subject: Re: [PATCH] efi_driver: simplify efi_bl_bind()
Date: Mon, 13 Sep 2021 18:50:42 +0900	[thread overview]
Message-ID: <20210913095042.GA24512@laputa> (raw)
In-Reply-To: <d8ef19ab-c1fa-1a88-d981-f73ff15e6b08@gmx.de>

On Mon, Sep 13, 2021 at 11:19:22AM +0200, Heinrich Schuchardt wrote:
> On 9/13/21 8:01 AM, AKASHI Takahiro wrote:
> > blk_create_devicef() is what blk_create_device() +
> > device_set_name_alloced() really does.
> > The resultant name will be a bit changed.
> 
> without the patch after a device has been generated by the UEFI subsystem:
> 
> => dm tree
> 
> Class Index  Probed  Driver      Name
> 
> -----------------------------------------
> root      0  [ + ]   root_driver root_driver
> mmc       2  [ + ]   mmc_sandbox |-- mmc0
> 
> blk       2  [ + ]   mmc_blk     |   `-- mmc0.blk
> blk       3  [ + ]   efi_blk     `-- efiblk#0
> 
> with the patch:
> 
> => dm tree
> 
> Class Index  Probed  Driver      Name
> 
> ---------------------------------------------------------
> 
> root      0  [ + ]   root_driver root_driver
> mmc       2  [ + ]   mmc_sandbox |-- mmc0
> 
> blk       2  [ + ]   mmc_blk     |   `-- mmc0.blk
> blk       3  [ + ]   efi_blk     `-- root_driver.efiblk#0
> 
> Prepending 'root_driver.' to the name seems to not match the rest of the
> tree.

Is there anything wrong with the new "name"?

blk_create_devicef() creates a name with the parent's name + '.' +
a given name. In this case, you specifies the dm root object
as the device's parent. So "root_driver.efiblk#0" is a natural name
like mmc0.blk and others.

Another block device example:

 root          0  [ + ]   root_driver           root_driver
 pci           0  [ + ]   pci_generic_ecam      |-- pcie@10000000
 pci_generi    0  [   ]   pci_generic_drv       |   |-- pci_0:0.0
 virtio       32  [ + ]   virtio-pci.l          |   |-- virtio-pci.l#0
 ethernet      0  [ + ]   virtio-net            |   |   `-- virtio-net#32
 ahci          0  [ + ]   ahci_pci              |   `-- ahci_pci
 scsi          0  [ + ]   ahci_scsi             |       `-- ahci_scsi
 blk           0  [   ]   scsi_blk              |           |-- ahci_scsi.id0lun0
 blk           1  [   ]   scsi_blk              |           `-- ahci_scsi.id1lun0

If you really don't like "root_driver." prefix, you can create
the "efi" object as the generic parent for EFI devices, and then
you will see "efi.blk#0".
(This is also the way[1] that I took in my previous integration patch.

But in either way, it's just a name. Who cares.

-Takahiro Akashi

[1] https://lists.denx.de/pipermail/u-boot/2019-February/357929.html

> Best regards
> 
> Heinrich
> 
> > 
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > ---
> >   lib/efi_driver/efi_block_device.c | 10 +++-------
> >   1 file changed, 3 insertions(+), 7 deletions(-)
> > 
> > diff --git a/lib/efi_driver/efi_block_device.c b/lib/efi_driver/efi_block_device.c
> > index 0937e3595a43..b81c75868eb4 100644
> > --- a/lib/efi_driver/efi_block_device.c
> > +++ b/lib/efi_driver/efi_block_device.c
> > @@ -159,15 +159,11 @@ static int efi_bl_bind(efi_handle_t handle, void *interface)
> >   	sprintf(name, "efiblk#%d", devnum);
> > 
> >   	/* Create driver model udevice for the EFI block io device */
> > -	ret = blk_create_device(parent, "efi_blk", name, IF_TYPE_EFI, devnum,
> > -				io->media->block_size,
> > -				(lbaint_t)io->media->last_block, &bdev);
> > +	ret = blk_create_devicef(parent, "efi_blk", name, IF_TYPE_EFI, devnum,
> > +				 io->media->block_size,
> > +				 (lbaint_t)io->media->last_block, &bdev);
> >   	if (ret)
> >   		return ret;
> > -	if (!bdev)
> > -		return -ENOENT;
> > -	/* Set the DM_FLAG_NAME_ALLOCED flag to avoid a memory leak */
> > -	device_set_name_alloced(bdev);
> > 
> >   	plat = dev_get_plat(bdev);
> >   	plat->handle = handle;
> > 
> 

  reply	other threads:[~2021-09-13  9:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-13  6:01 [PATCH] efi_driver: simplify efi_bl_bind() AKASHI Takahiro
2021-09-13  9:19 ` Heinrich Schuchardt
2021-09-13  9:50   ` AKASHI Takahiro [this message]
2021-09-30  4:09 ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210913095042.GA24512@laputa \
    --to=takahiro.akashi@linaro.org \
    --cc=agraf@csgraf.de \
    --cc=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.