[PATCH] Fix test-2.4.0-pre8 compilation (was Re: test-2.4.0-pre8)

From: Jakub Jelinek (jakub@redhat.com)
Date: Tue Aug 08 2000 - 06:24:22 EST


On Tue, Aug 08, 2000 at 11:03:19PM +1200, Chris Wedgwood wrote:
> drivers/char/agp/agp.o: In function `agp_generic_create_gatt_table':
> drivers/char/agp/agp.o(.text+0x7e2): undefined reference to `get_mem_map'
> drivers/char/agp/agp.o(.text+0x84d): undefined reference to `get_mem_map'
> drivers/char/agp/agp.o: In function `agp_generic_free_gatt_table':
> drivers/char/agp/agp.o(.text+0x919): undefined reference to `get_mem_map'
>
> get_mem_map definition is missing
>
> net/network.o: In function `free_pg_vec':
> net/network.o(.text+0x2e6d2): undefined reference to `mem_map_unreserve'
> net/network.o: In function `packet_set_ring':
> net/network.o(.text+0x2e876): undefined reference to `mem_map_reserve'
>
> defined in wrapper.h -- make sure the required files include this.
>

Here is a patch:
1) too many ( in 82596.c
2) avoid doing void * arithmetic in umsdos
3) don't use mem_map_*reserve wrappers in af_packet.c (alternatively
wrapper.h can be included)
4) I haven't found get_mem_map definition but I think virt_to_page can be
used instead

--- linux/net/packet/af_packet.c.jj Tue Aug 8 11:47:01 2000
+++ linux/net/packet/af_packet.c Tue Aug 8 12:21:07 2000
@@ -1568,7 +1568,7 @@ static void free_pg_vec(unsigned long *p
 
                         pend = virt_to_page(pg_vec[i] + (PAGE_SIZE << order) - 1);
                         for (page = virt_to_page(pg_vec[i]); page <= pend; page++)
- mem_map_unreserve(page);
+ clear_bit(PG_reserved, &page->flags);
                         free_pages(pg_vec[i], order);
                 }
         }
@@ -1623,7 +1623,7 @@ static int packet_set_ring(struct sock *
 
                         pend = virt_to_page(pg_vec[i] + (PAGE_SIZE << order) - 1);
                         for (page = virt_to_page(pg_vec[i]); page <= pend; page++)
- mem_map_reserve(page);
+ set_bit(PG_reserved, &page->flags);
                 }
                 /* Page vector is allocated */
 
--- linux/drivers/char/ftape/lowlevel/ftape-buffer.c.jj Tue Aug 8 11:47:00 2000
+++ linux/drivers/char/ftape/lowlevel/ftape-buffer.c Tue Aug 8 12:29:10 2000
@@ -50,7 +50,7 @@ static inline void *dmaalloc(size_t size
         if (addr) {
                 struct page *page;
 
- for (page = virt_to_page(addr); page < get_mem_map(addr+size); page++)
+ for (page = virt_to_page(addr); page < virt_to_page(addr+size); page++)
                         mem_map_reserve(page);
         }
         return (void *)addr;
--- linux/drivers/char/agp/agpgart_be.c.jj Tue Aug 8 11:47:01 2000
+++ linux/drivers/char/agp/agpgart_be.c Tue Aug 8 12:29:10 2000
@@ -624,7 +624,7 @@ static int agp_generic_create_gatt_table
         }
         table_end = table + ((PAGE_SIZE * (1 << page_order)) - 1);
 
- for (page = virt_to_page(table); page < get_mem_map(table_end); page++)
+ for (page = virt_to_page(table); page < virt_to_page(table_end); page++)
                 set_bit(PG_reserved, &page->flags);
 
         agp_bridge.gatt_table_real = (unsigned long *) table;
@@ -634,7 +634,7 @@ static int agp_generic_create_gatt_table
         CACHE_FLUSH();
 
         if (agp_bridge.gatt_table == NULL) {
- for (page = virt_to_page(table); page < get_mem_map(table_end); page++)
+ for (page = virt_to_page(table); page < virt_to_page(table_end); page++)
                         clear_bit(PG_reserved, &page->flags);
 
                 free_pages((unsigned long) table, page_order);
@@ -691,7 +691,7 @@ static int agp_generic_free_gatt_table(v
         table = (char *) agp_bridge.gatt_table_real;
         table_end = table + ((PAGE_SIZE * (1 << page_order)) - 1);
 
- for (page = virt_to_page(table); page < get_mem_map(table_end); page++)
+ for (page = virt_to_page(table); page < virt_to_page(table_end); page++)
                 clear_bit(PG_reserved, &page->flags);
 
         free_pages((unsigned long) agp_bridge.gatt_table_real, page_order);
--- linux/drivers/sound/dmabuf.c.jj Tue Aug 8 11:47:01 2000
+++ linux/drivers/sound/dmabuf.c Tue Aug 8 12:29:10 2000
@@ -114,7 +114,7 @@ static int sound_alloc_dmap(struct dma_b
         dmap->raw_buf = start_addr;
         dmap->raw_buf_phys = virt_to_bus(start_addr);
 
- for (page = virt_to_page(start_addr); page <= get_mem_map(end_addr); page++)
+ for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
                 mem_map_reserve(page);
         return 0;
 }
@@ -134,7 +134,7 @@ static void sound_free_dmap(struct dma_b
         start_addr = (unsigned long) dmap->raw_buf;
         end_addr = start_addr + dmap->buffsize;
 
- for (page = virt_to_page(start_addr); page <= get_mem_map(end_addr); page++)
+ for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
                 mem_map_unreserve(page);
 
         free_pages((unsigned long) dmap->raw_buf, sz);
--- linux/drivers/sound/sscape.c.jj Tue Aug 8 11:47:01 2000
+++ linux/drivers/sound/sscape.c Tue Aug 8 12:29:10 2000
@@ -849,7 +849,7 @@ static int sscape_alloc_dma(sscape_info
         devc->raw_buf = start_addr;
         devc->raw_buf_phys = virt_to_bus(start_addr);
 
- for (page = virt_to_page(start_addr); page <= get_mem_map(end_addr); page++)
+ for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
                 mem_map_reserve(page);
         return 1;
 }
@@ -865,7 +865,7 @@ static void sscape_free_dma(sscape_info
         start_addr = (unsigned long) devc->raw_buf;
         end_addr = start_addr + devc->buffsize;
 
- for (page = virt_to_page(start_addr); page <= get_mem_map(end_addr); page++)
+ for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
                 mem_map_unreserve(page);
 
         free_pages((unsigned long) devc->raw_buf, sz);
--- linux/fs/umsdos/emd.c.jj Tue Aug 8 12:31:33 2000
+++ linux/fs/umsdos/emd.c Tue Aug 8 12:50:53 2000
@@ -142,7 +142,7 @@ int umsdos_emd_dir_readentry (struct den
         recsize = umsdos_evalrecsize(p->name_len);
         if (offs + recsize > PAGE_CACHE_SIZE) {
                 struct page *page2;
- int part = (page_address(page) + PAGE_CACHE_SIZE) - p->spare;
+ int part = ((char *)page_address(page) + PAGE_CACHE_SIZE) - p->spare;
                 page2 = read_cache_page(mapping, 1+(*pos>>PAGE_CACHE_SHIFT),
                                 (filler_t*)mapping->a_ops->readpage, NULL);
                 if (IS_ERR(page2)) {
@@ -261,7 +261,7 @@ int umsdos_writeentry (struct dentry *pa
                 p->rdev = cpu_to_le16(entry->rdev);
                 p->mode = cpu_to_le16(entry->mode);
                 memcpy(p->name,entry->name,
- (page_address(page) + PAGE_CACHE_SIZE) - p->spare);
+ ((char *)page_address(page) + PAGE_CACHE_SIZE) - p->spare);
                 memcpy(page_address(page2),
                                 entry->spare+PAGE_CACHE_SIZE-offs,
                                 offs+info->recsize-PAGE_CACHE_SIZE);
--- linux/drivers/net/82596.c.jj Tue Aug 8 12:31:33 2000
+++ linux/drivers/net/82596.c Tue Aug 8 12:58:29 2000
@@ -707,7 +707,7 @@ static int init_i596_mem(struct net_devi
         spin_lock_irqsave (&lp->lock, flags);
 
         if (wait_cmd(dev,lp,1000,"timed out waiting to issue RX_START")) {
- spin_unlock_irqrestore ((&lp->lock, flags);
+ spin_unlock_irqrestore (&lp->lock, flags);
                 goto failed;
         }
         DEB(DEB_INIT,printk("%s: Issuing RX_START\n", dev->name));

        Jakub

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Aug 15 2000 - 21:00:14 EST