disk: efi: correct the overlap check on GPT header and PTE
authorPatrick Delaunay <patrick.delaunay@st.com>
Wed, 18 Oct 2017 13:11:05 +0000 (15:11 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 23 Oct 2017 21:27:48 +0000 (17:27 -0400)
commitae0e0228e664f31ac3c6093758ddc85b664e2d08
tree19ca06c7dfe4f0d8ecf69e15a33917b9a628bbaf
parent30ef7cbb819bc543ad2b03dcef90ee6124deee77
disk: efi: correct the overlap check on GPT header and PTE

the partition starting at 0x4400 is refused with overlap error:
  $> gpt write mmc 0 "name=test,start=0x4400,size=0"
  Writing GPT: Partition overlap
  error!

even if the 0x4400 is the first available offset for LBA35 with default
value:
- MBR=LBA1
- GPT header=LBA2
- PTE= 32 LBAs (128 entry), 3 to 34

And the command to have one partition for all the disk failed also :
  $> gpt write mmc 0 "name=test,size=0"

After the patch :

  $> gpt write mmc 0 "name=test,size=0"
  Writing GPT: success!
  $> part list mmc 0

  Partition Map for MMC device 0  --   Partition Type: EFI

  Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
  1 0x00000022 0x01ce9fde "test"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
type: data
guid: b4b84b8a-04e3-4000-0036-aff5c9c495b1

And 0x22 = 34 LBA => offset = 0x4400 is accepted as expected

Reviewed-by: Ɓukasz Majewski <lukma@denx.de>
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
disk/part_efi.c