Is anyone running my 4311 rev 02 patches? If so, I need some help.
It appears that I have found either a hardware error with my copy of that card,
or there is an error
in the ucode13 firmware. Between 2.6.24-rc2 and -rc3, code that resulted in the
Descriptor Address
Rings having low addresses was removed. At that point, my card failed with a
DMA error. When the
ring buffer is forced to a low address by requesting it with the GFP_DMA flag,
then the card works.
Note that the data buffers for DMA are still at high addresses - only the ring
buffer is low.
If you are using my patch, the card is working, and 'uname -r' results in
2.6.24-rc3, please let me
know. If you kernel version is 2.6.24-rc2 or earlier, please apply the attached
patch and report
your findings.
Thanks,
Larry
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index da69d83..12376ae 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -749,23 +749,6 @@ int move_freepages_block(struct zone *zone, struct page
*page, int migratetype)
return move_freepages(zone, start_page, end_page, migratetype);
}
-/* Return the page with the lowest PFN in the list */
-static struct page *min_page(struct list_head *list)
-{
- unsigned long min_pfn = -1UL;
- struct page *min_page = NULL, *page;;
-
- list_for_each_entry(page, list, lru) {
- unsigned long pfn = page_to_pfn(page);
- if (pfn < min_pfn) {
- min_pfn = pfn;
- min_page = page;
- }
- }
-
- return min_page;
-}
-
/* Remove an element from the buddy allocator from the fallback list */
static struct page *__rmqueue_fallback(struct zone *zone, int order,
int start_migratetype)
@@ -789,11 +772,8 @@ static struct page *__rmqueue_fallback(struct zone *zone,
int order,
if (list_empty(&area->free_list[migratetype]))
continue;
- /* Bias kernel allocations towards low pfns */
page = list_entry(area->free_list[migratetype].next,
struct page, lru);
- if (unlikely(start_migratetype != MIGRATE_MOVABLE))
- page = min_page(&area->free_list[migratetype]);
area->nr_free--;
/*
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev