Brad Bishop | d89cb5f | 2019-04-10 09:02:41 -0400 | [diff] [blame^] | 1 | From 2645e0aa9c17c2c966a0533e52ad00510311483e Mon Sep 17 00:00:00 2001 |
| 2 | From: Adam Jackson <ajax@redhat.com> |
| 3 | Date: Wed, 29 Aug 2018 11:04:23 -0400 |
| 4 | Subject: [PATCH] Refuse to run on UEFI machines |
| 5 | |
| 6 | No possible good can come of this. |
| 7 | |
| 8 | v2: Check for .../efi-framebuffer.0 ("is there an EFI framebuffer") |
| 9 | instead of /sys/firmware/efi ("is this an EFI machine"). Suggested by |
| 10 | Peter Jones. |
| 11 | |
| 12 | Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/driver/xf86-video-vesa] |
| 13 | |
| 14 | Reviewed-by: Peter Jones <pjones@redhat.com> |
| 15 | Signed-off-by: Adam Jackson <ajax@redhat.com> |
| 16 | Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> |
| 17 | --- |
| 18 | src/vesa.c | 11 +++++++++-- |
| 19 | 1 file changed, 9 insertions(+), 2 deletions(-) |
| 20 | |
| 21 | diff --git a/src/vesa.c b/src/vesa.c |
| 22 | index 9b65b9b..af750e2 100644 |
| 23 | --- a/src/vesa.c |
| 24 | +++ b/src/vesa.c |
| 25 | @@ -43,7 +43,7 @@ |
| 26 | #endif |
| 27 | |
| 28 | #include <string.h> |
| 29 | - |
| 30 | +#include <unistd.h> |
| 31 | #include "vesa.h" |
| 32 | |
| 33 | /* All drivers initialising the SW cursor need this */ |
| 34 | @@ -450,7 +450,14 @@ VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev, |
| 35 | intptr_t match_data) |
| 36 | { |
| 37 | ScrnInfoPtr pScrn; |
| 38 | - |
| 39 | + |
| 40 | +#ifdef __linux__ |
| 41 | + if (access("/sys/devices/platform/efi-framebuffer.0", F_OK) == 0) { |
| 42 | + ErrorF("vesa: Refusing to run on UEFI\n"); |
| 43 | + return FALSE; |
| 44 | + } |
| 45 | +#endif |
| 46 | + |
| 47 | pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL, |
| 48 | NULL, NULL, NULL, NULL, NULL); |
| 49 | if (pScrn != NULL) { |
| 50 | -- |
| 51 | 2.20.1 |
| 52 | |