Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'parisc-3.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc updates from Helge Deller:
"The majority of lines changed are due the addition of a defconfig for
the C8000 machine. Even the fix in parisc/kernel/cache.c file is
actually ony a 10-line fix, but the change became bigger (and much
nicer) to avoid errors of the checkpatch script.

Here is the short-changelog:

This round of parisc updates includes mostly fixes for the C8000
workstation. We have a new defconfig file for this machine, as well
as fixes for it's serial port, the AGP driver and the cache routines
to cope with the vmas of the FireGL card in a C8000. The sys32.h
header file was not used and as such it's now gone"

* 'parisc-3.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: Fix interrupt routing for C8000 serial ports
parisc: Remove arch/parisc/kernel/sys32.h header
parisc: add defconfig for c8000 machine
parisc: agp/parisc-agp: allow binding of user memory to the AGP GART
parisc: Fix cache routines to ignore vma's with an invalid pfn

+385 -124
+279
arch/parisc/configs/c8000_defconfig
··· 1 + # CONFIG_LOCALVERSION_AUTO is not set 2 + CONFIG_SYSVIPC=y 3 + CONFIG_POSIX_MQUEUE=y 4 + CONFIG_FHANDLE=y 5 + CONFIG_BSD_PROCESS_ACCT=y 6 + CONFIG_BSD_PROCESS_ACCT_V3=y 7 + CONFIG_IKCONFIG=y 8 + CONFIG_IKCONFIG_PROC=y 9 + CONFIG_RELAY=y 10 + CONFIG_BLK_DEV_INITRD=y 11 + CONFIG_RD_BZIP2=y 12 + CONFIG_RD_LZMA=y 13 + CONFIG_RD_LZO=y 14 + CONFIG_EXPERT=y 15 + CONFIG_SYSCTL_SYSCALL=y 16 + CONFIG_SLAB=y 17 + CONFIG_MODULES=y 18 + CONFIG_MODULE_UNLOAD=y 19 + CONFIG_MODULE_FORCE_UNLOAD=y 20 + CONFIG_MODVERSIONS=y 21 + CONFIG_BLK_DEV_INTEGRITY=y 22 + CONFIG_PA8X00=y 23 + CONFIG_MLONGCALLS=y 24 + CONFIG_64BIT=y 25 + CONFIG_SMP=y 26 + CONFIG_PREEMPT=y 27 + # CONFIG_CROSS_MEMORY_ATTACH is not set 28 + CONFIG_IOMMU_CCIO=y 29 + CONFIG_PCI=y 30 + CONFIG_PCI_LBA=y 31 + # CONFIG_SUPERIO is not set 32 + # CONFIG_CHASSIS_LCD_LED is not set 33 + # CONFIG_PDC_CHASSIS is not set 34 + # CONFIG_PDC_CHASSIS_WARN is not set 35 + # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 36 + CONFIG_BINFMT_MISC=m 37 + CONFIG_PACKET=y 38 + CONFIG_UNIX=y 39 + CONFIG_XFRM_USER=m 40 + CONFIG_XFRM_SUB_POLICY=y 41 + CONFIG_NET_KEY=m 42 + CONFIG_INET=y 43 + CONFIG_IP_MULTICAST=y 44 + CONFIG_IP_PNP=y 45 + CONFIG_IP_PNP_DHCP=y 46 + CONFIG_IP_PNP_BOOTP=y 47 + CONFIG_IP_PNP_RARP=y 48 + CONFIG_NET_IPIP=m 49 + CONFIG_IP_MROUTE=y 50 + CONFIG_IP_PIMSM_V1=y 51 + CONFIG_IP_PIMSM_V2=y 52 + CONFIG_SYN_COOKIES=y 53 + CONFIG_INET_AH=m 54 + CONFIG_INET_ESP=m 55 + CONFIG_INET_IPCOMP=m 56 + CONFIG_INET_XFRM_MODE_BEET=m 57 + CONFIG_INET_DIAG=m 58 + # CONFIG_IPV6 is not set 59 + CONFIG_IP_DCCP=m 60 + # CONFIG_IP_DCCP_CCID3 is not set 61 + CONFIG_TIPC=m 62 + CONFIG_LLC2=m 63 + CONFIG_DNS_RESOLVER=y 64 + CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 65 + # CONFIG_STANDALONE is not set 66 + CONFIG_PARPORT=y 67 + CONFIG_PARPORT_PC=y 68 + CONFIG_PARPORT_PC_FIFO=y 69 + CONFIG_BLK_DEV_UMEM=m 70 + CONFIG_BLK_DEV_LOOP=m 71 + CONFIG_BLK_DEV_CRYPTOLOOP=m 72 + CONFIG_BLK_DEV_SX8=m 73 + CONFIG_BLK_DEV_RAM=y 74 + CONFIG_BLK_DEV_RAM_SIZE=6144 75 + CONFIG_CDROM_PKTCDVD=m 76 + CONFIG_CDROM_PKTCDVD_WCACHE=y 77 + CONFIG_ATA_OVER_ETH=m 78 + CONFIG_IDE=y 79 + CONFIG_BLK_DEV_IDECD=y 80 + CONFIG_BLK_DEV_PLATFORM=y 81 + CONFIG_BLK_DEV_GENERIC=y 82 + CONFIG_BLK_DEV_SIIMAGE=y 83 + CONFIG_SCSI=y 84 + CONFIG_BLK_DEV_SD=y 85 + CONFIG_CHR_DEV_ST=m 86 + CONFIG_BLK_DEV_SR=m 87 + CONFIG_CHR_DEV_SG=y 88 + CONFIG_CHR_DEV_SCH=m 89 + CONFIG_SCSI_CONSTANTS=y 90 + CONFIG_SCSI_LOGGING=y 91 + CONFIG_SCSI_FC_ATTRS=y 92 + CONFIG_SCSI_SAS_LIBSAS=m 93 + CONFIG_ISCSI_TCP=m 94 + CONFIG_ISCSI_BOOT_SYSFS=m 95 + CONFIG_FUSION=y 96 + CONFIG_FUSION_SPI=y 97 + CONFIG_FUSION_SAS=y 98 + CONFIG_NETDEVICES=y 99 + CONFIG_DUMMY=m 100 + CONFIG_NETCONSOLE=m 101 + CONFIG_TUN=y 102 + CONFIG_E1000=y 103 + CONFIG_PPP=m 104 + CONFIG_PPP_BSDCOMP=m 105 + CONFIG_PPP_DEFLATE=m 106 + CONFIG_PPP_MPPE=m 107 + CONFIG_PPPOE=m 108 + CONFIG_PPP_ASYNC=m 109 + CONFIG_PPP_SYNC_TTY=m 110 + # CONFIG_WLAN is not set 111 + CONFIG_INPUT_FF_MEMLESS=m 112 + # CONFIG_KEYBOARD_ATKBD is not set 113 + # CONFIG_KEYBOARD_HIL_OLD is not set 114 + # CONFIG_KEYBOARD_HIL is not set 115 + CONFIG_MOUSE_PS2=m 116 + CONFIG_INPUT_MISC=y 117 + CONFIG_INPUT_CM109=m 118 + CONFIG_SERIO_SERPORT=m 119 + CONFIG_SERIO_PARKBD=m 120 + CONFIG_SERIO_GSCPS2=m 121 + # CONFIG_HP_SDC is not set 122 + CONFIG_SERIO_PCIPS2=m 123 + CONFIG_SERIO_LIBPS2=y 124 + CONFIG_SERIO_RAW=m 125 + CONFIG_SERIAL_8250=y 126 + # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set 127 + CONFIG_SERIAL_8250_CONSOLE=y 128 + CONFIG_SERIAL_8250_NR_UARTS=8 129 + CONFIG_SERIAL_8250_RUNTIME_UARTS=8 130 + CONFIG_SERIAL_8250_EXTENDED=y 131 + # CONFIG_SERIAL_MUX is not set 132 + CONFIG_SERIAL_JSM=m 133 + CONFIG_PRINTER=y 134 + CONFIG_HW_RANDOM=y 135 + CONFIG_RAW_DRIVER=m 136 + CONFIG_PTP_1588_CLOCK=y 137 + CONFIG_SSB=m 138 + CONFIG_SSB_DRIVER_PCICORE=y 139 + CONFIG_AGP=y 140 + CONFIG_AGP_PARISC=y 141 + CONFIG_DRM=y 142 + CONFIG_DRM_RADEON=y 143 + CONFIG_FIRMWARE_EDID=y 144 + CONFIG_FB_FOREIGN_ENDIAN=y 145 + CONFIG_FB_MODE_HELPERS=y 146 + CONFIG_FB_TILEBLITTING=y 147 + # CONFIG_FB_STI is not set 148 + CONFIG_BACKLIGHT_LCD_SUPPORT=y 149 + # CONFIG_LCD_CLASS_DEVICE is not set 150 + # CONFIG_BACKLIGHT_GENERIC is not set 151 + CONFIG_FRAMEBUFFER_CONSOLE=y 152 + # CONFIG_STI_CONSOLE is not set 153 + CONFIG_LOGO=y 154 + # CONFIG_LOGO_LINUX_MONO is not set 155 + # CONFIG_LOGO_LINUX_VGA16 is not set 156 + # CONFIG_LOGO_LINUX_CLUT224 is not set 157 + CONFIG_SOUND=m 158 + CONFIG_SND=m 159 + CONFIG_SND_SEQUENCER=m 160 + CONFIG_SND_SEQ_DUMMY=m 161 + CONFIG_SND_MIXER_OSS=m 162 + CONFIG_SND_PCM_OSS=m 163 + CONFIG_SND_SEQUENCER_OSS=y 164 + CONFIG_SND_VERBOSE_PRINTK=y 165 + CONFIG_SND_AD1889=m 166 + # CONFIG_SND_USB is not set 167 + # CONFIG_SND_GSC is not set 168 + CONFIG_HID_A4TECH=m 169 + CONFIG_HID_APPLE=m 170 + CONFIG_HID_BELKIN=m 171 + CONFIG_HID_CHERRY=m 172 + CONFIG_HID_CHICONY=m 173 + CONFIG_HID_CYPRESS=m 174 + CONFIG_HID_DRAGONRISE=m 175 + CONFIG_HID_EZKEY=m 176 + CONFIG_HID_KYE=m 177 + CONFIG_HID_GYRATION=m 178 + CONFIG_HID_TWINHAN=m 179 + CONFIG_HID_KENSINGTON=m 180 + CONFIG_HID_LOGITECH=m 181 + CONFIG_HID_LOGITECH_DJ=m 182 + CONFIG_HID_MICROSOFT=m 183 + CONFIG_HID_MONTEREY=m 184 + CONFIG_HID_NTRIG=m 185 + CONFIG_HID_ORTEK=m 186 + CONFIG_HID_PANTHERLORD=m 187 + CONFIG_HID_PETALYNX=m 188 + CONFIG_HID_SAMSUNG=m 189 + CONFIG_HID_SUNPLUS=m 190 + CONFIG_HID_GREENASIA=m 191 + CONFIG_HID_SMARTJOYPLUS=m 192 + CONFIG_HID_TOPSEED=m 193 + CONFIG_HID_THRUSTMASTER=m 194 + CONFIG_HID_ZEROPLUS=m 195 + CONFIG_USB_HID=m 196 + CONFIG_USB=y 197 + CONFIG_USB_OHCI_HCD=y 198 + CONFIG_USB_STORAGE=y 199 + CONFIG_EXT2_FS=y 200 + CONFIG_EXT2_FS_XATTR=y 201 + CONFIG_EXT2_FS_POSIX_ACL=y 202 + CONFIG_EXT2_FS_SECURITY=y 203 + CONFIG_EXT3_FS=y 204 + # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 205 + CONFIG_EXT4_FS=m 206 + CONFIG_REISERFS_FS=m 207 + CONFIG_REISERFS_PROC_INFO=y 208 + CONFIG_XFS_FS=m 209 + CONFIG_XFS_POSIX_ACL=y 210 + CONFIG_QUOTA=y 211 + CONFIG_QFMT_V1=m 212 + CONFIG_QFMT_V2=m 213 + CONFIG_AUTOFS4_FS=m 214 + CONFIG_FUSE_FS=m 215 + CONFIG_ISO9660_FS=y 216 + CONFIG_JOLIET=y 217 + CONFIG_MSDOS_FS=m 218 + CONFIG_VFAT_FS=m 219 + CONFIG_PROC_KCORE=y 220 + CONFIG_TMPFS=y 221 + CONFIG_TMPFS_XATTR=y 222 + CONFIG_NFS_FS=m 223 + CONFIG_NLS_CODEPAGE_437=m 224 + CONFIG_NLS_CODEPAGE_737=m 225 + CONFIG_NLS_CODEPAGE_775=m 226 + CONFIG_NLS_CODEPAGE_850=m 227 + CONFIG_NLS_CODEPAGE_852=m 228 + CONFIG_NLS_CODEPAGE_855=m 229 + CONFIG_NLS_CODEPAGE_857=m 230 + CONFIG_NLS_CODEPAGE_860=m 231 + CONFIG_NLS_CODEPAGE_861=m 232 + CONFIG_NLS_CODEPAGE_862=m 233 + CONFIG_NLS_CODEPAGE_863=m 234 + CONFIG_NLS_CODEPAGE_864=m 235 + CONFIG_NLS_CODEPAGE_865=m 236 + CONFIG_NLS_CODEPAGE_866=m 237 + CONFIG_NLS_CODEPAGE_869=m 238 + CONFIG_NLS_CODEPAGE_936=m 239 + CONFIG_NLS_CODEPAGE_950=m 240 + CONFIG_NLS_CODEPAGE_932=m 241 + CONFIG_NLS_CODEPAGE_949=m 242 + CONFIG_NLS_CODEPAGE_874=m 243 + CONFIG_NLS_ISO8859_8=m 244 + CONFIG_NLS_CODEPAGE_1250=m 245 + CONFIG_NLS_CODEPAGE_1251=m 246 + CONFIG_NLS_ASCII=m 247 + CONFIG_NLS_ISO8859_1=m 248 + CONFIG_NLS_ISO8859_2=m 249 + CONFIG_NLS_ISO8859_3=m 250 + CONFIG_NLS_ISO8859_4=m 251 + CONFIG_NLS_ISO8859_5=m 252 + CONFIG_NLS_ISO8859_6=m 253 + CONFIG_NLS_ISO8859_7=m 254 + CONFIG_NLS_ISO8859_9=m 255 + CONFIG_NLS_ISO8859_13=m 256 + CONFIG_NLS_ISO8859_14=m 257 + CONFIG_NLS_ISO8859_15=m 258 + CONFIG_NLS_KOI8_R=m 259 + CONFIG_NLS_KOI8_U=m 260 + CONFIG_NLS_UTF8=m 261 + CONFIG_UNUSED_SYMBOLS=y 262 + CONFIG_DEBUG_FS=y 263 + CONFIG_MAGIC_SYSRQ=y 264 + CONFIG_DEBUG_SLAB=y 265 + CONFIG_DEBUG_SLAB_LEAK=y 266 + CONFIG_DEBUG_MEMORY_INIT=y 267 + CONFIG_DEBUG_STACKOVERFLOW=y 268 + CONFIG_LOCKUP_DETECTOR=y 269 + CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y 270 + CONFIG_PANIC_ON_OOPS=y 271 + CONFIG_DEBUG_RT_MUTEXES=y 272 + CONFIG_RT_MUTEX_TESTER=y 273 + CONFIG_PROVE_RCU_DELAY=y 274 + CONFIG_DEBUG_BLOCK_EXT_DEVT=y 275 + CONFIG_LATENCYTOP=y 276 + CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y 277 + CONFIG_KEYS=y 278 + # CONFIG_CRYPTO_HW is not set 279 + CONFIG_FONTS=y
+3
arch/parisc/include/asm/parisc-device.h
··· 23 23 /* generic info returned from pdc_pat_cell_module() */ 24 24 unsigned long mod_info; /* PAT specific - Misc Module info */ 25 25 unsigned long pmod_loc; /* physical Module location */ 26 + unsigned long mod0; 26 27 #endif 27 28 u64 dma_mask; /* DMA mask for I/O */ 28 29 struct device dev; ··· 61 60 } 62 61 63 62 extern struct bus_type parisc_bus_type; 63 + 64 + int iosapic_serial_irq(struct parisc_device *dev); 64 65 65 66 #endif /*_ASM_PARISC_PARISC_DEVICE_H_*/
+70 -63
arch/parisc/kernel/cache.c
··· 71 71 } 72 72 EXPORT_SYMBOL(flush_cache_all_local); 73 73 74 + /* Virtual address of pfn. */ 75 + #define pfn_va(pfn) __va(PFN_PHYS(pfn)) 76 + 74 77 void 75 78 update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t *ptep) 76 79 { 77 - struct page *page = pte_page(*ptep); 80 + unsigned long pfn = pte_pfn(*ptep); 81 + struct page *page; 78 82 79 - if (pfn_valid(page_to_pfn(page)) && page_mapping(page) && 80 - test_bit(PG_dcache_dirty, &page->flags)) { 83 + /* We don't have pte special. As a result, we can be called with 84 + an invalid pfn and we don't need to flush the kernel dcache page. 85 + This occurs with FireGL card in C8000. */ 86 + if (!pfn_valid(pfn)) 87 + return; 81 88 82 - flush_kernel_dcache_page(page); 89 + page = pfn_to_page(pfn); 90 + if (page_mapping(page) && test_bit(PG_dcache_dirty, &page->flags)) { 91 + flush_kernel_dcache_page_addr(pfn_va(pfn)); 83 92 clear_bit(PG_dcache_dirty, &page->flags); 84 93 } else if (parisc_requires_coherency()) 85 - flush_kernel_dcache_page(page); 94 + flush_kernel_dcache_page_addr(pfn_va(pfn)); 86 95 } 87 96 88 97 void ··· 504 495 505 496 void flush_cache_mm(struct mm_struct *mm) 506 497 { 498 + struct vm_area_struct *vma; 499 + pgd_t *pgd; 500 + 507 501 /* Flushing the whole cache on each cpu takes forever on 508 502 rp3440, etc. So, avoid it if the mm isn't too big. */ 509 - if (mm_total_size(mm) < parisc_cache_flush_threshold) { 510 - struct vm_area_struct *vma; 503 + if (mm_total_size(mm) >= parisc_cache_flush_threshold) { 504 + flush_cache_all(); 505 + return; 506 + } 511 507 512 - if (mm->context == mfsp(3)) { 513 - for (vma = mm->mmap; vma; vma = vma->vm_next) { 514 - flush_user_dcache_range_asm(vma->vm_start, 515 - vma->vm_end); 516 - if (vma->vm_flags & VM_EXEC) 517 - flush_user_icache_range_asm( 518 - vma->vm_start, vma->vm_end); 519 - } 520 - } else { 521 - pgd_t *pgd = mm->pgd; 522 - 523 - for (vma = mm->mmap; vma; vma = vma->vm_next) { 524 - unsigned long addr; 525 - 526 - for (addr = vma->vm_start; addr < vma->vm_end; 527 - addr += PAGE_SIZE) { 528 - pte_t *ptep = get_ptep(pgd, addr); 529 - if (ptep != NULL) { 530 - pte_t pte = *ptep; 531 - __flush_cache_page(vma, addr, 532 - page_to_phys(pte_page(pte))); 533 - } 534 - } 535 - } 508 + if (mm->context == mfsp(3)) { 509 + for (vma = mm->mmap; vma; vma = vma->vm_next) { 510 + flush_user_dcache_range_asm(vma->vm_start, vma->vm_end); 511 + if ((vma->vm_flags & VM_EXEC) == 0) 512 + continue; 513 + flush_user_icache_range_asm(vma->vm_start, vma->vm_end); 536 514 } 537 515 return; 538 516 } 539 517 540 - #ifdef CONFIG_SMP 541 - flush_cache_all(); 542 - #else 543 - flush_cache_all_local(); 544 - #endif 518 + pgd = mm->pgd; 519 + for (vma = mm->mmap; vma; vma = vma->vm_next) { 520 + unsigned long addr; 521 + 522 + for (addr = vma->vm_start; addr < vma->vm_end; 523 + addr += PAGE_SIZE) { 524 + unsigned long pfn; 525 + pte_t *ptep = get_ptep(pgd, addr); 526 + if (!ptep) 527 + continue; 528 + pfn = pte_pfn(*ptep); 529 + if (!pfn_valid(pfn)) 530 + continue; 531 + __flush_cache_page(vma, addr, PFN_PHYS(pfn)); 532 + } 533 + } 545 534 } 546 535 547 536 void ··· 563 556 void flush_cache_range(struct vm_area_struct *vma, 564 557 unsigned long start, unsigned long end) 565 558 { 559 + unsigned long addr; 560 + pgd_t *pgd; 561 + 566 562 BUG_ON(!vma->vm_mm->context); 567 563 568 - if ((end - start) < parisc_cache_flush_threshold) { 569 - if (vma->vm_mm->context == mfsp(3)) { 570 - flush_user_dcache_range_asm(start, end); 571 - if (vma->vm_flags & VM_EXEC) 572 - flush_user_icache_range_asm(start, end); 573 - } else { 574 - unsigned long addr; 575 - pgd_t *pgd = vma->vm_mm->pgd; 576 - 577 - for (addr = start & PAGE_MASK; addr < end; 578 - addr += PAGE_SIZE) { 579 - pte_t *ptep = get_ptep(pgd, addr); 580 - if (ptep != NULL) { 581 - pte_t pte = *ptep; 582 - flush_cache_page(vma, 583 - addr, pte_pfn(pte)); 584 - } 585 - } 586 - } 587 - } else { 588 - #ifdef CONFIG_SMP 564 + if ((end - start) >= parisc_cache_flush_threshold) { 589 565 flush_cache_all(); 590 - #else 591 - flush_cache_all_local(); 592 - #endif 566 + return; 567 + } 568 + 569 + if (vma->vm_mm->context == mfsp(3)) { 570 + flush_user_dcache_range_asm(start, end); 571 + if (vma->vm_flags & VM_EXEC) 572 + flush_user_icache_range_asm(start, end); 573 + return; 574 + } 575 + 576 + pgd = vma->vm_mm->pgd; 577 + for (addr = start & PAGE_MASK; addr < end; addr += PAGE_SIZE) { 578 + unsigned long pfn; 579 + pte_t *ptep = get_ptep(pgd, addr); 580 + if (!ptep) 581 + continue; 582 + pfn = pte_pfn(*ptep); 583 + if (pfn_valid(pfn)) 584 + __flush_cache_page(vma, addr, PFN_PHYS(pfn)); 593 585 } 594 586 } 595 587 ··· 597 591 { 598 592 BUG_ON(!vma->vm_mm->context); 599 593 600 - flush_tlb_page(vma, vmaddr); 601 - __flush_cache_page(vma, vmaddr, page_to_phys(pfn_to_page(pfn))); 602 - 594 + if (pfn_valid(pfn)) { 595 + flush_tlb_page(vma, vmaddr); 596 + __flush_cache_page(vma, vmaddr, PFN_PHYS(pfn)); 597 + } 603 598 } 604 599 605 600 #ifdef CONFIG_PARISC_TMPALIAS
+1
arch/parisc/kernel/inventory.c
··· 211 211 /* REVISIT: who is the consumer of this? not sure yet... */ 212 212 dev->mod_info = pa_pdc_cell->mod_info; /* pass to PAT_GET_ENTITY() */ 213 213 dev->pmod_loc = pa_pdc_cell->mod_location; 214 + dev->mod0 = pa_pdc_cell->mod[0]; 214 215 215 216 register_parisc_device(dev); /* advertise device */ 216 217
-7
arch/parisc/kernel/signal.c
··· 56 56 #define A(__x) ((unsigned long)(__x)) 57 57 58 58 /* 59 - * Atomically swap in the new signal mask, and wait for a signal. 60 - */ 61 - #ifdef CONFIG_64BIT 62 - #include "sys32.h" 63 - #endif 64 - 65 - /* 66 59 * Do a signal return - restore sigcontext. 67 60 */ 68 61
-1
arch/parisc/kernel/signal32.c
··· 34 34 #include <asm/uaccess.h> 35 35 36 36 #include "signal32.h" 37 - #include "sys32.h" 38 37 39 38 #define DEBUG_COMPAT_SIG 0 40 39 #define DEBUG_COMPAT_SIG_LEVEL 2
-36
arch/parisc/kernel/sys32.h
··· 1 - /* 2 - * Copyright (C) 2002 Richard Hirst <rhirst at parisc-linux.org> 3 - * Copyright (C) 2003 James Bottomley <jejb at parisc-linux.org> 4 - * Copyright (C) 2003 Randolph Chung <tausq with parisc-linux.org> 5 - * 6 - * This program is free software; you can redistribute it and/or modify 7 - * it under the terms of the GNU General Public License as published by 8 - * the Free Software Foundation; either version 2 of the License, or 9 - * (at your option) any later version. 10 - * 11 - * This program is distributed in the hope that it will be useful, 12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 - * GNU General Public License for more details. 15 - * 16 - * You should have received a copy of the GNU General Public License 17 - * along with this program; if not, write to the Free Software 18 - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 - */ 20 - #ifndef _PARISC64_KERNEL_SYS32_H 21 - #define _PARISC64_KERNEL_SYS32_H 22 - 23 - #include <linux/compat.h> 24 - 25 - /* Call a kernel syscall which will use kernel space instead of user 26 - * space for its copy_to/from_user. 27 - */ 28 - #define KERNEL_SYSCALL(ret, syscall, args...) \ 29 - { \ 30 - mm_segment_t old_fs = get_fs(); \ 31 - set_fs(KERNEL_DS); \ 32 - ret = syscall(args); \ 33 - set_fs (old_fs); \ 34 - } 35 - 36 - #endif
-2
arch/parisc/kernel/sys_parisc32.c
··· 42 42 #include <asm/uaccess.h> 43 43 #include <asm/mmu_context.h> 44 44 45 - #include "sys32.h" 46 - 47 45 #undef DEBUG 48 46 49 47 #ifdef DEBUG
+4 -2
drivers/char/agp/parisc-agp.c
··· 129 129 off_t j, io_pg_start; 130 130 int io_pg_count; 131 131 132 - if (type != 0 || mem->type != 0) { 132 + if (type != mem->type || 133 + agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type)) { 133 134 return -EINVAL; 134 135 } 135 136 ··· 176 175 struct _parisc_agp_info *info = &parisc_agp_info; 177 176 int i, io_pg_start, io_pg_count; 178 177 179 - if (type != 0 || mem->type != 0) { 178 + if (type != mem->type || 179 + agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type)) { 180 180 return -EINVAL; 181 181 } 182 182
+27 -11
drivers/parisc/iosapic.c
··· 811 811 return pcidev->irq; 812 812 } 813 813 814 - static struct iosapic_info *first_isi = NULL; 814 + static struct iosapic_info *iosapic_list; 815 815 816 816 #ifdef CONFIG_64BIT 817 - int iosapic_serial_irq(int num) 817 + int iosapic_serial_irq(struct parisc_device *dev) 818 818 { 819 - struct iosapic_info *isi = first_isi; 820 - struct irt_entry *irte = NULL; /* only used if PAT PDC */ 819 + struct iosapic_info *isi; 820 + struct irt_entry *irte; 821 821 struct vector_info *vi; 822 - int isi_line; /* line used by device */ 822 + int cnt; 823 + int intin; 824 + 825 + intin = (dev->mod_info >> 24) & 15; 823 826 824 827 /* lookup IRT entry for isi/slot/pin set */ 825 - irte = &irt_cell[num]; 828 + for (cnt = 0; cnt < irt_num_entry; cnt++) { 829 + irte = &irt_cell[cnt]; 830 + if (COMPARE_IRTE_ADDR(irte, dev->mod0) && 831 + irte->dest_iosapic_intin == intin) 832 + break; 833 + } 834 + if (cnt >= irt_num_entry) 835 + return 0; /* no irq found, force polling */ 826 836 827 837 DBG_IRT("iosapic_serial_irq(): irte %p %x %x %x %x %x %x %x %x\n", 828 838 irte, ··· 844 834 irte->src_seg_id, 845 835 irte->dest_iosapic_intin, 846 836 (u32) irte->dest_iosapic_addr); 847 - isi_line = irte->dest_iosapic_intin; 837 + 838 + /* search for iosapic */ 839 + for (isi = iosapic_list; isi; isi = isi->isi_next) 840 + if (isi->isi_hpa == dev->mod0) 841 + break; 842 + if (!isi) 843 + return 0; /* no iosapic found, force polling */ 848 844 849 845 /* get vector info for this input line */ 850 - vi = isi->isi_vector + isi_line; 851 - DBG_IRT("iosapic_serial_irq: line %d vi 0x%p\n", isi_line, vi); 846 + vi = isi->isi_vector + intin; 847 + DBG_IRT("iosapic_serial_irq: line %d vi 0x%p\n", iosapic_intin, vi); 852 848 853 849 /* If this IRQ line has already been setup, skip it */ 854 850 if (vi->irte) ··· 957 941 vip->irqline = (unsigned char) cnt; 958 942 vip->iosapic = isi; 959 943 } 960 - if (!first_isi) 961 - first_isi = isi; 944 + isi->isi_next = iosapic_list; 945 + iosapic_list = isi; 962 946 return isi; 963 947 } 964 948
+1 -2
drivers/tty/serial/8250/8250_gsc.c
··· 31 31 int err; 32 32 33 33 #ifdef CONFIG_64BIT 34 - extern int iosapic_serial_irq(int cellnum); 35 34 if (!dev->irq && (dev->id.sversion == 0xad)) 36 - dev->irq = iosapic_serial_irq(dev->mod_index-1); 35 + dev->irq = iosapic_serial_irq(dev); 37 36 #endif 38 37 39 38 if (!dev->irq) {