Commit fe1bbde6 authored by Linus Torvalds's avatar Linus Torvalds

Manual merge of defconfig

parents f67c77ff 689d57bd
...@@ -1906,19 +1906,6 @@ static void sun4c_flush_tlb_page_sw(struct vm_area_struct *vma, unsigned long pa ...@@ -1906,19 +1906,6 @@ static void sun4c_flush_tlb_page_sw(struct vm_area_struct *vma, unsigned long pa
} }
} }
static void sun4c_set_pte(pte_t *ptep, pte_t pte)
{
*ptep = pte;
}
static void sun4c_pgd_set(pgd_t * pgdp, pmd_t * pmdp)
{
}
static void sun4c_pmd_set(pmd_t * pmdp, pte_t * ptep)
{
}
void sun4c_mapioaddr(unsigned long physaddr, unsigned long virt_addr, void sun4c_mapioaddr(unsigned long physaddr, unsigned long virt_addr,
int bus_type, int rdonly) int bus_type, int rdonly)
{ {
...@@ -2097,6 +2084,20 @@ static void sun4c_mmu_info(struct seq_file *m) ...@@ -2097,6 +2084,20 @@ static void sun4c_mmu_info(struct seq_file *m)
#define PGD_DIRTY 0x040 #define PGD_DIRTY 0x040
#define PGD_TABLE (PGD_PRESENT | PGD_RW | PGD_USER | PGD_ACCESSED | PGD_DIRTY) #define PGD_TABLE (PGD_PRESENT | PGD_RW | PGD_USER | PGD_ACCESSED | PGD_DIRTY)
static void sun4c_set_pte(pte_t *ptep, pte_t pte)
{
*ptep = pte;
}
static void sun4c_pgd_set(pgd_t * pgdp, pmd_t * pmdp)
{
}
static void sun4c_pmd_set(pmd_t * pmdp, pte_t * ptep)
{
*pmdp = (PGD_TABLE | (unsigned long) ptep);
}
static int sun4c_pte_present(pte_t pte) static int sun4c_pte_present(pte_t pte)
{ {
return ((pte_val(pte) & (_SUN4C_PAGE_PRESENT | _SUN4C_PAGE_PRIV)) != 0); return ((pte_val(pte) & (_SUN4C_PAGE_PRESENT | _SUN4C_PAGE_PRIV)) != 0);
...@@ -2512,6 +2513,7 @@ void __init ld_mmu_sun4c(void) ...@@ -2512,6 +2513,7 @@ void __init ld_mmu_sun4c(void)
#else #else
BTFIXUPSET_CALL(pmd_page, sun4c_pmd_page, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(pmd_page, sun4c_pmd_page, BTFIXUPCALL_NORM);
#endif #endif
BTFIXUPSET_CALL(pmd_set, sun4c_pmd_set, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(pte_present, sun4c_pte_present, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(pte_present, sun4c_pte_present, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(pte_clear, sun4c_pte_clear, BTFIXUPCALL_STG0O0); BTFIXUPSET_CALL(pte_clear, sun4c_pte_clear, BTFIXUPCALL_STG0O0);
...@@ -2572,5 +2574,4 @@ void __init ld_mmu_sun4c(void) ...@@ -2572,5 +2574,4 @@ void __init ld_mmu_sun4c(void)
/* These should _never_ get called with two level tables. */ /* These should _never_ get called with two level tables. */
BTFIXUPSET_CALL(pgd_set, sun4c_pgd_set, BTFIXUPCALL_NOP); BTFIXUPSET_CALL(pgd_set, sun4c_pgd_set, BTFIXUPCALL_NOP);
BTFIXUPSET_CALL(pgd_page, sun4c_pgd_page, BTFIXUPCALL_RETO0); BTFIXUPSET_CALL(pgd_page, sun4c_pgd_page, BTFIXUPCALL_RETO0);
BTFIXUPSET_CALL(pmd_set, sun4c_pmd_set, BTFIXUPCALL_NOP);
} }
...@@ -204,6 +204,11 @@ CONFIG_VLAN_8021Q=m ...@@ -204,6 +204,11 @@ CONFIG_VLAN_8021Q=m
CONFIG_IPX=m CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set # CONFIG_IPX_INTERN is not set
CONFIG_ATALK=m CONFIG_ATALK=m
#
# Appletalk devices
#
# CONFIG_DEV_APPLETALK is not set
CONFIG_DECNET=m CONFIG_DECNET=m
CONFIG_DECNET_SIOCGIFCONF=y CONFIG_DECNET_SIOCGIFCONF=y
# CONFIG_DECNET_ROUTER is not set # CONFIG_DECNET_ROUTER is not set
...@@ -276,7 +281,7 @@ CONFIG_BLK_DEV_IDECD=y ...@@ -276,7 +281,7 @@ CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_BLK_DEV_IDESCSI is not set
# #
# IDE chipset support # ATA host chipset support
# #
# CONFIG_BLK_DEV_CMD640 is not set # CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set # CONFIG_BLK_DEV_CMD640_ENHANCED is not set
...@@ -288,6 +293,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y ...@@ -288,6 +293,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_IDEDMA_ONLYDISK=y CONFIG_IDEDMA_ONLYDISK=y
CONFIG_BLK_DEV_IDEDMA=y CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_BLK_DEV_IDE_TCQ is not set
# CONFIG_BLK_DEV_IDE_TCQ_DEFAULT is not set
# CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set # CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
# CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_AEC62XX_TUNING is not set # CONFIG_AEC62XX_TUNING is not set
...@@ -311,6 +318,7 @@ CONFIG_BLK_DEV_NS87415=y ...@@ -311,6 +318,7 @@ CONFIG_BLK_DEV_NS87415=y
# CONFIG_BLK_DEV_SIS5513 is not set # CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set # CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_BLK_DEV_SL82C105 is not set
# CONFIG_IDE_CHIPSETS is not set # CONFIG_IDE_CHIPSETS is not set
# CONFIG_IDEDMA_IVB is not set # CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y CONFIG_IDEDMA_AUTO=y
...@@ -414,8 +422,11 @@ CONFIG_IEEE1394_OHCI1394=m ...@@ -414,8 +422,11 @@ CONFIG_IEEE1394_OHCI1394=m
# #
# CONFIG_IEEE1394_VIDEO1394 is not set # CONFIG_IEEE1394_VIDEO1394 is not set
CONFIG_IEEE1394_SBP2=m CONFIG_IEEE1394_SBP2=m
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m CONFIG_IEEE1394_RAWIO=m
CONFIG_IEEE1394_CMP=m
CONFIG_IEEE1394_AMDTP=m
# CONFIG_IEEE1394_VERBOSEDEBUG is not set # CONFIG_IEEE1394_VERBOSEDEBUG is not set
# #
...@@ -427,14 +438,6 @@ CONFIG_NETDEVICES=y ...@@ -427,14 +438,6 @@ CONFIG_NETDEVICES=y
# ARCnet devices # ARCnet devices
# #
# CONFIG_ARCNET is not set # CONFIG_ARCNET is not set
#
# Appletalk devices
#
# CONFIG_APPLETALK is not set
# CONFIG_LTPC is not set
# CONFIG_COPS is not set
# CONFIG_IPDDP is not set
CONFIG_DUMMY=m CONFIG_DUMMY=m
CONFIG_BONDING=m CONFIG_BONDING=m
CONFIG_EQUALIZER=m CONFIG_EQUALIZER=m
...@@ -683,6 +686,7 @@ CONFIG_NFSD_TCP=y ...@@ -683,6 +686,7 @@ CONFIG_NFSD_TCP=y
CONFIG_SUNRPC=y CONFIG_SUNRPC=y
CONFIG_LOCKD=y CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
# CONFIG_SMB_FS is not set # CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set # CONFIG_NCP_FS is not set
# CONFIG_NCPFS_PACKET_SIGNING is not set # CONFIG_NCPFS_PACKET_SIGNING is not set
...@@ -729,6 +733,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" ...@@ -729,6 +733,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ISO8859_1 is not set # CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_2 is not set
...@@ -770,8 +775,9 @@ CONFIG_USB=y ...@@ -770,8 +775,9 @@ CONFIG_USB=y
# Miscellaneous USB options # Miscellaneous USB options
# #
CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICEFS=y
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_LONG_TIMEOUT is not set # CONFIG_USB_LONG_TIMEOUT is not set
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# #
# USB Host Controller Drivers # USB Host Controller Drivers
...@@ -786,8 +792,9 @@ CONFIG_USB_OHCI=y ...@@ -786,8 +792,9 @@ CONFIG_USB_OHCI=y
# USB Device Class drivers # USB Device Class drivers
# #
# CONFIG_USB_AUDIO is not set # CONFIG_USB_AUDIO is not set
# CONFIG_USB_EMI26 is not set CONFIG_USB_BLUETOOTH_TTY=m
CONFIG_USB_BLUETOOTH=m CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
CONFIG_USB_STORAGE=m CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_DATAFAB is not set
...@@ -797,20 +804,18 @@ CONFIG_USB_STORAGE_DPCM=y ...@@ -797,20 +804,18 @@ CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_HP8200e=y CONFIG_USB_STORAGE_HP8200e=y
CONFIG_USB_STORAGE_SDDR09=y CONFIG_USB_STORAGE_SDDR09=y
# CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
# #
# USB Human Interface Devices (HID) # USB Human Interface Devices (HID)
# #
CONFIG_USB_HID=y CONFIG_USB_HID=y
CONFIG_USB_HIDINPUT=y
# CONFIG_USB_HIDDEV is not set # CONFIG_USB_HIDDEV is not set
CONFIG_USB_WACOM=m CONFIG_USB_WACOM=m
# #
# USB Imaging devices # USB Imaging devices
# #
CONFIG_USB_DC2XX=m
CONFIG_USB_MDC800=m CONFIG_USB_MDC800=m
CONFIG_USB_SCANNER=m CONFIG_USB_SCANNER=m
CONFIG_USB_MICROTEK=m CONFIG_USB_MICROTEK=m
...@@ -819,23 +824,24 @@ CONFIG_USB_HPUSBSCSI=m ...@@ -819,23 +824,24 @@ CONFIG_USB_HPUSBSCSI=m
# #
# USB Multimedia devices # USB Multimedia devices
# #
CONFIG_USB_DABUSB=m
CONFIG_USB_VICAM=m
CONFIG_USB_DSBR=m
CONFIG_USB_IBMCAM=m CONFIG_USB_IBMCAM=m
CONFIG_USB_KONICAWC=m
CONFIG_USB_OV511=m CONFIG_USB_OV511=m
CONFIG_USB_PWC=m CONFIG_USB_PWC=m
CONFIG_USB_SE401=m CONFIG_USB_SE401=m
CONFIG_USB_STV680=m CONFIG_USB_STV680=m
CONFIG_USB_VICAM=m
CONFIG_USB_DSBR=m
CONFIG_USB_DABUSB=m
CONFIG_USB_KONICAWC=m
# #
# USB Network adaptors # USB Network adaptors
# #
CONFIG_USB_PEGASUS=m
CONFIG_USB_KAWETH=m
CONFIG_USB_CATC=m CONFIG_USB_CATC=m
CONFIG_USB_CDCETHER=m CONFIG_USB_CDCETHER=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_USBNET=m CONFIG_USB_USBNET=m
# #
...@@ -866,10 +872,14 @@ CONFIG_USB_SERIAL_KEYSPAN=m ...@@ -866,10 +872,14 @@ CONFIG_USB_SERIAL_KEYSPAN=m
# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_PL2303=m
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SAFE_PADDED is not set
CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_CYBERJACK=m
CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_XIRCOM=m
CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_OMNINET=m
...@@ -877,20 +887,29 @@ CONFIG_USB_SERIAL_OMNINET=m ...@@ -877,20 +887,29 @@ CONFIG_USB_SERIAL_OMNINET=m
# #
# USB Miscellaneous drivers # USB Miscellaneous drivers
# #
CONFIG_USB_RIO500=m # CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
CONFIG_USB_AUERSWALD=m CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
# CONFIG_USB_BRLVGER is not set
# #
# Bluetooth support # Bluetooth support
# #
CONFIG_BLUEZ=m CONFIG_BLUEZ=m
CONFIG_BLUEZ_L2CAP=m CONFIG_BLUEZ_L2CAP=m
CONFIG_BLUEZ_SCO=m
# #
# Bluetooth device drivers # Bluetooth device drivers
# #
CONFIG_BLUEZ_HCIUSB=m CONFIG_BLUEZ_HCIUSB=m
CONFIG_BLUEZ_USB_FW_LOAD=y
CONFIG_BLUEZ_USB_ZERO_PACKET=y
CONFIG_BLUEZ_HCIUART=m CONFIG_BLUEZ_HCIUART=m
CONFIG_BLUEZ_HCIUART_H4=y
# CONFIG_BLUEZ_HCIDTL1 is not set
# CONFIG_BLUEZ_HCIBLUECARD is not set
CONFIG_BLUEZ_HCIVHCI=m CONFIG_BLUEZ_HCIVHCI=m
# #
......
...@@ -4553,12 +4553,20 @@ COMPATIBLE_IOCTL(RNDCLEARPOOL) ...@@ -4553,12 +4553,20 @@ COMPATIBLE_IOCTL(RNDCLEARPOOL)
COMPATIBLE_IOCTL(HCIDEVUP) COMPATIBLE_IOCTL(HCIDEVUP)
COMPATIBLE_IOCTL(HCIDEVDOWN) COMPATIBLE_IOCTL(HCIDEVDOWN)
COMPATIBLE_IOCTL(HCIDEVRESET) COMPATIBLE_IOCTL(HCIDEVRESET)
COMPATIBLE_IOCTL(HCIRESETSTAT) COMPATIBLE_IOCTL(HCIDEVRESTAT)
COMPATIBLE_IOCTL(HCIGETINFO)
COMPATIBLE_IOCTL(HCIGETDEVLIST) COMPATIBLE_IOCTL(HCIGETDEVLIST)
COMPATIBLE_IOCTL(HCIGETDEVINFO)
COMPATIBLE_IOCTL(HCIGETCONNLIST)
COMPATIBLE_IOCTL(HCIGETCONNINFO)
COMPATIBLE_IOCTL(HCISETRAW) COMPATIBLE_IOCTL(HCISETRAW)
COMPATIBLE_IOCTL(HCISETSCAN) COMPATIBLE_IOCTL(HCISETSCAN)
COMPATIBLE_IOCTL(HCISETAUTH) COMPATIBLE_IOCTL(HCISETAUTH)
COMPATIBLE_IOCTL(HCISETENCRYPT)
COMPATIBLE_IOCTL(HCISETPTYPE)
COMPATIBLE_IOCTL(HCISETLINKPOL)
COMPATIBLE_IOCTL(HCISETLINKMODE)
COMPATIBLE_IOCTL(HCISETACLMTU)
COMPATIBLE_IOCTL(HCISETSCOMTU)
COMPATIBLE_IOCTL(HCIINQUIRY) COMPATIBLE_IOCTL(HCIINQUIRY)
/* Misc. */ /* Misc. */
COMPATIBLE_IOCTL(0x41545900) /* ATYIO_CLKR */ COMPATIBLE_IOCTL(0x41545900) /* ATYIO_CLKR */
......
...@@ -465,8 +465,6 @@ extern int root_mountflags; ...@@ -465,8 +465,6 @@ extern int root_mountflags;
char saved_command_line[256]; char saved_command_line[256];
char reboot_command[256]; char reboot_command[256];
extern unsigned long phys_base;
static struct pt_regs fake_swapper_regs = { { 0, }, 0, 0, 0, 0 }; static struct pt_regs fake_swapper_regs = { { 0, }, 0, 0, 0, 0 };
void register_prom_callbacks(void) void register_prom_callbacks(void)
...@@ -535,6 +533,7 @@ void __init setup_arch(char **cmdline_p) ...@@ -535,6 +533,7 @@ void __init setup_arch(char **cmdline_p)
if (highest_paddr < top) if (highest_paddr < top)
highest_paddr = top; highest_paddr = top;
} }
pfn_base = phys_base >> PAGE_SHIFT;
if (!root_flags) if (!root_flags)
root_mountflags &= ~MS_RDONLY; root_mountflags &= ~MS_RDONLY;
......
...@@ -116,6 +116,7 @@ extern void _do_write_unlock(rwlock_t *rw); ...@@ -116,6 +116,7 @@ extern void _do_write_unlock(rwlock_t *rw);
#endif #endif
extern unsigned long phys_base; extern unsigned long phys_base;
extern unsigned long pfn_base;
/* used by various drivers */ /* used by various drivers */
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
...@@ -353,6 +354,7 @@ EXPORT_SYMBOL(__bzero_noasi); ...@@ -353,6 +354,7 @@ EXPORT_SYMBOL(__bzero_noasi);
/* Various address conversion macros use this. */ /* Various address conversion macros use this. */
EXPORT_SYMBOL(phys_base); EXPORT_SYMBOL(phys_base);
EXPORT_SYMBOL(pfn_base);
EXPORT_SYMBOL(sparc64_valid_addr_bitmap); EXPORT_SYMBOL(sparc64_valid_addr_bitmap);
/* No version information on this, heavily used in inline asm, /* No version information on this, heavily used in inline asm,
......
...@@ -45,6 +45,7 @@ unsigned long *sparc64_valid_addr_bitmap; ...@@ -45,6 +45,7 @@ unsigned long *sparc64_valid_addr_bitmap;
/* Ugly, but necessary... -DaveM */ /* Ugly, but necessary... -DaveM */
unsigned long phys_base; unsigned long phys_base;
unsigned long pfn_base;
enum ultra_tlb_layout tlb_type = spitfire; enum ultra_tlb_layout tlb_type = spitfire;
...@@ -1341,7 +1342,7 @@ unsigned long __init bootmem_init(unsigned long *pages_avail) ...@@ -1341,7 +1342,7 @@ unsigned long __init bootmem_init(unsigned long *pages_avail)
} }
#endif #endif
/* Initialize the boot-time allocator. */ /* Initialize the boot-time allocator. */
bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap_pfn, phys_base>>PAGE_SHIFT, end_pfn); bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap_pfn, pfn_base, end_pfn);
/* Now register the available physical memory with the /* Now register the available physical memory with the
* allocator. * allocator.
...@@ -1529,7 +1530,7 @@ void __init paging_init(void) ...@@ -1529,7 +1530,7 @@ void __init paging_init(void)
for (znum = 0; znum < MAX_NR_ZONES; znum++) for (znum = 0; znum < MAX_NR_ZONES; znum++)
zones_size[znum] = zholes_size[znum] = 0; zones_size[znum] = zholes_size[znum] = 0;
npages = end_pfn - (phys_base >> PAGE_SHIFT); npages = end_pfn - pfn_base;
zones_size[ZONE_DMA] = npages; zones_size[ZONE_DMA] = npages;
zholes_size[ZONE_DMA] = npages - pages_avail; zholes_size[ZONE_DMA] = npages - pages_avail;
...@@ -1700,7 +1701,7 @@ void __init mem_init(void) ...@@ -1700,7 +1701,7 @@ void __init mem_init(void)
taint_real_pages(); taint_real_pages();
max_mapnr = last_valid_pfn - (phys_base >> PAGE_SHIFT); max_mapnr = last_valid_pfn - pfn_base;
high_memory = __va(last_valid_pfn << PAGE_SHIFT); high_memory = __va(last_valid_pfn << PAGE_SHIFT);
num_physpages = free_all_bootmem() - 1; num_physpages = free_all_bootmem() - 1;
......
...@@ -113,8 +113,19 @@ typedef unsigned long iopgprot_t; ...@@ -113,8 +113,19 @@ typedef unsigned long iopgprot_t;
#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET) #define __pa(x) ((unsigned long)(x) - PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET)) #define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
#define virt_to_page(kaddr) (mem_map + ((__pa(kaddr)-phys_base) >> PAGE_SHIFT))
#define VALID_PAGE(page) ((page - mem_map) < max_mapnr) /* PFNs are real physical page numbers. However, mem_map only begins to record
* per-page information starting at pfn_base. This is to handle systems where
* the first physical page in the machine is at some huge physical address, such
* as 4GB. This is common on a partitioned E10000, for example.
*/
#define pfn_to_page(pfn) (mem_map + ((pfn)-(pfn_base)))
#define page_to_pfn(page) ((unsigned long)(((page) - mem_map) + pfn_base))
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr)>>PAGE_SHIFT)
#define pfn_valid(pfn) (((pfn)-(pfn_base)) < max_mapnr)
#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
#define virt_to_phys __pa #define virt_to_phys __pa
#define phys_to_virt __va #define phys_to_virt __va
......
...@@ -190,18 +190,27 @@ ...@@ -190,18 +190,27 @@
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
extern unsigned long phys_base; extern unsigned long phys_base;
extern unsigned long pfn_base;
extern struct page *mem_map_zero; extern struct page *mem_map_zero;
#define ZERO_PAGE(vaddr) (mem_map_zero) #define ZERO_PAGE(vaddr) (mem_map_zero)
/* Warning: These take pointers to page structs now... */ /* PFNs are real physical page numbers. However, mem_map only begins to record
#define mk_pte(page, pgprot) \ * per-page information starting at pfn_base. This is to handle systems where
__pte((((page - mem_map) << PAGE_SHIFT)+phys_base) | pgprot_val(pgprot) | _PAGE_SZBITS) * the first physical page in the machine is at some huge physical address, such
* as 4GB. This is common on a partitioned E10000, for example.
*/
#define pfn_pte(pfn, prot) \
__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot) | _PAGE_SZBITS)
#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
#define pte_pfn(x) ((pte_val(x) & _PAGE_PADDR)>>PAGE_SHIFT)
#define pte_page(x) pfn_to_page(pte_pfn(x))
#define page_pte_prot(page, prot) mk_pte(page, prot) #define page_pte_prot(page, prot) mk_pte(page, prot)
#define page_pte(page) page_pte_prot(page, __pgprot(0)) #define page_pte(page) page_pte_prot(page, __pgprot(0))
#define mk_pte_phys(physpage, pgprot) (__pte((physpage) | pgprot_val(pgprot) | _PAGE_SZBITS))
extern inline pte_t pte_modify(pte_t orig_pte, pgprot_t new_prot) extern inline pte_t pte_modify(pte_t orig_pte, pgprot_t new_prot)
{ {
pte_t __pte; pte_t __pte;
...@@ -246,8 +255,6 @@ extern inline pte_t pte_modify(pte_t orig_pte, pgprot_t new_prot) ...@@ -246,8 +255,6 @@ extern inline pte_t pte_modify(pte_t orig_pte, pgprot_t new_prot)
/* Permanent address of a page. */ /* Permanent address of a page. */
#define __page_address(page) page_address(page) #define __page_address(page) page_address(page)
#define pte_page(x) (mem_map+(((pte_val(x)&_PAGE_PADDR)-phys_base)>>PAGE_SHIFT))
/* Be very careful when you change these three, they are delicate. */ /* Be very careful when you change these three, they are delicate. */
#define pte_mkyoung(pte) (__pte(pte_val(pte) | _PAGE_ACCESSED | _PAGE_R)) #define pte_mkyoung(pte) (__pte(pte_val(pte) | _PAGE_ACCESSED | _PAGE_R))
#define pte_mkwrite(pte) (__pte(pte_val(pte) | _PAGE_WRITE)) #define pte_mkwrite(pte) (__pte(pte_val(pte) | _PAGE_WRITE))
......
...@@ -782,7 +782,7 @@ do { \ ...@@ -782,7 +782,7 @@ do { \
\ \
r &= ~((rtype)1 << X##_e); \ r &= ~((rtype)1 << X##_e); \
if (_FP_FRACBITS_##fs < rsize && _FP_WFRACBITS_##fs < X##_e) \ if (_FP_FRACBITS_##fs < rsize && _FP_WFRACBITS_##fs < X##_e) \
__FP_FRAC_SRS_1(r, (X##_e - _FP_WFRACBITS_##fs + 1), rsize); \ __FP_FRAC_SRS_1(r, (X##_e - _FP_WFRACBITS_##fs), rsize); \
_FP_FRAC_DISASSEMBLE_##wc(X, ((unsigned rtype)r), rsize); \ _FP_FRAC_DISASSEMBLE_##wc(X, ((unsigned rtype)r), rsize); \
if ((_FP_WFRACBITS_##fs - X##_e - 1) > 0) \ if ((_FP_WFRACBITS_##fs - X##_e - 1) > 0) \
_FP_FRAC_SLL_##wc(X, (_FP_WFRACBITS_##fs - X##_e - 1)); \ _FP_FRAC_SLL_##wc(X, (_FP_WFRACBITS_##fs - X##_e - 1)); \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment