All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk
@ 2019-08-22  8:06 AKASHI Takahiro
  2019-08-22  9:11 ` Mark Kettenis
  0 siblings, 1 reply; 7+ messages in thread
From: AKASHI Takahiro @ 2019-08-22  8:06 UTC (permalink / raw)
  To: u-boot

Currently, a whole disk without any partitions is not associated
with EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. So even if it houses FAT
file system, there is a chance that we may not be able to access
it, particularly, when accesses are to be attempted after searching
that protocol against a device handle.

With this patch, EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed
to such a disk if part_get_info() shows there is not partition
table installed on it.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
---
 lib/efi_loader/efi_disk.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
index 7a6b06821a47..548fe667e6f8 100644
--- a/lib/efi_loader/efi_disk.c
+++ b/lib/efi_loader/efi_disk.c
@@ -239,6 +239,7 @@ static efi_status_t efi_disk_add_dev(
 				struct efi_disk_obj **disk)
 {
 	struct efi_disk_obj *diskobj;
+	disk_partition_t info;
 	efi_status_t ret;
 
 	/* Don't add empty devices */
@@ -270,7 +271,8 @@ static efi_status_t efi_disk_add_dev(
 			       diskobj->dp);
 	if (ret != EFI_SUCCESS)
 		return ret;
-	if (part >= 1) {
+	/* partitions or whole disk without partitions */
+	if (part >= 1 || part_get_info(desc, part, &info)) {
 		diskobj->volume = efi_simple_file_system(desc, part,
 							 diskobj->dp);
 		ret = efi_add_protocol(&diskobj->header,
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk
  2019-08-22  8:06 [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk AKASHI Takahiro
@ 2019-08-22  9:11 ` Mark Kettenis
  2019-08-22 10:52   ` Heinrich Schuchardt
  0 siblings, 1 reply; 7+ messages in thread
From: Mark Kettenis @ 2019-08-22  9:11 UTC (permalink / raw)
  To: u-boot

> From: AKASHI Takahiro <takahiro.akashi@linaro.org>
> Date: Thu, 22 Aug 2019 17:06:25 +0900
> 
> Currently, a whole disk without any partitions is not associated
> with EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. So even if it houses FAT
> file system, there is a chance that we may not be able to access
> it, particularly, when accesses are to be attempted after searching
> that protocol against a device handle.
> 
> With this patch, EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed
> to such a disk if part_get_info() shows there is not partition
> table installed on it.

Do other UEFI implementations support this?

> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> ---
>  lib/efi_loader/efi_disk.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
> index 7a6b06821a47..548fe667e6f8 100644
> --- a/lib/efi_loader/efi_disk.c
> +++ b/lib/efi_loader/efi_disk.c
> @@ -239,6 +239,7 @@ static efi_status_t efi_disk_add_dev(
>  				struct efi_disk_obj **disk)
>  {
>  	struct efi_disk_obj *diskobj;
> +	disk_partition_t info;
>  	efi_status_t ret;
>  
>  	/* Don't add empty devices */
> @@ -270,7 +271,8 @@ static efi_status_t efi_disk_add_dev(
>  			       diskobj->dp);
>  	if (ret != EFI_SUCCESS)
>  		return ret;
> -	if (part >= 1) {
> +	/* partitions or whole disk without partitions */
> +	if (part >= 1 || part_get_info(desc, part, &info)) {
>  		diskobj->volume = efi_simple_file_system(desc, part,
>  							 diskobj->dp);
>  		ret = efi_add_protocol(&diskobj->header,
> -- 
> 2.21.0
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk
  2019-08-22  9:11 ` Mark Kettenis
@ 2019-08-22 10:52   ` Heinrich Schuchardt
  2019-08-23  0:04     ` AKASHI Takahiro
  0 siblings, 1 reply; 7+ messages in thread
From: Heinrich Schuchardt @ 2019-08-22 10:52 UTC (permalink / raw)
  To: u-boot

On 8/22/19 11:11 AM, Mark Kettenis wrote:
>> From: AKASHI Takahiro <takahiro.akashi@linaro.org>
>> Date: Thu, 22 Aug 2019 17:06:25 +0900
>>
>> Currently, a whole disk without any partitions is not associated
>> with EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. So even if it houses FAT
>> file system, there is a chance that we may not be able to access
>> it, particularly, when accesses are to be attempted after searching
>> that protocol against a device handle.
>>
>> With this patch, EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed
>> to such a disk if part_get_info() shows there is not partition
>> table installed on it.
>
> Do other UEFI implementations support this?

What use cases exist that come without partition table?

You can create an MBR with partition table that is a valid start of a
file system.

