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-4.4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc fixes from Helge Deller:
"Fix the boot crash on Mako machines with Huge Pages, prevent a panic
with SATA controllers (and others) by correctly calculating the IOMMU
space, hook up the mlock2 syscall and drop unneeded code in the parisc
pci code"

* 'parisc-4.4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: Disable huge pages on Mako machines
parisc: Wire up mlock2 syscall
parisc: Remove unused pcibios_init_bus()
parisc iommu: fix panic due to trying to allocate too large region

+13 -27
+2 -1
arch/parisc/include/asm/pgtable.h
··· 372 372 */ 373 373 #ifdef CONFIG_HUGETLB_PAGE 374 374 #define pte_huge(pte) (pte_val(pte) & _PAGE_HUGE) 375 - #define pte_mkhuge(pte) (__pte(pte_val(pte) | _PAGE_HUGE)) 375 + #define pte_mkhuge(pte) (__pte(pte_val(pte) | \ 376 + (parisc_requires_coherency() ? 0 : _PAGE_HUGE))) 376 377 #else 377 378 #define pte_huge(pte) (0) 378 379 #define pte_mkhuge(pte) (pte)
+2 -1
arch/parisc/include/uapi/asm/unistd.h
··· 360 360 #define __NR_execveat (__NR_Linux + 342) 361 361 #define __NR_membarrier (__NR_Linux + 343) 362 362 #define __NR_userfaultfd (__NR_Linux + 344) 363 + #define __NR_mlock2 (__NR_Linux + 345) 363 364 364 - #define __NR_Linux_syscalls (__NR_userfaultfd + 1) 365 + #define __NR_Linux_syscalls (__NR_mlock2 + 1) 365 366 366 367 367 368 #define __IGNORE_select /* newselect */
-18
arch/parisc/kernel/pci.c
··· 171 171 } 172 172 173 173 174 - void __init pcibios_init_bus(struct pci_bus *bus) 175 - { 176 - struct pci_dev *dev = bus->self; 177 - unsigned short bridge_ctl; 178 - 179 - /* We deal only with pci controllers and pci-pci bridges. */ 180 - if (!dev || (dev->class >> 8) != PCI_CLASS_BRIDGE_PCI) 181 - return; 182 - 183 - /* PCI-PCI bridge - set the cache line and default latency 184 - (32) for primary and secondary buses. */ 185 - pci_write_config_byte(dev, PCI_SEC_LATENCY_TIMER, 32); 186 - 187 - pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &bridge_ctl); 188 - bridge_ctl |= PCI_BRIDGE_CTL_PARITY | PCI_BRIDGE_CTL_SERR; 189 - pci_write_config_word(dev, PCI_BRIDGE_CONTROL, bridge_ctl); 190 - } 191 - 192 174 /* 193 175 * pcibios align resources() is called every time generic PCI code 194 176 * wants to generate a new address. The process of looking for
+1
arch/parisc/kernel/syscall_table.S
··· 440 440 ENTRY_COMP(execveat) 441 441 ENTRY_SAME(membarrier) 442 442 ENTRY_SAME(userfaultfd) 443 + ENTRY_SAME(mlock2) /* 345 */ 443 444 444 445 445 446 .ifne (. - 90b) - (__NR_Linux_syscalls * (91b - 90b))
+8 -7
drivers/parisc/iommu-helpers.h
··· 104 104 struct scatterlist *contig_sg; /* contig chunk head */ 105 105 unsigned long dma_offset, dma_len; /* start/len of DMA stream */ 106 106 unsigned int n_mappings = 0; 107 - unsigned int max_seg_size = dma_get_max_seg_size(dev); 107 + unsigned int max_seg_size = min(dma_get_max_seg_size(dev), 108 + (unsigned)DMA_CHUNK_SIZE); 109 + unsigned int max_seg_boundary = dma_get_seg_boundary(dev) + 1; 110 + if (max_seg_boundary) /* check if the addition above didn't overflow */ 111 + max_seg_size = min(max_seg_size, max_seg_boundary); 108 112 109 113 while (nents > 0) { 110 114 ··· 142 138 143 139 /* 144 140 ** First make sure current dma stream won't 145 - ** exceed DMA_CHUNK_SIZE if we coalesce the 141 + ** exceed max_seg_size if we coalesce the 146 142 ** next entry. 147 143 */ 148 - if(unlikely(ALIGN(dma_len + dma_offset + startsg->length, 149 - IOVP_SIZE) > DMA_CHUNK_SIZE)) 150 - break; 151 - 152 - if (startsg->length + dma_len > max_seg_size) 144 + if (unlikely(ALIGN(dma_len + dma_offset + startsg->length, IOVP_SIZE) > 145 + max_seg_size)) 153 146 break; 154 147 155 148 /*