On Wed, 05 Apr, at 10:23:15AM, Ard Biesheuvel wrote:
> To allow platform specific code to hook into the capsule loading
> routines, indirect calls to efi_capsule_setup_info() via a weak alias
> of __efi_capsule_setup_info(), allowing platforms to redefine the former
> but still use the latter.
>
> Signed-off-by: Ard Biesheuvel <[email protected]>
> ---
> drivers/firmware/efi/capsule-loader.c | 52 +++++++++-----------
> include/linux/efi.h | 12 +++++
> 2 files changed, 35 insertions(+), 29 deletions(-)
[...]
> @@ -97,6 +71,26 @@ static int efi_capsule_setup_info(struct capsule_info
> *cap_info,
> }
>
> /**
> + * efi_capsule_setup_info - obtain the efi capsule header in the binary and
> + * setup capsule_info structure
> + * @cap_info: pointer to current instance of capsule_info structure
> + * @kbuff: a mapped first page buffer pointer
> + * @hdr_bytes: the total received number of bytes for efi header
> + **/
> +int __weak efi_capsule_setup_info(struct capsule_info *cap_info, void *kbuff,
> + size_t hdr_bytes)
> +{
> + /* Only process data block that is larger than efi header size */
> + if (hdr_bytes < sizeof(efi_capsule_header_t))
> + return 0;
> +
> + memcpy(&cap_info->header, kbuff, sizeof(cap_info->header));
> + cap_info->total_size = cap_info->header.imagesize;
> +
> + return __efi_capsule_setup_info(cap_info);
> +}
It would be good if you provided a little bit of blurb in the function
comment describing why someone might want to override this __weak
function.
Perhaps just something like,
"Platforms with non-standard capsule update mechanisms can override
this __weak function so they can perform any required capsule
image munging. See quark_quirk_function() for an example."
--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html