Compare commits
148 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ca726dd20 | ||
|
|
af9cec82a3 | ||
|
|
29f13318a3 | ||
|
|
fdc263cb21 | ||
|
|
07dec24ea7 | ||
|
|
7adc359067 | ||
|
|
7e1109112b | ||
|
|
a3c890edbe | ||
|
|
fbc978be69 | ||
|
|
2f8c0be373 | ||
|
|
dda4c8ded1 | ||
|
|
786d460759 | ||
|
|
d9bdee82eb | ||
|
|
365577d418 | ||
|
|
7c8aa2a2c4 | ||
|
|
455ee889cb | ||
|
|
f4a2bd612d | ||
|
|
8cb12224b9 | ||
|
|
c5251bc7fb | ||
|
|
ce15d645be | ||
|
|
a96313e196 | ||
|
|
16efe059d7 | ||
|
|
5bd23aa290 | ||
|
|
7907a3cd74 | ||
|
|
736de833de | ||
|
|
88a3381ac4 | ||
|
|
60a8a27c70 | ||
|
|
d7c19e06c0 | ||
|
|
45a782f6d3 | ||
|
|
7a0a7db74d | ||
|
|
16bd76171d | ||
|
|
4d7c6b9018 | ||
|
|
6685a27880 | ||
|
|
ed56c73082 | ||
|
|
fa44e9fd9f | ||
|
|
2c7b199d8c | ||
|
|
31ece0102d | ||
|
|
5cef509b77 | ||
|
|
c140072f7f | ||
|
|
7dec002956 | ||
|
|
4b57f309c7 | ||
|
|
4038895354 | ||
|
|
fd3a50f30a | ||
|
|
de118fdb83 | ||
|
|
ce005fe2dc | ||
|
|
c1c4696c55 | ||
|
|
9d066c5537 | ||
|
|
bc35d5cf3a | ||
|
|
ebd7718e1d | ||
|
|
081d17d5e9 | ||
|
|
4dbe3951c0 | ||
|
|
3e45ced8ed | ||
|
|
dcba3e47ae | ||
|
|
54c8f25d8d | ||
|
|
92cce7f8f6 | ||
|
|
c35eb60a60 | ||
|
|
9e245ead59 | ||
|
|
8394f9abcf | ||
|
|
d5bf5dcc70 | ||
|
|
4663ea7ac2 | ||
|
|
e40a76c139 | ||
|
|
c7228d304b | ||
|
|
a9e5080da8 | ||
|
|
06186dfdff | ||
|
|
ab959db97c | ||
|
|
a6964caecf | ||
|
|
2968963f0b | ||
|
|
5c3c16ba28 | ||
|
|
35a02f9ac3 | ||
|
|
7076c92c23 | ||
|
|
8f093d8c96 | ||
|
|
084d5cbca7 | ||
|
|
b8bf1362de | ||
|
|
487e4d78da | ||
|
|
fac9fd36ec | ||
|
|
5bfd09461d | ||
|
|
dfcfe74aa7 | ||
|
|
f63cfaf93a | ||
|
|
a1aa854d8c | ||
|
|
07eead3546 | ||
|
|
37128f56c6 | ||
|
|
ba4f7f5014 | ||
|
|
2f0935ad4f | ||
|
|
a43ca81f7b | ||
|
|
73a35b993e | ||
|
|
94adc799cb | ||
|
|
c08b49e452 | ||
|
|
3ebffba4f6 | ||
|
|
fb84bd51fb | ||
|
|
c22521011c | ||
|
|
5613a02468 | ||
|
|
b9c237fd69 | ||
|
|
3ff22b9f26 | ||
|
|
e00d73683c | ||
|
|
45fbfae2b4 | ||
|
|
7ffcbba219 | ||
|
|
5bfb0a6fb8 | ||
|
|
867bebcea9 | ||
|
|
f0bdb962de | ||
|
|
38c97e08f7 | ||
|
|
a950d805dc | ||
|
|
9f10c3d7e5 | ||
|
|
7898ca3d1b | ||
|
|
ffcfd3fb76 | ||
|
|
c940e9b1b0 | ||
|
|
769f573dc2 | ||
|
|
9a3ee122e6 | ||
|
|
fd60595ce9 | ||
|
|
7533b162d1 | ||
|
|
905bf1d52c | ||
|
|
7467be68cd | ||
|
|
222a8ce2e6 | ||
|
|
e6201b5216 | ||
|
|
a05a042168 | ||
|
|
c8ed7db337 | ||
|
|
2310eda43d | ||
|
|
78d3eaee97 | ||
|
|
7371a35ab0 | ||
|
|
d759c9159e | ||
|
|
07cce39b2f | ||
|
|
6dfffa5898 | ||
|
|
f3e16bdf3c | ||
|
|
5161ff7728 | ||
|
|
d47af17904 | ||
|
|
3a4b7f0c66 | ||
|
|
4f6241e91f | ||
|
|
f2d0da0d23 | ||
|
|
52c0e26861 | ||
|
|
f81c481b2b | ||
|
|
f690b02b0d | ||
|
|
bace4b33bc | ||
|
|
fdc8afc978 | ||
|
|
8b8c89b0d5 | ||
|
|
bb314e4958 | ||
|
|
4e7843a1f2 | ||
|
|
fd554cc70a | ||
|
|
ebfcf6e0d7 | ||
|
|
0bf6d25f41 | ||
|
|
76fc9b8a7b | ||
|
|
ee4b78d86a | ||
|
|
5ad0e98752 | ||
|
|
e573f4aa51 | ||
|
|
8e2ce3ce88 | ||
|
|
cec1fd6cfe | ||
|
|
78cf92dcac | ||
|
|
13cbc19d00 | ||
|
|
cf83d0d22d | ||
|
|
3494df0003 |
294 changed files with 109234 additions and 392719 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -1,2 +1,5 @@
|
||||||
*.xz
|
linux-*.tar.bz2
|
||||||
*.bz2
|
patch-*.bz2
|
||||||
|
clog
|
||||||
|
*.rpm
|
||||||
|
kernel-2.6.*/
|
||||||
|
|
|
||||||
301
Makefile
Normal file
301
Makefile
Normal file
|
|
@ -0,0 +1,301 @@
|
||||||
|
# Makefile for source rpm: kernel
|
||||||
|
SPECFILE := kernel.spec
|
||||||
|
|
||||||
|
# use noarch for make prep instead of the current CPU
|
||||||
|
# noarch creates and checks all config files not just the current one,
|
||||||
|
# in addition "i386" isn't a valid kernel target
|
||||||
|
PREPARCH = noarch
|
||||||
|
|
||||||
|
# we only check the .sign signatures
|
||||||
|
UPSTREAM_CHECKS = sign
|
||||||
|
|
||||||
|
.PHONY: help
|
||||||
|
help:
|
||||||
|
%:
|
||||||
|
@echo "Try fedpkg $@ or something like that"
|
||||||
|
@exit 1
|
||||||
|
|
||||||
|
include Makefile.config
|
||||||
|
|
||||||
|
ifndef KVERSION
|
||||||
|
KVERSION := $(shell awk '$$1 == "%define" && $$2 == "base_sublevel" { \
|
||||||
|
print "2.6." $$3 \
|
||||||
|
}' $(SPECFILE))
|
||||||
|
endif
|
||||||
|
|
||||||
|
prep:
|
||||||
|
fedpkg -v prep --arch=$(PREPARCH)
|
||||||
|
|
||||||
|
extremedebug:
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_PAGEALLOC is not set/CONFIG_DEBUG_PAGEALLOC=y/' config-nodebug
|
||||||
|
|
||||||
|
debug:
|
||||||
|
@perl -pi -e 's/# CONFIG_SLUB_DEBUG_ON is not set/CONFIG_SLUB_DEBUG_ON=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_LOCK_STAT is not set/CONFIG_LOCK_STAT=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_STACK_USAGE is not set/CONFIG_DEBUG_STACK_USAGE=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_SLAB is not set/CONFIG_DEBUG_SLAB=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_MUTEXES is not set/CONFIG_DEBUG_MUTEXES=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_RT_MUTEXES is not set/CONFIG_DEBUG_RT_MUTEXES=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_RWSEMS is not set/CONFIG_DEBUG_RWSEMS=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_LOCK_ALLOC is not set/CONFIG_DEBUG_LOCK_ALLOC=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_PROVE_LOCKING is not set/CONFIG_PROVE_LOCKING=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_PROVE_RCU is not set/CONFIG_PROVE_RCU=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_SPINLOCK is not set/CONFIG_DEBUG_SPINLOCK=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_VM is not set/CONFIG_DEBUG_VM=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_SLEEP_IN_IRQ is not set/CONFIG_DEBUG_SLEEP_IN_IRQ=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_FAULT_INJECTION is not set/CONFIG_FAULT_INJECTION=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_FAILSLAB is not set/CONFIG_FAILSLAB=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_FAIL_PAGE_ALLOC is not set/CONFIG_FAIL_PAGE_ALLOC=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_FAIL_IO_TIMEOUT is not set/CONFIG_FAIL_IO_TIMEOUT=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_FAIL_MAKE_REQUEST is not set/CONFIG_FAIL_MAKE_REQUEST=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_FAULT_INJECTION_DEBUG_FS is not set/CONFIG_FAULT_INJECTION_DEBUG_FS=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set/CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_SG is not set/CONFIG_DEBUG_SG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_WRITECOUNT is not set/CONFIG_DEBUG_WRITECOUNT=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_OBJECTS is not set/CONFIG_DEBUG_OBJECTS=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_OBJECTS_FREE is not set/CONFIG_DEBUG_OBJECTS_FREE=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_OBJECTS_TIMERS is not set/CONFIG_DEBUG_OBJECTS_TIMERS=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_X86_PTDUMP is not set/CONFIG_X86_PTDUMP=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_CAN_DEBUG_DEVICES is not set/CONFIG_CAN_DEBUG_DEVICES=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_MODULE_FORCE_UNLOAD is not set/CONFIG_MODULE_FORCE_UNLOAD=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_SYSCTL_SYSCALL_CHECK is not set/CONFIG_SYSCTL_SYSCALL_CHECK=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_NOTIFIERS is not set/CONFIG_DEBUG_NOTIFIERS=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DMA_API_DEBUG is not set/CONFIG_DMA_API_DEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_PM_TEST_SUSPEND is not set/CONFIG_PM_TEST_SUSPEND=y/' config-generic
|
||||||
|
@perl -pi -e 's/# CONFIG_PM_ADVANCED_DEBUG is not set/CONFIG_PM_ADVANCED_DEBUG=y/' config-generic
|
||||||
|
@perl -pi -e 's/# CONFIG_BOOT_TRACER is not set/CONFIG_BOOT_TRACER=y/' config-generic
|
||||||
|
@perl -pi -e 's/# CONFIG_B43_DEBUG is not set/CONFIG_B43_DEBUG=y/' config-generic
|
||||||
|
@perl -pi -e 's/# CONFIG_B43LEGACY_DEBUG is not set/CONFIG_B43LEGACY_DEBUG=y/' config-generic
|
||||||
|
@perl -pi -e 's/# CONFIG_MMIOTRACE is not set/CONFIG_MMIOTRACE=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_STRIP_ASM_SYMS=y/# CONFIG_STRIP_ASM_SYMS is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_CREDENTIALS is not set/CONFIG_DEBUG_CREDENTIALS=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set/CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_ACPI_DEBUG is not set/CONFIG_ACPI_DEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_EXT4_DEBUG is not set/CONFIG_EXT4_DEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_PERF_USE_VMALLOC is not set/CONFIG_DEBUG_PERF_USE_VMALLOC=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_JBD2_DEBUG is not set/CONFIG_JBD2_DEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_CFQ_IOSCHED is not set/CONFIG_DEBUG_CFQ_IOSCHED=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DRBD_FAULT_INJECTION is not set/CONFIG_DRBD_FAULT_INJECTION=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_ATH_DEBUG is not set/CONFIG_ATH_DEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_IWLWIFI_DEVICE_TRACING is not set/CONFIG_IWLWIFI_DEVICE_TRACING=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_OBJECTS_WORK is not set/CONFIG_DEBUG_OBJECTS_WORK=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set/CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DMADEVICES_DEBUG is not set/CONFIG_DMADEVICES_DEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DMADEVICES_VDEBUG is not set/CONFIG_DMADEVICES_VDEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_CEPH_FS_PRETTYDEBUG is not set/CONFIG_CEPH_FS_PRETTYDEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_QUOTA_DEBUG is not set/CONFIG_QUOTA_DEBUG=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_KGDB_KDB is not set/CONFIG_KGDB_KDB=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_KDB_KEYBOARD is not set/CONFIG_KDB_KEYBOARD=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set/CONFIG_CPU_NOTIFIER_ERROR_INJECT=m/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_DEBUG_PER_CPU_MAPS is not set/CONFIG_DEBUG_PER_CPU_MAPS=y/' config-nodebug
|
||||||
|
|
||||||
|
@# just in case we're going from extremedebug -> debug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-nodebug
|
||||||
|
|
||||||
|
@perl -pi -e 's/CONFIG_NR_CPUS=256/CONFIG_NR_CPUS=512/' config-x86_64-generic
|
||||||
|
|
||||||
|
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec
|
||||||
|
@perl -pi -e 's/^%define rawhide_skip_docs 0/%define rawhide_skip_docs 1/' kernel.spec
|
||||||
|
|
||||||
|
nodebuginfo:
|
||||||
|
@perl -pi -e 's/^%define with_debuginfo %\{\?_without_debuginfo: 0\} %\{\?\!_without_debuginfo: 1\}/%define with_debuginfo %\{\?_without_debuginfo: 0\} %\{\?\!_without_debuginfo: 0\}/' kernel.spec
|
||||||
|
nodebug: release
|
||||||
|
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec
|
||||||
|
release:
|
||||||
|
@perl -pi -e 's/CONFIG_SLUB_DEBUG_ON=y/# CONFIG_SLUB_DEBUG_ON is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_LOCK_STAT=y/# CONFIG_LOCK_STAT is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_STACK_USAGE=y/# CONFIG_DEBUG_STACK_USAGE is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_SLAB=y/# CONFIG_DEBUG_SLAB is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_MUTEXES=y/# CONFIG_DEBUG_MUTEXES is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_RT_MUTEXES=y/# CONFIG_DEBUG_RT_MUTEXES is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_RWSEMS=y/# CONFIG_DEBUG_RWSEMS is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_LOCK_ALLOC=y/# CONFIG_DEBUG_LOCK_ALLOC is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_PROVE_LOCKING=y/# CONFIG_PROVE_LOCKING is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_PROVE_RCU=y/# CONFIG_PROVE_RCU is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_SPINLOCK=y/# CONFIG_DEBUG_SPINLOCK is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_VM=y/# CONFIG_DEBUG_VM is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_SLEEP_IN_IRQ=y/# CONFIG_DEBUG_SLEEP_IN_IRQ is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_FAULT_INJECTION=y/# CONFIG_FAULT_INJECTION is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_FAILSLAB=y/# CONFIG_FAILSLAB is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_FAIL_PAGE_ALLOC=y/# CONFIG_FAIL_PAGE_ALLOC is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_FAIL_IO_TIMEOUT=y/# CONFIG_FAIL_IO_TIMEOUT is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_FAIL_MAKE_REQUEST=y/# CONFIG_FAIL_MAKE_REQUEST is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_FAULT_INJECTION_DEBUG_FS=y/# CONFIG_FAULT_INJECTION_DEBUG_FS is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y/# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_SG=y/# CONFIG_DEBUG_SG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_WRITECOUNT=y/# CONFIG_DEBUG_WRITECOUNT is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_OBJECTS=y/# CONFIG_DEBUG_OBJECTS is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_OBJECTS_FREE=y/# CONFIG_DEBUG_OBJECTS_FREE is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_OBJECTS_TIMERS=y/# CONFIG_DEBUG_OBJECTS_TIMERS is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_X86_PTDUMP=y/# CONFIG_X86_PTDUMP is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_CAN_DEBUG_DEVICES=y/# CONFIG_CAN_DEBUG_DEVICES is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_MODULE_FORCE_UNLOAD=y/# CONFIG_MODULE_FORCE_UNLOAD is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_SYSCTL_SYSCALL_CHECK=y/# CONFIG_SYSCTL_SYSCALL_CHECK is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_NOTIFIERS=y/# CONFIG_DEBUG_NOTIFIERS is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DMA_API_DEBUG=y/# CONFIG_DMA_API_DEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_PM_TEST_SUSPEND=y/#\ CONFIG_PM_TEST_SUSPEND\ is\ not\ set/' config-generic
|
||||||
|
@perl -pi -e 's/CONFIG_PM_ADVANCED_DEBUG=y/#\ CONFIG_PM_ADVANCED_DEBUG\ is\ not\ set/' config-generic
|
||||||
|
@perl -pi -e 's/CONFIG_BOOT_TRACER=y/#\ CONFIG_BOOT_TRACER\ is\ not\ set/' config-generic
|
||||||
|
@perl -pi -e 's/CONFIG_B43_DEBUG=y/# CONFIG_B43_DEBUG is not set/' config-generic
|
||||||
|
@perl -pi -e 's/CONFIG_B43LEGACY_DEBUG=y/# CONFIG_B43LEGACY_DEBUG is not set/' config-generic
|
||||||
|
@perl -pi -e 's/CONFIG_MMIOTRACE=y/# CONFIG_MMIOTRACE is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/# CONFIG_STRIP_ASM_SYMS is not set/CONFIG_STRIP_ASM_SYMS=y/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_CREDENTIALS=y/# CONFIG_DEBUG_CREDENTIALS is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y/# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_ACPI_DEBUG=y/# CONFIG_ACPI_DEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_EXT4_DEBUG=y/# CONFIG_EXT4_DEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_PERF_USE_VMALLOC=y/# CONFIG_DEBUG_PERF_USE_VMALLOC is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_JBD2_DEBUG=y/# CONFIG_JBD2_DEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_CFQ_IOSCHED=y/# CONFIG_DEBUG_CFQ_IOSCHED is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DRBD_FAULT_INJECTION=y/# CONFIG_DRBD_FAULT_INJECTION is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_ATH_DEBUG=y/# CONFIG_ATH_DEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_IWLWIFI_DEVICE_TRACING=y/# CONFIG_IWLWIFI_DEVICE_TRACING is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_OBJECTS_WORK=y/# CONFIG_DEBUG_OBJECTS_WORK is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y/# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DMADEVICES_DEBUG=y/# CONFIG_DMADEVICES_DEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DMADEVICES_VDEBUG=y/# CONFIG_DMADEVICES_VDEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_CEPH_FS_PRETTYDEBUG=y/# CONFIG_CEPH_FS_PRETTYDEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_QUOTA_DEBUG=y/# CONFIG_QUOTA_DEBUG is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_CPU_NOTIFIER_ERROR_INJECT=m/# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set/' config-nodebug
|
||||||
|
#@perl -pi -e 's/CONFIG_KGDB_KDB=y/# CONFIG_KGDB_KDB is not set/' config-nodebug
|
||||||
|
#@perl -pi -e 's/CONFIG_KDB_KEYBOARD=y/# CONFIG_KDB_KEYBOARD is not set/' config-nodebug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_PER_CPU_MAPS=y/# CONFIG_DEBUG_PER_CPU_MAPS is not set/' config-nodebug
|
||||||
|
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-debug
|
||||||
|
@perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-nodebug
|
||||||
|
|
||||||
|
@perl -pi -e 's/CONFIG_NR_CPUS=512/CONFIG_NR_CPUS=256/' config-x86_64-generic
|
||||||
|
|
||||||
|
@perl -pi -e 's/^%define debugbuildsenabled 0/%define debugbuildsenabled 1/' kernel.spec
|
||||||
|
@perl -pi -e 's/^%define rawhide_skip_docs 1/%define rawhide_skip_docs 0/' kernel.spec
|
||||||
|
|
||||||
|
reconfig:
|
||||||
|
@rm -f kernel-*-config
|
||||||
|
@VERSION=$(KVERSION) make -f Makefile.config configs
|
||||||
|
@scripts/reconfig.sh
|
||||||
|
|
||||||
|
unused-kernel-patches:
|
||||||
|
@for f in *.patch; do if [ -e $$f ]; then (egrep -q "^Patch[[:digit:]]+:[[:space:]]+$$f" $(SPECFILE) || echo "Unused: $$f") && egrep -q "^ApplyPatch[[:space:]]+$$f|^ApplyOptionalPatch[[:space:]]+$$f" $(SPECFILE) || echo "Unapplied: $$f"; fi; done
|
||||||
|
|
||||||
|
# since i386 isn't a target...
|
||||||
|
compile compile-short: DIST_DEFINES += --target $(shell uname -m)
|
||||||
|
|
||||||
|
# 'make local' also needs to build the noarch firmware package
|
||||||
|
local: noarch
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hacks for building vanilla (unpatched) kernel rpms.
|
||||||
|
# Use "make vanilla-TARGET" like "make TARGET" (make vanilla-scratch-build).
|
||||||
|
#
|
||||||
|
vanilla-%: $(SPECFILE:.spec=-vanilla.spec)
|
||||||
|
@$(MAKE) $* SPECFILE=$<
|
||||||
|
|
||||||
|
$(SPECFILE:.spec=-vanilla.spec): $(SPECFILE)
|
||||||
|
@rm -f $@
|
||||||
|
(echo %define nopatches 1; cat $<) > $@
|
||||||
|
|
||||||
|
#scratch-build: NAME = $(shell rpm $(RPM_DEFINES) $(DIST_DEFINES) -q --qf "%{NAME}\n" --specfile $(SPECFILE)| head -1)
|
||||||
|
#scratch-build: test-srpm
|
||||||
|
# $(BUILD_CLIENT) build $(BUILD_FLAGS) --scratch $(TARGET) \
|
||||||
|
# $(SRCRPMDIR)/$(NAME)-$(VERSION)-$(RELEASE).src.rpm
|
||||||
|
|
||||||
|
# Dismal kludge for building via brew from cvs after "make vanilla-tag".
|
||||||
|
ifdef BEEHIVE_SRPM_BUILD
|
||||||
|
export CHECKOUT_TAG ?= $(shell sed s/^.// CVS/Tag)
|
||||||
|
tag-pattern = $(TAG_NAME)-$(TAG_VERSION)-0_%_$(TAG_RELEASE)
|
||||||
|
ifeq (,$(filter-out $(tag-pattern),$(CHECKOUT_TAG)))
|
||||||
|
variant := $(patsubst $(tag-pattern),%,$(CHECKOUT_TAG))
|
||||||
|
srpm: SPECFILE := $(wildcard $(SPECFILE:.spec=-$(variant).spec) \
|
||||||
|
$(SPECFILE:.spec=.t.$(variant).spec))
|
||||||
|
srpm beehive-sprm: RELEASE := 0.$(variant).$(RELEASE)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hacks for building kernel rpms from upstream code plus local GIT branches.
|
||||||
|
# Use "make git/BRANCH/TARGET" like "make TARGET".
|
||||||
|
# Use "make git/BRANCH-fedora/TARGET" to include Fedora patches on top.
|
||||||
|
#
|
||||||
|
ifndef GIT_SPEC
|
||||||
|
git/%:
|
||||||
|
@$(MAKE) GIT_SPEC=$(subst /,-,$(*D)) git-$(*F)
|
||||||
|
else
|
||||||
|
git-%: $(SPECFILE:.spec=.t.$(GIT_SPEC).spec)
|
||||||
|
@$(MAKE) GIT_SPEC= $* SPECFILE=$<
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Your git-branches.mk file can define GIT_DIR, e.g.:
|
||||||
|
# GIT_DIR = ${HOME}/kernel/.git
|
||||||
|
# Make sure GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL are also set
|
||||||
|
# or your rpm changelogs will look like crap.
|
||||||
|
#
|
||||||
|
# For each branch it can define a variable branch-BRANCH or tag-BRANCH
|
||||||
|
# giving the parent of BRANCH to diff against in a separate patch. If
|
||||||
|
# the parent is unknown, it will use $(branch-upstream) defaulting to
|
||||||
|
# "refs/remotes/upstream/master".
|
||||||
|
#
|
||||||
|
# Defining tag-BRANCH means the tag corresponds to an upstream patch in
|
||||||
|
# the sources file, so that is used instead of generating a patch with
|
||||||
|
# git. If there is no tag-upstream defined, it will figure out a vNNN
|
||||||
|
# tag or vNNN-gitN pseudo-tag from the last patch in the sources file.
|
||||||
|
# For example:
|
||||||
|
# tag-some-hacks = v2.6.21-rc5
|
||||||
|
# branch-more-hacks = some-hacks
|
||||||
|
# Leads to patches:
|
||||||
|
# git diff v2.6.21-rc5..more-hacks > linux-2.6.21-rc5-some-hacks.patch
|
||||||
|
# git diff some-hacks..more-hacks > linux-2.6.21-rc5-more-hacks.patch
|
||||||
|
# Whereas having no git-branches.mk at all but doing
|
||||||
|
# "make GIT_DIR=... git/mybranch/test-srpm" does:
|
||||||
|
# id=`cat patch-2.6.21-rc5-git4.id` # auto-fetched via upstream file
|
||||||
|
# git diff $id..upstream > linux-2.6.21-rc5-git4-upstream.patch
|
||||||
|
# git diff upstream..mybranch > linux-2.6.21-rc5-git4-mybranch.patch
|
||||||
|
# If the upstream patch (or any branch patch) is empty it's left out.
|
||||||
|
#
|
||||||
|
git-branches.mk:;
|
||||||
|
-include git-branches.mk
|
||||||
|
|
||||||
|
branch-upstream ?= refs/remotes/upstream/master
|
||||||
|
|
||||||
|
ifdef GIT_DIR
|
||||||
|
export GIT_DIR
|
||||||
|
export GIT_AUTHOR_NAME
|
||||||
|
export GIT_AUTHOR_EMAIL
|
||||||
|
gen-patches ?= gen-patches
|
||||||
|
|
||||||
|
ifndef havespec
|
||||||
|
$(SPECFILE:.spec=.t.%-fedora.spec): $(SPECFILE) $(gen-patches) FORCE
|
||||||
|
./$(gen-patches) --fedora < $< > $@ $(gen-patches-args)
|
||||||
|
$(SPECFILE:.spec=.t.%.spec): $(SPECFILE) $(gen-patches) FORCE
|
||||||
|
./$(gen-patches) < $< > $@ $(gen-patches-args)
|
||||||
|
.PRECIOUS: $(SPECFILE:.spec=.t.%.spec) $(SPECFILE:.spec=.t.%-fedora.spec)
|
||||||
|
endif
|
||||||
|
|
||||||
|
spec-%: $(SPECFILE:.spec=.t.%.spec) ;
|
||||||
|
$(SPECFILE):;
|
||||||
|
FORCE:;
|
||||||
|
|
||||||
|
branch-of-* = $(firstword $(head-$*) $*)
|
||||||
|
gen-patches-args = --name $* v$(KVERSION) $(call heads,$(branch-of-*))
|
||||||
|
define heads
|
||||||
|
$(if $(tag-$1),$(filter-out v$(KVERSION),$(tag-$1)),\
|
||||||
|
$(call heads,$(firstword $(branch-$1) $(branch-upstream)))) $1
|
||||||
|
endef
|
||||||
|
|
||||||
|
files-%-fedora:
|
||||||
|
@echo $(SPECFILE:.spec=.t.$*-fedora.spec)
|
||||||
|
@$(call list-patches,$(branch-of-*))
|
||||||
|
files-%:
|
||||||
|
@echo $(SPECFILE:.spec=.t.$*.spec)
|
||||||
|
@$(call list-patches,$(branch-of-*))
|
||||||
|
define list-patches
|
||||||
|
$(if $(tag-$1),version=$(patsubst v%,%,$(tag-$1)),\
|
||||||
|
$(call list-patches,$(firstword $(branch-$1) $(branch-upstream)))); \
|
||||||
|
echo linux-$${version}-$(patsubst refs/remotes/%/master,%,$1).patch
|
||||||
|
endef
|
||||||
|
|
||||||
|
ifndef tag-$(branch-upstream)
|
||||||
|
tag-$(branch-upstream) := $(shell \
|
||||||
|
sed -n 's/^.* *//;s/\.bz2$$//;s/patch-/v/;/^v/h;$${g;p}' sources)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
105
Makefile.config
Normal file
105
Makefile.config
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
# Make rules for configuration files.
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
|
||||||
|
CFG = kernel-$(VERSION)
|
||||||
|
|
||||||
|
CONFIGFILES = \
|
||||||
|
$(CFG)-i686.config $(CFG)-i686-debug.config \
|
||||||
|
$(CFG)-i686-PAE.config $(CFG)-i686-PAEdebug.config \
|
||||||
|
$(CFG)-x86_64.config $(CFG)-x86_64-debug.config \
|
||||||
|
$(CFG)-s390x.config $(CFG)-arm.config \
|
||||||
|
$(CFG)-ppc.config $(CFG)-ppc-smp.config \
|
||||||
|
$(CFG)-sparc64.config \
|
||||||
|
$(CFG)-ppc64.config $(CFG)-ppc64-debug.config \
|
||||||
|
$(CFG)-ia64.config
|
||||||
|
|
||||||
|
PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x ia64 sparc64
|
||||||
|
TEMPFILES = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS)))
|
||||||
|
|
||||||
|
configs: $(CONFIGFILES)
|
||||||
|
@rm -f kernel-*-config
|
||||||
|
@rm -f $(TEMPFILES)
|
||||||
|
@rm -f temp-generic temp-*-generic temp-*-generic-tmp
|
||||||
|
|
||||||
|
# Augment the clean target to clean up our own cruft
|
||||||
|
clean ::
|
||||||
|
@rm -fv $(CONFIGFILES) $(TEMPFILES) temp-generic kernel-$(VERSION)*config
|
||||||
|
|
||||||
|
temp-generic: config-generic
|
||||||
|
cat config-generic config-nodebug > temp-generic
|
||||||
|
|
||||||
|
temp-debug-generic: config-generic
|
||||||
|
cat config-generic config-debug > temp-debug-generic
|
||||||
|
|
||||||
|
temp-x86-generic: config-x86-generic temp-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-x86-debug-generic: config-x86-generic temp-debug-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-x86_64-generic: config-x86_64-generic temp-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-x86_64-debug-generic: config-x86_64-generic temp-debug-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-sparc64-generic: config-sparc64-generic temp-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-powerpc-generic: config-powerpc-generic temp-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-powerpc-debug-generic: config-powerpc-generic temp-debug-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-powerpc32-generic: config-powerpc32-generic temp-powerpc-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-s390-generic: config-s390x temp-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
temp-ia64-generic: config-ia64-generic temp-generic
|
||||||
|
perl merge.pl $^ > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-i686-PAE.config: config-i686-PAE temp-x86-generic
|
||||||
|
perl merge.pl $^ i386 > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-i686-PAEdebug.config: config-i686-PAE temp-x86-debug-generic
|
||||||
|
perl merge.pl $^ i386 > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-i686.config: /dev/null temp-x86-generic
|
||||||
|
perl merge.pl $^ i386 > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-i686-debug.config: /dev/null temp-x86-debug-generic
|
||||||
|
perl merge.pl $^ i386 > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-x86_64.config: /dev/null temp-x86_64-generic
|
||||||
|
perl merge.pl $^ x86_64 > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-x86_64-debug.config: /dev/null temp-x86_64-debug-generic
|
||||||
|
perl merge.pl $^ x86_64 > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-sparc64.config: /dev/null temp-sparc64-generic
|
||||||
|
perl merge.pl $^ sparc64 > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-ppc64.config: config-powerpc64 temp-powerpc-generic
|
||||||
|
perl merge.pl $^ powerpc > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-ppc64-debug.config: config-powerpc64 temp-powerpc-debug-generic
|
||||||
|
perl merge.pl $^ powerpc > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-s390x.config: config-s390x temp-s390-generic
|
||||||
|
perl merge.pl $^ s390 > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-arm.config: config-arm temp-generic
|
||||||
|
perl merge.pl $^ arm > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-ppc.config: /dev/null temp-powerpc32-generic
|
||||||
|
perl merge.pl $^ powerpc > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-ppc-smp.config: config-powerpc32-smp temp-powerpc32-generic
|
||||||
|
perl merge.pl $^ powerpc > $@
|
||||||
|
|
||||||
|
kernel-$(VERSION)-ia64.config: /dev/null temp-ia64-generic
|
||||||
|
perl merge.pl $^ ia64 > $@
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
RHEL_MAJOR = 10
|
|
||||||
RHEL_MINOR = 99
|
|
||||||
|
|
||||||
#
|
|
||||||
# RHEL_RELEASE
|
|
||||||
# -------------
|
|
||||||
#
|
|
||||||
# Represents build number in 'release' part of RPM's name-version-release.
|
|
||||||
# name is <package_name>, e.g. kernel
|
|
||||||
# version is upstream kernel version this kernel is based on, e.g. 4.18.0
|
|
||||||
# release is <RHEL_RELEASE>.<dist_tag>[<buildid>], e.g. 100.el8
|
|
||||||
#
|
|
||||||
# Use this spot to avoid future merge conflicts.
|
|
||||||
# Do not trim this comment.
|
|
||||||
RHEL_RELEASE = 38
|
|
||||||
|
|
||||||
#
|
|
||||||
# RHEL_REBASE_NUM
|
|
||||||
# ----------------
|
|
||||||
#
|
|
||||||
# Used in RPM version string for Gemini kernels, which dont use upstream
|
|
||||||
# VERSION/PATCHLEVEL/SUBLEVEL. The number represents rebase number for
|
|
||||||
# current MAJOR release.
|
|
||||||
#
|
|
||||||
# Use this spot to avoid future merge conflicts.
|
|
||||||
# Do not trim this comment.
|
|
||||||
RHEL_REBASE_NUM = 1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# ZSTREAM
|
|
||||||
# -------
|
|
||||||
#
|
|
||||||
# This variable controls whether we use zstream numbering or not for the
|
|
||||||
# package release. The zstream release keeps the build number of the last
|
|
||||||
# build done for ystream for the Beta milestone, and increments a second
|
|
||||||
# number for each build. The third number is used for branched builds
|
|
||||||
# (eg.: for builds with security fixes or hot fixes done outside of the
|
|
||||||
# batch release process).
|
|
||||||
#
|
|
||||||
# For example, with ZSTREAM unset or set to "no", all builds will contain
|
|
||||||
# a release with only the build number, eg.: kernel-<kernel version>-X.el*,
|
|
||||||
# where X is the build number. With ZSTREAM set to "yes", we will have
|
|
||||||
# builds with kernel-<kernel version>-X.Y.Z.el*, where X is the last
|
|
||||||
# RHEL_RELEASE number before ZSTREAM flag was set to yes, Y will now be the
|
|
||||||
# build number and Z will always be 1 except if you're doing a branched build
|
|
||||||
# (when you give RHDISTGIT_BRANCH on the command line, in which case the Z
|
|
||||||
# number will be incremented instead of the Y).
|
|
||||||
#
|
|
||||||
ZSTREAM ?= no
|
|
||||||
|
|
||||||
#
|
|
||||||
# Automotive
|
|
||||||
# ----------
|
|
||||||
#
|
|
||||||
# Represents the major and minor release used by automotive.
|
|
||||||
# Primarily this is used to to identify the build target when
|
|
||||||
# building the automotive kernel package.
|
|
||||||
AUTOMOTIVE_MAJOR = 2
|
|
||||||
AUTOMOTIVE_MINOR = 99
|
|
||||||
|
|
@ -1,474 +0,0 @@
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/831ff9bcd8e9eab864062470a3250beb1e1ec924
|
|
||||||
831ff9bcd8e9eab864062470a3250beb1e1ec924 rust: Add -fdiagnostics-show-context to bindgen_skip_c_flags
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/fe3e9e24af806d756edbda922103b1fa95d9b89b
|
|
||||||
fe3e9e24af806d756edbda922103b1fa95d9b89b Revert "Removing Obsolete hba pci-ids from rhel8"
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c4a0a995da9df8732f688d09db5252173277589d
|
|
||||||
c4a0a995da9df8732f688d09db5252173277589d rh_messages.h: add missing lpfc devices
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/0ad9a88c3263fa8fa39437f69472588917255c99
|
|
||||||
0ad9a88c3263fa8fa39437f69472588917255c99 kernel: extend rh_waived to cope better with the CVE mitigations case
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/cf18c49636f2583c85831f909699034026325242
|
|
||||||
cf18c49636f2583c85831f909699034026325242 rh_messages.h: add missing aacraid device
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/26ca931184edb2c3c7f7c1951f53fa3333d9c90e
|
|
||||||
26ca931184edb2c3c7f7c1951f53fa3333d9c90e rh_messages.h: update unmaintained drivers
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c1c1a1b7059900f4b9b657f5189285a287160e11
|
|
||||||
c1c1a1b7059900f4b9b657f5189285a287160e11 arm64: add early lockdown for secure boot
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/a613ae52a8d9378e6fa70f697b3ce0acee220491
|
|
||||||
a613ae52a8d9378e6fa70f697b3ce0acee220491 efi: pass secure boot mode to kernel proper
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f869258b6b654d316e84325e46e431da4dfd04e7
|
|
||||||
f869258b6b654d316e84325e46e431da4dfd04e7 selftests/bpf: Remove ksyms_weak_lskel test
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/8b69219fe6a11766cf1a2e07dc94e56448b47824
|
|
||||||
8b69219fe6a11766cf1a2e07dc94e56448b47824 Simplify include Makefile.rhelver
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c2621ac616e25a9a04fbcb8af0c1f8b2bdd8c099
|
|
||||||
c2621ac616e25a9a04fbcb8af0c1f8b2bdd8c099 redhat: make ENABLE_WERROR also enable OBJTOOL_WERROR
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/d28cbdeb89fe565e10fb4be8d8378153e86611f6
|
|
||||||
d28cbdeb89fe565e10fb4be8d8378153e86611f6 main.c: fix initcall blacklisted
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/b71ab57c8db44881edc32a124ddc2ebe536b6a4c
|
|
||||||
b71ab57c8db44881edc32a124ddc2ebe536b6a4c arch/x86/kernel/setup.c: fix rh_check_supported
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c4ea2384863e54e0c5582b3508518e659581ce69
|
|
||||||
c4ea2384863e54e0c5582b3508518e659581ce69 efi,lockdown: fix kernel lockdown on Secure Boot
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/60b2ddeb0986e1c43a98b44a4ab414a7e2744701
|
|
||||||
60b2ddeb0986e1c43a98b44a4ab414a7e2744701 Revert "nvme: Return BLK_STS_TARGET if the DNR bit is set"
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/860632dd288c7aa7807959a79af9159482510cd1
|
|
||||||
860632dd288c7aa7807959a79af9159482510cd1 Revert "nvme: allow local retry and proper failover for REQ_FAILFAST_TRANSPORT"
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/aaef2c3ee081c8980bb60fd4b7a6ed9e187d9048
|
|
||||||
aaef2c3ee081c8980bb60fd4b7a6ed9e187d9048 Revert "nvme: decouple basic ANA log page re-read support from native multipathing"
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/5cd4353dae0ee79d13f57b7ccee85cd0bcbe4b4f
|
|
||||||
5cd4353dae0ee79d13f57b7ccee85cd0bcbe4b4f Revert "nvme: nvme_mpath_init remove multipath check"
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/656a0565ffe54f99ac1390a68c5ee7050ab6fb25
|
|
||||||
656a0565ffe54f99ac1390a68c5ee7050ab6fb25 redhat: automotive: define CONFIG_RH_AUTOMOTIVE
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f1025d6236c72b4fbd03940b6fa2178f2a84f418
|
|
||||||
f1025d6236c72b4fbd03940b6fa2178f2a84f418 redhat: fix modules.order target
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/6e0fa997052c92d6085a50083e75dedc0160443f
|
|
||||||
6e0fa997052c92d6085a50083e75dedc0160443f [redhat] rh_messages.h: driver and device updates
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/d8822fd0573e9f254f097c1743078e4e74ac70f5
|
|
||||||
d8822fd0573e9f254f097c1743078e4e74ac70f5 crypto: rng - Fix extrng EFAULT handling
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c224e4b6a61af08574bb0565755ed609bf08cacb
|
|
||||||
c224e4b6a61af08574bb0565755ed609bf08cacb crypto: sig - Disable signing
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/39417e970be7f6bc63f34d5ed5511f7e629802c2
|
|
||||||
39417e970be7f6bc63f34d5ed5511f7e629802c2 crypto: rng - Ensure stdrng is tested before user-space starts
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/52be246b6342ed5b1486729fd5c5893b10549a92
|
|
||||||
52be246b6342ed5b1486729fd5c5893b10549a92 [redhat] rh_messages.h: Mark BlueField-4 as disabled
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/2c9e64af9fa1f8599ce05877441afcac8ac91b04
|
|
||||||
2c9e64af9fa1f8599ce05877441afcac8ac91b04 Update the RHEL_DIFFERENCES help string
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/beef34cb1efc34b7fbee35535c66915995d12ed1
|
|
||||||
beef34cb1efc34b7fbee35535c66915995d12ed1 redhat: include resolve_btfids in kernel-devel
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/1a1426b7a8df854c78385dd8ce8b74e9ee641477
|
|
||||||
1a1426b7a8df854c78385dd8ce8b74e9ee641477 redhat: workaround CKI cross compilation for scripts
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/2c83d6cfffe1f891bf024df81be6cd41c2073ad9
|
|
||||||
2c83d6cfffe1f891bf024df81be6cd41c2073ad9 crypto: akcipher - Disable signing and decryption
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/af93553b8d335ccf5dd4f90ab9419e497aa36a80
|
|
||||||
af93553b8d335ccf5dd4f90ab9419e497aa36a80 crypto: dh - implement FIPS PCT
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f0540d9d32978dff227cbb930193e8dc2557b23b
|
|
||||||
f0540d9d32978dff227cbb930193e8dc2557b23b crypto: ecdh - disallow plain "ecdh" usage in FIPS mode
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/243ef89ad354eea332d7bfb23fd4cf259240de91
|
|
||||||
243ef89ad354eea332d7bfb23fd4cf259240de91 crypto: seqiv - flag instantiations as FIPS compliant
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/6a23cbc588e9b9f7b2bc7250c6c6903d4d904eb1
|
|
||||||
6a23cbc588e9b9f7b2bc7250c6c6903d4d904eb1 [kernel] bpf: set default value for bpf_jit_harden
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/bb84b630a172d0204c8d243c57a6a1d2eae7843c
|
|
||||||
bb84b630a172d0204c8d243c57a6a1d2eae7843c not upstream: Disable vdso getrandom when FIPS is enabled
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/b643998c61552fb5615268e7e529999d64d54175
|
|
||||||
b643998c61552fb5615268e7e529999d64d54175 Add support to rh_waived cmdline boot parameter
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/a1e04b6f3580382a902256c7bf8b395b9a1be47f
|
|
||||||
a1e04b6f3580382a902256c7bf8b395b9a1be47f rh_flags: fix failed when register_sysctl_sz rh_flags_table to kernel
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/03cf1862c6221ee2a6de9a5ab25adaec6460b62e
|
|
||||||
03cf1862c6221ee2a6de9a5ab25adaec6460b62e [redhat] rh_flags: constify the ctl_table argument of proc_handler
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/e2708e55f9151652da80e388b4bf88c649288c0f
|
|
||||||
e2708e55f9151652da80e388b4bf88c649288c0f redhat: rh_flags: declare proper static methods when !CONFIG_RHEL_DIFFERENCES
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/6f593811cc1e5664f45fe2d09916eada1187e992
|
|
||||||
6f593811cc1e5664f45fe2d09916eada1187e992 redhat: make bnx2xx drivers unmaintained in rhel-10
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/5db8220bd67c719a20c1269233585b40f48837da
|
|
||||||
5db8220bd67c719a20c1269233585b40f48837da rh_flags: Rename rh_features to rh_flags
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/19ca502a0087eed65a014c6271f9bfc207d8d7eb
|
|
||||||
19ca502a0087eed65a014c6271f9bfc207d8d7eb kernel: rh_features: fix reading empty feature list from /proc
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/ba24639032f00b47748a6f39a4eb33950df015c2
|
|
||||||
ba24639032f00b47748a6f39a4eb33950df015c2 rh_features: move rh_features entry to sys/kernel
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/883e43fe6a0da0d9ad90e7c997a95f11bab9b888
|
|
||||||
883e43fe6a0da0d9ad90e7c997a95f11bab9b888 rh_features: convert to atomic allocation
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c8daa2e832df14ee9174435a357b2ae0994a3ef3
|
|
||||||
c8daa2e832df14ee9174435a357b2ae0994a3ef3 add rh_features to /proc
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/4f33dbbe3ec578d49e12c07421b913bf480fccef
|
|
||||||
4f33dbbe3ec578d49e12c07421b913bf480fccef add support for rh_features
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/53a5900b05260b81f13eb3b9d6a9419429f310ab
|
|
||||||
53a5900b05260b81f13eb3b9d6a9419429f310ab [redhat] PCI: Fix pci_rh_check_status() call semantics
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/aeb9a237a0ec39b7bde89d8bb040cd5b267f6802
|
|
||||||
aeb9a237a0ec39b7bde89d8bb040cd5b267f6802 scsi: sd: condition probe_type under RHEL_DIFFERENCES
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/159e72af8b1631b720f4a7e0012fa624764cecde
|
|
||||||
159e72af8b1631b720f4a7e0012fa624764cecde scsi: sd: remove unused sd_probe_types
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/d8c04860eb7bf29617ca1754f1076fd9f5992e77
|
|
||||||
d8c04860eb7bf29617ca1754f1076fd9f5992e77 [redhat] rh_messages.h: mark mlx5 on Bluefield-3 as unmaintained
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/496c64b4afece4ab525467a6be71ffe60d0c564f
|
|
||||||
496c64b4afece4ab525467a6be71ffe60d0c564f [redhat] rh_messages.h: initial driver and device lists
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/5cf456aaba6f5c9406421c04c65d43b2c71f5927
|
|
||||||
5cf456aaba6f5c9406421c04c65d43b2c71f5927 arch/x86: Fix XSAVE check for x86_64-v2 check
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/252bf9586fca6e57a51966c0294a9a0cb33ff4f5
|
|
||||||
252bf9586fca6e57a51966c0294a9a0cb33ff4f5 arch/x86/kernel/setup.c: fixup rh_check_supported
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/30faf17591afbd4230d590355351044294ad43d2
|
|
||||||
30faf17591afbd4230d590355351044294ad43d2 lsm: update security_lock_kernel_down
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/e88ee9e2e869e7259faa5bf3ff6689becabb53cb
|
|
||||||
e88ee9e2e869e7259faa5bf3ff6689becabb53cb arch/x86: mark x86_64-v1 and x86_64-v2 processors as deprecated
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/26ebc304df38a49ce7cc69b4bdf220298cff2460
|
|
||||||
26ebc304df38a49ce7cc69b4bdf220298cff2460 redhat: kABI: add missing RH_KABI_SIZE_ALIGN_CHECKS Kconfig option
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/8c71392703448be8e8217592dd46ea1cc8b157e1
|
|
||||||
8c71392703448be8e8217592dd46ea1cc8b157e1 redhat: rh_kabi: introduce RH_KABI_EXCLUDE_WITH_SIZE
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/d42afcb843fcc87e59ba39b5574c18d89fd07a91
|
|
||||||
d42afcb843fcc87e59ba39b5574c18d89fd07a91 redhat: rh_kabi: move semicolon inside __RH_KABI_CHECK_SIZE
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/95a56955f9ba6ef1e1dd2d99d8f98254da274267
|
|
||||||
95a56955f9ba6ef1e1dd2d99d8f98254da274267 random: replace import_single_range() with import_ubuf()
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/92d6612578b79fd3a09e10504ed71209ba43c271
|
|
||||||
92d6612578b79fd3a09e10504ed71209ba43c271 ext4: Mark mounting fs-verity filesystems as tech-preview
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/5c51745b8aec113ff0605ab833c3e472d99c55c8
|
|
||||||
5c51745b8aec113ff0605ab833c3e472d99c55c8 erofs: Add tech preview markers at mount
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/6d687c70a7eda10eac0ddc6eedeaccc30eef5349
|
|
||||||
6d687c70a7eda10eac0ddc6eedeaccc30eef5349 kernel/rh_messages.c: Mark functions as possibly unused
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/dfb09b1d833cad815ea2f5cb69505010de260c40
|
|
||||||
dfb09b1d833cad815ea2f5cb69505010de260c40 crypto: rng - Override drivers/char/random in FIPS mode
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/ddbe3667f2462817f3f936141fff08604dde1564
|
|
||||||
ddbe3667f2462817f3f936141fff08604dde1564 random: Add hook to override device reads and getrandom(2)
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/92525a9129d85fa6400c9e653379862a67cb43b2
|
|
||||||
92525a9129d85fa6400c9e653379862a67cb43b2 [redhat] kernel/rh_messages.c: move hardware tables to rh_messages.h
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/eacd81fdaf31d456a82c553735faf64c8efad2eb
|
|
||||||
eacd81fdaf31d456a82c553735faf64c8efad2eb [redhat] kernel/rh_messages.c: Wire up new calls
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/32af8640a651c642ee5706dda0cf35ff508bcdcb
|
|
||||||
32af8640a651c642ee5706dda0cf35ff508bcdcb [redhat] drivers/pci: Update rh_messages.c
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/db366977f9e13f903cc9b7f22936b581594a7731
|
|
||||||
db366977f9e13f903cc9b7f22936b581594a7731 [redhat] drivers/pci: Remove RHEL-only pci_hw_*() functions
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/402504ff66e5d118b514253df5d55f8413e2e167
|
|
||||||
402504ff66e5d118b514253df5d55f8413e2e167 scsi: sd: Add "probe_type" module parameter to allow synchronous probing
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/5e96a345c6fb24e282ce1769223c1a339d0dbe94
|
|
||||||
5e96a345c6fb24e282ce1769223c1a339d0dbe94 Revert "Remove EXPERT from ARCH_FORCE_MAX_ORDER for aarch64"
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/ce943989ae8cb2b8e0b4699c148584d3cd18ec9b
|
|
||||||
ce943989ae8cb2b8e0b4699c148584d3cd18ec9b kernel/rh_messages.c: Another gcc12 warning on redundant NULL test
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c0624b3913d8c3f262e20910a2f2c4d2f99ce61f
|
|
||||||
c0624b3913d8c3f262e20910a2f2c4d2f99ce61f Enable IO_URING for RHEL
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/861f2d38d82cfb374799ec517f18cc021701068e
|
|
||||||
861f2d38d82cfb374799ec517f18cc021701068e Remove EXPERT from ARCH_FORCE_MAX_ORDER for aarch64
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/e02ec93117d6eea21e80baf69e6f9848cf1a9774
|
|
||||||
e02ec93117d6eea21e80baf69e6f9848cf1a9774 redhat: version two of Makefile.rhelver tweaks
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/964e830b4fae678dec5b8b93dcd402c73fdf2912
|
|
||||||
964e830b4fae678dec5b8b93dcd402c73fdf2912 redhat: adapt to upstream Makefile change
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/60a4025a3b1cdec1c7bbdabf1e30278f615bb493
|
|
||||||
60a4025a3b1cdec1c7bbdabf1e30278f615bb493 kernel/rh_messages.c: gcc12 warning on redundant NULL test
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/a5c9e3c6e3dcda60b5f753d1bae86a686f3ac087
|
|
||||||
a5c9e3c6e3dcda60b5f753d1bae86a686f3ac087 Change acpi_bus_get_acpi_device to acpi_get_acpi_dev
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/092e751fe418623c5ad04e77fa6c993d48d96533
|
|
||||||
092e751fe418623c5ad04e77fa6c993d48d96533 ARK: Remove code marking devices unmaintained
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c27fa327fb3de69773568d211fd2f8f13a72e342
|
|
||||||
c27fa327fb3de69773568d211fd2f8f13a72e342 rh_message: Fix function name
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c9b07fd3a141ad0283d7eaadf5a06aec9af2b8c9
|
|
||||||
c9b07fd3a141ad0283d7eaadf5a06aec9af2b8c9 Add Partner Supported taint flag to kAFS
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/6b0e3a47ec436527a736c0e7159b41624d176dd9
|
|
||||||
6b0e3a47ec436527a736c0e7159b41624d176dd9 Add Partner Supported taint flag
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/3a4e2ad92c430d2f584f56ca686bc75a469d06c0
|
|
||||||
3a4e2ad92c430d2f584f56ca686bc75a469d06c0 kabi: Add kABI macros for enum type
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/04fbd46f834f3a012ca9d5bef91db377a3dbaed0
|
|
||||||
04fbd46f834f3a012ca9d5bef91db377a3dbaed0 kabi: expand and clarify documentation of aux structs
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/cf8df8ef88e094ebb049a7e1e6fec069aaf54faa
|
|
||||||
cf8df8ef88e094ebb049a7e1e6fec069aaf54faa kabi: introduce RH_KABI_USE_AUX_PTR
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/31779ca0c6c9aab28184a42ac3f17ac219b37b2b
|
|
||||||
31779ca0c6c9aab28184a42ac3f17ac219b37b2b kabi: rename RH_KABI_SIZE_AND_EXTEND to AUX
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/2e12a05d339ed936b9cd59f420b161d70b4a130a
|
|
||||||
2e12a05d339ed936b9cd59f420b161d70b4a130a kabi: more consistent _RH_KABI_SIZE_AND_EXTEND
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/b83556eebdc2efdc2d2c22610b7cd7c5cafb2bae
|
|
||||||
b83556eebdc2efdc2d2c22610b7cd7c5cafb2bae kabi: use fixed field name for extended part
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/4c9a3b306a34ed7017e35b0de26b2d98e1a04373
|
|
||||||
4c9a3b306a34ed7017e35b0de26b2d98e1a04373 kabi: fix dereference in RH_KABI_CHECK_EXT
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/a961660df0a73bcf2dcd8cb8855c2f5d5ded0ae9
|
|
||||||
a961660df0a73bcf2dcd8cb8855c2f5d5ded0ae9 kabi: fix RH_KABI_SET_SIZE macro
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/9f9ef5e8b4694fa7fb6a8f941fb741121fe5aab3
|
|
||||||
9f9ef5e8b4694fa7fb6a8f941fb741121fe5aab3 kabi: expand and clarify documentation
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/308d17beeaa6cb4a514f77319b636c9a2c15f5eb
|
|
||||||
308d17beeaa6cb4a514f77319b636c9a2c15f5eb kabi: make RH_KABI_USE replace any number of reserved fields
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f3d12dffffeee8d6692be46044b9fc8448901692
|
|
||||||
f3d12dffffeee8d6692be46044b9fc8448901692 kabi: rename RH_KABI_USE2 to RH_KABI_USE_SPLIT
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/520e726b4e78101e73fa3d77cdcbc21d204a75a9
|
|
||||||
520e726b4e78101e73fa3d77cdcbc21d204a75a9 kabi: change RH_KABI_REPLACE2 to RH_KABI_REPLACE_SPLIT
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/7160868bd40d04e6d1a80f55d1bf9bb62ede0ba3
|
|
||||||
7160868bd40d04e6d1a80f55d1bf9bb62ede0ba3 kabi: change RH_KABI_REPLACE_UNSAFE to RH_KABI_BROKEN_REPLACE
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/0b83063cf6c57dc20a80c35396fa425ec1963d53
|
|
||||||
0b83063cf6c57dc20a80c35396fa425ec1963d53 kabi: introduce RH_KABI_ADD_MODIFIER
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/d276c2393792e3eec80a73a4fe964f9ec11145a7
|
|
||||||
d276c2393792e3eec80a73a4fe964f9ec11145a7 kabi: Include kconfig.h
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/28c30de9c771ff91994c9f0a42bdcc260fa97c2d
|
|
||||||
28c30de9c771ff91994c9f0a42bdcc260fa97c2d kabi: macros for intentional kABI breakage
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/9b671c725ac69c47874321e5636e6541bb6d219d
|
|
||||||
9b671c725ac69c47874321e5636e6541bb6d219d kabi: fix the note about terminating semicolon
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/6443eef17fb53f62886ecce519b6e12dd310e7f5
|
|
||||||
6443eef17fb53f62886ecce519b6e12dd310e7f5 kabi: introduce RH_KABI_HIDE_INCLUDE and RH_KABI_FAKE_INCLUDE
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/47746fc3837b476ec265e2a0c2aaa86de0d3994e
|
|
||||||
47746fc3837b476ec265e2a0c2aaa86de0d3994e pci.h: Fix static include
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/67ce66385c6b619356c4030e6163c4fb18a50427
|
|
||||||
67ce66385c6b619356c4030e6163c4fb18a50427 drivers/pci/pci-driver.c: Fix if/ifdef typo
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/0dfd7feeadc964ef2a9d118218b54831381c8d7a
|
|
||||||
0dfd7feeadc964ef2a9d118218b54831381c8d7a kernel/rh_taint.c: Update to new messaging
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/35e5ee153637e59c9297c9cc8ba7f3960277ffc2
|
|
||||||
35e5ee153637e59c9297c9cc8ba7f3960277ffc2 redhat: Add mark_driver_deprecated()
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/ff7aa8cae4c7e3e7bbc1bb5612efc2157c81fa7d
|
|
||||||
ff7aa8cae4c7e3e7bbc1bb5612efc2157c81fa7d RHEL: disable io_uring support
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/517351ed810bf2707e7fdb2ab22029aeb594db59
|
|
||||||
517351ed810bf2707e7fdb2ab22029aeb594db59 bpf: Fix unprivileged_bpf_disabled setup
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/48fe2e5f40c901e92d1f8c62bc97f58af4b0906a
|
|
||||||
48fe2e5f40c901e92d1f8c62bc97f58af4b0906a nvme: nvme_mpath_init remove multipath check
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/1c9bd09f303e2c9d2c67fdc46604d94e00cbf67c
|
|
||||||
1c9bd09f303e2c9d2c67fdc46604d94e00cbf67c wireguard: disable in FIPS mode
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/57872981891fe8f3f7205daa4b78c8c0d676b171
|
|
||||||
57872981891fe8f3f7205daa4b78c8c0d676b171 nvme: decouple basic ANA log page re-read support from native multipathing
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/0561f5953431ff471193611cd73af65dd394c8cd
|
|
||||||
0561f5953431ff471193611cd73af65dd394c8cd nvme: allow local retry and proper failover for REQ_FAILFAST_TRANSPORT
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f801483d711fa5f83a0f9d4c479eeba702d1d477
|
|
||||||
f801483d711fa5f83a0f9d4c479eeba702d1d477 nvme: Return BLK_STS_TARGET if the DNR bit is set
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/4f2bc09956ad4829d139e9d69b86ba8b9ebc66e2
|
|
||||||
4f2bc09956ad4829d139e9d69b86ba8b9ebc66e2 REDHAT: coresight: etm4x: Disable coresight on HPE Apollo 70
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/65a21d545cc43328ea00fdbd62e7b45f375adce8
|
|
||||||
65a21d545cc43328ea00fdbd62e7b45f375adce8 redhat: remove remaining references of CONFIG_RH_DISABLE_DEPRECATED
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/1c1b5380b0b56d3be978997b128f84aeb9906656
|
|
||||||
1c1b5380b0b56d3be978997b128f84aeb9906656 arch/x86: Remove vendor specific CPU ID checks
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f7c032c856ba6379a77b76179d0352929d6039ec
|
|
||||||
f7c032c856ba6379a77b76179d0352929d6039ec redhat: Replace hardware.redhat.com link in Unsupported message
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/9a6eb49603959cf0aab0198e13946eaee07801c3
|
|
||||||
9a6eb49603959cf0aab0198e13946eaee07801c3 x86: Fix compile issues with rh_check_supported()
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/8a605436efddfa7dbc6e007b2881fa81f17968a5
|
|
||||||
8a605436efddfa7dbc6e007b2881fa81f17968a5 KEYS: Make use of platform keyring for module signature verify
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c7c191f662438423a23592db42838ff550c2bdda
|
|
||||||
c7c191f662438423a23592db42838ff550c2bdda Input: rmi4 - remove the need for artificial IRQ in case of HID
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/4ae139284600cd6fef133ce7a981485ea73381ab
|
|
||||||
4ae139284600cd6fef133ce7a981485ea73381ab ARM: tegra: usb no reset
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/8156e2102f753bbe0f0dd222a5f232e7f3d99883
|
|
||||||
8156e2102f753bbe0f0dd222a5f232e7f3d99883 arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/823e733a88ddd21c735288dd3b08348e79872b91
|
|
||||||
823e733a88ddd21c735288dd3b08348e79872b91 redhat: rh_kabi: deduplication friendly structs
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/61d2a751fe1b1305684d6c1899f26fa9e38ac0a9
|
|
||||||
61d2a751fe1b1305684d6c1899f26fa9e38ac0a9 redhat: rh_kabi add a comment with warning about RH_KABI_EXCLUDE usage
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/7d09cb3ea3dd2f3cda5a6a31be429f259106ca61
|
|
||||||
7d09cb3ea3dd2f3cda5a6a31be429f259106ca61 redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c0c51c6f123df02948e11680d9b90324593ba547
|
|
||||||
c0c51c6f123df02948e11680d9b90324593ba547 redhat: rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve.
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/96b20c70b39cd28efcec2336417cb0db9ff7853c
|
|
||||||
96b20c70b39cd28efcec2336417cb0db9ff7853c redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference operator
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/198030a81d85dbac8f4030e69d3d376327433487
|
|
||||||
198030a81d85dbac8f4030e69d3d376327433487 redhat: rh_kabi: Add macros to size and extend structs
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/695af00ed9e393abe88d9ee4de3702c15ded186d
|
|
||||||
695af00ed9e393abe88d9ee4de3702c15ded186d Removing Obsolete hba pci-ids from rhel8
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/736038bd8039d1543468c1dc8925f20929645804
|
|
||||||
736038bd8039d1543468c1dc8925f20929645804 mptsas: pci-id table changes
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/83cdf2924bdcc90c433a58129b4501e10b1295dc
|
|
||||||
83cdf2924bdcc90c433a58129b4501e10b1295dc mptspi: pci-id table changes
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/0b634d81ed7f0730e13d720508dbaa6ab94e54d2
|
|
||||||
0b634d81ed7f0730e13d720508dbaa6ab94e54d2 qla2xxx: Remove PCI IDs of deprecated adapter
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/0d11491f9e7fe0c8c301db3256cb47c66ae8450f
|
|
||||||
0d11491f9e7fe0c8c301db3256cb47c66ae8450f hpsa: remove old cciss-based smartarray pci ids
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/75f69a4f7b8f9d38c5efb0231186ed8726e526f2
|
|
||||||
75f69a4f7b8f9d38c5efb0231186ed8726e526f2 kernel: add SUPPORT_REMOVED kernel taint
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/50081b0865239d853d77bc71e54d13fad8bac9f0
|
|
||||||
50081b0865239d853d77bc71e54d13fad8bac9f0 Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/dc84f3cc1b19a0524e58a382c382f34081dc6c35
|
|
||||||
dc84f3cc1b19a0524e58a382c382f34081dc6c35 s390: Lock down the kernel when the IPL secure flag is set
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/cb55378c04d6516f303e98061ec7ddd6563429a8
|
|
||||||
cb55378c04d6516f303e98061ec7ddd6563429a8 efi: Lock down the kernel if booted in secure boot mode
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/9b06e1f07c3cc9e1d0533b8615426d4d5d9e4ebb
|
|
||||||
9b06e1f07c3cc9e1d0533b8615426d4d5d9e4ebb efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/db249925c6802b38d910927e4d032af1e00bee56
|
|
||||||
db249925c6802b38d910927e4d032af1e00bee56 security: lockdown: expose a hook to lock the kernel down
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f9604bcd305aba2a94e713ee758a51143687ae9f
|
|
||||||
f9604bcd305aba2a94e713ee758a51143687ae9f Make get_cert_list() use efi_status_to_str() to print error messages.
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/b75eb3e922c93d78d4190a759f5725e856d35439
|
|
||||||
b75eb3e922c93d78d4190a759f5725e856d35439 Add efi_status_to_str() and rework efi_status_to_err().
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/2f80042d6b8199fceadf3623243402066e0cd4ea
|
|
||||||
2f80042d6b8199fceadf3623243402066e0cd4ea Add support for deprecating processors
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/5a3b4f5754788e42db8ed550b359382b600f2b08
|
|
||||||
5a3b4f5754788e42db8ed550b359382b600f2b08 arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/36cd5d0a0aa0a3be8ac385ca8991563c9e58227f
|
|
||||||
36cd5d0a0aa0a3be8ac385ca8991563c9e58227f iommu/arm-smmu: workaround DMA mode issues
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/ca34010e072550c8d5ea57f9436bab254c3521cc
|
|
||||||
ca34010e072550c8d5ea57f9436bab254c3521cc rh_kabi: introduce RH_KABI_EXCLUDE
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/26054e2c4e2253fe955a351971dc6b931cb68961
|
|
||||||
26054e2c4e2253fe955a351971dc6b931cb68961 ipmi: do not configure ipmi for HPE m400
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/9cb0f734492a21a7e506d7145caf143ccd927b2a
|
|
||||||
9cb0f734492a21a7e506d7145caf143ccd927b2a kABI: Add generic kABI macros to use for kABI workarounds
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/4960e5ee4a0e9bb28e512eb35cfa633ac4552049
|
|
||||||
4960e5ee4a0e9bb28e512eb35cfa633ac4552049 add pci_hw_vendor_status()
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/291c4e2878431fd6937c5b9248babe8ec8d4233e
|
|
||||||
291c4e2878431fd6937c5b9248babe8ec8d4233e ahci: thunderx2: Fix for errata that affects stop engine
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/996869cc0b3e78cb9182a4ebced2c46ee2774935
|
|
||||||
996869cc0b3e78cb9182a4ebced2c46ee2774935 Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c1c7a887998ab12c5a1180c4bca3b41c31fe4aa6
|
|
||||||
c1c7a887998ab12c5a1180c4bca3b41c31fe4aa6 bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/e40c9d10474d1a5b5f7f01175a72ba4a3c7f5e8e
|
|
||||||
e40c9d10474d1a5b5f7f01175a72ba4a3c7f5e8e add Red Hat-specific taint flags
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f23f446b724fbb79c1e09a278fcb427fc29c0c05
|
|
||||||
f23f446b724fbb79c1e09a278fcb427fc29c0c05 tags.sh: Ignore redhat/rpm
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/a68aa65a20fba1908a7326e5321ce8bc39a9ae14
|
|
||||||
a68aa65a20fba1908a7326e5321ce8bc39a9ae14 put RHEL info into generated headers
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/80937f1973d73fccdc75db4026fbed7cba16f489
|
|
||||||
80937f1973d73fccdc75db4026fbed7cba16f489 aarch64: acpi scan: Fix regression related to X-Gene UARTs
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/3362fd10fe075b48ff8af023da5643bc9477a4c6
|
|
||||||
3362fd10fe075b48ff8af023da5643bc9477a4c6 ACPI / irq: Workaround firmware issue on X-Gene based m400
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/ffc66b174954abecfb360dcc3b98c3139ef12d96
|
|
||||||
ffc66b174954abecfb360dcc3b98c3139ef12d96 modules: add rhelversion MODULE_INFO tag
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/7e469c23b8f648d79e8a0e82ee41cda0e50b2f19
|
|
||||||
7e469c23b8f648d79e8a0e82ee41cda0e50b2f19 ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/a0f49117d038de2d4db4940f5f039addb2f7231d
|
|
||||||
a0f49117d038de2d4db4940f5f039addb2f7231d Add Red Hat tainting
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/fa67c16e780ed355f9847da90e8055ad1175c238
|
|
||||||
fa67c16e780ed355f9847da90e8055ad1175c238 Introduce CONFIG_RH_DISABLE_DEPRECATED
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/e7e1371803470a7840dc61da628cb912834ec149
|
|
||||||
e7e1371803470a7840dc61da628cb912834ec149 Pull the RHEL version defines out of the Makefile
|
|
||||||
|
|
||||||
https://gitlab.com/cki-project/kernel-ark/-/commit/84d1d3e3d0c2c7ed1f571c8495bad3b4d97cfa8e
|
|
||||||
84d1d3e3d0c2c7ed1f571c8495bad3b4d97cfa8e [initial commit] Add Red Hat variables in the top level makefile
|
|
||||||
|
|
||||||
25
README.rst
25
README.rst
|
|
@ -1,25 +0,0 @@
|
||||||
===================
|
|
||||||
The Kernel dist-git
|
|
||||||
===================
|
|
||||||
|
|
||||||
The kernel is maintained in a `source tree`_ rather than directly in dist-git.
|
|
||||||
The specfile is maintained as a `template`_ in the source tree along with a set
|
|
||||||
of build scripts to generate configurations, (S)RPMs, and to populate the
|
|
||||||
dist-git repository.
|
|
||||||
|
|
||||||
The `documentation`_ for the source tree covers how to contribute and maintain
|
|
||||||
the tree.
|
|
||||||
|
|
||||||
If you're looking for the downstream patch set it's available in the source
|
|
||||||
tree with "git log master..ark-patches" or
|
|
||||||
`online`_.
|
|
||||||
|
|
||||||
Each release in dist-git is tagged in the source repository so you can easily
|
|
||||||
check out the source tree for a build. The tags are in the format
|
|
||||||
name-version-release, but note release doesn't contain the dist tag since the
|
|
||||||
source can be built in different build roots (Fedora, CentOS, etc.)
|
|
||||||
|
|
||||||
.. _source tree: https://gitlab.com/cki-project/kernel-ark.git
|
|
||||||
.. _template: https://gitlab.com/cki-project/kernel-ark/-/blob/os-build/redhat/kernel.spec.template
|
|
||||||
.. _documentation: https://gitlab.com/cki-project/kernel-ark/-/wikis/home
|
|
||||||
.. _online: https://gitlab.com/cki-project/kernel-ark/-/commits/ark-patches
|
|
||||||
67
README.txt
Normal file
67
README.txt
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
|
||||||
|
Kernel package tips & tricks.
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The kernel is one of the more complicated packages in the distro, and
|
||||||
|
for the newcomer, some of the voodoo in the spec file can be somewhat scary.
|
||||||
|
This file attempts to document some of the magic.
|
||||||
|
|
||||||
|
|
||||||
|
Speeding up make prep
|
||||||
|
---------------------
|
||||||
|
The kernel is nearly 500MB of source code, and as such, 'make prep'
|
||||||
|
takes a while. The spec file employs some trickery so that repeated
|
||||||
|
invocations of make prep don't take as long. Ordinarily the %prep
|
||||||
|
phase of a package will delete the tree it is about to untar/patch.
|
||||||
|
The kernel %prep keeps around an unpatched version of the tree,
|
||||||
|
and makes a symlink tree clone of that clean tree and than applies
|
||||||
|
the patches listed in the spec to the symlink tree.
|
||||||
|
This makes a huge difference if you're doing multiple make preps a day.
|
||||||
|
As an added bonus, doing a diff between the clean tree and the symlink
|
||||||
|
tree is slightly faster than it would be doing two proper copies of the tree.
|
||||||
|
|
||||||
|
|
||||||
|
build logs.
|
||||||
|
-----------
|
||||||
|
There's a convenience helper script in scripts/grab-logs.sh
|
||||||
|
that will grab the build logs from koji for the kernel version reported
|
||||||
|
by make verrel
|
||||||
|
|
||||||
|
|
||||||
|
config heirarchy.
|
||||||
|
-----------------
|
||||||
|
Instead of having to maintain a config file for every arch variant we build on,
|
||||||
|
the kernel spec uses a nested system of configs. At the top level, is
|
||||||
|
config-generic. Add options here that should be present in every possible
|
||||||
|
config on all architectures.
|
||||||
|
Beneath this are per-arch overrides. For example config-x86-generic add
|
||||||
|
additional x86 specific options, and also _override_ any options that were
|
||||||
|
set in config-generic.
|
||||||
|
There exist two additional overrides, config-debug, and config-nodebug,
|
||||||
|
which override -generic, and the per-arch overrides. It is documented
|
||||||
|
further below.
|
||||||
|
|
||||||
|
debug options.
|
||||||
|
--------------
|
||||||
|
This is a little complicated, as the purpose & meaning of this changes
|
||||||
|
depending on where we are in the release cycle.
|
||||||
|
If we are building for a current stable release, 'make release' has
|
||||||
|
typically been run already, which sets up the following..
|
||||||
|
- Two builds occur, a 'kernel' and a 'kernel-debug' flavor.
|
||||||
|
- kernel-debug will get various heavyweight debugging options like
|
||||||
|
lockdep etc turned on.
|
||||||
|
|
||||||
|
If we are building for rawhide, 'make debug' has been run, which changes
|
||||||
|
the status quo to:
|
||||||
|
- We only build one kernel 'kernel'
|
||||||
|
- The debug options from 'config-debug' are always turned on.
|
||||||
|
This is done to increase coverage testing, as not many people actually
|
||||||
|
run kernel-debug.
|
||||||
|
|
||||||
|
To add new debug options, add an option to _both_ config-debug and config-nodebug,
|
||||||
|
and also new stanzas to the Makefile 'debug' and 'release' targets.
|
||||||
|
|
||||||
|
Sometimes debug options get added to config-generic, or per-arch overrides
|
||||||
|
instead of config-[no]debug. In this instance, the options should have no
|
||||||
|
discernable performance impact, otherwise they belong in the debug files.
|
||||||
|
|
||||||
52
acpi-ec-add-delay-before-write.patch
Normal file
52
acpi-ec-add-delay-before-write.patch
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
https://bugzilla.kernel.org/show_bug.cgi?id=14733#c41
|
||||||
|
|
||||||
|
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
|
||||||
|
index 27e0b92..09fbb69 100644
|
||||||
|
--- a/drivers/acpi/ec.c
|
||||||
|
+++ b/drivers/acpi/ec.c
|
||||||
|
@@ -226,6 +226,7 @@ static int ec_poll(struct acpi_ec *ec)
|
||||||
|
if (ec_transaction_done(ec))
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
+ msleep(1);
|
||||||
|
if (wait_event_timeout(ec->wait,
|
||||||
|
ec_transaction_done(ec),
|
||||||
|
msecs_to_jiffies(1)))
|
||||||
|
@@ -233,8 +234,8 @@ static int ec_poll(struct acpi_ec *ec)
|
||||||
|
}
|
||||||
|
advance_transaction(ec, acpi_ec_read_status(ec));
|
||||||
|
} while (time_before(jiffies, delay));
|
||||||
|
- if (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF)
|
||||||
|
- break;
|
||||||
|
+// if (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF)
|
||||||
|
+// break;
|
||||||
|
pr_debug(PREFIX "controller reset, restart transaction\n");
|
||||||
|
spin_lock_irqsave(&ec->curr_lock, flags);
|
||||||
|
start_transaction(ec);
|
||||||
|
@@ -271,15 +272,25 @@ static int ec_check_ibf0(struct acpi_ec *ec)
|
||||||
|
return (status & ACPI_EC_FLAG_IBF) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* try to clean input buffer with burst_disable transaction */
|
||||||
|
+static int acpi_ec_clean_buffer(struct acpi_ec *ec)
|
||||||
|
+{
|
||||||
|
+ struct transaction t = {.command = ACPI_EC_BURST_DISABLE,
|
||||||
|
+ .wdata = NULL, .rdata = NULL,
|
||||||
|
+ .wlen = 0, .rlen = 0};
|
||||||
|
+ return acpi_ec_transaction_unlocked(ec, &t);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int ec_wait_ibf0(struct acpi_ec *ec)
|
||||||
|
{
|
||||||
|
+
|
||||||
|
unsigned long delay = jiffies + msecs_to_jiffies(ACPI_EC_DELAY);
|
||||||
|
/* interrupt wait manually if GPE mode is not active */
|
||||||
|
while (time_before(jiffies, delay))
|
||||||
|
if (wait_event_timeout(ec->wait, ec_check_ibf0(ec),
|
||||||
|
msecs_to_jiffies(1)))
|
||||||
|
return 0;
|
||||||
|
- return -ETIME;
|
||||||
|
+ return acpi_ec_clean_buffer(ec);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t)
|
||||||
|
|
@ -0,0 +1,215 @@
|
||||||
|
From: Rafael J. Wysocki <rjw@sisk.pl>
|
||||||
|
Date: Thu, 8 Apr 2010 23:39:40 +0000 (+0200)
|
||||||
|
Subject: ACPI / EC / PM: Fix race between EC transactions and system suspend
|
||||||
|
X-Git-Tag: v2.6.35-rc2~39^2~3
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=d5a64513c6a171262082c250592c062e97a2c693
|
||||||
|
|
||||||
|
ACPI / EC / PM: Fix race between EC transactions and system suspend
|
||||||
|
|
||||||
|
There still is a race that may result in suspending the system in
|
||||||
|
the middle of an EC transaction in progress, which leads to problems
|
||||||
|
(like the kernel thinking that the ACPI global lock is held during
|
||||||
|
resume while in fact it's not).
|
||||||
|
|
||||||
|
To remove the race condition, modify the ACPI platform suspend and
|
||||||
|
hibernate callbacks so that EC transactions are blocked right after
|
||||||
|
executing the _PTS global control method and are allowed to happen
|
||||||
|
again right after the low-level wakeup.
|
||||||
|
|
||||||
|
Introduce acpi_pm_freeze() that will disable GPEs, wait until the
|
||||||
|
event queues are empty and block EC transactions. Use it wherever
|
||||||
|
GPEs are disabled in preparation for switching local interrupts off.
|
||||||
|
Introduce acpi_pm_thaw() that will allow EC transactions to happen
|
||||||
|
again and enable runtime GPEs. Use it to balance acpi_pm_freeze()
|
||||||
|
wherever necessary.
|
||||||
|
|
||||||
|
In addition to that use acpi_ec_resume_transactions_early() to
|
||||||
|
unblock EC transactions as early as reasonably possible during
|
||||||
|
resume. Also unblock EC transactions in acpi_hibernation_finish()
|
||||||
|
and in the analogous suspend routine to make sure that the EC
|
||||||
|
transactions are enabled in all error paths.
|
||||||
|
|
||||||
|
Fixes https://bugzilla.kernel.org/show_bug.cgi?id=14668
|
||||||
|
|
||||||
|
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
|
||||||
|
Reported-and-tested-by: Maxim Levitsky <maximlevitsky@gmail.com>
|
||||||
|
Signed-off-by: Len Brown <len.brown@intel.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
|
||||||
|
index f2234db..2c2b73a 100644
|
||||||
|
--- a/drivers/acpi/ec.c
|
||||||
|
+++ b/drivers/acpi/ec.c
|
||||||
|
@@ -485,6 +485,16 @@ void acpi_ec_resume_transactions(void)
|
||||||
|
mutex_unlock(&ec->lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void acpi_ec_resume_transactions_early(void)
|
||||||
|
+{
|
||||||
|
+ /*
|
||||||
|
+ * Allow transactions to happen again (this function is called from
|
||||||
|
+ * atomic context during wakeup, so we don't need to acquire the mutex).
|
||||||
|
+ */
|
||||||
|
+ if (first_ec)
|
||||||
|
+ clear_bit(EC_FLAGS_FROZEN, &first_ec->flags);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int acpi_ec_query_unlocked(struct acpi_ec *ec, u8 * data)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
|
||||||
|
index e284113..0ec48c7 100644
|
||||||
|
--- a/drivers/acpi/internal.h
|
||||||
|
+++ b/drivers/acpi/internal.h
|
||||||
|
@@ -51,6 +51,7 @@ int acpi_ec_ecdt_probe(void);
|
||||||
|
int acpi_boot_ec_enable(void);
|
||||||
|
void acpi_ec_suspend_transactions(void);
|
||||||
|
void acpi_ec_resume_transactions(void);
|
||||||
|
+void acpi_ec_resume_transactions_early(void);
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
Suspend/Resume
|
||||||
|
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
|
||||||
|
index baa76bb..24741ac 100644
|
||||||
|
--- a/drivers/acpi/sleep.c
|
||||||
|
+++ b/drivers/acpi/sleep.c
|
||||||
|
@@ -110,11 +110,13 @@ void __init acpi_old_suspend_ordering(void)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
- * acpi_pm_disable_gpes - Disable the GPEs.
|
||||||
|
+ * acpi_pm_freeze - Disable the GPEs and suspend EC transactions.
|
||||||
|
*/
|
||||||
|
-static int acpi_pm_disable_gpes(void)
|
||||||
|
+static int acpi_pm_freeze(void)
|
||||||
|
{
|
||||||
|
acpi_disable_all_gpes();
|
||||||
|
+ acpi_os_wait_events_complete(NULL);
|
||||||
|
+ acpi_ec_suspend_transactions();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -142,7 +144,8 @@ static int acpi_pm_prepare(void)
|
||||||
|
int error = __acpi_pm_prepare();
|
||||||
|
|
||||||
|
if (!error)
|
||||||
|
- acpi_disable_all_gpes();
|
||||||
|
+ acpi_pm_freeze();
|
||||||
|
+
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -275,6 +278,8 @@ static int acpi_suspend_enter(suspend_state_t pm_state)
|
||||||
|
* acpi_leave_sleep_state will reenable specific GPEs later
|
||||||
|
*/
|
||||||
|
acpi_disable_all_gpes();
|
||||||
|
+ /* Allow EC transactions to happen. */
|
||||||
|
+ acpi_ec_resume_transactions_early();
|
||||||
|
|
||||||
|
local_irq_restore(flags);
|
||||||
|
printk(KERN_DEBUG "Back to C!\n");
|
||||||
|
@@ -286,6 +291,12 @@ static int acpi_suspend_enter(suspend_state_t pm_state)
|
||||||
|
return ACPI_SUCCESS(status) ? 0 : -EFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void acpi_suspend_finish(void)
|
||||||
|
+{
|
||||||
|
+ acpi_ec_resume_transactions();
|
||||||
|
+ acpi_pm_finish();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int acpi_suspend_state_valid(suspend_state_t pm_state)
|
||||||
|
{
|
||||||
|
u32 acpi_state;
|
||||||
|
@@ -307,7 +318,7 @@ static struct platform_suspend_ops acpi_suspend_ops = {
|
||||||
|
.begin = acpi_suspend_begin,
|
||||||
|
.prepare_late = acpi_pm_prepare,
|
||||||
|
.enter = acpi_suspend_enter,
|
||||||
|
- .wake = acpi_pm_finish,
|
||||||
|
+ .wake = acpi_suspend_finish,
|
||||||
|
.end = acpi_pm_end,
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -333,9 +344,9 @@ static int acpi_suspend_begin_old(suspend_state_t pm_state)
|
||||||
|
static struct platform_suspend_ops acpi_suspend_ops_old = {
|
||||||
|
.valid = acpi_suspend_state_valid,
|
||||||
|
.begin = acpi_suspend_begin_old,
|
||||||
|
- .prepare_late = acpi_pm_disable_gpes,
|
||||||
|
+ .prepare_late = acpi_pm_freeze,
|
||||||
|
.enter = acpi_suspend_enter,
|
||||||
|
- .wake = acpi_pm_finish,
|
||||||
|
+ .wake = acpi_suspend_finish,
|
||||||
|
.end = acpi_pm_end,
|
||||||
|
.recover = acpi_pm_finish,
|
||||||
|
};
|
||||||
|
@@ -586,6 +597,7 @@ static int acpi_hibernation_enter(void)
|
||||||
|
static void acpi_hibernation_finish(void)
|
||||||
|
{
|
||||||
|
hibernate_nvs_free();
|
||||||
|
+ acpi_ec_resume_transactions();
|
||||||
|
acpi_pm_finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -606,17 +618,11 @@ static void acpi_hibernation_leave(void)
|
||||||
|
}
|
||||||
|
/* Restore the NVS memory area */
|
||||||
|
hibernate_nvs_restore();
|
||||||
|
+ /* Allow EC transactions to happen. */
|
||||||
|
+ acpi_ec_resume_transactions_early();
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int acpi_pm_pre_restore(void)
|
||||||
|
-{
|
||||||
|
- acpi_disable_all_gpes();
|
||||||
|
- acpi_os_wait_events_complete(NULL);
|
||||||
|
- acpi_ec_suspend_transactions();
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void acpi_pm_restore_cleanup(void)
|
||||||
|
+static void acpi_pm_thaw(void)
|
||||||
|
{
|
||||||
|
acpi_ec_resume_transactions();
|
||||||
|
acpi_enable_all_runtime_gpes();
|
||||||
|
@@ -630,8 +636,8 @@ static struct platform_hibernation_ops acpi_hibernation_ops = {
|
||||||
|
.prepare = acpi_pm_prepare,
|
||||||
|
.enter = acpi_hibernation_enter,
|
||||||
|
.leave = acpi_hibernation_leave,
|
||||||
|
- .pre_restore = acpi_pm_pre_restore,
|
||||||
|
- .restore_cleanup = acpi_pm_restore_cleanup,
|
||||||
|
+ .pre_restore = acpi_pm_freeze,
|
||||||
|
+ .restore_cleanup = acpi_pm_thaw,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -663,12 +669,9 @@ static int acpi_hibernation_begin_old(void)
|
||||||
|
|
||||||
|
static int acpi_hibernation_pre_snapshot_old(void)
|
||||||
|
{
|
||||||
|
- int error = acpi_pm_disable_gpes();
|
||||||
|
-
|
||||||
|
- if (!error)
|
||||||
|
- hibernate_nvs_save();
|
||||||
|
-
|
||||||
|
- return error;
|
||||||
|
+ acpi_pm_freeze();
|
||||||
|
+ hibernate_nvs_save();
|
||||||
|
+ return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -680,11 +683,11 @@ static struct platform_hibernation_ops acpi_hibernation_ops_old = {
|
||||||
|
.end = acpi_pm_end,
|
||||||
|
.pre_snapshot = acpi_hibernation_pre_snapshot_old,
|
||||||
|
.finish = acpi_hibernation_finish,
|
||||||
|
- .prepare = acpi_pm_disable_gpes,
|
||||||
|
+ .prepare = acpi_pm_freeze,
|
||||||
|
.enter = acpi_hibernation_enter,
|
||||||
|
.leave = acpi_hibernation_leave,
|
||||||
|
- .pre_restore = acpi_pm_pre_restore,
|
||||||
|
- .restore_cleanup = acpi_pm_restore_cleanup,
|
||||||
|
+ .pre_restore = acpi_pm_freeze,
|
||||||
|
+ .restore_cleanup = acpi_pm_thaw,
|
||||||
|
.recover = acpi_pm_finish,
|
||||||
|
};
|
||||||
|
#endif /* CONFIG_HIBERNATION */
|
||||||
666
add-appleir-usb-driver.patch
Normal file
666
add-appleir-usb-driver.patch
Normal file
|
|
@ -0,0 +1,666 @@
|
||||||
|
From e2e8fc4ed31157e9e9e9cbc70febf08c77233aea Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kyle McMartin <kyle@dreadnought.i.jkkm.org>
|
||||||
|
Date: Thu, 20 May 2010 10:17:58 -0400
|
||||||
|
Subject: add-appleir-driver
|
||||||
|
|
||||||
|
---
|
||||||
|
Documentation/input/appleir.txt | 45 ++++
|
||||||
|
drivers/hid/hid-apple.c | 4 -
|
||||||
|
drivers/hid/hid-core.c | 9 +-
|
||||||
|
drivers/hid/hid-ids.h | 1 +
|
||||||
|
drivers/hid/usbhid/hid-core.c | 1 +
|
||||||
|
drivers/input/misc/Kconfig | 13 ++
|
||||||
|
drivers/input/misc/Makefile | 1 +
|
||||||
|
drivers/input/misc/appleir.c | 453 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
include/linux/hid.h | 2 +
|
||||||
|
9 files changed, 522 insertions(+), 7 deletions(-)
|
||||||
|
create mode 100644 Documentation/input/appleir.txt
|
||||||
|
create mode 100644 drivers/input/misc/appleir.c
|
||||||
|
|
||||||
|
diff --git a/Documentation/input/appleir.txt b/Documentation/input/appleir.txt
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..0267a4b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/Documentation/input/appleir.txt
|
||||||
|
@@ -0,0 +1,45 @@
|
||||||
|
+Apple IR receiver Driver (appleir)
|
||||||
|
+----------------------------------
|
||||||
|
+ Copyright (C) 2009 Bastien Nocera <hadess@hadess.net>
|
||||||
|
+
|
||||||
|
+The appleir driver is a kernel input driver to handle Apple's IR
|
||||||
|
+receivers (and associated remotes) in the kernel.
|
||||||
|
+
|
||||||
|
+The driver is an input driver which only handles "official" remotes
|
||||||
|
+as built and sold by Apple.
|
||||||
|
+
|
||||||
|
+Authors
|
||||||
|
+-------
|
||||||
|
+
|
||||||
|
+James McKenzie (original driver)
|
||||||
|
+Alex Karpenko (05ac:8242 support)
|
||||||
|
+Greg Kroah-Hartman (cleanups and original submission)
|
||||||
|
+Bastien Nocera (further cleanups and suspend support)
|
||||||
|
+
|
||||||
|
+Supported hardware
|
||||||
|
+------------------
|
||||||
|
+
|
||||||
|
+- All Apple laptops and desktops from 2005 onwards, except:
|
||||||
|
+ - the unibody Macbook (2009)
|
||||||
|
+ - Mac Pro (all versions)
|
||||||
|
+- Apple TV (all revisions)
|
||||||
|
+
|
||||||
|
+The remote will only support the 6 buttons of the original remotes
|
||||||
|
+as sold by Apple. See the next section if you want to use other remotes
|
||||||
|
+or want to use lirc with the device instead of the kernel driver.
|
||||||
|
+
|
||||||
|
+Using lirc (native) instead of the kernel driver
|
||||||
|
+------------------------------------------------
|
||||||
|
+
|
||||||
|
+First, you will need to disable the kernel driver for the receiver.
|
||||||
|
+
|
||||||
|
+This can be achieved by passing quirks to the usbhid driver.
|
||||||
|
+The quirk line would be:
|
||||||
|
+usbhid.quirks=0x05ac:0x8242:0x40000010
|
||||||
|
+
|
||||||
|
+With 0x05ac being the vendor ID (Apple, you shouldn't need to change this)
|
||||||
|
+With 0x8242 being the product ID (check the output of lsusb for your hardware)
|
||||||
|
+And 0x10 being "HID_QUIRK_HIDDEV_FORCE" and 0x40000000 being "HID_QUIRK_NO_IGNORE"
|
||||||
|
+
|
||||||
|
+This should force the creation of a hiddev device for the receiver, and
|
||||||
|
+make it usable under lirc.
|
||||||
|
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
|
||||||
|
index bba05d0..0059d5a 100644
|
||||||
|
--- a/drivers/hid/hid-apple.c
|
||||||
|
+++ b/drivers/hid/hid-apple.c
|
||||||
|
@@ -361,10 +361,6 @@ static void apple_remove(struct hid_device *hdev)
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct hid_device_id apple_devices[] = {
|
||||||
|
- { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL),
|
||||||
|
- .driver_data = APPLE_HIDDEV | APPLE_IGNORE_HIDINPUT },
|
||||||
|
- { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4),
|
||||||
|
- .driver_data = APPLE_HIDDEV | APPLE_IGNORE_HIDINPUT },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE),
|
||||||
|
.driver_data = APPLE_MIGHTYMOUSE | APPLE_INVERT_HWHEEL },
|
||||||
|
|
||||||
|
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
||||||
|
index 143e788..387bb59 100644
|
||||||
|
--- a/drivers/hid/hid-core.c
|
||||||
|
+++ b/drivers/hid/hid-core.c
|
||||||
|
@@ -1167,6 +1167,8 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
|
||||||
|
unsigned int i;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
+ if (hdev->quirks & HID_QUIRK_HIDDEV_FORCE)
|
||||||
|
+ connect_mask |= (HID_CONNECT_HIDDEV_FORCE | HID_CONNECT_HIDDEV);
|
||||||
|
if (hdev->bus != BUS_USB)
|
||||||
|
connect_mask &= ~HID_CONNECT_HIDDEV;
|
||||||
|
if (hid_hiddev(hdev))
|
||||||
|
@@ -1248,8 +1250,6 @@ static const struct hid_device_id hid_blacklist[] = {
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_3M, USB_DEVICE_ID_3M1968) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_X5_005D) },
|
||||||
|
- { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL) },
|
||||||
|
- { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE) },
|
||||||
|
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI) },
|
||||||
|
@@ -1553,6 +1553,9 @@ static const struct hid_device_id hid_ignore_list[] = {
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_T91MT)},
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_LCM)},
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_LCM2)},
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) },
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL) },
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_AVERMEDIA, USB_DEVICE_ID_AVER_FM_MR800) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_BERKSHIRE, USB_DEVICE_ID_BERKSHIRE_PCWD) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CIDC, 0x0103) },
|
||||||
|
@@ -1757,7 +1760,7 @@ int hid_add_device(struct hid_device *hdev)
|
||||||
|
|
||||||
|
/* we need to kill them here, otherwise they will stay allocated to
|
||||||
|
* wait for coming driver */
|
||||||
|
- if (hid_ignore(hdev))
|
||||||
|
+ if (!(hdev->quirks & HID_QUIRK_NO_IGNORE) && hid_ignore(hdev))
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
/* XXX hack, any other cleaner solution after the driver core
|
||||||
|
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||||
|
index 09d2764..7275a9d 100644
|
||||||
|
--- a/drivers/hid/hid-ids.h
|
||||||
|
+++ b/drivers/hid/hid-ids.h
|
||||||
|
@@ -97,6 +97,7 @@
|
||||||
|
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b
|
||||||
|
#define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a
|
||||||
|
#define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b
|
||||||
|
+#define USB_DEVICE_ID_APPLE_IRCONTROL 0x8240
|
||||||
|
#define USB_DEVICE_ID_APPLE_ATV_IRCONTROL 0x8241
|
||||||
|
#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242
|
||||||
|
|
||||||
|
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
|
||||||
|
index 7b85b69..66b512c 100644
|
||||||
|
--- a/drivers/hid/usbhid/hid-core.c
|
||||||
|
+++ b/drivers/hid/usbhid/hid-core.c
|
||||||
|
@@ -1133,6 +1133,7 @@ static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id *
|
||||||
|
hid->vendor = le16_to_cpu(dev->descriptor.idVendor);
|
||||||
|
hid->product = le16_to_cpu(dev->descriptor.idProduct);
|
||||||
|
hid->name[0] = 0;
|
||||||
|
+ hid->quirks = usbhid_lookup_quirk(hid->vendor, hid->product);
|
||||||
|
if (intf->cur_altsetting->desc.bInterfaceProtocol ==
|
||||||
|
USB_INTERFACE_PROTOCOL_MOUSE)
|
||||||
|
hid->type = HID_TYPE_USBMOUSE;
|
||||||
|
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
||||||
|
index 23140a3..46614b2 100644
|
||||||
|
--- a/drivers/input/misc/Kconfig
|
||||||
|
+++ b/drivers/input/misc/Kconfig
|
||||||
|
@@ -159,6 +159,19 @@ config INPUT_KEYSPAN_REMOTE
|
||||||
|
To compile this driver as a module, choose M here: the module will
|
||||||
|
be called keyspan_remote.
|
||||||
|
|
||||||
|
+config INPUT_APPLEIR
|
||||||
|
+ tristate "Apple infrared receiver (built in)"
|
||||||
|
+ depends on USB_ARCH_HAS_HCD
|
||||||
|
+ select USB
|
||||||
|
+ help
|
||||||
|
+ Say Y here if you want to use a Apple infrared remote control. All
|
||||||
|
+ the Apple computers from 2005 onwards include such a port, except
|
||||||
|
+ the unibody Macbook (2009), and Mac Pros. This receiver is also
|
||||||
|
+ used in the Apple TV set-top box.
|
||||||
|
+
|
||||||
|
+ To compile this driver as a module, choose M here: the module will
|
||||||
|
+ be called appleir.
|
||||||
|
+
|
||||||
|
config INPUT_POWERMATE
|
||||||
|
tristate "Griffin PowerMate and Contour Jog support"
|
||||||
|
depends on USB_ARCH_HAS_HCD
|
||||||
|
diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
|
||||||
|
index 7e95a5d..3fa4404 100644
|
||||||
|
--- a/drivers/input/misc/Makefile
|
||||||
|
+++ b/drivers/input/misc/Makefile
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
|
||||||
|
obj-$(CONFIG_INPUT_88PM860X_ONKEY) += 88pm860x_onkey.o
|
||||||
|
obj-$(CONFIG_INPUT_APANEL) += apanel.o
|
||||||
|
+obj-$(CONFIG_INPUT_APPLEIR) += appleir.o
|
||||||
|
obj-$(CONFIG_INPUT_ATI_REMOTE) += ati_remote.o
|
||||||
|
obj-$(CONFIG_INPUT_ATI_REMOTE2) += ati_remote2.o
|
||||||
|
obj-$(CONFIG_INPUT_ATLAS_BTNS) += atlas_btns.o
|
||||||
|
diff --git a/drivers/input/misc/appleir.c b/drivers/input/misc/appleir.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..cff4df6
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/drivers/input/misc/appleir.c
|
||||||
|
@@ -0,0 +1,453 @@
|
||||||
|
+/*
|
||||||
|
+ * appleir: USB driver for the apple ir device
|
||||||
|
+ *
|
||||||
|
+ * Original driver written by James McKenzie
|
||||||
|
+ * Ported to recent 2.6 kernel versions by Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
|
+ *
|
||||||
|
+ * Copyright (C) 2006 James McKenzie
|
||||||
|
+ * Copyright (C) 2008 Greg Kroah-Hartman <greg@kroah.com>
|
||||||
|
+ * Copyright (C) 2008 Novell Inc.
|
||||||
|
+ *
|
||||||
|
+ * This program is free software; you can redistribute it and/or modify it
|
||||||
|
+ * under the terms of the GNU General Public License as published by the Free
|
||||||
|
+ * Software Foundation, version 2.
|
||||||
|
+ *
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#include <linux/kernel.h>
|
||||||
|
+#include <linux/slab.h>
|
||||||
|
+#include <linux/input.h>
|
||||||
|
+#include <linux/usb/input.h>
|
||||||
|
+#include <linux/module.h>
|
||||||
|
+#include <linux/init.h>
|
||||||
|
+#include <linux/usb.h>
|
||||||
|
+#include <linux/usb/input.h>
|
||||||
|
+#include <asm/unaligned.h>
|
||||||
|
+#include <asm/byteorder.h>
|
||||||
|
+
|
||||||
|
+#define DRIVER_VERSION "v1.2"
|
||||||
|
+#define DRIVER_AUTHOR "James McKenzie"
|
||||||
|
+#define DRIVER_DESC "Apple infrared receiver driver"
|
||||||
|
+#define DRIVER_LICENSE "GPL"
|
||||||
|
+
|
||||||
|
+MODULE_AUTHOR(DRIVER_AUTHOR);
|
||||||
|
+MODULE_DESCRIPTION(DRIVER_DESC);
|
||||||
|
+MODULE_LICENSE(DRIVER_LICENSE);
|
||||||
|
+
|
||||||
|
+#define USB_VENDOR_ID_APPLE 0x05ac
|
||||||
|
+#define USB_DEVICE_ID_APPLE_IRCONTROL 0x8240
|
||||||
|
+#define USB_DEVICE_ID_APPLE_ATV_IRCONTROL 0x8241
|
||||||
|
+#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242
|
||||||
|
+
|
||||||
|
+#define URB_SIZE 32
|
||||||
|
+
|
||||||
|
+#define MAX_KEYS 8
|
||||||
|
+#define MAX_KEYS_MASK (MAX_KEYS - 1)
|
||||||
|
+
|
||||||
|
+#define dbginfo(dev, format, arg...) do { if (debug) dev_info(dev , format , ## arg); } while (0)
|
||||||
|
+
|
||||||
|
+static int debug;
|
||||||
|
+module_param(debug, int, 0644);
|
||||||
|
+MODULE_PARM_DESC(debug, "Enable extra debug messages and information");
|
||||||
|
+
|
||||||
|
+/* I have two devices both of which report the following */
|
||||||
|
+/* 25 87 ee 83 0a + */
|
||||||
|
+/* 25 87 ee 83 0c - */
|
||||||
|
+/* 25 87 ee 83 09 << */
|
||||||
|
+/* 25 87 ee 83 06 >> */
|
||||||
|
+/* 25 87 ee 83 05 >" */
|
||||||
|
+/* 25 87 ee 83 03 menu */
|
||||||
|
+/* 26 00 00 00 00 for key repeat*/
|
||||||
|
+
|
||||||
|
+/* Thomas Glanzmann reports the following responses */
|
||||||
|
+/* 25 87 ee ca 0b + */
|
||||||
|
+/* 25 87 ee ca 0d - */
|
||||||
|
+/* 25 87 ee ca 08 << */
|
||||||
|
+/* 25 87 ee ca 07 >> */
|
||||||
|
+/* 25 87 ee ca 04 >" */
|
||||||
|
+/* 25 87 ee ca 02 menu */
|
||||||
|
+/* 26 00 00 00 00 for key repeat*/
|
||||||
|
+/* He also observes the following event sometimes */
|
||||||
|
+/* sent after a key is release, which I interpret */
|
||||||
|
+/* as a flat battery message */
|
||||||
|
+/* 25 87 e0 ca 06 flat battery */
|
||||||
|
+
|
||||||
|
+/* Alexandre Karpenko reports the following responses for Device ID 0x8242 */
|
||||||
|
+/* 25 87 ee 47 0b + */
|
||||||
|
+/* 25 87 ee 47 0d - */
|
||||||
|
+/* 25 87 ee 47 08 << */
|
||||||
|
+/* 25 87 ee 47 07 >> */
|
||||||
|
+/* 25 87 ee 47 04 >" */
|
||||||
|
+/* 25 87 ee 47 02 menu */
|
||||||
|
+/* 26 87 ee 47 ** for key repeat (** is the code of the key being held) */
|
||||||
|
+
|
||||||
|
+static const unsigned short appleir_key_table[] = {
|
||||||
|
+ KEY_RESERVED,
|
||||||
|
+ KEY_MENU,
|
||||||
|
+ KEY_PLAYPAUSE,
|
||||||
|
+ KEY_FORWARD,
|
||||||
|
+ KEY_BACK,
|
||||||
|
+ KEY_VOLUMEUP,
|
||||||
|
+ KEY_VOLUMEDOWN,
|
||||||
|
+ KEY_RESERVED,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+struct appleir {
|
||||||
|
+ struct input_dev *input_dev;
|
||||||
|
+ unsigned short keymap[ARRAY_SIZE(appleir_key_table)];
|
||||||
|
+ u8 *data;
|
||||||
|
+ dma_addr_t dma_buf;
|
||||||
|
+ struct usb_device *usbdev;
|
||||||
|
+ unsigned int flags;
|
||||||
|
+ struct urb *urb;
|
||||||
|
+ struct timer_list key_up_timer;
|
||||||
|
+ int current_key;
|
||||||
|
+ char phys[32];
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static DEFINE_MUTEX(appleir_mutex);
|
||||||
|
+
|
||||||
|
+enum {
|
||||||
|
+ APPLEIR_OPENED = 0x1,
|
||||||
|
+ APPLEIR_SUSPENDED = 0x2,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static struct usb_device_id appleir_ids[] = {
|
||||||
|
+ { USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) },
|
||||||
|
+ { USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL) },
|
||||||
|
+ { USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) },
|
||||||
|
+ {}
|
||||||
|
+};
|
||||||
|
+MODULE_DEVICE_TABLE(usb, appleir_ids);
|
||||||
|
+
|
||||||
|
+static void dump_packet(struct appleir *appleir, char *msg, u8 *data, int len)
|
||||||
|
+{
|
||||||
|
+ int i;
|
||||||
|
+
|
||||||
|
+ printk(KERN_ERR "appleir: %s (%d bytes)", msg, len);
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < len; ++i)
|
||||||
|
+ printk(" %02x", data[i]);
|
||||||
|
+ printk("\n");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void key_up(struct appleir *appleir, int key)
|
||||||
|
+{
|
||||||
|
+ dbginfo(&appleir->input_dev->dev, "key %d up\n", key);
|
||||||
|
+ input_report_key(appleir->input_dev, key, 0);
|
||||||
|
+ input_sync(appleir->input_dev);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void key_down(struct appleir *appleir, int key)
|
||||||
|
+{
|
||||||
|
+ dbginfo(&appleir->input_dev->dev, "key %d down\n", key);
|
||||||
|
+ input_report_key(appleir->input_dev, key, 1);
|
||||||
|
+ input_sync(appleir->input_dev);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void battery_flat(struct appleir *appleir)
|
||||||
|
+{
|
||||||
|
+ dev_err(&appleir->input_dev->dev, "possible flat battery?\n");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void key_up_tick(unsigned long data)
|
||||||
|
+{
|
||||||
|
+ struct appleir *appleir = (struct appleir *)data;
|
||||||
|
+
|
||||||
|
+ if (appleir->current_key) {
|
||||||
|
+ key_up(appleir, appleir->current_key);
|
||||||
|
+ appleir->current_key = 0;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void new_data(struct appleir *appleir, u8 *data, int len)
|
||||||
|
+{
|
||||||
|
+ static const u8 keydown[] = { 0x25, 0x87, 0xee };
|
||||||
|
+ static const u8 keyrepeat[] = { 0x26, };
|
||||||
|
+ static const u8 flatbattery[] = { 0x25, 0x87, 0xe0 };
|
||||||
|
+
|
||||||
|
+ if (debug)
|
||||||
|
+ dump_packet(appleir, "received", data, len);
|
||||||
|
+
|
||||||
|
+ if (len != 5)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ if (!memcmp(data, keydown, sizeof(keydown))) {
|
||||||
|
+ /* If we already have a key down, take it up before marking
|
||||||
|
+ this one down */
|
||||||
|
+ if (appleir->current_key)
|
||||||
|
+ key_up(appleir, appleir->current_key);
|
||||||
|
+ appleir->current_key = appleir->keymap[(data[4] >> 1) & MAX_KEYS_MASK];
|
||||||
|
+
|
||||||
|
+ key_down(appleir, appleir->current_key);
|
||||||
|
+ /* Remote doesn't do key up, either pull them up, in the test
|
||||||
|
+ above, or here set a timer which pulls them up after 1/8 s */
|
||||||
|
+ mod_timer(&appleir->key_up_timer, jiffies + HZ / 8);
|
||||||
|
+
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!memcmp(data, keyrepeat, sizeof(keyrepeat))) {
|
||||||
|
+ key_down(appleir, appleir->current_key);
|
||||||
|
+ /* Remote doesn't do key up, either pull them up, in the test
|
||||||
|
+ above, or here set a timer which pulls them up after 1/8 s */
|
||||||
|
+ mod_timer(&appleir->key_up_timer, jiffies + HZ / 8);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!memcmp(data, flatbattery, sizeof(flatbattery))) {
|
||||||
|
+ battery_flat(appleir);
|
||||||
|
+ /* Fall through */
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ dump_packet(appleir, "unknown packet", data, len);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void appleir_urb(struct urb *urb)
|
||||||
|
+{
|
||||||
|
+ struct appleir *appleir = urb->context;
|
||||||
|
+ int status = urb->status;
|
||||||
|
+ int retval;
|
||||||
|
+
|
||||||
|
+ switch (status) {
|
||||||
|
+ case 0:
|
||||||
|
+ new_data(appleir, urb->transfer_buffer, urb->actual_length);
|
||||||
|
+ break;
|
||||||
|
+ case -ECONNRESET:
|
||||||
|
+ case -ENOENT:
|
||||||
|
+ case -ESHUTDOWN:
|
||||||
|
+ /* This urb is terminated, clean up */
|
||||||
|
+ dbginfo(&appleir->input_dev->dev, "%s - urb shutting down with status: %d", __func__,
|
||||||
|
+ urb->status);
|
||||||
|
+ return;
|
||||||
|
+ default:
|
||||||
|
+ dbginfo(&appleir->input_dev->dev, "%s - nonzero urb status received: %d", __func__,
|
||||||
|
+ urb->status);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ retval = usb_submit_urb(urb, GFP_ATOMIC);
|
||||||
|
+ if (retval)
|
||||||
|
+ err("%s - usb_submit_urb failed with result %d", __func__,
|
||||||
|
+ retval);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int appleir_open(struct input_dev *dev)
|
||||||
|
+{
|
||||||
|
+ struct appleir *appleir = input_get_drvdata(dev);
|
||||||
|
+ struct usb_interface *intf = usb_ifnum_to_if(appleir->usbdev, 0);
|
||||||
|
+ int r;
|
||||||
|
+
|
||||||
|
+ r = usb_autopm_get_interface(intf);
|
||||||
|
+ if (r) {
|
||||||
|
+ dev_err(&intf->dev,
|
||||||
|
+ "%s(): usb_autopm_get_interface() = %d\n", __func__, r);
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ mutex_lock(&appleir_mutex);
|
||||||
|
+
|
||||||
|
+ if (usb_submit_urb(appleir->urb, GFP_ATOMIC)) {
|
||||||
|
+ r = -EIO;
|
||||||
|
+ goto fail;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ appleir->flags |= APPLEIR_OPENED;
|
||||||
|
+
|
||||||
|
+ mutex_unlock(&appleir_mutex);
|
||||||
|
+
|
||||||
|
+ usb_autopm_put_interface(intf);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+fail:
|
||||||
|
+ mutex_unlock(&appleir_mutex);
|
||||||
|
+ usb_autopm_put_interface(intf);
|
||||||
|
+ return r;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void appleir_close(struct input_dev *dev)
|
||||||
|
+{
|
||||||
|
+ struct appleir *appleir = input_get_drvdata(dev);
|
||||||
|
+
|
||||||
|
+ mutex_lock(&appleir_mutex);
|
||||||
|
+
|
||||||
|
+ if (!(appleir->flags & APPLEIR_SUSPENDED)) {
|
||||||
|
+ usb_kill_urb(appleir->urb);
|
||||||
|
+ del_timer_sync(&appleir->key_up_timer);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ appleir->flags &= ~APPLEIR_OPENED;
|
||||||
|
+
|
||||||
|
+ mutex_unlock(&appleir_mutex);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int appleir_probe(struct usb_interface *intf,
|
||||||
|
+ const struct usb_device_id *id)
|
||||||
|
+{
|
||||||
|
+ struct usb_device *dev = interface_to_usbdev(intf);
|
||||||
|
+ struct usb_endpoint_descriptor *endpoint;
|
||||||
|
+ struct appleir *appleir = NULL;
|
||||||
|
+ struct input_dev *input_dev;
|
||||||
|
+ int retval = -ENOMEM;
|
||||||
|
+ int i;
|
||||||
|
+
|
||||||
|
+ appleir = kzalloc(sizeof(struct appleir), GFP_KERNEL);
|
||||||
|
+ if (!appleir)
|
||||||
|
+ goto allocfail;
|
||||||
|
+
|
||||||
|
+ appleir->data = usb_buffer_alloc(dev, URB_SIZE, GFP_KERNEL,
|
||||||
|
+ &appleir->dma_buf);
|
||||||
|
+ if (!appleir->data)
|
||||||
|
+ goto usbfail;
|
||||||
|
+
|
||||||
|
+ appleir->urb = usb_alloc_urb(0, GFP_KERNEL);
|
||||||
|
+ if (!appleir->urb)
|
||||||
|
+ goto urbfail;
|
||||||
|
+
|
||||||
|
+ appleir->usbdev = dev;
|
||||||
|
+
|
||||||
|
+ input_dev = input_allocate_device();
|
||||||
|
+ if (!input_dev)
|
||||||
|
+ goto inputfail;
|
||||||
|
+
|
||||||
|
+ appleir->input_dev = input_dev;
|
||||||
|
+
|
||||||
|
+ usb_make_path(dev, appleir->phys, sizeof(appleir->phys));
|
||||||
|
+ strlcpy(appleir->phys, "/input0", sizeof(appleir->phys));
|
||||||
|
+
|
||||||
|
+ input_dev->name = "Apple Infrared Remote Controller";
|
||||||
|
+ input_dev->phys = appleir->phys;
|
||||||
|
+ usb_to_input_id(dev, &input_dev->id);
|
||||||
|
+ input_dev->dev.parent = &intf->dev;
|
||||||
|
+ input_dev->keycode = appleir->keymap;
|
||||||
|
+ input_dev->keycodesize = sizeof(unsigned short);
|
||||||
|
+ input_dev->keycodemax = ARRAY_SIZE(appleir->keymap);
|
||||||
|
+
|
||||||
|
+ input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
|
||||||
|
+
|
||||||
|
+ memcpy(appleir->keymap, appleir_key_table, sizeof(appleir->keymap));
|
||||||
|
+ for (i = 0; i < ARRAY_SIZE(appleir_key_table); i++)
|
||||||
|
+ set_bit(appleir->keymap[i], input_dev->keybit);
|
||||||
|
+ clear_bit(KEY_RESERVED, input_dev->keybit);
|
||||||
|
+
|
||||||
|
+ input_set_drvdata(input_dev, appleir);
|
||||||
|
+ input_dev->open = appleir_open;
|
||||||
|
+ input_dev->close = appleir_close;
|
||||||
|
+
|
||||||
|
+ endpoint = &intf->cur_altsetting->endpoint[0].desc;
|
||||||
|
+
|
||||||
|
+ usb_fill_int_urb(appleir->urb, dev,
|
||||||
|
+ usb_rcvintpipe(dev, endpoint->bEndpointAddress),
|
||||||
|
+ appleir->data, 8,
|
||||||
|
+ appleir_urb, appleir, endpoint->bInterval);
|
||||||
|
+
|
||||||
|
+ appleir->urb->transfer_dma = appleir->dma_buf;
|
||||||
|
+ appleir->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||||
|
+
|
||||||
|
+ setup_timer(&appleir->key_up_timer,
|
||||||
|
+ key_up_tick, (unsigned long) appleir);
|
||||||
|
+
|
||||||
|
+ retval = input_register_device(appleir->input_dev);
|
||||||
|
+ if (retval)
|
||||||
|
+ goto inputfail;
|
||||||
|
+
|
||||||
|
+ usb_set_intfdata(intf, appleir);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+inputfail:
|
||||||
|
+ input_free_device(appleir->input_dev);
|
||||||
|
+
|
||||||
|
+urbfail:
|
||||||
|
+ usb_free_urb(appleir->urb);
|
||||||
|
+
|
||||||
|
+usbfail:
|
||||||
|
+ usb_buffer_free(dev, URB_SIZE, appleir->data,
|
||||||
|
+ appleir->dma_buf);
|
||||||
|
+
|
||||||
|
+allocfail:
|
||||||
|
+ kfree(appleir);
|
||||||
|
+
|
||||||
|
+ return retval;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void appleir_disconnect(struct usb_interface *intf)
|
||||||
|
+{
|
||||||
|
+ struct appleir *appleir = usb_get_intfdata(intf);
|
||||||
|
+
|
||||||
|
+ usb_set_intfdata(intf, NULL);
|
||||||
|
+ input_unregister_device(appleir->input_dev);
|
||||||
|
+ usb_free_urb(appleir->urb);
|
||||||
|
+ usb_buffer_free(interface_to_usbdev(intf), URB_SIZE,
|
||||||
|
+ appleir->data, appleir->dma_buf);
|
||||||
|
+ kfree(appleir);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int appleir_suspend(struct usb_interface *interface,
|
||||||
|
+ pm_message_t message)
|
||||||
|
+{
|
||||||
|
+ struct appleir *appleir = usb_get_intfdata(interface);
|
||||||
|
+
|
||||||
|
+ mutex_lock(&appleir_mutex);
|
||||||
|
+ if (appleir->flags & APPLEIR_OPENED)
|
||||||
|
+ usb_kill_urb(appleir->urb);
|
||||||
|
+
|
||||||
|
+ appleir->flags |= APPLEIR_SUSPENDED;
|
||||||
|
+
|
||||||
|
+ mutex_unlock(&appleir_mutex);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int appleir_resume(struct usb_interface *interface)
|
||||||
|
+{
|
||||||
|
+ struct appleir *appleir;
|
||||||
|
+ int r = 0;
|
||||||
|
+
|
||||||
|
+ appleir = usb_get_intfdata(interface);
|
||||||
|
+
|
||||||
|
+ mutex_lock(&appleir_mutex);
|
||||||
|
+ if (appleir->flags & APPLEIR_OPENED) {
|
||||||
|
+ struct usb_endpoint_descriptor *endpoint;
|
||||||
|
+
|
||||||
|
+ endpoint = &interface->cur_altsetting->endpoint[0].desc;
|
||||||
|
+ usb_fill_int_urb(appleir->urb, appleir->usbdev,
|
||||||
|
+ usb_rcvintpipe(appleir->usbdev, endpoint->bEndpointAddress),
|
||||||
|
+ appleir->data, 8,
|
||||||
|
+ appleir_urb, appleir, endpoint->bInterval);
|
||||||
|
+ appleir->urb->transfer_dma = appleir->dma_buf;
|
||||||
|
+ appleir->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||||
|
+
|
||||||
|
+ /* And reset the USB device */
|
||||||
|
+ if (usb_submit_urb(appleir->urb, GFP_ATOMIC))
|
||||||
|
+ r = -EIO;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ appleir->flags &= ~APPLEIR_SUSPENDED;
|
||||||
|
+
|
||||||
|
+ mutex_unlock(&appleir_mutex);
|
||||||
|
+
|
||||||
|
+ return r;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static struct usb_driver appleir_driver = {
|
||||||
|
+ .name = "appleir",
|
||||||
|
+ .probe = appleir_probe,
|
||||||
|
+ .disconnect = appleir_disconnect,
|
||||||
|
+ .suspend = appleir_suspend,
|
||||||
|
+ .resume = appleir_resume,
|
||||||
|
+ .reset_resume = appleir_resume,
|
||||||
|
+ .id_table = appleir_ids,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static int __init appleir_init(void)
|
||||||
|
+{
|
||||||
|
+ return usb_register(&appleir_driver);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void __exit appleir_exit(void)
|
||||||
|
+{
|
||||||
|
+ usb_deregister(&appleir_driver);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+module_init(appleir_init);
|
||||||
|
+module_exit(appleir_exit);
|
||||||
|
diff --git a/include/linux/hid.h b/include/linux/hid.h
|
||||||
|
index b1344ec..f1f2b6f 100644
|
||||||
|
--- a/include/linux/hid.h
|
||||||
|
+++ b/include/linux/hid.h
|
||||||
|
@@ -308,11 +308,13 @@ struct hid_item {
|
||||||
|
#define HID_QUIRK_NOTOUCH 0x00000002
|
||||||
|
#define HID_QUIRK_IGNORE 0x00000004
|
||||||
|
#define HID_QUIRK_NOGET 0x00000008
|
||||||
|
+#define HID_QUIRK_HIDDEV_FORCE 0x00000010
|
||||||
|
#define HID_QUIRK_BADPAD 0x00000020
|
||||||
|
#define HID_QUIRK_MULTI_INPUT 0x00000040
|
||||||
|
#define HID_QUIRK_SKIP_OUTPUT_REPORTS 0x00010000
|
||||||
|
#define HID_QUIRK_FULLSPEED_INTERVAL 0x10000000
|
||||||
|
#define HID_QUIRK_NO_INIT_REPORTS 0x20000000
|
||||||
|
+#define HID_QUIRK_NO_IGNORE 0x40000000
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the global environment of the parser. This information is
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
55
agp-fix-arbitrary-kernel-memory-writes.patch
Normal file
55
agp-fix-arbitrary-kernel-memory-writes.patch
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
From: Vasiliy Kulikov <segoon@openwall.com>
|
||||||
|
Date: Thu, 14 Apr 2011 16:55:16 +0000 (+0400)
|
||||||
|
Subject: agp: fix arbitrary kernel memory writes
|
||||||
|
X-Git-Tag: v2.6.39-rc5~29^2
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=194b3da873fd334ef183806db751473512af29ce
|
||||||
|
|
||||||
|
agp: fix arbitrary kernel memory writes
|
||||||
|
|
||||||
|
pg_start is copied from userspace on AGPIOC_BIND and AGPIOC_UNBIND ioctl
|
||||||
|
cmds of agp_ioctl() and passed to agpioc_bind_wrap(). As said in the
|
||||||
|
comment, (pg_start + mem->page_count) may wrap in case of AGPIOC_BIND,
|
||||||
|
and it is not checked at all in case of AGPIOC_UNBIND. As a result, user
|
||||||
|
with sufficient privileges (usually "video" group) may generate either
|
||||||
|
local DoS or privilege escalation.
|
||||||
|
|
||||||
|
Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
|
||||||
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
|
||||||
|
index 850a643..b072648 100644
|
||||||
|
--- a/drivers/char/agp/generic.c
|
||||||
|
+++ b/drivers/char/agp/generic.c
|
||||||
|
@@ -1095,8 +1095,8 @@ int agp_generic_insert_memory(struct agp_memory * mem, off_t pg_start, int type)
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* AK: could wrap */
|
||||||
|
- if ((pg_start + mem->page_count) > num_entries)
|
||||||
|
+ if (((pg_start + mem->page_count) > num_entries) ||
|
||||||
|
+ ((pg_start + mem->page_count) < pg_start))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
j = pg_start;
|
||||||
|
@@ -1130,7 +1130,7 @@ int agp_generic_remove_memory(struct agp_memory *mem, off_t pg_start, int type)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
struct agp_bridge_data *bridge;
|
||||||
|
- int mask_type;
|
||||||
|
+ int mask_type, num_entries;
|
||||||
|
|
||||||
|
bridge = mem->bridge;
|
||||||
|
if (!bridge)
|
||||||
|
@@ -1142,6 +1142,11 @@ int agp_generic_remove_memory(struct agp_memory *mem, off_t pg_start, int type)
|
||||||
|
if (type != mem->type)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
+ num_entries = agp_num_entries();
|
||||||
|
+ if (((pg_start + mem->page_count) > num_entries) ||
|
||||||
|
+ ((pg_start + mem->page_count) < pg_start))
|
||||||
|
+ return -EINVAL;
|
||||||
|
+
|
||||||
|
mask_type = bridge->driver->agp_type_to_mask_type(bridge, type);
|
||||||
|
if (mask_type != 0) {
|
||||||
|
/* The generic routines know nothing of memory types */
|
||||||
56
agp-fix-oom-and-buffer-overflow.patch
Normal file
56
agp-fix-oom-and-buffer-overflow.patch
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
From: Vasiliy Kulikov <segoon@openwall.com>
|
||||||
|
Date: Thu, 14 Apr 2011 16:55:19 +0000 (+0400)
|
||||||
|
Subject: agp: fix OOM and buffer overflow
|
||||||
|
X-Git-Tag: v2.6.39-rc5~29^2~1
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=b522f02184b413955f3bc952e3776ce41edc6355
|
||||||
|
|
||||||
|
agp: fix OOM and buffer overflow
|
||||||
|
|
||||||
|
page_count is copied from userspace. agp_allocate_memory() tries to
|
||||||
|
check whether this number is too big, but doesn't take into account the
|
||||||
|
wrap case. Also agp_create_user_memory() doesn't check whether
|
||||||
|
alloc_size is calculated from num_agp_pages variable without overflow.
|
||||||
|
This may lead to allocation of too small buffer with following buffer
|
||||||
|
overflow.
|
||||||
|
|
||||||
|
Another problem in agp code is not addressed in the patch - kernel memory
|
||||||
|
exhaustion (AGPIOC_RESERVE and AGPIOC_ALLOCATE ioctls). It is not checked
|
||||||
|
whether requested pid is a pid of the caller (no check in agpioc_reserve_wrap()).
|
||||||
|
Each allocation is limited to 16KB, though, there is no per-process limit.
|
||||||
|
This might lead to OOM situation, which is not even solved in case of the
|
||||||
|
caller death by OOM killer - the memory is allocated for another (faked) process.
|
||||||
|
|
||||||
|
Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
|
||||||
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
|
||||||
|
index 012cba0..850a643 100644
|
||||||
|
--- a/drivers/char/agp/generic.c
|
||||||
|
+++ b/drivers/char/agp/generic.c
|
||||||
|
@@ -115,6 +115,9 @@ static struct agp_memory *agp_create_user_memory(unsigned long num_agp_pages)
|
||||||
|
struct agp_memory *new;
|
||||||
|
unsigned long alloc_size = num_agp_pages*sizeof(struct page *);
|
||||||
|
|
||||||
|
+ if (INT_MAX/sizeof(struct page *) < num_agp_pages)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
new = kzalloc(sizeof(struct agp_memory), GFP_KERNEL);
|
||||||
|
if (new == NULL)
|
||||||
|
return NULL;
|
||||||
|
@@ -234,11 +237,14 @@ struct agp_memory *agp_allocate_memory(struct agp_bridge_data *bridge,
|
||||||
|
int scratch_pages;
|
||||||
|
struct agp_memory *new;
|
||||||
|
size_t i;
|
||||||
|
+ int cur_memory;
|
||||||
|
|
||||||
|
if (!bridge)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- if ((atomic_read(&bridge->current_memory_agp) + page_count) > bridge->max_memory_agp)
|
||||||
|
+ cur_memory = atomic_read(&bridge->current_memory_agp);
|
||||||
|
+ if ((cur_memory + page_count > bridge->max_memory_agp) ||
|
||||||
|
+ (cur_memory + page_count < page_count))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (type >= AGP_USER_TYPES) {
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
From: Tim Gardner <tim.gardner@canonical.com>
|
||||||
|
Date: Fri, 9 Jul 2010 20:48:50 +0000 (-0600)
|
||||||
|
Subject: agp/intel: Use the correct mask to detect i830 aperture size.
|
||||||
|
X-Git-Tag: v2.6.35~33^2~4
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=e7b96f28c58ca09f15f6c2e8ccbb889a30fab4f7
|
||||||
|
|
||||||
|
agp/intel: Use the correct mask to detect i830 aperture size.
|
||||||
|
|
||||||
|
BugLink: https://bugs.launchpad.net/bugs/597075
|
||||||
|
|
||||||
|
commit f1befe71fa7a79ab733011b045639d8d809924ad introduced a
|
||||||
|
regression when detecting aperture size of some i915 adapters, e.g.,
|
||||||
|
those on the Intel Q35 chipset.
|
||||||
|
|
||||||
|
The original report: https://bugzilla.kernel.org/show_bug.cgi?id=15733
|
||||||
|
The regression report: https://bugzilla.kernel.org/show_bug.cgi?id=16294
|
||||||
|
|
||||||
|
According to the specification found at
|
||||||
|
http://intellinuxgraphics.org/VOL_1_graphics_core.pdf, the PCI config
|
||||||
|
space register I830_GMCH_CTRL is a mirror of GMCH Graphics
|
||||||
|
Control. The correct macro for isolating the aperture size bits is
|
||||||
|
therefore I830_GMCH_GMS_MASK along with the attendant changes to the
|
||||||
|
case statement.
|
||||||
|
|
||||||
|
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
|
||||||
|
Tested-by: Kees Cook <kees.cook@canonical.com>
|
||||||
|
Cc: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Cc: Eric Anholt <eric@anholt.net>
|
||||||
|
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
|
||||||
|
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
|
||||||
|
index 9344216..a754715 100644
|
||||||
|
--- a/drivers/char/agp/intel-gtt.c
|
||||||
|
+++ b/drivers/char/agp/intel-gtt.c
|
||||||
|
@@ -1216,17 +1216,20 @@ static int intel_i915_get_gtt_size(void)
|
||||||
|
|
||||||
|
/* G33's GTT size defined in gmch_ctrl */
|
||||||
|
pci_read_config_word(agp_bridge->dev, I830_GMCH_CTRL, &gmch_ctrl);
|
||||||
|
- switch (gmch_ctrl & G33_PGETBL_SIZE_MASK) {
|
||||||
|
- case G33_PGETBL_SIZE_1M:
|
||||||
|
+ switch (gmch_ctrl & I830_GMCH_GMS_MASK) {
|
||||||
|
+ case I830_GMCH_GMS_STOLEN_512:
|
||||||
|
+ size = 512;
|
||||||
|
+ break;
|
||||||
|
+ case I830_GMCH_GMS_STOLEN_1024:
|
||||||
|
size = 1024;
|
||||||
|
break;
|
||||||
|
- case G33_PGETBL_SIZE_2M:
|
||||||
|
- size = 2048;
|
||||||
|
+ case I830_GMCH_GMS_STOLEN_8192:
|
||||||
|
+ size = 8*1024;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dev_info(&agp_bridge->dev->dev,
|
||||||
|
"unknown page table size 0x%x, assuming 512KB\n",
|
||||||
|
- (gmch_ctrl & G33_PGETBL_SIZE_MASK));
|
||||||
|
+ (gmch_ctrl & I830_GMCH_GMS_MASK));
|
||||||
|
size = 512;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
28
bluetooth-bnep-fix-buffer-overflow.patch
Normal file
28
bluetooth-bnep-fix-buffer-overflow.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
From: Vasiliy Kulikov <segoon@openwall.com>
|
||||||
|
Date: Mon, 14 Feb 2011 10:54:31 +0000 (+0300)
|
||||||
|
Subject: Bluetooth: bnep: fix buffer overflow
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=43629f8f5ea32a998d06d1bb41eefa0e821ff573
|
||||||
|
|
||||||
|
Bluetooth: bnep: fix buffer overflow
|
||||||
|
|
||||||
|
Struct ca is copied from userspace. It is not checked whether the "device"
|
||||||
|
field is NULL terminated. This potentially leads to BUG() inside of
|
||||||
|
alloc_netdev_mqs() and/or information leak by creating a device with a name
|
||||||
|
made of contents of kernel stack.
|
||||||
|
|
||||||
|
Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
|
||||||
|
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/net/bluetooth/bnep/sock.c b/net/bluetooth/bnep/sock.c
|
||||||
|
index 2862f53..d935da7 100644
|
||||||
|
--- a/net/bluetooth/bnep/sock.c
|
||||||
|
+++ b/net/bluetooth/bnep/sock.c
|
||||||
|
@@ -88,6 +88,7 @@ static int bnep_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long
|
||||||
|
sockfd_put(nsock);
|
||||||
|
return -EBADFD;
|
||||||
|
}
|
||||||
|
+ ca.device[sizeof(ca.device)-1] = 0;
|
||||||
|
|
||||||
|
err = bnep_add_connection(&ca, nsock);
|
||||||
|
if (!err) {
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
bridge: Fix mglist corruption that leads to memory corruption
|
||||||
|
|
||||||
|
The list mp->mglist is used to indicate whether a multicast group
|
||||||
|
is active on the bridge interface itself as opposed to one of the
|
||||||
|
constituent interfaces in the bridge.
|
||||||
|
|
||||||
|
Unfortunately the operation that adds the mp->mglist node to the
|
||||||
|
list neglected to check whether it has already been added. This
|
||||||
|
leads to list corruption in the form of nodes pointing to itself.
|
||||||
|
|
||||||
|
Normally this would be quite obvious as it would cause an infinite
|
||||||
|
loop when walking the list. However, as this list is never actually
|
||||||
|
walked (which means that we don't really need it, I'll get rid of
|
||||||
|
it in a subsequent patch), this instead is hidden until we perform
|
||||||
|
a delete operation on the affected nodes.
|
||||||
|
|
||||||
|
As the same node may now be pointed to by more than one node, the
|
||||||
|
delete operations can then cause modification of freed memory.
|
||||||
|
|
||||||
|
This was observed in practice to cause corruption in 512-byte slabs,
|
||||||
|
most commonly leading to crashes in jbd2.
|
||||||
|
|
||||||
|
Thanks to Josef Bacik for pointing me in the right direction.
|
||||||
|
|
||||||
|
Reported-by: Ian Page Hands <ihands@redhat.com>
|
||||||
|
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
||||||
|
|
||||||
|
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
|
||||||
|
index f701a21..802d3f8 100644
|
||||||
|
--- a/net/bridge/br_multicast.c
|
||||||
|
+++ b/net/bridge/br_multicast.c
|
||||||
|
@@ -719,7 +719,8 @@ static int br_multicast_add_group(struct net_bridge *br,
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
if (!port) {
|
||||||
|
- hlist_add_head(&mp->mglist, &br->mglist);
|
||||||
|
+ if (hlist_unhashed(&mp->mglist))
|
||||||
|
+ hlist_add_head(&mp->mglist, &br->mglist);
|
||||||
|
mod_timer(&mp->timer, now + br->multicast_membership_interval);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
From: Shi Weihua <shiwh@cn.fujitsu.com>
|
||||||
|
Date: Tue, 18 May 2010 00:51:54 +0000 (+0000)
|
||||||
|
Subject: Btrfs: prohibit a operation of changing acl's mask when noacl mount option used
|
||||||
|
X-Git-Tag: v2.6.35-rc3~3^2~3
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=731e3d1b
|
||||||
|
|
||||||
|
Btrfs: prohibit a operation of changing acl's mask when noacl mount option used
|
||||||
|
|
||||||
|
when used Posix File System Test Suite(pjd-fstest) to test btrfs,
|
||||||
|
some cases about setfacl failed when noacl mount option used.
|
||||||
|
I simplified used commands in pjd-fstest, and the following steps
|
||||||
|
can reproduce it.
|
||||||
|
------------------------
|
||||||
|
# cd btrfs-part/
|
||||||
|
# mkdir aaa
|
||||||
|
# setfacl -m m::rw aaa <- successed, but not expected by pjd-fstest.
|
||||||
|
------------------------
|
||||||
|
I checked ext3, a warning message occured, like as:
|
||||||
|
setfacl: aaa/: Operation not supported
|
||||||
|
Certainly, it's expected by pjd-fstest.
|
||||||
|
|
||||||
|
So, i compared acl.c of btrfs and ext3. Based on that, a patch created.
|
||||||
|
Fortunately, it works.
|
||||||
|
|
||||||
|
Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>
|
||||||
|
Signed-off-by: Chris Mason <chris.mason@oracle.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c
|
||||||
|
index 6b4d0cc..a372985 100644
|
||||||
|
--- a/fs/btrfs/acl.c
|
||||||
|
+++ b/fs/btrfs/acl.c
|
||||||
|
@@ -163,6 +163,9 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name,
|
||||||
|
if (!is_owner_or_cap(dentry->d_inode))
|
||||||
|
return -EPERM;
|
||||||
|
|
||||||
|
+ if (!IS_POSIXACL(dentry->d_inode))
|
||||||
|
+ return -EOPNOTSUPP;
|
||||||
|
+
|
||||||
|
if (value) {
|
||||||
|
acl = posix_acl_from_xattr(value, size);
|
||||||
|
if (acl == NULL) {
|
||||||
166
check-kabi
166
check-kabi
|
|
@ -1,166 +0,0 @@
|
||||||
#!/usr/bin/python3
|
|
||||||
#
|
|
||||||
# check-kabi - Red Hat kABI reference checking tool
|
|
||||||
#
|
|
||||||
# We use this script to check against reference Module.kabi files.
|
|
||||||
#
|
|
||||||
# Author: Jon Masters <jcm@redhat.com>
|
|
||||||
# Copyright (C) 2007-2009 Red Hat, Inc.
|
|
||||||
#
|
|
||||||
# This software may be freely redistributed under the terms of the GNU
|
|
||||||
# General Public License (GPL).
|
|
||||||
|
|
||||||
# Changelog:
|
|
||||||
#
|
|
||||||
# 2018/06/01 - Update for python3 by Petr Oros.
|
|
||||||
# 2009/08/15 - Updated for use in RHEL6.
|
|
||||||
# 2007/06/13 - Initial rewrite in python by Jon Masters.
|
|
||||||
|
|
||||||
__author__ = "Jon Masters <jcm@redhat.com>"
|
|
||||||
__version__ = "2.0"
|
|
||||||
__date__ = "2009/08/15"
|
|
||||||
__copyright__ = "Copyright (C) 2007-2009 Red Hat, Inc"
|
|
||||||
__license__ = "GPL"
|
|
||||||
|
|
||||||
import getopt
|
|
||||||
import string
|
|
||||||
import sys
|
|
||||||
|
|
||||||
true = 1
|
|
||||||
false = 0
|
|
||||||
|
|
||||||
|
|
||||||
def load_symvers(symvers, filename):
|
|
||||||
"""Load a Module.symvers file."""
|
|
||||||
|
|
||||||
symvers_file = open(filename, "r")
|
|
||||||
|
|
||||||
while true:
|
|
||||||
in_line = symvers_file.readline()
|
|
||||||
if in_line == "":
|
|
||||||
break
|
|
||||||
if in_line == "\n":
|
|
||||||
continue
|
|
||||||
checksum, symbol, directory, type, *ns = in_line.split()
|
|
||||||
ns = ns[0] if ns else None
|
|
||||||
|
|
||||||
symvers[symbol] = in_line[0:-1]
|
|
||||||
|
|
||||||
|
|
||||||
def load_kabi(kabi, filename):
|
|
||||||
"""Load a Module.kabi file."""
|
|
||||||
|
|
||||||
kabi_file = open(filename, "r")
|
|
||||||
|
|
||||||
while true:
|
|
||||||
in_line = kabi_file.readline()
|
|
||||||
if in_line == "":
|
|
||||||
break
|
|
||||||
if in_line == "\n":
|
|
||||||
continue
|
|
||||||
checksum, symbol, directory, type, *ns = in_line.split()
|
|
||||||
ns = ns[0] if ns else None
|
|
||||||
|
|
||||||
kabi[symbol] = in_line[0:-1]
|
|
||||||
|
|
||||||
|
|
||||||
def check_kabi(symvers, kabi):
|
|
||||||
"""Check Module.kabi and Module.symvers files."""
|
|
||||||
|
|
||||||
fail = 0
|
|
||||||
warn = 0
|
|
||||||
changed_symbols = []
|
|
||||||
moved_symbols = []
|
|
||||||
ns_symbols = []
|
|
||||||
|
|
||||||
for symbol in kabi:
|
|
||||||
abi_hash, abi_sym, abi_dir, abi_type, *abi_ns = kabi[symbol].split()
|
|
||||||
abi_ns = abi_ns[0] if abi_ns else None
|
|
||||||
if symbol in symvers:
|
|
||||||
sym_hash, sym_sym, sym_dir, sym_type, *sym_ns = symvers[symbol].split()
|
|
||||||
sym_ns = sym_ns[0] if sym_ns else None
|
|
||||||
if abi_hash != sym_hash:
|
|
||||||
fail = 1
|
|
||||||
changed_symbols.append(symbol)
|
|
||||||
|
|
||||||
if abi_dir != sym_dir:
|
|
||||||
warn = 1
|
|
||||||
moved_symbols.append(symbol)
|
|
||||||
|
|
||||||
if abi_ns != sym_ns:
|
|
||||||
warn = 1
|
|
||||||
ns_symbols.append(symbol)
|
|
||||||
else:
|
|
||||||
fail = 1
|
|
||||||
changed_symbols.append(symbol)
|
|
||||||
|
|
||||||
if fail:
|
|
||||||
print("*** ERROR - ABI BREAKAGE WAS DETECTED ***")
|
|
||||||
print("")
|
|
||||||
print("The following symbols have been changed (this will cause an ABI breakage):")
|
|
||||||
print("")
|
|
||||||
for symbol in changed_symbols:
|
|
||||||
print(symbol)
|
|
||||||
print("")
|
|
||||||
|
|
||||||
if warn:
|
|
||||||
print("*** WARNING - ABI SYMBOLS MOVED ***")
|
|
||||||
if moved_symbols:
|
|
||||||
print("")
|
|
||||||
print("The following symbols moved (typically caused by moving a symbol from being")
|
|
||||||
print("provided by the kernel vmlinux out to a loadable module):")
|
|
||||||
print("")
|
|
||||||
for symbol in moved_symbols:
|
|
||||||
print(symbol)
|
|
||||||
print("")
|
|
||||||
if ns_symbols:
|
|
||||||
print("")
|
|
||||||
print("The following symbols changed symbol namespaces:")
|
|
||||||
print("")
|
|
||||||
for symbol in ns_symbols:
|
|
||||||
print(symbol)
|
|
||||||
print("")
|
|
||||||
|
|
||||||
"""Halt the build, if we got errors and/or warnings. In either case,
|
|
||||||
double-checkig is required to avoid introducing / concealing
|
|
||||||
KABI inconsistencies."""
|
|
||||||
if fail or warn:
|
|
||||||
sys.exit(1)
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
|
|
||||||
def usage():
|
|
||||||
print("""
|
|
||||||
check-kabi: check Module.kabi and Module.symvers files.
|
|
||||||
|
|
||||||
check-kabi [ -k Module.kabi ] [ -s Module.symvers ]
|
|
||||||
|
|
||||||
""")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
|
|
||||||
symvers_file = ""
|
|
||||||
kabi_file = ""
|
|
||||||
|
|
||||||
opts, args = getopt.getopt(sys.argv[1:], 'hk:s:')
|
|
||||||
|
|
||||||
for o, v in opts:
|
|
||||||
if o == "-s":
|
|
||||||
symvers_file = v
|
|
||||||
if o == "-h":
|
|
||||||
usage()
|
|
||||||
sys.exit(0)
|
|
||||||
if o == "-k":
|
|
||||||
kabi_file = v
|
|
||||||
|
|
||||||
if (symvers_file == "") or (kabi_file == ""):
|
|
||||||
usage()
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
symvers = {}
|
|
||||||
kabi = {}
|
|
||||||
|
|
||||||
load_symvers(symvers, symvers_file)
|
|
||||||
load_kabi(kabi, kabi_file)
|
|
||||||
check_kabi(symvers, kabi)
|
|
||||||
110
config-arm
Normal file
110
config-arm
Normal file
|
|
@ -0,0 +1,110 @@
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
|
# CONFIG_SMP is not set
|
||||||
|
|
||||||
|
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
|
|
||||||
|
CONFIG_ARCH_VERSATILE=y
|
||||||
|
CONFIG_ARCH_VERSATILE_PB=y
|
||||||
|
CONFIG_MACH_VERSATILE_AB=y
|
||||||
|
|
||||||
|
CONFIG_HIGHMEM=y
|
||||||
|
# CONFIG_HIGHPTE is not set
|
||||||
|
|
||||||
|
# CONFIG_CPU_ICACHE_DISABLE is not set
|
||||||
|
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||||
|
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
|
||||||
|
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
|
||||||
|
|
||||||
|
CONFIG_ZBOOT_ROM_TEXT=0
|
||||||
|
CONFIG_ZBOOT_ROM_BSS=0
|
||||||
|
|
||||||
|
# CONFIG_XIP_KERNEL is not set
|
||||||
|
|
||||||
|
CONFIG_ATAGS_PROC=y
|
||||||
|
|
||||||
|
# CONFIG_FPE_NWFPE is not set
|
||||||
|
CONFIG_FPE_FASTFPE=y
|
||||||
|
CONFIG_VFP=y
|
||||||
|
|
||||||
|
CONFIG_PM=y
|
||||||
|
# CONFIG_PM_DEBUG is not set
|
||||||
|
# CONFIG_PM_TRACE is not set
|
||||||
|
CONFIG_SUSPEND=y
|
||||||
|
# CONFIG_PM_TEST_SUSPEND is not set
|
||||||
|
CONFIG_APM_EMULATION=y
|
||||||
|
|
||||||
|
CONFIG_ARM_THUMB=y
|
||||||
|
|
||||||
|
CONFIG_AEABI=y
|
||||||
|
CONFIG_OABI_COMPAT=y
|
||||||
|
|
||||||
|
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||||
|
|
||||||
|
CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20"
|
||||||
|
|
||||||
|
CONFIG_NO_HZ=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
|
|
||||||
|
# CONFIG_CPU_IDLE is not set
|
||||||
|
|
||||||
|
CONFIG_LEDS=y
|
||||||
|
CONFIG_LEDS_CPU=y
|
||||||
|
|
||||||
|
CONFIG_MTD_AFS_PARTS=y
|
||||||
|
CONFIG_MTD_ARM_INTEGRATOR=y
|
||||||
|
CONFIG_MTD_IMPA7=y
|
||||||
|
|
||||||
|
CONFIG_AX88796=m
|
||||||
|
CONFIG_AX88796_93CX6=y
|
||||||
|
CONFIG_SMC91X=m
|
||||||
|
CONFIG_DM9000=m
|
||||||
|
CONFIG_DM9000_DEBUGLEVEL=4
|
||||||
|
# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
|
||||||
|
CONFIG_SMC911X=m
|
||||||
|
CONFIG_SMSC911X=m
|
||||||
|
|
||||||
|
CONFIG_SERIO_AMBAKMI=m
|
||||||
|
|
||||||
|
CONFIG_SERIAL_AMBA_PL011=y
|
||||||
|
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||||
|
|
||||||
|
CONFIG_I2C_VERSATILE=y
|
||||||
|
|
||||||
|
CONFIG_THERMAL=y
|
||||||
|
|
||||||
|
# CONFIG_MFD_T7L66XB is not set
|
||||||
|
# CONFIG_MFD_TC6387XB is not set
|
||||||
|
|
||||||
|
CONFIG_FB_ARMCLCD=m
|
||||||
|
|
||||||
|
CONFIG_SND_ARM=y
|
||||||
|
CONFIG_SND_ARMAACI=m
|
||||||
|
|
||||||
|
CONFIG_USB_MUSB_HDRC=m
|
||||||
|
# CONFIG_MUSB_PIO_ONLY is not set
|
||||||
|
CONFIG_USB_TUSB6010=y
|
||||||
|
# CONFIG_USB_MUSB_DEBUG is not set
|
||||||
|
|
||||||
|
CONFIG_MMC_ARMMMCI=m
|
||||||
|
|
||||||
|
CONFIG_RTC_DRV_PL030=m
|
||||||
|
CONFIG_RTC_DRV_PL031=m
|
||||||
|
|
||||||
|
# CONFIG_SGI_IOC4 is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_USER is not set
|
||||||
|
# CONFIG_DEBUG_ERRORS is not set
|
||||||
|
# CONFIG_DEBUG_LL is not set
|
||||||
|
|
||||||
|
CONFIG_ARM_UNWIND=y
|
||||||
|
|
||||||
|
CONFIG_RCU_FANOUT=32
|
||||||
|
|
||||||
|
# CONFIG_USB_ULPI is not set
|
||||||
|
# CONFIG_OC_ETM is not set
|
||||||
|
|
||||||
|
# CONFIG_MTD_PISMO is not set
|
||||||
|
|
||||||
|
CONFIG_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_COUNTERS=y
|
||||||
83
config-debug
Normal file
83
config-debug
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
CONFIG_SND_VERBOSE_PRINTK=y
|
||||||
|
CONFIG_SND_DEBUG=y
|
||||||
|
CONFIG_SND_PCM_XRUN_DEBUG=y
|
||||||
|
|
||||||
|
CONFIG_DEBUG_MUTEXES=y
|
||||||
|
CONFIG_DEBUG_RT_MUTEXES=y
|
||||||
|
CONFIG_DEBUG_LOCK_ALLOC=y
|
||||||
|
CONFIG_PROVE_LOCKING=y
|
||||||
|
CONFIG_DEBUG_VM=y
|
||||||
|
CONFIG_DEBUG_SPINLOCK=y
|
||||||
|
CONFIG_PROVE_RCU=y
|
||||||
|
|
||||||
|
CONFIG_FAULT_INJECTION=y
|
||||||
|
CONFIG_FAILSLAB=y
|
||||||
|
CONFIG_FAIL_PAGE_ALLOC=y
|
||||||
|
CONFIG_FAIL_MAKE_REQUEST=y
|
||||||
|
CONFIG_FAULT_INJECTION_DEBUG_FS=y
|
||||||
|
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
|
||||||
|
CONFIG_FAIL_IO_TIMEOUT=y
|
||||||
|
|
||||||
|
CONFIG_SLUB_DEBUG_ON=y
|
||||||
|
|
||||||
|
CONFIG_LOCK_STAT=y
|
||||||
|
|
||||||
|
CONFIG_DEBUG_STACK_USAGE=y
|
||||||
|
|
||||||
|
CONFIG_ACPI_DEBUG=y
|
||||||
|
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
|
||||||
|
|
||||||
|
CONFIG_DEBUG_SG=y
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||||
|
|
||||||
|
CONFIG_DEBUG_WRITECOUNT=y
|
||||||
|
CONFIG_DEBUG_OBJECTS=y
|
||||||
|
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
||||||
|
CONFIG_DEBUG_OBJECTS_FREE=y
|
||||||
|
CONFIG_DEBUG_OBJECTS_TIMERS=y
|
||||||
|
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||||
|
|
||||||
|
CONFIG_X86_PTDUMP=y
|
||||||
|
|
||||||
|
CONFIG_CAN_DEBUG_DEVICES=y
|
||||||
|
|
||||||
|
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||||
|
|
||||||
|
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||||
|
|
||||||
|
CONFIG_DEBUG_NOTIFIERS=y
|
||||||
|
|
||||||
|
CONFIG_DMA_API_DEBUG=y
|
||||||
|
|
||||||
|
CONFIG_MMIOTRACE=y
|
||||||
|
|
||||||
|
CONFIG_DEBUG_CREDENTIALS=y
|
||||||
|
|
||||||
|
CONFIG_EXT4_DEBUG=y
|
||||||
|
|
||||||
|
CONFIG_DEBUG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
|
# off in both production debug and nodebug builds,
|
||||||
|
# on in rawhide nodebug builds
|
||||||
|
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||||
|
|
||||||
|
CONFIG_JBD2_DEBUG=y
|
||||||
|
|
||||||
|
CONFIG_DEBUG_CFQ_IOSCHED=y
|
||||||
|
|
||||||
|
CONFIG_DRBD_FAULT_INJECTION=y
|
||||||
|
|
||||||
|
CONFIG_ATH_DEBUG=y
|
||||||
|
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
||||||
|
|
||||||
|
CONFIG_DEBUG_OBJECTS_WORK=y
|
||||||
|
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
|
||||||
|
|
||||||
|
CONFIG_DMADEVICES_DEBUG=y
|
||||||
|
CONFIG_DMADEVICES_VDEBUG=y
|
||||||
|
|
||||||
|
CONFIG_PM_ADVANCED_DEBUG=y
|
||||||
|
|
||||||
|
CONFIG_CEPH_FS_PRETTYDEBUG=y
|
||||||
|
CONFIG_QUOTA_DEBUG=y
|
||||||
4176
config-generic
Normal file
4176
config-generic
Normal file
File diff suppressed because it is too large
Load diff
8
config-i686-PAE
Normal file
8
config-i686-PAE
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# CONFIG_HIGHMEM4G is not set
|
||||||
|
CONFIG_HIGHMEM64G=y
|
||||||
|
|
||||||
|
CONFIG_XEN_DEV_EVTCHN=m
|
||||||
|
CONFIG_XEN_SYS_HYPERVISOR=y
|
||||||
|
|
||||||
|
# I2O only works on non-PAE 32-bit x86
|
||||||
|
# CONFIG_I2O is not set
|
||||||
205
config-ia64-generic
Normal file
205
config-ia64-generic
Normal file
|
|
@ -0,0 +1,205 @@
|
||||||
|
#
|
||||||
|
# Automatically generated make config: don't edit
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Processor type and features
|
||||||
|
#
|
||||||
|
CONFIG_IA64=y
|
||||||
|
CONFIG_64BIT=y
|
||||||
|
# CONFIG_XEN is not set
|
||||||
|
CONFIG_MMU=y
|
||||||
|
CONFIG_EFI=y
|
||||||
|
# CONFIG_ITANIUM is not set
|
||||||
|
CONFIG_MCKINLEY=y
|
||||||
|
CONFIG_IA64_GENERIC=y
|
||||||
|
# CONFIG_IA64_DIG is not set
|
||||||
|
# CONFIG_IA64_HP_ZX1 is not set
|
||||||
|
# CONFIG_IA64_SGI_SN2 is not set
|
||||||
|
CONFIG_IA64_ESI=y
|
||||||
|
CONFIG_IA64_HP_AML_NFW=y
|
||||||
|
CONFIG_MSPEC=y
|
||||||
|
# CONFIG_IA64_HP_SIM is not set
|
||||||
|
# CONFIG_IA64_PAGE_SIZE_4KB is not set
|
||||||
|
# CONFIG_IA64_PAGE_SIZE_8KB is not set
|
||||||
|
CONFIG_IA64_PAGE_SIZE_16KB=y
|
||||||
|
# CONFIG_IA64_PAGE_SIZE_64KB is not set
|
||||||
|
CONFIG_IA64_L1_CACHE_SHIFT=7
|
||||||
|
CONFIG_NUMA=y
|
||||||
|
# CONFIG_VIRTUAL_MEM_MAP is not set
|
||||||
|
CONFIG_SPARSEMEM_MANUAL=y
|
||||||
|
CONFIG_SPARSEMEM=y
|
||||||
|
CONFIG_MEMORY_HOTPLUG=y
|
||||||
|
CONFIG_MEMORY_HOTREMOVE=y
|
||||||
|
CONFIG_IA64_MCA_RECOVERY=m
|
||||||
|
CONFIG_IA64_CYCLONE=y
|
||||||
|
CONFIG_MMTIMER=y
|
||||||
|
CONFIG_IOSAPIC=y
|
||||||
|
CONFIG_FORCE_MAX_ZONEORDER=18
|
||||||
|
CONFIG_NR_CPUS=1024
|
||||||
|
# CONFIG_IA32_SUPPORT is not set
|
||||||
|
# CONFIG_COMPAT is not set
|
||||||
|
CONFIG_PERFMON=y
|
||||||
|
CONFIG_IA64_PALINFO=y
|
||||||
|
CONFIG_EFI_VARS=y
|
||||||
|
CONFIG_SERIAL_8250_RUNTIME_UARTS=16
|
||||||
|
CONFIG_EFI_PCDP=y
|
||||||
|
#
|
||||||
|
# Block devices
|
||||||
|
#
|
||||||
|
# CONFIG_BLK_DEV_FD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# IDE chipset support/bugfixes
|
||||||
|
#
|
||||||
|
CONFIG_BLK_DEV_SGIIOC4=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Character devices
|
||||||
|
#
|
||||||
|
CONFIG_TCG_INFINEON=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# Watchdog Cards
|
||||||
|
#
|
||||||
|
# CONFIG_HW_RANDOM is not set
|
||||||
|
# CONFIG_GEN_RTC is not set
|
||||||
|
CONFIG_EFI_RTC=y
|
||||||
|
CONFIG_RTC_DRV_EFI=y
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# AGP
|
||||||
|
#
|
||||||
|
CONFIG_AGP_I460=y
|
||||||
|
CONFIG_AGP_HP_ZX1=y
|
||||||
|
CONFIG_AGP_SGI_TIOCA=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# HP Simulator drivers
|
||||||
|
#
|
||||||
|
# CONFIG_HP_SIMETH is not set
|
||||||
|
# CONFIG_HP_SIMSERIAL is not set
|
||||||
|
# CONFIG_HP_SIMSCSI is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Kernel hacking
|
||||||
|
#
|
||||||
|
# CONFIG_IA64_PRINT_HAZARDS is not set
|
||||||
|
# CONFIG_DISABLE_VHPT is not set
|
||||||
|
# CONFIG_IA64_DEBUG_CMPXCHG is not set
|
||||||
|
# CONFIG_IA64_DEBUG_IRQ is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Memory Technology Devices (MTD)
|
||||||
|
#
|
||||||
|
# CONFIG_MTD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SGI
|
||||||
|
#
|
||||||
|
CONFIG_SGI_SNSC=y
|
||||||
|
CONFIG_SGI_TIOCX=y
|
||||||
|
CONFIG_SGI_MBCS=m
|
||||||
|
CONFIG_SGI_IOC3=m
|
||||||
|
CONFIG_SGI_IOC4=y
|
||||||
|
CONFIG_SGI_XP=m
|
||||||
|
CONFIG_SGI_GRU=m
|
||||||
|
# CONFIG_SGI_GRU_DEBUG is not set
|
||||||
|
CONFIG_SERIAL_SGI_L1_CONSOLE=y
|
||||||
|
CONFIG_SERIAL_SGI_IOC3=m
|
||||||
|
CONFIG_SERIAL_SGI_IOC4=m
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCSI low-level drivers
|
||||||
|
#
|
||||||
|
# CONFIG_SCSI_BUSLOGIC is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
CONFIG_ACPI=y
|
||||||
|
CONFIG_ACPI_AC=y
|
||||||
|
# CONFIG_ACPI_ASUS is not set
|
||||||
|
CONFIG_ACPI_PROCFS_POWER=y
|
||||||
|
CONFIG_ACPI_SYSFS_POWER=y
|
||||||
|
# CONFIG_ACPI_BATTERY is not set
|
||||||
|
CONFIG_ACPI_BLACKLIST_YEAR=0
|
||||||
|
CONFIG_ACPI_BUTTON=y
|
||||||
|
# CONFIG_ACPI_DOCK is not set
|
||||||
|
CONFIG_ACPI_FAN=y
|
||||||
|
CONFIG_ACPI_HOTPLUG_MEMORY=y
|
||||||
|
CONFIG_ACPI_NUMA=y
|
||||||
|
CONFIG_ACPI_POWER=y
|
||||||
|
CONFIG_ACPI_PROCESSOR=y
|
||||||
|
CONFIG_ACPI_PROCFS=y
|
||||||
|
CONFIG_ACPI_SLEEP=y
|
||||||
|
CONFIG_ACPI_THERMAL=y
|
||||||
|
# CONFIG_ACPI_TOSHIBA is not set
|
||||||
|
CONFIG_ACPI_VIDEO=m
|
||||||
|
# CONFIG_ACPI_PROC_EVENT is not set
|
||||||
|
|
||||||
|
CONFIG_PM=y
|
||||||
|
CONFIG_HOTPLUG_PCI=y
|
||||||
|
# CONFIG_HPET is not set
|
||||||
|
# CONFIG_HOTPLUG_PCI_CPCI is not set
|
||||||
|
CONFIG_HOTPLUG_PCI_SHPC=m
|
||||||
|
CONFIG_HOTPLUG_PCI_SGI=m
|
||||||
|
CONFIG_PNPACPI=y
|
||||||
|
|
||||||
|
CONFIG_SCHED_SMT=y
|
||||||
|
|
||||||
|
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
|
||||||
|
|
||||||
|
CONFIG_CPU_FREQ=y
|
||||||
|
CONFIG_CPU_FREQ_DEBUG=y
|
||||||
|
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_USERSPACE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
|
||||||
|
CONFIG_CPU_FREQ_STAT=m
|
||||||
|
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||||
|
|
||||||
|
CONFIG_IA64_ACPI_CPUFREQ=m
|
||||||
|
|
||||||
|
# CONFIG_PERMIT_BSP_REMOVE is not set
|
||||||
|
# CONFIG_FORCE_CPEI_RETARGET is not set
|
||||||
|
|
||||||
|
CONFIG_NODES_SHIFT=10
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_HW_RANDOM_INTEL=m
|
||||||
|
|
||||||
|
CONFIG_CRASH_DUMP=y
|
||||||
|
CONFIG_PROC_VMCORE=y
|
||||||
|
|
||||||
|
# drivers/media/video/usbvision/usbvision-i2c.c:64:39: error: macro "outb" passed 4 arguments, but takes just 2
|
||||||
|
# CONFIG_VIDEO_USBVISION is not set
|
||||||
|
|
||||||
|
# CONFIG_IA64_MC_ERR_INJECT is not set
|
||||||
|
|
||||||
|
CONFIG_DMIID=y
|
||||||
|
|
||||||
|
CONFIG_SENSORS_I5K_AMB=m
|
||||||
|
|
||||||
|
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||||
|
|
||||||
|
CONFIG_FRAME_WARN=2048
|
||||||
|
|
||||||
|
CONFIG_VIRT_CPU_ACCOUNTING=y
|
||||||
|
CONFIG_VIRTUALIZATION=y
|
||||||
|
CONFIG_KVM=m
|
||||||
|
CONFIG_KVM_INTEL=m
|
||||||
|
|
||||||
|
CONFIG_HP_ILO=m
|
||||||
|
|
||||||
|
CONFIG_PARAVIRT_GUEST=y
|
||||||
|
CONFIG_PARAVIRT=y
|
||||||
|
|
||||||
|
CONFIG_DMAR_DEFAULT_ON=y
|
||||||
|
|
||||||
|
CONFIG_RCU_FANOUT=64
|
||||||
|
|
||||||
|
CONFIG_ACPI_POWER_METER=m
|
||||||
|
CONFIG_I2C_SCMI=m
|
||||||
83
config-nodebug
Normal file
83
config-nodebug
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
CONFIG_SND_VERBOSE_PRINTK=y
|
||||||
|
CONFIG_SND_DEBUG=y
|
||||||
|
CONFIG_SND_PCM_XRUN_DEBUG=y
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_MUTEXES is not set
|
||||||
|
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||||
|
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||||
|
# CONFIG_PROVE_LOCKING is not set
|
||||||
|
# CONFIG_DEBUG_VM is not set
|
||||||
|
# CONFIG_DEBUG_SPINLOCK is not set
|
||||||
|
# CONFIG_PROVE_RCU is not set
|
||||||
|
|
||||||
|
# CONFIG_FAULT_INJECTION is not set
|
||||||
|
# CONFIG_FAILSLAB is not set
|
||||||
|
# CONFIG_FAIL_PAGE_ALLOC is not set
|
||||||
|
# CONFIG_FAIL_MAKE_REQUEST is not set
|
||||||
|
# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
|
||||||
|
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
|
||||||
|
# CONFIG_FAIL_IO_TIMEOUT is not set
|
||||||
|
|
||||||
|
# CONFIG_SLUB_DEBUG_ON is not set
|
||||||
|
|
||||||
|
# CONFIG_LOCK_STAT is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||||
|
|
||||||
|
# CONFIG_ACPI_DEBUG is not set
|
||||||
|
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_SG is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||||
|
# CONFIG_DEBUG_OBJECTS is not set
|
||||||
|
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
||||||
|
# CONFIG_DEBUG_OBJECTS_FREE is not set
|
||||||
|
# CONFIG_DEBUG_OBJECTS_TIMERS is not set
|
||||||
|
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||||
|
|
||||||
|
# CONFIG_X86_PTDUMP is not set
|
||||||
|
|
||||||
|
# CONFIG_CAN_DEBUG_DEVICES is not set
|
||||||
|
|
||||||
|
# CONFIG_MODULE_FORCE_UNLOAD is not set
|
||||||
|
|
||||||
|
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||||
|
|
||||||
|
# CONFIG_DMA_API_DEBUG is not set
|
||||||
|
|
||||||
|
# CONFIG_MMIOTRACE is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||||
|
|
||||||
|
# off in both production debug and nodebug builds,
|
||||||
|
# on in rawhide nodebug builds
|
||||||
|
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||||
|
|
||||||
|
# CONFIG_EXT4_DEBUG is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||||
|
|
||||||
|
# CONFIG_JBD2_DEBUG is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_CFQ_IOSCHED is not set
|
||||||
|
|
||||||
|
# CONFIG_DRBD_FAULT_INJECTION is not set
|
||||||
|
|
||||||
|
# CONFIG_ATH_DEBUG is not set
|
||||||
|
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_OBJECTS_WORK is not set
|
||||||
|
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
|
||||||
|
|
||||||
|
# CONFIG_DMADEVICES_DEBUG is not set
|
||||||
|
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||||
|
|
||||||
|
CONFIG_PM_ADVANCED_DEBUG=y
|
||||||
|
|
||||||
|
# CONFIG_CEPH_FS_PRETTYDEBUG is not set
|
||||||
|
# CONFIG_QUOTA_DEBUG is not set
|
||||||
331
config-powerpc-generic
Normal file
331
config-powerpc-generic
Normal file
|
|
@ -0,0 +1,331 @@
|
||||||
|
# Most PowerPC kernels we build are SMP
|
||||||
|
CONFIG_SMP=y
|
||||||
|
CONFIG_IRQ_ALL_CPUS=y
|
||||||
|
CONFIG_PPC=y
|
||||||
|
CONFIG_WATCHDOG_RTAS=m
|
||||||
|
CONFIG_DEBUGGER=y
|
||||||
|
CONFIG_GENERIC_NVRAM=y
|
||||||
|
CONFIG_ALTIVEC=y
|
||||||
|
|
||||||
|
CONFIG_TAU=y
|
||||||
|
# CONFIG_TAU_INT is not set
|
||||||
|
CONFIG_TAU_AVERAGE=y
|
||||||
|
|
||||||
|
CONFIG_SECCOMP=y
|
||||||
|
|
||||||
|
CONFIG_CPU_FREQ=y
|
||||||
|
CONFIG_CPU_FREQ_DEBUG=y
|
||||||
|
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
|
||||||
|
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_USERSPACE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
|
||||||
|
CONFIG_CPU_FREQ_TABLE=y
|
||||||
|
CONFIG_CPU_FREQ_STAT=m
|
||||||
|
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||||
|
|
||||||
|
CONFIG_PM=y
|
||||||
|
|
||||||
|
CONFIG_PM_STD_PARTITION=""
|
||||||
|
|
||||||
|
CONFIG_SUSPEND=y
|
||||||
|
CONFIG_HIBERNATION=y
|
||||||
|
# CONFIG_RTC is not set
|
||||||
|
# CONFIG_GEN_RTC is not set
|
||||||
|
# CONFIG_GEN_RTC_X is not set
|
||||||
|
CONFIG_RTC_DRV_GENERIC=y
|
||||||
|
CONFIG_PROC_DEVICETREE=y
|
||||||
|
# CONFIG_CMDLINE_BOOL is not set
|
||||||
|
|
||||||
|
CONFIG_ADB=y
|
||||||
|
CONFIG_ADB_PMU=y
|
||||||
|
CONFIG_WINDFARM=y
|
||||||
|
CONFIG_WINDFARM_PM112=y
|
||||||
|
CONFIG_I2C_POWERMAC=y
|
||||||
|
CONFIG_APPLE_AIRPORT=m
|
||||||
|
CONFIG_SERIAL_PMACZILOG=m
|
||||||
|
# CONFIG_SERIAL_PMACZILOG_TTYS is not set
|
||||||
|
CONFIG_AGP_UNINORTH=y
|
||||||
|
CONFIG_FB_OF=y
|
||||||
|
# CONFIG_FB_CONTROL is not set
|
||||||
|
CONFIG_FB_IBM_GXT4500=y
|
||||||
|
CONFIG_FB_RADEON=y
|
||||||
|
CONFIG_FB_MATROX=y
|
||||||
|
CONFIG_FB_NVIDIA=m
|
||||||
|
# CONFIG_FB_VGA16 is not set
|
||||||
|
CONFIG_FB_ATY128_BACKLIGHT=y
|
||||||
|
CONFIG_FB_ATY_BACKLIGHT=y
|
||||||
|
CONFIG_FB_RADEON_BACKLIGHT=y
|
||||||
|
CONFIG_FB_RIVA_BACKLIGHT=y
|
||||||
|
CONFIG_FB_NVIDIA_BACKLIGHT=y
|
||||||
|
|
||||||
|
CONFIG_SND_POWERMAC=m
|
||||||
|
CONFIG_SND_POWERMAC_AUTO_DRC=y
|
||||||
|
CONFIG_SND_AOA=m
|
||||||
|
CONFIG_SND_AOA_SOUNDBUS=m
|
||||||
|
CONFIG_SND_AOA_FABRIC_LAYOUT=m
|
||||||
|
CONFIG_SND_AOA_ONYX=m
|
||||||
|
CONFIG_SND_AOA_TAS=m
|
||||||
|
CONFIG_SND_AOA_TOONIE=m
|
||||||
|
CONFIG_SND_AOA_SOUNDBUS_I2S=m
|
||||||
|
|
||||||
|
CONFIG_XMON=y
|
||||||
|
# CONFIG_XMON_DEFAULT is not set
|
||||||
|
CONFIG_XMON_DISASSEMBLY=y
|
||||||
|
|
||||||
|
CONFIG_BOOTX_TEXT=y
|
||||||
|
CONFIG_MAC_EMUMOUSEBTN=y
|
||||||
|
CONFIG_CAPI_EICON=y
|
||||||
|
|
||||||
|
CONFIG_NVRAM=y
|
||||||
|
|
||||||
|
# CONFIG_PCMCIA_M8XX is not set
|
||||||
|
# CONFIG_SCSI_AHA1542 is not set
|
||||||
|
# CONFIG_SCSI_IN2000 is not set
|
||||||
|
# CONFIG_SCSI_IPS is not set
|
||||||
|
# CONFIG_NI52 is not set
|
||||||
|
# CONFIG_NI65 is not set
|
||||||
|
# CONFIG_LANCE is not set
|
||||||
|
# CONFIG_3C515 is not set
|
||||||
|
# CONFIG_ELPLUS is not set
|
||||||
|
|
||||||
|
CONFIG_MEMORY_HOTPLUG=y
|
||||||
|
|
||||||
|
# Stuff which wants bus_to_virt() or virt_to_bus()
|
||||||
|
# CONFIG_BLK_CPQ_DA is not set
|
||||||
|
# CONFIG_VIDEO_STRADIS is not set
|
||||||
|
# CONFIG_VIDEO_ZORAN is not set
|
||||||
|
# CONFIG_ATM_HORIZON is not set
|
||||||
|
# CONFIG_ATM_FIRESTREAM is not set
|
||||||
|
# CONFIG_ATM_AMBASSADOR is not set
|
||||||
|
# CONFIG_SCSI_DC390T is not set
|
||||||
|
# CONFIG_SCSI_BUSLOGIC is not set
|
||||||
|
|
||||||
|
|
||||||
|
# CONFIG_PPC_EARLY_DEBUG is not set
|
||||||
|
|
||||||
|
# CONFIG_PMAC_BACKLIGHT_LEGACY is not set
|
||||||
|
CONFIG_LEDS_TRIGGER_TIMER=m
|
||||||
|
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
|
||||||
|
CONFIG_LEDS_TRIGGER_GPIO=m
|
||||||
|
|
||||||
|
# FIXME: Should depend on IA64/x86
|
||||||
|
# CONFIG_SGI_IOC4 is not set
|
||||||
|
|
||||||
|
CONFIG_PPC_EFIKA=y
|
||||||
|
CONFIG_PPC_MEDIA5200=y
|
||||||
|
|
||||||
|
# CONFIG_PPC_LITE5200 is not set
|
||||||
|
CONFIG_PPC_BESTCOMM=y
|
||||||
|
CONFIG_PMAC_RACKMETER=m
|
||||||
|
CONFIG_USB_OHCI_HCD_PPC_SOC=y
|
||||||
|
CONFIG_USB_OHCI_HCD_PCI=y
|
||||||
|
CONFIG_USB_OHCI_HCD_PPC_OF=y
|
||||||
|
CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
|
||||||
|
CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
|
||||||
|
|
||||||
|
CONFIG_SERIAL_UARTLITE=m
|
||||||
|
CONFIG_SERIAL_UARTLITE_CONSOLE=y
|
||||||
|
|
||||||
|
CONFIG_SENSORS_AMS=m
|
||||||
|
CONFIG_SENSORS_AMS_PMU=y
|
||||||
|
CONFIG_SENSORS_AMS_I2C=y
|
||||||
|
|
||||||
|
CONFIG_IDE=y
|
||||||
|
CONFIG_BLK_DEV_IDE=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Please see Documentation/ide.txt for help/info on IDE drives
|
||||||
|
#
|
||||||
|
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||||
|
# CONFIG_BLK_DEV_IDECS is not set
|
||||||
|
CONFIG_BLK_DEV_IDECD=m
|
||||||
|
# CONFIG_BLK_DEV_IDETAPE is not set
|
||||||
|
CONFIG_IDE_TASK_IOCTL=y
|
||||||
|
#
|
||||||
|
# IDE chipset support/bugfixes
|
||||||
|
#
|
||||||
|
# CONFIG_IDE_GENERIC is not set
|
||||||
|
# CONFIG_BLK_DEV_IDEPNP is not set
|
||||||
|
# CONFIG_BLK_DEV_IDEPCI is not set
|
||||||
|
# CONFIG_BLK_DEV_AEC62XX is not set
|
||||||
|
# CONFIG_BLK_DEV_ALI15X3 is not set
|
||||||
|
# CONFIG_BLK_DEV_AMD74XX is not set
|
||||||
|
# CONFIG_BLK_DEV_CMD64X is not set
|
||||||
|
# CONFIG_BLK_DEV_TRIFLEX is not set
|
||||||
|
# CONFIG_BLK_DEV_CY82C693 is not set
|
||||||
|
# CONFIG_BLK_DEV_CS5520 is not set
|
||||||
|
# CONFIG_BLK_DEV_CS5530 is not set
|
||||||
|
# CONFIG_BLK_DEV_HPT366 is not set
|
||||||
|
# CONFIG_BLK_DEV_JMICRON is not set
|
||||||
|
# CONFIG_BLK_DEV_SC1200 is not set
|
||||||
|
# CONFIG_BLK_DEV_PIIX is not set
|
||||||
|
# CONFIG_BLK_DEV_IT821X is not set
|
||||||
|
# CONFIG_BLK_DEV_NS87415 is not set
|
||||||
|
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
||||||
|
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
|
||||||
|
# CONFIG_BLK_DEV_SVWKS is not set
|
||||||
|
# CONFIG_BLK_DEV_SIIMAGE is not set
|
||||||
|
# CONFIG_BLK_DEV_SL82C105 is not set
|
||||||
|
# CONFIG_BLK_DEV_SLC90E66 is not set
|
||||||
|
# CONFIG_BLK_DEV_TRM290 is not set
|
||||||
|
# CONFIG_BLK_DEV_VIA82CXXX is not set
|
||||||
|
CONFIG_BLK_DEV_IDE_PMAC=y
|
||||||
|
CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
|
||||||
|
CONFIG_BLK_DEV_IDEDMA=y
|
||||||
|
# CONFIG_BLK_DEV_HD is not set
|
||||||
|
# CONFIG_USB_STORAGE_ISD200 is not set
|
||||||
|
CONFIG_MTD_PHYSMAP_OF=m
|
||||||
|
CONFIG_IDE_PROC_FS=y
|
||||||
|
CONFIG_MACINTOSH_DRIVERS=y
|
||||||
|
|
||||||
|
CONFIG_PPC_PASEMI_MDIO=m
|
||||||
|
CONFIG_SPU_FS_64K_LS=y
|
||||||
|
CONFIG_PPC_PASEMI_CPUFREQ=y
|
||||||
|
CONFIG_PMAC_APM_EMU=m
|
||||||
|
CONFIG_HW_RANDOM_PASEMI=m
|
||||||
|
|
||||||
|
CONFIG_EDAC=y
|
||||||
|
# CONFIG_EDAC_DEBUG is not set
|
||||||
|
CONFIG_EDAC_MM_EDAC=m
|
||||||
|
CONFIG_EDAC_PASEMI=m
|
||||||
|
CONFIG_EDAC_AMD8131=m
|
||||||
|
CONFIG_EDAC_AMD8111=m
|
||||||
|
|
||||||
|
CONFIG_AXON_RAM=m
|
||||||
|
CONFIG_OPROFILE_CELL=y
|
||||||
|
|
||||||
|
CONFIG_SUSPEND_FREEZER=y
|
||||||
|
# CONFIG_IDEPCI_PCIBUS_ORDER is not set
|
||||||
|
CONFIG_PATA_PLATFORM=m
|
||||||
|
CONFIG_PATA_OF_PLATFORM=m
|
||||||
|
CONFIG_USB_EHCI_HCD_PPC_OF=y
|
||||||
|
|
||||||
|
# CONFIG_MPC5121_ADS is not set
|
||||||
|
# CONFIG_MPC5121_GENERIC is not set
|
||||||
|
CONFIG_MTD_OF_PARTS=m
|
||||||
|
# CONFIG_MTD_NAND_FSL_ELBC is not set
|
||||||
|
CONFIG_THERMAL=y
|
||||||
|
|
||||||
|
# CONFIG_MEMORY_HOTREMOVE is not set
|
||||||
|
|
||||||
|
CONFIG_DMADEVICES=y
|
||||||
|
# CONFIG_FSL_DMA is not set
|
||||||
|
|
||||||
|
CONFIG_SND_PPC=y
|
||||||
|
|
||||||
|
CONFIG_PPC_82xx=y
|
||||||
|
CONFIG_PPC_83xx=y
|
||||||
|
CONFIG_PPC_86xx=y
|
||||||
|
CONFIG_EXTRA_TARGETS=""
|
||||||
|
# CONFIG_CODE_PATCHING_SELFTEST is not set
|
||||||
|
# CONFIG_FTR_FIXUP_SELFTEST is not set
|
||||||
|
|
||||||
|
# CONFIG_MATH_EMULATION is not set
|
||||||
|
# CONFIG_RAPIDIO is not set
|
||||||
|
# CONFIG_FS_ENET is not set
|
||||||
|
# CONFIG_UCC_GETH is not set
|
||||||
|
# CONFIG_KEYBOARD_MATRIX is not set
|
||||||
|
# CONFIG_SERIAL_CPM is not set
|
||||||
|
# CONFIG_SERIAL_QE is not set
|
||||||
|
# CONFIG_I2C_CPM is not set
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_SERIO_XILINX_XPS_PS2=m
|
||||||
|
|
||||||
|
# CONFIG_PPC_SMLPAR is not set
|
||||||
|
|
||||||
|
CONFIG_MGCOGE=y
|
||||||
|
CONFIG_GEF_SBC610=y
|
||||||
|
CONFIG_GEF_PPC9A=y
|
||||||
|
CONFIG_GEF_SBC310=y
|
||||||
|
|
||||||
|
CONFIG_QUICC_ENGINE=y
|
||||||
|
CONFIG_QE_GPIO=y
|
||||||
|
CONFIG_MPC8xxx_GPIO=y
|
||||||
|
|
||||||
|
CONFIG_IDE_GD=y
|
||||||
|
CONFIG_IDE_GD_ATA=y
|
||||||
|
CONFIG_IDE_GD_ATAPI=y
|
||||||
|
|
||||||
|
CONFIG_MCU_MPC8349EMITX=m
|
||||||
|
|
||||||
|
CONFIG_GPIO_XILINX=y
|
||||||
|
|
||||||
|
CONFIG_PMIC_DA903X=y
|
||||||
|
CONFIG_BACKLIGHT_DA903X=m
|
||||||
|
CONFIG_LEDS_DA903X=m
|
||||||
|
|
||||||
|
CONFIG_MSI_BITMAP_SELFTEST=y
|
||||||
|
|
||||||
|
CONFIG_RELOCATABLE=y
|
||||||
|
|
||||||
|
# CONFIG_HVC_UDBG is not set
|
||||||
|
CONFIG_PRINT_STACK_DEPTH=64
|
||||||
|
|
||||||
|
CONFIG_BATTERY_DA9030=m
|
||||||
|
# CONFIG_TWL4030_CORE is not set
|
||||||
|
|
||||||
|
CONFIG_BLK_DEV_IT8172=m
|
||||||
|
CONFIG_TOUCHSCREEN_DA9034=m
|
||||||
|
|
||||||
|
CONFIG_SIMPLE_GPIO=y
|
||||||
|
|
||||||
|
CONFIG_FSL_PQ_MDIO=m
|
||||||
|
|
||||||
|
CONFIG_PS3_VRAM=m
|
||||||
|
CONFIG_MDIO_GPIO=m
|
||||||
|
CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL=m
|
||||||
|
# CONFIG_DEBUG_GPIO is not set
|
||||||
|
CONFIG_GPIO_PCA953X=m
|
||||||
|
CONFIG_GPIO_PCF857X=m
|
||||||
|
|
||||||
|
# CONFIG_USB_FHCI_HCD is not set
|
||||||
|
# CONFIG_FHCI_DEBUG is not set
|
||||||
|
|
||||||
|
# CONFIG_DRM_RADEON_KMS is not set
|
||||||
|
|
||||||
|
# CONFIG_AMIGAONE is not set
|
||||||
|
|
||||||
|
CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
|
||||||
|
|
||||||
|
CONFIG_DTL=y
|
||||||
|
|
||||||
|
CONFIG_MMC_SDHCI_OF=m
|
||||||
|
|
||||||
|
# CONFIG_CONSISTENT_SIZE_BOOL is not set
|
||||||
|
|
||||||
|
CONFIG_CAN_SJA1000_OF_PLATFORM=m
|
||||||
|
|
||||||
|
CONFIG_PPC_EMULATED_STATS=y
|
||||||
|
|
||||||
|
CONFIG_SWIOTLB=y
|
||||||
|
|
||||||
|
# CONFIG_RDS is not set
|
||||||
|
|
||||||
|
CONFIG_PPC_DISABLE_WERROR=y
|
||||||
|
|
||||||
|
CONFIG_XILINX_EMACLITE=m
|
||||||
|
|
||||||
|
CONFIG_GPIO_WM831X=m
|
||||||
|
# CONFIG_GPIO_LANGWELL is not set
|
||||||
|
# CONFIG_GPIO_UCB1400 is not set
|
||||||
|
CONFIG_EDAC_MPC85XX=m
|
||||||
|
|
||||||
|
CONFIG_NR_IRQS=512
|
||||||
|
CONFIG_SPARSE_IRQ=y
|
||||||
|
|
||||||
|
CONFIG_PPC_MPC5200_LPBFIFO=m
|
||||||
|
CONFIG_CAN_MSCAN=m
|
||||||
|
CONFIG_CAN_MPC5XXX=m
|
||||||
|
CONFIG_PATA_MACIO=m
|
||||||
|
CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
|
||||||
|
# CONFIG_PMIC_ADP5520 is not set
|
||||||
|
# CONFIG_MFD_88PM8607 is not set
|
||||||
|
# CONFIG_XPS_USB_HCD_XILINX is not set
|
||||||
|
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
|
||||||
|
# CONFIG_MMC_SDHCI_OF_HLWD is not set
|
||||||
|
|
||||||
|
# CONFIG_GPIO_SCH is not set
|
||||||
182
config-powerpc32-generic
Normal file
182
config-powerpc32-generic
Normal file
|
|
@ -0,0 +1,182 @@
|
||||||
|
# CONFIG_SMP is not set
|
||||||
|
CONFIG_PPC32=y
|
||||||
|
# CONFIG_PPC64 is not set
|
||||||
|
# CONFIG_RTAS_PROC is not set
|
||||||
|
# CONFIG_PCMCIA_M8XX is not set
|
||||||
|
# CONFIG_HOTPLUG_PCI is not set
|
||||||
|
CONFIG_CPU_FREQ_PMAC=y
|
||||||
|
CONFIG_PPC_CHRP=y
|
||||||
|
CONFIG_PPC_PMAC=y
|
||||||
|
CONFIG_PPC_MPC52xx=y
|
||||||
|
CONFIG_PPC_PREP=y
|
||||||
|
|
||||||
|
# CONFIG_PPC_MPC5200_SIMPLE is not set
|
||||||
|
CONFIG_SATA_FSL=m
|
||||||
|
# CONFIG_SATA_NV is not set
|
||||||
|
|
||||||
|
# busted in .28git1
|
||||||
|
# ERROR: "cacheable_memzero" [drivers/net/gianfar_driver.ko] undefined!
|
||||||
|
# CONFIG_GIANFAR is not set
|
||||||
|
CONFIG_USB_EHCI_FSL=y
|
||||||
|
|
||||||
|
CONFIG_PMAC_APM_EMU=y
|
||||||
|
CONFIG_PMAC_BACKLIGHT=y
|
||||||
|
|
||||||
|
CONFIG_HIGHMEM=y
|
||||||
|
# CONFIG_HIGHMEM_START_BOOL is not set
|
||||||
|
# CONFIG_LOWMEM_SIZE_BOOL is not set
|
||||||
|
# CONFIG_TASK_SIZE_BOOL is not set
|
||||||
|
# CONFIG_KERNEL_START_BOOL is not set
|
||||||
|
# CONFIG_PPC601_SYNC_FIX is not set
|
||||||
|
CONFIG_ADVANCED_OPTIONS=y
|
||||||
|
CONFIG_SCSI_MESH=m
|
||||||
|
CONFIG_SCSI_MESH_SYNC_RATE=5
|
||||||
|
CONFIG_SCSI_MESH_RESET_DELAY_MS=4000
|
||||||
|
|
||||||
|
CONFIG_SCSI_MAC53C94=m
|
||||||
|
CONFIG_ADB_CUDA=y
|
||||||
|
CONFIG_ADB_MACIO=y
|
||||||
|
CONFIG_INPUT_ADBHID=y
|
||||||
|
CONFIG_ADB_PMU_LED=y
|
||||||
|
CONFIG_ADB_PMU_LED_IDE=y
|
||||||
|
|
||||||
|
CONFIG_PMAC_MEDIABAY=y
|
||||||
|
CONFIG_BMAC=m
|
||||||
|
CONFIG_MACE=m
|
||||||
|
# CONFIG_MACE_AAUI_PORT is not set
|
||||||
|
CONFIG_MV643XX_ETH=m
|
||||||
|
CONFIG_I2C_HYDRA=m
|
||||||
|
CONFIG_I2C_MPC=m
|
||||||
|
CONFIG_THERM_WINDTUNNEL=m
|
||||||
|
CONFIG_THERM_ADT746X=m
|
||||||
|
# CONFIG_ANSLCD is not set
|
||||||
|
|
||||||
|
CONFIG_FB_PLATINUM=y
|
||||||
|
CONFIG_FB_VALKYRIE=y
|
||||||
|
CONFIG_FB_CT65550=y
|
||||||
|
# CONFIG_BDI_SWITCH is not set
|
||||||
|
|
||||||
|
CONFIG_MAC_FLOPPY=m
|
||||||
|
# CONFIG_BLK_DEV_FD is not set
|
||||||
|
|
||||||
|
CONFIG_FB_ATY128=y
|
||||||
|
CONFIG_FB_ATY=y
|
||||||
|
CONFIG_FB_MATROX=y
|
||||||
|
# CONFIG_KEXEC is not set
|
||||||
|
|
||||||
|
# CONFIG_HVC_RTAS is not set
|
||||||
|
|
||||||
|
# CONFIG_UDBG_RTAS_CONSOLE is not set
|
||||||
|
CONFIG_BRIQ_PANEL=m
|
||||||
|
|
||||||
|
# CONFIG_ATA_PIIX is not set
|
||||||
|
# CONFIG_PATA_AMD is not set
|
||||||
|
# CONFIG_PATA_ATIIXP is not set
|
||||||
|
CONFIG_PATA_MPC52xx=m
|
||||||
|
# CONFIG_PATA_MPIIX is not set
|
||||||
|
# CONFIG_PATA_OLDPIIX is not set
|
||||||
|
# CONFIG_PATA_OPTI is not set
|
||||||
|
# CONFIG_PATA_SERVERWORKS is not set
|
||||||
|
|
||||||
|
CONFIG_SERIAL_MPC52xx=y
|
||||||
|
CONFIG_SERIAL_MPC52xx_CONSOLE=y
|
||||||
|
CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
|
||||||
|
# CONFIG_MPC5200_WDT is not set
|
||||||
|
CONFIG_8xxx_WDT=m
|
||||||
|
CONFIG_GEF_WDT=m
|
||||||
|
|
||||||
|
CONFIG_PPC_MPC5200_BUGFIX=y
|
||||||
|
CONFIG_FEC_MPC52xx=m
|
||||||
|
#CHECK: This may later become a tristate.
|
||||||
|
CONFIG_FEC_MPC52xx_MDIO=y
|
||||||
|
CONFIG_PPC_MPC5200_GPIO=y
|
||||||
|
CONFIG_MDIO_GPIO=m
|
||||||
|
|
||||||
|
CONFIG_SERIAL_OF_PLATFORM=y
|
||||||
|
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||||
|
|
||||||
|
# CONFIG_EMBEDDED6xx is not set
|
||||||
|
CONFIG_NO_HZ=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
|
|
||||||
|
# CONFIG_BLK_DEV_PLATFORM is not set
|
||||||
|
# CONFIG_BLK_DEV_4DRIVES is not set
|
||||||
|
# CONFIG_BLK_DEV_ALI14XX is not set
|
||||||
|
# CONFIG_BLK_DEV_DTC2278 is not set
|
||||||
|
# CONFIG_BLK_DEV_HT6560B is not set
|
||||||
|
# CONFIG_BLK_DEV_QD65XX is not set
|
||||||
|
# CONFIG_BLK_DEV_UMC8672 is not set
|
||||||
|
|
||||||
|
# CONFIG_VIRQ_DEBUG is not set
|
||||||
|
|
||||||
|
CONFIG_PPC_BESTCOMM_ATA=m
|
||||||
|
CONFIG_PPC_BESTCOMM_FEC=m
|
||||||
|
CONFIG_PPC_BESTCOMM_GEN_BD=m
|
||||||
|
|
||||||
|
CONFIG_FORCE_MAX_ZONEORDER=11
|
||||||
|
# CONFIG_PAGE_OFFSET_BOOL is not set
|
||||||
|
# CONFIG_FB_FSL_DIU is not set
|
||||||
|
CONFIG_IRQSTACKS=y
|
||||||
|
CONFIG_VIRTUALIZATION=y
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_GPIO is not set
|
||||||
|
# CONFIG_GPIO_PCA953X is not set
|
||||||
|
# CONFIG_GPIO_PCF857X is not set
|
||||||
|
# CONFIG_HTC_EGPIO is not set
|
||||||
|
|
||||||
|
# CONFIG_TIFM_CORE is not set
|
||||||
|
|
||||||
|
# CONFIG_BLK_CPQ_CISS_DA is not set
|
||||||
|
# CONFIG_CISS_SCSI_TAPE is not set
|
||||||
|
|
||||||
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
|
|
||||||
|
# CONFIG_SND_INTEL8X0 is not set
|
||||||
|
# CONFIG_SND_INTEL8X0M is not set
|
||||||
|
|
||||||
|
# CONFIG_MEMSTICK is not set
|
||||||
|
|
||||||
|
# CONFIG_IPMI_HANDLER is not set
|
||||||
|
# CONFIG_TCG_TPM is not set
|
||||||
|
|
||||||
|
# PPC gets sad with debug alloc (bz 448598)
|
||||||
|
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||||
|
|
||||||
|
CONFIG_SND_ISA=y
|
||||||
|
CONFIG_CRYPTO_DEV_TALITOS=m
|
||||||
|
|
||||||
|
CONFIG_FSL_EMB_PERFMON=y
|
||||||
|
CONFIG_MPC8272_ADS=y
|
||||||
|
CONFIG_PQ2FADS=y
|
||||||
|
CONFIG_EP8248E=y
|
||||||
|
CONFIG_MPC831x_RDB=y
|
||||||
|
CONFIG_MPC832x_MDS=y
|
||||||
|
CONFIG_MPC832x_RDB=y
|
||||||
|
CONFIG_MPC834x_MDS=y
|
||||||
|
CONFIG_MPC834x_ITX=y
|
||||||
|
CONFIG_MPC836x_MDS=y
|
||||||
|
CONFIG_MPC836x_RDK=y
|
||||||
|
CONFIG_MPC837x_MDS=y
|
||||||
|
CONFIG_MPC837x_RDB=y
|
||||||
|
CONFIG_SBC834x=y
|
||||||
|
CONFIG_ASP834x=y
|
||||||
|
CONFIG_KMETER1=y
|
||||||
|
CONFIG_MPC8641_HPCN=y
|
||||||
|
CONFIG_SBC8641D=y
|
||||||
|
CONFIG_MPC8610_HPCD=y
|
||||||
|
|
||||||
|
# CONFIG_USB_MUSB_HDRC is not set
|
||||||
|
|
||||||
|
# busted in 2.6.27
|
||||||
|
# drivers/mtd/maps/sbc8240.c: In function 'init_sbc8240_mtd':
|
||||||
|
# drivers/mtd/maps/sbc8240.c:172: warning: passing argument 1 of 'simple_map_init' from incompatible pointer type
|
||||||
|
# drivers/mtd/maps/sbc8240.c:177: error: 'struct mtd_info' has no member named 'module'
|
||||||
|
|
||||||
|
CONFIG_MTD_NAND_FSL_UPM=m
|
||||||
|
|
||||||
|
CONFIG_RCU_FANOUT=32
|
||||||
|
|
||||||
|
CONFIG_PERF_COUNTERS=y
|
||||||
|
CONFIG_PERF_EVENTS=y
|
||||||
|
CONFIG_EVENT_PROFILE=y
|
||||||
|
|
||||||
4
config-powerpc32-smp
Normal file
4
config-powerpc32-smp
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
CONFIG_SMP=y
|
||||||
|
# CONFIG_HOTPLUG_CPU is not set
|
||||||
|
CONFIG_NR_CPUS=4
|
||||||
|
# CONFIG_BATTERY_PMU is not set
|
||||||
184
config-powerpc64
Normal file
184
config-powerpc64
Normal file
|
|
@ -0,0 +1,184 @@
|
||||||
|
CONFIG_WINDFARM_PM81=y
|
||||||
|
CONFIG_WINDFARM_PM91=y
|
||||||
|
CONFIG_WINDFARM_PM121=y
|
||||||
|
CONFIG_PPC_PMAC64=y
|
||||||
|
CONFIG_PPC_MAPLE=y
|
||||||
|
CONFIG_PPC_CELL=y
|
||||||
|
CONFIG_PPC_IBM_CELL_BLADE=y
|
||||||
|
CONFIG_PPC_ISERIES=y
|
||||||
|
CONFIG_PPC_PSERIES=y
|
||||||
|
CONFIG_PPC_PMAC=y
|
||||||
|
CONFIG_PPC_PASEMI=y
|
||||||
|
# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
|
||||||
|
CONFIG_PPC_PS3=y
|
||||||
|
CONFIG_PPC_CELLEB=y
|
||||||
|
CONFIG_PPC_CELL_QPACE=y
|
||||||
|
CONFIG_PS3_HTAB_SIZE=20
|
||||||
|
# CONFIG_PS3_DYNAMIC_DMA is not set
|
||||||
|
CONFIG_PS3_ADVANCED=y
|
||||||
|
CONFIG_PS3_HTAB_SIZE=20
|
||||||
|
# CONFIG_PS3_DYNAMIC_DMA is not set
|
||||||
|
CONFIG_PS3_VUART=y
|
||||||
|
CONFIG_PS3_PS3AV=y
|
||||||
|
CONFIG_PS3_STORAGE=m
|
||||||
|
CONFIG_PS3_DISK=m
|
||||||
|
CONFIG_PS3_ROM=m
|
||||||
|
CONFIG_PS3_FLASH=m
|
||||||
|
CONFIG_PS3_LPM=y
|
||||||
|
CONFIG_SND_PS3=m
|
||||||
|
CONFIG_SND_PS3_DEFAULT_START_DELAY=1000
|
||||||
|
CONFIG_GELIC_NET=m
|
||||||
|
CONFIG_GELIC_WIRELESS=y
|
||||||
|
CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE=y
|
||||||
|
CONFIG_CBE_THERM=m
|
||||||
|
CONFIG_CBE_CPUFREQ=m
|
||||||
|
CONFIG_CBE_CPUFREQ_PMI=m
|
||||||
|
CONFIG_CBE_CPUFREQ_PMI_ENABLE=y
|
||||||
|
CONFIG_PMAC_RACKMETER=m
|
||||||
|
CONFIG_IBMEBUS=y
|
||||||
|
CONFIG_SPU_FS=m
|
||||||
|
CONFIG_RTAS_FLASH=y
|
||||||
|
CONFIG_PPC_SPLPAR=y
|
||||||
|
CONFIG_SCANLOG=y
|
||||||
|
CONFIG_LPARCFG=y
|
||||||
|
CONFIG_SERIAL_ICOM=m
|
||||||
|
CONFIG_HVCS=m
|
||||||
|
CONFIG_HVC_CONSOLE=y
|
||||||
|
CONFIG_HOTPLUG_PCI=y
|
||||||
|
CONFIG_THERM_PM72=y
|
||||||
|
CONFIG_IBMVETH=m
|
||||||
|
CONFIG_SCSI_IBMVSCSI=m
|
||||||
|
# CONFIG_HOTPLUG_PCI_CPCI is not set
|
||||||
|
CONFIG_HOTPLUG_PCI_SHPC=m
|
||||||
|
CONFIG_HOTPLUG_PCI_RPA=m
|
||||||
|
CONFIG_HOTPLUG_PCI_RPA_DLPAR=y
|
||||||
|
CONFIG_ADB_PMU_LED=y
|
||||||
|
CONFIG_ADB_PMU_LED_IDE=y
|
||||||
|
CONFIG_PMAC_SMU=y
|
||||||
|
CONFIG_CPU_FREQ_PMAC64=y
|
||||||
|
CONFIG_SCSI_IPR=m
|
||||||
|
CONFIG_SCSI_IPR_TRACE=y
|
||||||
|
CONFIG_SCSI_IPR_DUMP=y
|
||||||
|
CONFIG_SPIDER_NET=m
|
||||||
|
CONFIG_HVC_RTAS=y
|
||||||
|
CONFIG_HVC_ISERIES=y
|
||||||
|
CONFIG_CBE_RAS=y
|
||||||
|
|
||||||
|
# iSeries device drivers
|
||||||
|
#
|
||||||
|
CONFIG_ISERIES_VETH=m
|
||||||
|
CONFIG_VIODASD=m
|
||||||
|
CONFIG_VIOCD=m
|
||||||
|
CONFIG_VIOTAPE=m
|
||||||
|
|
||||||
|
CONFIG_PASEMI_MAC=m
|
||||||
|
CONFIG_SERIAL_OF_PLATFORM=m
|
||||||
|
|
||||||
|
CONFIG_PPC_PASEMI_IOMMU=y
|
||||||
|
CONFIG_SERIAL_TXX9=y
|
||||||
|
CONFIG_SERIAL_TXX9_NR_UARTS=6
|
||||||
|
CONFIG_SERIAL_TXX9_CONSOLE=y
|
||||||
|
|
||||||
|
CONFIG_HVC_BEAT=y
|
||||||
|
|
||||||
|
CONFIG_FB_PS3=y
|
||||||
|
CONFIG_FB_PS3_DEFAULT_SIZE_M=18
|
||||||
|
|
||||||
|
CONFIG_PPC_PMI=m
|
||||||
|
CONFIG_PS3_SYS_MANAGER=y
|
||||||
|
# CONFIG_BLK_DEV_CELLEB is not set
|
||||||
|
|
||||||
|
CONFIG_PATA_SCC=m
|
||||||
|
|
||||||
|
CONFIG_APM_EMULATION=m
|
||||||
|
|
||||||
|
CONFIG_PPC64=y
|
||||||
|
CONFIG_VIRT_CPU_ACCOUNTING=y
|
||||||
|
CONFIG_NR_CPUS=128
|
||||||
|
# CONFIG_FB_PLATINUM is not set
|
||||||
|
# CONFIG_FB_VALKYRIE is not set
|
||||||
|
# CONFIG_FB_CT65550 is not set
|
||||||
|
# CONFIG_FB_VGA16 is not set
|
||||||
|
# CONFIG_FB_ATY128 is not set
|
||||||
|
# CONFIG_FB_ATY is not set
|
||||||
|
|
||||||
|
# CONFIG_POWER4_ONLY is not set
|
||||||
|
|
||||||
|
CONFIG_RTAS_PROC=y
|
||||||
|
CONFIG_IOMMU_VMERGE=y
|
||||||
|
CONFIG_NUMA=y
|
||||||
|
# CONFIG_PPC_64K_PAGES is not set
|
||||||
|
CONFIG_SCHED_SMT=y
|
||||||
|
|
||||||
|
# CONFIG_MV643XX_ETH is not set
|
||||||
|
CONFIG_IRQSTACKS=y
|
||||||
|
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||||
|
# CONFIG_INPUT_PCSPKR is not set
|
||||||
|
|
||||||
|
CONFIG_EHEA=m
|
||||||
|
CONFIG_INFINIBAND_EHCA=m
|
||||||
|
|
||||||
|
CONFIG_HCALL_STATS=y
|
||||||
|
|
||||||
|
CONFIG_XMON_DISASSEMBLY=y
|
||||||
|
|
||||||
|
CONFIG_SCSI_IBMVSCSIS=m
|
||||||
|
|
||||||
|
CONFIG_SECCOMP=y
|
||||||
|
|
||||||
|
CONFIG_TUNE_CELL=y
|
||||||
|
CONFIG_NO_HZ=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
|
# CONFIG_BLK_DEV_PLATFORM is not set
|
||||||
|
CONFIG_IBM_NEW_EMAC=m
|
||||||
|
CONFIG_IBM_NEW_EMAC_RXB=128
|
||||||
|
CONFIG_IBM_NEW_EMAC_TXB=64
|
||||||
|
CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32
|
||||||
|
CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256
|
||||||
|
CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0
|
||||||
|
# CONFIG_IBM_NEW_EMAC_DEBUG is not set
|
||||||
|
|
||||||
|
# CONFIG_VIRQ_DEBUG is not set
|
||||||
|
CONFIG_ELECTRA_CF=m
|
||||||
|
|
||||||
|
CONFIG_MTD_NAND_PASEMI=m
|
||||||
|
CONFIG_EDAC_CELL=m
|
||||||
|
CONFIG_EDAC_CPC925=m
|
||||||
|
CONFIG_FRAME_WARN=2048
|
||||||
|
|
||||||
|
CONFIG_PHYP_DUMP=y
|
||||||
|
CONFIG_FORCE_MAX_ZONEORDER=13
|
||||||
|
CONFIG_VIRTUALIZATION=y
|
||||||
|
|
||||||
|
CONFIG_VSX=y
|
||||||
|
|
||||||
|
CONFIG_SCSI_IBMVFC=m
|
||||||
|
# CONFIG_SCSI_IBMVFC_TRACE is not set
|
||||||
|
CONFIG_IBM_BSR=m
|
||||||
|
|
||||||
|
CONFIG_SERIO_XILINX_XPS_PS2=m
|
||||||
|
|
||||||
|
CONFIG_PPC_IBM_CELL_RESETBUTTON=y
|
||||||
|
CONFIG_PPC_IBM_CELL_POWERBUTTON=m
|
||||||
|
CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m
|
||||||
|
|
||||||
|
CONFIG_RTC_DRV_PS3=y
|
||||||
|
|
||||||
|
CONFIG_CRASH_DUMP=y
|
||||||
|
CONFIG_RELOCATABLE=y
|
||||||
|
|
||||||
|
CONFIG_RCU_FANOUT=64
|
||||||
|
|
||||||
|
CONFIG_PERF_COUNTERS=y
|
||||||
|
CONFIG_PERF_EVENTS=y
|
||||||
|
CONFIG_EVENT_PROFILE=y
|
||||||
|
|
||||||
|
CONFIG_KVM_BOOK3S_64=m
|
||||||
|
# CONFIG_KVM_EXIT_TIMING is not set
|
||||||
|
|
||||||
|
#-- bz#607175
|
||||||
|
#-- active memory sharing
|
||||||
|
CONFIG_PPC_SMLPAR=y
|
||||||
|
CONFIG_CMM=y
|
||||||
|
#-- DLPAR memory remove
|
||||||
|
# CONFIG_SPARSEMEM_VMEMMAP is not set
|
||||||
205
config-rhel-generic
Normal file
205
config-rhel-generic
Normal file
|
|
@ -0,0 +1,205 @@
|
||||||
|
# CONFIG_ISA is not set
|
||||||
|
# CONFIG_ISAPNP is not set
|
||||||
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
|
||||||
|
# CONFIG_SCSI_BUSLOGIC is not set
|
||||||
|
# CONFIG_SCSI_INIA100 is not set
|
||||||
|
# CONFIG_SCSI_ADVANSYS is not set
|
||||||
|
# CONFIG_SCSI_AHA1542 is not set
|
||||||
|
# CONFIG_SCSI_FUTURE_DOMAIN is not set
|
||||||
|
# CONFIG_SCSI_IN2000 is not set
|
||||||
|
# CONFIG_SCSI_QLOGIC_FAS is not set
|
||||||
|
# CONFIG_SCSI_DC390T is not set
|
||||||
|
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_DEV_APPLETALK is not set
|
||||||
|
# CONFIG_LTPC is not set
|
||||||
|
# CONFIG_COPS is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_IPDDP is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_PLIP is not set
|
||||||
|
|
||||||
|
# CONFIG_PCMCIA_AHA152X is not set
|
||||||
|
# CONFIG_PCMCIA_NINJA_SCSI is not set
|
||||||
|
# CONFIG_PCMCIA_QLOGIC is not set
|
||||||
|
# CONFIG_PCMCIA_SYM53C500 is not set
|
||||||
|
|
||||||
|
# CONFIG_EL2 is not set
|
||||||
|
# CONFIG_ELPLUS is not set
|
||||||
|
# CONFIG_WD80x3 is not set
|
||||||
|
# CONFIG_I82092 is not set
|
||||||
|
# CONFIG_YELLOWFIN is not set
|
||||||
|
# CONFIG_SUNDANCE is not set
|
||||||
|
# CONFIG_ULTRA is not set
|
||||||
|
# CONFIG_SKFP is not set
|
||||||
|
# CONFIG_DE600 is not set
|
||||||
|
# CONFIG_DE620 is not set
|
||||||
|
# CONFIG_CS89x0 is not set
|
||||||
|
# CONFIG_AC3200 is not set
|
||||||
|
# CONFIG_NI52 is not set
|
||||||
|
# CONFIG_NI65 is not set
|
||||||
|
# CONFIG_LANCE is not set
|
||||||
|
# CONFIG_EL16 is not set
|
||||||
|
# CONFIG_EL3 is not set
|
||||||
|
# CONFIG_3C515 is not set
|
||||||
|
# CONFIG_HAMACHI is not set
|
||||||
|
# CONFIG_HP100 is not set
|
||||||
|
# CONFIG_EQUALIZER is not set
|
||||||
|
# CONFIG_NET_SB1000 is not set
|
||||||
|
# CONFIG_DEPCA is not set
|
||||||
|
# CONFIG_ATP is not set
|
||||||
|
|
||||||
|
# CONFIG_TR is not set
|
||||||
|
|
||||||
|
# CONFIG_GAMEPORT is not set
|
||||||
|
|
||||||
|
# CONFIG_SND_AD1816A is not set
|
||||||
|
# CONFIG_SND_AD1848 is not set
|
||||||
|
# CONFIG_SND_CS4231 is not set
|
||||||
|
# CONFIG_SND_CS4236 is not set
|
||||||
|
# CONFIG_SND_ES968 is not set
|
||||||
|
# CONFIG_SND_ES1688 is not set
|
||||||
|
# CONFIG_SND_ES18XX is not set
|
||||||
|
# CONFIG_SND_GUSCLASSIC is not set
|
||||||
|
# CONFIG_SND_GUSEXTREME is not set
|
||||||
|
# CONFIG_SND_GUSMAX is not set
|
||||||
|
# CONFIG_SND_INTERWAVE is not set
|
||||||
|
# CONFIG_SND_INTERWAVE_STB is not set
|
||||||
|
# CONFIG_SND_OPTI92X_AD1848 is not set
|
||||||
|
# CONFIG_SND_OPTI92X_CS4231 is not set
|
||||||
|
# CONFIG_SND_OPTI93X is not set
|
||||||
|
# CONFIG_SND_MIRO is not set
|
||||||
|
# CONFIG_SND_SB8 is not set
|
||||||
|
# CONFIG_SND_SB16 is not set
|
||||||
|
# CONFIG_SND_SBAWE is not set
|
||||||
|
# CONFIG_SND_SB16_CSP is not set
|
||||||
|
# CONFIG_SND_WAVEFRONT is not set
|
||||||
|
# CONFIG_SND_ALS100 is not set
|
||||||
|
# CONFIG_SND_AZT2320 is not set
|
||||||
|
# CONFIG_SND_CMI8330 is not set
|
||||||
|
# CONFIG_SND_DT019X is not set
|
||||||
|
# CONFIG_SND_OPL3SA2 is not set
|
||||||
|
# CONFIG_SND_SGALAXY is not set
|
||||||
|
# CONFIG_SND_SSCAPE is not set
|
||||||
|
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
|
||||||
|
# CONFIG_BINFMT_AOUT is not set
|
||||||
|
|
||||||
|
# CONFIG_DRM_TDFX is not set
|
||||||
|
# CONFIG_DRM_SIS is not set
|
||||||
|
|
||||||
|
# CONFIG_BLK_DEV_UMEM is not set
|
||||||
|
# CONFIG_BLK_DEV_NBD is not set
|
||||||
|
# CONFIG_BLK_DEV_DAC960 is not set
|
||||||
|
|
||||||
|
# CONFIG_PARIDE is not set
|
||||||
|
|
||||||
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
|
# CONFIG_MWAVE is not set
|
||||||
|
|
||||||
|
# CONFIG_ROCKETPORT is not set
|
||||||
|
# CONFIG_R3964 is not set
|
||||||
|
|
||||||
|
# CONFIG_JOYSTICK_ANALOG is not set
|
||||||
|
# CONFIG_JOYSTICK_A3D is not set
|
||||||
|
# CONFIG_JOYSTICK_ADI is not set
|
||||||
|
# CONFIG_JOYSTICK_COBRA is not set
|
||||||
|
# CONFIG_JOYSTICK_GF2K is not set
|
||||||
|
# CONFIG_JOYSTICK_GRIP is not set
|
||||||
|
# CONFIG_JOYSTICK_GRIP_MP is not set
|
||||||
|
# CONFIG_JOYSTICK_GUILLEMOT is not set
|
||||||
|
# CONFIG_JOYSTICK_INTERACT is not set
|
||||||
|
# CONFIG_JOYSTICK_SIDEWINDER is not set
|
||||||
|
# CONFIG_JOYSTICK_TMDC is not set
|
||||||
|
# CONFIG_JOYSTICK_IFORCE is not set
|
||||||
|
# CONFIG_JOYSTICK_WARRIOR is not set
|
||||||
|
# CONFIG_JOYSTICK_MAGELLAN is not set
|
||||||
|
# CONFIG_JOYSTICK_SPACEORB is not set
|
||||||
|
# CONFIG_JOYSTICK_SPACEBALL is not set
|
||||||
|
# CONFIG_JOYSTICK_STINGER is not set
|
||||||
|
# CONFIG_JOYSTICK_DB9 is not set
|
||||||
|
# CONFIG_JOYSTICK_GAMECON is not set
|
||||||
|
# CONFIG_JOYSTICK_TURBOGRAFX is not set
|
||||||
|
|
||||||
|
# CONFIG_RADIO_CADET is not set
|
||||||
|
# CONFIG_RADIO_RTRACK is not set
|
||||||
|
# CONFIG_RADIO_RTRACK2 is not set
|
||||||
|
# CONFIG_RADIO_AZTECH is not set
|
||||||
|
# CONFIG_RADIO_GEMTEK is not set
|
||||||
|
# CONFIG_RADIO_GEMTEK_PCI is not set
|
||||||
|
# CONFIG_RADIO_MAXIRADIO is not set
|
||||||
|
# CONFIG_RADIO_MAESTRO is not set
|
||||||
|
# CONFIG_RADIO_MIROPCM20 is not set
|
||||||
|
# CONFIG_RADIO_SF16FMI is not set
|
||||||
|
# CONFIG_RADIO_SF16FMR2 is not set
|
||||||
|
# CONFIG_RADIO_TERRATEC is not set
|
||||||
|
# CONFIG_RADIO_TRUST is not set
|
||||||
|
# CONFIG_RADIO_TYPHOON is not set
|
||||||
|
# CONFIG_RADIO_ZOLTRIX is not set
|
||||||
|
|
||||||
|
|
||||||
|
# CONFIG_VIDEO_PMS is not set
|
||||||
|
# CONFIG_VIDEO_BWQCAM is not set
|
||||||
|
# CONFIG_VIDEO_CQCAM is not set
|
||||||
|
# CONFIG_VIDEO_W9966 is not set
|
||||||
|
# CONFIG_VIDEO_CPIA is not set
|
||||||
|
# CONFIG_VIDEO_CPIA_PP is not set
|
||||||
|
# CONFIG_VIDEO_CPIA_USB is not set
|
||||||
|
# CONFIG_VIDEO_SAA5249 is not set
|
||||||
|
# CONFIG_VIDEO_STRADIS is not set
|
||||||
|
# CONFIG_VIDEO_ZORAN is not set
|
||||||
|
# CONFIG_VIDEO_ZORAN_BUZ is not set
|
||||||
|
# CONFIG_VIDEO_ZORAN_DC10 is not set
|
||||||
|
# CONFIG_VIDEO_ZORAN_DC30 is not set
|
||||||
|
# CONFIG_VIDEO_ZORAN_LML33 is not set
|
||||||
|
# CONFIG_VIDEO_ZORAN_LML33R10 is not set
|
||||||
|
# CONFIG_VIDEO_MEYE is not set
|
||||||
|
# CONFIG_VIDEO_SAA7134 is not set
|
||||||
|
# CONFIG_VIDEO_MXB is not set
|
||||||
|
# CONFIG_VIDEO_HEXIUM_ORION is not set
|
||||||
|
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
|
||||||
|
# CONFIG_VIDEO_CX88 is not set
|
||||||
|
# CONFIG_VIDEO_SAA5246A is not set
|
||||||
|
|
||||||
|
# CONFIG_INFTL is not set
|
||||||
|
# CONFIG_MTD_DOC2000 is not set
|
||||||
|
# CONFIG_MTD_DOC2001PLUS is not set
|
||||||
|
# CONFIG_MTD_PMC551 is not set
|
||||||
|
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||||
|
# CONFIG_MTD_PCI is not set
|
||||||
|
|
||||||
|
# CONFIG_FB_MATROX is not set
|
||||||
|
# CONFIG_FB_3DFX is not set
|
||||||
|
# CONFIG_FB_HGA is not set
|
||||||
|
# CONFIG_FB_ATY is not set
|
||||||
|
# CONFIG_FB_TRIDENT is not set
|
||||||
|
# CONFIG_FB_VOODOO1 is not set
|
||||||
|
# CONFIG_FB_ATY128 is not set
|
||||||
|
# CONFIG_FB_RADEON is not set
|
||||||
|
# CONFIG_FB_NEOMAGIC is not set
|
||||||
|
# CONFIG_FB_ASILIANT is not set
|
||||||
|
# CONFIG_FB_HGA_ACCEL is not set
|
||||||
|
# CONFIG_FB_3DFX_ACCEL is not set
|
||||||
|
|
||||||
|
# CONFIG_JFS_FS is not set
|
||||||
|
# CONFIG_NCP_FS is not set
|
||||||
|
# CONFIG_CODA_FS is not set
|
||||||
|
# CONFIG_REISERFS_FS is not set
|
||||||
|
# CONFIG_XFS_FS is not set
|
||||||
|
# CONFIG_AFFS_FS is not set
|
||||||
|
# CONFIG_BEFS_FS is not set
|
||||||
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_BFS_FS is not set
|
||||||
|
# CONFIG_QNX4FS_FS is not set
|
||||||
|
# CONFIG_SYSV_FS is not set
|
||||||
|
# CONFIG_UFS_FS is not set
|
||||||
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
# CONFIG_MINIX_FS is not set
|
||||||
|
# CONFIG_9P_FS is not set
|
||||||
|
# CONFIG_OCFS2_FS is not set
|
||||||
|
# CONFIG_HFS_FS is not set
|
||||||
|
# CONFIG_HFSPLUS_FS is not set
|
||||||
|
|
||||||
227
config-s390x
Normal file
227
config-s390x
Normal file
|
|
@ -0,0 +1,227 @@
|
||||||
|
CONFIG_64BIT=y
|
||||||
|
# CONFIG_MARCH_G5 is not set
|
||||||
|
# CONFIG_MARCH_Z900 is not set
|
||||||
|
CONFIG_MARCH_Z9_109=y
|
||||||
|
# CONFIG_MARCH_Z990 is not set
|
||||||
|
|
||||||
|
CONFIG_NR_CPUS=64
|
||||||
|
CONFIG_COMPAT=y
|
||||||
|
|
||||||
|
# See bug 496596
|
||||||
|
CONFIG_HZ_100=y
|
||||||
|
# See bug 496605
|
||||||
|
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||||
|
|
||||||
|
CONFIG_MMU=y
|
||||||
|
|
||||||
|
CONFIG_LOG_BUF_SHIFT=16
|
||||||
|
CONFIG_NO_IDLE_HZ=y
|
||||||
|
|
||||||
|
CONFIG_SMP=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# I/O subsystem configuration
|
||||||
|
#
|
||||||
|
CONFIG_QDIO=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# Misc
|
||||||
|
#
|
||||||
|
CONFIG_IPL=y
|
||||||
|
# CONFIG_IPL_TAPE is not set
|
||||||
|
CONFIG_IPL_VM=y
|
||||||
|
# CONFIG_PROCESS_DEBUG is not set
|
||||||
|
CONFIG_PFAULT=y
|
||||||
|
CONFIG_SHARED_KERNEL=y
|
||||||
|
CONFIG_CMM=m
|
||||||
|
CONFIG_CMM_PROC=y
|
||||||
|
# CONFIG_NETIUCV is not set
|
||||||
|
CONFIG_SMSGIUCV=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCSI low-level drivers
|
||||||
|
#
|
||||||
|
CONFIG_ZFCP=m
|
||||||
|
CONFIG_ZFCPDUMP=y
|
||||||
|
CONFIG_CCW=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# S/390 block device drivers
|
||||||
|
#
|
||||||
|
CONFIG_DCSSBLK=m
|
||||||
|
CONFIG_BLK_DEV_XPRAM=m
|
||||||
|
CONFIG_DASD=m
|
||||||
|
CONFIG_DASD_PROFILE=y
|
||||||
|
CONFIG_DASD_ECKD=m
|
||||||
|
CONFIG_DASD_FBA=m
|
||||||
|
CONFIG_DASD_DIAG=m
|
||||||
|
CONFIG_DASD_EER=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# S/390 character device drivers
|
||||||
|
#
|
||||||
|
CONFIG_TN3270=y
|
||||||
|
CONFIG_TN3270_CONSOLE=y
|
||||||
|
CONFIG_TN3215=y
|
||||||
|
CONFIG_TN3215_CONSOLE=y
|
||||||
|
CONFIG_CCW_CONSOLE=y
|
||||||
|
CONFIG_SCLP_TTY=y
|
||||||
|
CONFIG_SCLP_CONSOLE=y
|
||||||
|
CONFIG_SCLP_VT220_TTY=y
|
||||||
|
CONFIG_SCLP_VT220_CONSOLE=y
|
||||||
|
CONFIG_SCLP_CPI=m
|
||||||
|
CONFIG_SCLP_ASYNC=m
|
||||||
|
CONFIG_S390_TAPE=m
|
||||||
|
CONFIG_S390_TAPE_3590=m
|
||||||
|
|
||||||
|
CONFIG_APPLDATA_BASE=y
|
||||||
|
CONFIG_APPLDATA_MEM=m
|
||||||
|
CONFIG_APPLDATA_OS=m
|
||||||
|
CONFIG_APPLDATA_NET_SUM=m
|
||||||
|
CONFIG_TN3270_TTY=y
|
||||||
|
CONFIG_TN3270_FS=m
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# S/390 tape interface support
|
||||||
|
#
|
||||||
|
CONFIG_S390_TAPE_BLOCK=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# S/390 tape hardware support
|
||||||
|
#
|
||||||
|
CONFIG_S390_TAPE_34XX=m
|
||||||
|
|
||||||
|
# CONFIG_PPP is not set
|
||||||
|
# CONFIG_SLIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Token Ring devices
|
||||||
|
#
|
||||||
|
CONFIG_TR=y
|
||||||
|
CONFIG_NETCONSOLE=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# Wan interfaces
|
||||||
|
#
|
||||||
|
# CONFIG_WAN is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# S/390 network device drivers
|
||||||
|
#
|
||||||
|
CONFIG_LCS=m
|
||||||
|
CONFIG_CTC=m
|
||||||
|
CONFIG_IUCV=m
|
||||||
|
CONFIG_QETH=m
|
||||||
|
CONFIG_QETH_IPV6=y
|
||||||
|
CONFIG_CCWGROUP=m
|
||||||
|
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
# CONFIG_WIRELESS_EXT is not set
|
||||||
|
# CONFIG_MAC80211 is not set
|
||||||
|
# CONFIG_B44 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Partition Types
|
||||||
|
#
|
||||||
|
CONFIG_PARTITION_ADVANCED=y
|
||||||
|
# CONFIG_OSF_PARTITION is not set
|
||||||
|
CONFIG_IBM_PARTITION=y
|
||||||
|
# CONFIG_MAC_PARTITION is not set
|
||||||
|
CONFIG_MSDOS_PARTITION=y
|
||||||
|
# CONFIG_SGI_PARTITION is not set
|
||||||
|
# CONFIG_SUN_PARTITION is not set
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# S390 crypto hw
|
||||||
|
#
|
||||||
|
CONFIG_CRYPTO_SHA1_S390=m
|
||||||
|
CONFIG_CRYPTO_SHA256_S390=m
|
||||||
|
CONFIG_CRYPTO_DES_S390=m
|
||||||
|
CONFIG_CRYPTO_AES_S390=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# Kernel hacking
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# S390 specific stack options; needs gcc 3.5 so off for now
|
||||||
|
#
|
||||||
|
CONFIG_PACK_STACK=y
|
||||||
|
CONFIG_CHECK_STACK=y
|
||||||
|
# CONFIG_WARN_STACK is not set
|
||||||
|
# CONFIG_SMALL_STACK is not set
|
||||||
|
|
||||||
|
CONFIG_ZVM_WATCHDOG=m
|
||||||
|
CONFIG_VMLOGRDR=m
|
||||||
|
CONFIG_MONREADER=m
|
||||||
|
|
||||||
|
CONFIG_VIRT_CPU_ACCOUNTING=y
|
||||||
|
|
||||||
|
# CONFIG_CLAW is not set
|
||||||
|
|
||||||
|
CONFIG_VMCP=m
|
||||||
|
|
||||||
|
# CONFIG_ATMEL is not set
|
||||||
|
|
||||||
|
# CONFIG_CDROM_PKTCDVD is not set
|
||||||
|
# CONFIG_ATA_OVER_ETH is not set
|
||||||
|
# CONFIG_MII is not set
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_STACK_GUARD=256
|
||||||
|
CONFIG_CMM_IUCV=y
|
||||||
|
|
||||||
|
# CONFIG_DETECT_SOFTLOCKUP is not set
|
||||||
|
|
||||||
|
CONFIG_S390_HYPFS_FS=y
|
||||||
|
|
||||||
|
CONFIG_MONWRITER=m
|
||||||
|
CONFIG_ZCRYPT=m
|
||||||
|
CONFIG_ZCRYPT_MONOLITHIC=y
|
||||||
|
|
||||||
|
CONFIG_S390_EXEC_PROTECT=y
|
||||||
|
CONFIG_AFIUCV=m
|
||||||
|
CONFIG_S390_PRNG=m
|
||||||
|
|
||||||
|
CONFIG_S390_VMUR=m
|
||||||
|
|
||||||
|
# CONFIG_THERMAL is not set
|
||||||
|
|
||||||
|
CONFIG_NO_HZ=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
|
CONFIG_CTCM=m
|
||||||
|
CONFIG_QETH_L2=m
|
||||||
|
CONFIG_QETH_L3=m
|
||||||
|
CONFIG_CRYPTO_SHA512_S390=m
|
||||||
|
CONFIG_VIRTUALIZATION=y
|
||||||
|
CONFIG_KVM=m
|
||||||
|
CONFIG_S390_GUEST=y
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_MEMORY_HOTPLUG=y
|
||||||
|
CONFIG_MEMORY_HOTREMOVE=y
|
||||||
|
CONFIG_CHSC_SCH=m
|
||||||
|
|
||||||
|
# drivers/isdn/hardware/mISDN/hfcmulti.c:5255:2: error: #error "not running on big endian machines now"
|
||||||
|
# CONFIG_MISDN_HFCMULTI is not set
|
||||||
|
|
||||||
|
CONFIG_HVC_IUCV=y
|
||||||
|
|
||||||
|
CONFIG_RCU_FANOUT=64
|
||||||
|
|
||||||
|
CONFIG_SECCOMP=y
|
||||||
|
|
||||||
|
CONFIG_PM=y
|
||||||
|
CONFIG_HIBERNATION=y
|
||||||
|
CONFIG_PM_STD_PARTITION="/dev/jokes"
|
||||||
|
|
||||||
|
CONFIG_PERF_COUNTERS=y
|
||||||
|
CONFIG_PERF_EVENTS=y
|
||||||
|
CONFIG_EVENT_PROFILE=y
|
||||||
|
|
||||||
|
CONFIG_SMSGIUCV_EVENT=m
|
||||||
|
|
||||||
|
# CONFIG_PREEMPT_TRACER is not set
|
||||||
201
config-sparc64-generic
Normal file
201
config-sparc64-generic
Normal file
|
|
@ -0,0 +1,201 @@
|
||||||
|
CONFIG_SMP=y
|
||||||
|
CONFIG_SPARC=y
|
||||||
|
CONFIG_SPARC64=y
|
||||||
|
CONFIG_SECCOMP=y
|
||||||
|
CONFIG_HZ_100=y
|
||||||
|
# CONFIG_HZ_1000 is not set
|
||||||
|
CONFIG_HZ=100
|
||||||
|
|
||||||
|
CONFIG_NO_HZ=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
|
CONFIG_CPU_FREQ=y
|
||||||
|
CONFIG_CPU_FREQ_TABLE=m
|
||||||
|
CONFIG_CPU_FREQ_DEBUG=y
|
||||||
|
# CONFIG_CPU_FREQ_STAT is not set
|
||||||
|
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
|
||||||
|
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||||
|
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
|
||||||
|
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_USERSPACE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
|
||||||
|
CONFIG_US3_FREQ=m
|
||||||
|
CONFIG_US2E_FREQ=m
|
||||||
|
|
||||||
|
CONFIG_SUN_LDOMS=y
|
||||||
|
CONFIG_SCHED_SMT=y
|
||||||
|
CONFIG_SCHED_MC=y
|
||||||
|
CONFIG_64BIT=y
|
||||||
|
# CONFIG_BBC_I2C is not set
|
||||||
|
CONFIG_HUGETLB_PAGE_SIZE_4MB=y
|
||||||
|
# CONFIG_HUGETLB_PAGE_SIZE_512K is not set
|
||||||
|
# CONFIG_HUGETLB_PAGE_SIZE_64K is not set
|
||||||
|
CONFIG_NR_CPUS=256
|
||||||
|
CONFIG_US3_FREQ=m
|
||||||
|
CONFIG_US2E_FREQ=m
|
||||||
|
CONFIG_SUN_OPENPROMFS=m
|
||||||
|
CONFIG_COMPAT=y
|
||||||
|
CONFIG_UID16=y
|
||||||
|
CONFIG_BINFMT_ELF32=y
|
||||||
|
CONFIG_ENVCTRL=m
|
||||||
|
CONFIG_DISPLAY7SEG=m
|
||||||
|
CONFIG_WATCHDOG_CP1XXX=m
|
||||||
|
CONFIG_WATCHDOG_RIO=m
|
||||||
|
# CONFIG_CMDLINE_BOOL is not set
|
||||||
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
|
# CONFIG_PARPORT is not set
|
||||||
|
# CONFIG_BLK_DEV_FD is not set
|
||||||
|
# CONFIG_LIRC_PARALLEL is not set
|
||||||
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
|
# CONFIG_I2C_SIMTEC is not set
|
||||||
|
CONFIG_I2C_ALI1535=m
|
||||||
|
# CONFIG_VGASTATE is not set
|
||||||
|
# CONFIG_FB_DDC is not set
|
||||||
|
# CONFIG_FB_BW2 is not set
|
||||||
|
CONFIG_FB_CG3=y
|
||||||
|
CONFIG_FB_CG6=y
|
||||||
|
# CONFIG_FB_RIVA is not set
|
||||||
|
# CONFIG_FB_MATROX is not set
|
||||||
|
# CONFIG_FB_RADEON is not set
|
||||||
|
CONFIG_FB_ATY=y
|
||||||
|
# CONFIG_FB_S3 is not set
|
||||||
|
# CONFIG_FB_SAVAGE is not set
|
||||||
|
# CONFIG_FB_SIS is not set
|
||||||
|
# CONFIG_FB_NEOMAGIC is not set
|
||||||
|
# CONFIG_FB_3DFX is not set
|
||||||
|
# CONFIG_FB_VOODOO1 is not set
|
||||||
|
# CONFIG_FB_TRIDENT is not set
|
||||||
|
CONFIG_FB_SBUS=y
|
||||||
|
CONFIG_FB_FFB=y
|
||||||
|
# CONFIG_FB_TCX is not set
|
||||||
|
# CONFIG_FB_CG14 is not set
|
||||||
|
CONFIG_FB_PM2=y
|
||||||
|
CONFIG_FB_P9100=y
|
||||||
|
# CONFIG_FB_LEO is not set
|
||||||
|
CONFIG_FB_XVR500=y
|
||||||
|
CONFIG_FB_XVR2500=y
|
||||||
|
# CONFIG_VGASTATE is not set
|
||||||
|
# CONFIG_FB_DDC is not set
|
||||||
|
# CONFIG_FB_CIRRUS is not set
|
||||||
|
# CONFIG_FB_ATY128 is not set
|
||||||
|
# CONFIG_FB_KYRO is not set
|
||||||
|
# CONFIG_AGP is not set
|
||||||
|
# CONFIG_DRM_NOUVEAU is not set
|
||||||
|
# CONFIG_MDA_CONSOLE is not set
|
||||||
|
CONFIG_FONTS=y
|
||||||
|
# CONFIG_FONT_8x8 is not set
|
||||||
|
# CONFIG_FONT_8x16 is not set
|
||||||
|
# CONFIG_FONT_7x14 is not set
|
||||||
|
# CONFIG_FONT_10x18 is not set
|
||||||
|
# CONFIG_FONT_6x11 is not set
|
||||||
|
# CONFIG_FONT_SUN12x22 is not set
|
||||||
|
# CONFIG_FONT_PEARL_8x8 is not set
|
||||||
|
# CONFIG_FONT_ACORN_8x8 is not set
|
||||||
|
CONFIG_FONT_SUN8x16=y
|
||||||
|
CONFIG_FONT_SUN12x22=y
|
||||||
|
# CONFIG_LOGO_LINUX_CLUT224 is not set
|
||||||
|
# CONFIG_SERIAL_8250 is not set
|
||||||
|
CONFIG_SERIAL_SUNZILOG=y
|
||||||
|
CONFIG_SERIAL_SUNZILOG_CONSOLE=y
|
||||||
|
CONFIG_SERIAL_SUNSU=y
|
||||||
|
CONFIG_SERIAL_SUNSU_CONSOLE=y
|
||||||
|
CONFIG_SERIAL_SUNSAB=y
|
||||||
|
CONFIG_SERIAL_SUNSAB_CONSOLE=y
|
||||||
|
CONFIG_SERIAL_SUNHV=y
|
||||||
|
CONFIG_SUN_OPENPROMIO=y
|
||||||
|
CONFIG_OBP_FLASH=m
|
||||||
|
# CONFIG_SERIO_SERPORT is not set
|
||||||
|
CONFIG_BLK_DEV_FD=y
|
||||||
|
CONFIG_SUNVDC=m
|
||||||
|
CONFIG_SUNVNET=m
|
||||||
|
# CONFIG_BLK_DEV_AEC62XX is not set
|
||||||
|
# CONFIG_BLK_DEV_HPT366 is not set
|
||||||
|
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
||||||
|
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
|
||||||
|
# CONFIG_BLK_DEV_SIIMAGE is not set
|
||||||
|
# CONFIG_BLK_DEV_SLC90E66 is not set
|
||||||
|
# CONFIG_BLK_DEV_VIA82CXXX is not set
|
||||||
|
# CONFIG_SCSI_ADVANSYS is not set
|
||||||
|
# CONFIG_SCSI_BUSLOGIC is not set
|
||||||
|
# CONFIG_SCSI_EATA is not set
|
||||||
|
# CONFIG_SCSI_GDTH is not set
|
||||||
|
# CONFIG_SCSI_AIC7XXX is not set
|
||||||
|
# CONFIG_SCSI_AIC79XX is not set
|
||||||
|
# CONFIG_SCSI_FUTURE_DOMAIN is not set
|
||||||
|
CONFIG_SCSI_QLOGICPTI=m
|
||||||
|
CONFIG_SCSI_SUNESP=m
|
||||||
|
CONFIG_SUNLANCE=m
|
||||||
|
CONFIG_SUNBMAC=m
|
||||||
|
CONFIG_SUNQE=m
|
||||||
|
# CONFIG_DM9102 is not set
|
||||||
|
# CONFIG_HAMACHI is not set
|
||||||
|
# CONFIG_R8169 is not set
|
||||||
|
CONFIG_ATM_FORE200E_USE_TASKLET=y
|
||||||
|
CONFIG_ATM_FORE200E_DEBUG=0
|
||||||
|
CONFIG_ATM_FORE200E_TX_RETRY=16
|
||||||
|
# CONFIG_DRM_TDFX is not set
|
||||||
|
CONFIG_KEYBOARD_ATKBD=y
|
||||||
|
CONFIG_KEYBOARD_SUNKBD=y
|
||||||
|
# CONFIG_INPUT_PCSPKR is not set
|
||||||
|
CONFIG_INPUT_SPARCSPKR=m
|
||||||
|
# CONFIG_SOUND_PRIME is not set
|
||||||
|
# CONFIG_SND_SUN_AMD7930 is not set
|
||||||
|
CONFIG_SND_SUN_CS4231=m
|
||||||
|
# CONFIG_SND_SUN_DBRI is not set
|
||||||
|
CONFIG_PARPORT_SUNBPP=m
|
||||||
|
CONFIG_LOGO_SUN_CLUT224=y
|
||||||
|
CONFIG_MTD_SUN_UFLASH=m
|
||||||
|
CONFIG_MYRI_SBUS=m
|
||||||
|
# CONFIG_SGI_IOC4 is not set
|
||||||
|
# CONFIG_VIDEO_ZORAN is not set
|
||||||
|
# CONFIG_VIDEO_STRADIS is not set
|
||||||
|
# CONFIG_IEEE1394_SBP2 is not set
|
||||||
|
# CONFIG_USB_NET2280 is not set
|
||||||
|
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||||
|
# CONFIG_DEBUG_DCFLUSH is not set
|
||||||
|
# CONFIG_DEBUG_BOOTMEM is not set
|
||||||
|
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||||
|
# CONFIG_PROVE_LOCKING is not set
|
||||||
|
# CONFIG_LOCK_STAT is not set
|
||||||
|
# CONFIG_LOCKDEP is not set
|
||||||
|
# CONFIG_STACK_DEBUG is not set
|
||||||
|
|
||||||
|
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||||
|
|
||||||
|
# CONFIG_THERMAL is not set
|
||||||
|
|
||||||
|
CONFIG_FRAME_WARN=2048
|
||||||
|
|
||||||
|
CONFIG_NUMA=y
|
||||||
|
|
||||||
|
CONFIG_SND_SPARC=y
|
||||||
|
|
||||||
|
CONFIG_HW_RANDOM_N2RNG=m
|
||||||
|
|
||||||
|
# drivers/isdn/hardware/mISDN/hfcmulti.c:5255:2: error: #error "not running on big endian machines now"
|
||||||
|
# CONFIG_MISDN_HFCMULTI is not set
|
||||||
|
|
||||||
|
CONFIG_US3_MC=y
|
||||||
|
CONFIG_SENSORS_ULTRA45=m
|
||||||
|
CONFIG_LEDS_SUNFIRE=m
|
||||||
|
CONFIG_TADPOLE_TS102_UCTRL=m
|
||||||
|
|
||||||
|
CONFIG_RCU_FANOUT=64
|
||||||
|
|
||||||
|
CONFIG_LIRC_ENE0100=m
|
||||||
|
# CONFIG_BATTERY_DS2782 is not set
|
||||||
|
CONFIG_USB_GSPCA_SN9C20X=m
|
||||||
|
CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
|
||||||
|
CONFIG_LSM_MMAP_MIN_ADDR=65536
|
||||||
|
|
||||||
|
CONFIG_PERF_COUNTERS=y
|
||||||
|
CONFIG_PERF_EVENTS=y
|
||||||
|
CONFIG_EVENT_PROFILE=y
|
||||||
|
|
||||||
|
CONFIG_EARLYFB=y
|
||||||
|
CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
|
||||||
|
|
||||||
|
CONFIG_GRETH=m
|
||||||
|
CONFIG_FB_XVR1000=y
|
||||||
483
config-x86-generic
Normal file
483
config-x86-generic
Normal file
|
|
@ -0,0 +1,483 @@
|
||||||
|
CONFIG_UID16=y
|
||||||
|
# CONFIG_64BIT is not set
|
||||||
|
# CONFIG_KERNEL_LZMA is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Processor type and features
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Enable summit and co via the generic arch
|
||||||
|
#
|
||||||
|
CONFIG_X86_EXTENDED_PLATFORM=y
|
||||||
|
CONFIG_X86_32_NON_STANDARD=y
|
||||||
|
|
||||||
|
# CONFIG_X86_ELAN is not set
|
||||||
|
# CONFIG_X86_NUMAQ is not set
|
||||||
|
# CONFIG_X86_SUMMIT is not set
|
||||||
|
CONFIG_X86_BIGSMP=y
|
||||||
|
# CONFIG_X86_VISWS is not set
|
||||||
|
# CONFIG_X86_RDC321X is not set
|
||||||
|
# CONFIG_X86_ES7000 is not set
|
||||||
|
# CONFIG_M386 is not set
|
||||||
|
# CONFIG_M486 is not set
|
||||||
|
# CONFIG_M586 is not set
|
||||||
|
# CONFIG_M586TSC is not set
|
||||||
|
# CONFIG_M586MMX is not set
|
||||||
|
CONFIG_M686=y
|
||||||
|
# CONFIG_MPENTIUMII is not set
|
||||||
|
# CONFIG_MPENTIUMIII is not set
|
||||||
|
# CONFIG_MPENTIUMM is not set
|
||||||
|
# CONFIG_MPENTIUM4 is not set
|
||||||
|
# CONFIG_MK6 is not set
|
||||||
|
# CONFIG_MK7 is not set
|
||||||
|
# CONFIG_MK8 is not set
|
||||||
|
# CONFIG_MCRUSOE is not set
|
||||||
|
# CONFIG_MWINCHIPC6 is not set
|
||||||
|
# CONFIG_MWINCHIP3D is not set
|
||||||
|
# CONFIG_MCYRIXIII is not set
|
||||||
|
# CONFIG_MVIAC3_2 is not set
|
||||||
|
CONFIG_SMP=y
|
||||||
|
CONFIG_NR_CPUS=32
|
||||||
|
CONFIG_X86_GENERIC=y
|
||||||
|
# CONFIG_X86_PPRO_FENCE is not set
|
||||||
|
CONFIG_HPET=y
|
||||||
|
CONFIG_HPET_TIMER=y
|
||||||
|
# CONFIG_HPET_MMAP is not set
|
||||||
|
CONFIG_X86_MCE=y
|
||||||
|
CONFIG_TOSHIBA=m
|
||||||
|
CONFIG_I8K=m
|
||||||
|
CONFIG_SONYPI=m
|
||||||
|
CONFIG_SONYPI_COMPAT=y
|
||||||
|
CONFIG_MICROCODE=m
|
||||||
|
CONFIG_X86_MSR=y
|
||||||
|
CONFIG_X86_CPUID=y
|
||||||
|
CONFIG_EDD=m
|
||||||
|
# CONFIG_EDD_OFF is not set
|
||||||
|
# CONFIG_NUMA is not set
|
||||||
|
|
||||||
|
# CONFIG_NOHIGHMEM is not set
|
||||||
|
CONFIG_HIGHMEM4G=y
|
||||||
|
# CONFIG_HIGHMEM64G is not set
|
||||||
|
CONFIG_HIGHMEM=y
|
||||||
|
CONFIG_HIGHPTE=y
|
||||||
|
|
||||||
|
# CONFIG_MATH_EMULATION is not set
|
||||||
|
CONFIG_MTRR=y
|
||||||
|
CONFIG_X86_PAT=y
|
||||||
|
CONFIG_X86_PM_TIMER=y
|
||||||
|
|
||||||
|
CONFIG_EFI=y
|
||||||
|
CONFIG_EFI_VARS=y
|
||||||
|
CONFIG_EFI_PCDP=y
|
||||||
|
CONFIG_FB_EFI=y
|
||||||
|
# CONFIG_FB_N411 is not set
|
||||||
|
|
||||||
|
CONFIG_DMAR=y
|
||||||
|
CONFIG_DMAR_BROKEN_GFX_WA=y
|
||||||
|
CONFIG_DMAR_FLOPPY_WA=y
|
||||||
|
CONFIG_DMAR_DEFAULT_ON=y
|
||||||
|
|
||||||
|
CONFIG_FB_GEODE=y
|
||||||
|
CONFIG_FB_GEODE_LX=y
|
||||||
|
CONFIG_FB_GEODE_GX=y
|
||||||
|
# CONFIG_FB_GEODE_GX1 is not set
|
||||||
|
|
||||||
|
# CONFIG_PCI_GOBIOS is not set
|
||||||
|
# CONFIG_PCI_GODIRECT is not set
|
||||||
|
# CONFIG_PCI_GOMMCONFIG is not set
|
||||||
|
CONFIG_PCI_GOANY=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# x86 specific drivers
|
||||||
|
#
|
||||||
|
CONFIG_PCMCIA_FDOMAIN=m
|
||||||
|
CONFIG_SCSI_FUTURE_DOMAIN=m
|
||||||
|
CONFIG_SCSI_ADVANSYS=m
|
||||||
|
|
||||||
|
CONFIG_CC_STACKPROTECTOR=y
|
||||||
|
|
||||||
|
CONFIG_SECCOMP=y
|
||||||
|
|
||||||
|
CONFIG_CAPI_EICON=y
|
||||||
|
|
||||||
|
# I2O enabled only for 32-bit x86, disabled for PAE kernel
|
||||||
|
CONFIG_I2O=m
|
||||||
|
CONFIG_I2O_BLOCK=m
|
||||||
|
CONFIG_I2O_SCSI=m
|
||||||
|
CONFIG_I2O_PROC=m
|
||||||
|
CONFIG_I2O_CONFIG=y
|
||||||
|
CONFIG_I2O_EXT_ADAPTEC=y
|
||||||
|
CONFIG_I2O_CONFIG_OLD_IOCTL=y
|
||||||
|
CONFIG_I2O_BUS=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# APM (Advanced Power Management) BIOS Support
|
||||||
|
#
|
||||||
|
CONFIG_APM=y
|
||||||
|
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
|
||||||
|
# CONFIG_APM_DO_ENABLE is not set
|
||||||
|
CONFIG_APM_CPU_IDLE=y
|
||||||
|
# CONFIG_APM_DISPLAY_BLANK is not set
|
||||||
|
# CONFIG_APM_ALLOW_INTS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Kernel debugging
|
||||||
|
#
|
||||||
|
CONFIG_X86_MPPARSE=y
|
||||||
|
|
||||||
|
CONFIG_ACPI=y
|
||||||
|
CONFIG_ACPI_AC=y
|
||||||
|
# CONFIG_ACPI_ASUS is not set
|
||||||
|
CONFIG_ACPI_PROCFS_POWER=y
|
||||||
|
CONFIG_ACPI_SYSFS_POWER=y
|
||||||
|
CONFIG_ACPI_BATTERY=y
|
||||||
|
CONFIG_ACPI_BLACKLIST_YEAR=1999
|
||||||
|
CONFIG_ACPI_BUTTON=y
|
||||||
|
CONFIG_ACPI_CONTAINER=m
|
||||||
|
CONFIG_ACPI_DOCK=y
|
||||||
|
CONFIG_ACPI_FAN=y
|
||||||
|
CONFIG_ACPI_NUMA=y
|
||||||
|
CONFIG_ACPI_PROCESSOR=y
|
||||||
|
CONFIG_ACPI_POWER=y
|
||||||
|
CONFIG_ACPI_PROCFS=y
|
||||||
|
CONFIG_ACPI_SBS=m
|
||||||
|
CONFIG_ACPI_SLEEP=y
|
||||||
|
CONFIG_ACPI_THERMAL=y
|
||||||
|
CONFIG_TOPSTAR_LAPTOP=m
|
||||||
|
CONFIG_ACPI_TOSHIBA=m
|
||||||
|
CONFIG_ACPI_VIDEO=m
|
||||||
|
# Disable in F9.
|
||||||
|
CONFIG_ACPI_PROC_EVENT=y
|
||||||
|
CONFIG_PNPACPI=y
|
||||||
|
CONFIG_ACPI_POWER_METER=m
|
||||||
|
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# CPUFreq processor drivers
|
||||||
|
#
|
||||||
|
CONFIG_CPU_FREQ=y
|
||||||
|
CONFIG_CPU_FREQ_DEBUG=y
|
||||||
|
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
|
||||||
|
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_USERSPACE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
|
||||||
|
CONFIG_CPU_FREQ_TABLE=y
|
||||||
|
CONFIG_CPU_FREQ_STAT=m
|
||||||
|
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||||
|
|
||||||
|
CONFIG_X86_ACPI_CPUFREQ=m
|
||||||
|
CONFIG_X86_PCC_CPUFREQ=m
|
||||||
|
# CONFIG_X86_POWERNOW_K6 is not set
|
||||||
|
CONFIG_X86_POWERNOW_K7=y
|
||||||
|
CONFIG_X86_POWERNOW_K8=m
|
||||||
|
# CONFIG_X86_GX_SUSPMOD is not set
|
||||||
|
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
|
||||||
|
CONFIG_X86_SPEEDSTEP_ICH=y
|
||||||
|
CONFIG_X86_SPEEDSTEP_SMI=y
|
||||||
|
CONFIG_X86_SPEEDSTEP_LIB=y
|
||||||
|
# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
|
||||||
|
CONFIG_X86_P4_CLOCKMOD=m
|
||||||
|
CONFIG_X86_LONGRUN=y
|
||||||
|
# CONFIG_X86_LONGHAUL is not set
|
||||||
|
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
|
||||||
|
# e_powersaver is dangerous
|
||||||
|
# CONFIG_X86_E_POWERSAVER is not set
|
||||||
|
|
||||||
|
CONFIG_X86_HT=y
|
||||||
|
CONFIG_X86_TRAMPOLINE=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# various x86 specific drivers
|
||||||
|
#
|
||||||
|
CONFIG_NVRAM=y
|
||||||
|
CONFIG_IBM_ASM=m
|
||||||
|
CONFIG_CRYPTO_AES_586=m
|
||||||
|
CONFIG_CRYPTO_TWOFISH_586=m
|
||||||
|
CONFIG_CRYPTO_DEV_PADLOCK=m
|
||||||
|
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
|
||||||
|
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
|
||||||
|
|
||||||
|
CONFIG_GENERIC_ISA_DMA=y
|
||||||
|
CONFIG_SCHED_SMT=y
|
||||||
|
CONFIG_SUSPEND=y
|
||||||
|
CONFIG_HIBERNATION=y
|
||||||
|
CONFIG_PM_STD_PARTITION=""
|
||||||
|
|
||||||
|
CONFIG_DEBUG_RODATA=y
|
||||||
|
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||||
|
# CONFIG_4KSTACKS is not set
|
||||||
|
CONFIG_DEBUG_NMI_TIMEOUT=5
|
||||||
|
|
||||||
|
CONFIG_PCI_DIRECT=y
|
||||||
|
CONFIG_PCI_MMCONFIG=y
|
||||||
|
CONFIG_PCI_BIOS=y
|
||||||
|
|
||||||
|
CONFIG_HOTPLUG_PCI=y
|
||||||
|
CONFIG_HOTPLUG_PCI_COMPAQ=m
|
||||||
|
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
|
||||||
|
CONFIG_HOTPLUG_PCI_IBM=m
|
||||||
|
# CONFIG_HOTPLUG_PCI_CPCI is not set
|
||||||
|
# SHPC has half-arsed PCI probing, which makes it load on too many systems
|
||||||
|
# CONFIG_HOTPLUG_PCI_SHPC is not set
|
||||||
|
CONFIG_PM=y
|
||||||
|
|
||||||
|
CONFIG_IPW2100=m
|
||||||
|
CONFIG_IPW2100_MONITOR=y
|
||||||
|
CONFIG_IPW2200=m
|
||||||
|
CONFIG_IPW2200_MONITOR=y
|
||||||
|
CONFIG_IPW2200_RADIOTAP=y
|
||||||
|
CONFIG_IPW2200_PROMISCUOUS=y
|
||||||
|
CONFIG_IPW2200_QOS=y
|
||||||
|
|
||||||
|
CONFIG_BLK_DEV_AMD74XX=y
|
||||||
|
|
||||||
|
CONFIG_I2C_ALI1535=m
|
||||||
|
CONFIG_I2C_ALI15X3=m
|
||||||
|
CONFIG_I2C_ALI1563=m
|
||||||
|
CONFIG_I2C_AMD756=m
|
||||||
|
CONFIG_I2C_AMD756_S4882=m
|
||||||
|
CONFIG_I2C_AMD8111=m
|
||||||
|
CONFIG_I2C_I801=m
|
||||||
|
CONFIG_I2C_ISCH=m
|
||||||
|
CONFIG_I2C_NFORCE2=m
|
||||||
|
CONFIG_I2C_NFORCE2_S4985=m
|
||||||
|
CONFIG_I2C_PIIX4=m
|
||||||
|
CONFIG_I2C_SIS5595=m
|
||||||
|
CONFIG_I2C_SIS630=m
|
||||||
|
CONFIG_I2C_SIS96X=m
|
||||||
|
|
||||||
|
CONFIG_I2C_VIA=m
|
||||||
|
CONFIG_I2C_VIAPRO=m
|
||||||
|
|
||||||
|
CONFIG_SCx200_ACB=m
|
||||||
|
|
||||||
|
# CONFIG_X86_REBOOTFIXUPS is not set
|
||||||
|
|
||||||
|
CONFIG_DELL_RBU=m
|
||||||
|
CONFIG_DCDBAS=m
|
||||||
|
|
||||||
|
CONFIG_GPIO_SCH=m
|
||||||
|
CONFIG_PC8736x_GPIO=m
|
||||||
|
# CONFIG_NSC_GPIO is not set
|
||||||
|
CONFIG_CS5535_GPIO=m
|
||||||
|
|
||||||
|
CONFIG_EDAC=y
|
||||||
|
# CONFIG_EDAC_DEBUG is not set
|
||||||
|
CONFIG_EDAC_MM_EDAC=m
|
||||||
|
CONFIG_EDAC_AMD76X=m
|
||||||
|
CONFIG_EDAC_E7XXX=m
|
||||||
|
CONFIG_EDAC_E752X=m
|
||||||
|
CONFIG_EDAC_I82860=m
|
||||||
|
CONFIG_EDAC_I82875P=m
|
||||||
|
CONFIG_EDAC_I82975X=m
|
||||||
|
CONFIG_EDAC_I3000=m
|
||||||
|
CONFIG_EDAC_I5000=m
|
||||||
|
CONFIG_EDAC_I5100=m
|
||||||
|
CONFIG_EDAC_I5400=m
|
||||||
|
CONFIG_EDAC_R82600=m
|
||||||
|
CONFIG_EDAC_AMD8131=m
|
||||||
|
CONFIG_EDAC_AMD8111=m
|
||||||
|
|
||||||
|
CONFIG_SCHED_MC=y
|
||||||
|
|
||||||
|
CONFIG_SND_ISA=y
|
||||||
|
CONFIG_SND_ES18XX=m
|
||||||
|
|
||||||
|
CONFIG_TCG_INFINEON=m
|
||||||
|
|
||||||
|
CONFIG_HW_RANDOM_INTEL=m
|
||||||
|
CONFIG_HW_RANDOM_AMD=m
|
||||||
|
CONFIG_HW_RANDOM_GEODE=m
|
||||||
|
CONFIG_HW_RANDOM_VIA=m
|
||||||
|
|
||||||
|
|
||||||
|
# CONFIG_COMPAT_VDSO is not set
|
||||||
|
|
||||||
|
# CONFIG_SGI_IOC4 is not set
|
||||||
|
|
||||||
|
CONFIG_X86_PLATFORM_DEVICES=y
|
||||||
|
CONFIG_ASUS_LAPTOP=m
|
||||||
|
CONFIG_COMPAL_LAPTOP=m
|
||||||
|
CONFIG_EEEPC_LAPTOP=m
|
||||||
|
CONFIG_EEEPC_WMI=m
|
||||||
|
CONFIG_FUJITSU_LAPTOP=m
|
||||||
|
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
|
||||||
|
CONFIG_MSI_LAPTOP=m
|
||||||
|
CONFIG_SONY_LAPTOP=m
|
||||||
|
CONFIG_DELL_LAPTOP=m
|
||||||
|
CONFIG_ACPI_WMI=m
|
||||||
|
CONFIG_ACER_WMI=m
|
||||||
|
CONFIG_ACERHDF=m
|
||||||
|
CONFIG_TC1100_WMI=m
|
||||||
|
CONFIG_HP_WMI=m
|
||||||
|
CONFIG_DELL_WMI=m
|
||||||
|
|
||||||
|
# CONFIG_SMSC37B787_WDT is not set
|
||||||
|
CONFIG_W83697HF_WDT=m
|
||||||
|
CONFIG_IB700_WDT=m
|
||||||
|
|
||||||
|
CONFIG_RELOCATABLE=y
|
||||||
|
CONFIG_PHYSICAL_ALIGN=0x400000
|
||||||
|
CONFIG_PHYSICAL_START=0x400000
|
||||||
|
CONFIG_CRASH_DUMP=y
|
||||||
|
# CONFIG_KEXEC_JUMP is not set
|
||||||
|
CONFIG_PROC_VMCORE=y
|
||||||
|
CONFIG_CRASH=m
|
||||||
|
|
||||||
|
CONFIG_CRYPTO_DEV_GEODE=m
|
||||||
|
|
||||||
|
CONFIG_VIDEO_CAFE_CCIC=m
|
||||||
|
|
||||||
|
CONFIG_VIRTUALIZATION=y
|
||||||
|
CONFIG_KVM=m
|
||||||
|
CONFIG_KVM_INTEL=m
|
||||||
|
CONFIG_KVM_AMD=m
|
||||||
|
CONFIG_LGUEST=m
|
||||||
|
|
||||||
|
CONFIG_PARAVIRT_GUEST=y
|
||||||
|
CONFIG_PARAVIRT=y
|
||||||
|
# CONFIG_PARAVIRT_DEBUG is not set
|
||||||
|
|
||||||
|
# PARAVIRT_SPINLOCKS has a 5% perf hit
|
||||||
|
# CONFIG_PARAVIRT_SPINLOCKS is not set
|
||||||
|
CONFIG_KVM_CLOCK=y
|
||||||
|
CONFIG_KVM_GUEST=y
|
||||||
|
CONFIG_LGUEST_GUEST=y
|
||||||
|
CONFIG_VMI=y
|
||||||
|
|
||||||
|
CONFIG_XEN=y
|
||||||
|
CONFIG_XEN_MAX_DOMAIN_MEMORY=8
|
||||||
|
CONFIG_XEN_BALLOON=y
|
||||||
|
CONFIG_XEN_SCRUB_PAGES=y
|
||||||
|
CONFIG_XEN_SAVE_RESTORE=y
|
||||||
|
CONFIG_HVC_XEN=y
|
||||||
|
CONFIG_XEN_FBDEV_FRONTEND=y
|
||||||
|
CONFIG_XEN_KBDDEV_FRONTEND=y
|
||||||
|
CONFIG_XEN_BLKDEV_FRONTEND=m
|
||||||
|
CONFIG_XEN_NETDEV_FRONTEND=m
|
||||||
|
CONFIG_XENFS=m
|
||||||
|
CONFIG_XEN_COMPAT_XENFS=y
|
||||||
|
|
||||||
|
CONFIG_MTD_ESB2ROM=m
|
||||||
|
CONFIG_MTD_CK804XROM=m
|
||||||
|
CONFIG_MTD_NAND_CAFE=m
|
||||||
|
|
||||||
|
CONFIG_NO_HZ=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
|
CONFIG_CPU_IDLE=y
|
||||||
|
# CONFIG_CPU_IDLE_GOV_LADDER is not set
|
||||||
|
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||||
|
|
||||||
|
CONFIG_THINKPAD_ACPI=m
|
||||||
|
# CONFIG_THINKPAD_ACPI_DEBUG is not set
|
||||||
|
# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
|
||||||
|
CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
|
||||||
|
CONFIG_THINKPAD_ACPI_VIDEO=y
|
||||||
|
CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
|
||||||
|
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
|
||||||
|
|
||||||
|
CONFIG_MACINTOSH_DRIVERS=y
|
||||||
|
|
||||||
|
CONFIG_DMIID=y
|
||||||
|
CONFIG_ISCSI_IBFT_FIND=y
|
||||||
|
CONFIG_ISCSI_IBFT=m
|
||||||
|
|
||||||
|
CONFIG_DMADEVICES=y
|
||||||
|
CONFIG_INTEL_IOATDMA=m
|
||||||
|
|
||||||
|
CONFIG_SENSORS_I5K_AMB=m
|
||||||
|
|
||||||
|
# CONFIG_CPA_DEBUG is not set
|
||||||
|
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
|
||||||
|
|
||||||
|
CONFIG_HP_WATCHDOG=m
|
||||||
|
|
||||||
|
CONFIG_OLPC=y
|
||||||
|
CONFIG_BATTERY_OLPC=y
|
||||||
|
CONFIG_MOUSE_PS2_OLPC=y
|
||||||
|
|
||||||
|
CONFIG_STRICT_DEVMEM=y
|
||||||
|
|
||||||
|
# CONFIG_NO_BOOTMEM is not set
|
||||||
|
|
||||||
|
# CONFIG_MEMTEST is not set
|
||||||
|
# CONFIG_MAXSMP is not set
|
||||||
|
CONFIG_MTRR_SANITIZER=y
|
||||||
|
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
|
||||||
|
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
|
||||||
|
CONFIG_SYSPROF_TRACER=y
|
||||||
|
|
||||||
|
# CONFIG_X86_VERBOSE_BOOTUP is not set
|
||||||
|
# CONFIG_MMIOTRACE_TEST is not set
|
||||||
|
|
||||||
|
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||||
|
|
||||||
|
CONFIG_HP_ILO=m
|
||||||
|
|
||||||
|
CONFIG_BACKLIGHT_MBP_NVIDIA=m
|
||||||
|
|
||||||
|
CONFIG_OPROFILE_IBS=y
|
||||||
|
CONFIG_MICROCODE_INTEL=y
|
||||||
|
CONFIG_MICROCODE_AMD=y
|
||||||
|
|
||||||
|
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
|
||||||
|
CONFIG_X86_RESERVE_LOW_64K=y
|
||||||
|
|
||||||
|
# CONFIG_CMDLINE_BOOL is not set
|
||||||
|
|
||||||
|
CONFIG_PANASONIC_LAPTOP=m
|
||||||
|
|
||||||
|
CONFIG_XEN_DEBUG_FS=y
|
||||||
|
CONFIG_X86_PTRACE_BTS=y
|
||||||
|
|
||||||
|
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
|
||||||
|
|
||||||
|
CONFIG_POWER_TRACER=y
|
||||||
|
CONFIG_HW_BRANCH_TRACER=y
|
||||||
|
|
||||||
|
# CONFIG_SPARSE_IRQ is not set
|
||||||
|
|
||||||
|
CONFIG_RCU_FANOUT=32
|
||||||
|
|
||||||
|
# CONFIG_IOMMU_STRESS is not set
|
||||||
|
|
||||||
|
CONFIG_PERF_COUNTERS=y
|
||||||
|
CONFIG_PERF_EVENTS=y
|
||||||
|
CONFIG_EVENT_PROFILE=y
|
||||||
|
|
||||||
|
CONFIG_X86_MCE_INTEL=y
|
||||||
|
CONFIG_X86_MCE_AMD=y
|
||||||
|
# CONFIG_X86_ANCIENT_MCE is not set
|
||||||
|
# CONFIG_X86_MCE_INJECT is not set
|
||||||
|
|
||||||
|
# CONFIG_X86_MRST is not set
|
||||||
|
CONFIG_SFI=y
|
||||||
|
|
||||||
|
CONFIG_INPUT_WINBOND_CIR=m
|
||||||
|
CONFIG_I2C_SCMI=m
|
||||||
|
CONFIG_SBC_FITPC2_WATCHDOG=m
|
||||||
|
CONFIG_EDAC_I3200=m
|
||||||
|
CONFIG_EDAC_DECODE_MCE=m
|
||||||
|
|
||||||
|
CONFIG_GPIO_LANGWELL=y
|
||||||
|
|
||||||
|
# CONFIG_INTEL_TXT is not set
|
||||||
|
|
||||||
|
CONFIG_CS5535_MFGPT=m
|
||||||
|
CONFIG_GEODE_WDT=m
|
||||||
|
CONFIG_CS5535_CLOCK_EVENT_SRC=m
|
||||||
|
|
||||||
|
CONFIG_LEDS_INTEL_SS4200=m
|
||||||
|
|
||||||
|
CONFIG_X86_DECODER_SELFTEST=y
|
||||||
|
|
||||||
|
CONFIG_ACPI_CMPC=m
|
||||||
|
CONFIG_MSI_WMI=m
|
||||||
|
CONFIG_TOSHIBA_BT_RFKILL=m
|
||||||
|
# CONFIG_SAMSUNG_LAPTOP is not set
|
||||||
|
|
||||||
|
CONFIG_VGA_SWITCHEROO=y
|
||||||
|
CONFIG_LPC_SCH=m
|
||||||
400
config-x86_64-generic
Normal file
400
config-x86_64-generic
Normal file
|
|
@ -0,0 +1,400 @@
|
||||||
|
CONFIG_64BIT=y
|
||||||
|
CONFIG_UID16=y
|
||||||
|
# CONFIG_KERNEL_LZMA is not set
|
||||||
|
|
||||||
|
# CONFIG_MK8 is not set
|
||||||
|
# CONFIG_MPSC is not set
|
||||||
|
CONFIG_GENERIC_CPU=y
|
||||||
|
CONFIG_X86_EXTENDED_PLATFORM=y
|
||||||
|
# CONFIG_X86_VSMP is not set
|
||||||
|
# CONFIG_X86_UV is not set
|
||||||
|
CONFIG_X86_MSR=y
|
||||||
|
CONFIG_X86_CPUID=y
|
||||||
|
CONFIG_MTRR=y
|
||||||
|
CONFIG_NUMA=y
|
||||||
|
CONFIG_K8_NUMA=y
|
||||||
|
CONFIG_X86_64_ACPI_NUMA=y
|
||||||
|
# CONFIG_NUMA_EMU is not set
|
||||||
|
CONFIG_NR_CPUS=256
|
||||||
|
CONFIG_X86_POWERNOW_K8=m
|
||||||
|
CONFIG_X86_P4_CLOCKMOD=m
|
||||||
|
CONFIG_IA32_EMULATION=y
|
||||||
|
# CONFIG_IA32_AOUT is not set
|
||||||
|
# CONFIG_IOMMU_DEBUG is not set
|
||||||
|
CONFIG_DEBUG_RODATA=y
|
||||||
|
CONFIG_MICROCODE=m
|
||||||
|
CONFIG_SWIOTLB=y
|
||||||
|
CONFIG_CALGARY_IOMMU=y
|
||||||
|
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
|
||||||
|
CONFIG_X86_PM_TIMER=y
|
||||||
|
CONFIG_EDD=m
|
||||||
|
# CONFIG_EDD_OFF is not set
|
||||||
|
CONFIG_PCI_BIOS=y
|
||||||
|
CONFIG_PCI_MMCONFIG=y
|
||||||
|
CONFIG_DMAR=y
|
||||||
|
CONFIG_DMAR_BROKEN_GFX_WA=y
|
||||||
|
CONFIG_DMAR_FLOPPY_WA=y
|
||||||
|
CONFIG_DMAR_DEFAULT_ON=y
|
||||||
|
|
||||||
|
CONFIG_KEXEC_JUMP=y
|
||||||
|
|
||||||
|
CONFIG_EFI=y
|
||||||
|
CONFIG_EFI_VARS=y
|
||||||
|
CONFIG_EFI_PCDP=y
|
||||||
|
CONFIG_FB_EFI=y
|
||||||
|
|
||||||
|
CONFIG_SECCOMP=y
|
||||||
|
|
||||||
|
CONFIG_CAPI_EICON=y
|
||||||
|
|
||||||
|
CONFIG_GENERIC_ISA_DMA=y
|
||||||
|
CONFIG_SCHED_SMT=y
|
||||||
|
CONFIG_SUSPEND=y
|
||||||
|
CONFIG_HIBERNATION=y
|
||||||
|
CONFIG_PM_STD_PARTITION=""
|
||||||
|
|
||||||
|
CONFIG_CPU_FREQ=y
|
||||||
|
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
|
||||||
|
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||||
|
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_USERSPACE=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
|
||||||
|
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
|
||||||
|
CONFIG_CPU_FREQ_TABLE=y
|
||||||
|
CONFIG_CPU_FREQ_DEBUG=y
|
||||||
|
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
|
||||||
|
CONFIG_X86_PCC_CPUFREQ=m
|
||||||
|
CONFIG_X86_ACPI_CPUFREQ=m
|
||||||
|
CONFIG_CPU_FREQ_STAT=m
|
||||||
|
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||||
|
|
||||||
|
CONFIG_ACPI=y
|
||||||
|
CONFIG_ACPI_AC=y
|
||||||
|
# CONFIG_ACPI_ASUS is not set
|
||||||
|
CONFIG_ACPI_PROCFS_POWER=y
|
||||||
|
CONFIG_ACPI_SYSFS_POWER=y
|
||||||
|
CONFIG_ACPI_BATTERY=y
|
||||||
|
CONFIG_ACPI_BLACKLIST_YEAR=0
|
||||||
|
CONFIG_ACPI_BUTTON=y
|
||||||
|
CONFIG_ACPI_CONTAINER=m
|
||||||
|
CONFIG_ACPI_DOCK=y
|
||||||
|
CONFIG_ACPI_FAN=y
|
||||||
|
CONFIG_ACPI_HOTPLUG_MEMORY=m
|
||||||
|
CONFIG_ACPI_NUMA=y
|
||||||
|
CONFIG_ACPI_PROCESSOR=y
|
||||||
|
CONFIG_ACPI_PROCFS=y
|
||||||
|
CONFIG_ACPI_SBS=m
|
||||||
|
CONFIG_ACPI_SLEEP=y
|
||||||
|
CONFIG_ACPI_THERMAL=y
|
||||||
|
CONFIG_ACPI_TOSHIBA=m
|
||||||
|
CONFIG_ACPI_POWER=y
|
||||||
|
CONFIG_ACPI_VIDEO=m
|
||||||
|
# Disable in F9.
|
||||||
|
CONFIG_ACPI_PROC_EVENT=y
|
||||||
|
CONFIG_ACPI_POWER_METER=m
|
||||||
|
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
|
||||||
|
|
||||||
|
CONFIG_X86_PLATFORM_DEVICES=y
|
||||||
|
CONFIG_ASUS_LAPTOP=m
|
||||||
|
CONFIG_COMPAL_LAPTOP=m
|
||||||
|
CONFIG_FUJITSU_LAPTOP=m
|
||||||
|
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
|
||||||
|
CONFIG_MSI_LAPTOP=m
|
||||||
|
CONFIG_SONY_LAPTOP=m
|
||||||
|
CONFIG_SONYPI_COMPAT=y
|
||||||
|
CONFIG_EEEPC_LAPTOP=m
|
||||||
|
CONFIG_EEEPC_WMI=m
|
||||||
|
CONFIG_DELL_LAPTOP=m
|
||||||
|
CONFIG_ACPI_WMI=m
|
||||||
|
CONFIG_ACER_WMI=m
|
||||||
|
CONFIG_ACERHDF=m
|
||||||
|
CONFIG_HP_WMI=m
|
||||||
|
CONFIG_DELL_WMI=m
|
||||||
|
|
||||||
|
CONFIG_THINKPAD_ACPI=m
|
||||||
|
# CONFIG_THINKPAD_ACPI_DEBUG is not set
|
||||||
|
# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
|
||||||
|
CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
|
||||||
|
CONFIG_THINKPAD_ACPI_VIDEO=y
|
||||||
|
CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
|
||||||
|
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
|
||||||
|
|
||||||
|
CONFIG_HOTPLUG_PCI=y
|
||||||
|
CONFIG_HOTPLUG_PCI_COMPAQ=m
|
||||||
|
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
|
||||||
|
CONFIG_HOTPLUG_PCI_IBM=m
|
||||||
|
# CONFIG_HOTPLUG_PCI_CPCI is not set
|
||||||
|
# SHPC has half-arsed PCI probing, which makes it load on too many systems
|
||||||
|
CONFIG_HOTPLUG_PCI_SHPC=m
|
||||||
|
|
||||||
|
CONFIG_HPET=y
|
||||||
|
# CONFIG_HPET_MMAP is not set
|
||||||
|
CONFIG_PM=y
|
||||||
|
|
||||||
|
CONFIG_IPW2100=m
|
||||||
|
CONFIG_IPW2100_MONITOR=y
|
||||||
|
CONFIG_IPW2200=m
|
||||||
|
CONFIG_IPW2200_MONITOR=y
|
||||||
|
CONFIG_IPW2200_RADIOTAP=y
|
||||||
|
CONFIG_IPW2200_PROMISCUOUS=y
|
||||||
|
CONFIG_IPW2200_QOS=y
|
||||||
|
|
||||||
|
CONFIG_PNP=y
|
||||||
|
CONFIG_PNPACPI=y
|
||||||
|
|
||||||
|
CONFIG_BLK_DEV_AMD74XX=y
|
||||||
|
CONFIG_CRYPTO_DEV_PADLOCK=m
|
||||||
|
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
|
||||||
|
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
|
||||||
|
# CONFIG_CRYPTO_AES is not set
|
||||||
|
CONFIG_CRYPTO_AES_X86_64=m
|
||||||
|
# CONFIG_CRYPTO_TWOFISH is not set
|
||||||
|
CONFIG_CRYPTO_TWOFISH_X86_64=m
|
||||||
|
# CONFIG_CRYPTO_SALSA20 is not set
|
||||||
|
CONFIG_CRYPTO_SALSA20_X86_64=m
|
||||||
|
# -- Temporarily disabled until bugs can be sorted
|
||||||
|
# CONFIG_CRYPTO_AES_NI_INTEL is not set
|
||||||
|
|
||||||
|
CONFIG_X86_MCE=y
|
||||||
|
CONFIG_X86_MCE_INTEL=y
|
||||||
|
CONFIG_X86_MCE_AMD=y
|
||||||
|
|
||||||
|
# CONFIG_I2C_ALI1535 is not set
|
||||||
|
# CONFIG_I2C_ALI1563 is not set
|
||||||
|
# CONFIG_I2C_ALI15X3 is not set
|
||||||
|
CONFIG_I2C_AMD756=m
|
||||||
|
CONFIG_I2C_AMD756_S4882=m
|
||||||
|
CONFIG_I2C_AMD8111=m
|
||||||
|
CONFIG_I2C_I801=m
|
||||||
|
CONFIG_I2C_ISCH=m
|
||||||
|
CONFIG_I2C_NFORCE2_S4985=m
|
||||||
|
CONFIG_I2C_PIIX4=m
|
||||||
|
# CONFIG_I2C_SIS5595 is not set
|
||||||
|
# CONFIG_I2C_SIS630 is not set
|
||||||
|
|
||||||
|
CONFIG_I2C_SIS96X=m
|
||||||
|
CONFIG_I2C_VIA=m
|
||||||
|
CONFIG_I2C_VIAPRO=m
|
||||||
|
|
||||||
|
CONFIG_DELL_RBU=m
|
||||||
|
CONFIG_DCDBAS=m
|
||||||
|
|
||||||
|
CONFIG_NVRAM=y
|
||||||
|
|
||||||
|
CONFIG_EDAC=y
|
||||||
|
# CONFIG_EDAC_DEBUG is not set
|
||||||
|
CONFIG_EDAC_MM_EDAC=m
|
||||||
|
CONFIG_EDAC_AMD76X=m
|
||||||
|
CONFIG_EDAC_E7XXX=m
|
||||||
|
CONFIG_EDAC_E752X=m
|
||||||
|
CONFIG_EDAC_I5000=m
|
||||||
|
CONFIG_EDAC_I5100=m
|
||||||
|
CONFIG_EDAC_I5400=m
|
||||||
|
CONFIG_EDAC_I82875P=m
|
||||||
|
CONFIG_EDAC_I82860=m
|
||||||
|
CONFIG_EDAC_I82975X=m
|
||||||
|
CONFIG_EDAC_R82600=m
|
||||||
|
CONFIG_EDAC_AMD8131=m
|
||||||
|
CONFIG_EDAC_AMD8111=m
|
||||||
|
CONFIG_EDAC_AMD64=m
|
||||||
|
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
|
||||||
|
CONFIG_EDAC_DECODE_MCE=m
|
||||||
|
|
||||||
|
CONFIG_SCHED_MC=y
|
||||||
|
|
||||||
|
CONFIG_TCG_INFINEON=m
|
||||||
|
|
||||||
|
CONFIG_HW_RANDOM_INTEL=m
|
||||||
|
CONFIG_HW_RANDOM_AMD=m
|
||||||
|
CONFIG_HW_RANDOM_VIA=m
|
||||||
|
|
||||||
|
# CONFIG_HW_RANDOM_GEODE is not set
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||||
|
CONFIG_DEBUG_NMI_TIMEOUT=5
|
||||||
|
|
||||||
|
CONFIG_GPIO_SCH=m
|
||||||
|
# CONFIG_PC8736x_GPIO is not set
|
||||||
|
|
||||||
|
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||||
|
CONFIG_SPARSEMEM_MANUAL=y
|
||||||
|
CONFIG_SPARSEMEM=y
|
||||||
|
CONFIG_HAVE_MEMORY_PRESENT=y
|
||||||
|
CONFIG_SPARSEMEM_EXTREME=y
|
||||||
|
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||||
|
CONFIG_MEMORY_HOTPLUG=y
|
||||||
|
CONFIG_MEMORY_HOTREMOVE=y
|
||||||
|
|
||||||
|
# CONFIG_BLK_DEV_CMD640 is not set
|
||||||
|
# CONFIG_BLK_DEV_RZ1000 is not set
|
||||||
|
# CONFIG_BLK_DEV_TRIFLEX is not set
|
||||||
|
# CONFIG_BLK_DEV_CS5520 is not set
|
||||||
|
# CONFIG_BLK_DEV_CS5530 is not set
|
||||||
|
# CONFIG_BLK_DEV_CS5535 is not set
|
||||||
|
|
||||||
|
CONFIG_CC_STACKPROTECTOR=y
|
||||||
|
|
||||||
|
CONFIG_SGI_IOC4=m
|
||||||
|
CONFIG_SGI_XP=m
|
||||||
|
CONFIG_SGI_GRU=m
|
||||||
|
# CONFIG_SGI_GRU_DEBUG is not set
|
||||||
|
|
||||||
|
# CONFIG_SMSC37B787_WDT is not set
|
||||||
|
CONFIG_W83697HF_WDT=m
|
||||||
|
|
||||||
|
# CONFIG_VIDEO_CAFE_CCIC is not set
|
||||||
|
|
||||||
|
CONFIG_MTD_ESB2ROM=m
|
||||||
|
CONFIG_MTD_CK804XROM=m
|
||||||
|
|
||||||
|
CONFIG_RELOCATABLE=y
|
||||||
|
CONFIG_MACINTOSH_DRIVERS=y
|
||||||
|
|
||||||
|
CONFIG_CRASH_DUMP=y
|
||||||
|
CONFIG_PHYSICAL_START=0x1000000
|
||||||
|
CONFIG_PROC_VMCORE=y
|
||||||
|
CONFIG_CRASH=m
|
||||||
|
|
||||||
|
CONFIG_DMIID=y
|
||||||
|
CONFIG_ISCSI_IBFT_FIND=y
|
||||||
|
CONFIG_ISCSI_IBFT=m
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_NO_HZ=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
|
CONFIG_CPU_IDLE=y
|
||||||
|
# CONFIG_CPU_IDLE_GOV_LADDER is not set
|
||||||
|
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||||
|
|
||||||
|
CONFIG_VIRTUALIZATION=y
|
||||||
|
CONFIG_KVM=m
|
||||||
|
CONFIG_KVM_INTEL=m
|
||||||
|
CONFIG_KVM_AMD=m
|
||||||
|
|
||||||
|
CONFIG_PARAVIRT_GUEST=y
|
||||||
|
CONFIG_PARAVIRT=y
|
||||||
|
# CONFIG_PARAVIRT_DEBUG is not set
|
||||||
|
# PARAVIRT_SPINLOCKS has a 5% perf hit
|
||||||
|
# CONFIG_PARAVIRT_SPINLOCKS is not set
|
||||||
|
CONFIG_KVM_CLOCK=y
|
||||||
|
CONFIG_KVM_GUEST=y
|
||||||
|
|
||||||
|
CONFIG_XEN=y
|
||||||
|
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
|
||||||
|
CONFIG_XEN_BALLOON=y
|
||||||
|
CONFIG_XEN_SCRUB_PAGES=y
|
||||||
|
CONFIG_XEN_SAVE_RESTORE=y
|
||||||
|
CONFIG_HVC_XEN=y
|
||||||
|
CONFIG_XEN_FBDEV_FRONTEND=y
|
||||||
|
CONFIG_XEN_KBDDEV_FRONTEND=y
|
||||||
|
CONFIG_XEN_BLKDEV_FRONTEND=m
|
||||||
|
CONFIG_XEN_NETDEV_FRONTEND=m
|
||||||
|
CONFIG_XENFS=m
|
||||||
|
CONFIG_XEN_COMPAT_XENFS=y
|
||||||
|
CONFIG_XEN_DEV_EVTCHN=m
|
||||||
|
CONFIG_XEN_SYS_HYPERVISOR=y
|
||||||
|
|
||||||
|
CONFIG_DMADEVICES=y
|
||||||
|
CONFIG_INTEL_IOATDMA=m
|
||||||
|
|
||||||
|
CONFIG_SENSORS_I5K_AMB=m
|
||||||
|
|
||||||
|
# CONFIG_COMPAT_VDSO is not set
|
||||||
|
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
|
||||||
|
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||||
|
# CONFIG_CPA_DEBUG is not set
|
||||||
|
|
||||||
|
CONFIG_HP_WATCHDOG=m
|
||||||
|
|
||||||
|
CONFIG_FRAME_WARN=2048
|
||||||
|
|
||||||
|
CONFIG_NODES_SHIFT=9
|
||||||
|
CONFIG_X86_PAT=y
|
||||||
|
# FIXME: These should be 32bit only
|
||||||
|
# CONFIG_FB_N411 is not set
|
||||||
|
CONFIG_STRICT_DEVMEM=y
|
||||||
|
|
||||||
|
CONFIG_DIRECT_GBPAGES=y
|
||||||
|
|
||||||
|
# CONFIG_NO_BOOTMEM is not set
|
||||||
|
|
||||||
|
# CONFIG_MEMTEST is not set
|
||||||
|
CONFIG_AMD_IOMMU=y
|
||||||
|
CONFIG_AMD_IOMMU_STATS=y
|
||||||
|
# CONFIG_MAXSMP is not set
|
||||||
|
CONFIG_MTRR_SANITIZER=y
|
||||||
|
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
|
||||||
|
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
|
||||||
|
CONFIG_SYSPROF_TRACER=y
|
||||||
|
# CONFIG_X86_VERBOSE_BOOTUP is not set
|
||||||
|
# CONFIG_MMIOTRACE_TEST is not set
|
||||||
|
|
||||||
|
CONFIG_X86_MPPARSE=y
|
||||||
|
|
||||||
|
CONFIG_BACKLIGHT_MBP_NVIDIA=m
|
||||||
|
|
||||||
|
CONFIG_OPROFILE_IBS=y
|
||||||
|
CONFIG_MICROCODE_INTEL=y
|
||||||
|
CONFIG_MICROCODE_AMD=y
|
||||||
|
|
||||||
|
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
|
||||||
|
CONFIG_X86_RESERVE_LOW_64K=y
|
||||||
|
|
||||||
|
# CONFIG_CMDLINE_BOOL is not set
|
||||||
|
|
||||||
|
CONFIG_PANASONIC_LAPTOP=m
|
||||||
|
|
||||||
|
CONFIG_XEN_DEBUG_FS=y
|
||||||
|
CONFIG_X86_PTRACE_BTS=y
|
||||||
|
|
||||||
|
CONFIG_I7300_IDLE=m
|
||||||
|
CONFIG_INTR_REMAP=y
|
||||||
|
|
||||||
|
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
|
||||||
|
|
||||||
|
CONFIG_POWER_TRACER=y
|
||||||
|
CONFIG_HW_BRANCH_TRACER=y
|
||||||
|
|
||||||
|
CONFIG_X86_X2APIC=y
|
||||||
|
CONFIG_SPARSE_IRQ=y
|
||||||
|
|
||||||
|
CONFIG_RCU_FANOUT=64
|
||||||
|
|
||||||
|
# CONFIG_IOMMU_STRESS is not set
|
||||||
|
|
||||||
|
CONFIG_PERF_COUNTERS=y
|
||||||
|
CONFIG_PERF_EVENTS=y
|
||||||
|
CONFIG_EVENT_PROFILE=y
|
||||||
|
|
||||||
|
# CONFIG_X86_MCE_INJECT is not set
|
||||||
|
|
||||||
|
CONFIG_SFI=y
|
||||||
|
CONFIG_INPUT_WINBOND_CIR=m
|
||||||
|
CONFIG_I2C_SCMI=m
|
||||||
|
CONFIG_SBC_FITPC2_WATCHDOG=m
|
||||||
|
CONFIG_EDAC_I3200=m
|
||||||
|
CONFIG_TOPSTAR_LAPTOP=m
|
||||||
|
CONFIG_INTEL_TXT=y
|
||||||
|
CONFIG_GPIO_LANGWELL=y
|
||||||
|
|
||||||
|
CONFIG_FUNCTION_GRAPH_TRACER=y
|
||||||
|
|
||||||
|
CONFIG_ACPI_CMPC=m
|
||||||
|
CONFIG_MSI_WMI=m
|
||||||
|
CONFIG_TOSHIBA_BT_RFKILL=m
|
||||||
|
# CONFIG_SAMSUNG_LAPTOP is not set
|
||||||
|
|
||||||
|
CONFIG_CS5535_MFGPT=m
|
||||||
|
CONFIG_GEODE_WDT=m
|
||||||
|
CONFIG_CS5535_CLOCK_EVENT_SRC=m
|
||||||
|
|
||||||
|
CONFIG_X86_DECODER_SELFTEST=y
|
||||||
|
|
||||||
|
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
|
||||||
|
|
||||||
|
CONFIG_VGA_SWITCHEROO=y
|
||||||
|
CONFIG_LPC_SCH=m
|
||||||
|
|
||||||
|
CONFIG_HP_ILO=m
|
||||||
176
cred-dont-resurrect-dead-credentials.patch
Normal file
176
cred-dont-resurrect-dead-credentials.patch
Normal file
|
|
@ -0,0 +1,176 @@
|
||||||
|
From: David Howells <dhowells@redhat.com>
|
||||||
|
Date: Thu, 29 Jul 2010 11:45:49 +0000 (+0100)
|
||||||
|
Subject: CRED: Fix get_task_cred() and task_state() to not resurrect dead credentials
|
||||||
|
X-Git-Tag: v2.6.35~11
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=de09a9771a5346029f4d11e4ac886be7f9b
|
||||||
|
|
||||||
|
CRED: Fix get_task_cred() and task_state() to not resurrect dead credentials
|
||||||
|
|
||||||
|
It's possible for get_task_cred() as it currently stands to 'corrupt' a set of
|
||||||
|
credentials by incrementing their usage count after their replacement by the
|
||||||
|
task being accessed.
|
||||||
|
|
||||||
|
What happens is that get_task_cred() can race with commit_creds():
|
||||||
|
|
||||||
|
TASK_1 TASK_2 RCU_CLEANER
|
||||||
|
-->get_task_cred(TASK_2)
|
||||||
|
rcu_read_lock()
|
||||||
|
__cred = __task_cred(TASK_2)
|
||||||
|
-->commit_creds()
|
||||||
|
old_cred = TASK_2->real_cred
|
||||||
|
TASK_2->real_cred = ...
|
||||||
|
put_cred(old_cred)
|
||||||
|
call_rcu(old_cred)
|
||||||
|
[__cred->usage == 0]
|
||||||
|
get_cred(__cred)
|
||||||
|
[__cred->usage == 1]
|
||||||
|
rcu_read_unlock()
|
||||||
|
-->put_cred_rcu()
|
||||||
|
[__cred->usage == 1]
|
||||||
|
panic()
|
||||||
|
|
||||||
|
However, since a tasks credentials are generally not changed very often, we can
|
||||||
|
reasonably make use of a loop involving reading the creds pointer and using
|
||||||
|
atomic_inc_not_zero() to attempt to increment it if it hasn't already hit zero.
|
||||||
|
|
||||||
|
If successful, we can safely return the credentials in the knowledge that, even
|
||||||
|
if the task we're accessing has released them, they haven't gone to the RCU
|
||||||
|
cleanup code.
|
||||||
|
|
||||||
|
We then change task_state() in procfs to use get_task_cred() rather than
|
||||||
|
calling get_cred() on the result of __task_cred(), as that suffers from the
|
||||||
|
same problem.
|
||||||
|
|
||||||
|
Without this change, a BUG_ON in __put_cred() or in put_cred_rcu() can be
|
||||||
|
tripped when it is noticed that the usage count is not zero as it ought to be,
|
||||||
|
for example:
|
||||||
|
|
||||||
|
kernel BUG at kernel/cred.c:168!
|
||||||
|
invalid opcode: 0000 [#1] SMP
|
||||||
|
last sysfs file: /sys/kernel/mm/ksm/run
|
||||||
|
CPU 0
|
||||||
|
Pid: 2436, comm: master Not tainted 2.6.33.3-85.fc13.x86_64 #1 0HR330/OptiPlex
|
||||||
|
745
|
||||||
|
RIP: 0010:[<ffffffff81069881>] [<ffffffff81069881>] __put_cred+0xc/0x45
|
||||||
|
RSP: 0018:ffff88019e7e9eb8 EFLAGS: 00010202
|
||||||
|
RAX: 0000000000000001 RBX: ffff880161514480 RCX: 00000000ffffffff
|
||||||
|
RDX: 00000000ffffffff RSI: ffff880140c690c0 RDI: ffff880140c690c0
|
||||||
|
RBP: ffff88019e7e9eb8 R08: 00000000000000d0 R09: 0000000000000000
|
||||||
|
R10: 0000000000000001 R11: 0000000000000040 R12: ffff880140c690c0
|
||||||
|
R13: ffff88019e77aea0 R14: 00007fff336b0a5c R15: 0000000000000001
|
||||||
|
FS: 00007f12f50d97c0(0000) GS:ffff880007400000(0000) knlGS:0000000000000000
|
||||||
|
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
|
||||||
|
CR2: 00007f8f461bc000 CR3: 00000001b26ce000 CR4: 00000000000006f0
|
||||||
|
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
|
||||||
|
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
|
||||||
|
Process master (pid: 2436, threadinfo ffff88019e7e8000, task ffff88019e77aea0)
|
||||||
|
Stack:
|
||||||
|
ffff88019e7e9ec8 ffffffff810698cd ffff88019e7e9ef8 ffffffff81069b45
|
||||||
|
<0> ffff880161514180 ffff880161514480 ffff880161514180 0000000000000000
|
||||||
|
<0> ffff88019e7e9f28 ffffffff8106aace 0000000000000001 0000000000000246
|
||||||
|
Call Trace:
|
||||||
|
[<ffffffff810698cd>] put_cred+0x13/0x15
|
||||||
|
[<ffffffff81069b45>] commit_creds+0x16b/0x175
|
||||||
|
[<ffffffff8106aace>] set_current_groups+0x47/0x4e
|
||||||
|
[<ffffffff8106ac89>] sys_setgroups+0xf6/0x105
|
||||||
|
[<ffffffff81009b02>] system_call_fastpath+0x16/0x1b
|
||||||
|
Code: 48 8d 71 ff e8 7e 4e 15 00 85 c0 78 0b 8b 75 ec 48 89 df e8 ef 4a 15 00
|
||||||
|
48 83 c4 18 5b c9 c3 55 8b 07 8b 07 48 89 e5 85 c0 74 04 <0f> 0b eb fe 65 48 8b
|
||||||
|
04 25 00 cc 00 00 48 3b b8 58 04 00 00 75
|
||||||
|
RIP [<ffffffff81069881>] __put_cred+0xc/0x45
|
||||||
|
RSP <ffff88019e7e9eb8>
|
||||||
|
---[ end trace df391256a100ebdd ]---
|
||||||
|
|
||||||
|
Signed-off-by: David Howells <dhowells@redhat.com>
|
||||||
|
Acked-by: Jiri Olsa <jolsa@redhat.com>
|
||||||
|
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/fs/proc/array.c b/fs/proc/array.c
|
||||||
|
index 9b58d38..fff6572 100644
|
||||||
|
--- a/fs/proc/array.c
|
||||||
|
+++ b/fs/proc/array.c
|
||||||
|
@@ -176,7 +176,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
|
||||||
|
if (tracer)
|
||||||
|
tpid = task_pid_nr_ns(tracer, ns);
|
||||||
|
}
|
||||||
|
- cred = get_cred((struct cred *) __task_cred(p));
|
||||||
|
+ cred = get_task_cred(p);
|
||||||
|
seq_printf(m,
|
||||||
|
"State:\t%s\n"
|
||||||
|
"Tgid:\t%d\n"
|
||||||
|
diff --git a/include/linux/cred.h b/include/linux/cred.h
|
||||||
|
index 75c0fa8..ce40cbc 100644
|
||||||
|
--- a/include/linux/cred.h
|
||||||
|
+++ b/include/linux/cred.h
|
||||||
|
@@ -153,6 +153,7 @@ struct cred {
|
||||||
|
extern void __put_cred(struct cred *);
|
||||||
|
extern void exit_creds(struct task_struct *);
|
||||||
|
extern int copy_creds(struct task_struct *, unsigned long);
|
||||||
|
+extern const struct cred *get_task_cred(struct task_struct *);
|
||||||
|
extern struct cred *cred_alloc_blank(void);
|
||||||
|
extern struct cred *prepare_creds(void);
|
||||||
|
extern struct cred *prepare_exec_creds(void);
|
||||||
|
@@ -282,26 +283,6 @@ static inline void put_cred(const struct cred *_cred)
|
||||||
|
((const struct cred *)(rcu_dereference_check((task)->real_cred, rcu_read_lock_held() || lockdep_tasklist_lock_is_held())))
|
||||||
|
|
||||||
|
/**
|
||||||
|
- * get_task_cred - Get another task's objective credentials
|
||||||
|
- * @task: The task to query
|
||||||
|
- *
|
||||||
|
- * Get the objective credentials of a task, pinning them so that they can't go
|
||||||
|
- * away. Accessing a task's credentials directly is not permitted.
|
||||||
|
- *
|
||||||
|
- * The caller must make sure task doesn't go away, either by holding a ref on
|
||||||
|
- * task or by holding tasklist_lock to prevent it from being unlinked.
|
||||||
|
- */
|
||||||
|
-#define get_task_cred(task) \
|
||||||
|
-({ \
|
||||||
|
- struct cred *__cred; \
|
||||||
|
- rcu_read_lock(); \
|
||||||
|
- __cred = (struct cred *) __task_cred((task)); \
|
||||||
|
- get_cred(__cred); \
|
||||||
|
- rcu_read_unlock(); \
|
||||||
|
- __cred; \
|
||||||
|
-})
|
||||||
|
-
|
||||||
|
-/**
|
||||||
|
* get_current_cred - Get the current task's subjective credentials
|
||||||
|
*
|
||||||
|
* Get the subjective credentials of the current task, pinning them so that
|
||||||
|
diff --git a/kernel/cred.c b/kernel/cred.c
|
||||||
|
index a2d5504..60bc8b1 100644
|
||||||
|
--- a/kernel/cred.c
|
||||||
|
+++ b/kernel/cred.c
|
||||||
|
@@ -209,6 +209,31 @@ void exit_creds(struct task_struct *tsk)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * get_task_cred - Get another task's objective credentials
|
||||||
|
+ * @task: The task to query
|
||||||
|
+ *
|
||||||
|
+ * Get the objective credentials of a task, pinning them so that they can't go
|
||||||
|
+ * away. Accessing a task's credentials directly is not permitted.
|
||||||
|
+ *
|
||||||
|
+ * The caller must also make sure task doesn't get deleted, either by holding a
|
||||||
|
+ * ref on task or by holding tasklist_lock to prevent it from being unlinked.
|
||||||
|
+ */
|
||||||
|
+const struct cred *get_task_cred(struct task_struct *task)
|
||||||
|
+{
|
||||||
|
+ const struct cred *cred;
|
||||||
|
+
|
||||||
|
+ rcu_read_lock();
|
||||||
|
+
|
||||||
|
+ do {
|
||||||
|
+ cred = __task_cred((task));
|
||||||
|
+ BUG_ON(!cred);
|
||||||
|
+ } while (!atomic_inc_not_zero(&((struct cred *)cred)->usage));
|
||||||
|
+
|
||||||
|
+ rcu_read_unlock();
|
||||||
|
+ return cred;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Allocate blank credentials, such that the credentials can be filled in at a
|
||||||
|
* later date without risk of ENOMEM.
|
||||||
111
crypto-add-async-hash-testing.patch
Normal file
111
crypto-add-async-hash-testing.patch
Normal file
|
|
@ -0,0 +1,111 @@
|
||||||
|
From e45009229be6a7fae49bdfa3459905668c0b0fb1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David S. Miller <davem@davemloft.net>
|
||||||
|
Date: Wed, 19 May 2010 14:12:03 +1000
|
||||||
|
Subject: crypto: testmgr - Add testing for async hashing and update/final
|
||||||
|
|
||||||
|
Extend testmgr such that it tests async hash algorithms,
|
||||||
|
and that for both sync and async hashes it tests both
|
||||||
|
->digest() and ->update()/->final() sequences.
|
||||||
|
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
||||||
|
---
|
||||||
|
crypto/testmgr.c | 66 +++++++++++++++++++++++++++++++++++++++--------------
|
||||||
|
1 files changed, 48 insertions(+), 18 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
|
||||||
|
index c494d76..5c8aaa0 100644
|
||||||
|
--- a/crypto/testmgr.c
|
||||||
|
+++ b/crypto/testmgr.c
|
||||||
|
@@ -153,8 +153,21 @@ static void testmgr_free_buf(char *buf[XBUFSIZE])
|
||||||
|
free_page((unsigned long)buf[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int do_one_async_hash_op(struct ahash_request *req,
|
||||||
|
+ struct tcrypt_result *tr,
|
||||||
|
+ int ret)
|
||||||
|
+{
|
||||||
|
+ if (ret == -EINPROGRESS || ret == -EBUSY) {
|
||||||
|
+ ret = wait_for_completion_interruptible(&tr->completion);
|
||||||
|
+ if (!ret)
|
||||||
|
+ ret = tr->err;
|
||||||
|
+ INIT_COMPLETION(tr->completion);
|
||||||
|
+ }
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int test_hash(struct crypto_ahash *tfm, struct hash_testvec *template,
|
||||||
|
- unsigned int tcount)
|
||||||
|
+ unsigned int tcount, bool use_digest)
|
||||||
|
{
|
||||||
|
const char *algo = crypto_tfm_alg_driver_name(crypto_ahash_tfm(tfm));
|
||||||
|
unsigned int i, j, k, temp;
|
||||||
|
@@ -206,23 +219,36 @@ static int test_hash(struct crypto_ahash *tfm, struct hash_testvec *template,
|
||||||
|
}
|
||||||
|
|
||||||
|
ahash_request_set_crypt(req, sg, result, template[i].psize);
|
||||||
|
- ret = crypto_ahash_digest(req);
|
||||||
|
- switch (ret) {
|
||||||
|
- case 0:
|
||||||
|
- break;
|
||||||
|
- case -EINPROGRESS:
|
||||||
|
- case -EBUSY:
|
||||||
|
- ret = wait_for_completion_interruptible(
|
||||||
|
- &tresult.completion);
|
||||||
|
- if (!ret && !(ret = tresult.err)) {
|
||||||
|
- INIT_COMPLETION(tresult.completion);
|
||||||
|
- break;
|
||||||
|
+ if (use_digest) {
|
||||||
|
+ ret = do_one_async_hash_op(req, &tresult,
|
||||||
|
+ crypto_ahash_digest(req));
|
||||||
|
+ if (ret) {
|
||||||
|
+ pr_err("alg: hash: digest failed on test %d "
|
||||||
|
+ "for %s: ret=%d\n", j, algo, -ret);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ ret = do_one_async_hash_op(req, &tresult,
|
||||||
|
+ crypto_ahash_init(req));
|
||||||
|
+ if (ret) {
|
||||||
|
+ pr_err("alt: hash: init failed on test %d "
|
||||||
|
+ "for %s: ret=%d\n", j, algo, -ret);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ ret = do_one_async_hash_op(req, &tresult,
|
||||||
|
+ crypto_ahash_update(req));
|
||||||
|
+ if (ret) {
|
||||||
|
+ pr_err("alt: hash: update failed on test %d "
|
||||||
|
+ "for %s: ret=%d\n", j, algo, -ret);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ ret = do_one_async_hash_op(req, &tresult,
|
||||||
|
+ crypto_ahash_final(req));
|
||||||
|
+ if (ret) {
|
||||||
|
+ pr_err("alt: hash: final failed on test %d "
|
||||||
|
+ "for %s: ret=%d\n", j, algo, -ret);
|
||||||
|
+ goto out;
|
||||||
|
}
|
||||||
|
- /* fall through */
|
||||||
|
- default:
|
||||||
|
- printk(KERN_ERR "alg: hash: digest failed on test %d "
|
||||||
|
- "for %s: ret=%d\n", j, algo, -ret);
|
||||||
|
- goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (memcmp(result, template[i].digest,
|
||||||
|
@@ -1402,7 +1428,11 @@ static int alg_test_hash(const struct alg_test_desc *desc, const char *driver,
|
||||||
|
return PTR_ERR(tfm);
|
||||||
|
}
|
||||||
|
|
||||||
|
- err = test_hash(tfm, desc->suite.hash.vecs, desc->suite.hash.count);
|
||||||
|
+ err = test_hash(tfm, desc->suite.hash.vecs,
|
||||||
|
+ desc->suite.hash.count, true);
|
||||||
|
+ if (!err)
|
||||||
|
+ err = test_hash(tfm, desc->suite.hash.vecs,
|
||||||
|
+ desc->suite.hash.count, false);
|
||||||
|
|
||||||
|
crypto_free_ahash(tfm);
|
||||||
|
return err;
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
71
dccp-fix-oops-on-reset-after-close.patch
Normal file
71
dccp-fix-oops-on-reset-after-close.patch
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
|
||||||
|
Date: Wed, 2 Mar 2011 07:02:07 +0000 (-0800)
|
||||||
|
Subject: dccp: fix oops on Reset after close
|
||||||
|
X-Git-Tag: v2.6.38-rc8~29^2~9
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=720dc34bbbe9493c7bd48b2243058b4e447a929d
|
||||||
|
|
||||||
|
dccp: fix oops on Reset after close
|
||||||
|
|
||||||
|
This fixes a bug in the order of dccp_rcv_state_process() that still permitted
|
||||||
|
reception even after closing the socket. A Reset after close thus causes a NULL
|
||||||
|
pointer dereference by not preventing operations on an already torn-down socket.
|
||||||
|
|
||||||
|
dccp_v4_do_rcv()
|
||||||
|
|
|
||||||
|
| state other than OPEN
|
||||||
|
v
|
||||||
|
dccp_rcv_state_process()
|
||||||
|
|
|
||||||
|
| DCCP_PKT_RESET
|
||||||
|
v
|
||||||
|
dccp_rcv_reset()
|
||||||
|
|
|
||||||
|
v
|
||||||
|
dccp_time_wait()
|
||||||
|
|
||||||
|
WARNING: at net/ipv4/inet_timewait_sock.c:141 __inet_twsk_hashdance+0x48/0x128()
|
||||||
|
Modules linked in: arc4 ecb carl9170 rt2870sta(C) mac80211 r8712u(C) crc_ccitt ah
|
||||||
|
[<c0038850>] (unwind_backtrace+0x0/0xec) from [<c0055364>] (warn_slowpath_common)
|
||||||
|
[<c0055364>] (warn_slowpath_common+0x4c/0x64) from [<c0055398>] (warn_slowpath_n)
|
||||||
|
[<c0055398>] (warn_slowpath_null+0x1c/0x24) from [<c02b72d0>] (__inet_twsk_hashd)
|
||||||
|
[<c02b72d0>] (__inet_twsk_hashdance+0x48/0x128) from [<c031caa0>] (dccp_time_wai)
|
||||||
|
[<c031caa0>] (dccp_time_wait+0x40/0xc8) from [<c031c15c>] (dccp_rcv_state_proces)
|
||||||
|
[<c031c15c>] (dccp_rcv_state_process+0x120/0x538) from [<c032609c>] (dccp_v4_do_)
|
||||||
|
[<c032609c>] (dccp_v4_do_rcv+0x11c/0x14c) from [<c0286594>] (release_sock+0xac/0)
|
||||||
|
[<c0286594>] (release_sock+0xac/0x110) from [<c031fd34>] (dccp_close+0x28c/0x380)
|
||||||
|
[<c031fd34>] (dccp_close+0x28c/0x380) from [<c02d9a78>] (inet_release+0x64/0x70)
|
||||||
|
|
||||||
|
The fix is by testing the socket state first. Receiving a packet in Closed state
|
||||||
|
now also produces the required "No connection" Reset reply of RFC 4340, 8.3.1.
|
||||||
|
|
||||||
|
Reported-and-tested-by: Johan Hovold <jhovold@gmail.com>
|
||||||
|
Cc: stable@kernel.org
|
||||||
|
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/net/dccp/input.c b/net/dccp/input.c
|
||||||
|
index 8cde009..4222e7a 100644
|
||||||
|
--- a/net/dccp/input.c
|
||||||
|
+++ b/net/dccp/input.c
|
||||||
|
@@ -614,6 +614,9 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
|
||||||
|
/* Caller (dccp_v4_do_rcv) will send Reset */
|
||||||
|
dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION;
|
||||||
|
return 1;
|
||||||
|
+ } else if (sk->sk_state == DCCP_CLOSED) {
|
||||||
|
+ dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION;
|
||||||
|
+ return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sk->sk_state != DCCP_REQUESTING && sk->sk_state != DCCP_RESPOND) {
|
||||||
|
@@ -668,10 +671,6 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (sk->sk_state) {
|
||||||
|
- case DCCP_CLOSED:
|
||||||
|
- dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION;
|
||||||
|
- return 1;
|
||||||
|
-
|
||||||
|
case DCCP_REQUESTING:
|
||||||
|
queued = dccp_rcv_request_sent_state_process(sk, skb, dh, len);
|
||||||
|
if (queued >= 0)
|
||||||
|
|
@ -1,467 +0,0 @@
|
||||||
packages:
|
|
||||||
- name: modules-core
|
|
||||||
depends-on: []
|
|
||||||
- name: modules
|
|
||||||
depends-on:
|
|
||||||
- modules-core
|
|
||||||
- name: modules-internal
|
|
||||||
depends-on:
|
|
||||||
- modules-core
|
|
||||||
- modules
|
|
||||||
- name: modules-extra
|
|
||||||
depends-on:
|
|
||||||
- modules-core
|
|
||||||
- modules
|
|
||||||
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- .*kunit.*: modules-internal
|
|
||||||
exact_pkg: True
|
|
||||||
- .*test[^/]*.ko: modules-internal
|
|
||||||
|
|
||||||
- arch/.*: modules-core
|
|
||||||
- crypto/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/accel/.*: modules-core
|
|
||||||
- drivers/accessibility/.*: modules-core
|
|
||||||
- drivers/acpi/video.*: modules
|
|
||||||
- drivers/acpi/.*: modules-core
|
|
||||||
- drivers/ata/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/base/regmap/regmap-sdw.*: modules
|
|
||||||
- drivers/base/.*: modules-core
|
|
||||||
- drivers/block/floppy.*: modules-extra
|
|
||||||
- drivers/block/rnbd.*: modules
|
|
||||||
- drivers/block/.*: modules-core
|
|
||||||
- drivers/bus/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/cdx/.*: modules-core
|
|
||||||
- drivers/char/mwave.*: modules
|
|
||||||
- drivers/char/.*: modules-core
|
|
||||||
- drivers/clk/.*: modules-core
|
|
||||||
- drivers/counter/.*: modules-core
|
|
||||||
- drivers/cpufreq/.*: modules-core
|
|
||||||
- drivers/crypto/caam/.*: modules
|
|
||||||
- drivers/crypto/cavium/.*: modules
|
|
||||||
- drivers/crypto/chelsio/.*: modules
|
|
||||||
- drivers/crypto/hisilicon/.*: modules
|
|
||||||
- drivers/crypto/marvell/.*: modules
|
|
||||||
- drivers/crypto/.*: modules-core
|
|
||||||
- drivers/cxl/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/dax/.*: modules-core
|
|
||||||
- drivers/dca/.*: modules-core
|
|
||||||
- drivers/devfreq/.*: modules-core
|
|
||||||
- drivers/dma/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/edac/.*: modules-core
|
|
||||||
- drivers/extcon/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/firmware/iscsi_ibft.*: modules
|
|
||||||
- drivers/firmware/.*: modules-core
|
|
||||||
- drivers/fsi/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/gnss/.*: modules-core
|
|
||||||
- drivers/gpio/gpio-dln2.*: modules-extra
|
|
||||||
- drivers/gpio/gpio-ljca.*: modules
|
|
||||||
- drivers/gpio/.*: modules-core
|
|
||||||
- drivers/gpu/drm/display/drm_.*: modules-core
|
|
||||||
- drivers/gpu/drm/drm.*: modules-core
|
|
||||||
- drivers/gpu/drm/etnaviv/.*: modules-core
|
|
||||||
- drivers/gpu/drm/gud/.*: modules-core
|
|
||||||
- drivers/gpu/drm/hyperv/.*: modules-core
|
|
||||||
- drivers/gpu/drm/imagination/.*: modules-core
|
|
||||||
- drivers/gpu/drm/lima/.*: modules-core
|
|
||||||
- drivers/gpu/drm/mxsfb/.*: modules-core
|
|
||||||
- drivers/gpu/drm/panfrost/.*: modules-core
|
|
||||||
- drivers/gpu/drm/qxl/.*: modules-core
|
|
||||||
- drivers/gpu/drm/scheduler/.*: modules-core
|
|
||||||
- drivers/gpu/drm/solomon/.*: modules-core
|
|
||||||
- drivers/gpu/drm/tidss/.*: modules-core
|
|
||||||
- drivers/gpu/drm/tiny/.*: modules-core
|
|
||||||
- drivers/gpu/drm/ttm/.*: modules-core
|
|
||||||
- drivers/gpu/drm/udl/.*: modules-core
|
|
||||||
- drivers/gpu/drm/v3d/.*: modules-core
|
|
||||||
- drivers/gpu/drm/vgem/.*: modules-core
|
|
||||||
- drivers/gpu/drm/virtio/.*: modules-core
|
|
||||||
- drivers/gpu/drm/vkms/.*: modules-core
|
|
||||||
- drivers/gpu/drm/vmwgfx/.*: modules-core
|
|
||||||
- drivers/gpu/drm/xlnx/.*: modules-core
|
|
||||||
- drivers/gpu/host1x/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/hid/hid-asus.*: modules
|
|
||||||
- drivers/hid/hid-nintendo.*: modules
|
|
||||||
- drivers/hid/hid-picolcd.*: modules
|
|
||||||
- drivers/hid/hid-playstation.*: modules
|
|
||||||
- drivers/hid/surface-hid.*: modules
|
|
||||||
- drivers/hid/hid-prodikeys.*: modules
|
|
||||||
- drivers/hid/.*: modules-core
|
|
||||||
- drivers/hte/.*: modules-core
|
|
||||||
- drivers/hv/.*: modules-core
|
|
||||||
- drivers/hwmon/asus_wmi_sensors.*: modules
|
|
||||||
- drivers/hwmon/dell-smm-hwmon.*: modules
|
|
||||||
- drivers/hwmon/hp-wmi-sensors.*: modules
|
|
||||||
- drivers/hwmon/intel-m10-bmc-hwmon.*: modules
|
|
||||||
- drivers/hwmon/nct6775.*: modules
|
|
||||||
- drivers/hwmon/.*: modules-core
|
|
||||||
- drivers/hwspinlock/.*: modules-core
|
|
||||||
- drivers/hwtracing/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/i2c/busses/i2c-dln2.*: modules-extra
|
|
||||||
- drivers/i2c/busses/i2c-ljca.*: modules
|
|
||||||
- drivers/i2c/.*: modules-core
|
|
||||||
- drivers/i3c/.*: modules-core
|
|
||||||
- drivers/iio/adc/dln2-adc.*: modules-extra
|
|
||||||
- drivers/iio/accel/.*: modules
|
|
||||||
- drivers/iio/common/cros_ec_sensors/.*: modules
|
|
||||||
- drivers/iio/light/.*: modules
|
|
||||||
- drivers/iio/pressure/.*: modules
|
|
||||||
- drivers/iio/proximity/.*: modules
|
|
||||||
- drivers/iio/.*: modules-core
|
|
||||||
- drivers/input/gameport/.*: modules
|
|
||||||
- drivers/input/joystick/.*: modules-extra
|
|
||||||
- drivers/input/misc/pcspkr.*: modules-extra
|
|
||||||
- drivers/input/tablet/.*: modules
|
|
||||||
- drivers/input/touchscreen/.*: modules
|
|
||||||
- drivers/input/.*: modules-core
|
|
||||||
- drivers/interconnect/.*: modules-core
|
|
||||||
- drivers/iommu/.*: modules-core
|
|
||||||
- drivers/irqchip/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/mailbox/.*: modules-core
|
|
||||||
- drivers/md/.*: modules-core
|
|
||||||
- drivers/memory/dfl-emif.*: modules
|
|
||||||
- drivers/memory/.*: modules-core
|
|
||||||
- drivers/message/fusion/mptctl.*: modules-extra
|
|
||||||
- drivers/message/fusion/mptfc.*: modules-extra
|
|
||||||
- drivers/message/fusion/.*: modules
|
|
||||||
- drivers/message/.*: modules-core
|
|
||||||
- drivers/mfd/dln2.*: modules-extra
|
|
||||||
- drivers/misc/.*: modules-core
|
|
||||||
- drivers/mux/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/net/amt.ko: modules-core
|
|
||||||
- drivers/net/bareudp.ko: modules-core
|
|
||||||
- drivers/net/bonding/.*: modules-core
|
|
||||||
- drivers/net/can/slcan/slcan.*: modules-extra
|
|
||||||
- drivers/net/can/usb/ems_usb.*: modules-extra
|
|
||||||
- drivers/net/can/vcan.*: modules-extra
|
|
||||||
- drivers/net/dummy.ko: modules-core
|
|
||||||
- drivers/net/eql.ko: modules-core
|
|
||||||
|
|
||||||
- drivers/net/ethernet/8390/.*: modules-core
|
|
||||||
- drivers/net/ethernet/adi/.*: modules-core
|
|
||||||
- drivers/net/ethernet/agere/.*: modules-core
|
|
||||||
- drivers/net/ethernet/altera/.*: modules-core
|
|
||||||
- drivers/net/ethernet/amazon/.*: modules-core
|
|
||||||
- drivers/net/ethernet/amd/.*: modules-core
|
|
||||||
- drivers/net/ethernet/apm/.*: modules-core
|
|
||||||
- drivers/net/ethernet/asix/.*: modules-core
|
|
||||||
- drivers/net/ethernet/brocade/.*: modules-core
|
|
||||||
- drivers/net/ethernet/cavium/.*: modules-core
|
|
||||||
- drivers/net/ethernet/dnet.ko: modules-core
|
|
||||||
- drivers/net/ethernet/engleder/.*: modules-core
|
|
||||||
- drivers/net/ethernet/ethoc.ko: modules-core
|
|
||||||
- drivers/net/ethernet/fealnx.ko: modules-core
|
|
||||||
- drivers/net/ethernet/freescale/.*: modules-core
|
|
||||||
- drivers/net/ethernet/fungible/.*: modules-core
|
|
||||||
- drivers/net/ethernet/google/.*: modules-core
|
|
||||||
- drivers/net/ethernet/hisilicon/.*: modules-core
|
|
||||||
- drivers/net/ethernet/ibm/.*: modules-core
|
|
||||||
- drivers/net/ethernet/intel/.*: modules-core
|
|
||||||
- drivers/net/ethernet/jme.ko: modules-core
|
|
||||||
- drivers/net/ethernet/litex/.*: modules-core
|
|
||||||
- drivers/net/ethernet/mellanox/.*: modules-core
|
|
||||||
- drivers/net/ethernet/microsoft/.*: modules-core
|
|
||||||
- drivers/net/ethernet/natsemi/.*: modules-core
|
|
||||||
- drivers/net/ethernet/netronome/.*: modules-core
|
|
||||||
- drivers/net/ethernet/pensando/.*: modules-core
|
|
||||||
- drivers/net/ethernet/rocker/rocker.*: modules-internal
|
|
||||||
- drivers/net/ethernet/qualcomm/.*: modules-core
|
|
||||||
- drivers/net/ethernet/realtek/.*: modules-core
|
|
||||||
- drivers/net/ethernet/renesas/.*: modules-core
|
|
||||||
- drivers/net/ethernet/socionext/.*: modules-core
|
|
||||||
- drivers/net/ethernet/vertexcom/.*: modules-core
|
|
||||||
- drivers/net/ethernet/wangxun/.*: modules-core
|
|
||||||
- drivers/net/ethernet/xilinx/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/net/fjes/.*: modules-core
|
|
||||||
- drivers/net/geneve.ko: modules-core
|
|
||||||
- drivers/net/gtp.ko: modules-core
|
|
||||||
- drivers/net/hamradio/.*: modules-extra
|
|
||||||
- drivers/net/hyperv/.*: modules-core
|
|
||||||
- drivers/net/ifb.ko: modules-core
|
|
||||||
- drivers/net/ipa/.*: modules-core
|
|
||||||
- drivers/net/ipvlan/.*: modules-core
|
|
||||||
- drivers/net/macsec.ko: modules-core
|
|
||||||
- drivers/net/macvlan.ko: modules-core
|
|
||||||
- drivers/net/macvtap.ko: modules-core
|
|
||||||
- drivers/net/mctp/.*: modules-core
|
|
||||||
- drivers/net/mdio.*: modules-core
|
|
||||||
- drivers/net/mhi_net.ko: modules-core
|
|
||||||
- drivers/net/mii.ko: modules-core
|
|
||||||
- drivers/net/net_failover.ko: modules-core
|
|
||||||
- drivers/net/netdevsim/netdevsim.*: modules-internal
|
|
||||||
- drivers/net/netconsole.ko: modules-core
|
|
||||||
- drivers/net/nlmon.ko: modules-core
|
|
||||||
- drivers/net/pcs/.*: modules-core
|
|
||||||
- drivers/net/phy/.*: modules-core
|
|
||||||
- drivers/net/rionet.ko: modules-core
|
|
||||||
- drivers/net/slip/slip.*: modules-extra
|
|
||||||
- drivers/net/sungem_phy.ko: modules-core
|
|
||||||
- drivers/net/tap.ko: modules-core
|
|
||||||
- drivers/net/team/.*: modules-core
|
|
||||||
- drivers/net/thunderbolt/.*: modules-core
|
|
||||||
- drivers/net/tun.ko: modules-core
|
|
||||||
- drivers/net/veth.ko: modules-core
|
|
||||||
- drivers/net/virtio_net.ko: modules-core
|
|
||||||
- drivers/net/vmxnet3/.*: modules-core
|
|
||||||
- drivers/net/vrf.ko: modules-core
|
|
||||||
- drivers/net/vsockmon.ko: modules-core
|
|
||||||
- drivers/net/vxlan/.*: modules-core
|
|
||||||
- drivers/net/wireguard/.*: modules-core
|
|
||||||
- drivers/net/wireless/virtual/mac80211_hwsim.*: modules-internal
|
|
||||||
- drivers/net/wwan/wwan_hwsim.*: modules-internal
|
|
||||||
- drivers/net/wwan/.*: modules-core
|
|
||||||
- drivers/net/xen.*: modules-core
|
|
||||||
|
|
||||||
- drivers/nvdimm/.*: modules-core
|
|
||||||
- drivers/nvme/host/nvme-rdma.*: modules
|
|
||||||
- drivers/nvme/target/nvmet-rdma.*: modules
|
|
||||||
- drivers/nvme/.*: modules-core
|
|
||||||
- drivers/nvmem/nvmem_u-boot-env.*: modules
|
|
||||||
- drivers/nvmem/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/parport/parport_serial.*: modules
|
|
||||||
- drivers/parport/.*: modules-core
|
|
||||||
- drivers/pci/pcie/aer_inject.*: modules-extra
|
|
||||||
- drivers/pci/.*: modules-core
|
|
||||||
- drivers/perf/.*: modules-core
|
|
||||||
- drivers/phy/.*: modules-core
|
|
||||||
- drivers/pinctrl/.*: modules-core
|
|
||||||
- drivers/pmdomain/.*: modules-core
|
|
||||||
- drivers/powercap/intel_rapl_tpmi.*: modules
|
|
||||||
- drivers/powercap/.*: modules-core
|
|
||||||
- drivers/pps/.*: modules-core
|
|
||||||
- drivers/ptp/ptp_mock.*: modules-internal
|
|
||||||
- drivers/ptp/ptp_dfl_tod.*: modules
|
|
||||||
- drivers/ptp/.*: modules-core
|
|
||||||
- drivers/pwm/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/rapidio/.*: modules-core
|
|
||||||
- drivers/regulator/arizona-micsupp.*: modules
|
|
||||||
- drivers/regulator/.*: modules-core
|
|
||||||
- drivers/remoteproc/.*: modules-core
|
|
||||||
- drivers/reset/.*: modules-core
|
|
||||||
- drivers/rpmsg/.*: modules-core
|
|
||||||
- drivers/rtc/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/s390/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/scsi/3w.*: modules-core
|
|
||||||
- drivers/scsi/BusLogic.ko: modules-core
|
|
||||||
- drivers/scsi/a100u2w.ko: modules-core
|
|
||||||
- drivers/scsi/advansys.ko: modules-core
|
|
||||||
- drivers/scsi/am53c974.ko: modules-core
|
|
||||||
- drivers/scsi/arcmsr.*: modules-core
|
|
||||||
- drivers/scsi/atp870u.ko: modules-core
|
|
||||||
- drivers/scsi/ch.ko: modules-core
|
|
||||||
- drivers/scsi/cxlflash/.*: modules-core
|
|
||||||
- drivers/scsi/dc395x.ko: modules-core
|
|
||||||
- drivers/scsi/device_handler/.*: modules-core
|
|
||||||
- drivers/scsi/dmx3191d.ko: modules-core
|
|
||||||
- drivers/scsi/elx/.*: modules-core
|
|
||||||
- drivers/scsi/esp_scsi.ko: modules-core
|
|
||||||
- drivers/scsi/fdomain.*: modules-core
|
|
||||||
- drivers/scsi/hpsa.ko: modules-core
|
|
||||||
- drivers/scsi/hptiop.ko: modules-core
|
|
||||||
- drivers/scsi/hv_storvsc.ko: modules-core
|
|
||||||
- drivers/scsi/ibmvscsi.*: modules-core
|
|
||||||
- drivers/scsi/initio.ko: modules-core
|
|
||||||
- drivers/scsi/ipr.ko: modules-core
|
|
||||||
- drivers/scsi/ips.ko: modules-core
|
|
||||||
- drivers/scsi/iscsi_tcp.ko: modules-core
|
|
||||||
- drivers/scsi/libfc/.*: modules-core
|
|
||||||
- drivers/scsi/libiscsi.*: modules-core
|
|
||||||
- drivers/scsi/mpi3mr/.*: modules-core
|
|
||||||
- drivers/scsi/mvumi.ko: modules-core
|
|
||||||
- drivers/scsi/myrb.ko: modules-core
|
|
||||||
- drivers/scsi/myrs.ko: modules-core
|
|
||||||
- drivers/scsi/raid_class.ko: modules-core
|
|
||||||
- drivers/scsi/scsi_debug.ko: modules-core
|
|
||||||
- drivers/scsi/scsi_transport_.*: modules-core
|
|
||||||
- drivers/scsi/ses.ko: modules-core
|
|
||||||
- drivers/scsi/smartpqi/.*: modules-core
|
|
||||||
- drivers/scsi/snic/.*: modules-core
|
|
||||||
- drivers/scsi/st.ko: modules-core
|
|
||||||
- drivers/scsi/stex.ko: modules-core
|
|
||||||
- drivers/scsi/virtio_scsi.ko: modules-core
|
|
||||||
- drivers/scsi/vmw_pvscsi.ko: modules-core
|
|
||||||
- drivers/scsi/wd719x.ko: modules-core
|
|
||||||
- drivers/scsi/xen-scsifront.ko: modules-core
|
|
||||||
|
|
||||||
- drivers/slimbus/.*: modules-core
|
|
||||||
- drivers/soc/.*: modules-core
|
|
||||||
- drivers/spi/spi-altera-dfl.*: modules
|
|
||||||
- drivers/spi/spi-dln2.*: modules-extra
|
|
||||||
- drivers/spi/spi-ljca.*: modules
|
|
||||||
- drivers/spi/.*: modules-core
|
|
||||||
- drivers/spmi/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/target/iscsi/cxgbit/cxgbit.*: modules
|
|
||||||
- drivers/target/sbp/sbp_target.*: modules
|
|
||||||
- drivers/target/target_core_user.*: modules
|
|
||||||
- drivers/target/.*: modules-core
|
|
||||||
- drivers/tee/.*: modules-core
|
|
||||||
- drivers/thermal/intel/int340x_thermal/int3406_thermal.*: modules
|
|
||||||
- drivers/thermal/.*: modules-core
|
|
||||||
- drivers/thunderbolt/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/ufs/.*: modules-core
|
|
||||||
- drivers/usb/atm/.*: modules
|
|
||||||
- drivers/usb/gadget/function/usb_f_midi2.*: modules
|
|
||||||
- drivers/usb/image/.*: modules
|
|
||||||
- drivers/usb/misc/trancevibrator.*: modules-extra
|
|
||||||
- drivers/usb/misc/.*: modules
|
|
||||||
- drivers/usb/serial/.*: modules
|
|
||||||
- drivers/usb/typec/mux/nb7vpq904m.*: modules
|
|
||||||
- drivers/usb/usbip/.*: modules-extra
|
|
||||||
- drivers/usb/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/vdpa/mlx5/mlx5_vdpa.*: modules
|
|
||||||
- drivers/vdpa/pds/pds_vdpa.*: modules
|
|
||||||
- drivers/vdpa/.*: modules-core
|
|
||||||
- drivers/vfio/pci/mlx5/mlx5-vfio-pci.*: modules
|
|
||||||
- drivers/vfio/pci/pds/pds-vfio-pc.*: modules
|
|
||||||
- drivers/vfio/.*: modules-core
|
|
||||||
- drivers/vhost/.*: modules-core
|
|
||||||
- drivers/video/backlight/apple_bl.*: modules
|
|
||||||
- drivers/video/.*: modules-core
|
|
||||||
- drivers/virt/.*: modules-core
|
|
||||||
- drivers/virtio/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/watchdog/iTCO_wdt.*: modules
|
|
||||||
- drivers/watchdog/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/xen/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/w1/masters/ds2482.*: modules-extra
|
|
||||||
- drivers/w1/masters/ds2490.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2408.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2423.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2431.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2433.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2780.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2781.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds28e04.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_smem.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_therm.*: modules-extra
|
|
||||||
|
|
||||||
- fs/9p/.*: modules-core
|
|
||||||
- fs/afs/.*: modules-core
|
|
||||||
- fs/affs/affs.*: modules-extra
|
|
||||||
- fs/bcachefs/.*: modules-core
|
|
||||||
- fs/befs/befs.*: modules-extra
|
|
||||||
- fs/binfmt_misc.ko: modules-core
|
|
||||||
- fs/cachefiles/.*: modules-core
|
|
||||||
- fs/ceph/.*: modules-core
|
|
||||||
- fs/coda/coda.*: modules-extra
|
|
||||||
- fs/dlm/.*: modules-extra
|
|
||||||
- fs/erofs/.*: modules-core
|
|
||||||
- fs/exfat/.*: modules-core
|
|
||||||
- fs/f2fs/.*: modules-core
|
|
||||||
- fs/fat/.*: modules-core
|
|
||||||
- fs/fuse/cuse.*: modules-extra
|
|
||||||
- fs/fuse/.*: modules-core
|
|
||||||
- fs/gfs2/.*: modules-extra
|
|
||||||
- fs/isofs/.*: modules-core
|
|
||||||
- fs/lockd/.*: modules-core
|
|
||||||
- fs/netfs/.*: modules-core
|
|
||||||
- fs/nfs.*: modules-core
|
|
||||||
- fs/nilfs2/nilfs2.*: modules-extra
|
|
||||||
- fs/nls/.*: modules-core
|
|
||||||
- fs/ntfs3/.*: modules-core
|
|
||||||
- fs/ocfs2/.*: modules-extra
|
|
||||||
- fs/orangefs/.*: modules-core
|
|
||||||
- fs/overlayfs/.*: modules-core
|
|
||||||
- fs/pstore/.*: modules-core
|
|
||||||
- fs/smb/.*: modules-core
|
|
||||||
- fs/squashfs/.*: modules-core
|
|
||||||
- fs/sysv/.*: modules-extra
|
|
||||||
- fs/ubifs/.*: modules-extra
|
|
||||||
- fs/udf/.*: modules-core
|
|
||||||
- fs/ufs/.*: modules-extra
|
|
||||||
- fs/vboxsf/.*: modules-core
|
|
||||||
- fs/xfs/.*: modules-core
|
|
||||||
- fs/zonefs/.*: modules-core
|
|
||||||
|
|
||||||
- kernel/locking/locktorture.*: modules-internal
|
|
||||||
- kernel/rcu/rcuscale.*: modules-internal
|
|
||||||
- kernel/rcu/rcutorture.*: modules-internal
|
|
||||||
- kernel/rcu/refscale.*: modules-internal
|
|
||||||
- kernel/scftorture.*: modules-internal
|
|
||||||
- kernel/torture.*: modules-internal
|
|
||||||
- kernel/.*: modules-core
|
|
||||||
|
|
||||||
- lib/.*: modules-core
|
|
||||||
|
|
||||||
- net/802/.*: modules-core
|
|
||||||
- net/8021q/.*: modules-core
|
|
||||||
- net/9p/9pnet_rdma.ko: modules
|
|
||||||
- net/9p/.*: modules-core
|
|
||||||
- net/appletalk/appletalk.*: modules-extra
|
|
||||||
- net/atm/br2684.*: modules-extra
|
|
||||||
- net/atm/clip.*: modules-extra
|
|
||||||
- net/atm/lec.*: modules-extra
|
|
||||||
- net/atm/pppoatm.*: modules-extra
|
|
||||||
- net/ax25/ax25.*: modules-extra
|
|
||||||
- net/batman-adv/batman-adv.*: modules-extra
|
|
||||||
- net/bridge/.*: modules-core
|
|
||||||
- net/ceph/.*: modules-core
|
|
||||||
- net/core/pktgen.*: modules-internal
|
|
||||||
- net/core/.*: modules-core
|
|
||||||
- net/dns_resolver/.*: modules-core
|
|
||||||
- net/hsr/.*: modules-core
|
|
||||||
- net/ife/.*: modules-core
|
|
||||||
- net/ipv4/tcp_bic.*: modules-extra
|
|
||||||
- net/ipv4/tcp_highspeed.*: modules-extra
|
|
||||||
- net/ipv4/tcp_htcp.*: modules-extra
|
|
||||||
- net/ipv4/tcp_hybla.*: modules-extra
|
|
||||||
- net/ipv4/tcp_illinois.*: modules-extra
|
|
||||||
- net/ipv4/tcp_lp.*: modules-extra
|
|
||||||
- net/ipv4/tcp_scalable.*: modules-extra
|
|
||||||
- net/ipv4/tcp_vegas.*: modules-extra
|
|
||||||
- net/ipv4/tcp_veno.*: modules-extra
|
|
||||||
- net/ipv4/tcp_westwood.*: modules-extra
|
|
||||||
- net/ipv4/tcp_yeah.*: modules-extra
|
|
||||||
- net/ipv4/.*: modules-core
|
|
||||||
- net/ipv6/.*: modules-core
|
|
||||||
- net/iucv/.*: modules-core
|
|
||||||
- net/kcm/.*: modules-core
|
|
||||||
- net/key/.*: modules-core
|
|
||||||
- net/l2tp/l2tp_debugfs.*: modules-extra
|
|
||||||
- net/l2tp/l2tp_eth.*: modules-extra
|
|
||||||
- net/l2tp/l2tp_netlink.*: modules-extra
|
|
||||||
- net/l2tp/l2tp_ppp.*: modules-extra
|
|
||||||
- net/llc/.*: modules-core
|
|
||||||
- net/netfilter/.*: modules-core
|
|
||||||
- net/netrom/netrom.*: modules-extra
|
|
||||||
- net/nsh/.*: modules-core
|
|
||||||
- net/openvswitch/.*: modules-core
|
|
||||||
- net/psample/.*: modules-core
|
|
||||||
- net/qrtr/.*: modules-core
|
|
||||||
- net/rds/rds.*: modules-extra
|
|
||||||
- net/rose/rose.*: modules-extra
|
|
||||||
- net/rxrpc/.*: modules-core
|
|
||||||
- net/sched/.*: modules-core
|
|
||||||
- net/sunrpc/xprtrdma/rpcrdma.*: modules
|
|
||||||
- net/sunrpc/.*: modules-core
|
|
||||||
- net/tipc/.*: modules-core
|
|
||||||
- net/tls/.*: modules-core
|
|
||||||
- net/vmw_vsock/.*: modules-core
|
|
||||||
- net/xdp/.*: modules-core
|
|
||||||
- net/xfrm/.*: modules-core
|
|
||||||
|
|
||||||
- virt/.*: modules-core
|
|
||||||
|
|
||||||
- default: modules
|
|
||||||
|
|
@ -1,486 +0,0 @@
|
||||||
packages:
|
|
||||||
- name: modules-core
|
|
||||||
depends-on: []
|
|
||||||
- name: modules
|
|
||||||
depends-on:
|
|
||||||
- modules-core
|
|
||||||
- name: modules-internal
|
|
||||||
depends-on:
|
|
||||||
- modules-core
|
|
||||||
- modules
|
|
||||||
- name: modules-extra
|
|
||||||
depends-on:
|
|
||||||
- modules-core
|
|
||||||
- modules
|
|
||||||
- name: modules-partner
|
|
||||||
depends-on:
|
|
||||||
- modules-core
|
|
||||||
- modules
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- .*kunit.*: modules-internal
|
|
||||||
exact_pkg: True
|
|
||||||
- .*test[^/]*.ko: modules-internal
|
|
||||||
|
|
||||||
- arch/.*: modules-core
|
|
||||||
- block/t10-pi.ko: modules-core
|
|
||||||
- crypto/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/accel/.*: modules-core
|
|
||||||
- drivers/accessibility/.*: modules-core
|
|
||||||
- drivers/acpi/video.*: modules
|
|
||||||
- drivers/acpi/.*: modules-core
|
|
||||||
- drivers/ata/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/base/regmap/regmap-sdw.*: modules
|
|
||||||
- drivers/base/.*: modules-core
|
|
||||||
- drivers/block/floppy.*: modules-extra
|
|
||||||
- drivers/block/rnbd.*: modules
|
|
||||||
- drivers/block/.*: modules-core
|
|
||||||
- drivers/bus/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/cdrom/.*: modules-core
|
|
||||||
- drivers/cdx/.*: modules-core
|
|
||||||
- drivers/char/mwave.*: modules
|
|
||||||
- drivers/char/.*: modules-core
|
|
||||||
- drivers/clk/.*: modules-core
|
|
||||||
- drivers/counter/.*: modules-core
|
|
||||||
- drivers/cpufreq/amd-pstate-ut.ko: modules-internal
|
|
||||||
- drivers/cpufreq/.*: modules-core
|
|
||||||
- drivers/crypto/caam/.*: modules
|
|
||||||
- drivers/crypto/cavium/.*: modules
|
|
||||||
- drivers/crypto/chelsio/.*: modules
|
|
||||||
- drivers/crypto/hisilicon/.*: modules
|
|
||||||
- drivers/crypto/marvell/.*: modules
|
|
||||||
- drivers/crypto/.*: modules-core
|
|
||||||
- drivers/cxl/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/dax/.*: modules-core
|
|
||||||
- drivers/dca/.*: modules-core
|
|
||||||
- drivers/devfreq/.*: modules-core
|
|
||||||
- drivers/dma/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/edac/.*: modules-core
|
|
||||||
- drivers/extcon/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/firmware/iscsi_ibft.*: modules
|
|
||||||
- drivers/firmware/.*: modules-core
|
|
||||||
- drivers/fsi/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/gnss/.*: modules-core
|
|
||||||
- drivers/gpio/gpio-dln2.*: modules-extra
|
|
||||||
- drivers/gpio/gpio-ljca.*: modules
|
|
||||||
- drivers/gpio/.*: modules-core
|
|
||||||
- drivers/gpu/drm/display/drm_.*: modules-core
|
|
||||||
- drivers/gpu/drm/drm.*: modules-core
|
|
||||||
- drivers/gpu/drm/etnaviv/.*: modules-core
|
|
||||||
- drivers/gpu/drm/gud/.*: modules-core
|
|
||||||
- drivers/gpu/drm/hyperv/.*: modules-core
|
|
||||||
- drivers/gpu/drm/imagination/.*: modules-core
|
|
||||||
- drivers/gpu/drm/lima/.*: modules-core
|
|
||||||
- drivers/gpu/drm/mxsfb/.*: modules-core
|
|
||||||
- drivers/gpu/drm/panfrost/.*: modules-core
|
|
||||||
- drivers/gpu/drm/qxl/.*: modules-core
|
|
||||||
- drivers/gpu/drm/scheduler/.*: modules-core
|
|
||||||
- drivers/gpu/drm/solomon/.*: modules-core
|
|
||||||
- drivers/gpu/drm/tidss/.*: modules-core
|
|
||||||
- drivers/gpu/drm/tiny/.*: modules-core
|
|
||||||
- drivers/gpu/drm/ttm/.*: modules-core
|
|
||||||
- drivers/gpu/drm/udl/.*: modules-core
|
|
||||||
- drivers/gpu/drm/v3d/.*: modules-core
|
|
||||||
- drivers/gpu/drm/vgem/.*: modules-core
|
|
||||||
- drivers/gpu/drm/virtio/.*: modules-core
|
|
||||||
- drivers/gpu/drm/vkms/.*: modules-core
|
|
||||||
- drivers/gpu/drm/vmwgfx/.*: modules-core
|
|
||||||
- drivers/gpu/drm/xlnx/.*: modules-core
|
|
||||||
- drivers/gpu/host1x/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/hid/hid-asus.*: modules
|
|
||||||
- drivers/hid/hid-nintendo.*: modules
|
|
||||||
- drivers/hid/hid-picolcd.*: modules
|
|
||||||
- drivers/hid/hid-playstation.*: modules
|
|
||||||
- drivers/hid/surface-hid.*: modules
|
|
||||||
- drivers/hid/hid-prodikeys.*: modules
|
|
||||||
- drivers/hid/.*: modules-core
|
|
||||||
- drivers/hte/.*: modules-core
|
|
||||||
- drivers/hv/.*: modules-core
|
|
||||||
- drivers/hwmon/asus_wmi_sensors.*: modules
|
|
||||||
- drivers/hwmon/dell-smm-hwmon.*: modules
|
|
||||||
- drivers/hwmon/hp-wmi-sensors.*: modules
|
|
||||||
- drivers/hwmon/intel-m10-bmc-hwmon.*: modules
|
|
||||||
- drivers/hwmon/nct6775.*: modules
|
|
||||||
- drivers/hwmon/ntc_thermistor.*: modules
|
|
||||||
- drivers/hwmon/.*: modules-core
|
|
||||||
- drivers/hwspinlock/.*: modules-core
|
|
||||||
- drivers/hwtracing/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/i2c/busses/i2c-dln2.*: modules-extra
|
|
||||||
- drivers/i2c/busses/i2c-ljca.*: modules
|
|
||||||
- drivers/i2c/.*: modules-core
|
|
||||||
- drivers/i3c/.*: modules-core
|
|
||||||
- drivers/iio/adc/dln2-adc.*: modules-extra
|
|
||||||
- drivers/input/gameport/.*: modules
|
|
||||||
- drivers/input/joystick/.*: modules-extra
|
|
||||||
- drivers/input/tablet/.*: modules
|
|
||||||
- drivers/input/touchscreen/.*: modules
|
|
||||||
- drivers/input/.*: modules-core
|
|
||||||
- drivers/interconnect/.*: modules-core
|
|
||||||
- drivers/iommu/.*: modules-core
|
|
||||||
- drivers/irqchip/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/mailbox/.*: modules-core
|
|
||||||
- drivers/md/.*: modules-core
|
|
||||||
- drivers/memory/dfl-emif.*: modules
|
|
||||||
- drivers/memory/.*: modules-core
|
|
||||||
- drivers/message/fusion/mptctl.*: modules-extra
|
|
||||||
- drivers/message/fusion/mptfc.*: modules-extra
|
|
||||||
- drivers/message/fusion/.*: modules
|
|
||||||
- drivers/message/.*: modules-core
|
|
||||||
- drivers/mfd/dln2.*: modules-extra
|
|
||||||
- drivers/misc/.*: modules-core
|
|
||||||
- drivers/mux/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/net/amt.ko: modules-core
|
|
||||||
- drivers/net/bareudp.ko: modules-core
|
|
||||||
- drivers/net/bonding/.*: modules-core
|
|
||||||
- drivers/net/can/slcan/slcan.*: modules-extra
|
|
||||||
- drivers/net/can/usb/ems_usb.*: modules-extra
|
|
||||||
- drivers/net/can/vcan.*: modules-extra
|
|
||||||
- drivers/net/dummy.ko: modules-core
|
|
||||||
- drivers/net/eql.ko: modules-core
|
|
||||||
|
|
||||||
- drivers/net/ethernet/8390/.*: modules-core
|
|
||||||
- drivers/net/ethernet/adi/.*: modules-core
|
|
||||||
- drivers/net/ethernet/agere/.*: modules-core
|
|
||||||
- drivers/net/ethernet/altera/.*: modules-core
|
|
||||||
- drivers/net/ethernet/amazon/.*: modules-core
|
|
||||||
- drivers/net/ethernet/amd/.*: modules-core
|
|
||||||
- drivers/net/ethernet/apm/.*: modules-core
|
|
||||||
- drivers/net/ethernet/asix/.*: modules-core
|
|
||||||
- drivers/net/ethernet/brocade/.*: modules-core
|
|
||||||
- drivers/net/ethernet/cavium/.*: modules-core
|
|
||||||
- drivers/net/ethernet/dnet.ko: modules-core
|
|
||||||
- drivers/net/ethernet/engleder/.*: modules-core
|
|
||||||
- drivers/net/ethernet/ethoc.ko: modules-core
|
|
||||||
- drivers/net/ethernet/fealnx.ko: modules-core
|
|
||||||
- drivers/net/ethernet/freescale/.*: modules-core
|
|
||||||
- drivers/net/ethernet/fungible/.*: modules-core
|
|
||||||
- drivers/net/ethernet/google/.*: modules-core
|
|
||||||
- drivers/net/ethernet/hisilicon/.*: modules-core
|
|
||||||
- drivers/net/ethernet/huawei/.*: modules-core
|
|
||||||
- drivers/net/ethernet/ibm/.*: modules-core
|
|
||||||
- drivers/net/ethernet/intel/.*: modules-core
|
|
||||||
- drivers/net/ethernet/jme.ko: modules-core
|
|
||||||
- drivers/net/ethernet/litex/.*: modules-core
|
|
||||||
- drivers/net/ethernet/mellanox/.*: modules-core
|
|
||||||
- drivers/net/ethernet/microsoft/.*: modules-core
|
|
||||||
- drivers/net/ethernet/myricom/.*: modules-core
|
|
||||||
- drivers/net/ethernet/natsemi/.*: modules-core
|
|
||||||
- drivers/net/ethernet/netronome/.*: modules-core
|
|
||||||
- drivers/net/ethernet/pensando/.*: modules-core
|
|
||||||
- drivers/net/ethernet/rocker/rocker.*: modules-internal
|
|
||||||
- drivers/net/ethernet/qualcomm/.*: modules-core
|
|
||||||
- drivers/net/ethernet/realtek/.*: modules-core
|
|
||||||
- drivers/net/ethernet/renesas/.*: modules-core
|
|
||||||
- drivers/net/ethernet/socionext/.*: modules-core
|
|
||||||
- drivers/net/ethernet/vertexcom/.*: modules-core
|
|
||||||
- drivers/net/ethernet/wangxun/.*: modules-core
|
|
||||||
- drivers/net/ethernet/xilinx/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/net/fjes/.*: modules-core
|
|
||||||
- drivers/net/geneve.ko: modules-core
|
|
||||||
- drivers/net/gtp.ko: modules-core
|
|
||||||
- drivers/net/hamradio/.*: modules-extra
|
|
||||||
- drivers/net/hyperv/.*: modules-core
|
|
||||||
- drivers/net/ifb.ko: modules-core
|
|
||||||
- drivers/net/ipa/.*: modules-core
|
|
||||||
- drivers/net/ipvlan/.*: modules-core
|
|
||||||
- drivers/net/macsec.ko: modules-core
|
|
||||||
- drivers/net/macvlan.ko: modules-core
|
|
||||||
- drivers/net/macvtap.ko: modules-core
|
|
||||||
- drivers/net/mctp/.*: modules-core
|
|
||||||
- drivers/net/mdio.*: modules-core
|
|
||||||
- drivers/net/mhi_net.ko: modules-core
|
|
||||||
- drivers/net/mii.ko: modules-core
|
|
||||||
- drivers/net/net_failover.ko: modules-core
|
|
||||||
- drivers/net/netdevsim/netdevsim.*: modules-internal
|
|
||||||
- drivers/net/netconsole.ko: modules-core
|
|
||||||
- drivers/net/nlmon.ko: modules-core
|
|
||||||
- drivers/net/pcs/.*: modules-core
|
|
||||||
- drivers/net/phy/.*: modules-core
|
|
||||||
- drivers/net/rionet.ko: modules-core
|
|
||||||
- drivers/net/slip/slip.*: modules-extra
|
|
||||||
- drivers/net/sungem_phy.ko: modules-core
|
|
||||||
- drivers/net/tap.ko: modules-core
|
|
||||||
- drivers/net/team/.*: modules-core
|
|
||||||
- drivers/net/thunderbolt/.*: modules-core
|
|
||||||
- drivers/net/tun.ko: modules-core
|
|
||||||
- drivers/net/veth.ko: modules-core
|
|
||||||
- drivers/net/virtio_net.ko: modules-core
|
|
||||||
- drivers/net/vmxnet3/.*: modules-core
|
|
||||||
- drivers/net/vrf.ko: modules-core
|
|
||||||
- drivers/net/vsockmon.ko: modules-core
|
|
||||||
- drivers/net/vxlan/.*: modules-core
|
|
||||||
- drivers/net/wan/hdlc.*: modules-core
|
|
||||||
- drivers/net/wireguard/.*: modules-core
|
|
||||||
- drivers/net/wireless/virtual/mac80211_hwsim.*: modules-internal
|
|
||||||
- drivers/net/wwan/wwan_hwsim.*: modules-internal
|
|
||||||
- drivers/net/wwan/.*: modules-core
|
|
||||||
- drivers/net/xen.*: modules-core
|
|
||||||
|
|
||||||
- drivers/nvdimm/.*: modules-core
|
|
||||||
- drivers/nvme/host/nvme-rdma.*: modules
|
|
||||||
- drivers/nvme/target/nvmet-rdma.*: modules
|
|
||||||
- drivers/nvme/.*: modules-core
|
|
||||||
- drivers/nvmem/nvmem_u-boot-env.*: modules
|
|
||||||
- drivers/nvmem/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/parport/parport_serial.*: modules
|
|
||||||
- drivers/parport/.*: modules-core
|
|
||||||
- drivers/pci/pcie/aer_inject.*: modules-extra
|
|
||||||
- drivers/pci/.*: modules-core
|
|
||||||
- drivers/perf/.*: modules-core
|
|
||||||
- drivers/phy/.*: modules-core
|
|
||||||
- drivers/pinctrl/.*: modules-core
|
|
||||||
- drivers/platform/x86/intel/intel_vsec.*: modules-core
|
|
||||||
- drivers/pmdomain/.*: modules-core
|
|
||||||
- drivers/powercap/intel_rapl_tpmi.*: modules
|
|
||||||
- drivers/powercap/.*: modules-core
|
|
||||||
- drivers/pps/.*: modules-core
|
|
||||||
- drivers/ptp/ptp_mock.*: modules-internal
|
|
||||||
- drivers/ptp/ptp_dfl_tod.*: modules
|
|
||||||
- drivers/ptp/.*: modules-core
|
|
||||||
- drivers/pwm/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/rapidio/.*: modules-core
|
|
||||||
- drivers/regulator/arizona-micsupp.*: modules
|
|
||||||
- drivers/regulator/.*: modules-core
|
|
||||||
- drivers/remoteproc/.*: modules-core
|
|
||||||
- drivers/reset/.*: modules-core
|
|
||||||
- drivers/rpmsg/.*: modules-core
|
|
||||||
- drivers/rtc/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/s390/net/ism.*: modules
|
|
||||||
- drivers/s390/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/scsi/3w.*: modules-core
|
|
||||||
- drivers/scsi/BusLogic.ko: modules-core
|
|
||||||
- drivers/scsi/a100u2w.ko: modules-core
|
|
||||||
- drivers/scsi/advansys.ko: modules-core
|
|
||||||
- drivers/scsi/am53c974.ko: modules-core
|
|
||||||
- drivers/scsi/arcmsr.*: modules-core
|
|
||||||
- drivers/scsi/atp870u.ko: modules-core
|
|
||||||
- drivers/scsi/ch.ko: modules-core
|
|
||||||
- drivers/scsi/cxlflash/.*: modules-core
|
|
||||||
- drivers/scsi/dc395x.ko: modules-core
|
|
||||||
- drivers/scsi/device_handler/.*: modules-core
|
|
||||||
- drivers/scsi/dmx3191d.ko: modules-core
|
|
||||||
- drivers/scsi/elx/.*: modules-core
|
|
||||||
- drivers/scsi/esp_scsi.ko: modules-core
|
|
||||||
- drivers/scsi/fdomain.*: modules-core
|
|
||||||
- drivers/scsi/hpsa.ko: modules-core
|
|
||||||
- drivers/scsi/hptiop.ko: modules-core
|
|
||||||
- drivers/scsi/hv_storvsc.ko: modules-core
|
|
||||||
- drivers/scsi/ibmvscsi.*: modules-core
|
|
||||||
- drivers/scsi/initio.ko: modules-core
|
|
||||||
- drivers/scsi/ipr.ko: modules-core
|
|
||||||
- drivers/scsi/ips.ko: modules-core
|
|
||||||
- drivers/scsi/iscsi_tcp.ko: modules-core
|
|
||||||
- drivers/scsi/libfc/.*: modules-core
|
|
||||||
- drivers/scsi/libiscsi.*: modules-core
|
|
||||||
- drivers/scsi/mpi3mr/.*: modules-core
|
|
||||||
- drivers/scsi/mvumi.ko: modules-core
|
|
||||||
- drivers/scsi/myrb.ko: modules-core
|
|
||||||
- drivers/scsi/myrs.ko: modules-core
|
|
||||||
- drivers/scsi/raid_class.ko: modules-core
|
|
||||||
- drivers/scsi/scsi_debug.ko: modules-core
|
|
||||||
- drivers/scsi/scsi_transport_.*: modules-core
|
|
||||||
- drivers/scsi/sd_mod.ko: modules-core
|
|
||||||
- drivers/scsi/ses.ko: modules-core
|
|
||||||
- drivers/scsi/sg.ko: modules-core
|
|
||||||
- drivers/scsi/smartpqi/.*: modules-core
|
|
||||||
- drivers/scsi/snic/.*: modules-core
|
|
||||||
- drivers/scsi/sr_mod.ko: modules-core
|
|
||||||
- drivers/scsi/st.ko: modules-core
|
|
||||||
- drivers/scsi/stex.ko: modules-core
|
|
||||||
- drivers/scsi/virtio_scsi.ko: modules-core
|
|
||||||
- drivers/scsi/vmw_pvscsi.ko: modules-core
|
|
||||||
- drivers/scsi/wd719x.ko: modules-core
|
|
||||||
- drivers/scsi/xen-scsifront.ko: modules-core
|
|
||||||
|
|
||||||
- drivers/slimbus/.*: modules-core
|
|
||||||
- drivers/soc/.*: modules-core
|
|
||||||
- drivers/spi/spi-altera-dfl.*: modules
|
|
||||||
- drivers/spi/spi-dln2.*: modules-extra
|
|
||||||
- drivers/spi/spi-ljca.*: modules
|
|
||||||
- drivers/spi/.*: modules-core
|
|
||||||
- drivers/spmi/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/target/iscsi/cxgbit/cxgbit.*: modules
|
|
||||||
- drivers/target/sbp/sbp_target.*: modules
|
|
||||||
- drivers/target/target_core_user.*: modules
|
|
||||||
- drivers/target/.*: modules-core
|
|
||||||
- drivers/tee/.*: modules-core
|
|
||||||
- drivers/thermal/intel/int340x_thermal/int3406_thermal.*: modules
|
|
||||||
- drivers/thermal/.*: modules-core
|
|
||||||
- drivers/thunderbolt/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/ufs/.*: modules-core
|
|
||||||
- drivers/usb/atm/.*: modules
|
|
||||||
- drivers/usb/gadget/function/usb_f_midi2.*: modules
|
|
||||||
- drivers/usb/image/.*: modules
|
|
||||||
- drivers/usb/misc/trancevibrator.*: modules-extra
|
|
||||||
- drivers/usb/misc/.*: modules
|
|
||||||
- drivers/usb/serial/.*: modules
|
|
||||||
- drivers/usb/typec/mux/nb7vpq904m.*: modules
|
|
||||||
- drivers/usb/usbip/.*: modules-internal
|
|
||||||
- drivers/usb/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/vdpa/mlx5/mlx5_vdpa.*: modules
|
|
||||||
- drivers/vdpa/pds/pds_vdpa.*: modules
|
|
||||||
- drivers/vdpa/.*: modules-core
|
|
||||||
- drivers/vfio/pci/mlx5/mlx5-vfio-pci.*: modules
|
|
||||||
- drivers/vfio/pci/pds/pds-vfio-pc.*: modules
|
|
||||||
- drivers/vfio/.*: modules-core
|
|
||||||
- drivers/vhost/.*: modules-core
|
|
||||||
- drivers/video/backlight/apple_bl.*: modules
|
|
||||||
- drivers/video/.*: modules-core
|
|
||||||
- drivers/virt/.*: modules-core
|
|
||||||
- drivers/virtio/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/watchdog/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/xen/.*: modules-core
|
|
||||||
|
|
||||||
- drivers/w1/masters/ds2482.*: modules-extra
|
|
||||||
- drivers/w1/masters/ds2490.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2408.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2423.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2431.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2433.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2780.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds2781.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_ds28e04.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_smem.*: modules-extra
|
|
||||||
- drivers/w1/slaves/w1_therm.*: modules-extra
|
|
||||||
|
|
||||||
- fs/9p/.*: modules-core
|
|
||||||
- fs/afs/.*: modules-partner
|
|
||||||
- fs/affs/affs.*: modules-extra
|
|
||||||
- fs/bcachefs/.*: modules-core
|
|
||||||
- fs/befs/befs.*: modules-extra
|
|
||||||
- fs/binfmt_misc.ko: modules-core
|
|
||||||
- fs/cachefiles/.*: modules-core
|
|
||||||
- fs/ceph/.*: modules-core
|
|
||||||
- fs/coda/coda.*: modules-extra
|
|
||||||
- fs/dlm/.*: modules-core
|
|
||||||
- fs/erofs/.*: modules-core
|
|
||||||
- fs/exfat/.*: modules-core
|
|
||||||
- fs/ext4/.*: modules-core
|
|
||||||
- fs/f2fs/.*: modules-core
|
|
||||||
- fs/fat/.*: modules-core
|
|
||||||
- fs/fuse/cuse.*: modules-extra
|
|
||||||
- fs/fuse/.*: modules-core
|
|
||||||
- fs/gfs2/.*: modules-core
|
|
||||||
- fs/isofs/.*: modules-core
|
|
||||||
- fs/jbd2/.*: modules-core
|
|
||||||
- fs/lockd/.*: modules-core
|
|
||||||
- fs/mbcache.ko: modules-core
|
|
||||||
- fs/netfs/.*: modules-core
|
|
||||||
- fs/nfs.*: modules-core
|
|
||||||
- fs/nilfs2/nilfs2.*: modules-extra
|
|
||||||
- fs/nls/.*: modules-core
|
|
||||||
- fs/ntfs3/.*: modules-core
|
|
||||||
- fs/ocfs2/.*: modules-extra
|
|
||||||
- fs/orangefs/.*: modules-core
|
|
||||||
- fs/overlayfs/.*: modules-core
|
|
||||||
- fs/pstore/.*: modules-core
|
|
||||||
- fs/sysv/.*: modules-extra
|
|
||||||
- fs/ubifs/.*: modules-extra
|
|
||||||
- fs/udf/.*: modules-core
|
|
||||||
- fs/ufs/.*: modules-extra
|
|
||||||
- fs/vboxsf/.*: modules-core
|
|
||||||
- fs/xfs/.*: modules-core
|
|
||||||
- fs/zonefs/.*: modules-core
|
|
||||||
|
|
||||||
- kernel/locking/locktorture.*: modules-internal
|
|
||||||
- kernel/rcu/rcuscale.*: modules-internal
|
|
||||||
- kernel/rcu/rcutorture.*: modules-internal
|
|
||||||
- kernel/rcu/refscale.*: modules-internal
|
|
||||||
- kernel/scftorture.*: modules-internal
|
|
||||||
- kernel/torture.*: modules-internal
|
|
||||||
- kernel/.*: modules-core
|
|
||||||
|
|
||||||
- lib/.*: modules-core
|
|
||||||
|
|
||||||
- mm/zsmalloc.ko: modules-core
|
|
||||||
|
|
||||||
- net/802/.*: modules-core
|
|
||||||
- net/8021q/.*: modules-core
|
|
||||||
- net/9p/9pnet_rdma.ko: modules
|
|
||||||
- net/9p/.*: modules-core
|
|
||||||
- net/appletalk/appletalk.*: modules-extra
|
|
||||||
- net/atm/br2684.*: modules-extra
|
|
||||||
- net/atm/clip.*: modules-extra
|
|
||||||
- net/atm/lec.*: modules-extra
|
|
||||||
- net/atm/pppoatm.*: modules-extra
|
|
||||||
- net/ax25/ax25.*: modules-extra
|
|
||||||
- net/batman-adv/batman-adv.*: modules-extra
|
|
||||||
- net/bridge/br_netfilter.*: modules-extra
|
|
||||||
- net/bridge/netfilter/ebt.*: modules-extra
|
|
||||||
- net/bridge/.*: modules-core
|
|
||||||
- net/ceph/.*: modules-core
|
|
||||||
- net/core/pktgen.*: modules-internal
|
|
||||||
- net/core/.*: modules-core
|
|
||||||
- net/dns_resolver/.*: modules-core
|
|
||||||
- net/hsr/.*: modules-core
|
|
||||||
- net/ife/.*: modules-core
|
|
||||||
- net/ipv4/netfilter/arp.*: modules-extra
|
|
||||||
- net/ipv4/netfilter/ip[_t].*: modules-extra
|
|
||||||
- net/ipv4/tcp_bic.*: modules-extra
|
|
||||||
- net/ipv4/tcp_highspeed.*: modules-extra
|
|
||||||
- net/ipv4/tcp_htcp.*: modules-extra
|
|
||||||
- net/ipv4/tcp_hybla.*: modules-extra
|
|
||||||
- net/ipv4/tcp_illinois.*: modules-extra
|
|
||||||
- net/ipv4/tcp_lp.*: modules-extra
|
|
||||||
- net/ipv4/tcp_scalable.*: modules-extra
|
|
||||||
- net/ipv4/tcp_vegas.*: modules-extra
|
|
||||||
- net/ipv4/tcp_veno.*: modules-extra
|
|
||||||
- net/ipv4/tcp_westwood.*: modules-extra
|
|
||||||
- net/ipv4/tcp_yeah.*: modules-extra
|
|
||||||
- net/ipv4/.*: modules-core
|
|
||||||
- net/ipv6/netfilter/ebt.*: modules-extra
|
|
||||||
- net/ipv6/netfilter/ip6[_t].*: modules-extra
|
|
||||||
- net/ipv6/.*: modules-core
|
|
||||||
- net/iucv/.*: modules-core
|
|
||||||
- net/kcm/.*: modules-core
|
|
||||||
- net/key/.*: modules-core
|
|
||||||
- net/l2tp/.*: modules-extra
|
|
||||||
- net/llc/.*: modules-core
|
|
||||||
- net/netfilter/ipset/.*: modules-extra
|
|
||||||
- net/netfilter/nft_compat.*: modules-extra
|
|
||||||
- net/netfilter/xt_.*: modules-extra
|
|
||||||
- net/netfilter/.*: modules-core
|
|
||||||
- net/netrom/netrom.*: modules-extra
|
|
||||||
- net/nsh/.*: modules-core
|
|
||||||
- net/openvswitch/.*: modules-core
|
|
||||||
- net/psample/.*: modules-core
|
|
||||||
- net/qrtr/.*: modules-core
|
|
||||||
- net/rds/rds.*: modules-extra
|
|
||||||
- net/rose/rose.*: modules-extra
|
|
||||||
- net/rxrpc/.*: modules-partner
|
|
||||||
- net/sched/.*: modules-core
|
|
||||||
- net/sctp/.*: modules-extra
|
|
||||||
- net/sunrpc/xprtrdma/rpcrdma.*: modules
|
|
||||||
- net/sunrpc/.*: modules-core
|
|
||||||
- net/tipc/.*: modules-extra
|
|
||||||
- net/tls/.*: modules-core
|
|
||||||
- net/vmw_vsock/.*: modules-core
|
|
||||||
- net/xdp/.*: modules-core
|
|
||||||
- net/xfrm/.*: modules-core
|
|
||||||
|
|
||||||
- samples/.*: modules-internal
|
|
||||||
|
|
||||||
- virt/.*: modules-core
|
|
||||||
|
|
||||||
- default: modules
|
|
||||||
29
dell-wmi-add-support-for-eject-key.patch
Normal file
29
dell-wmi-add-support-for-eject-key.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
From: Islam Amer <pharon@gmail.com>
|
||||||
|
Date: Thu, 24 Jun 2010 17:39:47 +0000 (-0400)
|
||||||
|
Subject: dell-wmi: Add support for eject key on Dell Studio 1555
|
||||||
|
X-Git-Tag: v2.6.36-rc1~579^2~64
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=d5164dbf1f651d1e955b158fb70a9c844cc91cd1
|
||||||
|
|
||||||
|
dell-wmi: Add support for eject key on Dell Studio 1555
|
||||||
|
|
||||||
|
Fixes pressing the eject key on Dell Studio 1555 does not work and produces
|
||||||
|
message :
|
||||||
|
|
||||||
|
dell-wmi: Unknown key 0 pressed
|
||||||
|
|
||||||
|
Signed-off-by: Islam Amer <pharon@gmail.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
|
||||||
|
index 66f53c3..12a8e6f 100644
|
||||||
|
--- a/drivers/platform/x86/dell-wmi.c
|
||||||
|
+++ b/drivers/platform/x86/dell-wmi.c
|
||||||
|
@@ -221,7 +221,7 @@ static void dell_wmi_notify(u32 value, void *context)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (dell_new_hk_type)
|
||||||
|
+ if (dell_new_hk_type || buffer_entry[1] == 0x0)
|
||||||
|
reported_key = (int)buffer_entry[2];
|
||||||
|
else
|
||||||
|
reported_key = (int)buffer_entry[1] & 0xffff;
|
||||||
30
die-floppy-die.patch
Normal file
30
die-floppy-die.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
From 4ff58b642f80dedb20533978123d89b5ac9b1ed5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kyle McMartin <kyle@phobos.i.jkkm.org>
|
||||||
|
Date: Tue, 30 Mar 2010 00:04:29 -0400
|
||||||
|
Subject: die-floppy-die
|
||||||
|
|
||||||
|
Kill the floppy.ko pnp modalias. We were surviving just fine without
|
||||||
|
autoloading floppy drivers, tyvm.
|
||||||
|
|
||||||
|
Please feel free to register all complaints in the wastepaper bin.
|
||||||
|
---
|
||||||
|
drivers/block/floppy.c | 3 +--
|
||||||
|
1 files changed, 1 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
|
||||||
|
index 90c4038..f4a0b90 100644
|
||||||
|
--- a/drivers/block/floppy.c
|
||||||
|
+++ b/drivers/block/floppy.c
|
||||||
|
@@ -4619,8 +4619,7 @@ static const struct pnp_device_id floppy_pnpids[] = {
|
||||||
|
{"PNP0700", 0},
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
-
|
||||||
|
-MODULE_DEVICE_TABLE(pnp, floppy_pnpids);
|
||||||
|
+/* MODULE_DEVICE_TABLE(pnp, floppy_pnpids); */
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
204
direct-io-move-aio_complete-into-end_io.patch
Normal file
204
direct-io-move-aio_complete-into-end_io.patch
Normal file
|
|
@ -0,0 +1,204 @@
|
||||||
|
From: Christoph Hellwig <hch@infradead.org>
|
||||||
|
Date: Sun, 18 Jul 2010 21:17:09 +0000 (+0000)
|
||||||
|
Subject: direct-io: move aio_complete into ->end_io
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=40e2e97316af6e62affab7a392e792494b8d9dde
|
||||||
|
|
||||||
|
direct-io: move aio_complete into ->end_io
|
||||||
|
|
||||||
|
Filesystems with unwritten extent support must not complete an AIO request
|
||||||
|
until the transaction to convert the extent has been commited. That means
|
||||||
|
the aio_complete calls needs to be moved into the ->end_io callback so
|
||||||
|
that the filesystem can control when to call it exactly.
|
||||||
|
|
||||||
|
This makes a bit of a mess out of dio_complete and the ->end_io callback
|
||||||
|
prototype even more complicated.
|
||||||
|
|
||||||
|
Signed-off-by: Christoph Hellwig <hch@lst.de>
|
||||||
|
Reviewed-by: Jan Kara <jack@suse.cz>
|
||||||
|
Signed-off-by: Alex Elder <aelder@sgi.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/fs/direct-io.c b/fs/direct-io.c
|
||||||
|
index 7600aac..a10cb91 100644
|
||||||
|
--- a/fs/direct-io.c
|
||||||
|
+++ b/fs/direct-io.c
|
||||||
|
@@ -218,7 +218,7 @@ static struct page *dio_get_page(struct dio *dio)
|
||||||
|
* filesystems can use it to hold additional state between get_block calls and
|
||||||
|
* dio_complete.
|
||||||
|
*/
|
||||||
|
-static int dio_complete(struct dio *dio, loff_t offset, int ret)
|
||||||
|
+static int dio_complete(struct dio *dio, loff_t offset, int ret, bool is_async)
|
||||||
|
{
|
||||||
|
ssize_t transferred = 0;
|
||||||
|
|
||||||
|
@@ -239,14 +239,6 @@ static int dio_complete(struct dio *dio, loff_t offset, int ret)
|
||||||
|
transferred = dio->i_size - offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (dio->end_io && dio->result)
|
||||||
|
- dio->end_io(dio->iocb, offset, transferred,
|
||||||
|
- dio->map_bh.b_private);
|
||||||
|
-
|
||||||
|
- if (dio->flags & DIO_LOCKING)
|
||||||
|
- /* lockdep: non-owner release */
|
||||||
|
- up_read_non_owner(&dio->inode->i_alloc_sem);
|
||||||
|
-
|
||||||
|
if (ret == 0)
|
||||||
|
ret = dio->page_errors;
|
||||||
|
if (ret == 0)
|
||||||
|
@@ -254,6 +246,17 @@ static int dio_complete(struct dio *dio, loff_t offset, int ret)
|
||||||
|
if (ret == 0)
|
||||||
|
ret = transferred;
|
||||||
|
|
||||||
|
+ if (dio->end_io && dio->result) {
|
||||||
|
+ dio->end_io(dio->iocb, offset, transferred,
|
||||||
|
+ dio->map_bh.b_private, ret, is_async);
|
||||||
|
+ } else if (is_async) {
|
||||||
|
+ aio_complete(dio->iocb, ret, 0);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (dio->flags & DIO_LOCKING)
|
||||||
|
+ /* lockdep: non-owner release */
|
||||||
|
+ up_read_non_owner(&dio->inode->i_alloc_sem);
|
||||||
|
+
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -277,8 +280,7 @@ static void dio_bio_end_aio(struct bio *bio, int error)
|
||||||
|
spin_unlock_irqrestore(&dio->bio_lock, flags);
|
||||||
|
|
||||||
|
if (remaining == 0) {
|
||||||
|
- int ret = dio_complete(dio, dio->iocb->ki_pos, 0);
|
||||||
|
- aio_complete(dio->iocb, ret, 0);
|
||||||
|
+ dio_complete(dio, dio->iocb->ki_pos, 0, true);
|
||||||
|
kfree(dio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1126,7 +1128,7 @@ direct_io_worker(int rw, struct kiocb *iocb, struct inode *inode,
|
||||||
|
spin_unlock_irqrestore(&dio->bio_lock, flags);
|
||||||
|
|
||||||
|
if (ret2 == 0) {
|
||||||
|
- ret = dio_complete(dio, offset, ret);
|
||||||
|
+ ret = dio_complete(dio, offset, ret, false);
|
||||||
|
kfree(dio);
|
||||||
|
} else
|
||||||
|
BUG_ON(ret != -EIOCBQUEUED);
|
||||||
|
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
|
||||||
|
index 42272d6..0afc8c1 100644
|
||||||
|
--- a/fs/ext4/inode.c
|
||||||
|
+++ b/fs/ext4/inode.c
|
||||||
|
@@ -3775,7 +3775,8 @@ static ext4_io_end_t *ext4_init_io_end (struct inode *inode, gfp_t flags)
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ext4_end_io_dio(struct kiocb *iocb, loff_t offset,
|
||||||
|
- ssize_t size, void *private)
|
||||||
|
+ ssize_t size, void *private, int ret,
|
||||||
|
+ bool is_async)
|
||||||
|
{
|
||||||
|
ext4_io_end_t *io_end = iocb->private;
|
||||||
|
struct workqueue_struct *wq;
|
||||||
|
@@ -3784,7 +3785,7 @@ static void ext4_end_io_dio(struct kiocb *iocb, loff_t offset,
|
||||||
|
|
||||||
|
/* if not async direct IO or dio with 0 bytes write, just return */
|
||||||
|
if (!io_end || !size)
|
||||||
|
- return;
|
||||||
|
+ goto out;
|
||||||
|
|
||||||
|
ext_debug("ext4_end_io_dio(): io_end 0x%p"
|
||||||
|
"for inode %lu, iocb 0x%p, offset %llu, size %llu\n",
|
||||||
|
@@ -3795,7 +3796,7 @@ static void ext4_end_io_dio(struct kiocb *iocb, loff_t offset,
|
||||||
|
if (io_end->flag != EXT4_IO_UNWRITTEN){
|
||||||
|
ext4_free_io_end(io_end);
|
||||||
|
iocb->private = NULL;
|
||||||
|
- return;
|
||||||
|
+ goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
io_end->offset = offset;
|
||||||
|
@@ -3812,6 +3813,9 @@ static void ext4_end_io_dio(struct kiocb *iocb, loff_t offset,
|
||||||
|
list_add_tail(&io_end->list, &ei->i_completed_io_list);
|
||||||
|
spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);
|
||||||
|
iocb->private = NULL;
|
||||||
|
+out:
|
||||||
|
+ if (is_async)
|
||||||
|
+ aio_complete(iocb, ret, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ext4_end_io_buffer_write(struct buffer_head *bh, int uptodate)
|
||||||
|
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
|
||||||
|
index 356e976..96337a4 100644
|
||||||
|
--- a/fs/ocfs2/aops.c
|
||||||
|
+++ b/fs/ocfs2/aops.c
|
||||||
|
@@ -578,7 +578,9 @@ bail:
|
||||||
|
static void ocfs2_dio_end_io(struct kiocb *iocb,
|
||||||
|
loff_t offset,
|
||||||
|
ssize_t bytes,
|
||||||
|
- void *private)
|
||||||
|
+ void *private,
|
||||||
|
+ int ret,
|
||||||
|
+ bool is_async)
|
||||||
|
{
|
||||||
|
struct inode *inode = iocb->ki_filp->f_path.dentry->d_inode;
|
||||||
|
int level;
|
||||||
|
@@ -592,6 +594,9 @@ static void ocfs2_dio_end_io(struct kiocb *iocb,
|
||||||
|
if (!level)
|
||||||
|
up_read(&inode->i_alloc_sem);
|
||||||
|
ocfs2_rw_unlock(inode, level);
|
||||||
|
+
|
||||||
|
+ if (is_async)
|
||||||
|
+ aio_complete(iocb, ret, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
|
||||||
|
index 8abbf05..95d1e26 100644
|
||||||
|
--- a/fs/xfs/linux-2.6/xfs_aops.c
|
||||||
|
+++ b/fs/xfs/linux-2.6/xfs_aops.c
|
||||||
|
@@ -1406,7 +1406,9 @@ xfs_end_io_direct(
|
||||||
|
struct kiocb *iocb,
|
||||||
|
loff_t offset,
|
||||||
|
ssize_t size,
|
||||||
|
- void *private)
|
||||||
|
+ void *private,
|
||||||
|
+ int ret,
|
||||||
|
+ bool is_async)
|
||||||
|
{
|
||||||
|
xfs_ioend_t *ioend = iocb->private;
|
||||||
|
|
||||||
|
@@ -1452,6 +1454,9 @@ xfs_end_io_direct(
|
||||||
|
* against double-freeing.
|
||||||
|
*/
|
||||||
|
iocb->private = NULL;
|
||||||
|
+
|
||||||
|
+ if (is_async)
|
||||||
|
+ aio_complete(iocb, ret, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC ssize_t
|
||||||
|
diff --git a/fs/xfs/linux-2.6/xfs_aops.h b/fs/xfs/linux-2.6/xfs_aops.h
|
||||||
|
index 319da17..c5057fb 100644
|
||||||
|
--- a/fs/xfs/linux-2.6/xfs_aops.h
|
||||||
|
+++ b/fs/xfs/linux-2.6/xfs_aops.h
|
||||||
|
@@ -37,6 +37,8 @@ typedef struct xfs_ioend {
|
||||||
|
size_t io_size; /* size of the extent */
|
||||||
|
xfs_off_t io_offset; /* offset in the file */
|
||||||
|
struct work_struct io_work; /* xfsdatad work queue */
|
||||||
|
+ struct kiocb *io_iocb;
|
||||||
|
+ int io_result;
|
||||||
|
} xfs_ioend_t;
|
||||||
|
|
||||||
|
extern const struct address_space_operations xfs_address_space_operations;
|
||||||
|
diff --git a/include/linux/fs.h b/include/linux/fs.h
|
||||||
|
index 68ca1b0..f91affb 100644
|
||||||
|
--- a/include/linux/fs.h
|
||||||
|
+++ b/include/linux/fs.h
|
||||||
|
@@ -415,7 +415,8 @@ struct buffer_head;
|
||||||
|
typedef int (get_block_t)(struct inode *inode, sector_t iblock,
|
||||||
|
struct buffer_head *bh_result, int create);
|
||||||
|
typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
|
||||||
|
- ssize_t bytes, void *private);
|
||||||
|
+ ssize_t bytes, void *private, int ret,
|
||||||
|
+ bool is_async);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Attribute flags. These should be or-ed together to figure out what
|
||||||
59
disable-i8042-check-on-apple-mac.patch
Normal file
59
disable-i8042-check-on-apple-mac.patch
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
From 2a79554c864ac58fa2ad982f0fcee2cc2aa33eb5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bastien Nocera <hadess@hadess.net>
|
||||||
|
Date: Thu, 20 May 2010 10:30:31 -0400
|
||||||
|
Subject: Disable i8042 checks on Intel Apple Macs
|
||||||
|
|
||||||
|
As those computers never had any i8042 controllers, and the
|
||||||
|
current lookup code could potentially lock up/hang/wait for
|
||||||
|
timeout for long periods of time.
|
||||||
|
|
||||||
|
Fixes intermittent hangs on boot on a MacbookAir1,1
|
||||||
|
|
||||||
|
Signed-off-by: Bastien Nocera <hadess@hadess.net>
|
||||||
|
---
|
||||||
|
drivers/input/serio/i8042.c | 22 ++++++++++++++++++++++
|
||||||
|
1 files changed, 22 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
|
||||||
|
index 6440a8f..4d7cf98 100644
|
||||||
|
--- a/drivers/input/serio/i8042.c
|
||||||
|
+++ b/drivers/input/serio/i8042.c
|
||||||
|
@@ -1451,6 +1451,22 @@ static struct platform_driver i8042_driver = {
|
||||||
|
.shutdown = i8042_shutdown,
|
||||||
|
};
|
||||||
|
|
||||||
|
+#ifdef CONFIG_DMI
|
||||||
|
+static struct dmi_system_id __initdata dmi_system_table[] = {
|
||||||
|
+ {
|
||||||
|
+ .matches = {
|
||||||
|
+ DMI_MATCH(DMI_BIOS_VENDOR, "Apple Computer, Inc.")
|
||||||
|
+ },
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ .matches = {
|
||||||
|
+ DMI_MATCH(DMI_BIOS_VENDOR, "Apple Inc.")
|
||||||
|
+ },
|
||||||
|
+ },
|
||||||
|
+ {}
|
||||||
|
+};
|
||||||
|
+#endif /*CONFIG_DMI*/
|
||||||
|
+
|
||||||
|
static int __init i8042_init(void)
|
||||||
|
{
|
||||||
|
struct platform_device *pdev;
|
||||||
|
@@ -1458,6 +1474,12 @@ static int __init i8042_init(void)
|
||||||
|
|
||||||
|
dbg_init();
|
||||||
|
|
||||||
|
+#ifdef CONFIG_DMI
|
||||||
|
+ /* Intel Apple Macs never have an i8042 controller */
|
||||||
|
+ if (dmi_check_system(dmi_system_table) > 0)
|
||||||
|
+ return -ENODEV;
|
||||||
|
+#endif /*CONFIG_DMI*/
|
||||||
|
+
|
||||||
|
err = i8042_platform_init();
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
35
dmar-disable-when-ricoh-multifunction.patch
Normal file
35
dmar-disable-when-ricoh-multifunction.patch
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
From 8d2f6746f7f82e1aee2dc40a937b5954cfc73414 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kyle McMartin <kyle@mcmartin.ca>
|
||||||
|
Date: Sun, 17 Oct 2010 15:55:32 -0400
|
||||||
|
Subject: [PATCH] dmar: disable if ricoh multifunction detected
|
||||||
|
|
||||||
|
---
|
||||||
|
drivers/pci/intel-iommu.c | 10 ++++++++++
|
||||||
|
1 files changed, 10 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
|
||||||
|
index 8e499e8..076c5de 100644
|
||||||
|
--- a/drivers/pci/intel-iommu.c
|
||||||
|
+++ b/drivers/pci/intel-iommu.c
|
||||||
|
@@ -3755,6 +3755,18 @@ static void __devinit quirk_iommu_rwbf(struct pci_dev *dev)
|
||||||
|
|
||||||
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf);
|
||||||
|
|
||||||
|
+/* https://bugzilla.redhat.com/show_bug.cgi?id=605888 */
|
||||||
|
+static void __devinit quirk_ricoh_multifunction(struct pci_dev *dev)
|
||||||
|
+{
|
||||||
|
+ printk(KERN_INFO "intel_iommu: broken Ricoh device %04X detected, disabling...\n",
|
||||||
|
+ dev->device);
|
||||||
|
+ dmar_disabled = 1;
|
||||||
|
+}
|
||||||
|
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe822, quirk_ricoh_multifunction);
|
||||||
|
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe230, quirk_ricoh_multifunction);
|
||||||
|
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe832, quirk_ricoh_multifunction);
|
||||||
|
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe476, quirk_ricoh_multifunction);
|
||||||
|
+
|
||||||
|
/* On Tylersburg chipsets, some BIOSes have been known to enable the
|
||||||
|
ISOCH DMAR unit for the Azalia sound device, but not give it any
|
||||||
|
TLB entries, which causes it to deadlock. Check for that. We do
|
||||||
|
--
|
||||||
|
1.7.3.1
|
||||||
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
# generic + compressed please
|
|
||||||
hostonly="no"
|
|
||||||
compress="xz"
|
|
||||||
|
|
||||||
# VMs can't update microcode anyway
|
|
||||||
early_microcode="no"
|
|
||||||
|
|
||||||
# modules: basics
|
|
||||||
dracutmodules+=" dracut-systemd i18n shutdown "
|
|
||||||
|
|
||||||
# modules: storage support
|
|
||||||
dracutmodules+=" dm lvm rootfs-block fs-lib "
|
|
||||||
|
|
||||||
# modules: tpm and crypto
|
|
||||||
dracutmodules+=" crypt crypt-loop tpm2-tss systemd-pcrphase "
|
|
||||||
|
|
||||||
# dracut >= 102 separated systemd-cryptsetup into its own module
|
|
||||||
CSMODULE=`dracut --list-modules --no-kernel | grep '^systemd-cryptsetup$'`
|
|
||||||
dracutmodules+=" $CSMODULE "
|
|
||||||
|
|
||||||
# modules: support root on virtiofs
|
|
||||||
dracutmodules+=" virtiofs "
|
|
||||||
|
|
||||||
# modules: use sysext images (see 'man systemd-sysext')
|
|
||||||
dracutmodules+=" systemd-sysext "
|
|
||||||
|
|
||||||
# modules: root disk integrity protection
|
|
||||||
dracutmodules+=" systemd-veritysetup "
|
|
||||||
|
|
||||||
# modules: root creation and encryption
|
|
||||||
dracutmodules+=" systemd-repart "
|
|
||||||
# FIXME: remove this once RHEL-103385 is merged
|
|
||||||
install_items+=" /usr/sbin/mkfs.vfat /usr/sbin/mkfs.ext4 /usr/sbin/mkfs.xfs "
|
|
||||||
|
|
||||||
# modules: FIPS
|
|
||||||
dracutmodules+=" fips "
|
|
||||||
# FIPS mode requires early crypto drivers test
|
|
||||||
drivers+=" =crypto "
|
|
||||||
|
|
||||||
# drivers: virtual buses, pci
|
|
||||||
drivers+=" virtio-pci virtio-mmio " # qemu-kvm
|
|
||||||
drivers+=" hv-vmbus pci-hyperv " # hyperv
|
|
||||||
drivers+=" xen-pcifront " # xen
|
|
||||||
|
|
||||||
# drivers: storage
|
|
||||||
drivers+=" ahci nvme sd_mod sr_mod " # generic
|
|
||||||
drivers+=" virtio-blk virtio-scsi " # qemu-kvm
|
|
||||||
drivers+=" hv-storvsc " # hyperv
|
|
||||||
drivers+=" xen-blkfront " # xen
|
|
||||||
|
|
||||||
# root encryption
|
|
||||||
drivers+=" dm_crypt "
|
|
||||||
|
|
||||||
# root disk integrity protection
|
|
||||||
drivers+=" dm_verity overlay "
|
|
||||||
|
|
||||||
# filesystems
|
|
||||||
filesystems+=" vfat ext4 xfs overlay "
|
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
From: Carsten Emde <C.Emde@osadl.org>
|
||||||
|
Date: Mon, 24 May 2010 21:33:39 +0000 (-0700)
|
||||||
|
Subject: drivers/hwmon/coretemp.c: detect the thermal sensors by CPUID
|
||||||
|
X-Git-Tag: v2.6.35-rc1~297
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=5db47b009d17d69a2f8d84357e7b24c3e3c2edec
|
||||||
|
|
||||||
|
drivers/hwmon/coretemp.c: detect the thermal sensors by CPUID
|
||||||
|
|
||||||
|
The thermal sensors of Intel(R) CPUs can be detected by CPUID instruction,
|
||||||
|
indicated by CPUID.06H.EAX[0].
|
||||||
|
|
||||||
|
Signed-off-by: Huaxu Wan <huaxu.wan@linux.intel.com>
|
||||||
|
Signed-off-by: Carsten Emde <C.Emde@osadl.org>
|
||||||
|
Reviewed-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
|
||||||
|
Cc: Jean Delvare <khali@linux-fr.org>
|
||||||
|
Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
|
||||||
|
Cc: Yong Wang <yong.y.wang@linux.intel.com>
|
||||||
|
Cc: Rudolf Marek <r.marek@assembler.cz>
|
||||||
|
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||||
|
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
|
||||||
|
index e9b7fbc..9fae7cb 100644
|
||||||
|
--- a/drivers/hwmon/coretemp.c
|
||||||
|
+++ b/drivers/hwmon/coretemp.c
|
||||||
|
@@ -451,28 +451,20 @@ static int __init coretemp_init(void)
|
||||||
|
|
||||||
|
for_each_online_cpu(i) {
|
||||||
|
struct cpuinfo_x86 *c = &cpu_data(i);
|
||||||
|
+ /*
|
||||||
|
+ * CPUID.06H.EAX[0] indicates whether the CPU has thermal
|
||||||
|
+ * sensors. We check this bit only, all the early CPUs
|
||||||
|
+ * without thermal sensors will be filtered out.
|
||||||
|
+ */
|
||||||
|
+ if (c->cpuid_level >= 6 && (cpuid_eax(0x06) & 0x01)) {
|
||||||
|
+ err = coretemp_device_add(i);
|
||||||
|
+ if (err)
|
||||||
|
+ goto exit_devices_unreg;
|
||||||
|
|
||||||
|
- /* check if family 6, models 0xe (Pentium M DC),
|
||||||
|
- 0xf (Core 2 DC 65nm), 0x16 (Core 2 SC 65nm),
|
||||||
|
- 0x17 (Penryn 45nm), 0x1a (Nehalem), 0x1c (Atom),
|
||||||
|
- 0x1e (Lynnfield) */
|
||||||
|
- if ((c->cpuid_level < 0) || (c->x86 != 0x6) ||
|
||||||
|
- !((c->x86_model == 0xe) || (c->x86_model == 0xf) ||
|
||||||
|
- (c->x86_model == 0x16) || (c->x86_model == 0x17) ||
|
||||||
|
- (c->x86_model == 0x1a) || (c->x86_model == 0x1c) ||
|
||||||
|
- (c->x86_model == 0x1e))) {
|
||||||
|
-
|
||||||
|
- /* supported CPU not found, but report the unknown
|
||||||
|
- family 6 CPU */
|
||||||
|
- if ((c->x86 == 0x6) && (c->x86_model > 0xf))
|
||||||
|
- printk(KERN_WARNING DRVNAME ": Unknown CPU "
|
||||||
|
- "model 0x%x\n", c->x86_model);
|
||||||
|
- continue;
|
||||||
|
+ } else {
|
||||||
|
+ printk(KERN_INFO DRVNAME ": CPU (model=0x%x)"
|
||||||
|
+ " has no thermal sensor.\n", c->x86_model);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- err = coretemp_device_add(i);
|
||||||
|
- if (err)
|
||||||
|
- goto exit_devices_unreg;
|
||||||
|
}
|
||||||
|
if (list_empty(&pdev_list)) {
|
||||||
|
err = -ENODEV;
|
||||||
74
drm-encoder-disable.patch
Normal file
74
drm-encoder-disable.patch
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
From 0b91f360956aa7a5aa8900d358d1bff3020182e0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
Date: Thu, 1 Jul 2010 12:34:56 +1000
|
||||||
|
Subject: [PATCH 1/2] drm: disable encoder rather than dpms off in drm_crtc_prepare_encoders()
|
||||||
|
|
||||||
|
Original behaviour will be preserved for drivers that don't implement
|
||||||
|
disable() hooks for an encoder.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/drm_crtc_helper.c | 22 ++++++++++++++--------
|
||||||
|
1 files changed, 14 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
|
||||||
|
index b142ac2..32dae0e 100644
|
||||||
|
--- a/drivers/gpu/drm/drm_crtc_helper.c
|
||||||
|
+++ b/drivers/gpu/drm/drm_crtc_helper.c
|
||||||
|
@@ -201,6 +201,17 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc)
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_helper_crtc_in_use);
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+drm_encoder_disable(struct drm_encoder *encoder)
|
||||||
|
+{
|
||||||
|
+ struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
|
||||||
|
+
|
||||||
|
+ if (encoder_funcs->disable)
|
||||||
|
+ (*encoder_funcs->disable)(encoder);
|
||||||
|
+ else
|
||||||
|
+ (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* drm_helper_disable_unused_functions - disable unused objects
|
||||||
|
* @dev: DRM device
|
||||||
|
@@ -215,7 +226,6 @@ void drm_helper_disable_unused_functions(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
struct drm_encoder *encoder;
|
||||||
|
struct drm_connector *connector;
|
||||||
|
- struct drm_encoder_helper_funcs *encoder_funcs;
|
||||||
|
struct drm_crtc *crtc;
|
||||||
|
|
||||||
|
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
||||||
|
@@ -226,12 +236,8 @@ void drm_helper_disable_unused_functions(struct drm_device *dev)
|
||||||
|
}
|
||||||
|
|
||||||
|
list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
|
||||||
|
- encoder_funcs = encoder->helper_private;
|
||||||
|
if (!drm_helper_encoder_in_use(encoder)) {
|
||||||
|
- if (encoder_funcs->disable)
|
||||||
|
- (*encoder_funcs->disable)(encoder);
|
||||||
|
- else
|
||||||
|
- (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
|
||||||
|
+ drm_encoder_disable(encoder);
|
||||||
|
/* disconnector encoder from any connector */
|
||||||
|
encoder->crtc = NULL;
|
||||||
|
}
|
||||||
|
@@ -292,11 +298,11 @@ drm_crtc_prepare_encoders(struct drm_device *dev)
|
||||||
|
encoder_funcs = encoder->helper_private;
|
||||||
|
/* Disable unused encoders */
|
||||||
|
if (encoder->crtc == NULL)
|
||||||
|
- (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
|
||||||
|
+ drm_encoder_disable(encoder);
|
||||||
|
/* Disable encoders whose CRTC is about to change */
|
||||||
|
if (encoder_funcs->get_crtc &&
|
||||||
|
encoder->crtc != (*encoder_funcs->get_crtc)(encoder))
|
||||||
|
- (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
|
||||||
|
+ drm_encoder_disable(encoder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.1.1
|
||||||
|
|
||||||
107
drm-hold-the-mutex-when-dropping-the-last-gem-reference-v2.patch
Normal file
107
drm-hold-the-mutex-when-dropping-the-last-gem-reference-v2.patch
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
From 39b4d07aa3583ceefe73622841303a0a3e942ca1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Date: Thu, 30 Sep 2010 09:10:26 +0100
|
||||||
|
Subject: drm: Hold the mutex when dropping the last GEM reference (v2)
|
||||||
|
|
||||||
|
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
|
||||||
|
commit 39b4d07aa3583ceefe73622841303a0a3e942ca1 upstream.
|
||||||
|
|
||||||
|
In order to be fully threadsafe we need to check that the drm_gem_object
|
||||||
|
refcount is still 0 after acquiring the mutex in order to call the free
|
||||||
|
function. Otherwise, we may encounter scenarios like:
|
||||||
|
|
||||||
|
Thread A: Thread B:
|
||||||
|
drm_gem_close
|
||||||
|
unreference_unlocked
|
||||||
|
kref_put mutex_lock
|
||||||
|
... i915_gem_evict
|
||||||
|
... kref_get -> BUG
|
||||||
|
... i915_gem_unbind
|
||||||
|
... kref_put
|
||||||
|
... i915_gem_object_free
|
||||||
|
... mutex_unlock
|
||||||
|
mutex_lock
|
||||||
|
i915_gem_object_free -> BUG
|
||||||
|
i915_gem_object_unbind
|
||||||
|
kfree
|
||||||
|
mutex_unlock
|
||||||
|
|
||||||
|
Note that no driver is currently using the free_unlocked vfunc and it is
|
||||||
|
scheduled for removal, hasten that process.
|
||||||
|
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30454
|
||||||
|
Reported-and-Tested-by: Magnus Kessler <Magnus.Kessler@gmx.net>
|
||||||
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||||
|
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
|
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/drm_gem.c | 22 ----------------------
|
||||||
|
include/drm/drmP.h | 10 ++++++----
|
||||||
|
2 files changed, 6 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/gpu/drm/drm_gem.c
|
||||||
|
+++ b/drivers/gpu/drm/drm_gem.c
|
||||||
|
@@ -451,28 +451,6 @@ drm_gem_object_free(struct kref *kref)
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_gem_object_free);
|
||||||
|
|
||||||
|
-/**
|
||||||
|
- * Called after the last reference to the object has been lost.
|
||||||
|
- * Must be called without holding struct_mutex
|
||||||
|
- *
|
||||||
|
- * Frees the object
|
||||||
|
- */
|
||||||
|
-void
|
||||||
|
-drm_gem_object_free_unlocked(struct kref *kref)
|
||||||
|
-{
|
||||||
|
- struct drm_gem_object *obj = (struct drm_gem_object *) kref;
|
||||||
|
- struct drm_device *dev = obj->dev;
|
||||||
|
-
|
||||||
|
- if (dev->driver->gem_free_object_unlocked != NULL)
|
||||||
|
- dev->driver->gem_free_object_unlocked(obj);
|
||||||
|
- else if (dev->driver->gem_free_object != NULL) {
|
||||||
|
- mutex_lock(&dev->struct_mutex);
|
||||||
|
- dev->driver->gem_free_object(obj);
|
||||||
|
- mutex_unlock(&dev->struct_mutex);
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-EXPORT_SYMBOL(drm_gem_object_free_unlocked);
|
||||||
|
-
|
||||||
|
static void drm_gem_object_ref_bug(struct kref *list_kref)
|
||||||
|
{
|
||||||
|
BUG();
|
||||||
|
--- a/include/drm/drmP.h
|
||||||
|
+++ b/include/drm/drmP.h
|
||||||
|
@@ -802,7 +802,6 @@ struct drm_driver {
|
||||||
|
*/
|
||||||
|
int (*gem_init_object) (struct drm_gem_object *obj);
|
||||||
|
void (*gem_free_object) (struct drm_gem_object *obj);
|
||||||
|
- void (*gem_free_object_unlocked) (struct drm_gem_object *obj);
|
||||||
|
|
||||||
|
/* vga arb irq handler */
|
||||||
|
void (*vgaarb_irq)(struct drm_device *dev, bool state);
|
||||||
|
@@ -1430,7 +1429,6 @@ int drm_gem_init(struct drm_device *dev)
|
||||||
|
void drm_gem_destroy(struct drm_device *dev);
|
||||||
|
void drm_gem_object_release(struct drm_gem_object *obj);
|
||||||
|
void drm_gem_object_free(struct kref *kref);
|
||||||
|
-void drm_gem_object_free_unlocked(struct kref *kref);
|
||||||
|
struct drm_gem_object *drm_gem_object_alloc(struct drm_device *dev,
|
||||||
|
size_t size);
|
||||||
|
int drm_gem_object_init(struct drm_device *dev,
|
||||||
|
@@ -1456,8 +1454,12 @@ drm_gem_object_unreference(struct drm_ge
|
||||||
|
static inline void
|
||||||
|
drm_gem_object_unreference_unlocked(struct drm_gem_object *obj)
|
||||||
|
{
|
||||||
|
- if (obj != NULL)
|
||||||
|
- kref_put(&obj->refcount, drm_gem_object_free_unlocked);
|
||||||
|
+ if (obj != NULL) {
|
||||||
|
+ struct drm_device *dev = obj->dev;
|
||||||
|
+ mutex_lock(&dev->struct_mutex);
|
||||||
|
+ kref_put(&obj->refcount, drm_gem_object_free);
|
||||||
|
+ mutex_unlock(&dev->struct_mutex);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
int drm_gem_handle_create(struct drm_file *file_priv,
|
||||||
62
drm-i915-explosion-following-oom-in-do_execbuffer.patch
Normal file
62
drm-i915-explosion-following-oom-in-do_execbuffer.patch
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
commit 6f772d7e2f4105470b9f3d0f0b26f06f61b1278d
|
||||||
|
Author: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Date: Fri Jul 2 08:57:15 2010 +0100
|
||||||
|
|
||||||
|
drm/i915: Explosion following OOM in do_execbuffer.
|
||||||
|
|
||||||
|
Oops, when merging the extra details following an OOM, I missed that
|
||||||
|
driver_private is now NULL and the correct way to convert from the
|
||||||
|
drm_gem_object into the drm_i915_gem_object is to use to_intel_bo().
|
||||||
|
|
||||||
|
BUG: unable to handle kernel NULL pointer dereference at 00000069
|
||||||
|
IP: [<c11a4a02>] i915_gem_do_execbuffer+0x71f/0xbb6
|
||||||
|
*pde = 00000000
|
||||||
|
Oops: 0000 [#1] SMP
|
||||||
|
last sysfs file: /sys/devices/virtual/vc/vcsa3/uevent
|
||||||
|
|
||||||
|
Pid: 10993, comm: X Not tainted 2.6.35-rc2+ #67 /
|
||||||
|
EIP: 0060:[<c11a4a02>] EFLAGS: 00213202 CPU: 0
|
||||||
|
EIP is at i915_gem_do_execbuffer+0x71f/0xbb6
|
||||||
|
EAX: f647e8a8 EBX: 00000000 ECX: 00000003 EDX: 00000000
|
||||||
|
ESI: 00424000 EDI: 00000000 EBP: f6508e48 ESP: f6508dd4
|
||||||
|
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
|
||||||
|
Process X (pid: 10993, ti=f6508000 task=f6432880 task.ti=f6508000)
|
||||||
|
Stack:
|
||||||
|
f6508de0 f7130000 00000001 00000000 00000000 f647e8a8 00000000 f64f8480
|
||||||
|
<0> f7974414 00000000 00000006 00000000 00000000 f6578000 00000008 00000006
|
||||||
|
<0> f6797880 00400000 00000000 ffffffe4 f7974400 000000d0 000000d0 000001c0
|
||||||
|
Call Trace:
|
||||||
|
[<c11a4f3a>] ? i915_gem_execbuffer2+0xa1/0xe7
|
||||||
|
[<c118ab96>] ? drm_ioctl+0x22c/0x2fa
|
||||||
|
[<c11a4e99>] ? i915_gem_execbuffer2+0x0/0xe7
|
||||||
|
[<c107e88c>] ? do_sync_read+0x8f/0xca
|
||||||
|
[<c1088cbd>] ? vfs_ioctl+0x2c/0x96
|
||||||
|
[<c118a96a>] ? drm_ioctl+0x0/0x2fa
|
||||||
|
[<c10891f4>] ? do_vfs_ioctl+0x429/0x45a
|
||||||
|
[<c107e5c9>] ? fsnotify_access+0x54/0x5f
|
||||||
|
[<c107ee1c>] ? vfs_read+0x9a/0xae
|
||||||
|
[<c1089258>] ? sys_ioctl+0x33/0x4d
|
||||||
|
[<c1002610>] ? sysenter_do_call+0x12/0x26
|
||||||
|
Code: d0 89 4d c4 31 c9 89 45 d8 eb 44 8b 45 cc 8b 14 88 8b 42 50 89 45
|
||||||
|
bc 8b 45 a0 8b 52 38 89 55 d0 31 d2 f6 40 20 01 74 0d 8b 55 bc <f6> 42
|
||||||
|
69 30 0f 95 c2 0f b6 d2 8b 45 d0 c7 45 d4 00 00 00 00 89
|
||||||
|
EIP: [<c11a4a02>] i915_gem_do_execbuffer+0x71f/0xbb6 SS:ESP 0068:f6508dd4
|
||||||
|
CR2: 0000000000000069
|
||||||
|
---[ end trace 3f1d514b34d39381 ]---
|
||||||
|
|
||||||
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
index 0743858..eb17cc3 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
@@ -3793,7 +3794,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
|
||||||
|
unsigned long long total_size = 0;
|
||||||
|
int num_fences = 0;
|
||||||
|
for (i = 0; i < args->buffer_count; i++) {
|
||||||
|
- obj_priv = object_list[i]->driver_private;
|
||||||
|
+ obj_priv = to_intel_bo(object_list[i]);
|
||||||
|
|
||||||
|
total_size += object_list[i]->size;
|
||||||
|
num_fences +=
|
||||||
12
drm-i915-fix-edp-panels.patch
Normal file
12
drm-i915-fix-edp-panels.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -up linux-2.6.33.noarch/drivers/gpu/drm/i915/intel_dp.c.dave linux-2.6.33.noarch/drivers/gpu/drm/i915/intel_dp.c
|
||||||
|
--- linux-2.6.33.noarch/drivers/gpu/drm/i915/intel_dp.c.dave 2010-06-25 16:30:13.000000000 +1000
|
||||||
|
+++ linux-2.6.33.noarch/drivers/gpu/drm/i915/intel_dp.c 2010-06-25 16:30:23.000000000 +1000
|
||||||
|
@@ -129,7 +129,7 @@ intel_dp_link_required(struct drm_device
|
||||||
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||||
|
|
||||||
|
if (IS_eDP(intel_encoder))
|
||||||
|
- return (pixel_clock * dev_priv->edp_bpp) / 8;
|
||||||
|
+ return (pixel_clock * ALIGN(dev_priv->edp_bpp, 8)) / 8;
|
||||||
|
else
|
||||||
|
return pixel_clock * 3;
|
||||||
|
}
|
||||||
87
drm-i915-sanity-check-pread-pwrite.patch
Normal file
87
drm-i915-sanity-check-pread-pwrite.patch
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Date: Sun, 26 Sep 2010 19:50:05 +0000 (+0100)
|
||||||
|
Subject: drm/i915: Sanity check pread/pwrite
|
||||||
|
X-Git-Tag: v2.6.36-rc7~17^2~1
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=ce9d419dbecc292cc3e06e8b1d6d123d3fa813a4
|
||||||
|
|
||||||
|
drm/i915: Sanity check pread/pwrite
|
||||||
|
|
||||||
|
Move the access control up from the fast paths, which are no longer
|
||||||
|
universally taken first, up into the caller. This then duplicates some
|
||||||
|
sanity checking along the slow paths, but is much simpler.
|
||||||
|
Tracked as CVE-2010-2962.
|
||||||
|
|
||||||
|
Reported-by: Kees Cook <kees@ubuntu.com>
|
||||||
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Cc: stable@kernel.org
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
index cfe5978..7749e78 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
@@ -477,8 +477,15 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
|
||||||
|
*/
|
||||||
|
if (args->offset > obj->size || args->size > obj->size ||
|
||||||
|
args->offset + args->size > obj->size) {
|
||||||
|
- drm_gem_object_unreference_unlocked(obj);
|
||||||
|
- return -EINVAL;
|
||||||
|
+ ret = -EINVAL;
|
||||||
|
+ goto err;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!access_ok(VERIFY_WRITE,
|
||||||
|
+ (char __user *)(uintptr_t)args->data_ptr,
|
||||||
|
+ args->size)) {
|
||||||
|
+ ret = -EFAULT;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i915_gem_object_needs_bit17_swizzle(obj)) {
|
||||||
|
@@ -490,8 +497,8 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
|
||||||
|
file_priv);
|
||||||
|
}
|
||||||
|
|
||||||
|
+err:
|
||||||
|
drm_gem_object_unreference_unlocked(obj);
|
||||||
|
-
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -580,8 +587,6 @@ i915_gem_gtt_pwrite_fast(struct drm_device *dev, struct drm_gem_object *obj,
|
||||||
|
|
||||||
|
user_data = (char __user *) (uintptr_t) args->data_ptr;
|
||||||
|
remain = args->size;
|
||||||
|
- if (!access_ok(VERIFY_READ, user_data, remain))
|
||||||
|
- return -EFAULT;
|
||||||
|
|
||||||
|
|
||||||
|
mutex_lock(&dev->struct_mutex);
|
||||||
|
@@ -940,8 +945,15 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
|
||||||
|
*/
|
||||||
|
if (args->offset > obj->size || args->size > obj->size ||
|
||||||
|
args->offset + args->size > obj->size) {
|
||||||
|
- drm_gem_object_unreference_unlocked(obj);
|
||||||
|
- return -EINVAL;
|
||||||
|
+ ret = -EINVAL;
|
||||||
|
+ goto err;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!access_ok(VERIFY_READ,
|
||||||
|
+ (char __user *)(uintptr_t)args->data_ptr,
|
||||||
|
+ args->size)) {
|
||||||
|
+ ret = -EFAULT;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We can only do the GTT pwrite on untiled buffers, as otherwise
|
||||||
|
@@ -975,8 +987,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
|
||||||
|
DRM_INFO("pwrite failed %d\n", ret);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+err:
|
||||||
|
drm_gem_object_unreference_unlocked(obj);
|
||||||
|
-
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
16
drm-intel-big-hammer.patch
Normal file
16
drm-intel-big-hammer.patch
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
index 37427e4..08af9db 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_gem.c
|
||||||
|
@@ -2553,6 +2553,11 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
|
||||||
|
|
||||||
|
mutex_lock(&dev->struct_mutex);
|
||||||
|
|
||||||
|
+ /* We don't get the flushing right for these chipsets, use the
|
||||||
|
+ * big hamer for now to avoid random crashiness. */
|
||||||
|
+ if (IS_I85X(dev) || IS_I865G(dev))
|
||||||
|
+ wbinvd();
|
||||||
|
+
|
||||||
|
i915_verify_inactive(dev, __FILE__, __LINE__);
|
||||||
|
|
||||||
|
if (dev_priv->mm.wedged) {
|
||||||
245
drm-intel-fix-sandybridge.patch
Normal file
245
drm-intel-fix-sandybridge.patch
Normal file
|
|
@ -0,0 +1,245 @@
|
||||||
|
commit 96b6a8c56dbee75f61271f6484f56730beb17a20
|
||||||
|
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
|
||||||
|
Date: Sun Sep 19 10:28:54 2010 +0800
|
||||||
|
|
||||||
|
agp/intel: fix dma mask bits on sandybridge
|
||||||
|
|
||||||
|
[This is backport patch from upstream 877fdacf.]
|
||||||
|
|
||||||
|
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
|
||||||
|
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
|
|
||||||
|
commit 1252894fa9ea0a4e73cb68f49f5913dda9834d6c
|
||||||
|
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
|
||||||
|
Date: Sun Sep 19 10:28:53 2010 +0800
|
||||||
|
|
||||||
|
agp/intel: fix physical address mask bits for sandybridge
|
||||||
|
|
||||||
|
[This is backport patch from upstream 8dfc2b14.]
|
||||||
|
|
||||||
|
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
|
||||||
|
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
|
|
||||||
|
commit 6d51cdffcae15394f615489d57d8ca0e9a91e494
|
||||||
|
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
|
||||||
|
Date: Sun Sep 19 10:28:52 2010 +0800
|
||||||
|
|
||||||
|
intel_agp, drm/i915: Add all sandybridge graphics devices support
|
||||||
|
|
||||||
|
New pci ids for all sandybridge graphics versions on desktop/mobile/server.
|
||||||
|
|
||||||
|
[This is backport patch from upstream commit 4fefe435 and 85540480.]
|
||||||
|
|
||||||
|
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
|
||||||
|
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
|
|
||||||
|
drivers/char/agp/intel-agp.c | 42 ++++++++++++++++++++++++----------
|
||||||
|
drivers/char/agp/intel-agp.h | 17 ++++++++++----
|
||||||
|
drivers/char/agp/intel-gtt.c | 47 +++++++++++++++++++++++++++++++++++++-
|
||||||
|
drivers/gpu/drm/i915/i915_drv.c | 5 ++++
|
||||||
|
4 files changed, 91 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
|
||||||
|
index d836a71..fe9c6e0 100644
|
||||||
|
--- a/drivers/char/agp/intel-agp.c
|
||||||
|
+++ b/drivers/char/agp/intel-agp.c
|
||||||
|
@@ -815,17 +815,27 @@ static const struct intel_driver_description {
|
||||||
|
"HD Graphics", NULL, &intel_i965_driver },
|
||||||
|
{ PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB, PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG,
|
||||||
|
"HD Graphics", NULL, &intel_i965_driver },
|
||||||
|
- { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_IG,
|
||||||
|
- "Sandybridge", NULL, &intel_i965_driver },
|
||||||
|
- { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_IG,
|
||||||
|
- "Sandybridge", NULL, &intel_i965_driver },
|
||||||
|
+ { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT1_IG,
|
||||||
|
+ "Sandybridge", NULL, &intel_gen6_driver },
|
||||||
|
+ { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT2_IG,
|
||||||
|
+ "Sandybridge", NULL, &intel_gen6_driver },
|
||||||
|
+ { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT2_PLUS_IG,
|
||||||
|
+ "Sandybridge", NULL, &intel_gen6_driver },
|
||||||
|
+ { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT1_IG,
|
||||||
|
+ "Sandybridge", NULL, &intel_gen6_driver },
|
||||||
|
+ { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT2_IG,
|
||||||
|
+ "Sandybridge", NULL, &intel_gen6_driver },
|
||||||
|
+ { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT2_PLUS_IG,
|
||||||
|
+ "Sandybridge", NULL, &intel_gen6_driver },
|
||||||
|
+ { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_IG,
|
||||||
|
+ "Sandybridge", NULL, &intel_gen6_driver },
|
||||||
|
{ 0, 0, NULL, NULL, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
static int __devinit intel_gmch_probe(struct pci_dev *pdev,
|
||||||
|
struct agp_bridge_data *bridge)
|
||||||
|
{
|
||||||
|
- int i;
|
||||||
|
+ int i, mask;
|
||||||
|
bridge->driver = NULL;
|
||||||
|
|
||||||
|
for (i = 0; intel_agp_chipsets[i].name != NULL; i++) {
|
||||||
|
@@ -845,14 +855,19 @@ static int __devinit intel_gmch_probe(struct pci_dev *pdev,
|
||||||
|
|
||||||
|
dev_info(&pdev->dev, "Intel %s Chipset\n", intel_agp_chipsets[i].name);
|
||||||
|
|
||||||
|
- if (bridge->driver->mask_memory == intel_i965_mask_memory) {
|
||||||
|
- if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(36)))
|
||||||
|
- dev_err(&intel_private.pcidev->dev,
|
||||||
|
- "set gfx device dma mask 36bit failed!\n");
|
||||||
|
- else
|
||||||
|
- pci_set_consistent_dma_mask(intel_private.pcidev,
|
||||||
|
- DMA_BIT_MASK(36));
|
||||||
|
- }
|
||||||
|
+ if (bridge->driver->mask_memory == intel_gen6_mask_memory)
|
||||||
|
+ mask = 40;
|
||||||
|
+ else if (bridge->driver->mask_memory == intel_i965_mask_memory)
|
||||||
|
+ mask = 36;
|
||||||
|
+ else
|
||||||
|
+ mask = 32;
|
||||||
|
+
|
||||||
|
+ if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(mask)))
|
||||||
|
+ dev_err(&intel_private.pcidev->dev,
|
||||||
|
+ "set gfx device dma mask %d-bit failed!\n", mask);
|
||||||
|
+ else
|
||||||
|
+ pci_set_consistent_dma_mask(intel_private.pcidev,
|
||||||
|
+ DMA_BIT_MASK(mask));
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
@@ -1036,6 +1051,7 @@ static struct pci_device_id agp_intel_pci_table[] = {
|
||||||
|
ID(PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB),
|
||||||
|
ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB),
|
||||||
|
ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB),
|
||||||
|
+ ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB),
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/drivers/char/agp/intel-agp.h b/drivers/char/agp/intel-agp.h
|
||||||
|
index 2547465..ffa87b7 100644
|
||||||
|
--- a/drivers/char/agp/intel-agp.h
|
||||||
|
+++ b/drivers/char/agp/intel-agp.h
|
||||||
|
@@ -194,10 +194,16 @@
|
||||||
|
#define PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB 0x0062
|
||||||
|
#define PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB 0x006a
|
||||||
|
#define PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG 0x0046
|
||||||
|
-#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB 0x0100
|
||||||
|
-#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_IG 0x0102
|
||||||
|
-#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB 0x0104
|
||||||
|
-#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_IG 0x0106
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB 0x0100 /* Desktop */
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT1_IG 0x0102
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT2_IG 0x0112
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT2_PLUS_IG 0x0122
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB 0x0104 /* Mobile */
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT1_IG 0x0106
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT2_IG 0x0116
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT2_PLUS_IG 0x0126
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB 0x0108 /* Server */
|
||||||
|
+#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_IG 0x010A
|
||||||
|
|
||||||
|
/* cover 915 and 945 variants */
|
||||||
|
#define IS_I915 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_E7221_HB || \
|
||||||
|
@@ -224,7 +230,8 @@
|
||||||
|
agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_PINEVIEW_HB)
|
||||||
|
|
||||||
|
#define IS_SNB (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB || \
|
||||||
|
- agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB)
|
||||||
|
+ agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB || \
|
||||||
|
+ agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB)
|
||||||
|
|
||||||
|
#define IS_G4X (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_EAGLELAKE_HB || \
|
||||||
|
agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q45_HB || \
|
||||||
|
diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
|
||||||
|
index ea6997e..ed11c77 100644
|
||||||
|
--- a/drivers/char/agp/intel-gtt.c
|
||||||
|
+++ b/drivers/char/agp/intel-gtt.c
|
||||||
|
@@ -585,8 +585,7 @@ static void intel_i830_init_gtt_entries(void)
|
||||||
|
gtt_entries = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
- } else if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB ||
|
||||||
|
- agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB) {
|
||||||
|
+ } else if (IS_SNB) {
|
||||||
|
/*
|
||||||
|
* SandyBridge has new memory control reg at 0x50.w
|
||||||
|
*/
|
||||||
|
@@ -1318,6 +1317,16 @@ static unsigned long intel_i965_mask_memory(struct agp_bridge_data *bridge,
|
||||||
|
return addr | bridge->driver->masks[type].mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static unsigned long intel_gen6_mask_memory(struct agp_bridge_data *bridge,
|
||||||
|
+ dma_addr_t addr, int type)
|
||||||
|
+{
|
||||||
|
+ /* gen6 has bit11-4 for physical addr bit39-32 */
|
||||||
|
+ addr |= (addr >> 28) & 0xff0;
|
||||||
|
+
|
||||||
|
+ /* Type checking must be done elsewhere */
|
||||||
|
+ return addr | bridge->driver->masks[type].mask;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void intel_i965_get_gtt_range(int *gtt_offset, int *gtt_size)
|
||||||
|
{
|
||||||
|
u16 snb_gmch_ctl;
|
||||||
|
@@ -1337,6 +1346,7 @@ static void intel_i965_get_gtt_range(int *gtt_offset, int *gtt_size)
|
||||||
|
break;
|
||||||
|
case PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB:
|
||||||
|
case PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB:
|
||||||
|
+ case PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB:
|
||||||
|
*gtt_offset = MB(2);
|
||||||
|
|
||||||
|
pci_read_config_word(intel_private.pcidev, SNB_GMCH_CTRL, &snb_gmch_ctl);
|
||||||
|
@@ -1526,6 +1536,39 @@ static const struct agp_bridge_driver intel_i965_driver = {
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
+static const struct agp_bridge_driver intel_gen6_driver = {
|
||||||
|
+ .owner = THIS_MODULE,
|
||||||
|
+ .aperture_sizes = intel_i830_sizes,
|
||||||
|
+ .size_type = FIXED_APER_SIZE,
|
||||||
|
+ .num_aperture_sizes = 4,
|
||||||
|
+ .needs_scratch_page = true,
|
||||||
|
+ .configure = intel_i9xx_configure,
|
||||||
|
+ .fetch_size = intel_i9xx_fetch_size,
|
||||||
|
+ .cleanup = intel_i915_cleanup,
|
||||||
|
+ .mask_memory = intel_gen6_mask_memory,
|
||||||
|
+ .masks = intel_i810_masks,
|
||||||
|
+ .agp_enable = intel_i810_agp_enable,
|
||||||
|
+ .cache_flush = global_cache_flush,
|
||||||
|
+ .create_gatt_table = intel_i965_create_gatt_table,
|
||||||
|
+ .free_gatt_table = intel_i830_free_gatt_table,
|
||||||
|
+ .insert_memory = intel_i915_insert_entries,
|
||||||
|
+ .remove_memory = intel_i915_remove_entries,
|
||||||
|
+ .alloc_by_type = intel_i830_alloc_by_type,
|
||||||
|
+ .free_by_type = intel_i810_free_by_type,
|
||||||
|
+ .agp_alloc_page = agp_generic_alloc_page,
|
||||||
|
+ .agp_alloc_pages = agp_generic_alloc_pages,
|
||||||
|
+ .agp_destroy_page = agp_generic_destroy_page,
|
||||||
|
+ .agp_destroy_pages = agp_generic_destroy_pages,
|
||||||
|
+ .agp_type_to_mask_type = intel_i830_type_to_mask_type,
|
||||||
|
+ .chipset_flush = intel_i915_chipset_flush,
|
||||||
|
+#ifdef USE_PCI_DMA_API
|
||||||
|
+ .agp_map_page = intel_agp_map_page,
|
||||||
|
+ .agp_unmap_page = intel_agp_unmap_page,
|
||||||
|
+ .agp_map_memory = intel_agp_map_memory,
|
||||||
|
+ .agp_unmap_memory = intel_agp_unmap_memory,
|
||||||
|
+#endif
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
static const struct agp_bridge_driver intel_g33_driver = {
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
.aperture_sizes = intel_i830_sizes,
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
|
||||||
|
index 423dc90..07a0cf1 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_drv.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_drv.c
|
||||||
|
@@ -180,7 +180,12 @@ static const struct pci_device_id pciidlist[] = {
|
||||||
|
INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info),
|
||||||
|
INTEL_VGA_DEVICE(0x0046, &intel_ironlake_m_info),
|
||||||
|
INTEL_VGA_DEVICE(0x0102, &intel_sandybridge_d_info),
|
||||||
|
+ INTEL_VGA_DEVICE(0x0112, &intel_sandybridge_d_info),
|
||||||
|
+ INTEL_VGA_DEVICE(0x0122, &intel_sandybridge_d_info),
|
||||||
|
INTEL_VGA_DEVICE(0x0106, &intel_sandybridge_m_info),
|
||||||
|
+ INTEL_VGA_DEVICE(0x0116, &intel_sandybridge_m_info),
|
||||||
|
+ INTEL_VGA_DEVICE(0x0126, &intel_sandybridge_m_info),
|
||||||
|
+ INTEL_VGA_DEVICE(0x010A, &intel_sandybridge_d_info),
|
||||||
|
{0, 0, 0}
|
||||||
|
};
|
||||||
|
|
||||||
19
drm-intel-make-lvds-work.patch
Normal file
19
drm-intel-make-lvds-work.patch
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
diff -up linux-2.6.33.noarch/drivers/gpu/drm/i915/intel_display.c.orig linux-2.6.33.noarch/drivers/gpu/drm/i915/intel_display.c
|
||||||
|
--- linux-2.6.33.noarch/drivers/gpu/drm/i915/intel_display.c.orig 2010-03-31 16:59:39.901995671 -0400
|
||||||
|
+++ linux-2.6.33.noarch/drivers/gpu/drm/i915/intel_display.c 2010-03-31 17:01:05.416996744 -0400
|
||||||
|
@@ -3757,7 +3757,6 @@ struct drm_crtc *intel_get_load_detect_p
|
||||||
|
void intel_release_load_detect_pipe(struct intel_encoder *intel_encoder, int dpms_mode)
|
||||||
|
{
|
||||||
|
struct drm_encoder *encoder = &intel_encoder->enc;
|
||||||
|
- struct drm_device *dev = encoder->dev;
|
||||||
|
struct drm_crtc *crtc = encoder->crtc;
|
||||||
|
struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
|
||||||
|
struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
|
||||||
|
@@ -3767,7 +3766,6 @@ void intel_release_load_detect_pipe(stru
|
||||||
|
intel_encoder->base.encoder = NULL;
|
||||||
|
intel_encoder->load_detect_temp = false;
|
||||||
|
crtc->enabled = drm_helper_crtc_in_use(crtc);
|
||||||
|
- drm_helper_disable_unused_functions(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Switch crtc and output back off if necessary */
|
||||||
1
drm-intel-next.patch
Normal file
1
drm-intel-next.patch
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
empty
|
||||||
44468
drm-next.patch
Normal file
44468
drm-next.patch
Normal file
File diff suppressed because it is too large
Load diff
29
drm-nouveau-acpi-edid-fix.patch
Normal file
29
drm-nouveau-acpi-edid-fix.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
From 3a25c2ea8bd898dff218ef8baa09ea1f05a60b48 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
Date: Fri, 10 Sep 2010 15:33:11 +1000
|
||||||
|
Subject: [PATCH] drm/nouveau: we can't free ACPI EDID, so make a copy that we can
|
||||||
|
|
||||||
|
The rest of the connector code assumes we can kfree() the EDID pointer.
|
||||||
|
This causes things to blow up with the ACPI EDID pointer we get
|
||||||
|
passed.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_acpi.c | 2 +-
|
||||||
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
|
||||||
|
index c17a055..1191526 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
|
||||||
|
@@ -292,6 +292,6 @@ nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector)
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
- nv_connector->edid = edid;
|
||||||
|
+ nv_connector->edid = kmemdup(edid, EDID_LENGTH, GFP_KERNEL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.7.2.2
|
||||||
|
|
||||||
29
drm-nouveau-ibdma-race.patch
Normal file
29
drm-nouveau-ibdma-race.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
From 55647c139cf7d6caeaa08a99b2165763a02ab71a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
Date: Thu, 30 Sep 2010 09:09:42 +1000
|
||||||
|
Subject: [PATCH] drm/nv50: prevent (IB_PUT == IB_GET) for occurring unless idle
|
||||||
|
|
||||||
|
Should fix a DMA race condition I've never seen myself, but could be
|
||||||
|
the culprit in some random hangs that have been reported.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_dma.c | 2 +-
|
||||||
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.c b/drivers/gpu/drm/nouveau/nouveau_dma.c
|
||||||
|
index 9d27acd..eb24e2b 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_dma.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_dma.c
|
||||||
|
@@ -214,7 +214,7 @@ nv50_dma_push_wait(struct nouveau_channel *chan, int count)
|
||||||
|
|
||||||
|
chan->dma.ib_free = get - chan->dma.ib_put;
|
||||||
|
if (chan->dma.ib_free <= 0)
|
||||||
|
- chan->dma.ib_free += chan->dma.ib_max + 1;
|
||||||
|
+ chan->dma.ib_free += chan->dma.ib_max;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
--
|
||||||
|
1.7.2.2
|
||||||
|
|
||||||
33
drm-nouveau-nv50-crtc-update-delay.patch
Normal file
33
drm-nouveau-nv50-crtc-update-delay.patch
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
From b4403874d7df4aa6650da412b707c17754a6e105 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
Date: Tue, 17 Aug 2010 14:20:29 +1000
|
||||||
|
Subject: [PATCH] drm-nouveau-nv50-crtc-update-delay
|
||||||
|
|
||||||
|
rhbz#614552
|
||||||
|
|
||||||
|
Adds a short delay before doing framebuffer-only CRTC updates. Fixes
|
||||||
|
an issue that effects some cards (Quadro NVS295/FX580) where two of
|
||||||
|
these updates in quick succession hangs the display engine.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/nouveau/nv50_crtc.c | 3 +++
|
||||||
|
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c
|
||||||
|
index 5d11ea1..937adfd 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nv50_crtc.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nv50_crtc.c
|
||||||
|
@@ -521,6 +521,9 @@ nv50_crtc_do_mode_set_base(struct drm_crtc *crtc, int x, int y,
|
||||||
|
nouveau_bo_unpin(ofb->nvbo);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (update)
|
||||||
|
+ mdelay(1);
|
||||||
|
+
|
||||||
|
nv_crtc->fb.offset = fb->nvbo->bo.offset - dev_priv->vm_vram_base;
|
||||||
|
nv_crtc->fb.tile_flags = fb->nvbo->tile_flags;
|
||||||
|
nv_crtc->fb.cpp = drm_fb->bits_per_pixel / 8;
|
||||||
|
--
|
||||||
|
1.7.2
|
||||||
|
|
||||||
107
drm-nouveau-nva3-noaccel.patch
Normal file
107
drm-nouveau-nva3-noaccel.patch
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
From 030e105efc9a29c7d34fb59fb0e0a40e54178299 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
Date: Wed, 30 Jun 2010 13:34:05 +1000
|
||||||
|
Subject: [PATCH] drm/nouveau: disable acceleration on NVA3/NVA5/NVA8 by default
|
||||||
|
|
||||||
|
There's an GPU lockup problem for which the cause is currently unknown
|
||||||
|
on these chipsets.
|
||||||
|
|
||||||
|
Until it's resolved, it's better to leave the user with a working system
|
||||||
|
without acceleration than to have random lockups.
|
||||||
|
|
||||||
|
With this patch, acceleration will be off by default if a known problem
|
||||||
|
chipset is detected, but can be re-enabled with nouveau.noaccel=0 on
|
||||||
|
the kernel commandline.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_drv.c | 2 +-
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_drv.h | 1 +
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_state.c | 23 +++++++++++++++++++----
|
||||||
|
3 files changed, 21 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c
|
||||||
|
index b4d958c..02b564c 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_drv.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.c
|
||||||
|
@@ -72,7 +72,7 @@ int nouveau_ignorelid = 0;
|
||||||
|
module_param_named(ignorelid, nouveau_ignorelid, int, 0400);
|
||||||
|
|
||||||
|
MODULE_PARM_DESC(noaccel, "Disable all acceleration");
|
||||||
|
-int nouveau_noaccel = 0;
|
||||||
|
+int nouveau_noaccel = -1;
|
||||||
|
module_param_named(noaccel, nouveau_noaccel, int, 0400);
|
||||||
|
|
||||||
|
MODULE_PARM_DESC(nofbaccel, "Disable fbcon acceleration");
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
|
||||||
|
index 022648e..76ec783 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
|
||||||
|
@@ -493,6 +493,7 @@ enum nouveau_card_type {
|
||||||
|
|
||||||
|
struct drm_nouveau_private {
|
||||||
|
struct drm_device *dev;
|
||||||
|
+ bool noaccel;
|
||||||
|
|
||||||
|
/* the card type, takes NV_* as values */
|
||||||
|
enum nouveau_card_type card_type;
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
|
||||||
|
index 63c2d24..866f437 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_state.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_state.c
|
||||||
|
@@ -454,7 +454,7 @@ nouveau_card_init(struct drm_device *dev)
|
||||||
|
if (ret)
|
||||||
|
goto out_timer;
|
||||||
|
|
||||||
|
- if (nouveau_noaccel)
|
||||||
|
+ if (dev_priv->noaccel)
|
||||||
|
engine->graph.accel_blocked = true;
|
||||||
|
else {
|
||||||
|
/* PGRAPH */
|
||||||
|
@@ -509,10 +509,10 @@ out_display:
|
||||||
|
else
|
||||||
|
nv04_display_destroy(dev);
|
||||||
|
out_fifo:
|
||||||
|
- if (!nouveau_noaccel)
|
||||||
|
+ if (!dev_priv->noaccel)
|
||||||
|
engine->fifo.takedown(dev);
|
||||||
|
out_graph:
|
||||||
|
- if (!nouveau_noaccel)
|
||||||
|
+ if (!dev_priv->noaccel)
|
||||||
|
engine->graph.takedown(dev);
|
||||||
|
out_fb:
|
||||||
|
engine->fb.takedown(dev);
|
||||||
|
@@ -548,7 +548,7 @@ static void nouveau_card_takedown(struct drm_device *dev)
|
||||||
|
dev_priv->channel = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!nouveau_noaccel) {
|
||||||
|
+ if (!dev_priv->noaccel) {
|
||||||
|
engine->fifo.takedown(dev);
|
||||||
|
engine->graph.takedown(dev);
|
||||||
|
}
|
||||||
|
@@ -744,6 +744,21 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
+ if (nouveau_noaccel == -1) {
|
||||||
|
+ switch (dev_priv->chipset) {
|
||||||
|
+ case 0xa3:
|
||||||
|
+ case 0xa5:
|
||||||
|
+ case 0xa8:
|
||||||
|
+ dev_priv->noaccel = true;
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ dev_priv->noaccel = false;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ dev_priv->noaccel = (nouveau_noaccel != 0);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Map PRAMIN BAR, or on older cards, the aperture withing BAR0 */
|
||||||
|
if (dev_priv->card_type >= NV_40) {
|
||||||
|
int ramin_bar = 2;
|
||||||
|
--
|
||||||
|
1.7.2
|
||||||
|
|
||||||
78
drm-nouveau-pusher-intr.patch
Normal file
78
drm-nouveau-pusher-intr.patch
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
From ef0744eff71f519db7641313d1588289f5cb49d2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
Date: Wed, 8 Sep 2010 15:40:30 +1000
|
||||||
|
Subject: [PATCH] drm/nouveau: handle fifo pusher errors better
|
||||||
|
|
||||||
|
The most important part of this change is that we now instruct PFIFO to
|
||||||
|
drop all pending fetches, rather than attempting to skip a single dword
|
||||||
|
and hope that things would magically sort themselves out - they usually
|
||||||
|
don't, and we end up with PFIFO being completely hung.
|
||||||
|
|
||||||
|
This commit also adds somewhat more useful logging when these exceptions
|
||||||
|
occur.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_irq.c | 45 +++++++++++++++++++++++++++------
|
||||||
|
1 files changed, 37 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c
|
||||||
|
index 53360f1..a0f31e4 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_irq.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_irq.c
|
||||||
|
@@ -200,16 +200,45 @@ nouveau_fifo_irq_handler(struct drm_device *dev)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status & NV_PFIFO_INTR_DMA_PUSHER) {
|
||||||
|
- NV_INFO(dev, "PFIFO_DMA_PUSHER - Ch %d\n", chid);
|
||||||
|
+ u32 get = nv_rd32(dev, 0x003244);
|
||||||
|
+ u32 put = nv_rd32(dev, 0x003240);
|
||||||
|
+ u32 push = nv_rd32(dev, 0x003220);
|
||||||
|
+ u32 state = nv_rd32(dev, 0x003228);
|
||||||
|
+
|
||||||
|
+ if (dev_priv->card_type == NV_50) {
|
||||||
|
+ u32 ho_get = nv_rd32(dev, 0x003328);
|
||||||
|
+ u32 ho_put = nv_rd32(dev, 0x003320);
|
||||||
|
+ u32 ib_get = nv_rd32(dev, 0x003334);
|
||||||
|
+ u32 ib_put = nv_rd32(dev, 0x003330);
|
||||||
|
+
|
||||||
|
+ NV_INFO(dev, "PFIFO_DMA_PUSHER - Ch %d Get 0x%02x%08x "
|
||||||
|
+ "Put 0x%02x%08x IbGet 0x%08x IbPut 0x%08x "
|
||||||
|
+ "State 0x%08x Push 0x%08x\n",
|
||||||
|
+ chid, ho_get, get, ho_put, put, ib_get, ib_put,
|
||||||
|
+ state, push);
|
||||||
|
+
|
||||||
|
+ /* METHOD_COUNT, in DMA_STATE on earlier chipsets */
|
||||||
|
+ nv_wr32(dev, 0x003364, 0x00000000);
|
||||||
|
+ if (get != put || ho_get != ho_put) {
|
||||||
|
+ nv_wr32(dev, 0x003244, put);
|
||||||
|
+ nv_wr32(dev, 0x003328, ho_put);
|
||||||
|
+ } else
|
||||||
|
+ if (ib_get != ib_put) {
|
||||||
|
+ nv_wr32(dev, 0x003334, ib_put);
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ NV_INFO(dev, "PFIFO_DMA_PUSHER - Ch %d Get 0x%08x "
|
||||||
|
+ "Put 0x%08x State 0x%08x Push 0x%08x\n",
|
||||||
|
+ chid, get, put, state, push);
|
||||||
|
|
||||||
|
- status &= ~NV_PFIFO_INTR_DMA_PUSHER;
|
||||||
|
- nv_wr32(dev, NV03_PFIFO_INTR_0,
|
||||||
|
- NV_PFIFO_INTR_DMA_PUSHER);
|
||||||
|
+ if (get != put)
|
||||||
|
+ nv_wr32(dev, 0x003244, put);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- nv_wr32(dev, NV04_PFIFO_CACHE1_DMA_STATE, 0x00000000);
|
||||||
|
- if (nv_rd32(dev, NV04_PFIFO_CACHE1_DMA_PUT) != get)
|
||||||
|
- nv_wr32(dev, NV04_PFIFO_CACHE1_DMA_GET,
|
||||||
|
- get + 4);
|
||||||
|
+ nv_wr32(dev, 0x003228, 0x00000000);
|
||||||
|
+ nv_wr32(dev, 0x003220, 0x00000001);
|
||||||
|
+ nv_wr32(dev, 0x002100, NV_PFIFO_INTR_DMA_PUSHER);
|
||||||
|
+ status &= ~NV_PFIFO_INTR_DMA_PUSHER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status & NV_PFIFO_INTR_SEMAPHORE) {
|
||||||
|
--
|
||||||
|
1.7.2.2
|
||||||
139
drm-nouveau-race-fix.patch
Normal file
139
drm-nouveau-race-fix.patch
Normal file
|
|
@ -0,0 +1,139 @@
|
||||||
|
From cfff162fe5d7a69a6a77cef306866145bf5b0567 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
Date: Fri, 23 Jul 2010 09:06:52 +1000
|
||||||
|
Subject: [PATCH] drm/nouveau: fix race condition when under memory pressure
|
||||||
|
|
||||||
|
rhbz#602663
|
||||||
|
|
||||||
|
When VRAM is running out it's possible that the client's push buffers get
|
||||||
|
evicted to main memory. When they're validated back in, the GPU may
|
||||||
|
be used for the copy back to VRAM, but the existing synchronisation code
|
||||||
|
only deals with inter-channel sync, not sync between PFIFO and PGRAPH on
|
||||||
|
the same channel. This leads to PFIFO fetching from command buffers that
|
||||||
|
haven't quite been copied by PGRAPH yet.
|
||||||
|
|
||||||
|
This patch marks push buffers as so, and forces any GPU-assisted buffer
|
||||||
|
moves to be done on a different channel, which triggers the correct
|
||||||
|
synchronisation to happen before we submit them.
|
||||||
|
|
||||||
|
After discussion with another nouveau developer, it was agreed that while
|
||||||
|
this patch is fine in itself, that we'd prefer to work out a nicer, but
|
||||||
|
likely much more invasive, fix upstream.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_bo.c | 15 +++++++++++++
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_drv.h | 1 +
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_gem.c | 36 +++++++++++++++++++++++---------
|
||||||
|
3 files changed, 42 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
|
||||||
|
index d8c341d..494a219 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
|
||||||
|
@@ -36,6 +36,21 @@
|
||||||
|
#include <linux/log2.h>
|
||||||
|
#include <linux/slab.h>
|
||||||
|
|
||||||
|
+int
|
||||||
|
+nouveau_bo_sync_gpu(struct nouveau_bo *nvbo, struct nouveau_channel *chan)
|
||||||
|
+{
|
||||||
|
+ struct nouveau_fence *prev_fence = nvbo->bo.sync_obj;
|
||||||
|
+ int ret;
|
||||||
|
+
|
||||||
|
+ if (!prev_fence || nouveau_fence_channel(prev_fence) == chan)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ spin_lock(&nvbo->bo.lock);
|
||||||
|
+ ret = ttm_bo_wait(&nvbo->bo, false, false, false);
|
||||||
|
+ spin_unlock(&nvbo->bo.lock);
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
nouveau_bo_del_ttm(struct ttm_buffer_object *bo)
|
||||||
|
{
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
|
||||||
|
index 51ccd90..022648e 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
|
||||||
|
@@ -1098,6 +1098,7 @@ extern u16 nouveau_bo_rd16(struct nouveau_bo *nvbo, unsigned index);
|
||||||
|
extern void nouveau_bo_wr16(struct nouveau_bo *nvbo, unsigned index, u16 val);
|
||||||
|
extern u32 nouveau_bo_rd32(struct nouveau_bo *nvbo, unsigned index);
|
||||||
|
extern void nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val);
|
||||||
|
+extern int nouveau_bo_sync_gpu(struct nouveau_bo *, struct nouveau_channel *);
|
||||||
|
|
||||||
|
/* nouveau_fence.c */
|
||||||
|
struct nouveau_fence;
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
|
||||||
|
index 547f2c2..a915dcd 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
|
||||||
|
@@ -361,16 +361,11 @@ validate_list(struct nouveau_channel *chan, struct list_head *list,
|
||||||
|
|
||||||
|
list_for_each_entry(nvbo, list, entry) {
|
||||||
|
struct drm_nouveau_gem_pushbuf_bo *b = &pbbo[nvbo->pbbo_index];
|
||||||
|
- struct nouveau_fence *prev_fence = nvbo->bo.sync_obj;
|
||||||
|
|
||||||
|
- if (prev_fence && nouveau_fence_channel(prev_fence) != chan) {
|
||||||
|
- spin_lock(&nvbo->bo.lock);
|
||||||
|
- ret = ttm_bo_wait(&nvbo->bo, false, false, false);
|
||||||
|
- spin_unlock(&nvbo->bo.lock);
|
||||||
|
- if (unlikely(ret)) {
|
||||||
|
- NV_ERROR(dev, "fail wait other chan\n");
|
||||||
|
- return ret;
|
||||||
|
- }
|
||||||
|
+ ret = nouveau_bo_sync_gpu(nvbo, chan);
|
||||||
|
+ if (unlikely(ret)) {
|
||||||
|
+ NV_ERROR(dev, "fail pre-validate sync\n");
|
||||||
|
+ return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = nouveau_gem_set_domain(nvbo->gem, b->read_domains,
|
||||||
|
@@ -381,7 +376,7 @@ validate_list(struct nouveau_channel *chan, struct list_head *list,
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
- nvbo->channel = chan;
|
||||||
|
+ nvbo->channel = (b->read_domains & (1 << 31)) ? NULL : chan;
|
||||||
|
ret = ttm_bo_validate(&nvbo->bo, &nvbo->placement,
|
||||||
|
false, false, false);
|
||||||
|
nvbo->channel = NULL;
|
||||||
|
@@ -390,6 +385,12 @@ validate_list(struct nouveau_channel *chan, struct list_head *list,
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ ret = nouveau_bo_sync_gpu(nvbo, chan);
|
||||||
|
+ if (unlikely(ret)) {
|
||||||
|
+ NV_ERROR(dev, "fail post-validate sync\n");
|
||||||
|
+ return ret;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (nvbo->bo.offset == b->presumed.offset &&
|
||||||
|
((nvbo->bo.mem.mem_type == TTM_PL_VRAM &&
|
||||||
|
b->presumed.domain & NOUVEAU_GEM_DOMAIN_VRAM) ||
|
||||||
|
@@ -615,6 +616,21 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data,
|
||||||
|
|
||||||
|
mutex_lock(&dev->struct_mutex);
|
||||||
|
|
||||||
|
+ /* Mark push buffers as being used on PFIFO, the validation code
|
||||||
|
+ * will then make sure that if the pushbuf bo moves, that they
|
||||||
|
+ * happen on the kernel channel, which will in turn cause a sync
|
||||||
|
+ * to happen before we try and submit the push buffer.
|
||||||
|
+ */
|
||||||
|
+ for (i = 0; i < req->nr_push; i++) {
|
||||||
|
+ if (push[i].bo_index >= req->nr_buffers) {
|
||||||
|
+ NV_ERROR(dev, "push %d buffer not in list\n", i);
|
||||||
|
+ ret = -EINVAL;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ bo[push[i].bo_index].read_domains |= (1 << 31);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Validate buffer list */
|
||||||
|
ret = nouveau_gem_pushbuf_validate(chan, file_priv, bo, req->buffers,
|
||||||
|
req->nr_buffers, &op, &do_reloc);
|
||||||
|
--
|
||||||
|
1.7.2
|
||||||
|
|
||||||
6053
drm-nouveau-updates.patch
Normal file
6053
drm-nouveau-updates.patch
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,32 @@
|
||||||
|
commit 93d2725f536c17a85c35051beb4c41b7c1707db0
|
||||||
|
Author: Alex Deucher <alexdeucher@gmail.com>
|
||||||
|
Date: Mon Oct 25 19:44:00 2010 -0400
|
||||||
|
|
||||||
|
drm/radeon/kms: MC vram map needs to be >= pci aperture size
|
||||||
|
|
||||||
|
The vram map in the radeon memory controller needs to be
|
||||||
|
>= the pci aperture size. Fixes:
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=28402
|
||||||
|
|
||||||
|
The problematic cards in the above bug have 64 MB of vram,
|
||||||
|
but the pci aperture is 128 MB and the MC vram map was only
|
||||||
|
64 MB. This can lead to hangs.
|
||||||
|
|
||||||
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
||||||
|
Cc: stable@kernel.org
|
||||||
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
|
||||||
|
index a89a15a..a3378ba 100644
|
||||||
|
--- a/drivers/gpu/drm/radeon/r100.c
|
||||||
|
+++ b/drivers/gpu/drm/radeon/r100.c
|
||||||
|
@@ -2321,6 +2321,9 @@ void r100_vram_init_sizes(struct radeon_device *rdev)
|
||||||
|
/* Fix for RN50, M6, M7 with 8/16/32(??) MBs of VRAM -
|
||||||
|
* Novell bug 204882 + along with lots of ubuntu ones
|
||||||
|
*/
|
||||||
|
+ if (rdev->mc.aper_size > config_aper_size)
|
||||||
|
+ config_aper_size = rdev->mc.aper_size;
|
||||||
|
+
|
||||||
|
if (config_aper_size > rdev->mc.real_vram_size)
|
||||||
|
rdev->mc.mc_vram_size = config_aper_size;
|
||||||
|
else
|
||||||
151
drm-radeon-resume-fixes.patch
Normal file
151
drm-radeon-resume-fixes.patch
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
diff -ur linux-2.6.34.i686/drivers/gpu/drm/radeon/radeon_device.c radeon-fixes.i686/drivers/gpu/drm/radeon/radeon_device.c
|
||||||
|
--- linux-2.6.34.i686/drivers/gpu/drm/radeon/radeon_device.c 2010-09-02 21:50:43.000000000 +1000
|
||||||
|
+++ radeon-fixes.i686/drivers/gpu/drm/radeon/radeon_device.c 2010-09-02 21:13:09.000000000 +1000
|
||||||
|
@@ -777,6 +777,7 @@
|
||||||
|
|
||||||
|
int radeon_resume_kms(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
+ struct drm_connector *connector;
|
||||||
|
struct radeon_device *rdev = dev->dev_private;
|
||||||
|
|
||||||
|
if (rdev->powered_down)
|
||||||
|
@@ -795,6 +796,12 @@
|
||||||
|
radeon_resume(rdev);
|
||||||
|
radeon_pm_resume(rdev);
|
||||||
|
radeon_restore_bios_scratch_regs(rdev);
|
||||||
|
+
|
||||||
|
+ /* turn on display hw */
|
||||||
|
+ list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
||||||
|
+ drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
radeon_fbdev_set_suspend(rdev, 0);
|
||||||
|
release_console_sem();
|
||||||
|
|
||||||
|
diff -ur linux-2.6.34.i686/drivers/gpu/drm/radeon/radeon.h radeon-fixes.i686/drivers/gpu/drm/radeon/radeon.h
|
||||||
|
--- linux-2.6.34.i686/drivers/gpu/drm/radeon/radeon.h 2010-09-02 21:50:42.000000000 +1000
|
||||||
|
+++ radeon-fixes.i686/drivers/gpu/drm/radeon/radeon.h 2010-09-02 21:36:50.000000000 +1000
|
||||||
|
@@ -620,7 +620,8 @@
|
||||||
|
DYNPM_STATE_DISABLED,
|
||||||
|
DYNPM_STATE_MINIMUM,
|
||||||
|
DYNPM_STATE_PAUSED,
|
||||||
|
- DYNPM_STATE_ACTIVE
|
||||||
|
+ DYNPM_STATE_ACTIVE,
|
||||||
|
+ DYNPM_STATE_SUSPENDED,
|
||||||
|
};
|
||||||
|
enum radeon_dynpm_action {
|
||||||
|
DYNPM_ACTION_NONE,
|
||||||
|
diff -ur linux-2.6.34.i686/drivers/gpu/drm/radeon/radeon_pm.c radeon-fixes.i686/drivers/gpu/drm/radeon/radeon_pm.c
|
||||||
|
--- linux-2.6.34.i686/drivers/gpu/drm/radeon/radeon_pm.c 2010-09-02 21:50:42.000000000 +1000
|
||||||
|
+++ radeon-fixes.i686/drivers/gpu/drm/radeon/radeon_pm.c 2010-09-02 21:36:50.000000000 +1000
|
||||||
|
@@ -397,13 +397,20 @@
|
||||||
|
rdev->pm.dynpm_planned_action = DYNPM_ACTION_DEFAULT;
|
||||||
|
mutex_unlock(&rdev->pm.mutex);
|
||||||
|
} else if (strncmp("profile", buf, strlen("profile")) == 0) {
|
||||||
|
+ bool flush_wq = false;
|
||||||
|
+
|
||||||
|
mutex_lock(&rdev->pm.mutex);
|
||||||
|
- rdev->pm.pm_method = PM_METHOD_PROFILE;
|
||||||
|
+ if (rdev->pm.pm_method == PM_METHOD_DYNPM) {
|
||||||
|
+ cancel_delayed_work(&rdev->pm.dynpm_idle_work);
|
||||||
|
+ flush_wq = true;
|
||||||
|
+ }
|
||||||
|
/* disable dynpm */
|
||||||
|
rdev->pm.dynpm_state = DYNPM_STATE_DISABLED;
|
||||||
|
rdev->pm.dynpm_planned_action = DYNPM_ACTION_NONE;
|
||||||
|
- cancel_delayed_work(&rdev->pm.dynpm_idle_work);
|
||||||
|
+ rdev->pm.pm_method = PM_METHOD_PROFILE;
|
||||||
|
mutex_unlock(&rdev->pm.mutex);
|
||||||
|
+ if (flush_wq)
|
||||||
|
+ flush_workqueue(rdev->wq);
|
||||||
|
} else {
|
||||||
|
DRM_ERROR("invalid power method!\n");
|
||||||
|
goto fail;
|
||||||
|
@@ -418,9 +425,18 @@
|
||||||
|
|
||||||
|
void radeon_pm_suspend(struct radeon_device *rdev)
|
||||||
|
{
|
||||||
|
+ bool flush_wq = false;
|
||||||
|
+
|
||||||
|
mutex_lock(&rdev->pm.mutex);
|
||||||
|
- cancel_delayed_work(&rdev->pm.dynpm_idle_work);
|
||||||
|
+ if (rdev->pm.pm_method == PM_METHOD_DYNPM) {
|
||||||
|
+ cancel_delayed_work(&rdev->pm.dynpm_idle_work);
|
||||||
|
+ if (rdev->pm.dynpm_state == DYNPM_STATE_ACTIVE)
|
||||||
|
+ rdev->pm.dynpm_state = DYNPM_STATE_SUSPENDED;
|
||||||
|
+ flush_wq = true;
|
||||||
|
+ }
|
||||||
|
mutex_unlock(&rdev->pm.mutex);
|
||||||
|
+ if (flush_wq)
|
||||||
|
+ flush_workqueue(rdev->wq);
|
||||||
|
}
|
||||||
|
|
||||||
|
void radeon_pm_resume(struct radeon_device *rdev)
|
||||||
|
@@ -432,6 +448,12 @@
|
||||||
|
rdev->pm.current_sclk = rdev->clock.default_sclk;
|
||||||
|
rdev->pm.current_mclk = rdev->clock.default_mclk;
|
||||||
|
rdev->pm.current_vddc = rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
|
||||||
|
+ if (rdev->pm.pm_method == PM_METHOD_DYNPM
|
||||||
|
+ && rdev->pm.dynpm_state == DYNPM_STATE_SUSPENDED) {
|
||||||
|
+ rdev->pm.dynpm_state = DYNPM_STATE_ACTIVE;
|
||||||
|
+ queue_delayed_work(rdev->wq, &rdev->pm.dynpm_idle_work,
|
||||||
|
+ msecs_to_jiffies(RADEON_IDLE_LOOP_MS));
|
||||||
|
+ }
|
||||||
|
mutex_unlock(&rdev->pm.mutex);
|
||||||
|
radeon_pm_compute_clocks(rdev);
|
||||||
|
}
|
||||||
|
@@ -486,6 +508,8 @@
|
||||||
|
void radeon_pm_fini(struct radeon_device *rdev)
|
||||||
|
{
|
||||||
|
if (rdev->pm.num_power_states > 1) {
|
||||||
|
+ bool flush_wq = false;
|
||||||
|
+
|
||||||
|
mutex_lock(&rdev->pm.mutex);
|
||||||
|
if (rdev->pm.pm_method == PM_METHOD_PROFILE) {
|
||||||
|
rdev->pm.profile = PM_PROFILE_DEFAULT;
|
||||||
|
@@ -493,13 +517,16 @@
|
||||||
|
radeon_pm_set_clocks(rdev);
|
||||||
|
} else if (rdev->pm.pm_method == PM_METHOD_DYNPM) {
|
||||||
|
/* cancel work */
|
||||||
|
- cancel_delayed_work_sync(&rdev->pm.dynpm_idle_work);
|
||||||
|
+ cancel_delayed_work(&rdev->pm.dynpm_idle_work);
|
||||||
|
+ flush_wq = true;
|
||||||
|
/* reset default clocks */
|
||||||
|
rdev->pm.dynpm_state = DYNPM_STATE_DISABLED;
|
||||||
|
rdev->pm.dynpm_planned_action = DYNPM_ACTION_DEFAULT;
|
||||||
|
radeon_pm_set_clocks(rdev);
|
||||||
|
}
|
||||||
|
mutex_unlock(&rdev->pm.mutex);
|
||||||
|
+ if (flush_wq)
|
||||||
|
+ flush_workqueue(rdev->wq);
|
||||||
|
|
||||||
|
device_remove_file(rdev->dev, &dev_attr_power_profile);
|
||||||
|
device_remove_file(rdev->dev, &dev_attr_power_method);
|
||||||
|
@@ -720,12 +747,12 @@
|
||||||
|
radeon_pm_get_dynpm_state(rdev);
|
||||||
|
radeon_pm_set_clocks(rdev);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ queue_delayed_work(rdev->wq, &rdev->pm.dynpm_idle_work,
|
||||||
|
+ msecs_to_jiffies(RADEON_IDLE_LOOP_MS));
|
||||||
|
}
|
||||||
|
mutex_unlock(&rdev->pm.mutex);
|
||||||
|
ttm_bo_unlock_delayed_workqueue(&rdev->mman.bdev, resched);
|
||||||
|
-
|
||||||
|
- queue_delayed_work(rdev->wq, &rdev->pm.dynpm_idle_work,
|
||||||
|
- msecs_to_jiffies(RADEON_IDLE_LOOP_MS));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
diff -ur linux-2.6.34.i686/drivers/gpu/drm/ttm/ttm_page_alloc.c radeon-fixes.i686/drivers/gpu/drm/ttm/ttm_page_alloc.c
|
||||||
|
--- linux-2.6.34.i686/drivers/gpu/drm/ttm/ttm_page_alloc.c 2010-09-02 21:50:42.000000000 +1000
|
||||||
|
+++ radeon-fixes.i686/drivers/gpu/drm/ttm/ttm_page_alloc.c 2010-09-02 21:13:14.000000000 +1000
|
||||||
|
@@ -667,7 +667,7 @@
|
||||||
|
{
|
||||||
|
struct ttm_page_pool *pool = ttm_get_pool(flags, cstate);
|
||||||
|
struct page *p = NULL;
|
||||||
|
- int gfp_flags = 0;
|
||||||
|
+ int gfp_flags = GFP_USER;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
/* set zero flag for page allocation if required */
|
||||||
|
|
@ -0,0 +1,958 @@
|
||||||
|
From 5b904034b0ab5195d971b139d0c0b67ab21b063c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kyle McMartin <kyle@dreadnought.i.jkkm.org>
|
||||||
|
Date: Mon, 21 Jun 2010 20:33:16 +0100
|
||||||
|
Subject: Revert "drm/fbdev: rework output polling to be back in the core. (v4)"
|
||||||
|
|
||||||
|
This reverts commit eb1f8e4f3be898df808e2dfc131099f5831d491d.
|
||||||
|
|
||||||
|
Conflicts:
|
||||||
|
|
||||||
|
drivers/gpu/drm/drm_crtc_helper.c
|
||||||
|
drivers/gpu/drm/i915/i915_dma.c
|
||||||
|
drivers/gpu/drm/i915/intel_fb.c
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_fbcon.c
|
||||||
|
drivers/gpu/drm/radeon/radeon_fb.c
|
||||||
|
include/drm/drm_crtc_helper.h
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/Kconfig | 2 +-
|
||||||
|
drivers/gpu/drm/drm_crtc_helper.c | 111 ------------------------
|
||||||
|
drivers/gpu/drm/drm_fb_helper.c | 123 +++++++++++++++++++++++----
|
||||||
|
drivers/gpu/drm/i915/i915_dma.c | 1 -
|
||||||
|
drivers/gpu/drm/i915/i915_irq.c | 3 +-
|
||||||
|
drivers/gpu/drm/i915/intel_crt.c | 5 -
|
||||||
|
drivers/gpu/drm/i915/intel_display.c | 2 -
|
||||||
|
drivers/gpu/drm/i915/intel_dp.c | 2 -
|
||||||
|
drivers/gpu/drm/i915/intel_drv.h | 2 +-
|
||||||
|
drivers/gpu/drm/i915/intel_fb.c | 14 ++--
|
||||||
|
drivers/gpu/drm/i915/intel_hdmi.c | 1 -
|
||||||
|
drivers/gpu/drm/i915/intel_sdvo.c | 2 -
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_connector.c | 12 ---
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_display.c | 1 -
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 13 ++-
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_fbcon.h | 2 +-
|
||||||
|
drivers/gpu/drm/nouveau/nouveau_state.c | 5 +-
|
||||||
|
drivers/gpu/drm/nouveau/nv50_display.c | 2 +-
|
||||||
|
drivers/gpu/drm/radeon/radeon_connectors.c | 13 ---
|
||||||
|
drivers/gpu/drm/radeon/radeon_display.c | 10 --
|
||||||
|
drivers/gpu/drm/radeon/radeon_fb.c | 15 +++-
|
||||||
|
drivers/gpu/drm/radeon/radeon_irq_kms.c | 5 +-
|
||||||
|
drivers/gpu/drm/radeon/radeon_mode.h | 3 +-
|
||||||
|
include/drm/drm_crtc.h | 17 ----
|
||||||
|
include/drm/drm_crtc_helper.h | 6 --
|
||||||
|
include/drm/drm_fb_helper.h | 13 +++-
|
||||||
|
26 files changed, 155 insertions(+), 230 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
|
||||||
|
index c2711c6..a51a1e4 100644
|
||||||
|
--- a/drivers/gpu/drm/Kconfig
|
||||||
|
+++ b/drivers/gpu/drm/Kconfig
|
||||||
|
@@ -9,7 +9,6 @@ menuconfig DRM
|
||||||
|
depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && MMU
|
||||||
|
select I2C
|
||||||
|
select I2C_ALGOBIT
|
||||||
|
- select SLOW_WORK
|
||||||
|
help
|
||||||
|
Kernel-level support for the Direct Rendering Infrastructure (DRI)
|
||||||
|
introduced in XFree86 4.0. If you say Y here, you need to select
|
||||||
|
@@ -24,6 +23,7 @@ config DRM_KMS_HELPER
|
||||||
|
depends on DRM
|
||||||
|
select FB
|
||||||
|
select FRAMEBUFFER_CONSOLE if !EMBEDDED
|
||||||
|
+ select SLOW_WORK
|
||||||
|
help
|
||||||
|
FB and CRTC helpers for KMS drivers.
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
|
||||||
|
index 9b2a541..b142ac2 100644
|
||||||
|
--- a/drivers/gpu/drm/drm_crtc_helper.c
|
||||||
|
+++ b/drivers/gpu/drm/drm_crtc_helper.c
|
||||||
|
@@ -807,114 +807,3 @@ int drm_helper_resume_force_mode(struct drm_device *dev)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_helper_resume_force_mode);
|
||||||
|
-
|
||||||
|
-static struct slow_work_ops output_poll_ops;
|
||||||
|
-
|
||||||
|
-#define DRM_OUTPUT_POLL_PERIOD (10*HZ)
|
||||||
|
-static void output_poll_execute(struct slow_work *work)
|
||||||
|
-{
|
||||||
|
- struct delayed_slow_work *delayed_work = container_of(work, struct delayed_slow_work, work);
|
||||||
|
- struct drm_device *dev = container_of(delayed_work, struct drm_device, mode_config.output_poll_slow_work);
|
||||||
|
- struct drm_connector *connector;
|
||||||
|
- enum drm_connector_status old_status, status;
|
||||||
|
- bool repoll = false, changed = false;
|
||||||
|
- int ret;
|
||||||
|
-
|
||||||
|
- mutex_lock(&dev->mode_config.mutex);
|
||||||
|
- list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
||||||
|
-
|
||||||
|
- /* if this is HPD or polled don't check it -
|
||||||
|
- TV out for instance */
|
||||||
|
- if (!connector->polled)
|
||||||
|
- continue;
|
||||||
|
-
|
||||||
|
- else if (connector->polled & (DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT))
|
||||||
|
- repoll = true;
|
||||||
|
-
|
||||||
|
- old_status = connector->status;
|
||||||
|
- /* if we are connected and don't want to poll for disconnect
|
||||||
|
- skip it */
|
||||||
|
- if (old_status == connector_status_connected &&
|
||||||
|
- !(connector->polled & DRM_CONNECTOR_POLL_DISCONNECT) &&
|
||||||
|
- !(connector->polled & DRM_CONNECTOR_POLL_HPD))
|
||||||
|
- continue;
|
||||||
|
-
|
||||||
|
- status = connector->funcs->detect(connector);
|
||||||
|
- if (old_status != status)
|
||||||
|
- changed = true;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- mutex_unlock(&dev->mode_config.mutex);
|
||||||
|
-
|
||||||
|
- if (changed) {
|
||||||
|
- /* send a uevent + call fbdev */
|
||||||
|
- drm_sysfs_hotplug_event(dev);
|
||||||
|
- if (dev->mode_config.funcs->output_poll_changed)
|
||||||
|
- dev->mode_config.funcs->output_poll_changed(dev);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (repoll) {
|
||||||
|
- ret = delayed_slow_work_enqueue(delayed_work, DRM_OUTPUT_POLL_PERIOD);
|
||||||
|
- if (ret)
|
||||||
|
- DRM_ERROR("delayed enqueue failed %d\n", ret);
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-void drm_kms_helper_poll_disable(struct drm_device *dev)
|
||||||
|
-{
|
||||||
|
- if (!dev->mode_config.poll_enabled)
|
||||||
|
- return;
|
||||||
|
- delayed_slow_work_cancel(&dev->mode_config.output_poll_slow_work);
|
||||||
|
-}
|
||||||
|
-EXPORT_SYMBOL(drm_kms_helper_poll_disable);
|
||||||
|
-
|
||||||
|
-void drm_kms_helper_poll_enable(struct drm_device *dev)
|
||||||
|
-{
|
||||||
|
- bool poll = false;
|
||||||
|
- struct drm_connector *connector;
|
||||||
|
- int ret;
|
||||||
|
-
|
||||||
|
- list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
||||||
|
- if (connector->polled)
|
||||||
|
- poll = true;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (poll) {
|
||||||
|
- ret = delayed_slow_work_enqueue(&dev->mode_config.output_poll_slow_work, DRM_OUTPUT_POLL_PERIOD);
|
||||||
|
- if (ret)
|
||||||
|
- DRM_ERROR("delayed enqueue failed %d\n", ret);
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-EXPORT_SYMBOL(drm_kms_helper_poll_enable);
|
||||||
|
-
|
||||||
|
-void drm_kms_helper_poll_init(struct drm_device *dev)
|
||||||
|
-{
|
||||||
|
- slow_work_register_user(THIS_MODULE);
|
||||||
|
- delayed_slow_work_init(&dev->mode_config.output_poll_slow_work,
|
||||||
|
- &output_poll_ops);
|
||||||
|
- dev->mode_config.poll_enabled = true;
|
||||||
|
-
|
||||||
|
- drm_kms_helper_poll_enable(dev);
|
||||||
|
-}
|
||||||
|
-EXPORT_SYMBOL(drm_kms_helper_poll_init);
|
||||||
|
-
|
||||||
|
-void drm_kms_helper_poll_fini(struct drm_device *dev)
|
||||||
|
-{
|
||||||
|
- drm_kms_helper_poll_disable(dev);
|
||||||
|
- slow_work_unregister_user(THIS_MODULE);
|
||||||
|
-}
|
||||||
|
-EXPORT_SYMBOL(drm_kms_helper_poll_fini);
|
||||||
|
-
|
||||||
|
-void drm_helper_hpd_irq_event(struct drm_device *dev)
|
||||||
|
-{
|
||||||
|
- if (!dev->mode_config.poll_enabled)
|
||||||
|
- return;
|
||||||
|
- delayed_slow_work_cancel(&dev->mode_config.output_poll_slow_work);
|
||||||
|
- /* schedule a slow work asap */
|
||||||
|
- delayed_slow_work_enqueue(&dev->mode_config.output_poll_slow_work, 0);
|
||||||
|
-}
|
||||||
|
-EXPORT_SYMBOL(drm_helper_hpd_irq_event);
|
||||||
|
-
|
||||||
|
-static struct slow_work_ops output_poll_ops = {
|
||||||
|
- .execute = output_poll_execute,
|
||||||
|
-};
|
||||||
|
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
|
||||||
|
index 08c4c92..dcc6601 100644
|
||||||
|
--- a/drivers/gpu/drm/drm_fb_helper.c
|
||||||
|
+++ b/drivers/gpu/drm/drm_fb_helper.c
|
||||||
|
@@ -42,6 +42,8 @@ MODULE_LICENSE("GPL and additional rights");
|
||||||
|
|
||||||
|
static LIST_HEAD(kernel_fb_helper_list);
|
||||||
|
|
||||||
|
+static struct slow_work_ops output_status_change_ops;
|
||||||
|
+
|
||||||
|
/* simple single crtc case helper function */
|
||||||
|
int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper)
|
||||||
|
{
|
||||||
|
@@ -423,13 +425,19 @@ static void drm_fb_helper_crtc_free(struct drm_fb_helper *helper)
|
||||||
|
|
||||||
|
int drm_fb_helper_init(struct drm_device *dev,
|
||||||
|
struct drm_fb_helper *fb_helper,
|
||||||
|
- int crtc_count, int max_conn_count)
|
||||||
|
+ int crtc_count, int max_conn_count,
|
||||||
|
+ bool polled)
|
||||||
|
{
|
||||||
|
struct drm_crtc *crtc;
|
||||||
|
int ret = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
fb_helper->dev = dev;
|
||||||
|
+ fb_helper->poll_enabled = polled;
|
||||||
|
+
|
||||||
|
+ slow_work_register_user(THIS_MODULE);
|
||||||
|
+ delayed_slow_work_init(&fb_helper->output_status_change_slow_work,
|
||||||
|
+ &output_status_change_ops);
|
||||||
|
|
||||||
|
INIT_LIST_HEAD(&fb_helper->kernel_fb_list);
|
||||||
|
|
||||||
|
@@ -486,6 +494,8 @@ void drm_fb_helper_fini(struct drm_fb_helper *fb_helper)
|
||||||
|
|
||||||
|
drm_fb_helper_crtc_free(fb_helper);
|
||||||
|
|
||||||
|
+ delayed_slow_work_cancel(&fb_helper->output_status_change_slow_work);
|
||||||
|
+ slow_work_unregister_user(THIS_MODULE);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_fb_helper_fini);
|
||||||
|
|
||||||
|
@@ -703,7 +713,7 @@ int drm_fb_helper_set_par(struct fb_info *info)
|
||||||
|
|
||||||
|
if (fb_helper->delayed_hotplug) {
|
||||||
|
fb_helper->delayed_hotplug = false;
|
||||||
|
- drm_fb_helper_hotplug_event(fb_helper);
|
||||||
|
+ delayed_slow_work_enqueue(&fb_helper->output_status_change_slow_work, 0);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@@ -816,7 +826,7 @@ int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
|
||||||
|
if (crtc_count == 0 || sizes.fb_width == -1 || sizes.fb_height == -1) {
|
||||||
|
/* hmm everyone went away - assume VGA cable just fell out
|
||||||
|
and will come back later. */
|
||||||
|
- DRM_INFO("Cannot find any crtc or sizes - going 1024x768\n");
|
||||||
|
+ DRM_ERROR("Cannot find any crtc or sizes - going 1024x768\n");
|
||||||
|
sizes.fb_width = sizes.surface_width = 1024;
|
||||||
|
sizes.fb_height = sizes.surface_height = 768;
|
||||||
|
}
|
||||||
|
@@ -1362,7 +1372,12 @@ bool drm_fb_helper_initial_config(struct drm_fb_helper *fb_helper, int bpp_sel)
|
||||||
|
* we shouldn't end up with no modes here.
|
||||||
|
*/
|
||||||
|
if (count == 0) {
|
||||||
|
- printk(KERN_INFO "No connectors reported connected with modes\n");
|
||||||
|
+ if (fb_helper->poll_enabled) {
|
||||||
|
+ delayed_slow_work_enqueue(&fb_helper->output_status_change_slow_work,
|
||||||
|
+ 5*HZ);
|
||||||
|
+ printk(KERN_INFO "No connectors reported connected with modes - started polling\n");
|
||||||
|
+ } else
|
||||||
|
+ printk(KERN_INFO "No connectors reported connected with modes\n");
|
||||||
|
}
|
||||||
|
drm_setup_crtcs(fb_helper);
|
||||||
|
|
||||||
|
@@ -1370,16 +1385,71 @@ bool drm_fb_helper_initial_config(struct drm_fb_helper *fb_helper, int bpp_sel)
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_fb_helper_initial_config);
|
||||||
|
|
||||||
|
-bool drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
|
||||||
|
+/* we got a hotplug irq - need to update fbcon */
|
||||||
|
+void drm_helper_fb_hpd_irq_event(struct drm_fb_helper *fb_helper)
|
||||||
|
+{
|
||||||
|
+ /* if we don't have the fbdev registered yet do nothing */
|
||||||
|
+ if (!fb_helper->fbdev)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ /* schedule a slow work asap */
|
||||||
|
+ delayed_slow_work_enqueue(&fb_helper->output_status_change_slow_work, 0);
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL(drm_helper_fb_hpd_irq_event);
|
||||||
|
+
|
||||||
|
+bool drm_helper_fb_hotplug_event(struct drm_fb_helper *fb_helper, bool polled)
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
+ int ret;
|
||||||
|
u32 max_width, max_height, bpp_sel;
|
||||||
|
- bool bound = false, crtcs_bound = false;
|
||||||
|
- struct drm_crtc *crtc;
|
||||||
|
|
||||||
|
if (!fb_helper->fb)
|
||||||
|
return false;
|
||||||
|
+ DRM_DEBUG_KMS("\n");
|
||||||
|
+
|
||||||
|
+ max_width = fb_helper->fb->width;
|
||||||
|
+ max_height = fb_helper->fb->height;
|
||||||
|
+ bpp_sel = fb_helper->fb->bits_per_pixel;
|
||||||
|
+
|
||||||
|
+ count = drm_fb_helper_probe_connector_modes(fb_helper, max_width,
|
||||||
|
+ max_height);
|
||||||
|
+ if (fb_helper->poll_enabled && !polled) {
|
||||||
|
+ if (count) {
|
||||||
|
+ delayed_slow_work_cancel(&fb_helper->output_status_change_slow_work);
|
||||||
|
+ } else {
|
||||||
|
+ ret = delayed_slow_work_enqueue(&fb_helper->output_status_change_slow_work, 5*HZ);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ drm_setup_crtcs(fb_helper);
|
||||||
|
+
|
||||||
|
+ return drm_fb_helper_single_fb_probe(fb_helper, bpp_sel);
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL(drm_helper_fb_hotplug_event);
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * delayed work queue execution function
|
||||||
|
+ * - check if fbdev is actually in use on the gpu
|
||||||
|
+ * - if not set delayed flag and repoll if necessary
|
||||||
|
+ * - check for connector status change
|
||||||
|
+ * - repoll if 0 modes found
|
||||||
|
+ *- call driver output status changed notifier
|
||||||
|
+ */
|
||||||
|
+static void output_status_change_execute(struct slow_work *work)
|
||||||
|
+{
|
||||||
|
+ struct delayed_slow_work *delayed_work = container_of(work, struct delayed_slow_work, work);
|
||||||
|
+ struct drm_fb_helper *fb_helper = container_of(delayed_work, struct drm_fb_helper, output_status_change_slow_work);
|
||||||
|
+ struct drm_connector *connector;
|
||||||
|
+ enum drm_connector_status old_status, status;
|
||||||
|
+ bool repoll, changed = false;
|
||||||
|
+ int ret;
|
||||||
|
+ int i;
|
||||||
|
+ bool bound = false, crtcs_bound = false;
|
||||||
|
+ struct drm_crtc *crtc;
|
||||||
|
|
||||||
|
+ repoll = fb_helper->poll_enabled;
|
||||||
|
+
|
||||||
|
+ /* first of all check the fbcon framebuffer is actually bound to any crtc */
|
||||||
|
+ /* take into account that no crtc at all maybe bound */
|
||||||
|
list_for_each_entry(crtc, &fb_helper->dev->mode_config.crtc_list, head) {
|
||||||
|
if (crtc->fb)
|
||||||
|
crtcs_bound = true;
|
||||||
|
@@ -1387,21 +1457,38 @@ bool drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
|
||||||
|
bound = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!bound && crtcs_bound) {
|
||||||
|
+ if (bound == false && crtcs_bound) {
|
||||||
|
fb_helper->delayed_hotplug = true;
|
||||||
|
- return false;
|
||||||
|
+ goto requeue;
|
||||||
|
}
|
||||||
|
- DRM_DEBUG_KMS("\n");
|
||||||
|
|
||||||
|
- max_width = fb_helper->fb->width;
|
||||||
|
- max_height = fb_helper->fb->height;
|
||||||
|
- bpp_sel = fb_helper->fb->bits_per_pixel;
|
||||||
|
+ for (i = 0; i < fb_helper->connector_count; i++) {
|
||||||
|
+ connector = fb_helper->connector_info[i]->connector;
|
||||||
|
+ old_status = connector->status;
|
||||||
|
+ status = connector->funcs->detect(connector);
|
||||||
|
+ if (old_status != status) {
|
||||||
|
+ changed = true;
|
||||||
|
+ }
|
||||||
|
+ if (status == connector_status_connected && repoll) {
|
||||||
|
+ DRM_DEBUG("%s is connected - stop polling\n", drm_get_connector_name(connector));
|
||||||
|
+ repoll = false;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- count = drm_fb_helper_probe_connector_modes(fb_helper, max_width,
|
||||||
|
- max_height);
|
||||||
|
- drm_setup_crtcs(fb_helper);
|
||||||
|
+ if (changed) {
|
||||||
|
+ if (fb_helper->funcs->fb_output_status_changed)
|
||||||
|
+ fb_helper->funcs->fb_output_status_changed(fb_helper);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- return drm_fb_helper_single_fb_probe(fb_helper, bpp_sel);
|
||||||
|
+requeue:
|
||||||
|
+ if (repoll) {
|
||||||
|
+ ret = delayed_slow_work_enqueue(delayed_work, 5*HZ);
|
||||||
|
+ if (ret)
|
||||||
|
+ DRM_ERROR("delayed enqueue failed %d\n", ret);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
-EXPORT_SYMBOL(drm_fb_helper_hotplug_event);
|
||||||
|
+
|
||||||
|
+static struct slow_work_ops output_status_change_ops = {
|
||||||
|
+ .execute = output_status_change_execute,
|
||||||
|
+};
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
|
||||||
|
index 59a2bf8..76ace2d 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_dma.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_dma.c
|
||||||
|
@@ -1430,7 +1430,6 @@ static int i915_load_modeset_init(struct drm_device *dev,
|
||||||
|
if (ret)
|
||||||
|
goto cleanup_irq;
|
||||||
|
|
||||||
|
- drm_kms_helper_poll_init(dev);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
cleanup_irq:
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
|
||||||
|
index 2479be0..6350bd3 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_irq.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_irq.c
|
||||||
|
@@ -271,7 +271,8 @@ static void i915_hotplug_work_func(struct work_struct *work)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* Just fire off a uevent and let userspace tell us what to do */
|
||||||
|
- drm_helper_hpd_irq_event(dev);
|
||||||
|
+ intelfb_hotplug(dev, false);
|
||||||
|
+ drm_sysfs_hotplug_event(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void i915_handle_rps_change(struct drm_device *dev)
|
||||||
|
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
|
||||||
|
index 22ff384..125eded 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_crt.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_crt.c
|
||||||
|
@@ -584,10 +584,5 @@ void intel_crt_init(struct drm_device *dev)
|
||||||
|
|
||||||
|
drm_sysfs_connector_add(connector);
|
||||||
|
|
||||||
|
- if (I915_HAS_HOTPLUG(dev))
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_HPD;
|
||||||
|
- else
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT;
|
||||||
|
-
|
||||||
|
dev_priv->hotplug_supported_mask |= CRT_HOTPLUG_INT_STATUS;
|
||||||
|
}
|
||||||
|
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||||
|
index d753257..70537cf 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||||
|
@@ -5036,7 +5036,6 @@ intel_user_framebuffer_create(struct drm_device *dev,
|
||||||
|
|
||||||
|
static const struct drm_mode_config_funcs intel_mode_funcs = {
|
||||||
|
.fb_create = intel_user_framebuffer_create,
|
||||||
|
- .output_poll_changed = intel_fb_output_poll_changed,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct drm_gem_object *
|
||||||
|
@@ -5538,7 +5537,6 @@ void intel_modeset_cleanup(struct drm_device *dev)
|
||||||
|
|
||||||
|
mutex_lock(&dev->struct_mutex);
|
||||||
|
|
||||||
|
- drm_kms_helper_poll_fini(dev);
|
||||||
|
intel_fbdev_fini(dev);
|
||||||
|
|
||||||
|
list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
|
||||||
|
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
|
||||||
|
index 49b54f0..1815df5 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_dp.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_dp.c
|
||||||
|
@@ -1393,8 +1393,6 @@ intel_dp_init(struct drm_device *dev, int output_reg)
|
||||||
|
DRM_MODE_CONNECTOR_DisplayPort);
|
||||||
|
drm_connector_helper_add(connector, &intel_dp_connector_helper_funcs);
|
||||||
|
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_HPD;
|
||||||
|
-
|
||||||
|
if (output_reg == DP_A)
|
||||||
|
intel_encoder->type = INTEL_OUTPUT_EDP;
|
||||||
|
else
|
||||||
|
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
|
||||||
|
index df931f7..3230e8d 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_drv.h
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_drv.h
|
||||||
|
@@ -235,5 +235,5 @@ extern int intel_overlay_put_image(struct drm_device *dev, void *data,
|
||||||
|
extern int intel_overlay_attrs(struct drm_device *dev, void *data,
|
||||||
|
struct drm_file *file_priv);
|
||||||
|
|
||||||
|
-extern void intel_fb_output_poll_changed(struct drm_device *dev);
|
||||||
|
+void intelfb_hotplug(struct drm_device *dev, bool polled);
|
||||||
|
#endif /* __INTEL_DRV_H__ */
|
||||||
|
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
|
||||||
|
index c3c5052..79098b3 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_fb.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_fb.c
|
||||||
|
@@ -211,6 +211,12 @@ static int intel_fb_find_or_create_single(struct drm_fb_helper *helper,
|
||||||
|
return new_fb;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void intelfb_hotplug(struct drm_device *dev, bool polled)
|
||||||
|
+{
|
||||||
|
+ drm_i915_private_t *dev_priv = dev->dev_private;
|
||||||
|
+ drm_helper_fb_hpd_irq_event(&dev_priv->fbdev->helper);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static struct drm_fb_helper_funcs intel_fb_helper_funcs = {
|
||||||
|
.gamma_set = intel_crtc_fb_gamma_set,
|
||||||
|
.gamma_get = intel_crtc_fb_gamma_get,
|
||||||
|
@@ -256,7 +262,7 @@ int intel_fbdev_init(struct drm_device *dev)
|
||||||
|
|
||||||
|
ret = drm_fb_helper_init(dev, &ifbdev->helper,
|
||||||
|
dev_priv->num_pipe,
|
||||||
|
- INTELFB_CONN_LIMIT);
|
||||||
|
+ INTELFB_CONN_LIMIT, false);
|
||||||
|
if (ret) {
|
||||||
|
kfree(ifbdev);
|
||||||
|
return ret;
|
||||||
|
@@ -278,9 +284,3 @@ void intel_fbdev_fini(struct drm_device *dev)
|
||||||
|
dev_priv->fbdev = NULL;
|
||||||
|
}
|
||||||
|
MODULE_LICENSE("GPL and additional rights");
|
||||||
|
-
|
||||||
|
-void intel_fb_output_poll_changed(struct drm_device *dev)
|
||||||
|
-{
|
||||||
|
- drm_i915_private_t *dev_priv = dev->dev_private;
|
||||||
|
- drm_fb_helper_hotplug_event(&dev_priv->fbdev->helper);
|
||||||
|
-}
|
||||||
|
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
|
||||||
|
index 83bd764..acaca07 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_hdmi.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
|
||||||
|
@@ -240,7 +240,6 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg)
|
||||||
|
|
||||||
|
intel_encoder->type = INTEL_OUTPUT_HDMI;
|
||||||
|
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_HPD;
|
||||||
|
connector->interlace_allowed = 0;
|
||||||
|
connector->doublescan_allowed = 0;
|
||||||
|
intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
|
||||||
|
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
|
||||||
|
index 76993ac..1c716b5 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_sdvo.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
|
||||||
|
@@ -2218,7 +2218,6 @@ intel_sdvo_dvi_init(struct intel_encoder *intel_encoder, int device)
|
||||||
|
}
|
||||||
|
|
||||||
|
connector = &intel_connector->base;
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT;
|
||||||
|
encoder->encoder_type = DRM_MODE_ENCODER_TMDS;
|
||||||
|
connector->connector_type = DRM_MODE_CONNECTOR_DVID;
|
||||||
|
|
||||||
|
@@ -2285,7 +2284,6 @@ intel_sdvo_analog_init(struct intel_encoder *intel_encoder, int device)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
connector = &intel_connector->base;
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT;
|
||||||
|
encoder->encoder_type = DRM_MODE_ENCODER_DAC;
|
||||||
|
connector->connector_type = DRM_MODE_CONNECTOR_VGA;
|
||||||
|
sdvo_connector = intel_connector->dev_priv;
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
|
||||||
|
index 149ed22..9a61f3c 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
|
||||||
|
@@ -846,7 +846,6 @@ nouveau_connector_create(struct drm_device *dev,
|
||||||
|
|
||||||
|
switch (dcb->type) {
|
||||||
|
case DCB_CONNECTOR_VGA:
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT;
|
||||||
|
if (dev_priv->card_type >= NV_50) {
|
||||||
|
drm_connector_attach_property(connector,
|
||||||
|
dev->mode_config.scaling_mode_property,
|
||||||
|
@@ -858,17 +857,6 @@ nouveau_connector_create(struct drm_device *dev,
|
||||||
|
case DCB_CONNECTOR_TV_3:
|
||||||
|
nv_connector->scaling_mode = DRM_MODE_SCALE_NONE;
|
||||||
|
break;
|
||||||
|
- case DCB_CONNECTOR_DP:
|
||||||
|
- case DCB_CONNECTOR_eDP:
|
||||||
|
- case DCB_CONNECTOR_HDMI_0:
|
||||||
|
- case DCB_CONNECTOR_HDMI_1:
|
||||||
|
- case DCB_CONNECTOR_DVI_I:
|
||||||
|
- case DCB_CONNECTOR_DVI_D:
|
||||||
|
- if (dev_priv->card_type >= NV_50)
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_HPD;
|
||||||
|
- else
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT;
|
||||||
|
- /* fall-through */
|
||||||
|
default:
|
||||||
|
nv_connector->scaling_mode = DRM_MODE_SCALE_FULLSCREEN;
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
|
||||||
|
index 74e6b4e..9d7928f 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
|
||||||
|
@@ -101,6 +101,5 @@ nouveau_user_framebuffer_create(struct drm_device *dev,
|
||||||
|
|
||||||
|
const struct drm_mode_config_funcs nouveau_mode_config_funcs = {
|
||||||
|
.fb_create = nouveau_user_framebuffer_create,
|
||||||
|
- .output_poll_changed = nouveau_fbcon_output_poll_changed,
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
|
||||||
|
index c9a4a0d..0a59f96 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
|
||||||
|
@@ -326,11 +326,15 @@ nouveau_fbcon_find_or_create_single(struct drm_fb_helper *helper,
|
||||||
|
return new_fb;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void
|
||||||
|
-nouveau_fbcon_output_poll_changed(struct drm_device *dev)
|
||||||
|
+void nouveau_fbcon_hotplug(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||||
|
- drm_fb_helper_hotplug_event(&dev_priv->nfbdev->helper);
|
||||||
|
+ drm_helper_fb_hpd_irq_event(&dev_priv->nfbdev->helper);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void nouveau_fbcon_output_status_changed(struct drm_fb_helper *fb_helper)
|
||||||
|
+{
|
||||||
|
+ drm_helper_fb_hotplug_event(fb_helper, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
@@ -370,6 +374,7 @@ static struct drm_fb_helper_funcs nouveau_fbcon_helper_funcs = {
|
||||||
|
.gamma_set = nouveau_fbcon_gamma_set,
|
||||||
|
.gamma_get = nouveau_fbcon_gamma_get,
|
||||||
|
.fb_probe = nouveau_fbcon_find_or_create_single,
|
||||||
|
+ .fb_output_status_changed = nouveau_fbcon_output_status_changed,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -387,7 +392,7 @@ int nouveau_fbcon_init(struct drm_device *dev)
|
||||||
|
dev_priv->nfbdev = nfbdev;
|
||||||
|
nfbdev->helper.funcs = &nouveau_fbcon_helper_funcs;
|
||||||
|
|
||||||
|
- ret = drm_fb_helper_init(dev, &nfbdev->helper, 2, 4);
|
||||||
|
+ ret = drm_fb_helper_init(dev, &nfbdev->helper, 2, 4, true);
|
||||||
|
if (ret) {
|
||||||
|
kfree(nfbdev);
|
||||||
|
return ret;
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.h b/drivers/gpu/drm/nouveau/nouveau_fbcon.h
|
||||||
|
index e7e1268..bf8e00d 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.h
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.h
|
||||||
|
@@ -58,6 +58,6 @@ void nouveau_fbcon_zfill_all(struct drm_device *dev);
|
||||||
|
void nouveau_fbcon_save_disable_accel(struct drm_device *dev);
|
||||||
|
void nouveau_fbcon_restore_accel(struct drm_device *dev);
|
||||||
|
|
||||||
|
-void nouveau_fbcon_output_poll_changed(struct drm_device *dev);
|
||||||
|
+void nouveau_fbcon_hotplug(struct drm_device *dev);
|
||||||
|
#endif /* __NV50_FBCON_H__ */
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
|
||||||
|
index b02a231..4dcb976 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nouveau_state.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nouveau_state.c
|
||||||
|
@@ -519,10 +519,8 @@ nouveau_card_init(struct drm_device *dev)
|
||||||
|
|
||||||
|
dev_priv->init_state = NOUVEAU_CARD_INIT_DONE;
|
||||||
|
|
||||||
|
- if (drm_core_check_feature(dev, DRIVER_MODESET)) {
|
||||||
|
+ if (drm_core_check_feature(dev, DRIVER_MODESET))
|
||||||
|
nouveau_fbcon_init(dev);
|
||||||
|
- drm_kms_helper_poll_init(dev);
|
||||||
|
- }
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
@@ -844,7 +842,6 @@ int nouveau_unload(struct drm_device *dev)
|
||||||
|
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||||
|
|
||||||
|
if (drm_core_check_feature(dev, DRIVER_MODESET)) {
|
||||||
|
- drm_kms_helper_poll_fini(dev);
|
||||||
|
nouveau_fbcon_fini(dev);
|
||||||
|
if (dev_priv->card_type >= NV_50)
|
||||||
|
nv50_display_destroy(dev);
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
|
||||||
|
index 580a5d1..e6a44af 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nv50_display.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
|
||||||
|
@@ -980,7 +980,7 @@ nv50_display_irq_hotplug_bh(struct work_struct *work)
|
||||||
|
if (dev_priv->chipset >= 0x90)
|
||||||
|
nv_wr32(dev, 0xe074, nv_rd32(dev, 0xe074));
|
||||||
|
|
||||||
|
- drm_helper_hpd_irq_event(dev);
|
||||||
|
+ nouveau_fbcon_hotplug(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
|
||||||
|
index 0c7ccc6..40a24c9 100644
|
||||||
|
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
|
||||||
|
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
|
||||||
|
@@ -1085,7 +1085,6 @@ radeon_add_atom_connector(struct drm_device *dev,
|
||||||
|
drm_connector_attach_property(&radeon_connector->base,
|
||||||
|
rdev->mode_info.load_detect_property,
|
||||||
|
1);
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT;
|
||||||
|
break;
|
||||||
|
case DRM_MODE_CONNECTOR_DVIA:
|
||||||
|
drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
|
||||||
|
@@ -1212,12 +1211,6 @@ radeon_add_atom_connector(struct drm_device *dev,
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (hpd->hpd == RADEON_HPD_NONE) {
|
||||||
|
- if (i2c_bus->valid)
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT;
|
||||||
|
- } else
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_HPD;
|
||||||
|
-
|
||||||
|
connector->display_info.subpixel_order = subpixel_order;
|
||||||
|
drm_sysfs_connector_add(connector);
|
||||||
|
return;
|
||||||
|
@@ -1279,7 +1272,6 @@ radeon_add_legacy_connector(struct drm_device *dev,
|
||||||
|
drm_connector_attach_property(&radeon_connector->base,
|
||||||
|
rdev->mode_info.load_detect_property,
|
||||||
|
1);
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT;
|
||||||
|
break;
|
||||||
|
case DRM_MODE_CONNECTOR_DVIA:
|
||||||
|
drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
|
||||||
|
@@ -1348,11 +1340,6 @@ radeon_add_legacy_connector(struct drm_device *dev,
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (hpd->hpd == RADEON_HPD_NONE) {
|
||||||
|
- if (i2c_bus->valid)
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_CONNECT;
|
||||||
|
- } else
|
||||||
|
- connector->polled = DRM_CONNECTOR_POLL_HPD;
|
||||||
|
connector->display_info.subpixel_order = subpixel_order;
|
||||||
|
drm_sysfs_connector_add(connector);
|
||||||
|
return;
|
||||||
|
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
index c73444a..ed756be 100644
|
||||||
|
--- a/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
+++ b/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
@@ -887,15 +887,8 @@ radeon_user_framebuffer_create(struct drm_device *dev,
|
||||||
|
return &radeon_fb->base;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void radeon_output_poll_changed(struct drm_device *dev)
|
||||||
|
-{
|
||||||
|
- struct radeon_device *rdev = dev->dev_private;
|
||||||
|
- radeon_fb_output_poll_changed(rdev);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static const struct drm_mode_config_funcs radeon_mode_funcs = {
|
||||||
|
.fb_create = radeon_user_framebuffer_create,
|
||||||
|
- .output_poll_changed = radeon_output_poll_changed
|
||||||
|
};
|
||||||
|
|
||||||
|
struct drm_prop_enum_list {
|
||||||
|
@@ -1044,8 +1037,6 @@ int radeon_modeset_init(struct radeon_device *rdev)
|
||||||
|
radeon_pm_init(rdev);
|
||||||
|
|
||||||
|
radeon_fbdev_init(rdev);
|
||||||
|
- drm_kms_helper_poll_init(rdev->ddev);
|
||||||
|
-
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1058,7 +1049,6 @@ void radeon_modeset_fini(struct radeon_device *rdev)
|
||||||
|
radeon_pm_fini(rdev);
|
||||||
|
|
||||||
|
if (rdev->mode_info.mode_config_initialized) {
|
||||||
|
- drm_kms_helper_poll_fini(rdev->ddev);
|
||||||
|
radeon_hpd_fini(rdev);
|
||||||
|
drm_mode_config_cleanup(rdev->ddev);
|
||||||
|
rdev->mode_info.mode_config_initialized = false;
|
||||||
|
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
|
||||||
|
index dc1634b..7dc38f6 100644
|
||||||
|
--- a/drivers/gpu/drm/radeon/radeon_fb.c
|
||||||
|
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
|
||||||
|
@@ -316,9 +316,16 @@ int radeon_parse_options(char *options)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void radeon_fb_output_poll_changed(struct radeon_device *rdev)
|
||||||
|
+void radeonfb_hotplug(struct drm_device *dev, bool polled)
|
||||||
|
{
|
||||||
|
- drm_fb_helper_hotplug_event(&rdev->mode_info.rfbdev->helper);
|
||||||
|
+ struct radeon_device *rdev = dev->dev_private;
|
||||||
|
+
|
||||||
|
+ drm_helper_fb_hpd_irq_event(&rdev->mode_info.rfbdev->helper);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void radeon_fb_output_status_changed(struct drm_fb_helper *fb_helper)
|
||||||
|
+{
|
||||||
|
+ drm_helper_fb_hotplug_event(fb_helper, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int radeon_fbdev_destroy(struct drm_device *dev, struct radeon_fbdev *rfbdev)
|
||||||
|
@@ -357,6 +364,7 @@ static struct drm_fb_helper_funcs radeon_fb_helper_funcs = {
|
||||||
|
.gamma_set = radeon_crtc_fb_gamma_set,
|
||||||
|
.gamma_get = radeon_crtc_fb_gamma_get,
|
||||||
|
.fb_probe = radeon_fb_find_or_create_single,
|
||||||
|
+ .fb_output_status_changed = radeon_fb_output_status_changed,
|
||||||
|
};
|
||||||
|
|
||||||
|
int radeon_fbdev_init(struct radeon_device *rdev)
|
||||||
|
@@ -379,7 +387,7 @@ int radeon_fbdev_init(struct radeon_device *rdev)
|
||||||
|
|
||||||
|
ret = drm_fb_helper_init(rdev->ddev, &rfbdev->helper,
|
||||||
|
rdev->num_crtc,
|
||||||
|
- RADEONFB_CONN_LIMIT);
|
||||||
|
+ RADEONFB_CONN_LIMIT, true);
|
||||||
|
if (ret) {
|
||||||
|
kfree(rfbdev);
|
||||||
|
return ret;
|
||||||
|
@@ -388,6 +396,7 @@ int radeon_fbdev_init(struct radeon_device *rdev)
|
||||||
|
drm_fb_helper_single_add_all_connectors(&rfbdev->helper);
|
||||||
|
drm_fb_helper_initial_config(&rfbdev->helper, bpp_sel);
|
||||||
|
return 0;
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
void radeon_fbdev_fini(struct radeon_device *rdev)
|
||||||
|
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c
|
||||||
|
index 059bfa4..b0178de 100644
|
||||||
|
--- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
|
||||||
|
+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
|
||||||
|
@@ -26,7 +26,6 @@
|
||||||
|
* Jerome Glisse
|
||||||
|
*/
|
||||||
|
#include "drmP.h"
|
||||||
|
-#include "drm_crtc_helper.h"
|
||||||
|
#include "radeon_drm.h"
|
||||||
|
#include "radeon_reg.h"
|
||||||
|
#include "radeon.h"
|
||||||
|
@@ -56,7 +55,9 @@ static void radeon_hotplug_work_func(struct work_struct *work)
|
||||||
|
radeon_connector_hotplug(connector);
|
||||||
|
}
|
||||||
|
/* Just fire off a uevent and let userspace tell us what to do */
|
||||||
|
- drm_helper_hpd_irq_event(dev);
|
||||||
|
+ radeonfb_hotplug(dev, false);
|
||||||
|
+
|
||||||
|
+ drm_sysfs_hotplug_event(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void radeon_driver_irq_preinstall_kms(struct drm_device *dev)
|
||||||
|
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
|
||||||
|
index 67358ba..fdd1611 100644
|
||||||
|
--- a/drivers/gpu/drm/radeon/radeon_mode.h
|
||||||
|
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
|
||||||
|
@@ -588,6 +588,5 @@ void radeon_fbdev_fini(struct radeon_device *rdev);
|
||||||
|
void radeon_fbdev_set_suspend(struct radeon_device *rdev, int state);
|
||||||
|
int radeon_fbdev_total_size(struct radeon_device *rdev);
|
||||||
|
bool radeon_fbdev_robj_is_fb(struct radeon_device *rdev, struct radeon_bo *robj);
|
||||||
|
-
|
||||||
|
-void radeon_fb_output_poll_changed(struct radeon_device *rdev);
|
||||||
|
+void radeonfb_hotplug(struct drm_device *dev, bool polled);
|
||||||
|
#endif
|
||||||
|
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
|
||||||
|
index 93a1a31..a7148d2 100644
|
||||||
|
--- a/include/drm/drm_crtc.h
|
||||||
|
+++ b/include/drm/drm_crtc.h
|
||||||
|
@@ -31,7 +31,6 @@
|
||||||
|
#include <linux/idr.h>
|
||||||
|
|
||||||
|
#include <linux/fb.h>
|
||||||
|
-#include <linux/slow-work.h>
|
||||||
|
|
||||||
|
struct drm_device;
|
||||||
|
struct drm_mode_set;
|
||||||
|
@@ -461,15 +460,6 @@ enum drm_connector_force {
|
||||||
|
DRM_FORCE_ON_DIGITAL, /* for DVI-I use digital connector */
|
||||||
|
};
|
||||||
|
|
||||||
|
-/* should we poll this connector for connects and disconnects */
|
||||||
|
-/* hot plug detectable */
|
||||||
|
-#define DRM_CONNECTOR_POLL_HPD (1 << 0)
|
||||||
|
-/* poll for connections */
|
||||||
|
-#define DRM_CONNECTOR_POLL_CONNECT (1 << 1)
|
||||||
|
-/* can cleanly poll for disconnections without flickering the screen */
|
||||||
|
-/* DACs should rarely do this without a lot of testing */
|
||||||
|
-#define DRM_CONNECTOR_POLL_DISCONNECT (1 << 2)
|
||||||
|
-
|
||||||
|
/**
|
||||||
|
* drm_connector - central DRM connector control structure
|
||||||
|
* @crtc: CRTC this connector is currently connected to, NULL if none
|
||||||
|
@@ -514,8 +504,6 @@ struct drm_connector {
|
||||||
|
u32 property_ids[DRM_CONNECTOR_MAX_PROPERTY];
|
||||||
|
uint64_t property_values[DRM_CONNECTOR_MAX_PROPERTY];
|
||||||
|
|
||||||
|
- uint8_t polled; /* DRM_CONNECTOR_POLL_* */
|
||||||
|
-
|
||||||
|
/* requested DPMS state */
|
||||||
|
int dpms;
|
||||||
|
|
||||||
|
@@ -555,7 +543,6 @@ struct drm_mode_set {
|
||||||
|
*/
|
||||||
|
struct drm_mode_config_funcs {
|
||||||
|
struct drm_framebuffer *(*fb_create)(struct drm_device *dev, struct drm_file *file_priv, struct drm_mode_fb_cmd *mode_cmd);
|
||||||
|
- void (*output_poll_changed)(struct drm_device *dev);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct drm_mode_group {
|
||||||
|
@@ -593,10 +580,6 @@ struct drm_mode_config {
|
||||||
|
struct drm_mode_config_funcs *funcs;
|
||||||
|
resource_size_t fb_base;
|
||||||
|
|
||||||
|
- /* output poll support */
|
||||||
|
- bool poll_enabled;
|
||||||
|
- struct delayed_slow_work output_poll_slow_work;
|
||||||
|
-
|
||||||
|
/* pointers to standard properties */
|
||||||
|
struct list_head property_blob_list;
|
||||||
|
struct drm_property *edid_property;
|
||||||
|
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
|
||||||
|
index 1121f77..b1fa0f8 100644
|
||||||
|
--- a/include/drm/drm_crtc_helper.h
|
||||||
|
+++ b/include/drm/drm_crtc_helper.h
|
||||||
|
@@ -127,10 +127,4 @@ static inline void drm_connector_helper_add(struct drm_connector *connector,
|
||||||
|
}
|
||||||
|
|
||||||
|
extern int drm_helper_resume_force_mode(struct drm_device *dev);
|
||||||
|
-extern void drm_kms_helper_poll_init(struct drm_device *dev);
|
||||||
|
-extern void drm_kms_helper_poll_fini(struct drm_device *dev);
|
||||||
|
-extern void drm_helper_hpd_irq_event(struct drm_device *dev);
|
||||||
|
-
|
||||||
|
-extern void drm_kms_helper_poll_disable(struct drm_device *dev);
|
||||||
|
-extern void drm_kms_helper_poll_enable(struct drm_device *dev);
|
||||||
|
#endif
|
||||||
|
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
|
||||||
|
index f0a6afc..9b55a94 100644
|
||||||
|
--- a/include/drm/drm_fb_helper.h
|
||||||
|
+++ b/include/drm/drm_fb_helper.h
|
||||||
|
@@ -30,6 +30,8 @@
|
||||||
|
#ifndef DRM_FB_HELPER_H
|
||||||
|
#define DRM_FB_HELPER_H
|
||||||
|
|
||||||
|
+#include <linux/slow-work.h>
|
||||||
|
+
|
||||||
|
struct drm_fb_helper;
|
||||||
|
|
||||||
|
struct drm_fb_helper_crtc {
|
||||||
|
@@ -69,6 +71,9 @@ struct drm_fb_helper_funcs {
|
||||||
|
|
||||||
|
int (*fb_probe)(struct drm_fb_helper *helper,
|
||||||
|
struct drm_fb_helper_surface_size *sizes);
|
||||||
|
+
|
||||||
|
+ void (*fb_output_status_changed)(struct drm_fb_helper *helper);
|
||||||
|
+
|
||||||
|
};
|
||||||
|
|
||||||
|
struct drm_fb_helper_connector {
|
||||||
|
@@ -90,6 +95,8 @@ struct drm_fb_helper {
|
||||||
|
u32 pseudo_palette[17];
|
||||||
|
struct list_head kernel_fb_list;
|
||||||
|
|
||||||
|
+ struct delayed_slow_work output_status_change_slow_work;
|
||||||
|
+ bool poll_enabled;
|
||||||
|
/* we got a hotplug but fbdev wasn't running the console
|
||||||
|
delay until next set_par */
|
||||||
|
bool delayed_hotplug;
|
||||||
|
@@ -100,7 +107,7 @@ int drm_fb_helper_single_fb_probe(struct drm_fb_helper *helper,
|
||||||
|
|
||||||
|
int drm_fb_helper_init(struct drm_device *dev,
|
||||||
|
struct drm_fb_helper *helper, int crtc_count,
|
||||||
|
- int max_conn);
|
||||||
|
+ int max_conn, bool polled);
|
||||||
|
void drm_fb_helper_fini(struct drm_fb_helper *helper);
|
||||||
|
int drm_fb_helper_blank(int blank, struct fb_info *info);
|
||||||
|
int drm_fb_helper_pan_display(struct fb_var_screeninfo *var,
|
||||||
|
@@ -123,8 +130,10 @@ void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
|
||||||
|
|
||||||
|
int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info);
|
||||||
|
|
||||||
|
-bool drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper);
|
||||||
|
+bool drm_helper_fb_hotplug_event(struct drm_fb_helper *fb_helper,
|
||||||
|
+ bool polled);
|
||||||
|
bool drm_fb_helper_initial_config(struct drm_fb_helper *fb_helper, int bpp_sel);
|
||||||
|
int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper);
|
||||||
|
|
||||||
|
+void drm_helper_fb_hpd_irq_event(struct drm_fb_helper *fb_helper);
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
From: jiayingz@google.com (Jiaying Zhang) <>
|
||||||
|
Date: Tue, 27 Jul 2010 15:56:06 +0000 (-0400)
|
||||||
|
Subject: ext4: move aio completion after unwritten extent conversion
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftytso%2Fext4.git;a=commitdiff_plain;h=5b3ff237bef43b9e7fb7d1eb858e29b73fd664f9
|
||||||
|
|
||||||
|
ext4: move aio completion after unwritten extent conversion
|
||||||
|
|
||||||
|
This patch is to be applied upon Christoph's "direct-io: move aio_complete
|
||||||
|
into ->end_io" patch. It adds iocb and result fields to struct ext4_io_end_t,
|
||||||
|
so that we can call aio_complete from ext4_end_io_nolock() after the extent
|
||||||
|
conversion has finished.
|
||||||
|
|
||||||
|
I have verified with Christoph's aio-dio test that used to fail after a few
|
||||||
|
runs on an original kernel but now succeeds on the patched kernel.
|
||||||
|
|
||||||
|
See http://thread.gmane.org/gmane.comp.file-systems.ext4/19659 for details.
|
||||||
|
|
||||||
|
Signed-off-by: Jiaying Zhang <jiayingz@google.com>
|
||||||
|
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
|
||||||
|
index 4c7d472..fbb3947 100644
|
||||||
|
--- a/fs/ext4/ext4.h
|
||||||
|
+++ b/fs/ext4/ext4.h
|
||||||
|
@@ -170,13 +170,15 @@ struct mpage_da_data {
|
||||||
|
};
|
||||||
|
#define EXT4_IO_UNWRITTEN 0x1
|
||||||
|
typedef struct ext4_io_end {
|
||||||
|
- struct list_head list; /* per-file finished AIO list */
|
||||||
|
+ struct list_head list; /* per-file finished IO list */
|
||||||
|
struct inode *inode; /* file being written to */
|
||||||
|
unsigned int flag; /* unwritten or not */
|
||||||
|
struct page *page; /* page struct for buffer write */
|
||||||
|
loff_t offset; /* offset in the file */
|
||||||
|
ssize_t size; /* size of the extent */
|
||||||
|
struct work_struct work; /* data work queue */
|
||||||
|
+ struct kiocb *iocb; /* iocb struct for AIO */
|
||||||
|
+ int result; /* error value for AIO */
|
||||||
|
} ext4_io_end_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
|
||||||
|
index 609159e..46d2079 100644
|
||||||
|
--- a/fs/ext4/inode.c
|
||||||
|
+++ b/fs/ext4/inode.c
|
||||||
|
@@ -3668,6 +3668,8 @@ static int ext4_end_io_nolock(ext4_io_end_t *io)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (io->iocb)
|
||||||
|
+ aio_complete(io->iocb, io->result, 0);
|
||||||
|
/* clear the DIO AIO unwritten flag */
|
||||||
|
io->flag = 0;
|
||||||
|
return ret;
|
||||||
|
@@ -3767,6 +3769,8 @@ static ext4_io_end_t *ext4_init_io_end (struct inode *inode, gfp_t flags)
|
||||||
|
io->offset = 0;
|
||||||
|
io->size = 0;
|
||||||
|
io->page = NULL;
|
||||||
|
+ io->iocb = NULL;
|
||||||
|
+ io->result = 0;
|
||||||
|
INIT_WORK(&io->work, ext4_end_io_work);
|
||||||
|
INIT_LIST_HEAD(&io->list);
|
||||||
|
}
|
||||||
|
@@ -3796,12 +3800,18 @@ static void ext4_end_io_dio(struct kiocb *iocb, loff_t offset,
|
||||||
|
if (io_end->flag != EXT4_IO_UNWRITTEN){
|
||||||
|
ext4_free_io_end(io_end);
|
||||||
|
iocb->private = NULL;
|
||||||
|
- goto out;
|
||||||
|
+out:
|
||||||
|
+ if (is_async)
|
||||||
|
+ aio_complete(iocb, ret, 0);
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
|
||||||
|
io_end->offset = offset;
|
||||||
|
io_end->size = size;
|
||||||
|
- io_end->flag = EXT4_IO_UNWRITTEN;
|
||||||
|
+ if (is_async) {
|
||||||
|
+ io_end->iocb = iocb;
|
||||||
|
+ io_end->result = ret;
|
||||||
|
+ }
|
||||||
|
wq = EXT4_SB(io_end->inode->i_sb)->dio_unwritten_wq;
|
||||||
|
|
||||||
|
/* queue the work to convert unwritten extents to written */
|
||||||
|
@@ -3813,9 +3823,6 @@ static void ext4_end_io_dio(struct kiocb *iocb, loff_t offset,
|
||||||
|
list_add_tail(&io_end->list, &ei->i_completed_io_list);
|
||||||
|
spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);
|
||||||
|
iocb->private = NULL;
|
||||||
|
-out:
|
||||||
|
- if (is_async)
|
||||||
|
- aio_complete(iocb, ret, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ext4_end_io_buffer_write(struct buffer_head *bh, int uptodate)
|
||||||
BIN
fedoraimaca.x509
BIN
fedoraimaca.x509
Binary file not shown.
1097
filtermods.py
1097
filtermods.py
File diff suppressed because it is too large
Load diff
44
find-provides
Executable file
44
find-provides
Executable file
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# find-provides: munge the provides dependencies from the kabideps file
|
||||||
|
#
|
||||||
|
# This software may be freely redistributed under the terms of the GNU
|
||||||
|
# General Public License (GPL).
|
||||||
|
#
|
||||||
|
# Takes a directory prefix, then outputs the kabideps file contents.
|
||||||
|
|
||||||
|
__author__ = "Jon Masters <jcm@redhat.com>"
|
||||||
|
__version__ = "1.0"
|
||||||
|
__date__ = "Tue 25 Jul 2006 04:00 GMT"
|
||||||
|
__copyright__ = "Copyright (C) 2006 Red Hat, Inc"
|
||||||
|
__license__ = "GPL"
|
||||||
|
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import string
|
||||||
|
import sys
|
||||||
|
|
||||||
|
false = 0
|
||||||
|
true = 1
|
||||||
|
|
||||||
|
kabideps=""
|
||||||
|
|
||||||
|
p = re.compile('^(.*)/symvers-(.*).gz$')
|
||||||
|
while true:
|
||||||
|
foo = sys.stdin.readline()
|
||||||
|
if foo == "":
|
||||||
|
break
|
||||||
|
string.split(foo)
|
||||||
|
m = p.match(foo)
|
||||||
|
if m:
|
||||||
|
kabideps=sys.argv[1] + "/kernel-" + m.group(2) + "-kabideps"
|
||||||
|
|
||||||
|
if kabideps == "":
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
if not (os.path.isfile(kabideps)):
|
||||||
|
sys.stderr.write(sys.argv[0] + ": cannot locate kabideps file: " + kabideps + "\n")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
sys.stderr.write(sys.argv[0] + ": processing kABI: " + kabideps)
|
||||||
|
os.system("cat " + kabideps)
|
||||||
34
fix_xen_guest_on_old_EC2.patch
Normal file
34
fix_xen_guest_on_old_EC2.patch
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
Legacy hypervisors (RHEL 5.0 and RHEL 5.1) do not handle guest writes to
|
||||||
|
cr4 gracefully. If a guest attempts to write a bit of cr4 that is
|
||||||
|
unsupported, then the HV is so offended it crashes the domain. While
|
||||||
|
later guest kernels (such as RHEL6) don't assume the HV supports all
|
||||||
|
features, they do expect nicer responses. That assumption introduced
|
||||||
|
code that probes whether or not xsave is supported early in the boot. So
|
||||||
|
now when attempting to boot a RHEL6 guest on RHEL5.0 or RHEL5.1 an early
|
||||||
|
crash will occur.
|
||||||
|
|
||||||
|
This patch is quite obviously an undesirable hack. The real fix for this
|
||||||
|
problem should be in the HV, and is, in later HVs. However, to support
|
||||||
|
running on old HVs, RHEL6 can take this small change. No impact will
|
||||||
|
occur for running on any RHEL HV (not even RHEL 5.5 supports xsave).
|
||||||
|
There is only potential for guest performance loss on upstream Xen.
|
||||||
|
|
||||||
|
---
|
||||||
|
arch/x86/xen/enlighten.c | 1 +
|
||||||
|
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
|
||||||
|
index 52f8e19..6db3d67 100644
|
||||||
|
--- a/arch/x86/xen/enlighten.c
|
||||||
|
+++ b/arch/x86/xen/enlighten.c
|
||||||
|
@@ -802,6 +802,7 @@ static void xen_write_cr4(unsigned long cr4)
|
||||||
|
{
|
||||||
|
cr4 &= ~X86_CR4_PGE;
|
||||||
|
cr4 &= ~X86_CR4_PSE;
|
||||||
|
+ cr4 &= ~X86_CR4_OSXSAVE;
|
||||||
|
|
||||||
|
native_write_cr4(cr4);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.6.6.1
|
||||||
2
flavors
2
flavors
|
|
@ -1,2 +0,0 @@
|
||||||
rhel
|
|
||||||
fedora
|
|
||||||
30
flexcop-fix-xlate_proc_name-warning.patch
Normal file
30
flexcop-fix-xlate_proc_name-warning.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
diff --git a/drivers/media/dvb/b2c2/flexcop-pci.c b/drivers/media/dvb/b2c2/flexcop-pci.c
|
||||||
|
index 227c020..7465308 100644
|
||||||
|
--- a/drivers/media/dvb/b2c2/flexcop-pci.c
|
||||||
|
+++ b/drivers/media/dvb/b2c2/flexcop-pci.c
|
||||||
|
@@ -39,6 +39,7 @@ MODULE_PARM_DESC(debug,
|
||||||
|
|
||||||
|
#define DRIVER_VERSION "0.1"
|
||||||
|
#define DRIVER_NAME "Technisat/B2C2 FlexCop II/IIb/III Digital TV PCI Driver"
|
||||||
|
+#define FLEXCOP_MODULE_NAME "b2c2-flexcop"
|
||||||
|
#define DRIVER_AUTHOR "Patrick Boettcher <patrick.boettcher@desy.de>"
|
||||||
|
|
||||||
|
struct flexcop_pci {
|
||||||
|
@@ -299,7 +300,7 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
|
||||||
|
return ret;
|
||||||
|
pci_set_master(fc_pci->pdev);
|
||||||
|
|
||||||
|
- if ((ret = pci_request_regions(fc_pci->pdev, DRIVER_NAME)) != 0)
|
||||||
|
+ if ((ret = pci_request_regions(fc_pci->pdev, FLEXCOP_MODULE_NAME)) != 0)
|
||||||
|
goto err_pci_disable_device;
|
||||||
|
|
||||||
|
fc_pci->io_mem = pci_iomap(fc_pci->pdev, 0, 0x800);
|
||||||
|
@@ -313,7 +314,7 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
|
||||||
|
pci_set_drvdata(fc_pci->pdev, fc_pci);
|
||||||
|
spin_lock_init(&fc_pci->irq_lock);
|
||||||
|
if ((ret = request_irq(fc_pci->pdev->irq, flexcop_pci_isr,
|
||||||
|
- IRQF_SHARED, DRIVER_NAME, fc_pci)) != 0)
|
||||||
|
+ IRQF_SHARED, FLEXCOP_MODULE_NAME, fc_pci)) != 0)
|
||||||
|
goto err_pci_iounmap;
|
||||||
|
|
||||||
|
fc_pci->init_state |= FC_PCI_INIT;
|
||||||
65
fs-call-security_d_instantiate-in-d_obtain_alias.patch
Normal file
65
fs-call-security_d_instantiate-in-d_obtain_alias.patch
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
From linux-fsdevel-owner@vger.kernel.org Thu Nov 18 21:03:11 2010
|
||||||
|
From: Josef Bacik <josef@redhat.com>
|
||||||
|
To: linux-fsdevel@vger.kernel.org, eparis@redhat.com,
|
||||||
|
linux-kernel@vger.kernel.org, sds@tycho.nsa.gov,
|
||||||
|
selinux@tycho.nsa.gov, bfields@fieldses.org
|
||||||
|
Subject: [PATCH] fs: call security_d_instantiate in d_obtain_alias V2
|
||||||
|
Date: Thu, 18 Nov 2010 20:52:55 -0500
|
||||||
|
Message-Id: <1290131575-2489-1-git-send-email-josef@redhat.com>
|
||||||
|
X-Mailing-List: linux-fsdevel@vger.kernel.org
|
||||||
|
|
||||||
|
While trying to track down some NFS problems with BTRFS, I kept noticing I was
|
||||||
|
getting -EACCESS for no apparent reason. Eric Paris and printk() helped me
|
||||||
|
figure out that it was SELinux that was giving me grief, with the following
|
||||||
|
denial
|
||||||
|
|
||||||
|
type=AVC msg=audit(1290013638.413:95): avc: denied { 0x800000 } for pid=1772
|
||||||
|
comm="nfsd" name="" dev=sda1 ino=256 scontext=system_u:system_r:kernel_t:s0
|
||||||
|
tcontext=system_u:object_r:unlabeled_t:s0 tclass=file
|
||||||
|
|
||||||
|
Turns out this is because in d_obtain_alias if we can't find an alias we create
|
||||||
|
one and do all the normal instantiation stuff, but we don't do the
|
||||||
|
security_d_instantiate.
|
||||||
|
|
||||||
|
Usually we are protected from getting a hashed dentry that hasn't yet run
|
||||||
|
security_d_instantiate() by the parent's i_mutex, but obviously this isn't an
|
||||||
|
option there, so in order to deal with the case that a second thread comes in
|
||||||
|
and finds our new dentry before we get to run security_d_instantiate(), we go
|
||||||
|
ahead and call it if we find a dentry already. Eric assures me that this is ok
|
||||||
|
as the code checks to see if the dentry has been initialized already so calling
|
||||||
|
security_d_instantiate() against the same dentry multiple times is ok. With
|
||||||
|
this patch I'm no longer getting errant -EACCESS values.
|
||||||
|
|
||||||
|
Signed-off-by: Josef Bacik <josef@redhat.com>
|
||||||
|
---
|
||||||
|
V1->V2:
|
||||||
|
-added second security_d_instantiate() call
|
||||||
|
|
||||||
|
fs/dcache.c | 3 +++
|
||||||
|
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/fs/dcache.c b/fs/dcache.c
|
||||||
|
index 23702a9..119d489 100644
|
||||||
|
--- a/fs/dcache.c
|
||||||
|
+++ b/fs/dcache.c
|
||||||
|
@@ -1201,9 +1201,12 @@ struct dentry *d_obtain_alias(struct inode *inode)
|
||||||
|
spin_unlock(&tmp->d_lock);
|
||||||
|
|
||||||
|
spin_unlock(&dcache_lock);
|
||||||
|
+ security_d_instantiate(tmp, inode);
|
||||||
|
return tmp;
|
||||||
|
|
||||||
|
out_iput:
|
||||||
|
+ if (res && !IS_ERR(res))
|
||||||
|
+ security_d_instantiate(res, inode);
|
||||||
|
iput(inode);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.6.6.1
|
||||||
|
|
||||||
|
--
|
||||||
|
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
|
||||||
|
the body of a message to majordomo@vger.kernel.org
|
||||||
|
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||||
|
|
||||||
14
gating.yaml
14
gating.yaml
|
|
@ -1,14 +0,0 @@
|
||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-*
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: cki.tier1-aarch64.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: cki.tier1-ppc64le.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: cki.tier1-s390x.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: cki.tier1-x86_64.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: s1-aws-ci_x86_64.brew-build.tier1.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: s1-aws-ci_aarch64.brew-build.tier1.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: s1-azure-ci_x86_64.brew-build.tier1.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: s1-azure-ci_aarch64.brew-build.tier1.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: s1-gcp-ci.brew-build.tier1.functional}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Adjusts the configuration options to build the variants correctly
|
|
||||||
|
|
||||||
test -n "$RHTEST" && exit 0
|
|
||||||
|
|
||||||
DEBUGBUILDSENABLED=$1
|
|
||||||
if [ -z "$DEBUGBUILDSENABLED" ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$FLAVOR" ]; then
|
|
||||||
FLAVOR=rhel
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$FLAVOR" = "fedora" ]; then
|
|
||||||
SECONDARY=rhel
|
|
||||||
else
|
|
||||||
SECONDARY=fedora
|
|
||||||
fi
|
|
||||||
|
|
||||||
# The +1 is to remove the - at the end of the SPECPACKAGE_NAME string
|
|
||||||
specpackage_name_len=$((${#SPECPACKAGE_NAME} + 1))
|
|
||||||
for i in "${SPECPACKAGE_NAME}"*-"$FLAVOR".config; do
|
|
||||||
# shellcheck disable=SC3057
|
|
||||||
NEW=${SPECPACKAGE_NAME}-"$SPECRPMVERSION"-$(echo "${i:$specpackage_name_len}" | sed s/-"$FLAVOR"//)
|
|
||||||
mv "$i" "$NEW"
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f kernel-*-"$SECONDARY".config
|
|
||||||
|
|
||||||
if [ "$DEBUGBUILDSENABLED" -eq 0 ]; then
|
|
||||||
for i in "${SPECPACKAGE_NAME}"-*debug*.config; do
|
|
||||||
base=$(echo "$i" | sed -r s/-?debug//g)
|
|
||||||
NEW=${SPECPACKAGE_NAME}-$(echo "$base" | cut -d - -f2-)
|
|
||||||
mv "$i" "$NEW"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
7
genkey
Normal file
7
genkey
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
%pubring kernel.pub
|
||||||
|
%secring kernel.sec
|
||||||
|
Key-Type: DSA
|
||||||
|
Key-Length: 512
|
||||||
|
Name-Real: Red Hat, Inc.
|
||||||
|
Name-Comment: Kernel Module GPG key
|
||||||
|
%commit
|
||||||
47
hda_intel-prealloc-4mb-dmabuffer.patch
Normal file
47
hda_intel-prealloc-4mb-dmabuffer.patch
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
From c69fcbd1f60b0842f7c1ad2c95692ffd19c4932b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kyle McMartin <kyle@phobos.i.jkkm.org>
|
||||||
|
Date: Mon, 29 Mar 2010 23:56:08 -0400
|
||||||
|
Subject: hda_intel-prealloc-4mb-dmabuffer
|
||||||
|
|
||||||
|
---
|
||||||
|
sound/pci/hda/hda_intel.c | 14 +++++++++++++-
|
||||||
|
1 files changed, 13 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
|
||||||
|
index 4bb9067..37db515 100644
|
||||||
|
--- a/sound/pci/hda/hda_intel.c
|
||||||
|
+++ b/sound/pci/hda/hda_intel.c
|
||||||
|
@@ -1986,6 +1986,7 @@ azx_attach_pcm_stream(struct hda_bus *bus, struct hda_codec *codec,
|
||||||
|
struct azx_pcm *apcm;
|
||||||
|
int pcm_dev = cpcm->device;
|
||||||
|
int s, err;
|
||||||
|
+ size_t prealloc_min = 64*1024; /* 64KB */
|
||||||
|
|
||||||
|
if (pcm_dev >= HDA_MAX_PCMS) {
|
||||||
|
snd_printk(KERN_ERR SFX "Invalid PCM device number %d\n",
|
||||||
|
@@ -2019,10 +2020,21 @@ azx_attach_pcm_stream(struct hda_bus *bus, struct hda_codec *codec,
|
||||||
|
if (cpcm->stream[s].substreams)
|
||||||
|
snd_pcm_set_ops(pcm, s, &azx_pcm_ops);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
/* buffer pre-allocation */
|
||||||
|
+
|
||||||
|
+ /* subtle, don't allocate a big buffer for modems...
|
||||||
|
+ * also, don't just test 32BIT_MASK, since azx supports
|
||||||
|
+ * 64-bit DMA in some cases.
|
||||||
|
+ */
|
||||||
|
+ /* lennart wants a 2.2MB buffer for 2sec of 48khz */
|
||||||
|
+ if (pcm->dev_class == SNDRV_PCM_CLASS_GENERIC &&
|
||||||
|
+ chip->pci->dma_mask >= DMA_32BIT_MASK)
|
||||||
|
+ prealloc_min = 4 * 1024 * 1024; /* 4MB */
|
||||||
|
+
|
||||||
|
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG,
|
||||||
|
snd_dma_pci_data(chip->pci),
|
||||||
|
- 1024 * 64, 32 * 1024 * 1024);
|
||||||
|
+ prealloc_min, 32 * 1024 * 1024);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
216
hdpvr-ir-enable.patch
Normal file
216
hdpvr-ir-enable.patch
Normal file
|
|
@ -0,0 +1,216 @@
|
||||||
|
drivers/media/video/hdpvr/Makefile | 4 +-
|
||||||
|
drivers/media/video/hdpvr/hdpvr-core.c | 12 ++---
|
||||||
|
drivers/media/video/hdpvr/hdpvr-i2c.c | 83 ++++++++++++++++++++++----------
|
||||||
|
drivers/media/video/hdpvr/hdpvr.h | 2 +-
|
||||||
|
4 files changed, 64 insertions(+), 37 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/media/video/hdpvr/Makefile b/drivers/media/video/hdpvr/Makefile
|
||||||
|
index e0230fc..a0b9a43 100644
|
||||||
|
--- a/drivers/media/video/hdpvr/Makefile
|
||||||
|
+++ b/drivers/media/video/hdpvr/Makefile
|
||||||
|
@@ -1,6 +1,4 @@
|
||||||
|
-hdpvr-objs := hdpvr-control.o hdpvr-core.o hdpvr-video.o
|
||||||
|
-
|
||||||
|
-hdpvr-$(CONFIG_I2C) += hdpvr-i2c.o
|
||||||
|
+hdpvr-objs := hdpvr-control.o hdpvr-i2c.o hdpvr-core.o hdpvr-video.o
|
||||||
|
|
||||||
|
obj-$(CONFIG_VIDEO_HDPVR) += hdpvr.o
|
||||||
|
|
||||||
|
diff --git a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c
|
||||||
|
index 2fc9865..c72793a 100644
|
||||||
|
--- a/drivers/media/video/hdpvr/hdpvr-core.c
|
||||||
|
+++ b/drivers/media/video/hdpvr/hdpvr-core.c
|
||||||
|
@@ -364,9 +364,8 @@ static int hdpvr_probe(struct usb_interface *interface,
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef CONFIG_I2C
|
||||||
|
- /* until i2c is working properly */
|
||||||
|
- retval = 0; /* hdpvr_register_i2c_adapter(dev); */
|
||||||
|
+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
|
||||||
|
+ retval = hdpvr_register_i2c_adapter(dev);
|
||||||
|
if (retval < 0) {
|
||||||
|
v4l2_err(&dev->v4l2_dev, "registering i2c adapter failed\n");
|
||||||
|
goto error;
|
||||||
|
@@ -412,12 +411,9 @@ static void hdpvr_disconnect(struct usb_interface *interface)
|
||||||
|
mutex_unlock(&dev->io_mutex);
|
||||||
|
|
||||||
|
/* deregister I2C adapter */
|
||||||
|
-#ifdef CONFIG_I2C
|
||||||
|
+#if defined(CONFIG_I2C) || (CONFIG_I2C_MODULE)
|
||||||
|
mutex_lock(&dev->i2c_mutex);
|
||||||
|
- if (dev->i2c_adapter)
|
||||||
|
- i2c_del_adapter(dev->i2c_adapter);
|
||||||
|
- kfree(dev->i2c_adapter);
|
||||||
|
- dev->i2c_adapter = NULL;
|
||||||
|
+ i2c_del_adapter(&dev->i2c_adapter);
|
||||||
|
mutex_unlock(&dev->i2c_mutex);
|
||||||
|
#endif /* CONFIG_I2C */
|
||||||
|
|
||||||
|
diff --git a/drivers/media/video/hdpvr/hdpvr-i2c.c b/drivers/media/video/hdpvr/hdpvr-i2c.c
|
||||||
|
index 463b81b..a0557e4 100644
|
||||||
|
--- a/drivers/media/video/hdpvr/hdpvr-i2c.c
|
||||||
|
+++ b/drivers/media/video/hdpvr/hdpvr-i2c.c
|
||||||
|
@@ -10,6 +10,8 @@
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
|
||||||
|
+
|
||||||
|
#include <linux/i2c.h>
|
||||||
|
#include <linux/slab.h>
|
||||||
|
|
||||||
|
@@ -22,8 +24,11 @@
|
||||||
|
#define REQTYPE_I2C_WRITE 0xb0
|
||||||
|
#define REQTYPE_I2C_WRITE_STATT 0xd0
|
||||||
|
|
||||||
|
-static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
|
||||||
|
- char *data, int len)
|
||||||
|
+#define HDPVR_HW_Z8F0811_IR_TX_I2C_ADDR 0x70
|
||||||
|
+#define HDPVR_HW_Z8F0811_IR_RX_I2C_ADDR 0x71
|
||||||
|
+
|
||||||
|
+static int hdpvr_i2c_read(struct hdpvr_device *dev, int bus,
|
||||||
|
+ unsigned char addr, char *data, int len)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
char *buf = kmalloc(len, GFP_KERNEL);
|
||||||
|
@@ -33,7 +38,7 @@ static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
|
||||||
|
ret = usb_control_msg(dev->udev,
|
||||||
|
usb_rcvctrlpipe(dev->udev, 0),
|
||||||
|
REQTYPE_I2C_READ, CTRL_READ_REQUEST,
|
||||||
|
- 0x100|addr, 0, buf, len, 1000);
|
||||||
|
+ (bus << 8) | addr, 0, buf, len, 1000);
|
||||||
|
|
||||||
|
if (ret == len) {
|
||||||
|
memcpy(data, buf, len);
|
||||||
|
@@ -46,8 +51,8 @@ static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
|
||||||
|
- char *data, int len)
|
||||||
|
+static int hdpvr_i2c_write(struct hdpvr_device *dev, int bus,
|
||||||
|
+ unsigned char addr, char *data, int len)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
char *buf = kmalloc(len, GFP_KERNEL);
|
||||||
|
@@ -58,7 +63,7 @@ static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
|
||||||
|
ret = usb_control_msg(dev->udev,
|
||||||
|
usb_sndctrlpipe(dev->udev, 0),
|
||||||
|
REQTYPE_I2C_WRITE, CTRL_WRITE_REQUEST,
|
||||||
|
- 0x100|addr, 0, buf, len, 1000);
|
||||||
|
+ (bus << 8) | addr, 0, buf, len, 1000);
|
||||||
|
|
||||||
|
if (ret < 0)
|
||||||
|
goto error;
|
||||||
|
@@ -68,7 +73,7 @@ static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
|
||||||
|
REQTYPE_I2C_WRITE_STATT, CTRL_READ_REQUEST,
|
||||||
|
0, 0, buf, 2, 1000);
|
||||||
|
|
||||||
|
- if (ret == 2)
|
||||||
|
+ if ((ret == 2) && (buf[1] == (len - 1)))
|
||||||
|
ret = 0;
|
||||||
|
else if (ret >= 0)
|
||||||
|
ret = -EIO;
|
||||||
|
@@ -93,10 +98,10 @@ static int hdpvr_transfer(struct i2c_adapter *i2c_adapter, struct i2c_msg *msgs,
|
||||||
|
addr = msgs[i].addr << 1;
|
||||||
|
|
||||||
|
if (msgs[i].flags & I2C_M_RD)
|
||||||
|
- retval = hdpvr_i2c_read(dev, addr, msgs[i].buf,
|
||||||
|
+ retval = hdpvr_i2c_read(dev, 1, addr, msgs[i].buf,
|
||||||
|
msgs[i].len);
|
||||||
|
else
|
||||||
|
- retval = hdpvr_i2c_write(dev, addr, msgs[i].buf,
|
||||||
|
+ retval = hdpvr_i2c_write(dev, 1, addr, msgs[i].buf,
|
||||||
|
msgs[i].len);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -115,31 +120,59 @@ static struct i2c_algorithm hdpvr_algo = {
|
||||||
|
.functionality = hdpvr_functionality,
|
||||||
|
};
|
||||||
|
|
||||||
|
+static struct i2c_adapter hdpvr_i2c_adapter_template = {
|
||||||
|
+ .name = "Hauppage HD PVR I2C",
|
||||||
|
+ .owner = THIS_MODULE,
|
||||||
|
+ .id = I2C_HW_B_HDPVR,
|
||||||
|
+ .algo = &hdpvr_algo,
|
||||||
|
+ .class = I2C_CLASS_TV_ANALOG,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static struct i2c_board_info hdpvr_i2c_board_info = {
|
||||||
|
+ I2C_BOARD_INFO("ir_tx_z8f0811_haup", HDPVR_HW_Z8F0811_IR_TX_I2C_ADDR),
|
||||||
|
+ I2C_BOARD_INFO("ir_rx_z8f0811_haup", HDPVR_HW_Z8F0811_IR_RX_I2C_ADDR),
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static int hdpvr_activate_ir(struct hdpvr_device *dev)
|
||||||
|
+{
|
||||||
|
+ char buffer[8];
|
||||||
|
+
|
||||||
|
+ mutex_lock(&dev->i2c_mutex);
|
||||||
|
+
|
||||||
|
+ hdpvr_i2c_read(dev, 0, 0x54, buffer, 1);
|
||||||
|
+
|
||||||
|
+ buffer[0] = 0;
|
||||||
|
+ buffer[1] = 0x8;
|
||||||
|
+ hdpvr_i2c_write(dev, 1, 0x54, buffer, 2);
|
||||||
|
+
|
||||||
|
+ buffer[1] = 0x18;
|
||||||
|
+ hdpvr_i2c_write(dev, 1, 0x54, buffer, 2);
|
||||||
|
+
|
||||||
|
+ mutex_unlock(&dev->i2c_mutex);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int hdpvr_register_i2c_adapter(struct hdpvr_device *dev)
|
||||||
|
{
|
||||||
|
- struct i2c_adapter *i2c_adap;
|
||||||
|
int retval = -ENOMEM;
|
||||||
|
|
||||||
|
- i2c_adap = kzalloc(sizeof(struct i2c_adapter), GFP_KERNEL);
|
||||||
|
- if (i2c_adap == NULL)
|
||||||
|
- goto error;
|
||||||
|
+ hdpvr_activate_ir(dev);
|
||||||
|
|
||||||
|
- strlcpy(i2c_adap->name, "Hauppauge HD PVR I2C",
|
||||||
|
- sizeof(i2c_adap->name));
|
||||||
|
- i2c_adap->algo = &hdpvr_algo;
|
||||||
|
- i2c_adap->class = I2C_CLASS_TV_ANALOG;
|
||||||
|
- i2c_adap->owner = THIS_MODULE;
|
||||||
|
- i2c_adap->dev.parent = &dev->udev->dev;
|
||||||
|
+ memcpy(&dev->i2c_adapter, &hdpvr_i2c_adapter_template,
|
||||||
|
+ sizeof(struct i2c_adapter));
|
||||||
|
+ dev->i2c_adapter.dev.parent = &dev->udev->dev;
|
||||||
|
|
||||||
|
- i2c_set_adapdata(i2c_adap, dev);
|
||||||
|
+ i2c_set_adapdata(&dev->i2c_adapter, dev);
|
||||||
|
|
||||||
|
- retval = i2c_add_adapter(i2c_adap);
|
||||||
|
+ retval = i2c_add_adapter(&dev->i2c_adapter);
|
||||||
|
+ if (retval)
|
||||||
|
+ goto error;
|
||||||
|
|
||||||
|
- if (!retval)
|
||||||
|
- dev->i2c_adapter = i2c_adap;
|
||||||
|
- else
|
||||||
|
- kfree(i2c_adap);
|
||||||
|
+ i2c_new_device(&dev->i2c_adapter, &hdpvr_i2c_board_info);
|
||||||
|
|
||||||
|
error:
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+#endif /* CONFIG_I2C */
|
||||||
|
diff --git a/drivers/media/video/hdpvr/hdpvr.h b/drivers/media/video/hdpvr/hdpvr.h
|
||||||
|
index 49ae25d..8a5729a 100644
|
||||||
|
--- a/drivers/media/video/hdpvr/hdpvr.h
|
||||||
|
+++ b/drivers/media/video/hdpvr/hdpvr.h
|
||||||
|
@@ -102,7 +102,7 @@ struct hdpvr_device {
|
||||||
|
struct work_struct worker;
|
||||||
|
|
||||||
|
/* I2C adapter */
|
||||||
|
- struct i2c_adapter *i2c_adapter;
|
||||||
|
+ struct i2c_adapter i2c_adapter;
|
||||||
|
/* I2C lock */
|
||||||
|
struct mutex i2c_mutex;
|
||||||
|
|
||||||
|
|
@ -0,0 +1,101 @@
|
||||||
|
From sgruszka@redhat.com Mon Jan 17 08:04:28 2011
|
||||||
|
Return-Path: sgruszka@redhat.com
|
||||||
|
Received: from zmta03.collab.prod.int.phx2.redhat.com (LHLO
|
||||||
|
zmta03.collab.prod.int.phx2.redhat.com) (10.5.5.33) by
|
||||||
|
mail03.corp.redhat.com with LMTP; Mon, 17 Jan 2011 08:04:28 -0500 (EST)
|
||||||
|
Received: from localhost (localhost.localdomain [127.0.0.1])
|
||||||
|
by zmta03.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 5CF754C96B;
|
||||||
|
Mon, 17 Jan 2011 08:04:28 -0500 (EST)
|
||||||
|
Received: from zmta03.collab.prod.int.phx2.redhat.com ([127.0.0.1])
|
||||||
|
by localhost (zmta03.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024)
|
||||||
|
with ESMTP id qCtjRMUf-IeX; Mon, 17 Jan 2011 08:04:28 -0500 (EST)
|
||||||
|
Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])
|
||||||
|
by zmta03.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 4B8794C91D;
|
||||||
|
Mon, 17 Jan 2011 08:04:28 -0500 (EST)
|
||||||
|
Received: from localhost (vpn-235-108.phx2.redhat.com [10.3.235.108])
|
||||||
|
by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p0HD4RC9017134;
|
||||||
|
Mon, 17 Jan 2011 08:04:27 -0500
|
||||||
|
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
To: stable@kernel.org, kernel@lists.fedoraproject.org
|
||||||
|
Cc: Kyle McMartin <kmcmartin@redhat.com>,
|
||||||
|
Stanislaw Gruszka <sgruszka@redhat.com>,
|
||||||
|
Dominik Brodowski <linux@dominikbrodowski.net>,
|
||||||
|
Tim Gardner <tim.gardner@canonical.com>,
|
||||||
|
linux-wireless@vger.kernel.org
|
||||||
|
Subject: [PATCH 2.6.34.y] hostap_cs: fix sleeping function called from invalid context
|
||||||
|
Date: Mon, 17 Jan 2011 14:04:25 +0100
|
||||||
|
Message-Id: <1295269465-4903-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12
|
||||||
|
|
||||||
|
commit 4e5518ca53be29c1ec3c00089c97bef36bfed515 upstream.
|
||||||
|
|
||||||
|
pcmcia_request_irq() and pcmcia_enable_device() are intended
|
||||||
|
to be called from process context (first function allocate memory
|
||||||
|
with GFP_KERNEL, second take a mutex). We can not take spin lock
|
||||||
|
and call them.
|
||||||
|
|
||||||
|
It's safe to move spin lock after pcmcia_enable_device() as we
|
||||||
|
still hold off IRQ until dev->base_addr is 0 and driver will
|
||||||
|
not proceed with interrupts when is not ready.
|
||||||
|
|
||||||
|
Patch resolves:
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=643758
|
||||||
|
|
||||||
|
Reported-and-tested-by: rbugz@biobind.com
|
||||||
|
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/hostap/hostap_cs.c | 14 +++-----------
|
||||||
|
1 files changed, 3 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
|
||||||
|
index f33e18e..116b5c6 100644
|
||||||
|
--- a/drivers/net/wireless/hostap/hostap_cs.c
|
||||||
|
+++ b/drivers/net/wireless/hostap/hostap_cs.c
|
||||||
|
@@ -638,12 +638,6 @@ static int prism2_config(struct pcmcia_device *link)
|
||||||
|
link->dev_node = &hw_priv->node;
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * Make sure the IRQ handler cannot proceed until at least
|
||||||
|
- * dev->base_addr is initialized.
|
||||||
|
- */
|
||||||
|
- spin_lock_irqsave(&local->irq_init_lock, flags);
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
* Allocate an interrupt line. Note that this does not assign a
|
||||||
|
* handler to the interrupt, unless the 'Handler' member of the
|
||||||
|
* irq structure is initialized.
|
||||||
|
@@ -653,7 +647,7 @@ static int prism2_config(struct pcmcia_device *link)
|
||||||
|
link->irq.Handler = prism2_interrupt;
|
||||||
|
ret = pcmcia_request_irq(link, &link->irq);
|
||||||
|
if (ret)
|
||||||
|
- goto failed_unlock;
|
||||||
|
+ goto failed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -663,11 +657,11 @@ static int prism2_config(struct pcmcia_device *link)
|
||||||
|
*/
|
||||||
|
ret = pcmcia_request_configuration(link, &link->conf);
|
||||||
|
if (ret)
|
||||||
|
- goto failed_unlock;
|
||||||
|
+ goto failed;
|
||||||
|
|
||||||
|
+ spin_lock_irqsave(&local->irq_init_lock, flags);
|
||||||
|
dev->irq = link->irq.AssignedIRQ;
|
||||||
|
dev->base_addr = link->io.BasePort1;
|
||||||
|
-
|
||||||
|
spin_unlock_irqrestore(&local->irq_init_lock, flags);
|
||||||
|
|
||||||
|
/* Finally, report what we've done */
|
||||||
|
@@ -698,8 +692,6 @@ static int prism2_config(struct pcmcia_device *link)
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
- failed_unlock:
|
||||||
|
- spin_unlock_irqrestore(&local->irq_init_lock, flags);
|
||||||
|
failed:
|
||||||
|
kfree(hw_priv);
|
||||||
|
prism2_release((u_long)link);
|
||||||
|
--
|
||||||
|
1.7.1
|
||||||
|
|
||||||
85
i915-fix-crt-hotplug-regression.patch
Normal file
85
i915-fix-crt-hotplug-regression.patch
Normal file
|
|
@ -0,0 +1,85 @@
|
||||||
|
From dec23057518b7035117a1a732aa48be6d34f1be8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andrew Lutomirski <luto@mit.edu>
|
||||||
|
Date: Sat, 12 Jun 2010 09:21:18 +0000
|
||||||
|
Subject: i915: Fix CRT hotplug regression in 2.6.35-rc1
|
||||||
|
|
||||||
|
Commit 7a772c492fcfffae812ffca78a628e76fa57fe58 has two bugs which
|
||||||
|
made the hotplug problems on my laptop worse instead of better.
|
||||||
|
|
||||||
|
First, it did not, in fact, disable the CRT plug interrupt -- it
|
||||||
|
disabled all the other hotplug interrupts. It seems rather doubtful
|
||||||
|
that that bit of the patch fixed anything, so let's just remove it.
|
||||||
|
(If you want to add it back, you probably meant ~CRT_HOTPLUG_INT_EN.)
|
||||||
|
|
||||||
|
Second, on at least my GM45, setting CRT_HOTPLUG_ACTIVATION_PERIOD_64
|
||||||
|
and CRT_HOTPLUG_VOLTAGE_COMPARE_50 (when they were previously unset)
|
||||||
|
causes a hotplug interrupt about three seconds later. The old code
|
||||||
|
never restored PORT_HOTPLUG_EN so this could only happen once, but
|
||||||
|
they new code restores those registers. So just set those bits when
|
||||||
|
we set up the interrupt in the first place.
|
||||||
|
|
||||||
|
Signed-off-by: Andy Lutomirski <luto@mit.edu>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/i915/i915_irq.c | 12 +++++++++++-
|
||||||
|
drivers/gpu/drm/i915/i915_reg.h | 1 -
|
||||||
|
drivers/gpu/drm/i915/intel_crt.c | 6 ------
|
||||||
|
3 files changed, 11 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
|
||||||
|
index 2479be0..7acb1a6 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_irq.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_irq.c
|
||||||
|
@@ -1400,8 +1400,18 @@ int i915_driver_irq_postinstall(struct drm_device *dev)
|
||||||
|
hotplug_en |= SDVOC_HOTPLUG_INT_EN;
|
||||||
|
if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS)
|
||||||
|
hotplug_en |= SDVOB_HOTPLUG_INT_EN;
|
||||||
|
- if (dev_priv->hotplug_supported_mask & CRT_HOTPLUG_INT_STATUS)
|
||||||
|
+ if (dev_priv->hotplug_supported_mask & CRT_HOTPLUG_INT_STATUS) {
|
||||||
|
hotplug_en |= CRT_HOTPLUG_INT_EN;
|
||||||
|
+
|
||||||
|
+ /* Programming the CRT detection parameters tends
|
||||||
|
+ to generate a spurious hotplug event about three
|
||||||
|
+ seconds later. So just do it once.
|
||||||
|
+ */
|
||||||
|
+ if (IS_G4X(dev))
|
||||||
|
+ hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64;
|
||||||
|
+ hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Ignore TV since it's buggy */
|
||||||
|
|
||||||
|
I915_WRITE(PORT_HOTPLUG_EN, hotplug_en);
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
|
||||||
|
index 64b0a3a..d390b17 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_reg.h
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_reg.h
|
||||||
|
@@ -1130,7 +1130,6 @@
|
||||||
|
#define CRT_HOTPLUG_DETECT_DELAY_2G (1 << 4)
|
||||||
|
#define CRT_HOTPLUG_DETECT_VOLTAGE_325MV (0 << 2)
|
||||||
|
#define CRT_HOTPLUG_DETECT_VOLTAGE_475MV (1 << 2)
|
||||||
|
-#define CRT_HOTPLUG_MASK (0x3fc) /* Bits 9-2 */
|
||||||
|
|
||||||
|
#define PORT_HOTPLUG_STAT 0x61114
|
||||||
|
#define HDMIB_HOTPLUG_INT_STATUS (1 << 29)
|
||||||
|
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
|
||||||
|
index 22ff384..ee0732b 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_crt.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_crt.c
|
||||||
|
@@ -234,14 +234,8 @@ static bool intel_crt_detect_hotplug(struct drm_connector *connector)
|
||||||
|
else
|
||||||
|
tries = 1;
|
||||||
|
hotplug_en = orig = I915_READ(PORT_HOTPLUG_EN);
|
||||||
|
- hotplug_en &= CRT_HOTPLUG_MASK;
|
||||||
|
hotplug_en |= CRT_HOTPLUG_FORCE_DETECT;
|
||||||
|
|
||||||
|
- if (IS_G4X(dev))
|
||||||
|
- hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64;
|
||||||
|
-
|
||||||
|
- hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50;
|
||||||
|
-
|
||||||
|
for (i = 0; i < tries ; i++) {
|
||||||
|
unsigned long timeout;
|
||||||
|
/* turn on the FORCE_DETECT */
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
142
ima-allow-it-to-be-completely-disabled-and-default-off.patch
Normal file
142
ima-allow-it-to-be-completely-disabled-and-default-off.patch
Normal file
|
|
@ -0,0 +1,142 @@
|
||||||
|
From 785465d9cffd65b5a69dd2f465d2f7c917713220 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kyle McMartin <kyle@mcmartin.ca>
|
||||||
|
Date: Mon, 18 Oct 2010 13:30:39 -0400
|
||||||
|
Subject: [PATCH] ima: provide a toggle to disable it entirely
|
||||||
|
|
||||||
|
Signed-off-by: Kyle McMartin <kyle@redhat.com>
|
||||||
|
---
|
||||||
|
security/integrity/ima/ima.h | 1 +
|
||||||
|
security/integrity/ima/ima_iint.c | 9 +++++++++
|
||||||
|
security/integrity/ima/ima_main.c | 24 +++++++++++++++++++++---
|
||||||
|
3 files changed, 31 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/security/integrity/ima/ima_iint.c b/security/integrity/ima/ima_iint.c
|
||||||
|
index afba4ae..3d191ef 100644
|
||||||
|
--- a/security/integrity/ima/ima_iint.c
|
||||||
|
+++ b/security/integrity/ima/ima_iint.c
|
||||||
|
@@ -54,6 +54,9 @@ int ima_inode_alloc(struct inode *inode)
|
||||||
|
struct ima_iint_cache *iint = NULL;
|
||||||
|
int rc = 0;
|
||||||
|
|
||||||
|
+ if (!ima_enabled)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
iint = kmem_cache_alloc(iint_cache, GFP_NOFS);
|
||||||
|
if (!iint)
|
||||||
|
return -ENOMEM;
|
||||||
|
@@ -116,6 +119,9 @@ void ima_inode_free(struct inode *inode)
|
||||||
|
{
|
||||||
|
struct ima_iint_cache *iint;
|
||||||
|
|
||||||
|
+ if (!ima_enabled)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
spin_lock(&ima_iint_lock);
|
||||||
|
iint = radix_tree_delete(&ima_iint_store, (unsigned long)inode);
|
||||||
|
spin_unlock(&ima_iint_lock);
|
||||||
|
@@ -139,6 +145,9 @@ static void init_once(void *foo)
|
||||||
|
|
||||||
|
static int __init ima_iintcache_init(void)
|
||||||
|
{
|
||||||
|
+ if (!ima_enabled)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
iint_cache =
|
||||||
|
kmem_cache_create("iint_cache", sizeof(struct ima_iint_cache), 0,
|
||||||
|
SLAB_PANIC, init_once);
|
||||||
|
diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c
|
||||||
|
index e662b89..6e91905 100644
|
||||||
|
--- a/security/integrity/ima/ima_main.c
|
||||||
|
+++ b/security/integrity/ima/ima_main.c
|
||||||
|
@@ -26,6 +26,7 @@
|
||||||
|
#include "ima.h"
|
||||||
|
|
||||||
|
int ima_initialized;
|
||||||
|
+int ima_enabled;
|
||||||
|
|
||||||
|
char *ima_hash = "sha1";
|
||||||
|
static int __init hash_setup(char *str)
|
||||||
|
@@ -36,6 +37,14 @@ static int __init hash_setup(char *str)
|
||||||
|
}
|
||||||
|
__setup("ima_hash=", hash_setup);
|
||||||
|
|
||||||
|
+static int __init ima_enable(char *str)
|
||||||
|
+{
|
||||||
|
+ if (strncmp(str, "on", 2) == 0)
|
||||||
|
+ ima_enabled = 1;
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+__setup("ima=", ima_enable);
|
||||||
|
+
|
||||||
|
struct ima_imbalance {
|
||||||
|
struct hlist_node node;
|
||||||
|
unsigned long fsmagic;
|
||||||
|
@@ -148,7 +157,7 @@ void ima_counts_get(struct file *file)
|
||||||
|
struct ima_iint_cache *iint;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
- if (!ima_initialized || !S_ISREG(inode->i_mode))
|
||||||
|
+ if (!ima_enabled || !ima_initialized || !S_ISREG(inode->i_mode))
|
||||||
|
return;
|
||||||
|
iint = ima_iint_find_get(inode);
|
||||||
|
if (!iint)
|
||||||
|
@@ -215,7 +224,7 @@ void ima_file_free(struct file *file)
|
||||||
|
struct inode *inode = file->f_dentry->d_inode;
|
||||||
|
struct ima_iint_cache *iint;
|
||||||
|
|
||||||
|
- if (!ima_initialized || !S_ISREG(inode->i_mode))
|
||||||
|
+ if (!ima_enabled || !ima_initialized || !S_ISREG(inode->i_mode))
|
||||||
|
return;
|
||||||
|
iint = ima_iint_find_get(inode);
|
||||||
|
if (!iint)
|
||||||
|
@@ -269,7 +278,7 @@ int ima_file_mmap(struct file *file, unsigned long prot)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
- if (!file)
|
||||||
|
+ if (!ima_enabled || !file)
|
||||||
|
return 0;
|
||||||
|
if (prot & PROT_EXEC)
|
||||||
|
rc = process_measurement(file, file->f_dentry->d_name.name,
|
||||||
|
@@ -294,6 +303,9 @@ int ima_bprm_check(struct linux_binprm *bprm)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
+ if (!ima_enabled)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
rc = process_measurement(bprm->file, bprm->filename,
|
||||||
|
MAY_EXEC, BPRM_CHECK);
|
||||||
|
return 0;
|
||||||
|
@@ -313,6 +325,9 @@ int ima_file_check(struct file *file, int mask)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
+ if (!ima_enabled)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
rc = process_measurement(file, file->f_dentry->d_name.name,
|
||||||
|
mask & (MAY_READ | MAY_WRITE | MAY_EXEC),
|
||||||
|
FILE_CHECK);
|
||||||
|
@@ -324,6 +339,9 @@ static int __init init_ima(void)
|
||||||
|
{
|
||||||
|
int error;
|
||||||
|
|
||||||
|
+ if (!ima_enabled)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
error = ima_init();
|
||||||
|
ima_initialized = 1;
|
||||||
|
return error;
|
||||||
|
diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
|
||||||
|
index 47fb65d..8919c4e 100644
|
||||||
|
--- a/security/integrity/ima/ima.h
|
||||||
|
+++ b/security/integrity/ima/ima.h
|
||||||
|
@@ -36,6 +36,7 @@ enum tpm_pcrs { TPM_PCR0 = 0, TPM_PCR8 = 8 };
|
||||||
|
|
||||||
|
/* set during initialization */
|
||||||
|
extern int ima_initialized;
|
||||||
|
+extern int ima_enabled;
|
||||||
|
extern int ima_used_chip;
|
||||||
|
extern char *ima_hash;
|
||||||
|
|
||||||
105
inet_diag-make-sure-we-run-the-same-bytecode-we-audited.patch
Normal file
105
inet_diag-make-sure-we-run-the-same-bytecode-we-audited.patch
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
From 2e9684595ceeb850702f21b84f25f39c4cece24c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nelson Elhage <nelhage@ksplice.com>
|
||||||
|
Date: Wed, 3 Nov 2010 16:35:41 +0000
|
||||||
|
Subject: inet_diag: Make sure we actually run the same bytecode we audited.
|
||||||
|
|
||||||
|
We were using nlmsg_find_attr() to look up the bytecode by attribute when
|
||||||
|
auditing, but then just using the first attribute when actually running
|
||||||
|
bytecode. So, if we received a message with two attribute elements, where only
|
||||||
|
the second had type INET_DIAG_REQ_BYTECODE, we would validate and run different
|
||||||
|
bytecode strings.
|
||||||
|
|
||||||
|
Fix this by consistently using nlmsg_find_attr everywhere.
|
||||||
|
|
||||||
|
Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
|
||||||
|
Signed-off-by: Thomas Graf <tgraf@infradead.org>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
net/ipv4/inet_diag.c | 27 ++++++++++++++++-----------
|
||||||
|
1 files changed, 16 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
|
||||||
|
index e5fa2dd..7403b9b 100644
|
||||||
|
--- a/net/ipv4/inet_diag.c
|
||||||
|
+++ b/net/ipv4/inet_diag.c
|
||||||
|
@@ -490,9 +490,11 @@ static int inet_csk_diag_dump(struct sock *sk,
|
||||||
|
{
|
||||||
|
struct inet_diag_req *r = NLMSG_DATA(cb->nlh);
|
||||||
|
|
||||||
|
- if (cb->nlh->nlmsg_len > 4 + NLMSG_SPACE(sizeof(*r))) {
|
||||||
|
+ if (nlmsg_attrlen(cb->nlh, sizeof(*r))) {
|
||||||
|
struct inet_diag_entry entry;
|
||||||
|
- struct rtattr *bc = (struct rtattr *)(r + 1);
|
||||||
|
+ const struct nlattr *bc = nlmsg_find_attr(cb->nlh,
|
||||||
|
+ sizeof(*r),
|
||||||
|
+ INET_DIAG_REQ_BYTECODE);
|
||||||
|
struct inet_sock *inet = inet_sk(sk);
|
||||||
|
|
||||||
|
entry.family = sk->sk_family;
|
||||||
|
@@ -512,7 +514,7 @@ static int inet_csk_diag_dump(struct sock *sk,
|
||||||
|
entry.dport = ntohs(inet->inet_dport);
|
||||||
|
entry.userlocks = sk->sk_userlocks;
|
||||||
|
|
||||||
|
- if (!inet_diag_bc_run(RTA_DATA(bc), RTA_PAYLOAD(bc), &entry))
|
||||||
|
+ if (!inet_diag_bc_run(nla_data(bc), nla_len(bc), &entry))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -527,9 +529,11 @@ static int inet_twsk_diag_dump(struct inet_timewait_sock *tw,
|
||||||
|
{
|
||||||
|
struct inet_diag_req *r = NLMSG_DATA(cb->nlh);
|
||||||
|
|
||||||
|
- if (cb->nlh->nlmsg_len > 4 + NLMSG_SPACE(sizeof(*r))) {
|
||||||
|
+ if (nlmsg_attrlen(cb->nlh, sizeof(*r))) {
|
||||||
|
struct inet_diag_entry entry;
|
||||||
|
- struct rtattr *bc = (struct rtattr *)(r + 1);
|
||||||
|
+ const struct nlattr *bc = nlmsg_find_attr(cb->nlh,
|
||||||
|
+ sizeof(*r),
|
||||||
|
+ INET_DIAG_REQ_BYTECODE);
|
||||||
|
|
||||||
|
entry.family = tw->tw_family;
|
||||||
|
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
|
||||||
|
@@ -548,7 +552,7 @@ static int inet_twsk_diag_dump(struct inet_timewait_sock *tw,
|
||||||
|
entry.dport = ntohs(tw->tw_dport);
|
||||||
|
entry.userlocks = 0;
|
||||||
|
|
||||||
|
- if (!inet_diag_bc_run(RTA_DATA(bc), RTA_PAYLOAD(bc), &entry))
|
||||||
|
+ if (!inet_diag_bc_run(nla_data(bc), nla_len(bc), &entry))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -618,7 +622,7 @@ static int inet_diag_dump_reqs(struct sk_buff *skb, struct sock *sk,
|
||||||
|
struct inet_diag_req *r = NLMSG_DATA(cb->nlh);
|
||||||
|
struct inet_connection_sock *icsk = inet_csk(sk);
|
||||||
|
struct listen_sock *lopt;
|
||||||
|
- struct rtattr *bc = NULL;
|
||||||
|
+ const struct nlattr *bc = NULL;
|
||||||
|
struct inet_sock *inet = inet_sk(sk);
|
||||||
|
int j, s_j;
|
||||||
|
int reqnum, s_reqnum;
|
||||||
|
@@ -638,8 +642,9 @@ static int inet_diag_dump_reqs(struct sk_buff *skb, struct sock *sk,
|
||||||
|
if (!lopt || !lopt->qlen)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
- if (cb->nlh->nlmsg_len > 4 + NLMSG_SPACE(sizeof(*r))) {
|
||||||
|
- bc = (struct rtattr *)(r + 1);
|
||||||
|
+ if (nlmsg_attrlen(cb->nlh, sizeof(*r))) {
|
||||||
|
+ bc = nlmsg_find_attr(cb->nlh, sizeof(*r),
|
||||||
|
+ INET_DIAG_REQ_BYTECODE);
|
||||||
|
entry.sport = inet->inet_num;
|
||||||
|
entry.userlocks = sk->sk_userlocks;
|
||||||
|
}
|
||||||
|
@@ -672,8 +677,8 @@ static int inet_diag_dump_reqs(struct sk_buff *skb, struct sock *sk,
|
||||||
|
&ireq->rmt_addr;
|
||||||
|
entry.dport = ntohs(ireq->rmt_port);
|
||||||
|
|
||||||
|
- if (!inet_diag_bc_run(RTA_DATA(bc),
|
||||||
|
- RTA_PAYLOAD(bc), &entry))
|
||||||
|
+ if (!inet_diag_bc_run(nla_data(bc),
|
||||||
|
+ nla_len(bc), &entry))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.3.2
|
||||||
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||||
|
Date: Wed, 21 Jul 2010 07:01:19 +0000 (-0700)
|
||||||
|
Subject: Input: synaptics - relax capability ID checks on newer hardware
|
||||||
|
X-Git-Tag: v2.6.35-rc6~1^2
|
||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=3619b8fead04ab9de643712e757ef6b5f79fd1ab
|
||||||
|
|
||||||
|
Input: synaptics - relax capability ID checks on newer hardware
|
||||||
|
|
||||||
|
Older firmwares fixed the middle byte of the Synaptics capabilities
|
||||||
|
query to 0x47, but starting with firmware 7.5 the middle byte
|
||||||
|
represents submodel ID, sometimes also called "dash number".
|
||||||
|
|
||||||
|
Reported-and-tested-by: Miroslav Šulc <fordfrog@gmail.com>
|
||||||
|
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
|
||||||
|
index 9ba9c4a..705589d 100644
|
||||||
|
--- a/drivers/input/mouse/synaptics.c
|
||||||
|
+++ b/drivers/input/mouse/synaptics.c
|
||||||
|
@@ -141,8 +141,13 @@ static int synaptics_capability(struct psmouse *psmouse)
|
||||||
|
priv->capabilities = (cap[0] << 16) | (cap[1] << 8) | cap[2];
|
||||||
|
priv->ext_cap = priv->ext_cap_0c = 0;
|
||||||
|
|
||||||
|
- if (!SYN_CAP_VALID(priv->capabilities))
|
||||||
|
+ /*
|
||||||
|
+ * Older firmwares had submodel ID fixed to 0x47
|
||||||
|
+ */
|
||||||
|
+ if (SYN_ID_FULL(priv->identity) < 0x705 &&
|
||||||
|
+ SYN_CAP_SUBMODEL_ID(priv->capabilities) != 0x47) {
|
||||||
|
return -1;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Unless capExtended is set the rest of the flags should be ignored
|
||||||
|
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
|
||||||
|
index 7d4d5e1..b6aa7d2 100644
|
||||||
|
--- a/drivers/input/mouse/synaptics.h
|
||||||
|
+++ b/drivers/input/mouse/synaptics.h
|
||||||
|
@@ -47,7 +47,7 @@
|
||||||
|
#define SYN_CAP_FOUR_BUTTON(c) ((c) & (1 << 3))
|
||||||
|
#define SYN_CAP_MULTIFINGER(c) ((c) & (1 << 1))
|
||||||
|
#define SYN_CAP_PALMDETECT(c) ((c) & (1 << 0))
|
||||||
|
-#define SYN_CAP_VALID(c) ((((c) & 0x00ff00) >> 8) == 0x47)
|
||||||
|
+#define SYN_CAP_SUBMODEL_ID(c) (((c) & 0x00ff00) >> 8)
|
||||||
|
#define SYN_EXT_CAP_REQUESTS(c) (((c) & 0x700000) >> 20)
|
||||||
|
#define SYN_CAP_MULTI_BUTTON_NO(ec) (((ec) & 0x00f000) >> 12)
|
||||||
|
#define SYN_CAP_PRODUCT_ID(ec) (((ec) & 0xff0000) >> 16)
|
||||||
|
@@ -66,6 +66,7 @@
|
||||||
|
#define SYN_ID_MODEL(i) (((i) >> 4) & 0x0f)
|
||||||
|
#define SYN_ID_MAJOR(i) ((i) & 0x0f)
|
||||||
|
#define SYN_ID_MINOR(i) (((i) >> 16) & 0xff)
|
||||||
|
+#define SYN_ID_FULL(i) ((SYN_ID_MAJOR(i) << 8) | SYN_ID_MINOR(i))
|
||||||
|
#define SYN_ID_IS_SYNAPTICS(i) ((((i) >> 8) & 0xff) == 0x47)
|
||||||
|
|
||||||
|
/* synaptics special commands */
|
||||||
162
iwlwifi-Recover-TX-flow-failure.patch
Normal file
162
iwlwifi-Recover-TX-flow-failure.patch
Normal file
|
|
@ -0,0 +1,162 @@
|
||||||
|
From 5b51e801eef53be8e521316eea9e78e5c4595fd4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Date: Thu, 4 Mar 2010 13:38:59 -0800
|
||||||
|
Subject: [PATCH] iwlwifi: Recover TX flow failure
|
||||||
|
|
||||||
|
Monitors the tx statistics to detect the drop in throughput.
|
||||||
|
When the throughput drops, the ratio of the actual_ack_count and the
|
||||||
|
expected_ack_count also drops. At the same time, the aggregated
|
||||||
|
ba_timeout (the number of ba timeout retries) also rises. If the
|
||||||
|
actual_ack_count/expected_ack_count ratio is 0 and the number of ba
|
||||||
|
timeout retries rises to BA_TIMEOUT_MAX, no tx packets can be delivered.
|
||||||
|
Reloading the uCode and bring the system back to normal operational
|
||||||
|
state.
|
||||||
|
|
||||||
|
Signed-off-by: Trieu 'Andrew' Nguyen <trieux.t.nguyen@intel.com>
|
||||||
|
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-agn.c | 14 ++++++++-
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-dev.h | 21 +++++++++++++
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-rx.c | 50 +++++++++++++++++++++++++++++++-
|
||||||
|
3 files changed, 83 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
index 07a9a02..dc751cb 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
@@ -2965,10 +2965,21 @@ static int iwl_mac_ampdu_action(struct ieee80211_hw *hw,
|
||||||
|
return ret;
|
||||||
|
case IEEE80211_AMPDU_TX_START:
|
||||||
|
IWL_DEBUG_HT(priv, "start Tx\n");
|
||||||
|
- return iwl_tx_agg_start(priv, sta->addr, tid, ssn);
|
||||||
|
+ ret = iwl_tx_agg_start(priv, sta->addr, tid, ssn);
|
||||||
|
+ if (ret == 0) {
|
||||||
|
+ priv->_agn.agg_tids_count++;
|
||||||
|
+ IWL_DEBUG_HT(priv, "priv->_agn.agg_tids_count = %u\n",
|
||||||
|
+ priv->_agn.agg_tids_count);
|
||||||
|
+ }
|
||||||
|
+ return ret;
|
||||||
|
case IEEE80211_AMPDU_TX_STOP:
|
||||||
|
IWL_DEBUG_HT(priv, "stop Tx\n");
|
||||||
|
ret = iwl_tx_agg_stop(priv, sta->addr, tid);
|
||||||
|
+ if ((ret == 0) && (priv->_agn.agg_tids_count > 0)) {
|
||||||
|
+ priv->_agn.agg_tids_count--;
|
||||||
|
+ IWL_DEBUG_HT(priv, "priv->_agn.agg_tids_count = %u\n",
|
||||||
|
+ priv->_agn.agg_tids_count);
|
||||||
|
+ }
|
||||||
|
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
|
||||||
|
return 0;
|
||||||
|
else
|
||||||
|
@@ -3399,6 +3410,7 @@ static int iwl_init_drv(struct iwl_priv *priv)
|
||||||
|
priv->iw_mode = NL80211_IFTYPE_STATION;
|
||||||
|
priv->current_ht_config.smps = IEEE80211_SMPS_STATIC;
|
||||||
|
priv->missed_beacon_threshold = IWL_MISSED_BEACON_THRESHOLD_DEF;
|
||||||
|
+ priv->_agn.agg_tids_count = 0;
|
||||||
|
|
||||||
|
/* initialize force reset */
|
||||||
|
priv->force_reset[IWL_RF_RESET].reset_duration =
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||||
|
index 447e14b..e2a6b76 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||||
|
@@ -1275,6 +1275,26 @@ struct iwl_priv {
|
||||||
|
void *shared_virt;
|
||||||
|
dma_addr_t shared_phys;
|
||||||
|
/*End*/
|
||||||
|
+ union {
|
||||||
|
+#if defined(CONFIG_IWLAGN) || defined(CONFIG_IWLAGN_MODULE)
|
||||||
|
+ struct {
|
||||||
|
+ /* INT ICT Table */
|
||||||
|
+ __le32 *ict_tbl;
|
||||||
|
+ void *ict_tbl_vir;
|
||||||
|
+ dma_addr_t ict_tbl_dma;
|
||||||
|
+ dma_addr_t aligned_ict_tbl_dma;
|
||||||
|
+ int ict_index;
|
||||||
|
+ u32 inta;
|
||||||
|
+ bool use_ict;
|
||||||
|
+ /*
|
||||||
|
+ * reporting the number of tids has AGG on. 0 means
|
||||||
|
+ * no AGGREGATION
|
||||||
|
+ */
|
||||||
|
+ u8 agg_tids_count;
|
||||||
|
+ } _agn;
|
||||||
|
+#endif
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
struct iwl_hw_params hw_params;
|
||||||
|
|
||||||
|
/* INT ICT Table */
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
index fabc52f..f48d685 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
@@ -617,9 +617,18 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
|
||||||
|
|
||||||
|
#define REG_RECALIB_PERIOD (60)
|
||||||
|
|
||||||
|
+/* the threshold ratio of actual_ack_cnt to expected_ack_cnt in percent */
|
||||||
|
+#define ACK_CNT_RATIO (50)
|
||||||
|
+#define BA_TIMEOUT_CNT (5)
|
||||||
|
+#define BA_TIMEOUT_MAX (16)
|
||||||
|
+
|
||||||
|
#define PLCP_MSG "plcp_err exceeded %u, %u, %u, %u, %u, %d, %u mSecs\n"
|
||||||
|
/*
|
||||||
|
- * This function checks for plcp error.
|
||||||
|
+ * This function checks for plcp error, ACK count ratios, aggregated BA
|
||||||
|
+ * timeout retries.
|
||||||
|
+ * - When the ACK count ratio is 0 and aggregated BA timeout retries is
|
||||||
|
+ * exceeding the BA_TIMEOUT_MAX, it will recover the failure by resetting
|
||||||
|
+ * the firmware.
|
||||||
|
* - When the plcp error is exceeding the thresholds, it will reset the radio
|
||||||
|
* to improve the throughput.
|
||||||
|
*/
|
||||||
|
@@ -629,6 +638,45 @@ void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
int combined_plcp_delta;
|
||||||
|
unsigned int plcp_msec;
|
||||||
|
unsigned long plcp_received_jiffies;
|
||||||
|
+ int actual_ack_cnt_delta;
|
||||||
|
+ int expected_ack_cnt_delta;
|
||||||
|
+ int ba_timeout_delta;
|
||||||
|
+
|
||||||
|
+ actual_ack_cnt_delta =
|
||||||
|
+ le32_to_cpu(pkt->u.stats.tx.actual_ack_cnt) -
|
||||||
|
+ le32_to_cpu(priv->statistics.tx.actual_ack_cnt);
|
||||||
|
+ expected_ack_cnt_delta =
|
||||||
|
+ le32_to_cpu(pkt->u.stats.tx.expected_ack_cnt) -
|
||||||
|
+ le32_to_cpu(priv->statistics.tx.expected_ack_cnt);
|
||||||
|
+ ba_timeout_delta =
|
||||||
|
+ le32_to_cpu(pkt->u.stats.tx.agg.ba_timeout) -
|
||||||
|
+ le32_to_cpu(priv->statistics.tx.agg.ba_timeout);
|
||||||
|
+ if ((priv->_agn.agg_tids_count > 0) &&
|
||||||
|
+ (expected_ack_cnt_delta > 0) &&
|
||||||
|
+ (((actual_ack_cnt_delta * 100) / expected_ack_cnt_delta)
|
||||||
|
+ < ACK_CNT_RATIO) &&
|
||||||
|
+ (ba_timeout_delta > BA_TIMEOUT_CNT)) {
|
||||||
|
+ IWL_DEBUG_RADIO(priv, "actual_ack_cnt delta = %d,"
|
||||||
|
+ " expected_ack_cnt = %d\n",
|
||||||
|
+ actual_ack_cnt_delta, expected_ack_cnt_delta);
|
||||||
|
+
|
||||||
|
+#ifdef CONFIG_IWLWIFI_DEBUG
|
||||||
|
+ IWL_DEBUG_RADIO(priv, "rx_detected_cnt delta = %d\n",
|
||||||
|
+ priv->delta_statistics.tx.rx_detected_cnt);
|
||||||
|
+ IWL_DEBUG_RADIO(priv,
|
||||||
|
+ "ack_or_ba_timeout_collision delta = %d\n",
|
||||||
|
+ priv->delta_statistics.tx.
|
||||||
|
+ ack_or_ba_timeout_collision);
|
||||||
|
+#endif
|
||||||
|
+ IWL_DEBUG_RADIO(priv, "agg ba_timeout delta = %d\n",
|
||||||
|
+ ba_timeout_delta);
|
||||||
|
+ if ((actual_ack_cnt_delta == 0) &&
|
||||||
|
+ (ba_timeout_delta >= BA_TIMEOUT_MAX)) {
|
||||||
|
+ IWL_DEBUG_RADIO(priv,
|
||||||
|
+ "call iwl_force_reset(IWL_FW_RESET)\n");
|
||||||
|
+ iwl_force_reset(priv, IWL_FW_RESET);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* check for plcp_err and trigger radio reset if it exceeds
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
90
iwlwifi-add-internal-short-scan-support-for-3945.patch
Normal file
90
iwlwifi-add-internal-short-scan-support-for-3945.patch
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
From dcde3533b9f501ad079c297b3bf7659739c4c287 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Date: Wed, 24 Feb 2010 08:28:30 -0800
|
||||||
|
Subject: [PATCH] iwlwifi: add internal short scan support for 3945
|
||||||
|
|
||||||
|
Add internal short scan support for 3945 NIC, This allows 3945 NIC
|
||||||
|
to support radio reset request like the other series of NICs.
|
||||||
|
|
||||||
|
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/iwlwifi/iwl3945-base.c | 22 ++++++++++++++--------
|
||||||
|
1 files changed, 14 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||||
|
index b74a56c..19c77a8 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||||
|
@@ -2821,7 +2821,6 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
||||||
|
.len = sizeof(struct iwl3945_scan_cmd),
|
||||||
|
.flags = CMD_SIZE_HUGE,
|
||||||
|
};
|
||||||
|
- int rc = 0;
|
||||||
|
struct iwl3945_scan_cmd *scan;
|
||||||
|
struct ieee80211_conf *conf = NULL;
|
||||||
|
u8 n_probes = 0;
|
||||||
|
@@ -2849,7 +2848,6 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
||||||
|
if (test_bit(STATUS_SCAN_HW, &priv->status)) {
|
||||||
|
IWL_DEBUG_INFO(priv, "Multiple concurrent scan requests "
|
||||||
|
"Ignoring second request.\n");
|
||||||
|
- rc = -EIO;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2884,7 +2882,7 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
||||||
|
priv->scan = kmalloc(sizeof(struct iwl3945_scan_cmd) +
|
||||||
|
IWL_MAX_SCAN_SIZE, GFP_KERNEL);
|
||||||
|
if (!priv->scan) {
|
||||||
|
- rc = -ENOMEM;
|
||||||
|
+ IWL_DEBUG_SCAN(priv, "Fail to allocate scan memory\n");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -2927,7 +2925,9 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
||||||
|
scan_suspend_time, interval);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (priv->scan_request->n_ssids) {
|
||||||
|
+ if (priv->is_internal_short_scan) {
|
||||||
|
+ IWL_DEBUG_SCAN(priv, "Start internal passive scan.\n");
|
||||||
|
+ } else if (priv->scan_request->n_ssids) {
|
||||||
|
int i, p = 0;
|
||||||
|
IWL_DEBUG_SCAN(priv, "Kicking off active scan\n");
|
||||||
|
for (i = 0; i < priv->scan_request->n_ssids; i++) {
|
||||||
|
@@ -2975,13 +2975,20 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
- scan->tx_cmd.len = cpu_to_le16(
|
||||||
|
+ if (!priv->is_internal_short_scan) {
|
||||||
|
+ scan->tx_cmd.len = cpu_to_le16(
|
||||||
|
iwl_fill_probe_req(priv,
|
||||||
|
(struct ieee80211_mgmt *)scan->data,
|
||||||
|
priv->scan_request->ie,
|
||||||
|
priv->scan_request->ie_len,
|
||||||
|
IWL_MAX_SCAN_SIZE - sizeof(*scan)));
|
||||||
|
-
|
||||||
|
+ } else {
|
||||||
|
+ scan->tx_cmd.len = cpu_to_le16(
|
||||||
|
+ iwl_fill_probe_req(priv,
|
||||||
|
+ (struct ieee80211_mgmt *)scan->data,
|
||||||
|
+ NULL, 0,
|
||||||
|
+ IWL_MAX_SCAN_SIZE - sizeof(*scan)));
|
||||||
|
+ }
|
||||||
|
/* select Rx antennas */
|
||||||
|
scan->flags |= iwl3945_get_antenna_flags(priv);
|
||||||
|
|
||||||
|
@@ -3003,8 +3010,7 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
||||||
|
scan->len = cpu_to_le16(cmd.len);
|
||||||
|
|
||||||
|
set_bit(STATUS_SCAN_HW, &priv->status);
|
||||||
|
- rc = iwl_send_cmd_sync(priv, &cmd);
|
||||||
|
- if (rc)
|
||||||
|
+ if (iwl_send_cmd_sync(priv, &cmd))
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
queue_delayed_work(priv->workqueue, &priv->scan_check,
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
278
iwlwifi-code-cleanup-for-connectivity-recovery.patch
Normal file
278
iwlwifi-code-cleanup-for-connectivity-recovery.patch
Normal file
|
|
@ -0,0 +1,278 @@
|
||||||
|
From 56cf16e34b896ac40c6707eb053d45d2cab18bbd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Date: Fri, 5 Mar 2010 14:22:46 -0800
|
||||||
|
Subject: [PATCH] iwlwifi: code cleanup for connectivity recovery
|
||||||
|
|
||||||
|
Split the connectivity check and recovery routine into separated
|
||||||
|
functions based on the types
|
||||||
|
1. iwl_good_ack_health() - check for ack count
|
||||||
|
2. iwl_good_plcp_health() - check for plcp error
|
||||||
|
|
||||||
|
Based on the type of errors being detected, different recovery methods
|
||||||
|
will be used to bring the system back to normal operational state.
|
||||||
|
|
||||||
|
Because different NIC has different HW and uCode, the behavior is also
|
||||||
|
different; these functions thus now form part of the ops infrastructure,
|
||||||
|
so we can have more control on how to monitor and recover from error condition
|
||||||
|
case per device.
|
||||||
|
|
||||||
|
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-1000.c | 3 +-
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-4965.c | 2 +-
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-5000.c | 6 +-
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-6000.c | 6 +-
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-core.h | 11 +++-
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-rx.c | 97 +++++++++++++++++++++----------
|
||||||
|
6 files changed, 85 insertions(+), 40 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
|
||||||
|
index 2597574..7087631 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
|
||||||
|
@@ -212,7 +212,8 @@ static struct iwl_lib_ops iwl1000_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
- .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
+ .check_plcp_health = iwl_good_plcp_health,
|
||||||
|
+ .check_ack_health = iwl_good_ack_health,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl1000_ops = {
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
|
||||||
|
index 6dd4328..dcca310 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
|
||||||
|
@@ -2217,7 +2217,7 @@ static struct iwl_lib_ops iwl4965_lib = {
|
||||||
|
.set_ct_kill = iwl4965_set_ct_threshold,
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
- .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
+ .check_plcp_health = iwl_good_plcp_health,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl4965_ops = {
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
|
||||||
|
index 0c2469c..8e0dd13 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
|
||||||
|
@@ -1501,7 +1501,8 @@ struct iwl_lib_ops iwl5000_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
- .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
+ .check_plcp_health = iwl_good_plcp_health,
|
||||||
|
+ .check_ack_health = iwl_good_ack_health,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct iwl_lib_ops iwl5150_lib = {
|
||||||
|
@@ -1557,7 +1558,8 @@ static struct iwl_lib_ops iwl5150_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
- .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
+ .check_plcp_health = iwl_good_plcp_health,
|
||||||
|
+ .check_ack_health = iwl_good_ack_health,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl5000_ops = {
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
|
||||||
|
index 189a8ce..1d4fea1 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
|
||||||
|
@@ -278,7 +278,8 @@ static struct iwl_lib_ops iwl6000_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
- .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
+ .check_plcp_health = iwl_good_plcp_health,
|
||||||
|
+ .check_ack_health = iwl_good_ack_health,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl6000_ops = {
|
||||||
|
@@ -345,7 +346,8 @@ static struct iwl_lib_ops iwl6050_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
- .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
+ .check_plcp_health = iwl_good_plcp_health,
|
||||||
|
+ .check_ack_health = iwl_good_ack_health,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl6050_ops = {
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
index d67048e..5234a85 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
@@ -193,8 +193,11 @@ struct iwl_lib_ops {
|
||||||
|
void (*add_bcast_station)(struct iwl_priv *priv);
|
||||||
|
/* recover from tx queue stall */
|
||||||
|
void (*recover_from_tx_stall)(unsigned long data);
|
||||||
|
- /* recover from errors showed in statistics */
|
||||||
|
- void (*recover_from_statistics)(struct iwl_priv *priv,
|
||||||
|
+ /* check for plcp health */
|
||||||
|
+ bool (*check_plcp_health)(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt);
|
||||||
|
+ /* check for ack health */
|
||||||
|
+ bool (*check_ack_health)(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_packet *pkt);
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -438,7 +441,9 @@ void iwl_rx_missed_beacon_notif(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_mem_buffer *rxb);
|
||||||
|
void iwl_rx_spectrum_measure_notif(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_mem_buffer *rxb);
|
||||||
|
-void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
+bool iwl_good_plcp_health(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt);
|
||||||
|
+bool iwl_good_ack_health(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_packet *pkt);
|
||||||
|
void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_mem_buffer *rxb);
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
index f48d685..506ccf7 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
@@ -622,24 +622,18 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
|
||||||
|
#define BA_TIMEOUT_CNT (5)
|
||||||
|
#define BA_TIMEOUT_MAX (16)
|
||||||
|
|
||||||
|
-#define PLCP_MSG "plcp_err exceeded %u, %u, %u, %u, %u, %d, %u mSecs\n"
|
||||||
|
-/*
|
||||||
|
- * This function checks for plcp error, ACK count ratios, aggregated BA
|
||||||
|
- * timeout retries.
|
||||||
|
- * - When the ACK count ratio is 0 and aggregated BA timeout retries is
|
||||||
|
- * exceeding the BA_TIMEOUT_MAX, it will recover the failure by resetting
|
||||||
|
- * the firmware.
|
||||||
|
- * - When the plcp error is exceeding the thresholds, it will reset the radio
|
||||||
|
- * to improve the throughput.
|
||||||
|
+/**
|
||||||
|
+ * iwl_good_ack_health - checks for ACK count ratios, BA timeout retries.
|
||||||
|
+ *
|
||||||
|
+ * When the ACK count ratio is 0 and aggregated BA timeout retries exceeding
|
||||||
|
+ * the BA_TIMEOUT_MAX, reload firmware and bring system back to normal
|
||||||
|
+ * operation state.
|
||||||
|
*/
|
||||||
|
-void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
- struct iwl_rx_packet *pkt)
|
||||||
|
+bool iwl_good_ack_health(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt)
|
||||||
|
{
|
||||||
|
- int combined_plcp_delta;
|
||||||
|
- unsigned int plcp_msec;
|
||||||
|
- unsigned long plcp_received_jiffies;
|
||||||
|
- int actual_ack_cnt_delta;
|
||||||
|
- int expected_ack_cnt_delta;
|
||||||
|
+ bool rc = true;
|
||||||
|
+ int actual_ack_cnt_delta, expected_ack_cnt_delta;
|
||||||
|
int ba_timeout_delta;
|
||||||
|
|
||||||
|
actual_ack_cnt_delta =
|
||||||
|
@@ -670,13 +664,27 @@ void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
#endif
|
||||||
|
IWL_DEBUG_RADIO(priv, "agg ba_timeout delta = %d\n",
|
||||||
|
ba_timeout_delta);
|
||||||
|
- if ((actual_ack_cnt_delta == 0) &&
|
||||||
|
- (ba_timeout_delta >= BA_TIMEOUT_MAX)) {
|
||||||
|
- IWL_DEBUG_RADIO(priv,
|
||||||
|
- "call iwl_force_reset(IWL_FW_RESET)\n");
|
||||||
|
- iwl_force_reset(priv, IWL_FW_RESET);
|
||||||
|
- }
|
||||||
|
+ if (!actual_ack_cnt_delta &&
|
||||||
|
+ (ba_timeout_delta >= BA_TIMEOUT_MAX))
|
||||||
|
+ rc = false;
|
||||||
|
}
|
||||||
|
+ return rc;
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL(iwl_good_ack_health);
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * iwl_good_plcp_health - checks for plcp error.
|
||||||
|
+ *
|
||||||
|
+ * When the plcp error is exceeding the thresholds, reset the radio
|
||||||
|
+ * to improve the throughput.
|
||||||
|
+ */
|
||||||
|
+bool iwl_good_plcp_health(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt)
|
||||||
|
+{
|
||||||
|
+ bool rc = true;
|
||||||
|
+ int combined_plcp_delta;
|
||||||
|
+ unsigned int plcp_msec;
|
||||||
|
+ unsigned long plcp_received_jiffies;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* check for plcp_err and trigger radio reset if it exceeds
|
||||||
|
@@ -711,7 +719,8 @@ void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
* combined_plcp_delta,
|
||||||
|
* plcp_msec
|
||||||
|
*/
|
||||||
|
- IWL_DEBUG_RADIO(priv, PLCP_MSG,
|
||||||
|
+ IWL_DEBUG_RADIO(priv, "plcp_err exceeded %u, "
|
||||||
|
+ "%u, %u, %u, %u, %d, %u mSecs\n",
|
||||||
|
priv->cfg->plcp_delta_threshold,
|
||||||
|
le32_to_cpu(pkt->u.stats.rx.ofdm.plcp_err),
|
||||||
|
le32_to_cpu(priv->statistics.rx.ofdm.plcp_err),
|
||||||
|
@@ -719,15 +728,42 @@ void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
le32_to_cpu(
|
||||||
|
priv->statistics.rx.ofdm_ht.plcp_err),
|
||||||
|
combined_plcp_delta, plcp_msec);
|
||||||
|
- /*
|
||||||
|
- * Reset the RF radio due to the high plcp
|
||||||
|
- * error rate
|
||||||
|
- */
|
||||||
|
- iwl_force_reset(priv, IWL_RF_RESET);
|
||||||
|
+ rc = false;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ return rc;
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL(iwl_good_plcp_health);
|
||||||
|
+
|
||||||
|
+static void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt)
|
||||||
|
+{
|
||||||
|
+ if (test_bit(STATUS_EXIT_PENDING, &priv->status))
|
||||||
|
+ return;
|
||||||
|
+ if (iwl_is_associated(priv)) {
|
||||||
|
+ if (priv->cfg->ops->lib->check_ack_health) {
|
||||||
|
+ if (!priv->cfg->ops->lib->check_ack_health(
|
||||||
|
+ priv, pkt)) {
|
||||||
|
+ /*
|
||||||
|
+ * low ack count detected
|
||||||
|
+ * restart Firmware
|
||||||
|
+ */
|
||||||
|
+ IWL_ERR(priv, "low ack count detected, "
|
||||||
|
+ "restart firmware\n");
|
||||||
|
+ iwl_force_reset(priv, IWL_FW_RESET);
|
||||||
|
+ }
|
||||||
|
+ } else if (priv->cfg->ops->lib->check_plcp_health) {
|
||||||
|
+ if (!priv->cfg->ops->lib->check_plcp_health(
|
||||||
|
+ priv, pkt)) {
|
||||||
|
+ /*
|
||||||
|
+ * high plcp error detected
|
||||||
|
+ * reset Radio
|
||||||
|
+ */
|
||||||
|
+ iwl_force_reset(priv, IWL_RF_RESET);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-EXPORT_SYMBOL(iwl_recover_from_statistics);
|
||||||
|
|
||||||
|
void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_mem_buffer *rxb)
|
||||||
|
@@ -749,8 +785,7 @@ void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
#ifdef CONFIG_IWLWIFI_DEBUG
|
||||||
|
iwl_accumulative_statistics(priv, (__le32 *)&pkt->u.stats);
|
||||||
|
#endif
|
||||||
|
- if (priv->cfg->ops->lib->recover_from_statistics)
|
||||||
|
- priv->cfg->ops->lib->recover_from_statistics(priv, pkt);
|
||||||
|
+ iwl_recover_from_statistics(priv, pkt);
|
||||||
|
|
||||||
|
memcpy(&priv->statistics, &pkt->u.stats, sizeof(priv->statistics));
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
150
iwlwifi-iwl_good_ack_health-only-apply-to-AGN-device.patch
Normal file
150
iwlwifi-iwl_good_ack_health-only-apply-to-AGN-device.patch
Normal file
|
|
@ -0,0 +1,150 @@
|
||||||
|
From 8ac33071b4c991e302be67fd0dae1d9cc4b502e3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Date: Tue, 16 Mar 2010 10:46:31 -0700
|
||||||
|
Subject: [PATCH] iwlwifi: iwl_good_ack_health() only apply to AGN device
|
||||||
|
|
||||||
|
iwl_good_ack_health() check for expected and actual ack count which only
|
||||||
|
apply to aggregation mode. Move the function to iwlagn module.
|
||||||
|
|
||||||
|
Reported-by: Chantry Xavier <chantry.xavier@gmail.com>
|
||||||
|
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-agn.c | 54 +++++++++++++++++++++++++++++++
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-rx.c | 55 --------------------------------
|
||||||
|
2 files changed, 54 insertions(+), 55 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
index dc751cb..b5d410b 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
@@ -1448,6 +1448,60 @@ static void iwl_irq_tasklet(struct iwl_priv *priv)
|
||||||
|
iwl_enable_interrupts(priv);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* the threshold ratio of actual_ack_cnt to expected_ack_cnt in percent */
|
||||||
|
+#define ACK_CNT_RATIO (50)
|
||||||
|
+#define BA_TIMEOUT_CNT (5)
|
||||||
|
+#define BA_TIMEOUT_MAX (16)
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * iwl_good_ack_health - checks for ACK count ratios, BA timeout retries.
|
||||||
|
+ *
|
||||||
|
+ * When the ACK count ratio is 0 and aggregated BA timeout retries exceeding
|
||||||
|
+ * the BA_TIMEOUT_MAX, reload firmware and bring system back to normal
|
||||||
|
+ * operation state.
|
||||||
|
+ */
|
||||||
|
+bool iwl_good_ack_health(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt)
|
||||||
|
+{
|
||||||
|
+ bool rc = true;
|
||||||
|
+ int actual_ack_cnt_delta, expected_ack_cnt_delta;
|
||||||
|
+ int ba_timeout_delta;
|
||||||
|
+
|
||||||
|
+ actual_ack_cnt_delta =
|
||||||
|
+ le32_to_cpu(pkt->u.stats.tx.actual_ack_cnt) -
|
||||||
|
+ le32_to_cpu(priv->statistics.tx.actual_ack_cnt);
|
||||||
|
+ expected_ack_cnt_delta =
|
||||||
|
+ le32_to_cpu(pkt->u.stats.tx.expected_ack_cnt) -
|
||||||
|
+ le32_to_cpu(priv->statistics.tx.expected_ack_cnt);
|
||||||
|
+ ba_timeout_delta =
|
||||||
|
+ le32_to_cpu(pkt->u.stats.tx.agg.ba_timeout) -
|
||||||
|
+ le32_to_cpu(priv->statistics.tx.agg.ba_timeout);
|
||||||
|
+ if ((priv->_agn.agg_tids_count > 0) &&
|
||||||
|
+ (expected_ack_cnt_delta > 0) &&
|
||||||
|
+ (((actual_ack_cnt_delta * 100) / expected_ack_cnt_delta)
|
||||||
|
+ < ACK_CNT_RATIO) &&
|
||||||
|
+ (ba_timeout_delta > BA_TIMEOUT_CNT)) {
|
||||||
|
+ IWL_DEBUG_RADIO(priv, "actual_ack_cnt delta = %d,"
|
||||||
|
+ " expected_ack_cnt = %d\n",
|
||||||
|
+ actual_ack_cnt_delta, expected_ack_cnt_delta);
|
||||||
|
+
|
||||||
|
+#ifdef CONFIG_IWLWIFI_DEBUG
|
||||||
|
+ IWL_DEBUG_RADIO(priv, "rx_detected_cnt delta = %d\n",
|
||||||
|
+ priv->delta_statistics.tx.rx_detected_cnt);
|
||||||
|
+ IWL_DEBUG_RADIO(priv,
|
||||||
|
+ "ack_or_ba_timeout_collision delta = %d\n",
|
||||||
|
+ priv->delta_statistics.tx.
|
||||||
|
+ ack_or_ba_timeout_collision);
|
||||||
|
+#endif
|
||||||
|
+ IWL_DEBUG_RADIO(priv, "agg ba_timeout delta = %d\n",
|
||||||
|
+ ba_timeout_delta);
|
||||||
|
+ if (!actual_ack_cnt_delta &&
|
||||||
|
+ (ba_timeout_delta >= BA_TIMEOUT_MAX))
|
||||||
|
+ rc = false;
|
||||||
|
+ }
|
||||||
|
+ return rc;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
index 506ccf7..def5042 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
@@ -617,61 +617,6 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
|
||||||
|
|
||||||
|
#define REG_RECALIB_PERIOD (60)
|
||||||
|
|
||||||
|
-/* the threshold ratio of actual_ack_cnt to expected_ack_cnt in percent */
|
||||||
|
-#define ACK_CNT_RATIO (50)
|
||||||
|
-#define BA_TIMEOUT_CNT (5)
|
||||||
|
-#define BA_TIMEOUT_MAX (16)
|
||||||
|
-
|
||||||
|
-/**
|
||||||
|
- * iwl_good_ack_health - checks for ACK count ratios, BA timeout retries.
|
||||||
|
- *
|
||||||
|
- * When the ACK count ratio is 0 and aggregated BA timeout retries exceeding
|
||||||
|
- * the BA_TIMEOUT_MAX, reload firmware and bring system back to normal
|
||||||
|
- * operation state.
|
||||||
|
- */
|
||||||
|
-bool iwl_good_ack_health(struct iwl_priv *priv,
|
||||||
|
- struct iwl_rx_packet *pkt)
|
||||||
|
-{
|
||||||
|
- bool rc = true;
|
||||||
|
- int actual_ack_cnt_delta, expected_ack_cnt_delta;
|
||||||
|
- int ba_timeout_delta;
|
||||||
|
-
|
||||||
|
- actual_ack_cnt_delta =
|
||||||
|
- le32_to_cpu(pkt->u.stats.tx.actual_ack_cnt) -
|
||||||
|
- le32_to_cpu(priv->statistics.tx.actual_ack_cnt);
|
||||||
|
- expected_ack_cnt_delta =
|
||||||
|
- le32_to_cpu(pkt->u.stats.tx.expected_ack_cnt) -
|
||||||
|
- le32_to_cpu(priv->statistics.tx.expected_ack_cnt);
|
||||||
|
- ba_timeout_delta =
|
||||||
|
- le32_to_cpu(pkt->u.stats.tx.agg.ba_timeout) -
|
||||||
|
- le32_to_cpu(priv->statistics.tx.agg.ba_timeout);
|
||||||
|
- if ((priv->_agn.agg_tids_count > 0) &&
|
||||||
|
- (expected_ack_cnt_delta > 0) &&
|
||||||
|
- (((actual_ack_cnt_delta * 100) / expected_ack_cnt_delta)
|
||||||
|
- < ACK_CNT_RATIO) &&
|
||||||
|
- (ba_timeout_delta > BA_TIMEOUT_CNT)) {
|
||||||
|
- IWL_DEBUG_RADIO(priv, "actual_ack_cnt delta = %d,"
|
||||||
|
- " expected_ack_cnt = %d\n",
|
||||||
|
- actual_ack_cnt_delta, expected_ack_cnt_delta);
|
||||||
|
-
|
||||||
|
-#ifdef CONFIG_IWLWIFI_DEBUG
|
||||||
|
- IWL_DEBUG_RADIO(priv, "rx_detected_cnt delta = %d\n",
|
||||||
|
- priv->delta_statistics.tx.rx_detected_cnt);
|
||||||
|
- IWL_DEBUG_RADIO(priv,
|
||||||
|
- "ack_or_ba_timeout_collision delta = %d\n",
|
||||||
|
- priv->delta_statistics.tx.
|
||||||
|
- ack_or_ba_timeout_collision);
|
||||||
|
-#endif
|
||||||
|
- IWL_DEBUG_RADIO(priv, "agg ba_timeout delta = %d\n",
|
||||||
|
- ba_timeout_delta);
|
||||||
|
- if (!actual_ack_cnt_delta &&
|
||||||
|
- (ba_timeout_delta >= BA_TIMEOUT_MAX))
|
||||||
|
- rc = false;
|
||||||
|
- }
|
||||||
|
- return rc;
|
||||||
|
-}
|
||||||
|
-EXPORT_SYMBOL(iwl_good_ack_health);
|
||||||
|
-
|
||||||
|
/**
|
||||||
|
* iwl_good_plcp_health - checks for plcp error.
|
||||||
|
*
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
361
iwlwifi-manage-QoS-by-mac-stack.patch
Normal file
361
iwlwifi-manage-QoS-by-mac-stack.patch
Normal file
|
|
@ -0,0 +1,361 @@
|
||||||
|
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
To: kernel@lists.fedoraproject.org, "John W. Linville" <linville@redhat.com>
|
||||||
|
Subject: [PATCH 2/4 2.6.34.y] iwlwifi: manage QoS by mac stack
|
||||||
|
Date: Fri, 11 Jun 2010 17:05:12 +0200
|
||||||
|
|
||||||
|
commit e61146e36b40fd9d346118c40285913236c329f3 upstream.
|
||||||
|
|
||||||
|
We activate/deactivate QoS and setup default queue parameters in iwlwifi
|
||||||
|
driver. Mac stack do the same, so we do not need repeat that work here.
|
||||||
|
Stack also will tell when disable QoS, this will fix driver when working
|
||||||
|
with older APs, that do not have QoS implemented.
|
||||||
|
|
||||||
|
Patch make "force = true" in iwl_active_qos() assuming we always want
|
||||||
|
to do with QoS what mac stack wish.
|
||||||
|
|
||||||
|
Patch also remove unused qos_cap bits, do not initialize qos_active = 0,
|
||||||
|
as we have it initialized to zero by kzalloc.
|
||||||
|
|
||||||
|
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-agn.c | 15 ---
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-core.c | 142 +++------------------------
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-core.h | 3 +-
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-dev.h | 21 ----
|
||||||
|
drivers/net/wireless/iwlwifi/iwl3945-base.c | 7 --
|
||||||
|
5 files changed, 17 insertions(+), 171 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
index bdff565..21c3ef0 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
|
||||||
|
@@ -2515,7 +2515,6 @@ void iwl_post_associate(struct iwl_priv *priv)
|
||||||
|
{
|
||||||
|
struct ieee80211_conf *conf = NULL;
|
||||||
|
int ret = 0;
|
||||||
|
- unsigned long flags;
|
||||||
|
|
||||||
|
if (priv->iw_mode == NL80211_IFTYPE_AP) {
|
||||||
|
IWL_ERR(priv, "%s Should not be called in AP mode\n", __func__);
|
||||||
|
@@ -2600,10 +2599,6 @@ void iwl_post_associate(struct iwl_priv *priv)
|
||||||
|
if (priv->iw_mode == NL80211_IFTYPE_ADHOC)
|
||||||
|
priv->assoc_station_added = 1;
|
||||||
|
|
||||||
|
- spin_lock_irqsave(&priv->lock, flags);
|
||||||
|
- iwl_activate_qos(priv, 0);
|
||||||
|
- spin_unlock_irqrestore(&priv->lock, flags);
|
||||||
|
-
|
||||||
|
/* the chain noise calibration will enabled PM upon completion
|
||||||
|
* If chain noise has already been run, then we need to enable
|
||||||
|
* power management here */
|
||||||
|
@@ -2780,7 +2775,6 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||||
|
void iwl_config_ap(struct iwl_priv *priv)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
- unsigned long flags;
|
||||||
|
|
||||||
|
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
|
||||||
|
return;
|
||||||
|
@@ -2832,10 +2826,6 @@ void iwl_config_ap(struct iwl_priv *priv)
|
||||||
|
/* restore RXON assoc */
|
||||||
|
priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK;
|
||||||
|
iwlcore_commit_rxon(priv);
|
||||||
|
- iwl_reset_qos(priv);
|
||||||
|
- spin_lock_irqsave(&priv->lock, flags);
|
||||||
|
- iwl_activate_qos(priv, 1);
|
||||||
|
- spin_unlock_irqrestore(&priv->lock, flags);
|
||||||
|
iwl_add_bcast_station(priv);
|
||||||
|
}
|
||||||
|
iwl_send_beacon_cmd(priv);
|
||||||
|
@@ -3396,11 +3386,6 @@ static int iwl_init_drv(struct iwl_priv *priv)
|
||||||
|
|
||||||
|
iwl_init_scan_params(priv);
|
||||||
|
|
||||||
|
- iwl_reset_qos(priv);
|
||||||
|
-
|
||||||
|
- priv->qos_data.qos_active = 0;
|
||||||
|
- priv->qos_data.qos_cap.val = 0;
|
||||||
|
-
|
||||||
|
priv->rates_mask = IWL_RATES_MASK;
|
||||||
|
/* Set the tx_power_user_lmt to the lowest power level
|
||||||
|
* this value will get overwritten by channel max power avg
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
|
||||||
|
index 049b652..2dd8aaa 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
|
||||||
|
@@ -325,17 +325,13 @@ EXPORT_SYMBOL(iwl_hw_nic_init);
|
||||||
|
/*
|
||||||
|
* QoS support
|
||||||
|
*/
|
||||||
|
-void iwl_activate_qos(struct iwl_priv *priv, u8 force)
|
||||||
|
+static void iwl_update_qos(struct iwl_priv *priv)
|
||||||
|
{
|
||||||
|
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
|
||||||
|
return;
|
||||||
|
|
||||||
|
priv->qos_data.def_qos_parm.qos_flags = 0;
|
||||||
|
|
||||||
|
- if (priv->qos_data.qos_cap.q_AP.queue_request &&
|
||||||
|
- !priv->qos_data.qos_cap.q_AP.txop_request)
|
||||||
|
- priv->qos_data.def_qos_parm.qos_flags |=
|
||||||
|
- QOS_PARAM_FLG_TXOP_TYPE_MSK;
|
||||||
|
if (priv->qos_data.qos_active)
|
||||||
|
priv->qos_data.def_qos_parm.qos_flags |=
|
||||||
|
QOS_PARAM_FLG_UPDATE_EDCA_MSK;
|
||||||
|
@@ -343,118 +339,14 @@ void iwl_activate_qos(struct iwl_priv *priv, u8 force)
|
||||||
|
if (priv->current_ht_config.is_ht)
|
||||||
|
priv->qos_data.def_qos_parm.qos_flags |= QOS_PARAM_FLG_TGN_MSK;
|
||||||
|
|
||||||
|
- if (force || iwl_is_associated(priv)) {
|
||||||
|
- IWL_DEBUG_QOS(priv, "send QoS cmd with Qos active=%d FLAGS=0x%X\n",
|
||||||
|
- priv->qos_data.qos_active,
|
||||||
|
- priv->qos_data.def_qos_parm.qos_flags);
|
||||||
|
+ IWL_DEBUG_QOS(priv, "send QoS cmd with Qos active=%d FLAGS=0x%X\n",
|
||||||
|
+ priv->qos_data.qos_active,
|
||||||
|
+ priv->qos_data.def_qos_parm.qos_flags);
|
||||||
|
|
||||||
|
- iwl_send_cmd_pdu_async(priv, REPLY_QOS_PARAM,
|
||||||
|
- sizeof(struct iwl_qosparam_cmd),
|
||||||
|
- &priv->qos_data.def_qos_parm, NULL);
|
||||||
|
- }
|
||||||
|
+ iwl_send_cmd_pdu_async(priv, REPLY_QOS_PARAM,
|
||||||
|
+ sizeof(struct iwl_qosparam_cmd),
|
||||||
|
+ &priv->qos_data.def_qos_parm, NULL);
|
||||||
|
}
|
||||||
|
-EXPORT_SYMBOL(iwl_activate_qos);
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * AC CWmin CW max AIFSN TXOP Limit TXOP Limit
|
||||||
|
- * (802.11b) (802.11a/g)
|
||||||
|
- * AC_BK 15 1023 7 0 0
|
||||||
|
- * AC_BE 15 1023 3 0 0
|
||||||
|
- * AC_VI 7 15 2 6.016ms 3.008ms
|
||||||
|
- * AC_VO 3 7 2 3.264ms 1.504ms
|
||||||
|
- */
|
||||||
|
-void iwl_reset_qos(struct iwl_priv *priv)
|
||||||
|
-{
|
||||||
|
- u16 cw_min = 15;
|
||||||
|
- u16 cw_max = 1023;
|
||||||
|
- u8 aifs = 2;
|
||||||
|
- bool is_legacy = false;
|
||||||
|
- unsigned long flags;
|
||||||
|
- int i;
|
||||||
|
-
|
||||||
|
- spin_lock_irqsave(&priv->lock, flags);
|
||||||
|
- /* QoS always active in AP and ADHOC mode
|
||||||
|
- * In STA mode wait for association
|
||||||
|
- */
|
||||||
|
- if (priv->iw_mode == NL80211_IFTYPE_ADHOC ||
|
||||||
|
- priv->iw_mode == NL80211_IFTYPE_AP)
|
||||||
|
- priv->qos_data.qos_active = 1;
|
||||||
|
- else
|
||||||
|
- priv->qos_data.qos_active = 0;
|
||||||
|
-
|
||||||
|
- /* check for legacy mode */
|
||||||
|
- if ((priv->iw_mode == NL80211_IFTYPE_ADHOC &&
|
||||||
|
- (priv->active_rate & IWL_OFDM_RATES_MASK) == 0) ||
|
||||||
|
- (priv->iw_mode == NL80211_IFTYPE_STATION &&
|
||||||
|
- (priv->staging_rxon.flags & RXON_FLG_SHORT_SLOT_MSK) == 0)) {
|
||||||
|
- cw_min = 31;
|
||||||
|
- is_legacy = 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (priv->qos_data.qos_active)
|
||||||
|
- aifs = 3;
|
||||||
|
-
|
||||||
|
- /* AC_BE */
|
||||||
|
- priv->qos_data.def_qos_parm.ac[0].cw_min = cpu_to_le16(cw_min);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[0].cw_max = cpu_to_le16(cw_max);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[0].aifsn = aifs;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[0].edca_txop = 0;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[0].reserved1 = 0;
|
||||||
|
-
|
||||||
|
- if (priv->qos_data.qos_active) {
|
||||||
|
- /* AC_BK */
|
||||||
|
- i = 1;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].cw_min = cpu_to_le16(cw_min);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].cw_max = cpu_to_le16(cw_max);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].aifsn = 7;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].edca_txop = 0;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].reserved1 = 0;
|
||||||
|
-
|
||||||
|
- /* AC_VI */
|
||||||
|
- i = 2;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].cw_min =
|
||||||
|
- cpu_to_le16((cw_min + 1) / 2 - 1);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].cw_max =
|
||||||
|
- cpu_to_le16(cw_min);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].aifsn = 2;
|
||||||
|
- if (is_legacy)
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].edca_txop =
|
||||||
|
- cpu_to_le16(6016);
|
||||||
|
- else
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].edca_txop =
|
||||||
|
- cpu_to_le16(3008);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].reserved1 = 0;
|
||||||
|
-
|
||||||
|
- /* AC_VO */
|
||||||
|
- i = 3;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].cw_min =
|
||||||
|
- cpu_to_le16((cw_min + 1) / 4 - 1);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].cw_max =
|
||||||
|
- cpu_to_le16((cw_min + 1) / 2 - 1);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].aifsn = 2;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].reserved1 = 0;
|
||||||
|
- if (is_legacy)
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].edca_txop =
|
||||||
|
- cpu_to_le16(3264);
|
||||||
|
- else
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].edca_txop =
|
||||||
|
- cpu_to_le16(1504);
|
||||||
|
- } else {
|
||||||
|
- for (i = 1; i < 4; i++) {
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].cw_min =
|
||||||
|
- cpu_to_le16(cw_min);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].cw_max =
|
||||||
|
- cpu_to_le16(cw_max);
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].aifsn = aifs;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].edca_txop = 0;
|
||||||
|
- priv->qos_data.def_qos_parm.ac[i].reserved1 = 0;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- IWL_DEBUG_QOS(priv, "set QoS to default \n");
|
||||||
|
-
|
||||||
|
- spin_unlock_irqrestore(&priv->lock, flags);
|
||||||
|
-}
|
||||||
|
-EXPORT_SYMBOL(iwl_reset_qos);
|
||||||
|
|
||||||
|
#define MAX_BIT_RATE_40_MHZ 150 /* Mbps */
|
||||||
|
#define MAX_BIT_RATE_20_MHZ 72 /* Mbps */
|
||||||
|
@@ -2306,12 +2198,6 @@ int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||||
|
cpu_to_le16((params->txop * 32));
|
||||||
|
|
||||||
|
priv->qos_data.def_qos_parm.ac[q].reserved1 = 0;
|
||||||
|
- priv->qos_data.qos_active = 1;
|
||||||
|
-
|
||||||
|
- if (priv->iw_mode == NL80211_IFTYPE_AP)
|
||||||
|
- iwl_activate_qos(priv, 1);
|
||||||
|
- else if (priv->assoc_id && iwl_is_associated(priv))
|
||||||
|
- iwl_activate_qos(priv, 0);
|
||||||
|
|
||||||
|
spin_unlock_irqrestore(&priv->lock, flags);
|
||||||
|
|
||||||
|
@@ -2587,11 +2473,8 @@ int iwl_mac_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||||
|
IWL_DEBUG_MAC80211(priv, "leave\n");
|
||||||
|
spin_unlock_irqrestore(&priv->lock, flags);
|
||||||
|
|
||||||
|
- iwl_reset_qos(priv);
|
||||||
|
-
|
||||||
|
priv->cfg->ops->lib->post_associate(priv);
|
||||||
|
|
||||||
|
-
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(iwl_mac_beacon_update);
|
||||||
|
@@ -2833,6 +2716,15 @@ int iwl_mac_config(struct ieee80211_hw *hw, u32 changed)
|
||||||
|
iwl_set_tx_power(priv, conf->power_level, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (changed & IEEE80211_CONF_CHANGE_QOS) {
|
||||||
|
+ bool qos_active = !!(conf->flags & IEEE80211_CONF_QOS);
|
||||||
|
+
|
||||||
|
+ spin_lock_irqsave(&priv->lock, flags);
|
||||||
|
+ priv->qos_data.qos_active = qos_active;
|
||||||
|
+ iwl_update_qos(priv);
|
||||||
|
+ spin_unlock_irqrestore(&priv->lock, flags);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!iwl_is_ready(priv)) {
|
||||||
|
IWL_DEBUG_MAC80211(priv, "leave - not ready\n");
|
||||||
|
goto out;
|
||||||
|
@@ -2867,8 +2759,6 @@ void iwl_mac_reset_tsf(struct ieee80211_hw *hw)
|
||||||
|
memset(&priv->current_ht_config, 0, sizeof(struct iwl_ht_config));
|
||||||
|
spin_unlock_irqrestore(&priv->lock, flags);
|
||||||
|
|
||||||
|
- iwl_reset_qos(priv);
|
||||||
|
-
|
||||||
|
spin_lock_irqsave(&priv->lock, flags);
|
||||||
|
priv->assoc_id = 0;
|
||||||
|
priv->assoc_capability = 0;
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
index 36940a9..70af968 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
@@ -304,8 +304,7 @@ struct iwl_cfg {
|
||||||
|
struct ieee80211_hw *iwl_alloc_all(struct iwl_cfg *cfg,
|
||||||
|
struct ieee80211_ops *hw_ops);
|
||||||
|
void iwl_hw_detect(struct iwl_priv *priv);
|
||||||
|
-void iwl_reset_qos(struct iwl_priv *priv);
|
||||||
|
-void iwl_activate_qos(struct iwl_priv *priv, u8 force);
|
||||||
|
+void iwl_activate_qos(struct iwl_priv *priv);
|
||||||
|
int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||||
|
const struct ieee80211_tx_queue_params *params);
|
||||||
|
void iwl_set_rxon_hwcrypto(struct iwl_priv *priv, int hw_decrypt);
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||||
|
index ef1720a..cc12e89 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
|
||||||
|
@@ -519,30 +519,9 @@ struct iwl_ht_config {
|
||||||
|
u8 non_GF_STA_present;
|
||||||
|
};
|
||||||
|
|
||||||
|
-union iwl_qos_capabity {
|
||||||
|
- struct {
|
||||||
|
- u8 edca_count:4; /* bit 0-3 */
|
||||||
|
- u8 q_ack:1; /* bit 4 */
|
||||||
|
- u8 queue_request:1; /* bit 5 */
|
||||||
|
- u8 txop_request:1; /* bit 6 */
|
||||||
|
- u8 reserved:1; /* bit 7 */
|
||||||
|
- } q_AP;
|
||||||
|
- struct {
|
||||||
|
- u8 acvo_APSD:1; /* bit 0 */
|
||||||
|
- u8 acvi_APSD:1; /* bit 1 */
|
||||||
|
- u8 ac_bk_APSD:1; /* bit 2 */
|
||||||
|
- u8 ac_be_APSD:1; /* bit 3 */
|
||||||
|
- u8 q_ack:1; /* bit 4 */
|
||||||
|
- u8 max_len:2; /* bit 5-6 */
|
||||||
|
- u8 more_data_ack:1; /* bit 7 */
|
||||||
|
- } q_STA;
|
||||||
|
- u8 val;
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
/* QoS structures */
|
||||||
|
struct iwl_qos_info {
|
||||||
|
int qos_active;
|
||||||
|
- union iwl_qos_capabity qos_cap;
|
||||||
|
struct iwl_qosparam_cmd def_qos_parm;
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||||
|
index b74a56c..c054527 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
|
||||||
|
@@ -3152,8 +3152,6 @@ void iwl3945_post_associate(struct iwl_priv *priv)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- iwl_activate_qos(priv, 0);
|
||||||
|
-
|
||||||
|
/* we have just associated, don't start scan too early */
|
||||||
|
priv->next_scan_jiffies = jiffies + IWL_DELAY_NEXT_SCAN;
|
||||||
|
}
|
||||||
|
@@ -3861,11 +3859,6 @@ static int iwl3945_init_drv(struct iwl_priv *priv)
|
||||||
|
priv->iw_mode = NL80211_IFTYPE_STATION;
|
||||||
|
priv->missed_beacon_threshold = IWL_MISSED_BEACON_THRESHOLD_DEF;
|
||||||
|
|
||||||
|
- iwl_reset_qos(priv);
|
||||||
|
-
|
||||||
|
- priv->qos_data.qos_active = 0;
|
||||||
|
- priv->qos_data.qos_cap.val = 0;
|
||||||
|
-
|
||||||
|
priv->rates_mask = IWL_RATES_MASK;
|
||||||
|
priv->tx_power_user_lmt = IWL_DEFAULT_TX_POWER;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.6.2.5
|
||||||
|
|
||||||
|
_______________________________________________
|
||||||
|
kernel mailing list
|
||||||
|
kernel@lists.fedoraproject.org
|
||||||
|
https://admin.fedoraproject.org/mailman/listinfo/kernel
|
||||||
|
|
||||||
208
iwlwifi-move-plcp-check-to-separated-function.patch
Normal file
208
iwlwifi-move-plcp-check-to-separated-function.patch
Normal file
|
|
@ -0,0 +1,208 @@
|
||||||
|
From b3786de4e1033b00d522a5c457a3ea9f8376d0d0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Date: Thu, 4 Mar 2010 13:38:58 -0800
|
||||||
|
Subject: [PATCH] iwlwifi: move plcp check to separated function
|
||||||
|
|
||||||
|
Move the plcp error checking into stand alone function and pointed by ops
|
||||||
|
to accommodate devices not needing this recovery.
|
||||||
|
|
||||||
|
Signed-off-by: Trieu 'Andrew' Nguyen <trieux.t.nguyen@intel.com>
|
||||||
|
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||||
|
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-1000.c | 1 +
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-4965.c | 1 +
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-5000.c | 2 +
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-6000.c | 2 +
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-core.h | 5 +++
|
||||||
|
drivers/net/wireless/iwlwifi/iwl-rx.c | 58 +++++++++++++++++++------------
|
||||||
|
6 files changed, 47 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
|
||||||
|
index 89dc401..2597574 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
|
||||||
|
@@ -212,6 +212,7 @@ static struct iwl_lib_ops iwl1000_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
+ .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl1000_ops = {
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
|
||||||
|
index aa49a6e..6dd4328 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
|
||||||
|
@@ -2217,6 +2217,7 @@ static struct iwl_lib_ops iwl4965_lib = {
|
||||||
|
.set_ct_kill = iwl4965_set_ct_threshold,
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
+ .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl4965_ops = {
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
|
||||||
|
index d05fad4..0c2469c 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
|
||||||
|
@@ -1501,6 +1501,7 @@ struct iwl_lib_ops iwl5000_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
+ .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct iwl_lib_ops iwl5150_lib = {
|
||||||
|
@@ -1556,6 +1557,7 @@ static struct iwl_lib_ops iwl5150_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
+ .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl5000_ops = {
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
|
||||||
|
index 0c965cd..189a8ce 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
|
||||||
|
@@ -278,6 +278,7 @@ static struct iwl_lib_ops iwl6000_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
+ .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl6000_ops = {
|
||||||
|
@@ -344,6 +345,7 @@ static struct iwl_lib_ops iwl6050_lib = {
|
||||||
|
},
|
||||||
|
.add_bcast_station = iwl_add_bcast_station,
|
||||||
|
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||||
|
+ .recover_from_statistics = iwl_recover_from_statistics,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct iwl_ops iwl6050_ops = {
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
index 9076576..d67048e 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
|
||||||
|
@@ -193,6 +193,9 @@ struct iwl_lib_ops {
|
||||||
|
void (*add_bcast_station)(struct iwl_priv *priv);
|
||||||
|
/* recover from tx queue stall */
|
||||||
|
void (*recover_from_tx_stall)(unsigned long data);
|
||||||
|
+ /* recover from errors showed in statistics */
|
||||||
|
+ void (*recover_from_statistics)(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct iwl_led_ops {
|
||||||
|
@@ -435,6 +438,8 @@ void iwl_rx_missed_beacon_notif(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_mem_buffer *rxb);
|
||||||
|
void iwl_rx_spectrum_measure_notif(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_mem_buffer *rxb);
|
||||||
|
+void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt);
|
||||||
|
void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
struct iwl_rx_mem_buffer *rxb);
|
||||||
|
void iwl_reply_statistics(struct iwl_priv *priv,
|
||||||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
index e5eb339..fabc52f 100644
|
||||||
|
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
|
||||||
|
@@ -618,28 +618,18 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
|
||||||
|
#define REG_RECALIB_PERIOD (60)
|
||||||
|
|
||||||
|
#define PLCP_MSG "plcp_err exceeded %u, %u, %u, %u, %u, %d, %u mSecs\n"
|
||||||
|
-void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
- struct iwl_rx_mem_buffer *rxb)
|
||||||
|
+/*
|
||||||
|
+ * This function checks for plcp error.
|
||||||
|
+ * - When the plcp error is exceeding the thresholds, it will reset the radio
|
||||||
|
+ * to improve the throughput.
|
||||||
|
+ */
|
||||||
|
+void iwl_recover_from_statistics(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_packet *pkt)
|
||||||
|
{
|
||||||
|
- int change;
|
||||||
|
- struct iwl_rx_packet *pkt = rxb_addr(rxb);
|
||||||
|
int combined_plcp_delta;
|
||||||
|
unsigned int plcp_msec;
|
||||||
|
unsigned long plcp_received_jiffies;
|
||||||
|
|
||||||
|
- IWL_DEBUG_RX(priv, "Statistics notification received (%d vs %d).\n",
|
||||||
|
- (int)sizeof(priv->statistics),
|
||||||
|
- le32_to_cpu(pkt->len_n_flags) & FH_RSCSR_FRAME_SIZE_MSK);
|
||||||
|
-
|
||||||
|
- change = ((priv->statistics.general.temperature !=
|
||||||
|
- pkt->u.stats.general.temperature) ||
|
||||||
|
- ((priv->statistics.flag &
|
||||||
|
- STATISTICS_REPLY_FLG_HT40_MODE_MSK) !=
|
||||||
|
- (pkt->u.stats.flag & STATISTICS_REPLY_FLG_HT40_MODE_MSK)));
|
||||||
|
-
|
||||||
|
-#ifdef CONFIG_IWLWIFI_DEBUG
|
||||||
|
- iwl_accumulative_statistics(priv, (__le32 *)&pkt->u.stats);
|
||||||
|
-#endif
|
||||||
|
/*
|
||||||
|
* check for plcp_err and trigger radio reset if it exceeds
|
||||||
|
* the plcp error threshold plcp_delta.
|
||||||
|
@@ -660,11 +650,11 @@ void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
le32_to_cpu(priv->statistics.rx.ofdm_ht.plcp_err));
|
||||||
|
|
||||||
|
if ((combined_plcp_delta > 0) &&
|
||||||
|
- ((combined_plcp_delta * 100) / plcp_msec) >
|
||||||
|
+ ((combined_plcp_delta * 100) / plcp_msec) >
|
||||||
|
priv->cfg->plcp_delta_threshold) {
|
||||||
|
/*
|
||||||
|
- * if plcp_err exceed the threshold, the following
|
||||||
|
- * data is printed in csv format:
|
||||||
|
+ * if plcp_err exceed the threshold,
|
||||||
|
+ * the following data is printed in csv format:
|
||||||
|
* Text: plcp_err exceeded %d,
|
||||||
|
* Received ofdm.plcp_err,
|
||||||
|
* Current ofdm.plcp_err,
|
||||||
|
@@ -679,9 +669,8 @@ void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
le32_to_cpu(priv->statistics.rx.ofdm.plcp_err),
|
||||||
|
le32_to_cpu(pkt->u.stats.rx.ofdm_ht.plcp_err),
|
||||||
|
le32_to_cpu(
|
||||||
|
- priv->statistics.rx.ofdm_ht.plcp_err),
|
||||||
|
+ priv->statistics.rx.ofdm_ht.plcp_err),
|
||||||
|
combined_plcp_delta, plcp_msec);
|
||||||
|
-
|
||||||
|
/*
|
||||||
|
* Reset the RF radio due to the high plcp
|
||||||
|
* error rate
|
||||||
|
@@ -689,6 +678,31 @@ void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
iwl_force_reset(priv, IWL_RF_RESET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL(iwl_recover_from_statistics);
|
||||||
|
+
|
||||||
|
+void iwl_rx_statistics(struct iwl_priv *priv,
|
||||||
|
+ struct iwl_rx_mem_buffer *rxb)
|
||||||
|
+{
|
||||||
|
+ int change;
|
||||||
|
+ struct iwl_rx_packet *pkt = rxb_addr(rxb);
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ IWL_DEBUG_RX(priv, "Statistics notification received (%d vs %d).\n",
|
||||||
|
+ (int)sizeof(priv->statistics),
|
||||||
|
+ le32_to_cpu(pkt->len_n_flags) & FH_RSCSR_FRAME_SIZE_MSK);
|
||||||
|
+
|
||||||
|
+ change = ((priv->statistics.general.temperature !=
|
||||||
|
+ pkt->u.stats.general.temperature) ||
|
||||||
|
+ ((priv->statistics.flag &
|
||||||
|
+ STATISTICS_REPLY_FLG_HT40_MODE_MSK) !=
|
||||||
|
+ (pkt->u.stats.flag & STATISTICS_REPLY_FLG_HT40_MODE_MSK)));
|
||||||
|
+
|
||||||
|
+#ifdef CONFIG_IWLWIFI_DEBUG
|
||||||
|
+ iwl_accumulative_statistics(priv, (__le32 *)&pkt->u.stats);
|
||||||
|
+#endif
|
||||||
|
+ if (priv->cfg->ops->lib->recover_from_statistics)
|
||||||
|
+ priv->cfg->ops->lib->recover_from_statistics(priv, pkt);
|
||||||
|
|
||||||
|
memcpy(&priv->statistics, &pkt->u.stats, sizeof(priv->statistics));
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.0.1
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue