diff options
Diffstat (limited to 'arch/parisc')
41 files changed, 1119 insertions, 132 deletions
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index deb713c647f4..b5f1858baf33 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
@@ -227,7 +227,6 @@ endchoice | |||
227 | 227 | ||
228 | config SMP | 228 | config SMP |
229 | bool "Symmetric multi-processing support" | 229 | bool "Symmetric multi-processing support" |
230 | select USE_GENERIC_SMP_HELPERS | ||
231 | ---help--- | 230 | ---help--- |
232 | This enables support for systems with more than one CPU. If you have | 231 | This enables support for systems with more than one CPU. If you have |
233 | a system with only one CPU, like most personal computers, say N. If | 232 | a system with only one CPU, like most personal computers, say N. If |
@@ -288,6 +287,9 @@ config SYSVIPC_COMPAT | |||
288 | def_bool y | 287 | def_bool y |
289 | depends on COMPAT && SYSVIPC | 288 | depends on COMPAT && SYSVIPC |
290 | 289 | ||
290 | config AUDIT_ARCH | ||
291 | def_bool y | ||
292 | |||
291 | config HPUX | 293 | config HPUX |
292 | bool "Support for HP-UX binaries" | 294 | bool "Support for HP-UX binaries" |
293 | depends on !64BIT | 295 | depends on !64BIT |
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile index e02f665f804a..7187664034c3 100644 --- a/arch/parisc/Makefile +++ b/arch/parisc/Makefile | |||
@@ -94,7 +94,7 @@ PALOCONF := $(shell if [ -f $(src)/palo.conf ]; then echo $(src)/palo.conf; \ | |||
94 | else echo $(obj)/palo.conf; \ | 94 | else echo $(obj)/palo.conf; \ |
95 | fi) | 95 | fi) |
96 | 96 | ||
97 | palo: vmlinuz | 97 | palo lifimage: vmlinuz |
98 | @if test ! -x "$(PALO)"; then \ | 98 | @if test ! -x "$(PALO)"; then \ |
99 | echo 'ERROR: Please install palo first (apt-get install palo)';\ | 99 | echo 'ERROR: Please install palo first (apt-get install palo)';\ |
100 | echo 'or build it from source and install it somewhere in your $$PATH';\ | 100 | echo 'or build it from source and install it somewhere in your $$PATH';\ |
@@ -109,16 +109,23 @@ palo: vmlinuz | |||
109 | fi | 109 | fi |
110 | $(PALO) -f $(PALOCONF) | 110 | $(PALO) -f $(PALOCONF) |
111 | 111 | ||
112 | # Shorthands for known targets not supported by parisc, use vmlinux/vmlinuz as default | 112 | BOOT_TARGETS = zImage Image palo lifimage |
113 | INSTALL_TARGETS = zinstall install | ||
114 | |||
115 | PHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TARGETS) | ||
116 | |||
117 | bzImage zImage: vmlinuz | ||
113 | Image: vmlinux | 118 | Image: vmlinux |
114 | zImage bzImage: vmlinuz | ||
115 | 119 | ||
116 | vmlinuz: vmlinux | 120 | vmlinuz: vmlinux |
117 | @gzip -cf -9 $< > $@ | 121 | @gzip -cf -9 $< > $@ |
118 | 122 | ||
119 | install: vmlinuz | 123 | install: |
120 | sh $(src)/arch/parisc/install.sh \ | 124 | $(CONFIG_SHELL) $(src)/arch/parisc/install.sh \ |
121 | $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)" | 125 | $(KERNELRELEASE) vmlinux System.map "$(INSTALL_PATH)" |
126 | zinstall: | ||
127 | $(CONFIG_SHELL) $(src)/arch/parisc/install.sh \ | ||
128 | $(KERNELRELEASE) vmlinuz System.map "$(INSTALL_PATH)" | ||
122 | 129 | ||
123 | CLEAN_FILES += lifimage | 130 | CLEAN_FILES += lifimage |
124 | MRPROPER_FILES += palo.conf | 131 | MRPROPER_FILES += palo.conf |
@@ -127,10 +134,11 @@ define archhelp | |||
127 | @echo '* vmlinux - Uncompressed kernel image (./vmlinux)' | 134 | @echo '* vmlinux - Uncompressed kernel image (./vmlinux)' |
128 | @echo ' vmlinuz - Compressed kernel image (./vmlinuz)' | 135 | @echo ' vmlinuz - Compressed kernel image (./vmlinuz)' |
129 | @echo ' palo - Bootable image (./lifimage)' | 136 | @echo ' palo - Bootable image (./lifimage)' |
130 | @echo ' install - Install kernel using' | 137 | @echo ' install - Install uncompressed vmlinux kernel using' |
131 | @echo ' (your) ~/bin/$(INSTALLKERNEL) or' | 138 | @echo ' (your) ~/bin/$(INSTALLKERNEL) or' |
132 | @echo ' (distribution) /sbin/$(INSTALLKERNEL) or' | 139 | @echo ' (distribution) /sbin/$(INSTALLKERNEL) or' |
133 | @echo ' copy to $$(INSTALL_PATH)' | 140 | @echo ' copy to $$(INSTALL_PATH)' |
141 | @echo ' zinstall - Install compressed vmlinuz kernel' | ||
134 | endef | 142 | endef |
135 | 143 | ||
136 | # we require gcc 3.3 or above to compile the kernel | 144 | # we require gcc 3.3 or above to compile the kernel |
diff --git a/arch/parisc/configs/712_defconfig b/arch/parisc/configs/712_defconfig index 0f90569b9d85..9387cc2693f6 100644 --- a/arch/parisc/configs/712_defconfig +++ b/arch/parisc/configs/712_defconfig | |||
@@ -40,6 +40,8 @@ CONFIG_IP_NF_QUEUE=m | |||
40 | CONFIG_LLC2=m | 40 | CONFIG_LLC2=m |
41 | CONFIG_NET_PKTGEN=m | 41 | CONFIG_NET_PKTGEN=m |
42 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 42 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
43 | CONFIG_DEVTMPFS=y | ||
44 | CONFIG_DEVTMPFS_MOUNT=y | ||
43 | # CONFIG_STANDALONE is not set | 45 | # CONFIG_STANDALONE is not set |
44 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 46 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
45 | CONFIG_PARPORT=y | 47 | CONFIG_PARPORT=y |
diff --git a/arch/parisc/configs/a500_defconfig b/arch/parisc/configs/a500_defconfig index b647b182dacc..90025322b75e 100644 --- a/arch/parisc/configs/a500_defconfig +++ b/arch/parisc/configs/a500_defconfig | |||
@@ -79,6 +79,8 @@ CONFIG_IP_DCCP=m | |||
79 | CONFIG_LLC2=m | 79 | CONFIG_LLC2=m |
80 | CONFIG_NET_PKTGEN=m | 80 | CONFIG_NET_PKTGEN=m |
81 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 81 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
82 | CONFIG_DEVTMPFS=y | ||
83 | CONFIG_DEVTMPFS_MOUNT=y | ||
82 | # CONFIG_STANDALONE is not set | 84 | # CONFIG_STANDALONE is not set |
83 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 85 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
84 | CONFIG_BLK_DEV_UMEM=m | 86 | CONFIG_BLK_DEV_UMEM=m |
diff --git a/arch/parisc/configs/b180_defconfig b/arch/parisc/configs/b180_defconfig index e289f5bf3148..f1a0c25bef8d 100644 --- a/arch/parisc/configs/b180_defconfig +++ b/arch/parisc/configs/b180_defconfig | |||
@@ -4,6 +4,7 @@ CONFIG_IKCONFIG=y | |||
4 | CONFIG_IKCONFIG_PROC=y | 4 | CONFIG_IKCONFIG_PROC=y |
5 | CONFIG_LOG_BUF_SHIFT=16 | 5 | CONFIG_LOG_BUF_SHIFT=16 |
6 | CONFIG_SYSFS_DEPRECATED_V2=y | 6 | CONFIG_SYSFS_DEPRECATED_V2=y |
7 | CONFIG_BLK_DEV_INITRD=y | ||
7 | CONFIG_SLAB=y | 8 | CONFIG_SLAB=y |
8 | CONFIG_MODULES=y | 9 | CONFIG_MODULES=y |
9 | CONFIG_MODVERSIONS=y | 10 | CONFIG_MODVERSIONS=y |
@@ -27,6 +28,8 @@ CONFIG_IP_PNP_BOOTP=y | |||
27 | # CONFIG_INET_LRO is not set | 28 | # CONFIG_INET_LRO is not set |
28 | CONFIG_IPV6=y | 29 | CONFIG_IPV6=y |
29 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 30 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
31 | CONFIG_DEVTMPFS=y | ||
32 | CONFIG_DEVTMPFS_MOUNT=y | ||
30 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 33 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
31 | CONFIG_PARPORT=y | 34 | CONFIG_PARPORT=y |
32 | CONFIG_PARPORT_PC=y | 35 | CONFIG_PARPORT_PC=y |
diff --git a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig index 311ca367b622..ec1b014952b6 100644 --- a/arch/parisc/configs/c3000_defconfig +++ b/arch/parisc/configs/c3000_defconfig | |||
@@ -5,6 +5,7 @@ CONFIG_IKCONFIG=y | |||
5 | CONFIG_IKCONFIG_PROC=y | 5 | CONFIG_IKCONFIG_PROC=y |
6 | CONFIG_LOG_BUF_SHIFT=16 | 6 | CONFIG_LOG_BUF_SHIFT=16 |
7 | CONFIG_SYSFS_DEPRECATED_V2=y | 7 | CONFIG_SYSFS_DEPRECATED_V2=y |
8 | CONFIG_BLK_DEV_INITRD=y | ||
8 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
9 | CONFIG_EXPERT=y | 10 | CONFIG_EXPERT=y |
10 | CONFIG_KALLSYMS_ALL=y | 11 | CONFIG_KALLSYMS_ALL=y |
@@ -39,6 +40,8 @@ CONFIG_NETFILTER_DEBUG=y | |||
39 | CONFIG_IP_NF_QUEUE=m | 40 | CONFIG_IP_NF_QUEUE=m |
40 | CONFIG_NET_PKTGEN=m | 41 | CONFIG_NET_PKTGEN=m |
41 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 42 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
43 | CONFIG_DEVTMPFS=y | ||
44 | CONFIG_DEVTMPFS_MOUNT=y | ||
42 | # CONFIG_STANDALONE is not set | 45 | # CONFIG_STANDALONE is not set |
43 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 46 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
44 | CONFIG_BLK_DEV_UMEM=m | 47 | CONFIG_BLK_DEV_UMEM=m |
diff --git a/arch/parisc/configs/c8000_defconfig b/arch/parisc/configs/c8000_defconfig index f11006361297..e1c8d2015c89 100644 --- a/arch/parisc/configs/c8000_defconfig +++ b/arch/parisc/configs/c8000_defconfig | |||
@@ -62,6 +62,8 @@ CONFIG_TIPC=m | |||
62 | CONFIG_LLC2=m | 62 | CONFIG_LLC2=m |
63 | CONFIG_DNS_RESOLVER=y | 63 | CONFIG_DNS_RESOLVER=y |
64 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 64 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
65 | CONFIG_DEVTMPFS=y | ||
66 | CONFIG_DEVTMPFS_MOUNT=y | ||
65 | # CONFIG_STANDALONE is not set | 67 | # CONFIG_STANDALONE is not set |
66 | CONFIG_PARPORT=y | 68 | CONFIG_PARPORT=y |
67 | CONFIG_PARPORT_PC=y | 69 | CONFIG_PARPORT_PC=y |
diff --git a/arch/parisc/configs/default_defconfig b/arch/parisc/configs/default_defconfig index dfe88f6c95c4..ba61495e1fa4 100644 --- a/arch/parisc/configs/default_defconfig +++ b/arch/parisc/configs/default_defconfig | |||
@@ -49,6 +49,8 @@ CONFIG_INET6_ESP=y | |||
49 | CONFIG_INET6_IPCOMP=y | 49 | CONFIG_INET6_IPCOMP=y |
50 | CONFIG_LLC2=m | 50 | CONFIG_LLC2=m |
51 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 51 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
52 | CONFIG_DEVTMPFS=y | ||
53 | CONFIG_DEVTMPFS_MOUNT=y | ||
52 | # CONFIG_STANDALONE is not set | 54 | # CONFIG_STANDALONE is not set |
53 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 55 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
54 | CONFIG_PARPORT=y | 56 | CONFIG_PARPORT=y |
diff --git a/arch/parisc/configs/generic-32bit_defconfig b/arch/parisc/configs/generic-32bit_defconfig new file mode 100644 index 000000000000..33b148f825ba --- /dev/null +++ b/arch/parisc/configs/generic-32bit_defconfig | |||
@@ -0,0 +1,328 @@ | |||
1 | CONFIG_LOCALVERSION="-32bit" | ||
2 | # CONFIG_LOCALVERSION_AUTO is not set | ||
3 | CONFIG_SYSVIPC=y | ||
4 | CONFIG_POSIX_MQUEUE=y | ||
5 | CONFIG_FHANDLE=y | ||
6 | CONFIG_BSD_PROCESS_ACCT=y | ||
7 | CONFIG_IKCONFIG=y | ||
8 | CONFIG_IKCONFIG_PROC=y | ||
9 | CONFIG_LOG_BUF_SHIFT=16 | ||
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_PERF_EVENTS=y | ||
17 | CONFIG_SLAB=y | ||
18 | CONFIG_MODULES=y | ||
19 | CONFIG_MODULE_UNLOAD=y | ||
20 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
21 | # CONFIG_LBDAF is not set | ||
22 | # CONFIG_BLK_DEV_BSG is not set | ||
23 | CONFIG_PA7100LC=y | ||
24 | CONFIG_SMP=y | ||
25 | CONFIG_HZ_100=y | ||
26 | CONFIG_IOMMU_CCIO=y | ||
27 | CONFIG_GSC_LASI=y | ||
28 | CONFIG_GSC_WAX=y | ||
29 | CONFIG_EISA=y | ||
30 | CONFIG_PCI=y | ||
31 | CONFIG_GSC_DINO=y | ||
32 | CONFIG_PCI_LBA=y | ||
33 | CONFIG_PCCARD=m | ||
34 | CONFIG_YENTA=m | ||
35 | # CONFIG_PDC_CHASSIS is not set | ||
36 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
37 | CONFIG_BINFMT_MISC=m | ||
38 | CONFIG_NET=y | ||
39 | CONFIG_PACKET=y | ||
40 | CONFIG_UNIX=y | ||
41 | CONFIG_XFRM_USER=m | ||
42 | CONFIG_NET_KEY=m | ||
43 | CONFIG_INET=y | ||
44 | CONFIG_IP_MULTICAST=y | ||
45 | CONFIG_IP_PNP=y | ||
46 | CONFIG_IP_PNP_BOOTP=y | ||
47 | CONFIG_INET_AH=m | ||
48 | CONFIG_INET_ESP=m | ||
49 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
50 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
51 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
52 | # CONFIG_INET_LRO is not set | ||
53 | CONFIG_INET_DIAG=m | ||
54 | CONFIG_LLC2=m | ||
55 | # CONFIG_WIRELESS is not set | ||
56 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
57 | CONFIG_DEVTMPFS=y | ||
58 | CONFIG_DEVTMPFS_MOUNT=y | ||
59 | # CONFIG_STANDALONE is not set | ||
60 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
61 | CONFIG_PARPORT=y | ||
62 | CONFIG_PARPORT_PC=m | ||
63 | CONFIG_PARPORT_1284=y | ||
64 | CONFIG_BLK_DEV_LOOP=y | ||
65 | CONFIG_BLK_DEV_CRYPTOLOOP=y | ||
66 | CONFIG_BLK_DEV_RAM=y | ||
67 | CONFIG_BLK_DEV_RAM_SIZE=6144 | ||
68 | CONFIG_IDE=y | ||
69 | CONFIG_BLK_DEV_IDECD=y | ||
70 | CONFIG_BLK_DEV_GENERIC=y | ||
71 | CONFIG_BLK_DEV_NS87415=y | ||
72 | CONFIG_BLK_DEV_SD=y | ||
73 | CONFIG_CHR_DEV_ST=y | ||
74 | CONFIG_BLK_DEV_SR=y | ||
75 | CONFIG_CHR_DEV_SG=y | ||
76 | CONFIG_SCSI_LASI700=y | ||
77 | CONFIG_SCSI_SYM53C8XX_2=y | ||
78 | CONFIG_SCSI_ZALON=y | ||
79 | CONFIG_SCSI_DH=y | ||
80 | CONFIG_ATA=y | ||
81 | CONFIG_MD=y | ||
82 | CONFIG_BLK_DEV_MD=m | ||
83 | CONFIG_MD_LINEAR=m | ||
84 | CONFIG_MD_RAID0=m | ||
85 | CONFIG_MD_RAID1=m | ||
86 | CONFIG_MD_RAID10=m | ||
87 | CONFIG_MD_RAID456=m | ||
88 | CONFIG_BLK_DEV_DM=y | ||
89 | CONFIG_DM_UEVENT=y | ||
90 | CONFIG_NETDEVICES=y | ||
91 | CONFIG_BONDING=m | ||
92 | CONFIG_DUMMY=m | ||
93 | CONFIG_TUN=m | ||
94 | # CONFIG_NET_VENDOR_3COM is not set | ||
95 | # CONFIG_NET_VENDOR_ADAPTEC is not set | ||
96 | # CONFIG_NET_VENDOR_ALTEON is not set | ||
97 | # CONFIG_NET_VENDOR_AMD is not set | ||
98 | # CONFIG_NET_VENDOR_ATHEROS is not set | ||
99 | # CONFIG_NET_CADENCE is not set | ||
100 | # CONFIG_NET_VENDOR_BROADCOM is not set | ||
101 | # CONFIG_NET_VENDOR_BROCADE is not set | ||
102 | # CONFIG_NET_VENDOR_CHELSIO is not set | ||
103 | # CONFIG_NET_VENDOR_CISCO is not set | ||
104 | CONFIG_NET_TULIP=y | ||
105 | CONFIG_TULIP=y | ||
106 | # CONFIG_NET_VENDOR_DLINK is not set | ||
107 | # CONFIG_NET_VENDOR_EMULEX is not set | ||
108 | # CONFIG_NET_VENDOR_EXAR is not set | ||
109 | # CONFIG_NET_VENDOR_HP is not set | ||
110 | CONFIG_LASI_82596=y | ||
111 | # CONFIG_NET_VENDOR_MELLANOX is not set | ||
112 | # CONFIG_NET_VENDOR_MICREL is not set | ||
113 | # CONFIG_NET_VENDOR_MYRI is not set | ||
114 | # CONFIG_NET_VENDOR_NATSEMI is not set | ||
115 | # CONFIG_NET_VENDOR_NVIDIA is not set | ||
116 | # CONFIG_NET_VENDOR_OKI is not set | ||
117 | # CONFIG_NET_PACKET_ENGINE is not set | ||
118 | # CONFIG_NET_VENDOR_QLOGIC is not set | ||
119 | # CONFIG_NET_VENDOR_REALTEK is not set | ||
120 | # CONFIG_NET_VENDOR_RDC is not set | ||
121 | # CONFIG_NET_VENDOR_SEEQ is not set | ||
122 | # CONFIG_NET_VENDOR_SILAN is not set | ||
123 | # CONFIG_NET_VENDOR_SIS is not set | ||
124 | # CONFIG_NET_VENDOR_STMICRO is not set | ||
125 | # CONFIG_NET_VENDOR_SUN is not set | ||
126 | # CONFIG_NET_VENDOR_TEHUTI is not set | ||
127 | # CONFIG_NET_VENDOR_TI is not set | ||
128 | # CONFIG_NET_VENDOR_VIA is not set | ||
129 | CONFIG_PPP=m | ||
130 | CONFIG_PPP_BSDCOMP=m | ||
131 | CONFIG_PPP_DEFLATE=m | ||
132 | CONFIG_PPPOE=m | ||
133 | # CONFIG_WLAN is not set | ||
134 | CONFIG_INPUT_POLLDEV=y | ||
135 | CONFIG_KEYBOARD_HIL_OLD=m | ||
136 | CONFIG_KEYBOARD_HIL=m | ||
137 | CONFIG_MOUSE_SERIAL=y | ||
138 | CONFIG_INPUT_MISC=y | ||
139 | CONFIG_INPUT_UINPUT=m | ||
140 | CONFIG_LEGACY_PTY_COUNT=64 | ||
141 | CONFIG_SERIAL_8250=y | ||
142 | # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set | ||
143 | CONFIG_SERIAL_8250_CONSOLE=y | ||
144 | CONFIG_SERIAL_8250_NR_UARTS=8 | ||
145 | CONFIG_SERIAL_8250_EXTENDED=y | ||
146 | CONFIG_SERIAL_8250_MANY_PORTS=y | ||
147 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
148 | CONFIG_PRINTER=m | ||
149 | CONFIG_PPDEV=m | ||
150 | # CONFIG_HW_RANDOM is not set | ||
151 | CONFIG_I2C=y | ||
152 | CONFIG_POWER_SUPPLY=y | ||
153 | # CONFIG_HWMON is not set | ||
154 | CONFIG_AGP=y | ||
155 | CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
156 | CONFIG_FB=y | ||
157 | CONFIG_FB_FOREIGN_ENDIAN=y | ||
158 | CONFIG_FB_MODE_HELPERS=y | ||
159 | CONFIG_FB_MATROX=m | ||
160 | CONFIG_FB_MATROX_G=y | ||
161 | CONFIG_FB_VOODOO1=m | ||
162 | CONFIG_DUMMY_CONSOLE_COLUMNS=128 | ||
163 | CONFIG_DUMMY_CONSOLE_ROWS=48 | ||
164 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
165 | CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y | ||
166 | CONFIG_LOGO=y | ||
167 | # CONFIG_LOGO_LINUX_MONO is not set | ||
168 | # CONFIG_LOGO_LINUX_VGA16 is not set | ||
169 | # CONFIG_LOGO_LINUX_CLUT224 is not set | ||
170 | CONFIG_SOUND=m | ||
171 | CONFIG_SND=m | ||
172 | CONFIG_SND_SEQUENCER=m | ||
173 | CONFIG_SND_MIXER_OSS=m | ||
174 | CONFIG_SND_PCM_OSS=m | ||
175 | CONFIG_SND_SEQUENCER_OSS=y | ||
176 | CONFIG_SND_DYNAMIC_MINORS=y | ||
177 | CONFIG_SND_AD1889=m | ||
178 | CONFIG_SND_HARMONY=m | ||
179 | CONFIG_HIDRAW=y | ||
180 | CONFIG_HID_A4TECH=y | ||
181 | CONFIG_HID_APPLE=y | ||
182 | CONFIG_HID_BELKIN=y | ||
183 | CONFIG_HID_CHERRY=y | ||
184 | CONFIG_HID_CHICONY=y | ||
185 | CONFIG_HID_CYPRESS=y | ||
186 | CONFIG_HID_DRAGONRISE=y | ||
187 | CONFIG_HID_EZKEY=y | ||
188 | CONFIG_HID_KYE=y | ||
189 | CONFIG_HID_GYRATION=y | ||
190 | CONFIG_HID_TWINHAN=y | ||
191 | CONFIG_HID_KENSINGTON=y | ||
192 | CONFIG_HID_LOGITECH=y | ||
193 | CONFIG_HID_LOGITECH_DJ=m | ||
194 | CONFIG_HID_MICROSOFT=y | ||
195 | CONFIG_HID_MONTEREY=y | ||
196 | CONFIG_HID_NTRIG=y | ||
197 | CONFIG_HID_ORTEK=y | ||
198 | CONFIG_HID_PANTHERLORD=y | ||
199 | CONFIG_HID_PETALYNX=y | ||
200 | CONFIG_HID_SAMSUNG=y | ||
201 | CONFIG_HID_SONY=y | ||
202 | CONFIG_HID_SUNPLUS=y | ||
203 | CONFIG_HID_GREENASIA=y | ||
204 | CONFIG_HID_SMARTJOYPLUS=y | ||
205 | CONFIG_HID_TOPSEED=y | ||
206 | CONFIG_HID_THRUSTMASTER=y | ||
207 | CONFIG_HID_ZEROPLUS=y | ||
208 | CONFIG_USB=y | ||
209 | CONFIG_USB_ANNOUNCE_NEW_DEVICES=y | ||
210 | CONFIG_USB_MON=y | ||
211 | CONFIG_USB_OHCI_HCD=y | ||
212 | CONFIG_USB_UHCI_HCD=y | ||
213 | CONFIG_NEW_LEDS=y | ||
214 | CONFIG_LEDS_CLASS=y | ||
215 | CONFIG_LEDS_TRIGGERS=y | ||
216 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
217 | CONFIG_LEDS_TRIGGER_IDE_DISK=y | ||
218 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
219 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
220 | CONFIG_DMADEVICES=y | ||
221 | CONFIG_AUXDISPLAY=y | ||
222 | CONFIG_EXT2_FS=y | ||
223 | CONFIG_EXT2_FS_XATTR=y | ||
224 | CONFIG_EXT2_FS_SECURITY=y | ||
225 | CONFIG_EXT3_FS=y | ||
226 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
227 | CONFIG_EXT3_FS_SECURITY=y | ||
228 | CONFIG_EXT4_FS=y | ||
229 | CONFIG_XFS_FS=m | ||
230 | CONFIG_XFS_QUOTA=y | ||
231 | CONFIG_XFS_RT=y | ||
232 | CONFIG_QUOTA=y | ||
233 | CONFIG_QUOTA_NETLINK_INTERFACE=y | ||
234 | CONFIG_QFMT_V2=y | ||
235 | CONFIG_AUTOFS4_FS=y | ||
236 | CONFIG_ISO9660_FS=y | ||
237 | CONFIG_JOLIET=y | ||
238 | CONFIG_VFAT_FS=y | ||
239 | CONFIG_PROC_KCORE=y | ||
240 | CONFIG_TMPFS=y | ||
241 | CONFIG_TMPFS_XATTR=y | ||
242 | CONFIG_NFS_FS=m | ||
243 | # CONFIG_NFS_V2 is not set | ||
244 | CONFIG_NFSD=m | ||
245 | CONFIG_NFSD_V3=y | ||
246 | CONFIG_CIFS=m | ||
247 | CONFIG_CIFS_WEAK_PW_HASH=y | ||
248 | CONFIG_CIFS_XATTR=y | ||
249 | CONFIG_CIFS_POSIX=y | ||
250 | # CONFIG_CIFS_DEBUG is not set | ||
251 | CONFIG_NLS_CODEPAGE_437=y | ||
252 | CONFIG_NLS_CODEPAGE_737=m | ||
253 | CONFIG_NLS_CODEPAGE_775=m | ||
254 | CONFIG_NLS_CODEPAGE_850=m | ||
255 | CONFIG_NLS_CODEPAGE_852=m | ||
256 | CONFIG_NLS_CODEPAGE_855=m | ||
257 | CONFIG_NLS_CODEPAGE_857=m | ||
258 | CONFIG_NLS_CODEPAGE_860=m | ||
259 | CONFIG_NLS_CODEPAGE_861=m | ||
260 | CONFIG_NLS_CODEPAGE_862=m | ||
261 | CONFIG_NLS_CODEPAGE_863=m | ||
262 | CONFIG_NLS_CODEPAGE_864=m | ||
263 | CONFIG_NLS_CODEPAGE_865=m | ||
264 | CONFIG_NLS_CODEPAGE_866=m | ||
265 | CONFIG_NLS_CODEPAGE_869=m | ||
266 | CONFIG_NLS_CODEPAGE_936=m | ||
267 | CONFIG_NLS_CODEPAGE_950=m | ||
268 | CONFIG_NLS_CODEPAGE_932=m | ||
269 | CONFIG_NLS_CODEPAGE_949=m | ||
270 | CONFIG_NLS_CODEPAGE_874=m | ||
271 | CONFIG_NLS_ISO8859_8=m | ||
272 | CONFIG_NLS_CODEPAGE_1250=y | ||
273 | CONFIG_NLS_CODEPAGE_1251=m | ||
274 | CONFIG_NLS_ASCII=m | ||
275 | CONFIG_NLS_ISO8859_1=y | ||
276 | CONFIG_NLS_ISO8859_2=m | ||
277 | CONFIG_NLS_ISO8859_3=m | ||
278 | CONFIG_NLS_ISO8859_4=m | ||
279 | CONFIG_NLS_ISO8859_5=m | ||
280 | CONFIG_NLS_ISO8859_6=m | ||
281 | CONFIG_NLS_ISO8859_7=m | ||
282 | CONFIG_NLS_ISO8859_9=m | ||
283 | CONFIG_NLS_ISO8859_13=m | ||
284 | CONFIG_NLS_ISO8859_14=m | ||
285 | CONFIG_NLS_ISO8859_15=m | ||
286 | CONFIG_NLS_KOI8_R=m | ||
287 | CONFIG_NLS_KOI8_U=m | ||
288 | CONFIG_NLS_UTF8=y | ||
289 | CONFIG_UNUSED_SYMBOLS=y | ||
290 | CONFIG_DEBUG_FS=y | ||
291 | CONFIG_MAGIC_SYSRQ=y | ||
292 | CONFIG_DEBUG_MEMORY_INIT=y | ||
293 | CONFIG_DEBUG_STACKOVERFLOW=y | ||
294 | CONFIG_DEBUG_SHIRQ=y | ||
295 | CONFIG_DETECT_HUNG_TASK=y | ||
296 | CONFIG_TIMER_STATS=y | ||
297 | CONFIG_DEBUG_RT_MUTEXES=y | ||
298 | CONFIG_RT_MUTEX_TESTER=y | ||
299 | CONFIG_DEBUG_SPINLOCK=y | ||
300 | CONFIG_DEBUG_MUTEXES=y | ||
301 | CONFIG_RCU_CPU_STALL_INFO=y | ||
302 | CONFIG_LATENCYTOP=y | ||
303 | CONFIG_LKDTM=m | ||
304 | CONFIG_KEYS=y | ||
305 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
306 | CONFIG_CRYPTO_NULL=m | ||
307 | CONFIG_CRYPTO_TEST=m | ||
308 | CONFIG_CRYPTO_HMAC=y | ||
309 | CONFIG_CRYPTO_MD5=y | ||
310 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
311 | CONFIG_CRYPTO_SHA1=y | ||
312 | CONFIG_CRYPTO_SHA512=m | ||
313 | CONFIG_CRYPTO_TGR192=m | ||
314 | CONFIG_CRYPTO_WP512=m | ||
315 | CONFIG_CRYPTO_ANUBIS=m | ||
316 | CONFIG_CRYPTO_BLOWFISH=m | ||
317 | CONFIG_CRYPTO_CAST5=m | ||
318 | CONFIG_CRYPTO_CAST6=m | ||
319 | CONFIG_CRYPTO_DES=y | ||
320 | CONFIG_CRYPTO_KHAZAD=m | ||
321 | CONFIG_CRYPTO_SERPENT=m | ||
322 | CONFIG_CRYPTO_TEA=m | ||
323 | CONFIG_CRYPTO_TWOFISH=m | ||
324 | CONFIG_CRYPTO_DEFLATE=y | ||
325 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
326 | CONFIG_CRC_CCITT=m | ||
327 | CONFIG_CRC_T10DIF=y | ||
328 | CONFIG_FONTS=y | ||
diff --git a/arch/parisc/configs/generic-64bit_defconfig b/arch/parisc/configs/generic-64bit_defconfig new file mode 100644 index 000000000000..5874cebee077 --- /dev/null +++ b/arch/parisc/configs/generic-64bit_defconfig | |||
@@ -0,0 +1,346 @@ | |||
1 | CONFIG_LOCALVERSION="-64bit" | ||
2 | # CONFIG_LOCALVERSION_AUTO is not set | ||
3 | CONFIG_SYSVIPC=y | ||
4 | CONFIG_POSIX_MQUEUE=y | ||
5 | CONFIG_BSD_PROCESS_ACCT=y | ||
6 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
7 | CONFIG_TASKSTATS=y | ||
8 | CONFIG_TASK_DELAY_ACCT=y | ||
9 | CONFIG_TASK_XACCT=y | ||
10 | CONFIG_TASK_IO_ACCOUNTING=y | ||
11 | # CONFIG_UTS_NS is not set | ||
12 | # CONFIG_IPC_NS is not set | ||
13 | # CONFIG_PID_NS is not set | ||
14 | # CONFIG_NET_NS is not set | ||
15 | CONFIG_RELAY=y | ||
16 | CONFIG_BLK_DEV_INITRD=y | ||
17 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
18 | # CONFIG_COMPAT_BRK is not set | ||
19 | CONFIG_MODULES=y | ||
20 | CONFIG_MODULE_FORCE_LOAD=y | ||
21 | CONFIG_MODULE_UNLOAD=y | ||
22 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
23 | CONFIG_MODVERSIONS=y | ||
24 | CONFIG_BLK_DEV_INTEGRITY=y | ||
25 | # CONFIG_IOSCHED_DEADLINE is not set | ||
26 | CONFIG_PA8X00=y | ||
27 | CONFIG_MLONGCALLS=y | ||
28 | CONFIG_64BIT=y | ||
29 | CONFIG_SMP=y | ||
30 | # CONFIG_COMPACTION is not set | ||
31 | CONFIG_HPPB=y | ||
32 | CONFIG_IOMMU_CCIO=y | ||
33 | CONFIG_GSC_LASI=y | ||
34 | CONFIG_GSC_WAX=y | ||
35 | CONFIG_PCI=y | ||
36 | CONFIG_PCI_STUB=m | ||
37 | CONFIG_PCI_IOV=y | ||
38 | CONFIG_GSC_DINO=y | ||
39 | CONFIG_PCI_LBA=y | ||
40 | CONFIG_BINFMT_MISC=m | ||
41 | CONFIG_NET=y | ||
42 | CONFIG_PACKET=y | ||
43 | CONFIG_UNIX=y | ||
44 | CONFIG_XFRM_USER=m | ||
45 | CONFIG_XFRM_SUB_POLICY=y | ||
46 | CONFIG_XFRM_MIGRATE=y | ||
47 | CONFIG_INET=y | ||
48 | CONFIG_IP_MULTICAST=y | ||
49 | CONFIG_IP_PNP=y | ||
50 | CONFIG_IP_PNP_BOOTP=y | ||
51 | CONFIG_INET_AH=m | ||
52 | CONFIG_INET_ESP=m | ||
53 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | ||
54 | CONFIG_INET_XFRM_MODE_TUNNEL=m | ||
55 | CONFIG_INET_XFRM_MODE_BEET=m | ||
56 | CONFIG_INET_LRO=m | ||
57 | CONFIG_INET_DIAG=m | ||
58 | CONFIG_NETFILTER=y | ||
59 | # CONFIG_NETFILTER_ADVANCED is not set | ||
60 | CONFIG_NETFILTER_NETLINK_LOG=y | ||
61 | CONFIG_DCB=y | ||
62 | # CONFIG_WIRELESS is not set | ||
63 | CONFIG_DEVTMPFS=y | ||
64 | CONFIG_DEVTMPFS_MOUNT=y | ||
65 | CONFIG_BLK_DEV_LOOP=y | ||
66 | CONFIG_IDE=y | ||
67 | CONFIG_IDE_GD=m | ||
68 | CONFIG_IDE_GD_ATAPI=y | ||
69 | CONFIG_BLK_DEV_IDECD=m | ||
70 | CONFIG_BLK_DEV_NS87415=y | ||
71 | CONFIG_BLK_DEV_SIIMAGE=y | ||
72 | # CONFIG_SCSI_PROC_FS is not set | ||
73 | CONFIG_BLK_DEV_SD=y | ||
74 | CONFIG_BLK_DEV_SR=y | ||
75 | CONFIG_SCSI_ISCSI_ATTRS=y | ||
76 | CONFIG_SCSI_SRP_ATTRS=y | ||
77 | CONFIG_ISCSI_BOOT_SYSFS=y | ||
78 | CONFIG_SCSI_MPT2SAS=y | ||
79 | CONFIG_SCSI_LASI700=m | ||
80 | CONFIG_SCSI_SYM53C8XX_2=y | ||
81 | CONFIG_SCSI_ZALON=y | ||
82 | CONFIG_SCSI_QLA_ISCSI=m | ||
83 | CONFIG_SCSI_DH=y | ||
84 | CONFIG_ATA=y | ||
85 | CONFIG_ATA_GENERIC=y | ||
86 | CONFIG_MD=y | ||
87 | CONFIG_MD_LINEAR=m | ||
88 | CONFIG_MD_RAID0=m | ||
89 | CONFIG_BLK_DEV_DM=m | ||
90 | CONFIG_DM_RAID=m | ||
91 | CONFIG_DM_UEVENT=y | ||
92 | CONFIG_FUSION=y | ||
93 | CONFIG_FUSION_SPI=y | ||
94 | CONFIG_FUSION_SAS=y | ||
95 | CONFIG_NETDEVICES=y | ||
96 | CONFIG_DUMMY=m | ||
97 | CONFIG_MACVLAN=m | ||
98 | CONFIG_MACVTAP=m | ||
99 | CONFIG_NETCONSOLE=m | ||
100 | CONFIG_NETCONSOLE_DYNAMIC=y | ||
101 | CONFIG_TUN=y | ||
102 | # CONFIG_NET_VENDOR_3COM is not set | ||
103 | # CONFIG_NET_VENDOR_ADAPTEC is not set | ||
104 | # CONFIG_NET_VENDOR_ALTEON is not set | ||
105 | # CONFIG_NET_VENDOR_AMD is not set | ||
106 | # CONFIG_NET_VENDOR_ATHEROS is not set | ||
107 | # CONFIG_NET_CADENCE is not set | ||
108 | # CONFIG_NET_VENDOR_BROADCOM is not set | ||
109 | # CONFIG_NET_VENDOR_BROCADE is not set | ||
110 | # CONFIG_NET_VENDOR_CHELSIO is not set | ||
111 | # CONFIG_NET_VENDOR_CISCO is not set | ||
112 | CONFIG_NET_TULIP=y | ||
113 | CONFIG_TULIP=y | ||
114 | # CONFIG_NET_VENDOR_DLINK is not set | ||
115 | # CONFIG_NET_VENDOR_EMULEX is not set | ||
116 | # CONFIG_NET_VENDOR_EXAR is not set | ||
117 | CONFIG_HP100=m | ||
118 | CONFIG_E1000=y | ||
119 | CONFIG_LASI_82596=y | ||
120 | # CONFIG_NET_VENDOR_MARVELL is not set | ||
121 | # CONFIG_NET_VENDOR_MELLANOX is not set | ||
122 | # CONFIG_NET_VENDOR_MICREL is not set | ||
123 | # CONFIG_NET_VENDOR_MYRI is not set | ||
124 | # CONFIG_NET_VENDOR_NATSEMI is not set | ||
125 | # CONFIG_NET_VENDOR_NVIDIA is not set | ||
126 | # CONFIG_NET_VENDOR_OKI is not set | ||
127 | CONFIG_QLA3XXX=m | ||
128 | CONFIG_QLCNIC=m | ||
129 | CONFIG_QLGE=m | ||
130 | # CONFIG_NET_VENDOR_REALTEK is not set | ||
131 | # CONFIG_NET_VENDOR_RDC is not set | ||
132 | # CONFIG_NET_VENDOR_SEEQ is not set | ||
133 | # CONFIG_NET_VENDOR_SILAN is not set | ||
134 | # CONFIG_NET_VENDOR_SIS is not set | ||
135 | # CONFIG_NET_VENDOR_SMSC is not set | ||
136 | # CONFIG_NET_VENDOR_STMICRO is not set | ||
137 | # CONFIG_NET_VENDOR_SUN is not set | ||
138 | # CONFIG_NET_VENDOR_TEHUTI is not set | ||
139 | # CONFIG_NET_VENDOR_TI is not set | ||
140 | # CONFIG_NET_VENDOR_VIA is not set | ||
141 | # CONFIG_NET_VENDOR_WIZNET is not set | ||
142 | CONFIG_PHYLIB=y | ||
143 | CONFIG_MARVELL_PHY=m | ||
144 | CONFIG_DAVICOM_PHY=m | ||
145 | CONFIG_QSEMI_PHY=m | ||
146 | CONFIG_LXT_PHY=m | ||
147 | CONFIG_CICADA_PHY=m | ||
148 | CONFIG_VITESSE_PHY=m | ||
149 | CONFIG_SMSC_PHY=m | ||
150 | CONFIG_BROADCOM_PHY=m | ||
151 | CONFIG_ICPLUS_PHY=m | ||
152 | CONFIG_REALTEK_PHY=m | ||
153 | CONFIG_NATIONAL_PHY=m | ||
154 | CONFIG_STE10XP=m | ||
155 | CONFIG_LSI_ET1011C_PHY=m | ||
156 | CONFIG_MDIO_BITBANG=m | ||
157 | CONFIG_SLIP=m | ||
158 | CONFIG_SLIP_COMPRESSED=y | ||
159 | CONFIG_SLIP_SMART=y | ||
160 | CONFIG_SLIP_MODE_SLIP6=y | ||
161 | # CONFIG_WLAN is not set | ||
162 | CONFIG_INPUT_EVDEV=y | ||
163 | # CONFIG_KEYBOARD_HIL_OLD is not set | ||
164 | # CONFIG_KEYBOARD_HIL is not set | ||
165 | # CONFIG_INPUT_MOUSE is not set | ||
166 | CONFIG_INPUT_MISC=y | ||
167 | CONFIG_SERIO_SERPORT=m | ||
168 | # CONFIG_HP_SDC is not set | ||
169 | CONFIG_SERIO_RAW=m | ||
170 | CONFIG_DEVPTS_MULTIPLE_INSTANCES=y | ||
171 | # CONFIG_LEGACY_PTYS is not set | ||
172 | CONFIG_NOZOMI=m | ||
173 | # CONFIG_DEVKMEM is not set | ||
174 | CONFIG_SERIAL_8250=y | ||
175 | # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set | ||
176 | CONFIG_SERIAL_8250_CONSOLE=y | ||
177 | CONFIG_SERIAL_8250_NR_UARTS=8 | ||
178 | CONFIG_SERIAL_8250_RUNTIME_UARTS=8 | ||
179 | CONFIG_SERIAL_8250_EXTENDED=y | ||
180 | CONFIG_SERIAL_8250_MANY_PORTS=y | ||
181 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
182 | CONFIG_SERIAL_JSM=m | ||
183 | CONFIG_IPMI_HANDLER=y | ||
184 | CONFIG_IPMI_DEVICE_INTERFACE=y | ||
185 | CONFIG_IPMI_SI=y | ||
186 | # CONFIG_HW_RANDOM is not set | ||
187 | CONFIG_TCG_TPM=m | ||
188 | CONFIG_TCG_ATMEL=m | ||
189 | CONFIG_PTP_1588_CLOCK=m | ||
190 | CONFIG_SENSORS_I5K_AMB=m | ||
191 | CONFIG_SENSORS_F71882FG=m | ||
192 | CONFIG_SENSORS_PC87427=m | ||
193 | CONFIG_SENSORS_VT1211=m | ||
194 | CONFIG_SENSORS_VT8231=m | ||
195 | CONFIG_SENSORS_W83627EHF=m | ||
196 | CONFIG_WATCHDOG=y | ||
197 | CONFIG_SOFT_WATCHDOG=m | ||
198 | CONFIG_SSB=m | ||
199 | CONFIG_SSB_DRIVER_PCICORE=y | ||
200 | CONFIG_HTC_PASIC3=m | ||
201 | CONFIG_LPC_SCH=m | ||
202 | CONFIG_MFD_SM501=m | ||
203 | CONFIG_REGULATOR=y | ||
204 | CONFIG_REGULATOR_FIXED_VOLTAGE=m | ||
205 | CONFIG_REGULATOR_USERSPACE_CONSUMER=m | ||
206 | CONFIG_MEDIA_SUPPORT=m | ||
207 | CONFIG_AGP=y | ||
208 | CONFIG_AGP_PARISC=y | ||
209 | CONFIG_DRM=y | ||
210 | CONFIG_DRM_RADEON=y | ||
211 | CONFIG_DRM_RADEON_UMS=y | ||
212 | CONFIG_FIRMWARE_EDID=y | ||
213 | CONFIG_FB_MODE_HELPERS=y | ||
214 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
215 | # CONFIG_BACKLIGHT_GENERIC is not set | ||
216 | CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y | ||
217 | CONFIG_LOGO=y | ||
218 | # CONFIG_LOGO_LINUX_MONO is not set | ||
219 | CONFIG_HID=m | ||
220 | CONFIG_HIDRAW=y | ||
221 | CONFIG_HID_DRAGONRISE=m | ||
222 | CONFIG_DRAGONRISE_FF=y | ||
223 | CONFIG_HID_KYE=m | ||
224 | CONFIG_HID_GYRATION=m | ||
225 | CONFIG_HID_TWINHAN=m | ||
226 | CONFIG_LOGITECH_FF=y | ||
227 | CONFIG_LOGIRUMBLEPAD2_FF=y | ||
228 | CONFIG_HID_NTRIG=m | ||
229 | CONFIG_HID_PANTHERLORD=m | ||
230 | CONFIG_PANTHERLORD_FF=y | ||
231 | CONFIG_HID_PETALYNX=m | ||
232 | CONFIG_HID_SAMSUNG=m | ||
233 | CONFIG_HID_SONY=m | ||
234 | CONFIG_HID_SUNPLUS=m | ||
235 | CONFIG_HID_GREENASIA=m | ||
236 | CONFIG_GREENASIA_FF=y | ||
237 | CONFIG_HID_SMARTJOYPLUS=m | ||
238 | CONFIG_SMARTJOYPLUS_FF=y | ||
239 | CONFIG_HID_TOPSEED=m | ||
240 | CONFIG_HID_THRUSTMASTER=m | ||
241 | CONFIG_THRUSTMASTER_FF=y | ||
242 | CONFIG_HID_ZEROPLUS=m | ||
243 | CONFIG_ZEROPLUS_FF=y | ||
244 | CONFIG_USB_HID=m | ||
245 | CONFIG_HID_PID=y | ||
246 | CONFIG_USB_HIDDEV=y | ||
247 | CONFIG_USB=y | ||
248 | CONFIG_USB_DEBUG=y | ||
249 | CONFIG_USB_ANNOUNCE_NEW_DEVICES=y | ||
250 | CONFIG_USB_DYNAMIC_MINORS=y | ||
251 | CONFIG_USB_MON=m | ||
252 | CONFIG_USB_WUSB_CBAF=m | ||
253 | CONFIG_USB_XHCI_HCD=m | ||
254 | CONFIG_USB_EHCI_HCD=m | ||
255 | CONFIG_USB_OHCI_HCD=m | ||
256 | CONFIG_USB_R8A66597_HCD=m | ||
257 | CONFIG_USB_ACM=m | ||
258 | CONFIG_USB_PRINTER=m | ||
259 | CONFIG_USB_WDM=m | ||
260 | CONFIG_USB_TMC=m | ||
261 | CONFIG_NEW_LEDS=y | ||
262 | CONFIG_LEDS_CLASS=y | ||
263 | CONFIG_LEDS_TRIGGERS=y | ||
264 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
265 | CONFIG_LEDS_TRIGGER_ONESHOT=y | ||
266 | CONFIG_LEDS_TRIGGER_IDE_DISK=y | ||
267 | CONFIG_LEDS_TRIGGER_HEARTBEAT=m | ||
268 | CONFIG_LEDS_TRIGGER_BACKLIGHT=m | ||
269 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=m | ||
270 | CONFIG_UIO=y | ||
271 | CONFIG_UIO_PDRV_GENIRQ=m | ||
272 | CONFIG_UIO_AEC=m | ||
273 | CONFIG_UIO_SERCOS3=m | ||
274 | CONFIG_UIO_PCI_GENERIC=m | ||
275 | CONFIG_STAGING=y | ||
276 | # CONFIG_NET_VENDOR_SILICOM is not set | ||
277 | CONFIG_EXT2_FS=y | ||
278 | CONFIG_EXT2_FS_XATTR=y | ||
279 | CONFIG_EXT2_FS_SECURITY=y | ||
280 | CONFIG_EXT3_FS=y | ||
281 | CONFIG_EXT3_FS_SECURITY=y | ||
282 | CONFIG_EXT4_FS=y | ||
283 | CONFIG_EXT4_FS_SECURITY=y | ||
284 | CONFIG_XFS_FS=m | ||
285 | CONFIG_BTRFS_FS=m | ||
286 | CONFIG_QUOTA=y | ||
287 | CONFIG_QUOTA_NETLINK_INTERFACE=y | ||
288 | CONFIG_QFMT_V2=y | ||
289 | CONFIG_AUTOFS4_FS=y | ||
290 | CONFIG_FUSE_FS=y | ||
291 | CONFIG_CUSE=y | ||
292 | CONFIG_ISO9660_FS=y | ||
293 | CONFIG_UDF_FS=y | ||
294 | CONFIG_VFAT_FS=m | ||
295 | CONFIG_PROC_KCORE=y | ||
296 | CONFIG_TMPFS=y | ||
297 | CONFIG_TMPFS_XATTR=y | ||
298 | CONFIG_CONFIGFS_FS=y | ||
299 | CONFIG_SYSV_FS=y | ||
300 | CONFIG_NFS_FS=m | ||
301 | CONFIG_NFS_V4=m | ||
302 | CONFIG_NFS_V4_1=y | ||
303 | CONFIG_NFSD=m | ||
304 | CONFIG_NFSD_V4=y | ||
305 | CONFIG_NLS_DEFAULT="utf8" | ||
306 | CONFIG_NLS_CODEPAGE_437=m | ||
307 | CONFIG_NLS_CODEPAGE_850=m | ||
308 | CONFIG_NLS_CODEPAGE_852=m | ||
309 | CONFIG_NLS_CODEPAGE_1250=m | ||
310 | CONFIG_NLS_CODEPAGE_1251=m | ||
311 | CONFIG_NLS_ASCII=m | ||
312 | CONFIG_NLS_ISO8859_1=m | ||
313 | CONFIG_NLS_ISO8859_2=m | ||
314 | CONFIG_NLS_UTF8=m | ||
315 | CONFIG_PRINTK_TIME=y | ||
316 | CONFIG_STRIP_ASM_SYMS=y | ||
317 | CONFIG_UNUSED_SYMBOLS=y | ||
318 | CONFIG_DEBUG_FS=y | ||
319 | CONFIG_MAGIC_SYSRQ=y | ||
320 | CONFIG_DEBUG_KERNEL=y | ||
321 | CONFIG_DEBUG_STACKOVERFLOW=y | ||
322 | CONFIG_LOCKUP_DETECTOR=y | ||
323 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y | ||
324 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y | ||
325 | # CONFIG_SCHED_DEBUG is not set | ||
326 | CONFIG_TIMER_STATS=y | ||
327 | CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y | ||
328 | CONFIG_CRYPTO_MANAGER=y | ||
329 | CONFIG_CRYPTO_ECB=m | ||
330 | CONFIG_CRYPTO_PCBC=m | ||
331 | CONFIG_CRYPTO_MD4=m | ||
332 | CONFIG_CRYPTO_MD5=y | ||
333 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
334 | CONFIG_CRYPTO_SHA256=m | ||
335 | CONFIG_CRYPTO_ARC4=m | ||
336 | CONFIG_CRYPTO_FCRYPT=m | ||
337 | CONFIG_CRYPTO_DEFLATE=m | ||
338 | # CONFIG_CRYPTO_HW is not set | ||
339 | CONFIG_CRC_CCITT=m | ||
340 | CONFIG_LIBCRC32C=y | ||
341 | CONFIG_XZ_DEC_X86=y | ||
342 | CONFIG_XZ_DEC_POWERPC=y | ||
343 | CONFIG_XZ_DEC_IA64=y | ||
344 | CONFIG_XZ_DEC_ARM=y | ||
345 | CONFIG_XZ_DEC_ARMTHUMB=y | ||
346 | CONFIG_XZ_DEC_SPARC=y | ||
diff --git a/arch/parisc/include/asm/Kbuild b/arch/parisc/include/asm/Kbuild index ff4c9faed546..a603b9ebe54c 100644 --- a/arch/parisc/include/asm/Kbuild +++ b/arch/parisc/include/asm/Kbuild | |||
@@ -4,3 +4,4 @@ generic-y += word-at-a-time.h auxvec.h user.h cputime.h emergency-restart.h \ | |||
4 | div64.h irq_regs.h kdebug.h kvm_para.h local64.h local.h param.h \ | 4 | div64.h irq_regs.h kdebug.h kvm_para.h local64.h local.h param.h \ |
5 | poll.h xor.h clkdev.h exec.h | 5 | poll.h xor.h clkdev.h exec.h |
6 | generic-y += trace_clock.h | 6 | generic-y += trace_clock.h |
7 | generic-y += preempt.h | ||
diff --git a/arch/parisc/include/asm/assembly.h b/arch/parisc/include/asm/assembly.h index 0da848232344..b3069fd83468 100644 --- a/arch/parisc/include/asm/assembly.h +++ b/arch/parisc/include/asm/assembly.h | |||
@@ -515,5 +515,17 @@ | |||
515 | nop /* 7 */ | 515 | nop /* 7 */ |
516 | .endm | 516 | .endm |
517 | 517 | ||
518 | /* | ||
519 | * ASM_EXCEPTIONTABLE_ENTRY | ||
520 | * | ||
521 | * Creates an exception table entry. | ||
522 | * Do not convert to a assembler macro. This won't work. | ||
523 | */ | ||
524 | #define ASM_EXCEPTIONTABLE_ENTRY(fault_addr, except_addr) \ | ||
525 | .section __ex_table,"aw" ! \ | ||
526 | ASM_ULONG_INSN fault_addr, except_addr ! \ | ||
527 | .previous | ||
528 | |||
529 | |||
518 | #endif /* __ASSEMBLY__ */ | 530 | #endif /* __ASSEMBLY__ */ |
519 | #endif | 531 | #endif |
diff --git a/arch/parisc/include/asm/delay.h b/arch/parisc/include/asm/delay.h index 912ee7e6a579..08e58e679e3e 100644 --- a/arch/parisc/include/asm/delay.h +++ b/arch/parisc/include/asm/delay.h | |||
@@ -1,15 +1,5 @@ | |||
1 | #ifndef _PARISC_DELAY_H | 1 | #ifndef _ASM_PARISC_DELAY_H |
2 | #define _PARISC_DELAY_H | 2 | #define _ASM_PARISC_DELAY_H |
3 | |||
4 | #include <asm/special_insns.h> /* for mfctl() */ | ||
5 | #include <asm/processor.h> /* for boot_cpu_data */ | ||
6 | |||
7 | |||
8 | /* | ||
9 | * Copyright (C) 1993 Linus Torvalds | ||
10 | * | ||
11 | * Delay routines | ||
12 | */ | ||
13 | 3 | ||
14 | static __inline__ void __delay(unsigned long loops) { | 4 | static __inline__ void __delay(unsigned long loops) { |
15 | asm volatile( | 5 | asm volatile( |
@@ -19,25 +9,14 @@ static __inline__ void __delay(unsigned long loops) { | |||
19 | : "=r" (loops) : "0" (loops)); | 9 | : "=r" (loops) : "0" (loops)); |
20 | } | 10 | } |
21 | 11 | ||
22 | static __inline__ void __cr16_delay(unsigned long clocks) { | 12 | extern void __udelay(unsigned long usecs); |
23 | unsigned long start; | 13 | extern void __udelay_bad(unsigned long usecs); |
24 | |||
25 | /* | ||
26 | * Note: Due to unsigned math, cr16 rollovers shouldn't be | ||
27 | * a problem here. However, on 32 bit, we need to make sure | ||
28 | * we don't pass in too big a value. The current default | ||
29 | * value of MAX_UDELAY_MS should help prevent this. | ||
30 | */ | ||
31 | 14 | ||
32 | start = mfctl(16); | 15 | static inline void udelay(unsigned long usecs) |
33 | while ((mfctl(16) - start) < clocks) | 16 | { |
34 | ; | 17 | if (__builtin_constant_p(usecs) && (usecs) > 20000) |
18 | __udelay_bad(usecs); | ||
19 | __udelay(usecs); | ||
35 | } | 20 | } |
36 | 21 | ||
37 | static __inline__ void __udelay(unsigned long usecs) { | 22 | #endif /* _ASM_PARISC_DELAY_H */ |
38 | __cr16_delay(usecs * ((unsigned long)boot_cpu_data.cpu_hz / 1000000UL)); | ||
39 | } | ||
40 | |||
41 | #define udelay(n) __udelay(n) | ||
42 | |||
43 | #endif /* defined(_PARISC_DELAY_H) */ | ||
diff --git a/arch/parisc/include/asm/hardirq.h b/arch/parisc/include/asm/hardirq.h index 241c34518465..9b3bd039a609 100644 --- a/arch/parisc/include/asm/hardirq.h +++ b/arch/parisc/include/asm/hardirq.h | |||
@@ -21,7 +21,6 @@ typedef struct { | |||
21 | unsigned int irq_stack_usage; | 21 | unsigned int irq_stack_usage; |
22 | #ifdef CONFIG_SMP | 22 | #ifdef CONFIG_SMP |
23 | unsigned int irq_resched_count; | 23 | unsigned int irq_resched_count; |
24 | unsigned int irq_call_count; | ||
25 | #endif | 24 | #endif |
26 | unsigned int irq_unaligned_count; | 25 | unsigned int irq_unaligned_count; |
27 | unsigned int irq_fpassist_count; | 26 | unsigned int irq_fpassist_count; |
diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h index fc987a1c12a8..f213f5b4c423 100644 --- a/arch/parisc/include/asm/pgalloc.h +++ b/arch/parisc/include/asm/pgalloc.h | |||
@@ -121,8 +121,12 @@ static inline pgtable_t | |||
121 | pte_alloc_one(struct mm_struct *mm, unsigned long address) | 121 | pte_alloc_one(struct mm_struct *mm, unsigned long address) |
122 | { | 122 | { |
123 | struct page *page = alloc_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); | 123 | struct page *page = alloc_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); |
124 | if (page) | 124 | if (!page) |
125 | pgtable_page_ctor(page); | 125 | return NULL; |
126 | if (!pgtable_page_ctor(page)) { | ||
127 | __free_page(page); | ||
128 | return NULL; | ||
129 | } | ||
126 | return page; | 130 | return page; |
127 | } | 131 | } |
128 | 132 | ||
diff --git a/arch/parisc/include/asm/ptrace.h b/arch/parisc/include/asm/ptrace.h index a2db278a5def..3c3cb004b7e2 100644 --- a/arch/parisc/include/asm/ptrace.h +++ b/arch/parisc/include/asm/ptrace.h | |||
@@ -19,5 +19,9 @@ | |||
19 | #define user_stack_pointer(regs) ((regs)->gr[30]) | 19 | #define user_stack_pointer(regs) ((regs)->gr[30]) |
20 | unsigned long profile_pc(struct pt_regs *); | 20 | unsigned long profile_pc(struct pt_regs *); |
21 | 21 | ||
22 | static inline unsigned long regs_return_value(struct pt_regs *regs) | ||
23 | { | ||
24 | return regs->gr[20]; | ||
25 | } | ||
22 | 26 | ||
23 | #endif | 27 | #endif |
diff --git a/arch/parisc/include/asm/thread_info.h b/arch/parisc/include/asm/thread_info.h index 540c88fa8f86..bc7cf120106b 100644 --- a/arch/parisc/include/asm/thread_info.h +++ b/arch/parisc/include/asm/thread_info.h | |||
@@ -59,6 +59,7 @@ struct thread_info { | |||
59 | #define TIF_32BIT 4 /* 32 bit binary */ | 59 | #define TIF_32BIT 4 /* 32 bit binary */ |
60 | #define TIF_MEMDIE 5 /* is terminating due to OOM killer */ | 60 | #define TIF_MEMDIE 5 /* is terminating due to OOM killer */ |
61 | #define TIF_RESTORE_SIGMASK 6 /* restore saved signal mask */ | 61 | #define TIF_RESTORE_SIGMASK 6 /* restore saved signal mask */ |
62 | #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ | ||
62 | #define TIF_NOTIFY_RESUME 8 /* callback before returning to user */ | 63 | #define TIF_NOTIFY_RESUME 8 /* callback before returning to user */ |
63 | #define TIF_SINGLESTEP 9 /* single stepping? */ | 64 | #define TIF_SINGLESTEP 9 /* single stepping? */ |
64 | #define TIF_BLOCKSTEP 10 /* branch stepping? */ | 65 | #define TIF_BLOCKSTEP 10 /* branch stepping? */ |
@@ -68,6 +69,7 @@ struct thread_info { | |||
68 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) | 69 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) |
69 | #define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG) | 70 | #define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG) |
70 | #define _TIF_32BIT (1 << TIF_32BIT) | 71 | #define _TIF_32BIT (1 << TIF_32BIT) |
72 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) | ||
71 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) | 73 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) |
72 | #define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) | 74 | #define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) |
73 | #define _TIF_BLOCKSTEP (1 << TIF_BLOCKSTEP) | 75 | #define _TIF_BLOCKSTEP (1 << TIF_BLOCKSTEP) |
@@ -75,7 +77,7 @@ struct thread_info { | |||
75 | #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \ | 77 | #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \ |
76 | _TIF_NEED_RESCHED) | 78 | _TIF_NEED_RESCHED) |
77 | #define _TIF_SYSCALL_TRACE_MASK (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | \ | 79 | #define _TIF_SYSCALL_TRACE_MASK (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | \ |
78 | _TIF_BLOCKSTEP) | 80 | _TIF_BLOCKSTEP | _TIF_SYSCALL_AUDIT) |
79 | 81 | ||
80 | #endif /* __KERNEL__ */ | 82 | #endif /* __KERNEL__ */ |
81 | 83 | ||
diff --git a/arch/parisc/include/asm/traps.h b/arch/parisc/include/asm/traps.h index 1945f995f2df..4736020ba5ea 100644 --- a/arch/parisc/include/asm/traps.h +++ b/arch/parisc/include/asm/traps.h | |||
@@ -6,7 +6,7 @@ struct pt_regs; | |||
6 | 6 | ||
7 | /* traps.c */ | 7 | /* traps.c */ |
8 | void parisc_terminate(char *msg, struct pt_regs *regs, | 8 | void parisc_terminate(char *msg, struct pt_regs *regs, |
9 | int code, unsigned long offset); | 9 | int code, unsigned long offset) __noreturn __cold; |
10 | 10 | ||
11 | /* mm/fault.c */ | 11 | /* mm/fault.c */ |
12 | void do_page_fault(struct pt_regs *regs, unsigned long code, | 12 | void do_page_fault(struct pt_regs *regs, unsigned long code, |
diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h index e0a82358517e..63f4dd0b49c2 100644 --- a/arch/parisc/include/asm/uaccess.h +++ b/arch/parisc/include/asm/uaccess.h | |||
@@ -4,11 +4,14 @@ | |||
4 | /* | 4 | /* |
5 | * User space memory access functions | 5 | * User space memory access functions |
6 | */ | 6 | */ |
7 | #include <asm/processor.h> | ||
7 | #include <asm/page.h> | 8 | #include <asm/page.h> |
8 | #include <asm/cache.h> | 9 | #include <asm/cache.h> |
9 | #include <asm/errno.h> | 10 | #include <asm/errno.h> |
10 | #include <asm-generic/uaccess-unaligned.h> | 11 | #include <asm-generic/uaccess-unaligned.h> |
11 | 12 | ||
13 | #include <linux/sched.h> | ||
14 | |||
12 | #define VERIFY_READ 0 | 15 | #define VERIFY_READ 0 |
13 | #define VERIFY_WRITE 1 | 16 | #define VERIFY_WRITE 1 |
14 | 17 | ||
@@ -33,12 +36,43 @@ extern int __get_user_bad(void); | |||
33 | extern int __put_kernel_bad(void); | 36 | extern int __put_kernel_bad(void); |
34 | extern int __put_user_bad(void); | 37 | extern int __put_user_bad(void); |
35 | 38 | ||
36 | static inline long access_ok(int type, const void __user * addr, | 39 | |
37 | unsigned long size) | 40 | /* |
41 | * Test whether a block of memory is a valid user space address. | ||
42 | * Returns 0 if the range is valid, nonzero otherwise. | ||
43 | */ | ||
44 | static inline int __range_not_ok(unsigned long addr, unsigned long size, | ||
45 | unsigned long limit) | ||
38 | { | 46 | { |
39 | return 1; | 47 | unsigned long __newaddr = addr + size; |
48 | return (__newaddr < addr || __newaddr > limit || size > limit); | ||
40 | } | 49 | } |
41 | 50 | ||
51 | /** | ||
52 | * access_ok: - Checks if a user space pointer is valid | ||
53 | * @type: Type of access: %VERIFY_READ or %VERIFY_WRITE. Note that | ||
54 | * %VERIFY_WRITE is a superset of %VERIFY_READ - if it is safe | ||
55 | * to write to a block, it is always safe to read from it. | ||
56 | * @addr: User space pointer to start of block to check | ||
57 | * @size: Size of block to check | ||
58 | * | ||
59 | * Context: User context only. This function may sleep. | ||
60 | * | ||
61 | * Checks if a pointer to a block of memory in user space is valid. | ||
62 | * | ||
63 | * Returns true (nonzero) if the memory block may be valid, false (zero) | ||
64 | * if it is definitely invalid. | ||
65 | * | ||
66 | * Note that, depending on architecture, this function probably just | ||
67 | * checks that the pointer is in the user space range - after calling | ||
68 | * this function, memory access functions may still return -EFAULT. | ||
69 | */ | ||
70 | #define access_ok(type, addr, size) \ | ||
71 | ( __chk_user_ptr(addr), \ | ||
72 | !__range_not_ok((unsigned long) (__force void *) (addr), \ | ||
73 | size, user_addr_max()) \ | ||
74 | ) | ||
75 | |||
42 | #define put_user __put_user | 76 | #define put_user __put_user |
43 | #define get_user __get_user | 77 | #define get_user __get_user |
44 | 78 | ||
@@ -59,12 +93,13 @@ static inline long access_ok(int type, const void __user * addr, | |||
59 | /* | 93 | /* |
60 | * The exception table contains two values: the first is an address | 94 | * The exception table contains two values: the first is an address |
61 | * for an instruction that is allowed to fault, and the second is | 95 | * for an instruction that is allowed to fault, and the second is |
62 | * the address to the fixup routine. | 96 | * the address to the fixup routine. Even on a 64bit kernel we could |
97 | * use a 32bit (unsigned int) address here. | ||
63 | */ | 98 | */ |
64 | 99 | ||
65 | struct exception_table_entry { | 100 | struct exception_table_entry { |
66 | unsigned long insn; /* address of insn that is allowed to fault. */ | 101 | unsigned long insn; /* address of insn that is allowed to fault. */ |
67 | long fixup; /* fixup routine */ | 102 | unsigned long fixup; /* fixup routine */ |
68 | }; | 103 | }; |
69 | 104 | ||
70 | #define ASM_EXCEPTIONTABLE_ENTRY( fault_addr, except_addr )\ | 105 | #define ASM_EXCEPTIONTABLE_ENTRY( fault_addr, except_addr )\ |
@@ -218,7 +253,11 @@ extern long lstrnlen_user(const char __user *,long); | |||
218 | /* | 253 | /* |
219 | * Complex access routines -- macros | 254 | * Complex access routines -- macros |
220 | */ | 255 | */ |
221 | #define user_addr_max() (~0UL) | 256 | #ifdef CONFIG_COMPAT |
257 | #define user_addr_max() (TASK_SIZE) | ||
258 | #else | ||
259 | #define user_addr_max() (DEFAULT_TASK_SIZE) | ||
260 | #endif | ||
222 | 261 | ||
223 | #define strnlen_user lstrnlen_user | 262 | #define strnlen_user lstrnlen_user |
224 | #define strlen_user(str) lstrnlen_user(str, 0x7fffffffL) | 263 | #define strlen_user(str) lstrnlen_user(str, 0x7fffffffL) |
diff --git a/arch/parisc/include/uapi/asm/errno.h b/arch/parisc/include/uapi/asm/errno.h index 135ad6047e51..f3a8aa554841 100644 --- a/arch/parisc/include/uapi/asm/errno.h +++ b/arch/parisc/include/uapi/asm/errno.h | |||
@@ -37,7 +37,7 @@ | |||
37 | #define EBADMSG 67 /* Not a data message */ | 37 | #define EBADMSG 67 /* Not a data message */ |
38 | #define EUSERS 68 /* Too many users */ | 38 | #define EUSERS 68 /* Too many users */ |
39 | #define EDQUOT 69 /* Quota exceeded */ | 39 | #define EDQUOT 69 /* Quota exceeded */ |
40 | #define ESTALE 70 /* Stale NFS file handle */ | 40 | #define ESTALE 70 /* Stale file handle */ |
41 | #define EREMOTE 71 /* Object is remote */ | 41 | #define EREMOTE 71 /* Object is remote */ |
42 | #define EOVERFLOW 72 /* Value too large for defined data type */ | 42 | #define EOVERFLOW 72 /* Value too large for defined data type */ |
43 | 43 | ||
diff --git a/arch/parisc/include/uapi/asm/socket.h b/arch/parisc/include/uapi/asm/socket.h index 71700e636a8e..7c614d01f1fa 100644 --- a/arch/parisc/include/uapi/asm/socket.h +++ b/arch/parisc/include/uapi/asm/socket.h | |||
@@ -75,6 +75,8 @@ | |||
75 | 75 | ||
76 | #define SO_BUSY_POLL 0x4027 | 76 | #define SO_BUSY_POLL 0x4027 |
77 | 77 | ||
78 | #define SO_MAX_PACING_RATE 0x4048 | ||
79 | |||
78 | /* O_NONBLOCK clashes with the bits used for socket types. Therefore we | 80 | /* O_NONBLOCK clashes with the bits used for socket types. Therefore we |
79 | * have to define SOCK_NONBLOCK to a different value here. | 81 | * have to define SOCK_NONBLOCK to a different value here. |
80 | */ | 82 | */ |
diff --git a/arch/parisc/install.sh b/arch/parisc/install.sh index 4da682b466d0..6f68784fea25 100644 --- a/arch/parisc/install.sh +++ b/arch/parisc/install.sh | |||
@@ -19,20 +19,48 @@ | |||
19 | # $4 - default install path (blank if root directory) | 19 | # $4 - default install path (blank if root directory) |
20 | # | 20 | # |
21 | 21 | ||
22 | verify () { | ||
23 | if [ ! -f "$1" ]; then | ||
24 | echo "" 1>&2 | ||
25 | echo " *** Missing file: $1" 1>&2 | ||
26 | echo ' *** You need to run "make" before "make install".' 1>&2 | ||
27 | echo "" 1>&2 | ||
28 | exit 1 | ||
29 | fi | ||
30 | } | ||
31 | |||
32 | # Make sure the files actually exist | ||
33 | |||
34 | verify "$2" | ||
35 | verify "$3" | ||
36 | |||
22 | # User may have a custom install script | 37 | # User may have a custom install script |
23 | 38 | ||
24 | if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi | 39 | if [ -n "${INSTALLKERNEL}" ]; then |
25 | if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi | 40 | if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi |
41 | if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi | ||
42 | fi | ||
26 | 43 | ||
27 | # Default install | 44 | # Default install |
28 | 45 | ||
29 | if [ -f $4/vmlinuz ]; then | 46 | if [ "$(basename $2)" = "zImage" ]; then |
30 | mv $4/vmlinuz $4/vmlinuz.old | 47 | # Compressed install |
48 | echo "Installing compressed kernel" | ||
49 | base=vmlinuz | ||
50 | else | ||
51 | # Normal install | ||
52 | echo "Installing normal kernel" | ||
53 | base=vmlinux | ||
54 | fi | ||
55 | |||
56 | if [ -f $4/$base-$1 ]; then | ||
57 | mv $4/$base-$1 $4/$base-$1.old | ||
31 | fi | 58 | fi |
59 | cat $2 > $4/$base-$1 | ||
32 | 60 | ||
33 | if [ -f $4/System.map ]; then | 61 | # Install system map file |
34 | mv $4/System.map $4/System.old | 62 | if [ -f $4/System.map-$1 ]; then |
63 | mv $4/System.map-$1 $4/System.map-$1.old | ||
35 | fi | 64 | fi |
65 | cp $3 $4/System.map-$1 | ||
36 | 66 | ||
37 | cat $2 > $4/vmlinuz | ||
38 | cp $3 $4/System.map | ||
diff --git a/arch/parisc/kernel/Makefile b/arch/parisc/kernel/Makefile index 66ee3f12df58..ff87b4603e3d 100644 --- a/arch/parisc/kernel/Makefile +++ b/arch/parisc/kernel/Makefile | |||
@@ -29,7 +29,9 @@ obj-$(CONFIG_PCI) += pci.o | |||
29 | obj-$(CONFIG_MODULES) += module.o | 29 | obj-$(CONFIG_MODULES) += module.o |
30 | obj-$(CONFIG_64BIT) += binfmt_elf32.o sys_parisc32.o signal32.o | 30 | obj-$(CONFIG_64BIT) += binfmt_elf32.o sys_parisc32.o signal32.o |
31 | obj-$(CONFIG_STACKTRACE)+= stacktrace.o | 31 | obj-$(CONFIG_STACKTRACE)+= stacktrace.o |
32 | obj-$(CONFIG_AUDIT) += audit.o | ||
33 | obj64-$(CONFIG_AUDIT) += compat_audit.o | ||
32 | # only supported for PCX-W/U in 64-bit mode at the moment | 34 | # only supported for PCX-W/U in 64-bit mode at the moment |
33 | obj-$(CONFIG_64BIT) += perf.o perf_asm.o | 35 | obj-$(CONFIG_64BIT) += perf.o perf_asm.o $(obj64-y) |
34 | obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o | 36 | obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o |
35 | obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o | 37 | obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o |
diff --git a/arch/parisc/kernel/audit.c b/arch/parisc/kernel/audit.c new file mode 100644 index 000000000000..eb64a6148c82 --- /dev/null +++ b/arch/parisc/kernel/audit.c | |||
@@ -0,0 +1,81 @@ | |||
1 | #include <linux/init.h> | ||
2 | #include <linux/types.h> | ||
3 | #include <linux/audit.h> | ||
4 | #include <asm/unistd.h> | ||
5 | |||
6 | static unsigned dir_class[] = { | ||
7 | #include <asm-generic/audit_dir_write.h> | ||
8 | ~0U | ||
9 | }; | ||
10 | |||
11 | static unsigned read_class[] = { | ||
12 | #include <asm-generic/audit_read.h> | ||
13 | ~0U | ||
14 | }; | ||
15 | |||
16 | static unsigned write_class[] = { | ||
17 | #include <asm-generic/audit_write.h> | ||
18 | ~0U | ||
19 | }; | ||
20 | |||
21 | static unsigned chattr_class[] = { | ||
22 | #include <asm-generic/audit_change_attr.h> | ||
23 | ~0U | ||
24 | }; | ||
25 | |||
26 | static unsigned signal_class[] = { | ||
27 | #include <asm-generic/audit_signal.h> | ||
28 | ~0U | ||
29 | }; | ||
30 | |||
31 | int audit_classify_arch(int arch) | ||
32 | { | ||
33 | #ifdef CONFIG_COMPAT | ||
34 | if (arch == AUDIT_ARCH_PARISC) | ||
35 | return 1; | ||
36 | #endif | ||
37 | return 0; | ||
38 | } | ||
39 | |||
40 | int audit_classify_syscall(int abi, unsigned syscall) | ||
41 | { | ||
42 | #ifdef CONFIG_COMPAT | ||
43 | extern int parisc32_classify_syscall(unsigned); | ||
44 | if (abi == AUDIT_ARCH_PARISC) | ||
45 | return parisc32_classify_syscall(syscall); | ||
46 | #endif | ||
47 | switch (syscall) { | ||
48 | case __NR_open: | ||
49 | return 2; | ||
50 | case __NR_openat: | ||
51 | return 3; | ||
52 | case __NR_execve: | ||
53 | return 5; | ||
54 | default: | ||
55 | return 0; | ||
56 | } | ||
57 | } | ||
58 | |||
59 | static int __init audit_classes_init(void) | ||
60 | { | ||
61 | #ifdef CONFIG_COMPAT | ||
62 | extern __u32 parisc32_dir_class[]; | ||
63 | extern __u32 parisc32_write_class[]; | ||
64 | extern __u32 parisc32_read_class[]; | ||
65 | extern __u32 parisc32_chattr_class[]; | ||
66 | extern __u32 parisc32_signal_class[]; | ||
67 | audit_register_class(AUDIT_CLASS_WRITE_32, parisc32_write_class); | ||
68 | audit_register_class(AUDIT_CLASS_READ_32, parisc32_read_class); | ||
69 | audit_register_class(AUDIT_CLASS_DIR_WRITE_32, parisc32_dir_class); | ||
70 | audit_register_class(AUDIT_CLASS_CHATTR_32, parisc32_chattr_class); | ||
71 | audit_register_class(AUDIT_CLASS_SIGNAL_32, parisc32_signal_class); | ||
72 | #endif | ||
73 | audit_register_class(AUDIT_CLASS_WRITE, write_class); | ||
74 | audit_register_class(AUDIT_CLASS_READ, read_class); | ||
75 | audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class); | ||
76 | audit_register_class(AUDIT_CLASS_CHATTR, chattr_class); | ||
77 | audit_register_class(AUDIT_CLASS_SIGNAL, signal_class); | ||
78 | return 0; | ||
79 | } | ||
80 | |||
81 | __initcall(audit_classes_init); | ||
diff --git a/arch/parisc/kernel/compat_audit.c b/arch/parisc/kernel/compat_audit.c new file mode 100644 index 000000000000..c74478f6bc74 --- /dev/null +++ b/arch/parisc/kernel/compat_audit.c | |||
@@ -0,0 +1,40 @@ | |||
1 | #include <asm/unistd.h> | ||
2 | |||
3 | unsigned int parisc32_dir_class[] = { | ||
4 | #include <asm-generic/audit_dir_write.h> | ||
5 | ~0U | ||
6 | }; | ||
7 | |||
8 | unsigned int parisc32_chattr_class[] = { | ||
9 | #include <asm-generic/audit_change_attr.h> | ||
10 | ~0U | ||
11 | }; | ||
12 | |||
13 | unsigned int parisc32_write_class[] = { | ||
14 | #include <asm-generic/audit_write.h> | ||
15 | ~0U | ||
16 | }; | ||
17 | |||
18 | unsigned int parisc32_read_class[] = { | ||
19 | #include <asm-generic/audit_read.h> | ||
20 | ~0U | ||
21 | }; | ||
22 | |||
23 | unsigned int parisc32_signal_class[] = { | ||
24 | #include <asm-generic/audit_signal.h> | ||
25 | ~0U | ||
26 | }; | ||
27 | |||
28 | int parisc32_classify_syscall(unsigned syscall) | ||
29 | { | ||
30 | switch (syscall) { | ||
31 | case __NR_open: | ||
32 | return 2; | ||
33 | case __NR_openat: | ||
34 | return 3; | ||
35 | case __NR_execve: | ||
36 | return 5; | ||
37 | default: | ||
38 | return 1; | ||
39 | } | ||
40 | } | ||
diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S index 37aabd772fbb..d2d58258aea6 100644 --- a/arch/parisc/kernel/head.S +++ b/arch/parisc/kernel/head.S | |||
@@ -195,6 +195,8 @@ common_stext: | |||
195 | ldw MEM_PDC_HI(%r0),%r6 | 195 | ldw MEM_PDC_HI(%r0),%r6 |
196 | depd %r6, 31, 32, %r3 /* move to upper word */ | 196 | depd %r6, 31, 32, %r3 /* move to upper word */ |
197 | 197 | ||
198 | mfctl %cr30,%r6 /* PCX-W2 firmware bug */ | ||
199 | |||
198 | ldo PDC_PSW(%r0),%arg0 /* 21 */ | 200 | ldo PDC_PSW(%r0),%arg0 /* 21 */ |
199 | ldo PDC_PSW_SET_DEFAULTS(%r0),%arg1 /* 2 */ | 201 | ldo PDC_PSW_SET_DEFAULTS(%r0),%arg1 /* 2 */ |
200 | ldo PDC_PSW_WIDE_BIT(%r0),%arg2 /* 2 */ | 202 | ldo PDC_PSW_WIDE_BIT(%r0),%arg2 /* 2 */ |
@@ -203,6 +205,8 @@ common_stext: | |||
203 | copy %r0,%arg3 | 205 | copy %r0,%arg3 |
204 | 206 | ||
205 | stext_pdc_ret: | 207 | stext_pdc_ret: |
208 | mtctl %r6,%cr30 /* restore task thread info */ | ||
209 | |||
206 | /* restore rfi target address*/ | 210 | /* restore rfi target address*/ |
207 | ldd TI_TASK-THREAD_SZ_ALGN(%sp), %r10 | 211 | ldd TI_TASK-THREAD_SZ_ALGN(%sp), %r10 |
208 | tophys_r1 %r10 | 212 | tophys_r1 %r10 |
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index 2e6443b1e922..8ceac4785609 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
@@ -179,10 +179,6 @@ int arch_show_interrupts(struct seq_file *p, int prec) | |||
179 | for_each_online_cpu(j) | 179 | for_each_online_cpu(j) |
180 | seq_printf(p, "%10u ", irq_stats(j)->irq_resched_count); | 180 | seq_printf(p, "%10u ", irq_stats(j)->irq_resched_count); |
181 | seq_puts(p, " Rescheduling interrupts\n"); | 181 | seq_puts(p, " Rescheduling interrupts\n"); |
182 | seq_printf(p, "%*s: ", prec, "CAL"); | ||
183 | for_each_online_cpu(j) | ||
184 | seq_printf(p, "%10u ", irq_stats(j)->irq_call_count); | ||
185 | seq_puts(p, " Function call interrupts\n"); | ||
186 | #endif | 182 | #endif |
187 | seq_printf(p, "%*s: ", prec, "UAH"); | 183 | seq_printf(p, "%*s: ", prec, "UAH"); |
188 | for_each_online_cpu(j) | 184 | for_each_online_cpu(j) |
@@ -499,22 +495,9 @@ static void execute_on_irq_stack(void *func, unsigned long param1) | |||
499 | *irq_stack_in_use = 1; | 495 | *irq_stack_in_use = 1; |
500 | } | 496 | } |
501 | 497 | ||
502 | asmlinkage void do_softirq(void) | 498 | void do_softirq_own_stack(void) |
503 | { | 499 | { |
504 | __u32 pending; | 500 | execute_on_irq_stack(__do_softirq, 0); |
505 | unsigned long flags; | ||
506 | |||
507 | if (in_interrupt()) | ||
508 | return; | ||
509 | |||
510 | local_irq_save(flags); | ||
511 | |||
512 | pending = local_softirq_pending(); | ||
513 | |||
514 | if (pending) | ||
515 | execute_on_irq_stack(__do_softirq, 0); | ||
516 | |||
517 | local_irq_restore(flags); | ||
518 | } | 501 | } |
519 | #endif /* CONFIG_IRQSTACKS */ | 502 | #endif /* CONFIG_IRQSTACKS */ |
520 | 503 | ||
diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c index 2a625fb063e1..50dfafc3f2c1 100644 --- a/arch/parisc/kernel/module.c +++ b/arch/parisc/kernel/module.c | |||
@@ -219,7 +219,7 @@ void *module_alloc(unsigned long size) | |||
219 | * init_data correctly */ | 219 | * init_data correctly */ |
220 | return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, | 220 | return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, |
221 | GFP_KERNEL | __GFP_HIGHMEM, | 221 | GFP_KERNEL | __GFP_HIGHMEM, |
222 | PAGE_KERNEL_RWX, -1, | 222 | PAGE_KERNEL_RWX, NUMA_NO_NODE, |
223 | __builtin_return_address(0)); | 223 | __builtin_return_address(0)); |
224 | } | 224 | } |
225 | 225 | ||
diff --git a/arch/parisc/kernel/ptrace.c b/arch/parisc/kernel/ptrace.c index 534abd4936e1..e842ee233db4 100644 --- a/arch/parisc/kernel/ptrace.c +++ b/arch/parisc/kernel/ptrace.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/security.h> | 19 | #include <linux/security.h> |
20 | #include <linux/compat.h> | 20 | #include <linux/compat.h> |
21 | #include <linux/signal.h> | 21 | #include <linux/signal.h> |
22 | #include <linux/audit.h> | ||
22 | 23 | ||
23 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
24 | #include <asm/pgtable.h> | 25 | #include <asm/pgtable.h> |
@@ -267,11 +268,28 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request, | |||
267 | 268 | ||
268 | long do_syscall_trace_enter(struct pt_regs *regs) | 269 | long do_syscall_trace_enter(struct pt_regs *regs) |
269 | { | 270 | { |
271 | long ret = 0; | ||
272 | |||
270 | if (test_thread_flag(TIF_SYSCALL_TRACE) && | 273 | if (test_thread_flag(TIF_SYSCALL_TRACE) && |
271 | tracehook_report_syscall_entry(regs)) | 274 | tracehook_report_syscall_entry(regs)) |
272 | return -1L; | 275 | ret = -1L; |
273 | 276 | ||
274 | return regs->gr[20]; | 277 | #ifdef CONFIG_64BIT |
278 | if (!is_compat_task()) | ||
279 | audit_syscall_entry(AUDIT_ARCH_PARISC64, | ||
280 | regs->gr[20], | ||
281 | regs->gr[26], regs->gr[25], | ||
282 | regs->gr[24], regs->gr[23]); | ||
283 | else | ||
284 | #endif | ||
285 | audit_syscall_entry(AUDIT_ARCH_PARISC, | ||
286 | regs->gr[20] & 0xffffffff, | ||
287 | regs->gr[26] & 0xffffffff, | ||
288 | regs->gr[25] & 0xffffffff, | ||
289 | regs->gr[24] & 0xffffffff, | ||
290 | regs->gr[23] & 0xffffffff); | ||
291 | |||
292 | return ret ? : regs->gr[20]; | ||
275 | } | 293 | } |
276 | 294 | ||
277 | void do_syscall_trace_exit(struct pt_regs *regs) | 295 | void do_syscall_trace_exit(struct pt_regs *regs) |
@@ -279,6 +297,8 @@ void do_syscall_trace_exit(struct pt_regs *regs) | |||
279 | int stepping = test_thread_flag(TIF_SINGLESTEP) || | 297 | int stepping = test_thread_flag(TIF_SINGLESTEP) || |
280 | test_thread_flag(TIF_BLOCKSTEP); | 298 | test_thread_flag(TIF_BLOCKSTEP); |
281 | 299 | ||
300 | audit_syscall_exit(regs); | ||
301 | |||
282 | if (stepping || test_thread_flag(TIF_SYSCALL_TRACE)) | 302 | if (stepping || test_thread_flag(TIF_SYSCALL_TRACE)) |
283 | tracehook_report_syscall_exit(regs, stepping); | 303 | tracehook_report_syscall_exit(regs, stepping); |
284 | } | 304 | } |
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c index 7349a3fedfc7..72a3c658ad7b 100644 --- a/arch/parisc/kernel/setup.c +++ b/arch/parisc/kernel/setup.c | |||
@@ -318,8 +318,12 @@ static int __init parisc_init(void) | |||
318 | pdc_stable_write(0x40, &osid, sizeof(osid)); | 318 | pdc_stable_write(0x40, &osid, sizeof(osid)); |
319 | 319 | ||
320 | processor_init(); | 320 | processor_init(); |
321 | printk(KERN_INFO "CPU(s): %d x %s at %d.%06d MHz\n", | 321 | #ifdef CONFIG_SMP |
322 | num_present_cpus(), | 322 | pr_info("CPU(s): %d out of %d %s at %d.%06d MHz online\n", |
323 | num_online_cpus(), num_present_cpus(), | ||
324 | #else | ||
325 | pr_info("CPU(s): 1 x %s at %d.%06d MHz\n", | ||
326 | #endif | ||
323 | boot_cpu_data.cpu_name, | 327 | boot_cpu_data.cpu_name, |
324 | boot_cpu_data.cpu_hz / 1000000, | 328 | boot_cpu_data.cpu_hz / 1000000, |
325 | boot_cpu_data.cpu_hz % 1000000 ); | 329 | boot_cpu_data.cpu_hz % 1000000 ); |
diff --git a/arch/parisc/kernel/signal32.c b/arch/parisc/kernel/signal32.c index 6c6a271a6140..984abbee71ca 100644 --- a/arch/parisc/kernel/signal32.c +++ b/arch/parisc/kernel/signal32.c | |||
@@ -319,7 +319,7 @@ copy_siginfo_from_user32 (siginfo_t *to, compat_siginfo_t __user *from) | |||
319 | } | 319 | } |
320 | 320 | ||
321 | int | 321 | int |
322 | copy_siginfo_to_user32 (compat_siginfo_t __user *to, siginfo_t *from) | 322 | copy_siginfo_to_user32 (compat_siginfo_t __user *to, const siginfo_t *from) |
323 | { | 323 | { |
324 | compat_uptr_t addr; | 324 | compat_uptr_t addr; |
325 | compat_int_t val; | 325 | compat_int_t val; |
diff --git a/arch/parisc/kernel/signal32.h b/arch/parisc/kernel/signal32.h index 72ab41a51f32..af51d4ccee42 100644 --- a/arch/parisc/kernel/signal32.h +++ b/arch/parisc/kernel/signal32.h | |||
@@ -34,7 +34,7 @@ struct compat_ucontext { | |||
34 | 34 | ||
35 | /* ELF32 signal handling */ | 35 | /* ELF32 signal handling */ |
36 | 36 | ||
37 | int copy_siginfo_to_user32 (compat_siginfo_t __user *to, siginfo_t *from); | 37 | int copy_siginfo_to_user32 (compat_siginfo_t __user *to, const siginfo_t *from); |
38 | int copy_siginfo_from_user32 (siginfo_t *to, compat_siginfo_t __user *from); | 38 | int copy_siginfo_from_user32 (siginfo_t *to, compat_siginfo_t __user *from); |
39 | 39 | ||
40 | /* In a deft move of uber-hackery, we decide to carry the top half of all | 40 | /* In a deft move of uber-hackery, we decide to carry the top half of all |
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c index 8a252f2d6c08..ceda229ea6c2 100644 --- a/arch/parisc/kernel/smp.c +++ b/arch/parisc/kernel/smp.c | |||
@@ -72,7 +72,6 @@ enum ipi_message_type { | |||
72 | IPI_NOP=0, | 72 | IPI_NOP=0, |
73 | IPI_RESCHEDULE=1, | 73 | IPI_RESCHEDULE=1, |
74 | IPI_CALL_FUNC, | 74 | IPI_CALL_FUNC, |
75 | IPI_CALL_FUNC_SINGLE, | ||
76 | IPI_CPU_START, | 75 | IPI_CPU_START, |
77 | IPI_CPU_STOP, | 76 | IPI_CPU_STOP, |
78 | IPI_CPU_TEST | 77 | IPI_CPU_TEST |
@@ -126,11 +125,6 @@ ipi_interrupt(int irq, void *dev_id) | |||
126 | unsigned long ops; | 125 | unsigned long ops; |
127 | unsigned long flags; | 126 | unsigned long flags; |
128 | 127 | ||
129 | /* Count this now; we may make a call that never returns. */ | ||
130 | inc_irq_stat(irq_call_count); | ||
131 | |||
132 | mb(); /* Order interrupt and bit testing. */ | ||
133 | |||
134 | for (;;) { | 128 | for (;;) { |
135 | spinlock_t *lock = &per_cpu(ipi_lock, this_cpu); | 129 | spinlock_t *lock = &per_cpu(ipi_lock, this_cpu); |
136 | spin_lock_irqsave(lock, flags); | 130 | spin_lock_irqsave(lock, flags); |
@@ -164,11 +158,6 @@ ipi_interrupt(int irq, void *dev_id) | |||
164 | generic_smp_call_function_interrupt(); | 158 | generic_smp_call_function_interrupt(); |
165 | break; | 159 | break; |
166 | 160 | ||
167 | case IPI_CALL_FUNC_SINGLE: | ||
168 | smp_debug(100, KERN_DEBUG "CPU%d IPI_CALL_FUNC_SINGLE\n", this_cpu); | ||
169 | generic_smp_call_function_single_interrupt(); | ||
170 | break; | ||
171 | |||
172 | case IPI_CPU_START: | 161 | case IPI_CPU_START: |
173 | smp_debug(100, KERN_DEBUG "CPU%d IPI_CPU_START\n", this_cpu); | 162 | smp_debug(100, KERN_DEBUG "CPU%d IPI_CPU_START\n", this_cpu); |
174 | break; | 163 | break; |
@@ -260,7 +249,7 @@ void arch_send_call_function_ipi_mask(const struct cpumask *mask) | |||
260 | 249 | ||
261 | void arch_send_call_function_single_ipi(int cpu) | 250 | void arch_send_call_function_single_ipi(int cpu) |
262 | { | 251 | { |
263 | send_IPI_single(cpu, IPI_CALL_FUNC_SINGLE); | 252 | send_IPI_single(cpu, IPI_CALL_FUNC); |
264 | } | 253 | } |
265 | 254 | ||
266 | /* | 255 | /* |
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S index e767ab733e32..a63bb179f79a 100644 --- a/arch/parisc/kernel/syscall.S +++ b/arch/parisc/kernel/syscall.S | |||
@@ -649,10 +649,8 @@ cas_action: | |||
649 | /* Two exception table entries, one for the load, | 649 | /* Two exception table entries, one for the load, |
650 | the other for the store. Either return -EFAULT. | 650 | the other for the store. Either return -EFAULT. |
651 | Each of the entries must be relocated. */ | 651 | Each of the entries must be relocated. */ |
652 | .section __ex_table,"aw" | 652 | ASM_EXCEPTIONTABLE_ENTRY(1b-linux_gateway_page, 3b-linux_gateway_page) |
653 | ASM_ULONG_INSN (1b - linux_gateway_page), (3b - linux_gateway_page) | 653 | ASM_EXCEPTIONTABLE_ENTRY(2b-linux_gateway_page, 3b-linux_gateway_page) |
654 | ASM_ULONG_INSN (2b - linux_gateway_page), (3b - linux_gateway_page) | ||
655 | .previous | ||
656 | 654 | ||
657 | 655 | ||
658 | /* Make sure nothing else is placed on this page */ | 656 | /* Make sure nothing else is placed on this page */ |
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 04e47c6a4562..1cd1d0c83b6d 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c | |||
@@ -291,11 +291,6 @@ void die_if_kernel(char *str, struct pt_regs *regs, long err) | |||
291 | do_exit(SIGSEGV); | 291 | do_exit(SIGSEGV); |
292 | } | 292 | } |
293 | 293 | ||
294 | int syscall_ipi(int (*syscall) (struct pt_regs *), struct pt_regs *regs) | ||
295 | { | ||
296 | return syscall(regs); | ||
297 | } | ||
298 | |||
299 | /* gdb uses break 4,8 */ | 294 | /* gdb uses break 4,8 */ |
300 | #define GDB_BREAK_INSN 0x10004 | 295 | #define GDB_BREAK_INSN 0x10004 |
301 | static void handle_gdb_break(struct pt_regs *regs, int wot) | 296 | static void handle_gdb_break(struct pt_regs *regs, int wot) |
@@ -805,14 +800,14 @@ void notrace handle_interruption(int code, struct pt_regs *regs) | |||
805 | else { | 800 | else { |
806 | 801 | ||
807 | /* | 802 | /* |
808 | * The kernel should never fault on its own address space. | 803 | * The kernel should never fault on its own address space, |
804 | * unless pagefault_disable() was called before. | ||
809 | */ | 805 | */ |
810 | 806 | ||
811 | if (fault_space == 0) | 807 | if (fault_space == 0 && !in_atomic()) |
812 | { | 808 | { |
813 | pdc_chassis_send_status(PDC_CHASSIS_DIRECT_PANIC); | 809 | pdc_chassis_send_status(PDC_CHASSIS_DIRECT_PANIC); |
814 | parisc_terminate("Kernel Fault", regs, code, fault_address); | 810 | parisc_terminate("Kernel Fault", regs, code, fault_address); |
815 | |||
816 | } | 811 | } |
817 | } | 812 | } |
818 | 813 | ||
diff --git a/arch/parisc/lib/Makefile b/arch/parisc/lib/Makefile index 5651536ac733..8fa92b8d839a 100644 --- a/arch/parisc/lib/Makefile +++ b/arch/parisc/lib/Makefile | |||
@@ -3,6 +3,6 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | lib-y := lusercopy.o bitops.o checksum.o io.o memset.o fixup.o memcpy.o \ | 5 | lib-y := lusercopy.o bitops.o checksum.o io.o memset.o fixup.o memcpy.o \ |
6 | ucmpdi2.o | 6 | ucmpdi2.o delay.o |
7 | 7 | ||
8 | obj-y := iomap.o | 8 | obj-y := iomap.o |
diff --git a/arch/parisc/lib/delay.c b/arch/parisc/lib/delay.c new file mode 100644 index 000000000000..ec9255f27a81 --- /dev/null +++ b/arch/parisc/lib/delay.c | |||
@@ -0,0 +1,73 @@ | |||
1 | /* | ||
2 | * Precise Delay Loops for parisc | ||
3 | * | ||
4 | * based on code by: | ||
5 | * Copyright (C) 1993 Linus Torvalds | ||
6 | * Copyright (C) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz> | ||
7 | * Copyright (C) 2008 Jiri Hladky <hladky _dot_ jiri _at_ gmail _dot_ com> | ||
8 | * | ||
9 | * parisc implementation: | ||
10 | * Copyright (C) 2013 Helge Deller <deller@gmx.de> | ||
11 | */ | ||
12 | |||
13 | |||
14 | #include <linux/module.h> | ||
15 | #include <linux/preempt.h> | ||
16 | #include <linux/init.h> | ||
17 | |||
18 | #include <asm/processor.h> | ||
19 | #include <asm/delay.h> | ||
20 | |||
21 | #include <asm/special_insns.h> /* for mfctl() */ | ||
22 | #include <asm/processor.h> /* for boot_cpu_data */ | ||
23 | |||
24 | /* CR16 based delay: */ | ||
25 | static void __cr16_delay(unsigned long __loops) | ||
26 | { | ||
27 | /* | ||
28 | * Note: Due to unsigned math, cr16 rollovers shouldn't be | ||
29 | * a problem here. However, on 32 bit, we need to make sure | ||
30 | * we don't pass in too big a value. The current default | ||
31 | * value of MAX_UDELAY_MS should help prevent this. | ||
32 | */ | ||
33 | u32 bclock, now, loops = __loops; | ||
34 | int cpu; | ||
35 | |||
36 | preempt_disable(); | ||
37 | cpu = smp_processor_id(); | ||
38 | bclock = mfctl(16); | ||
39 | for (;;) { | ||
40 | now = mfctl(16); | ||
41 | if ((now - bclock) >= loops) | ||
42 | break; | ||
43 | |||
44 | /* Allow RT tasks to run */ | ||
45 | preempt_enable(); | ||
46 | asm volatile(" nop\n"); | ||
47 | barrier(); | ||
48 | preempt_disable(); | ||
49 | |||
50 | /* | ||
51 | * It is possible that we moved to another CPU, and | ||
52 | * since CR16's are per-cpu we need to calculate | ||
53 | * that. The delay must guarantee that we wait "at | ||
54 | * least" the amount of time. Being moved to another | ||
55 | * CPU could make the wait longer but we just need to | ||
56 | * make sure we waited long enough. Rebalance the | ||
57 | * counter for this CPU. | ||
58 | */ | ||
59 | if (unlikely(cpu != smp_processor_id())) { | ||
60 | loops -= (now - bclock); | ||
61 | cpu = smp_processor_id(); | ||
62 | bclock = mfctl(16); | ||
63 | } | ||
64 | } | ||
65 | preempt_enable(); | ||
66 | } | ||
67 | |||
68 | |||
69 | void __udelay(unsigned long usecs) | ||
70 | { | ||
71 | __cr16_delay(usecs * ((unsigned long)boot_cpu_data.cpu_hz / 1000000UL)); | ||
72 | } | ||
73 | EXPORT_SYMBOL(__udelay); | ||
diff --git a/arch/parisc/lib/lusercopy.S b/arch/parisc/lib/lusercopy.S index 6f2d9355efe2..a512f07d4feb 100644 --- a/arch/parisc/lib/lusercopy.S +++ b/arch/parisc/lib/lusercopy.S | |||
@@ -88,9 +88,7 @@ ENDPROC(lclear_user) | |||
88 | ldo 1(%r25),%r25 | 88 | ldo 1(%r25),%r25 |
89 | .previous | 89 | .previous |
90 | 90 | ||
91 | .section __ex_table,"aw" | 91 | ASM_EXCEPTIONTABLE_ENTRY(1b,2b) |
92 | ASM_ULONG_INSN 1b,2b | ||
93 | .previous | ||
94 | 92 | ||
95 | .procend | 93 | .procend |
96 | 94 | ||
@@ -129,10 +127,8 @@ ENDPROC(lstrnlen_user) | |||
129 | copy %r24,%r26 /* reset r26 so 0 is returned on fault */ | 127 | copy %r24,%r26 /* reset r26 so 0 is returned on fault */ |
130 | .previous | 128 | .previous |
131 | 129 | ||
132 | .section __ex_table,"aw" | 130 | ASM_EXCEPTIONTABLE_ENTRY(1b,3b) |
133 | ASM_ULONG_INSN 1b,3b | 131 | ASM_EXCEPTIONTABLE_ENTRY(2b,3b) |
134 | ASM_ULONG_INSN 2b,3b | ||
135 | .previous | ||
136 | 132 | ||
137 | .procend | 133 | .procend |
138 | 134 | ||
diff --git a/arch/parisc/lib/memcpy.c b/arch/parisc/lib/memcpy.c index ac4370b1ca40..b5507ec06b84 100644 --- a/arch/parisc/lib/memcpy.c +++ b/arch/parisc/lib/memcpy.c | |||
@@ -56,7 +56,7 @@ | |||
56 | #ifdef __KERNEL__ | 56 | #ifdef __KERNEL__ |
57 | #include <linux/module.h> | 57 | #include <linux/module.h> |
58 | #include <linux/compiler.h> | 58 | #include <linux/compiler.h> |
59 | #include <asm/uaccess.h> | 59 | #include <linux/uaccess.h> |
60 | #define s_space "%%sr1" | 60 | #define s_space "%%sr1" |
61 | #define d_space "%%sr2" | 61 | #define d_space "%%sr2" |
62 | #else | 62 | #else |
@@ -524,4 +524,17 @@ EXPORT_SYMBOL(copy_to_user); | |||
524 | EXPORT_SYMBOL(copy_from_user); | 524 | EXPORT_SYMBOL(copy_from_user); |
525 | EXPORT_SYMBOL(copy_in_user); | 525 | EXPORT_SYMBOL(copy_in_user); |
526 | EXPORT_SYMBOL(memcpy); | 526 | EXPORT_SYMBOL(memcpy); |
527 | |||
528 | long probe_kernel_read(void *dst, const void *src, size_t size) | ||
529 | { | ||
530 | unsigned long addr = (unsigned long)src; | ||
531 | |||
532 | if (size < 0 || addr < PAGE_SIZE) | ||
533 | return -EFAULT; | ||
534 | |||
535 | /* check for I/O space F_EXTEND(0xfff00000) access as well? */ | ||
536 | |||
537 | return __probe_kernel_read(dst, src, size); | ||
538 | } | ||
539 | |||
527 | #endif | 540 | #endif |
diff --git a/arch/parisc/math-emu/float.h b/arch/parisc/math-emu/float.h index ce76f6dfa25b..7a51f97e72e6 100644 --- a/arch/parisc/math-emu/float.h +++ b/arch/parisc/math-emu/float.h | |||
@@ -484,7 +484,6 @@ typedef int VOID; | |||
484 | * | |G|L|E|U|X| | 484 | * | |G|L|E|U|X| |
485 | * +-------+-------+-------+-------+-------+-------+-------+-------+ | 485 | * +-------+-------+-------+-------+-------+-------+-------+-------+ |
486 | */ | 486 | */ |
487 | #define Allexception(object) (object) | ||
488 | #define Greaterthanbit(object) Bitfield_extract( 27, 1,object) | 487 | #define Greaterthanbit(object) Bitfield_extract( 27, 1,object) |
489 | #define Lessthanbit(object) Bitfield_extract( 28, 1,object) | 488 | #define Lessthanbit(object) Bitfield_extract( 28, 1,object) |
490 | #define Equalbit(object) Bitfield_extract( 29, 1,object) | 489 | #define Equalbit(object) Bitfield_extract( 29, 1,object) |
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c index d10d27a720c0..7584a5df0fa4 100644 --- a/arch/parisc/mm/fault.c +++ b/arch/parisc/mm/fault.c | |||
@@ -142,6 +142,12 @@ int fixup_exception(struct pt_regs *regs) | |||
142 | { | 142 | { |
143 | const struct exception_table_entry *fix; | 143 | const struct exception_table_entry *fix; |
144 | 144 | ||
145 | /* If we only stored 32bit addresses in the exception table we can drop | ||
146 | * out if we faulted on a 64bit address. */ | ||
147 | if ((sizeof(regs->iaoq[0]) > sizeof(fix->insn)) | ||
148 | && (regs->iaoq[0] >> 32)) | ||
149 | return 0; | ||
150 | |||
145 | fix = search_exception_tables(regs->iaoq[0]); | 151 | fix = search_exception_tables(regs->iaoq[0]); |
146 | if (fix) { | 152 | if (fix) { |
147 | struct exception_data *d; | 153 | struct exception_data *d; |
@@ -171,17 +177,25 @@ void do_page_fault(struct pt_regs *regs, unsigned long code, | |||
171 | unsigned long address) | 177 | unsigned long address) |
172 | { | 178 | { |
173 | struct vm_area_struct *vma, *prev_vma; | 179 | struct vm_area_struct *vma, *prev_vma; |
174 | struct task_struct *tsk = current; | 180 | struct task_struct *tsk; |
175 | struct mm_struct *mm = tsk->mm; | 181 | struct mm_struct *mm; |
176 | unsigned long acc_type; | 182 | unsigned long acc_type; |
177 | int fault; | 183 | int fault; |
178 | unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; | 184 | unsigned int flags; |
185 | |||
186 | if (in_atomic()) | ||
187 | goto no_context; | ||
179 | 188 | ||
180 | if (in_atomic() || !mm) | 189 | tsk = current; |
190 | mm = tsk->mm; | ||
191 | if (!mm) | ||
181 | goto no_context; | 192 | goto no_context; |
182 | 193 | ||
194 | flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; | ||
183 | if (user_mode(regs)) | 195 | if (user_mode(regs)) |
184 | flags |= FAULT_FLAG_USER; | 196 | flags |= FAULT_FLAG_USER; |
197 | |||
198 | acc_type = parisc_acctyp(code, regs->iir); | ||
185 | if (acc_type & VM_WRITE) | 199 | if (acc_type & VM_WRITE) |
186 | flags |= FAULT_FLAG_WRITE; | 200 | flags |= FAULT_FLAG_WRITE; |
187 | retry: | 201 | retry: |
@@ -196,8 +210,6 @@ retry: | |||
196 | 210 | ||
197 | good_area: | 211 | good_area: |
198 | 212 | ||
199 | acc_type = parisc_acctyp(code,regs->iir); | ||
200 | |||
201 | if ((vma->vm_flags & acc_type) != acc_type) | 213 | if ((vma->vm_flags & acc_type) != acc_type) |
202 | goto bad_area; | 214 | goto bad_area; |
203 | 215 | ||
@@ -268,12 +280,22 @@ bad_area: | |||
268 | } | 280 | } |
269 | show_regs(regs); | 281 | show_regs(regs); |
270 | #endif | 282 | #endif |
271 | /* FIXME: actually we need to get the signo and code correct */ | 283 | switch (code) { |
272 | si.si_signo = SIGSEGV; | 284 | case 15: /* Data TLB miss fault/Data page fault */ |
285 | case 17: /* NA data TLB miss / page fault */ | ||
286 | case 18: /* Unaligned access - PCXS only */ | ||
287 | si.si_signo = SIGBUS; | ||
288 | si.si_code = BUS_ADRERR; | ||
289 | break; | ||
290 | case 16: /* Non-access instruction TLB miss fault */ | ||
291 | case 26: /* PCXL: Data memory access rights trap */ | ||
292 | default: | ||
293 | si.si_signo = SIGSEGV; | ||
294 | si.si_code = SEGV_MAPERR; | ||
295 | } | ||
273 | si.si_errno = 0; | 296 | si.si_errno = 0; |
274 | si.si_code = SEGV_MAPERR; | ||
275 | si.si_addr = (void __user *) address; | 297 | si.si_addr = (void __user *) address; |
276 | force_sig_info(SIGSEGV, &si, current); | 298 | force_sig_info(si.si_signo, &si, current); |
277 | return; | 299 | return; |
278 | } | 300 | } |
279 | 301 | ||