Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=85cdffcde0b6b831a06422413300d0f5c0e608c3
Commit:     85cdffcde0b6b831a06422413300d0f5c0e608c3
Parent:     4f33a9d9a416313f0ecf6e6953d205385a431cd5
Author:     Hugh Dickins <[EMAIL PROTECTED]>
AuthorDate: Thu Oct 25 09:55:05 2007 +0200
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Thu Oct 25 09:55:05 2007 +0200

    fix sg_phys to use dma_addr_t
    
    x86_32 CONFIG_HIGHMEM64G with 5GB RAM hung when booting, after issuing
    some "request_module: runaway loop modprobe binfmt-0000" messages in
    trying to exec /sbin/init.
    
    The binprm buf doesn't see the right ".ELF" header because sg_phys()
    is providing the wrong physical addresses for high pages: a 32-bit
    unsigned long is too small in this case, we need to use dma_addr_t.
    
    Signed-off-by: Hugh Dickins <[EMAIL PROTECTED]>
    Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 include/linux/scatterlist.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
index 809b2ac..4571231 100644
--- a/include/linux/scatterlist.h
+++ b/include/linux/scatterlist.h
@@ -1,6 +1,7 @@
 #ifndef _LINUX_SCATTERLIST_H
 #define _LINUX_SCATTERLIST_H
 
+#include <asm/types.h>
 #include <asm/scatterlist.h>
 #include <linux/mm.h>
 #include <linux/string.h>
@@ -255,7 +256,7 @@ static inline void sg_init_table(struct scatterlist *sgl, 
unsigned int nents)
  *   on the sg page.
  *
  **/
-static inline unsigned long sg_phys(struct scatterlist *sg)
+static inline dma_addr_t sg_phys(struct scatterlist *sg)
 {
        return page_to_phys(sg_page(sg)) + sg->offset;
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to