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

Pull parisc fixes from Helge Deller:
"There are two important fixes here:

- Add PCI quirks to disable built-in a serial AUX and a graphics
cards from specific GSP (management board) PCI cards. This fixes
boot via serial console on rp3410 and rp3440 machines.

- Revert the "Re-enable interrups early" patch which was added to
kernel v4.10. It can trigger stack overflows and thus silent data
corruption. With this patch reverted we can lower our thread stack
back to 16kb again.

The other patches are minor cleanups: avoid duplicate includes,
indenting fixes, correctly align variable in asm code"

* 'parisc-4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: Reduce thread stack to 16 kb
Revert "parisc: Re-enable interrupts early"
parisc: remove duplicate includes
parisc: Hide Diva-built-in serial aux and graphics card
parisc: Align os_hpmc_size on word boundary
parisc: Fix indenting in puts()

+50 -8
+2 -2
arch/parisc/boot/compressed/misc.c
··· 123 123 while ((nuline = strchr(s, '\n')) != NULL) { 124 124 if (nuline != s) 125 125 pdc_iodc_print(s, nuline - s); 126 - pdc_iodc_print("\r\n", 2); 127 - s = nuline + 1; 126 + pdc_iodc_print("\r\n", 2); 127 + s = nuline + 1; 128 128 } 129 129 if (*s != '\0') 130 130 pdc_iodc_print(s, strlen(s));
+5
arch/parisc/include/asm/thread_info.h
··· 35 35 36 36 /* thread information allocation */ 37 37 38 + #ifdef CONFIG_IRQSTACKS 39 + #define THREAD_SIZE_ORDER 2 /* PA-RISC requires at least 16k stack */ 40 + #else 38 41 #define THREAD_SIZE_ORDER 3 /* PA-RISC requires at least 32k stack */ 42 + #endif 43 + 39 44 /* Be sure to hunt all references to this down when you change the size of 40 45 * the kernel stack */ 41 46 #define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
+9 -3
arch/parisc/kernel/entry.S
··· 878 878 STREG %r19,PT_SR7(%r16) 879 879 880 880 intr_return: 881 - /* NOTE: Need to enable interrupts incase we schedule. */ 882 - ssm PSW_SM_I, %r0 883 - 884 881 /* check for reschedule */ 885 882 mfctl %cr30,%r1 886 883 LDREG TI_FLAGS(%r1),%r19 /* sched.h: TIF_NEED_RESCHED */ ··· 903 906 cmpib,COND(=),n 0,%r20,intr_restore /* backward */ 904 907 LDREG PT_IASQ1(%r16), %r20 905 908 cmpib,COND(=),n 0,%r20,intr_restore /* backward */ 909 + 910 + /* NOTE: We need to enable interrupts if we have to deliver 911 + * signals. We used to do this earlier but it caused kernel 912 + * stack overflows. */ 913 + ssm PSW_SM_I, %r0 906 914 907 915 copy %r0, %r25 /* long in_syscall = 0 */ 908 916 #ifdef CONFIG_64BIT ··· 959 957 LDREG PT_IASQ1(%r16), %r20 960 958 cmpib,COND(=) 0, %r20, intr_do_preempt 961 959 nop 960 + 961 + /* NOTE: We need to enable interrupts if we schedule. We used 962 + * to do this earlier but it caused kernel stack overflows. */ 963 + ssm PSW_SM_I, %r0 962 964 963 965 #ifdef CONFIG_64BIT 964 966 ldo -16(%r30),%r29 /* Reference param save area */
+1
arch/parisc/kernel/hpmc.S
··· 305 305 306 306 307 307 __INITRODATA 308 + .align 4 308 309 .export os_hpmc_size 309 310 os_hpmc_size: 310 311 .word .os_hpmc_end-.os_hpmc
-1
arch/parisc/kernel/unwind.c
··· 15 15 #include <linux/slab.h> 16 16 #include <linux/kallsyms.h> 17 17 #include <linux/sort.h> 18 - #include <linux/sched.h> 19 18 20 19 #include <linux/uaccess.h> 21 20 #include <asm/assembly.h>
-2
arch/parisc/lib/delay.c
··· 16 16 #include <linux/preempt.h> 17 17 #include <linux/init.h> 18 18 19 - #include <asm/processor.h> 20 19 #include <asm/delay.h> 21 - 22 20 #include <asm/special_insns.h> /* for mfctl() */ 23 21 #include <asm/processor.h> /* for boot_cpu_data */ 24 22
+33
drivers/parisc/lba_pci.c
··· 1692 1692 iounmap(base_addr); 1693 1693 } 1694 1694 1695 + 1696 + /* 1697 + * The design of the Diva management card in rp34x0 machines (rp3410, rp3440) 1698 + * seems rushed, so that many built-in components simply don't work. 1699 + * The following quirks disable the serial AUX port and the built-in ATI RV100 1700 + * Radeon 7000 graphics card which both don't have any external connectors and 1701 + * thus are useless, and even worse, e.g. the AUX port occupies ttyS0 and as 1702 + * such makes those machines the only PARISC machines on which we can't use 1703 + * ttyS0 as boot console. 1704 + */ 1705 + static void quirk_diva_ati_card(struct pci_dev *dev) 1706 + { 1707 + if (dev->subsystem_vendor != PCI_VENDOR_ID_HP || 1708 + dev->subsystem_device != 0x1292) 1709 + return; 1710 + 1711 + dev_info(&dev->dev, "Hiding Diva built-in ATI card"); 1712 + dev->device = 0; 1713 + } 1714 + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_QY, 1715 + quirk_diva_ati_card); 1716 + 1717 + static void quirk_diva_aux_disable(struct pci_dev *dev) 1718 + { 1719 + if (dev->subsystem_vendor != PCI_VENDOR_ID_HP || 1720 + dev->subsystem_device != 0x1291) 1721 + return; 1722 + 1723 + dev_info(&dev->dev, "Hiding Diva built-in AUX serial device"); 1724 + dev->device = 0; 1725 + } 1726 + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_DIVA_AUX, 1727 + quirk_diva_aux_disable);