So you should first check if a partition table exists. Only if none
exists you can test for a possible file system.

Best regards

Heinrich

>
>> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
>> ---
>>   lib/efi_loader/efi_disk.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
>> index 7a6b06821a47..548fe667e6f8 100644
>> --- a/lib/efi_loader/efi_disk.c
>> +++ b/lib/efi_loader/efi_disk.c
>> @@ -239,6 +239,7 @@ static efi_status_t efi_disk_add_dev(
>>   				struct efi_disk_obj **disk)
>>   {
>>   	struct efi_disk_obj *diskobj;
>> +	disk_partition_t info;
>>   	efi_status_t ret;
>>
>>   	/* Don't add empty devices */
>> @@ -270,7 +271,8 @@ static efi_status_t efi_disk_add_dev(
>>   			       diskobj->dp);
>>   	if (ret != EFI_SUCCESS)
>>   		return ret;
>> -	if (part >= 1) {
>> +	/* partitions or whole disk without partitions */
>> +	if (part >= 1 || part_get_info(desc, part, &info)) {
>>   		diskobj->volume = efi_simple_file_system(desc, part,
>>   							 diskobj->dp);
>>   		ret = efi_add_protocol(&diskobj->header,
>> --
>> 2.21.0
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> https://lists.denx.de/listinfo/u-boot
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk
  2019-08-22 10:52   ` Heinrich Schuchardt
@ 2019-08-23  0:04     ` AKASHI Takahiro
  2019-09-11  6:16       ` AKASHI Takahiro
  0 siblings, 1 reply; 7+ messages in thread
From: AKASHI Takahiro @ 2019-08-23  0:04 UTC (permalink / raw)
  To: u-boot

On Thu, Aug 22, 2019 at 12:52:41PM +0200, Heinrich Schuchardt wrote:
> On 8/22/19 11:11 AM, Mark Kettenis wrote:
> >>From: AKASHI Takahiro <takahiro.akashi@linaro.org>
> >>Date: Thu, 22 Aug 2019 17:06:25 +0900
> >>
> >>Currently, a whole disk without any partitions is not associated
> >>with EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. So even if it houses FAT
> >>file system, there is a chance that we may not be able to access
> >>it, particularly, when accesses are to be attempted after searching
> >>that protocol against a device handle.
> >>
> >>With this patch, EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed
> >>to such a disk if part_get_info() shows there is not partition
> >>table installed on it.
> >
> >Do other UEFI implementations support this?
> 
> What use cases exist that come without partition table?

I didn't find any *explicit* description in UEFI specification
that mandates that any block device should have a partition table.
It may be mandatory for boot(able) disks, but for others?

> You can create an MBR with partition table that is a valid start of a
> file system.

Obviously we can do that, but if this is not a mandatory requirement,
we'd better support no-partitioned cases.

> So you should first check if a partition table exists. Only if none
> exists you can test for a possible file system.

I don't get your point. Are you saying that we should support a file system
for a disk only if it has a file system?
This is not true even for existing partitions as FILE_SYSTEM PROTOCOL
is always installed to every partition whether or not it really
houses a file system under the current implementation.

Thanks,
-Takahiro Akashi


> Best regards
> 
> Heinrich
> 
> >
> >>Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> >>---
> >>  lib/efi_loader/efi_disk.c | 4 +++-
> >>  1 file changed, 3 insertions(+), 1 deletion(-)
> >>
> >>diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
> >>index 7a6b06821a47..548fe667e6f8 100644
> >>--- a/lib/efi_loader/efi_disk.c
> >>+++ b/lib/efi_loader/efi_disk.c
> >>@@ -239,6 +239,7 @@ static efi_status_t efi_disk_add_dev(
> >>  				struct efi_disk_obj **disk)
> >>  {
> >>  	struct efi_disk_obj *diskobj;
> >>+	disk_partition_t info;
> >>  	efi_status_t ret;
> >>
> >>  	/* Don't add empty devices */
> >>@@ -270,7 +271,8 @@ static efi_status_t efi_disk_add_dev(
> >>  			       diskobj->dp);
> >>  	if (ret != EFI_SUCCESS)
> >>  		return ret;
> >>-	if (part >= 1) {
> >>+	/* partitions or whole disk without partitions */
> >>+	if (part >= 1 || part_get_info(desc, part, &info)) {
> >>  		diskobj->volume = efi_simple_file_system(desc, part,
> >>  							 diskobj->dp);
> >>  		ret = efi_add_protocol(&diskobj->header,
> >>--
> >>2.21.0
> >>
> >>_______________________________________________
> >>U-Boot mailing list
> >>U-Boot at lists.denx.de
> >>https://lists.denx.de/listinfo/u-boot
> >
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk
  2019-08-23  0:04     ` AKASHI Takahiro
@ 2019-09-11  6:16       ` AKASHI Takahiro
  2019-09-11 17:31         ` Heinrich Schuchardt
  0 siblings, 1 reply; 7+ messages in thread
From: AKASHI Takahiro @ 2019-09-11  6:16 UTC (permalink / raw)
  To: u-boot

Heinrich,

On Fri, Aug 23, 2019 at 09:04:21AM +0900, AKASHI Takahiro wrote:
> On Thu, Aug 22, 2019 at 12:52:41PM +0200, Heinrich Schuchardt wrote:
> > On 8/22/19 11:11 AM, Mark Kettenis wrote:
> > >>From: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > >>Date: Thu, 22 Aug 2019 17:06:25 +0900
> > >>
> > >>Currently, a whole disk without any partitions is not associated
> > >>with EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. So even if it houses FAT
> > >>file system, there is a chance that we may not be able to access
> > >>it, particularly, when accesses are to be attempted after searching
> > >>that protocol against a device handle.
> > >>
> > >>With this patch, EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed
> > >>to such a disk if part_get_info() shows there is not partition
> > >>table installed on it.
> > >
> > >Do other UEFI implementations support this?
> > 
> > What use cases exist that come without partition table?
> 
> I didn't find any *explicit* description in UEFI specification
> that mandates that any block device should have a partition table.
> It may be mandatory for boot(able) disks, but for others?
> 
> > You can create an MBR with partition table that is a valid start of a
> > file system.
> 
> Obviously we can do that, but if this is not a mandatory requirement,
> we'd better support no-partitioned cases.

Any further comments?

-Takahiro Akashi

> 
> > So you should first check if a partition table exists. Only if none
> > exists you can test for a possible file system.
> 
> I don't get your point. Are you saying that we should support a file system
> for a disk only if it has a file system?
> This is not true even for existing partitions as FILE_SYSTEM PROTOCOL
> is always installed to every partition whether or not it really
> houses a file system under the current implementation.
> 
> Thanks,
> -Takahiro Akashi
> 
> 
> > Best regards
> > 
> > Heinrich
> > 
> > >
> > >>Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > >>---
> > >>  lib/efi_loader/efi_disk.c | 4 +++-
> > >>  1 file changed, 3 insertions(+), 1 deletion(-)
> > >>
> > >>diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
> > >>index 7a6b06821a47..548fe667e6f8 100644
> > >>--- a/lib/efi_loader/efi_disk.c
> > >>+++ b/lib/efi_loader/efi_disk.c
> > >>@@ -239,6 +239,7 @@ static efi_status_t efi_disk_add_dev(
> > >>  				struct efi_disk_obj **disk)
> > >>  {
> > >>  	struct efi_disk_obj *diskobj;
> > >>+	disk_partition_t info;
> > >>  	efi_status_t ret;
> > >>
> > >>  	/* Don't add empty devices */
> > >>@@ -270,7 +271,8 @@ static efi_status_t efi_disk_add_dev(
> > >>  			       diskobj->dp);
> > >>  	if (ret != EFI_SUCCESS)
> > >>  		return ret;
> > >>-	if (part >= 1) {
> > >>+	/* partitions or whole disk without partitions */
> > >>+	if (part >= 1 || part_get_info(desc, part, &info)) {
> > >>  		diskobj->volume = efi_simple_file_system(desc, part,
> > >>  							 diskobj->dp);
> > >>  		ret = efi_add_protocol(&diskobj->header,
> > >>--
> > >>2.21.0
> > >>
> > >>_______________________________________________
> > >>U-Boot mailing list
> > >>U-Boot at lists.denx.de
> > >>https://lists.denx.de/listinfo/u-boot
> > >
> > 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk
  2019-09-11  6:16       ` AKASHI Takahiro
@ 2019-09-11 17:31         ` Heinrich Schuchardt
  2019-09-12  0:22           ` AKASHI Takahiro
  0 siblings, 1 reply; 7+ messages in thread
From: Heinrich Schuchardt @ 2019-09-11 17:31 UTC (permalink / raw)
  To: u-boot

On 9/11/19 8:16 AM, AKASHI Takahiro wrote:
> Heinrich,
>
> On Fri, Aug 23, 2019 at 09:04:21AM +0900, AKASHI Takahiro wrote:
>> On Thu, Aug 22, 2019 at 12:52:41PM +0200, Heinrich Schuchardt wrote:
>>> On 8/22/19 11:11 AM, Mark Kettenis wrote:
>>>>> From: AKASHI Takahiro <takahiro.akashi@linaro.org>
>>>>> Date: Thu, 22 Aug 2019 17:06:25 +0900
>>>>>
>>>>> Currently, a whole disk without any partitions is not associated
>>>>> with EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. So even if it houses FAT
>>>>> file system, there is a chance that we may not be able to access
>>>>> it, particularly, when accesses are to be attempted after searching
>>>>> that protocol against a device handle.
>>>>>
>>>>> With this patch, EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed
>>>>> to such a disk if part_get_info() shows there is not partition
>>>>> table installed on it.
>>>>
>>>> Do other UEFI implementations support this?
>>>
>>> What use cases exist that come without partition table?
>>
>> I didn't find any *explicit* description in UEFI specification
>> that mandates that any block device should have a partition table.
>> It may be mandatory for boot(able) disks, but for others?
>>
>>> You can create an MBR with partition table that is a valid start of a
>>> file system.
>>
>> Obviously we can do that, but if this is not a mandatory requirement,
>> we'd better support no-partitioned cases.

I did not mean this as a requirement but as a source of errors.

My idea is that could have an MBR which by chance looks like the start
of a file system. When you now expose this non-existent file system the
UEFI client may create havoc.

>
> Any further comments?
>
> -Takahiro Akashi
>
>>
>>> So you should first check if a partition table exists. Only if none
>>> exists you can test for a possible file system.
>>
>> I don't get your point. Are you saying that we should support a file system
>> for a disk only if it has a file system?
>> This is not true even for existing partitions as FILE_SYSTEM PROTOCOL
>> is always installed to every partition whether or not it really
>> houses a file system under the current implementation.

That sounds like a bug. If a partition isn't formatted we would not even
know whether to call the FAT or the EXT4 driver.

Regards

Heinrich

>>
>> Thanks,
>> -Takahiro Akashi
>>
>>
>>> Best regards
>>>
>>> Heinrich
>>>
>>>>
>>>>> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
>>>>> ---
>>>>>   lib/efi_loader/efi_disk.c | 4 +++-
>>>>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
>>>>> index 7a6b06821a47..548fe667e6f8 100644
>>>>> --- a/lib/efi_loader/efi_disk.c
>>>>> +++ b/lib/efi_loader/efi_disk.c
>>>>> @@ -239,6 +239,7 @@ static efi_status_t efi_disk_add_dev(
>>>>>   				struct efi_disk_obj **disk)
>>>>>   {
>>>>>   	struct efi_disk_obj *diskobj;
>>>>> +	disk_partition_t info;
>>>>>   	efi_status_t ret;
>>>>>
>>>>>   	/* Don't add empty devices */
>>>>> @@ -270,7 +271,8 @@ static efi_status_t efi_disk_add_dev(
>>>>>   			       diskobj->dp);
>>>>>   	if (ret != EFI_SUCCESS)
>>>>>   		return ret;
>>>>> -	if (part >= 1) {
>>>>> +	/* partitions or whole disk without partitions */
>>>>> +	if (part >= 1 || part_get_info(desc, part, &info)) {
>>>>>   		diskobj->volume = efi_simple_file_system(desc, part,
>>>>>   							 diskobj->dp);
>>>>>   		ret = efi_add_protocol(&diskobj->header,
>>>>> --
>>>>> 2.21.0
>>>>>
>>>>> _______________________________________________
>>>>> U-Boot mailing list
>>>>> U-Boot at lists.denx.de
>>>>> https://lists.denx.de/listinfo/u-boot
>>>>
>>>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk
  2019-09-11 17:31         ` Heinrich Schuchardt
@ 2019-09-12  0:22           ` AKASHI Takahiro
  0 siblings, 0 replies; 7+ messages in thread
From: AKASHI Takahiro @ 2019-09-12  0:22 UTC (permalink / raw)
  To: u-boot

On Wed, Sep 11, 2019 at 07:31:31PM +0200, Heinrich Schuchardt wrote:
> On 9/11/19 8:16 AM, AKASHI Takahiro wrote:
> >Heinrich,
> >
> >On Fri, Aug 23, 2019 at 09:04:21AM +0900, AKASHI Takahiro wrote:
> >>On Thu, Aug 22, 2019 at 12:52:41PM +0200, Heinrich Schuchardt wrote:
> >>>On 8/22/19 11:11 AM, Mark Kettenis wrote:
> >>>>>From: AKASHI Takahiro <takahiro.akashi@linaro.org>
> >>>>>Date: Thu, 22 Aug 2019 17:06:25 +0900
> >>>>>
> >>>>>Currently, a whole disk without any partitions is not associated
> >>>>>with EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. So even if it houses FAT
> >>>>>file system, there is a chance that we may not be able to access
> >>>>>it, particularly, when accesses are to be attempted after searching
> >>>>>that protocol against a device handle.
> >>>>>
> >>>>>With this patch, EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed
> >>>>>to such a disk if part_get_info() shows there is not partition
> >>>>>table installed on it.
> >>>>
> >>>>Do other UEFI implementations support this?
> >>>
> >>>What use cases exist that come without partition table?
> >>
> >>I didn't find any *explicit* description in UEFI specification
> >>that mandates that any block device should have a partition table.
> >>It may be mandatory for boot(able) disks, but for others?
> >>
> >>>You can create an MBR with partition table that is a valid start of a
> >>>file system.
> >>
> >>Obviously we can do that, but if this is not a mandatory requirement,
> >>we'd better support no-partitioned cases.
> 
> I did not mean this as a requirement but as a source of errors.
> 
> My idea is that could have an MBR which by chance looks like the start
> of a file system. When you now expose this non-existent file system the
> UEFI client may create havoc.

See below.

> >
> >Any further comments?
> >
> >-Takahiro Akashi
> >
> >>
> >>>So you should first check if a partition table exists. Only if none
> >>>exists you can test for a possible file system.
> >>
> >>I don't get your point. Are you saying that we should support a file system
> >>for a disk only if it has a file system?
> >>This is not true even for existing partitions as FILE_SYSTEM PROTOCOL
> >>is always installed to every partition whether or not it really
> >>houses a file system under the current implementation.
> 
> That sounds like a bug. If a partition isn't formatted we would not even
> know whether to call the FAT or the EXT4 driver.

Yes, the issue does exist in the current implementation.
So a good approach is
1. Check if a partition table is installed or not
2. If yes,
   2-1 If a partition has a file system, install FILE_SYSTEM_PROTOCOL
       to *that* partition.
   2-2 not install FILE_SYSTEM_PROTOCOL to a whole disk
3. If no, and only if a file system exists, install FILE_SYSTEM_PROTOCOL
   to a whole disk

(2.1) and additional check at (3) should be added.

-Takahiro Akashi


> Regards
> 
> Heinrich
> 
> >>
> >>Thanks,
> >>-Takahiro Akashi
> >>
> >>
> >>>Best regards
> >>>
> >>>Heinrich
> >>>
> >>>>
> >>>>>Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> >>>>>---
> >>>>>  lib/efi_loader/efi_disk.c | 4 +++-
> >>>>>  1 file changed, 3 insertions(+), 1 deletion(-)
> >>>>>
> >>>>>diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
> >>>>>index 7a6b06821a47..548fe667e6f8 100644
> >>>>>--- a/lib/efi_loader/efi_disk.c
> >>>>>+++ b/lib/efi_loader/efi_disk.c
> >>>>>@@ -239,6 +239,7 @@ static efi_status_t efi_disk_add_dev(
> >>>>>  				struct efi_disk_obj **disk)
> >>>>>  {
> >>>>>  	struct efi_disk_obj *diskobj;
> >>>>>+	disk_partition_t info;
> >>>>>  	efi_status_t ret;
> >>>>>
> >>>>>  	/* Don't add empty devices */
> >>>>>@@ -270,7 +271,8 @@ static efi_status_t efi_disk_add_dev(
> >>>>>  			       diskobj->dp);
> >>>>>  	if (ret != EFI_SUCCESS)
> >>>>>  		return ret;
> >>>>>-	if (part >= 1) {
> >>>>>+	/* partitions or whole disk without partitions */
> >>>>>+	if (part >= 1 || part_get_info(desc, part, &info)) {
> >>>>>  		diskobj->volume = efi_simple_file_system(desc, part,
> >>>>>  							 diskobj->dp);
> >>>>>  		ret = efi_add_protocol(&diskobj->header,
> >>>>>--
> >>>>>2.21.0
> >>>>>
> >>>>>_______________________________________________
> >>>>>U-Boot mailing list
> >>>>>U-Boot at lists.denx.de
> >>>>>https://lists.denx.de/listinfo/u-boot
> >>>>
> >>>
> >
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-09-12  0:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-22  8:06 [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk AKASHI Takahiro
2019-08-22  9:11 ` Mark Kettenis
2019-08-22 10:52   ` Heinrich Schuchardt
2019-08-23  0:04     ` AKASHI Takahiro
2019-09-11  6:16       ` AKASHI Takahiro
2019-09-11 17:31         ` Heinrich Schuchardt
2019-09-12  0:22           ` AKASHI Takahiro

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.