You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pagetables,pmm: fix deadlock
1. paging gets exclusive pmm access during array refill.
2. pmm can call back into paging while holding the paging lock.
3. paging performs pmm refill if needed to ensure reserved frames.
Signed-off-by: Sandro Rüegge <rueegges@ethz.ch>
mm,vmm: improve get_free_pages() implementation
Use vmap_range() to handle multiple mapping areas automatically
and consistently.
Standardize rules for virtual address returned by get_free_pages().
Signed-off-by: Pawel Wieczorkiewicz <wipawel@grsecurity.net>
usermode: clobber all x64 registers.
This bug possibly surfaced after adding some additional code to the
syscall handler.
Signed-off-by: kwikner <kwikner@ethz.ch>
string: remove __used directive from ctype check functions
With the unneeded the __used directive, the resulting binary is
sprinkled with unnecessary copies of the functions code.
Signed-off-by: Pawel Wieczorkiewicz <wipawel@grsecurity.net>
pci: add device enumeration code
Add probe_pci, probe_pci_bus, probe_pci_dev and init_pci functions.
init_pci is called from kernel_start to setup the PCI subsystem.
In turn, init_pci calls probe_pci, which initializes the host bridge
and then recursively enumerates the rest of the PCI devices
on the system by calling probe_pci_bus/probe_pci_dev.
Each device's basic config space is stored in the pcidev_t structure,
along with a pointer to the device's parent bridge and a list_head_t
node. When a device is found, it is added to the global pci_list
structure for later reference.
Signed-off-by: Connor Davis <connojd@amazon.com>