]> git.proxmox.com Git - grub2.git/commitdiff
* grub-core/bus/pci.c (grub_memalign_dma32): Always allocate in 64-byte
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 16 May 2011 06:51:55 +0000 (08:51 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 16 May 2011 06:51:55 +0000 (08:51 +0200)
blocks.

ChangeLog
grub-core/bus/pci.c

index fc4d680131bc21bec7095dc00360b9bb3c821974..868391294abf6b99b2062738de84cc2a405cb9db 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-16  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/bus/pci.c (grub_memalign_dma32): Always allocate in 64-byte
+       blocks.
+
 2011-05-16  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/bus/usb/usbhub.c (attach_root_port): Wait 10ms
index 4212905f066db80507d665b4aa7452f8e6af52bd..51006a20eb02267c048bcd5787f50c634560a2fc 100644 (file)
@@ -20,6 +20,7 @@
 #include <grub/dl.h>
 #include <grub/pci.h>
 #include <grub/mm.h>
+#include <grub/misc.h>
 #include <grub/mm_private.h>
 #include <grub/cache.h>
 
@@ -30,7 +31,11 @@ GRUB_MOD_LICENSE ("GPLv3+");
 struct grub_pci_dma_chunk *
 grub_memalign_dma32 (grub_size_t align, grub_size_t size)
 {
-  void *ret = grub_memalign (align, size);
+  void *ret;
+  if (align < 64)
+    align = 64;
+  size = ALIGN_UP (size, align);
+  ret = grub_memalign (align, size);
   if (!ret)
     return 0;
   grub_arch_sync_dma_caches (ret, size);