summaryrefslogtreecommitdiff
path: root/include/api_public.h
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2021-03-19 15:23:10 -0400
committerTom Rini <trini@konsulko.com>2021-03-19 15:23:10 -0400
commit65f2e55b578779dcddc94f625762e08b11e4b018 (patch)
tree46324d6775b7ef08eb43f92cbc43b937939fc001 /include/api_public.h
parente3310c21a43c1e3c004c6b53ee9179420a1be375 (diff)
parent4c498796891a26a7283130f367a346096a6ccce7 (diff)
Merge branch '2021-03-19-assorted-fixes'
- NVMe cache fixes, API bugfix with !CONFIG_SYS_64BIT_LBA, ahci mediatek fix when debugging, ti-sysc uclass fix, sl28 MMC boot fix
Diffstat (limited to 'include/api_public.h')
-rw-r--r--include/api_public.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/include/api_public.h b/include/api_public.h
index def103ce22f..5a4465ea893 100644
--- a/include/api_public.h
+++ b/include/api_public.h
@@ -70,12 +70,25 @@ struct sys_info {
int mr_no; /* number of memory regions */
};
-#undef CONFIG_SYS_64BIT_LBA
-#ifdef CONFIG_SYS_64BIT_LBA
-typedef u_int64_t lbasize_t;
-#else
+/*
+ * FIXME: Previously this code was:
+ *
+ * #undef CONFIG_SYS_64BIT_LBA
+ * #ifdef CONFIG_SYS_64BIT_LBA
+ * typedef u_int64_t lbasize_t;
+ * #else
+ * typedef unsigned long lbasize_t;
+ * #endif
+ *
+ * But we cannot just undefine CONFIG_SYS_64BIT_LBA, because then in
+ * api/api_storage.c the type signature of lbaint_t will be different if
+ * CONFIG_SYS_64BIT_LBA is enabled for the board, which can result in various
+ * bugs.
+ * So simply define lbasize_t as an unsigned long, since this was what was done
+ * anyway for at least 13 years, but don't undefine CONFIG_SYS_64BIT_LBA.
+ */
typedef unsigned long lbasize_t;
-#endif
+
typedef unsigned long lbastart_t;
#define DEV_TYP_NONE 0x0000