From c575a498b5daf47307a6c623ed8c296dd4eb3a93 Mon Sep 17 00:00:00 2001 From: hidnplayr Date: Sat, 25 Aug 2012 16:05:36 +0000 Subject: [PATCH] Fixed bug wich caused i8254x driver to be able to load multiple times on the same device. git-svn-id: svn://kolibrios.org@2934 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/branches/net/drivers/i8254x.asm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/branches/net/drivers/i8254x.asm b/kernel/branches/net/drivers/i8254x.asm index 9d4879aae1..b7cea609ed 100644 --- a/kernel/branches/net/drivers/i8254x.asm +++ b/kernel/branches/net/drivers/i8254x.asm @@ -351,11 +351,14 @@ proc service_proc stdcall, ioctl:dword jz .firstdevice ; mov eax, [IOCTL.input] ; get the pci bus and device numbers - mov ax , [eax+1] ; + mov ax, [eax+1] ; .nextdevice: mov ebx, [esi] - cmp ax , word [device.pci_bus] ; compare with pci and device num in device list (notice the usage of word instead of byte) + cmp al, byte [device.pci_bus] + jne .next + cmp ah, byte [device.pci_dev] je .find_devicenum ; Device is already loaded, let's find it's device number + .next: add esi, 4 loop .nextdevice