[patch] 2.4.3-ac2 alpha fixes

From: Ivan Kokshaysky (ink@jurassic.park.msu.ru)
Date: Wed Apr 04 2001 - 06:10:52 EST


- Yet another pte/pmd update; interface has been changed again
  between 2.4.3-pre8 and 2.4.3-final...
- drivers/pci/setup-bus.c was not in sync with Linus' tree
  for a long time (since -test12, I believe). Thus -ac patches
  discard the fix for alpha noritake boot.

Ivan.

--- 2.4.3-ac2/include/asm-alpha/pgalloc.h Wed Apr 4 13:37:42 2001
+++ linux/include/asm-alpha/pgalloc.h Wed Apr 4 13:41:39 2001
@@ -241,8 +241,8 @@ extern struct pgtable_cache_struct {
 #define pte_quicklist (quicklists.pte_cache)
 #define pgtable_cache_size (quicklists.pgtable_cache_sz)
 
-#define pmd_populate(pmd, pte) pmd_set(pmd, pte)
-#define pgd_populate(pgd, pmd) pgd_set(pgd, pmd)
+#define pmd_populate(mm, pmd, pte) pmd_set(pmd, pte)
+#define pgd_populate(mm, pgd, pmd) pgd_set(pgd, pmd)
 
 extern pgd_t *get_pgd_slow(void);
 
@@ -271,7 +271,7 @@ static inline void free_pgd_slow(pgd_t *
         free_page((unsigned long)pgd);
 }
 
-static inline pmd_t *pmd_alloc_one(void)
+static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
 {
         pmd_t *ret = (pmd_t *)__get_free_page(GFP_KERNEL);
         if (ret)
@@ -279,7 +279,7 @@ static inline pmd_t *pmd_alloc_one(void)
         return ret;
 }
 
-static inline pmd_t *pmd_alloc_one_fast(void)
+static inline pmd_t *pmd_alloc_one_fast(struct mm_struct *mm, unsigned long address)
 {
         unsigned long *ret;
 
@@ -303,7 +303,7 @@ static inline void pmd_free_slow(pmd_t *
         free_page((unsigned long)pmd);
 }
 
-static inline pte_t *pte_alloc_one(unsigned long address)
+static inline pte_t *pte_alloc_one(struct mm_struct *mm, unsigned long address)
 {
         pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL);
         if (pte)
@@ -311,7 +311,7 @@ static inline pte_t *pte_alloc_one(unsig
         return pte;
 }
 
-static inline pte_t *pte_alloc_one_fast(unsigned long address)
+static inline pte_t *pte_alloc_one_fast(struct mm_struct *mm, unsigned long address)
 {
         unsigned long *ret;
 
--- 2.4.3-ac2/drivers/pci/setup-bus.c Wed Apr 4 13:37:26 2001
+++ linux/drivers/pci/setup-bus.c Tue Dec 12 00:46:26 2000
@@ -45,24 +45,28 @@ pbus_assign_resources_sorted(struct pci_
         head_io.next = head_mem.next = NULL;
         for (ln=bus->devices.next; ln != &bus->devices; ln=ln->next) {
                 struct pci_dev *dev = pci_dev_b(ln);
+ u16 class = dev->class >> 8;
                 u16 cmd;
 
                 /* First, disable the device to avoid side
                    effects of possibly overlapping I/O and
                    memory ranges.
- Except the VGA - for obvious reason. :-) */
- if (dev->class >> 8 == PCI_CLASS_DISPLAY_VGA)
+ Leave VGA enabled - for obvious reason. :-)
+ Same with all sorts of bridges - they may
+ have VGA behind them. */
+ if (class == PCI_CLASS_DISPLAY_VGA
+ || class == PCI_CLASS_NOT_DEFINED_VGA)
                         found_vga = 1;
- else {
+ else if (class >> 8 != PCI_BASE_CLASS_BRIDGE) {
                         pci_read_config_word(dev, PCI_COMMAND, &cmd);
                         cmd &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY
                                                 | PCI_COMMAND_MASTER);
                         pci_write_config_word(dev, PCI_COMMAND, cmd);
                 }
-
+
                 /* Reserve some resources for CardBus.
                    Are these values reasonable? */
- if (dev->class >> 8 == PCI_CLASS_BRIDGE_CARDBUS) {
+ if (class == PCI_CLASS_BRIDGE_CARDBUS) {
                         io_reserved += 8*1024;
                         mem_reserved += 32*1024*1024;
                         continue;
--- 2.4.3-ac2/arch/alpha/mm/init.c Wed Apr 4 13:37:06 2001
+++ linux/arch/alpha/mm/init.c Wed Apr 4 13:46:42 2001
@@ -79,11 +79,11 @@ int do_check_pgt_cache(int low, int high
                                 freed++;
                         }
                         if(pmd_quicklist) {
- pmd_free_slow(pmd_alloc_one_fast());
+ pmd_free_slow(pmd_alloc_one_fast(NULL, 0));
                                 freed++;
                         }
                         if(pte_quicklist) {
- pte_free_slow(pte_alloc_one_fast(0));
+ pte_free_slow(pte_alloc_one_fast(NULL, 0));
                                 freed++;
                         }
                 } while(pgtable_cache_size > low);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Apr 07 2001 - 21:00:14 EST