Hello,

When there is an EFI variable with a forward slash in its name, /sys/firmware/efi/efivars contains a directory entry with a forward slash, which of course causes all sorts of problems (e.g. EINVAL from stat(2)). Off the top of my head, I can think of two ways to handle this:

1. Simply skip such variables when making the sysfs entries
2. Come up with an escaping scheme, e.g. "a single backslash is actually a forward slash, two backslashes are actually a single backslash" or some such.

Thoughts?

Cheers,
Shea Levy

P.S. Here is the program I ran to get the problematic efi variable, which worked on qemu+OMVF and a macbook pro 9,2:

EFI_STATUS EFIAPI Main(
                IN EFI_HANDLE ImageHandle,
                IN EFI_SYSTEM_TABLE *SystemTable
                )
{
EFI_GUID var_guid = { 0x38bd6e09, 0x70b3, 0x48f0, {0x8e, 0xa2, 0x87, 0x25, 0x0c, 0xc3, 0x27, 0x71} };
        CHAR16 *var_name = L"a/directory";
        CHAR8 data = '\0';
        EFI_STATUS status;

        return SystemTable->RuntimeServices->SetVariable(
                        var_name,
                        &var_guid,
EFI_VARIABLE_BOOTSERVICE_ACCESS|EFI_VARIABLE_RUNTIME_ACCESS,
                        sizeof data,
                        &data
                        );
}
--
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

Reply via email to