--- linux-2.6-3.0.0.orig/debian/rules.real +++ linux-2.6-3.0.0/debian/rules.real @@ -0,0 +1,542 @@ +# +# This Makefile executes the unpack/build/binary targets for a single +# subarch, which is passed in the subarch variable. Empty subarch +# variable means that we are building for an arch without the subarch. +# Additionally, variables version, abiname and ltver are +# expected to be available (need to be exported from the parent process). +# +SHELL := bash -e +DEB_HOST_ARCH := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_HOST_ARCH) +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_HOST_GNU_TYPE) +DEB_HOST_MULTIARCH:= $(shell dpkg-architecture -a'$(ARCH)' -qDEB_HOST_MULTIARCH) +DEB_BUILD_ARCH := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_BUILD_ARCH) +UPLOADER := $(shell dpkg-parsechangelog | sed -ne 's,^Maintainer: .[^<]*<\([^>]*\)>,\1,p') + +export PYTHONPATH = $(CURDIR)/debian/lib/python +export DH_OPTIONS +export DEB_HOST_ARCH DEB_HOST_GNU_TYPE DEB_BUILD_ARCH + +include debian/rules.defs + +stamp = [ -d $(dir $@) ] || mkdir $(dir $@); touch $@ + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + DEBIAN_KERNEL_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif +ifdef DEBIAN_KERNEL_JOBS + JOBS_ARG = -j$(DEBIAN_KERNEL_JOBS) +endif + +setup_env := env -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION +setup_env += DISTRIBUTION_OFFICIAL_BUILD=1 DISTRIBUTION_UPLOADER=$(UPLOADER) DISTRIBUTION_VERSION="$(SOURCEVERSION)" + +MAKE_CLEAN = $(setup_env) $(MAKE) +MAKE_SELF := $(MAKE) -f debian/rules.real $(MAKEOVERRIDES) +MAKEOVERRIDES = +MAKE_PERF_VARS = prefix=/usr perfexecdir=share/perf_$(VERSION)-core NO_PERL=1 V=2 HAVE_CPLUS_DEMANGLE=1 ARCH=$(DEB_BUILD_ARCH) EXTRA_WARNINGS=-Wno-error + +# +# Targets +# +binary-arch-arch: install-headers_$(ARCH) +binary-arch-arch: install-libc-dev_$(ARCH) +ifneq ($(filter alpha amd64 armel armhf hppa i386 powerpc ppc64 s390 s390x sh4 sparc sparc64,$(ARCH)),) + binary-arch-arch: install-tools_$(ARCH) +endif +binary-arch-featureset: install-headers_$(ARCH)_$(FEATURESET) +binary-arch-flavour: install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE) +ifeq ($(DEBUG),True) + binary-arch-flavour: install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +endif +ifeq ($(MODULES),True) + binary-arch-flavour: install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +endif + +binary-indep: install-doc +binary-indep: install-manual +binary-indep: install-patch +binary-indep: install-source +binary-indep: install-support + +build: $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE) + +setup-flavour: $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + +source-arch: $(STAMPS_DIR)/source +source-featureset: $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET) + +$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(KCONFIG) + python debian/bin/kconfig.py '$@' $(KCONFIG) $(KCONFIG_OPTIONS) + +$(BUILD_DIR)/linux-source-$(UPSTREAMVERSION).tar.bz2: SOURCE_DIR=$(BUILD_DIR)/source +$(BUILD_DIR)/linux-source-$(UPSTREAMVERSION).tar.bz2: DIR = $(BUILD_DIR)/linux-source-$(UPSTREAMVERSION) +$(BUILD_DIR)/linux-source-$(UPSTREAMVERSION).tar.bz2: $(STAMPS_DIR)/source + rm -rf '$@' '$(DIR)' + cp -al '$(SOURCE_DIR)' '$(DIR)' + chmod -R u+rw,go=rX '$(DIR)' + cd '$(BUILD_DIR)'; tar -cjf 'linux-source-$(UPSTREAMVERSION).tar.bz2' 'linux-source-$(UPSTREAMVERSION)' + rm -rf '$(DIR)' + +define patch_cmd +cd '$(DIR)'; python '$(CURDIR)/debian/bin/patch.apply' --overwrite-home='$(CURDIR)/debian/patches' +endef + +$(STAMPS_DIR)/source: SOURCE_FILES = $(filter-out debian, $(wildcard * .[^.]*)) +$(STAMPS_DIR)/source: DIR = $(BUILD_DIR)/source +$(STAMPS_DIR)/source: + rm -rf '$(DIR)' + mkdir -p '$(DIR)' + cp -al $(SOURCE_FILES) '$(DIR)' + $(patch_cmd) + # Suppress trailing '+' in utsrelease + touch '$(DIR)/.scmversion' + @$(stamp) + +$(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET): SOURCE_DIR=$(BUILD_DIR)/source +$(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET): DIR=$(BUILD_DIR)/source_$(ARCH)_$(FEATURESET) +$(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET): $(STAMPS_DIR)/source + rm -rf '$(DIR)' + cp -al '$(SOURCE_DIR)' '$(DIR)' + $(patch_cmd) -a $(ARCH) -f $(FEATURESET) + @$(stamp) + +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): CONFIG=$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR) +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source_$(ARCH)_$(FEATURESET) +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET) $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR) + rm -rf '$(DIR)' + mkdir '$(DIR)' + cp '$(CONFIG)' '$(DIR)/.config' + echo '$(ABINAME)$(LOCALVERSION_IMAGE)' > '$(DIR)/localversion' + echo 'override ARCH = $(KERNEL_ARCH)' >> '$(DIR)/.kernelvariables' + echo 'CCACHE = ccache' >> '$(DIR)/.kernelvariables' + echo 'CC = $$(if $$(DEBIAN_KERNEL_USE_CCACHE),$$(CCACHE)) $$(CROSS_COMPILE)$(COMPILER)' >> '$(DIR)/.kernelvariables' +# TODO: Should we set CROSS_COMPILE always? +ifdef OVERRIDE_HOST_TYPE + echo 'override CROSS_COMPILE = $(OVERRIDE_HOST_TYPE)-' >> '$(DIR)/.kernelvariables' +else + echo 'ifneq ($$(DEB_BUILD_ARCH),$$(DEB_HOST_ARCH))' >> '$(DIR)/.kernelvariables' + echo 'override CROSS_COMPILE = $$(DEB_HOST_GNU_TYPE)-' >> '$(DIR)/.kernelvariables' + echo 'endif' >> '$(DIR)/.kernelvariables' +endif +ifdef CFLAGS_KERNEL + echo 'CFLAGS += $(CFLAGS_KERNEL)' >> '$(DIR)/.kernelvariables' +endif + +$(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' V=1 listnewconfig + +yes "" | $(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' oldconfig >/dev/null + +$(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' $(JOBS_ARG) prepare + @$(stamp) + +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-s390-tape: BUILD_TARGET = image +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-s390x-tape: BUILD_TARGET = image + +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain \ +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-s390-tape \ +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-s390x-tape \ +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-xen: + +$(MAKE_CLEAN) -C '$(DIR)' $(JOBS_ARG) $(BUILD_TARGET) + python debian/bin/buildcheck.py $(DIR) $(ARCH) $(FEATURESET) $(FLAVOUR) + @$(stamp) + +$(STAMPS_DIR)/build-tools_$(ARCH): SOURCE_DIR=$(BUILD_DIR)/source +$(STAMPS_DIR)/build-tools_$(ARCH): DIR=$(BUILD_DIR)/build-tools_$(ARCH) +$(STAMPS_DIR)/build-tools_$(ARCH): $(STAMPS_DIR)/source + rm -rf $(DIR) + cp -al $(SOURCE_DIR) $(DIR) + +$(MAKE_CLEAN) -C '$(DIR)/tools/perf' $(JOBS_ARG) $(MAKE_PERF_VARS) all man + @$(stamp) + +$(STAMPS_DIR)/build-doc: SOURCE_DIR=$(BUILD_DIR)/source +$(STAMPS_DIR)/build-doc: DIR=$(BUILD_DIR)/build-doc +$(STAMPS_DIR)/build-doc: $(STAMPS_DIR)/source + rm -rf $(DIR) + mkdir $(DIR) + +$(MAKE_CLEAN) -C $(SOURCE_DIR) O='$(CURDIR)/$(DIR)' $(JOBS_ARG) xmldocs + +$(MAKE_CLEAN) -C $(SOURCE_DIR) O='$(CURDIR)/$(DIR)' $(JOBS_ARG) htmldocs mandocs + @$(stamp) + +install-base: + dh_installchangelogs + dh_installdocs + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol -- $(GENCONTROL_ARGS) + dh_md5sums + dh_builddeb -- $(BUILDDEB_ARGS) + +install-dummy: + dh_testdir + dh_testroot + dh_prep + +$(MAKE_SELF) install-base + +install-doc: PACKAGE_NAME = linux-doc-$(VERSION) +install-doc: DIR = $(BUILD_DIR)/build-doc +install-doc: SOURCE_DIR = $(BUILD_DIR)/source +install-doc: PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-doc: OUT_DIR = $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME) +install-doc: DH_OPTIONS = -p$(PACKAGE_NAME) +install-doc: $(STAMPS_DIR)/build-doc + dh_prep + mkdir -p $(OUT_DIR) + cp -a $(addprefix $(SOURCE_DIR)/, CREDITS MAINTAINERS README REPORTING-BUGS Documentation) $(OUT_DIR) + rm -rf $(OUT_DIR)/Documentation/DocBook + cd $(DIR)/Documentation/DocBook; \ + find * -name '*.html' -print \ + | \ + cpio -pd --preserve-modification-time '$(CURDIR)/$(OUT_DIR)/html' + gzip -9qfr $(OUT_DIR)/Documentation + +$(MAKE_SELF) install-base + +install-manual: PACKAGE_NAME = linux-manual-$(VERSION) +install-manual: DIR=$(BUILD_DIR)/build-doc +install-manual: DH_OPTIONS = -p$(PACKAGE_NAME) +install-manual: $(STAMPS_DIR)/build-doc + dh_prep + find $(DIR)/Documentation/DocBook/man/ -name '*.9' | xargs dh_installman + +$(MAKE_SELF) install-base + +install-headers_$(ARCH): PACKAGE_NAMES = linux-headers-$(UPSTREAMVERSION)$(ABINAME)-all linux-headers-$(UPSTREAMVERSION)$(ABINAME)-all-$(ARCH) +install-headers_$(ARCH): DH_OPTIONS = $(foreach p, $(PACKAGE_NAMES), -p$(p)) +install-headers_$(ARCH): + dh_testdir + dh_testroot + +$(MAKE_SELF) install-base GENCONTROL_ARGS='-Vkernel:Arch=$(ARCH)' + +install-headers_$(ARCH)_$(FEATURESET): PACKAGE_NAME = linux-headers-$(UPSTREAMVERSION)$(ABINAME)-common$(LOCALVERSION_HEADERS) +install-headers_$(ARCH)_$(FEATURESET): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION) +install-headers_$(ARCH)_$(FEATURESET): DH_OPTIONS = -p$(PACKAGE_NAME) +install-headers_$(ARCH)_$(FEATURESET): BASE_DIR = /usr/src/$(PACKAGE_NAME) +install-headers_$(ARCH)_$(FEATURESET): SOURCE_DIR = $(BUILD_DIR)/source_$(ARCH)_$(FEATURESET) +install-headers_$(ARCH)_$(FEATURESET): DIR = debian/$(PACKAGE_NAME)/$(BASE_DIR) +install-headers_$(ARCH)_$(FEATURESET): $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET) + dh_testdir + dh_testroot + dh_prep + + cd $(SOURCE_DIR); \ + ( \ + echo Makefile; \ + find arch/$(KERNEL_ARCH) -maxdepth 1 -name 'Makefile*' -print; \ + find arch/$(KERNEL_ARCH) -name 'module.lds' -print; \ + find $$(find arch/$(KERNEL_ARCH) \( -name include -o -name scripts \) -type d -print) -print; \ + find include -name 'asm*' -prune -o -print; \ + find include/asm-generic -print; \ + ) \ + | \ + cpio -pd --preserve-modification-time '$(CURDIR)/$(DIR)' + + dh_link \ + /usr/lib/$(PACKAGE_NAME_KBUILD)/Kbuild $(BASE_DIR)/Kbuild \ + /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts + + +$(MAKE_SELF) install-base + +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(UPSTREAMVERSION)$(ABINAME)$(LOCALVERSION) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-headers-$(REAL_VERSION) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME_COMMON = linux-headers-$(UPSTREAMVERSION)$(ABINAME)-common$(LOCALVERSION_HEADERS) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR = /usr/src/$(PACKAGE_NAME) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR_COMMON = /usr/src/$(PACKAGE_NAME_COMMON) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REF_DIR = $(BUILD_DIR)/source_$(ARCH)_$(FEATURESET) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(PACKAGE_DIR)/$(BASE_DIR) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE) + dh_testdir + dh_testroot + dh_prep + + mkdir -p $(DIR)/arch/$(KERNEL_ARCH)/kernel + cp -a $(SOURCE_DIR)/{.config,.kernel*,Module.symvers,include} $(DIR) + cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/kernel/asm-offsets.s $(DIR)/arch/$(KERNEL_ARCH)/kernel + +ifneq ($(filter powerpc ppc64,$(ARCH)),) + if [ -f $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o ]; then \ + mkdir $(DIR)/arch/$(KERNEL_ARCH)/lib; \ + cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o $(DIR)/arch/$(KERNEL_ARCH)/lib; \ + fi +endif + + @echo 'VERSION = 2' > $(DIR)/Makefile + @echo 'PATCHLEVEL = 6' >> $(DIR)/Makefile + + @echo 'MAKEARGS := -C $(BASE_DIR_COMMON) O=$(BASE_DIR)' >> $(DIR)/Makefile + @echo 'MAKEFLAGS += --no-print-directory' >> $(DIR)/Makefile + + @echo '.PHONY: all $$(MAKECMDGOALS)' >> $(DIR)/Makefile + @echo 'cmd := $$(filter-out all Makefile,$$(MAKECMDGOALS))' >> $(DIR)/Makefile + @echo 'all:' >> $(DIR)/Makefile + @echo ' @$$(MAKE) $$(MAKEARGS) $$(cmd)' >> $(DIR)/Makefile + @echo 'Makefile:;' >> $(DIR)/Makefile + @echo '$$(cmd) %/: all' >> $(DIR)/Makefile + @echo ' @:' >> $(DIR)/Makefile + + dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts + + mkdir -p $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION) + ln -s /usr/src/$(PACKAGE_NAME) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/build + ln -s /usr/src/$(PACKAGE_NAME_COMMON) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/source + + install -d $(PACKAGE_DIR)/DEBIAN + sed -e 's/=V/$(REAL_VERSION)/g' \ + debian/templates/temp.headers.plain/postinst \ + > $(PACKAGE_DIR)/DEBIAN/postinst + chmod 755 $(PACKAGE_DIR)/DEBIAN/postinst + + +$(MAKE_SELF) install-base + +install-libc-dev_$(ARCH): PACKAGE_NAME = linux-libc-dev +install-libc-dev_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME) +install-libc-dev_$(ARCH): SOURCE_DIR = $(BUILD_DIR)/source +install-libc-dev_$(ARCH): DIR = $(BUILD_DIR)/build-libc-dev +install-libc-dev_$(ARCH): OUT_DIR = debian/$(PACKAGE_NAME)/usr +install-libc-dev_$(ARCH): + dh_testdir + dh_testroot + dh_prep + rm -rf '$(DIR)' + mkdir $(DIR) + +$(MAKE_CLEAN) -C $(SOURCE_DIR) O='$(CURDIR)/$(DIR)' headers_check ARCH=$(KERNEL_ARCH) + +$(MAKE_CLEAN) -C $(SOURCE_DIR) O='$(CURDIR)/$(DIR)' headers_install ARCH=$(KERNEL_ARCH) INSTALL_HDR_PATH='$(CURDIR)'/$(OUT_DIR) + + rm -rf $(OUT_DIR)/include/drm $(OUT_DIR)/include/scsi + find $(OUT_DIR)/include \( -name .install -o -name ..install.cmd \) -execdir rm {} + + + # Move include/asm to arch-specific directory + mkdir -p $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH) + mv $(OUT_DIR)/include/asm $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/ + + +$(MAKE_SELF) install-base + +install-support: PACKAGE_NAME = linux-support-$(UPSTREAMVERSION)$(ABINAME) +install-support: DH_OPTIONS = -p$(PACKAGE_NAME) +install-support: PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-support: PACKAGE_ROOT = /usr/share/$(PACKAGE_NAME) +install-support: + dh_testdir + dh_testroot + dh_prep + dh_installdirs $(PACKAGE_ROOT)/lib/python/debian_linux $(PACKAGE_ROOT)/modules + cp debian/config.defines.dump $(PACKAGE_DIR)$(PACKAGE_ROOT) + cp debian/lib/python/debian_linux/*.py $(PACKAGE_DIR)$(PACKAGE_ROOT)/lib/python/debian_linux + cp debian/modules/* $(PACKAGE_DIR)$(PACKAGE_ROOT)/modules + chmod a+x $(PACKAGE_DIR)$(PACKAGE_ROOT)/modules/gencontrol.py + dh_python2 + dh_link $(PACKAGE_ROOT) /usr/src/$(PACKAGE_NAME) + +$(MAKE_SELF) install-base + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): REAL_VERSION = $(UPSTREAMVERSION)$(ABINAME)$(LOCALVERSION) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): PACKAGE_NAME = linux-image-$(REAL_VERSION) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): INSTALL_DIR = $(PACKAGE_DIR)/boot +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): DH_OPTIONS = -p$(PACKAGE_NAME) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE) + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain: + dh_testdir + dh_testroot + dh_prep + dh_installdirs 'boot' + +$(MAKE_SELF) \ + install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_image \ + DIR='$(DIR)' PACKAGE_DIR='$(PACKAGE_DIR)' INSTALL_DIR='$(INSTALL_DIR)' REAL_VERSION='$(REAL_VERSION)' +ifeq ($(MODULES),True) + +$(MAKE_CLEAN) -C $(DIR) modules_install INSTALL_MOD_PATH='$(CURDIR)'/$(PACKAGE_DIR) INSTALL_MOD_STRIP=1 +ifeq ($(DEBUG),True) + find $(PACKAGE_DIR) -name '*.ko' | sed 's|$(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/||' | while read module ; do \ + objcopy --add-gnu-debuglink=$(DIR)/$$module $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/$$module || exit; \ + done +endif + cp $(DIR)/.config $(PACKAGE_DIR)/boot/config-$(REAL_VERSION) + cp $(DIR)/System.map $(PACKAGE_DIR)/boot/System.map-$(REAL_VERSION) + find $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/ -mindepth 1 -maxdepth 1 \! -name kernel \! -name modules.order -exec rm {} \+ + rm $(PACKAGE_DIR)/lib/firmware -rf +endif + +$(MAKE_SELF) \ + install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_templates \ + PACKAGE_NAME='$(PACKAGE_NAME)' PACKAGE_DIR='$(PACKAGE_DIR)' REAL_VERSION='$(REAL_VERSION)' + +$(MAKE_SELF) \ + install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_bug \ + PACKAGE_DIR='$(PACKAGE_DIR)' PACKAGE_NAME='$(PACKAGE_NAME)' REAL_VERSION='$(REAL_VERSION)' + +$(MAKE_SELF) install-base + +install-image_armel_$(FEATURESET)_$(FLAVOUR)_plain_image \ +install-image_armhf_$(FEATURESET)_$(FLAVOUR)_plain_image \ +install-image_sparc_$(FEATURESET)_$(FLAVOUR)_plain_image \ +install-image_sparc64_$(FEATURESET)_$(FLAVOUR)_plain_image \ +install-image_sh4_$(FEATURESET)_$(FLAVOUR)_plain_image: + install -m644 '$(DIR)/arch/$(KERNEL_ARCH)/boot/zImage' $(INSTALL_DIR)/vmlinuz-$(REAL_VERSION) + +install-image_amd64_$(FEATURESET)_$(FLAVOUR)_plain_image \ +install-image_i386_$(FEATURESET)_$(FLAVOUR)_plain_image: + install -m644 '$(DIR)/arch/$(KERNEL_ARCH)/boot/bzImage' $(INSTALL_DIR)/vmlinuz-$(REAL_VERSION) + +install-image_alpha_$(FEATURESET)_$(FLAVOUR)_plain_image: + install -m644 '$(DIR)/arch/$(KERNEL_ARCH)/boot/vmlinux.gz' $(INSTALL_DIR)/vmlinuz-$(REAL_VERSION) + +install-image_ia64_$(FEATURESET)_$(FLAVOUR)_plain_image \ +install-image_m68k_$(FEATURESET)_$(FLAVOUR)_plain_image: + install -m644 '$(DIR)/vmlinux.gz' $(INSTALL_DIR)/vmlinuz-$(REAL_VERSION) + +install-image_hppa_$(FEATURESET)_$(FLAVOUR)_plain_image \ +install-image_mips_$(FEATURESET)_$(FLAVOUR)_plain_image \ +install-image_mipsel_$(FEATURESET)_$(FLAVOUR)_plain_image: + install -m644 '$(DIR)/vmlinux' $(INSTALL_DIR)/vmlinux-$(REAL_VERSION) + +ifneq ($(filter powerpc ppc64,$(ARCH)),) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_image: WRAPPER_INSTALL_DIR = '$(CURDIR)'/$(PACKAGE_DIR)/usr/lib/linux-image-$(REAL_VERSION) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_image: + install -m644 '$(DIR)/vmlinux' $(INSTALL_DIR)/vmlinux-$(REAL_VERSION) + +$(MAKE_CLEAN) -C '$(DIR)' bootwrapper_install \ + WRAPPER_OBJDIR='$(WRAPPER_INSTALL_DIR)' \ + WRAPPER_DTSDIR='$(WRAPPER_INSTALL_DIR)'/dts \ + WRAPPER_BINDIR='$(WRAPPER_INSTALL_DIR)' +endif + +ifneq ($(filter s390 s390x,$(ARCH)),) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_image: + install -m644 '$(DIR)/arch/s390/boot/image' $(INSTALL_DIR)/vmlinuz-$(REAL_VERSION) +endif + +ifneq ($(INITRAMFS),False) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_templates: ARG_INITRD = YES +endif + +ARG_KIMAGE = vmlinuz +install-image_hppa_$(FEATURESET)_$(FLAVOUR)_plain_templates \ +install-image_mips_$(FEATURESET)_$(FLAVOUR)_plain_templates \ +install-image_mipsel_$(FEATURESET)_$(FLAVOUR)_plain_templates \ +install-image_powerpc_$(FEATURESET)_$(FLAVOUR)_plain_templates \ +install-image_ppc64_$(FEATURESET)_$(FLAVOUR)_plain_templates: ARG_KIMAGE = vmlinux + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_templates: + for i in $(wildcard debian/templates/temp.image.plain/*); do \ + sed \ + -e 's@=B@$(KERNEL_ARCH)@g' \ + -e 's/=I/$(ARG_INITRD)/g' \ + -e 's/=K/$(ARG_KIMAGE)/g' \ + -e 's/=V/$(REAL_VERSION)/g' \ + $$i > debian/$(PACKAGE_NAME).$$(basename $$i) || exit; \ + done + mkdir -p debian/$(PACKAGE_NAME).po + for i in $(wildcard debian/po/*.po); do \ + sed \ + -e 's/=V/$(REAL_VERSION)/g' \ + $$i > debian/$(PACKAGE_NAME).po/$$(basename $$i) || exit; \ + done + mkdir -p debian/$(PACKAGE_NAME)/DEBIAN + po2debconf --podir debian/$(PACKAGE_NAME).po \ + -o debian/$(PACKAGE_NAME)/DEBIAN/templates \ + debian/$(PACKAGE_NAME).templates + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_bug: + dh_installdirs usr/share/bug/$(PACKAGE_NAME) + dh_install debian/templates/image.plain.bug/* usr/share/bug/$(PACKAGE_NAME) + chmod 755 $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/script + echo "RELEASE='$(REAL_VERSION)'" > $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/info + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-s390-tape: + dh_testdir + dh_testroot + dh_prep + dh_installdirs 'boot' + install -m644 '$(DIR)/arch/s390/boot/image' $(PACKAGE_DIR)/boot/vmlinuz-$(REAL_VERSION) + +$(MAKE_SELF) install-base + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-xen: MODULES_PACKAGE_NAME = linux-modules-$(REAL_VERSION) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-xen: MODULES_PACKAGE_DIR = debian/$(MODULES_PACKAGE_NAME) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-xen: DH_OPTIONS = +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain-xen: + dh_testdir + dh_testroot + dh_prep + dh_installdirs -p$(PACKAGE_NAME) boot 'var/lib/$(PACKAGE_NAME)' + dh_installdirs -p$(MODULES_PACKAGE_NAME) boot + cp '$(DIR)'/arch/$(KERNEL_ARCH)/boot/vmlinuz $(INSTALL_DIR)/vmlinuz-$(REAL_VERSION) + +$(MAKE_CLEAN) -C $(DIR) modules_install INSTALL_MOD_PATH='$(CURDIR)'/$(MODULES_PACKAGE_DIR) + cp $(DIR)/.config $(MODULES_PACKAGE_DIR)/boot/config-$(REAL_VERSION) + cp $(DIR)/System.map $(MODULES_PACKAGE_DIR)/boot/System.map-$(REAL_VERSION) + rm $(MODULES_PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/{build,source} + dh_installmodules -p$(MODULES_PACKAGE_NAME) + for i in $(XEN_VERSIONS); do echo $$i; done > $(PACKAGE_DIR)/var/lib/$(PACKAGE_NAME)/xen-versions + install -d $(PACKAGE_DIR)/DEBIAN + echo /var/lib/$(PACKAGE_NAME)/xen-versions >> $(PACKAGE_DIR)/DEBIAN/conffiles + +$(MAKE_SELF) install-base DH_OPTIONS='-p$(PACKAGE_NAME) -p$(MODULES_PACKAGE_NAME)' + +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(UPSTREAMVERSION)$(ABINAME)$(LOCALVERSION) +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-image-$(REAL_VERSION)-dbg +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DEBUG_DIR = $(PACKAGE_DIR)/usr/lib/debug +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME) +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE) + dh_testdir + dh_testroot + dh_prep + dh_installdirs usr/lib/debug usr/lib/debug/boot usr/share/lintian/overrides/ + sed -e 's/=V/$(REAL_VERSION)/g' \ + debian/templates/image-dbg.lintian-override.in \ + > $(PACKAGE_DIR)/usr/share/lintian/overrides/$(PACKAGE_NAME) + install -m644 $(DIR)/vmlinux $(DEBUG_DIR)/boot/vmlinux-$(REAL_VERSION) +ifeq ($(MODULES),True) + +$(MAKE_CLEAN) -C $(DIR) modules_install INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR) + find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/ -mindepth 1 -maxdepth 1 \! -name kernel -exec rm {} \+ + rm $(DEBUG_DIR)/lib/firmware -rf +endif + +$(MAKE_SELF) install-base BUILDDEB_ARGS="-Zbzip2" + +install-tools_$(ARCH): PACKAGE_NAME = linux-tools-$(VERSION) +install-tools_$(ARCH): PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-tools_$(ARCH): DIR = $(BUILD_DIR)/build-tools_$(ARCH) +install-tools_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME) +install-tools_$(ARCH): $(STAMPS_DIR)/build-tools_$(ARCH) + dh_testdir + dh_testroot + dh_prep + dh_installdirs usr/bin + +$(MAKE_CLEAN) -C '$(DIR)/tools/perf' $(MAKE_PERF_VARS) \ + DESTDIR='$(CURDIR)/$(PACKAGE_DIR)' install install-man + # Rename command and manual pages to include version + mv $(PACKAGE_DIR)/usr/bin/perf $(PACKAGE_DIR)/usr/bin/perf_$(VERSION) + for manpage in $(PACKAGE_DIR)/usr/share/man/*/*; do \ + mv "$$manpage" "$$(echo "$$manpage" | sed 's,/perf,&_$(VERSION),')" || exit; \ + done + # Fix up cross-references + sed -i '/^\.SH "SEE ALSO"/,/^\.SH/ { s/perf-/perf_$(VERSION)-/g }' \ + $(PACKAGE_DIR)/usr/share/man/*/* + dh_perl /usr/share/perf_$(VERSION)-core/scripts/perl/Perf-Trace-Util/lib/ + dh_python2 /usr/share/perf_$(VERSION)-core/scripts/python/Perf-Trace-Util/lib/ + +$(MAKE_SELF) install-base + +install-patch: PACKAGE = linux-patch-debian-$(VERSION) +install-patch: pbase := /usr/src/kernel-patches/all/$(UPSTREAMVERSION) +install-patch: pfull := debian/$(PACKAGE)$(pbase) +install-patch: DH_OPTIONS = -p$(PACKAGE) +install-patch: + dh_testdir + dh_testroot + dh_prep + dh_installdirs '$(pbase)/apply' '$(pbase)/debian' '$(pbase)/unpatch' + dh_install -X.svn debian/patches/* '$(pbase)/debian' + install debian/bin/patch.apply '$(pfull)/apply/debian' + install debian/templates/patch.unpatch '$(pfull)/unpatch/debian' + find '$(pfull)/debian' ! -path '*/series/*' -type f -execdir bzip2 '{}' ';' -execdir chmod 644 '{}.bz2' ';' + +$(MAKE_SELF) install-base + +install-source: DH_OPTIONS = -plinux-source-$(VERSION) +install-source: $(BUILD_DIR)/linux-source-$(UPSTREAMVERSION).tar.bz2 + dh_testdir + dh_testroot + dh_install '$<' /usr/src + +$(MAKE_SELF) install-base + +# vim: filetype=make --- linux-2.6-3.0.0.orig/debian/README.Debian +++ linux-2.6-3.0.0/debian/README.Debian @@ -0,0 +1,58 @@ +linux-2.6 for DEBIAN +------------------------ + +Patches +------- +Debian applies small changes to the kernel source. These are split up into +separated patches addressing individual problems. Each of the patch files +contains a description and mentions the author. The patches can be found +at http://svn.debian.org/wsvn/kernel/dists/trunk/linux-2.6/debian/patches/. + +Config Files +------------ +The .config files used to build the various linux-image files are dynamically +generated during the linux-2.6 package build. See the source package for +details. Each linux-image-* package provides the complete .config file that +was used to generate it. This file is installed in /boot. + +Scope of security support +------------------------- +Security support is provided not only for the binary builds, but also +for the full source package, allowing for locally customized kernels. +However, kernel options that are not enabled in official Debian builds are +given a lower priority for security support. Options marked as BROKEN +or EXPERIMENTAL are of very low priority, and should not be enabled in +customized builds for a security-sensitive environment. + +Building custom kernel binary packages +-------------------------------------- +We recommend using the 'make deb-pkg' target provided by the upstream +kernel source. + +Alternately, you may use the 'make-kpkg' command provided by the +'kernel-package' package. + +Rebuilding official binary packages +----------------------------------- +You can build specific kernel binary packages using the targets in +debian/rules.gen, which have names of the form: + binary-arch___ + +Example: + fakeroot make -f debian/rules.gen binary-arch_i386_none_686 + +Rebuilding Adaptec AIC7xxx/79xx firmware +---------------------------------------- +You can rebuild the firmware for the Adaptec AIC7xxx/79xx SCSI Adapters. To +do so you need to set AIC7XXX_BUILD_FIRMWARE/AIC79XX_BUILD_FIRMWARE config +options. Note that this requires to have the development packages for +berkelydb (libdb4.2-dev) installed. + +Non-free bits removed +--------------------- +See the patches under debian/patches/debian/dfsg. + +Further information +------------------- +Debian Linux Kernel Handbook: http://kernel-handbook.alioth.debian.org +Debian Wiki: http://wiki.debian.org/DebianKernel --- linux-2.6-3.0.0.orig/debian/changelog +++ linux-2.6-3.0.0/debian/changelog @@ -0,0 +1,9913 @@ +linux-2.6 (3.0.0-2) unstable; urgency=high + + [ Aurelien Jarno ] + * Add configuration files for s390x architecture. + + [ Ben Hutchings ] + * linux-libc-dev: Install include/asm under arch-specific directory + (thanks to Aurelien for correcting the directory); mark package as + multi-arch-coinstallable (Multi-Arch: same) + * [powerpc] Use libata-based drivers for most PATA controllers + (Closes: #636854): + - Various drivers replaced as for x86 in 2.6.32-10 + - pata_macio replaces ide_pmac + * Add stable 3.0.2, including: + - net: Cap number of elements for sendmmsg + - net: Fix security_socket_sendmsg() bypass problem + - [x86] xen: allow enable use of VGA console on dom0 + - net: Compute protocol sequence numbers and fragment IDs using MD5 + - cifs: cope with negative dentries in cifs_get_root + - ALSA: snd-usb: avoid dividing by zero on invalid input + - ipv6: make fragment identifications less predictable (CVE-2011-2699) + - sch_sfq: fix sfq_enqueue() (Closes: #631945) + - gre: fix improper error handling + - ecryptfs: Add mount option to check uid of device being mounted + = expect uid + - ecryptfs: Return error when lower file pointer is NULL + - ext{3,4}: Properly count journal credits for long symlinks + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.2 + * [x86] Enable RTS_PSTOR as module + + [ maximilian attems ] + * Add stable 3.0.1, including: + - gro: Only reset frag0 when skb can be pulled (CVE-2011-2723) + - staging: comedi: fix infoleak to userspace (CVE-2011-2909) + - rtc: limit frequency + - CIFS: Fix oops while mounting with prefixpath + - [SCSI] fix crash in scsi_dispatch_cmd() + - tracing: Fix bug when reading system filters on module removal + - tracing: Have "enable" file use refcounts like the "filter" file + - ext4: fix i_blocks/quota accounting when extent insertion fails + - ext4: free allocated and pre-allocated blocks when check_eofblocks_fl + fails + - ext3: Fix oops in ext3_try_to_allocate_with_rsv() + - nfsd4: remember to put RW access on stateid destruction + - nfsd4: fix file leak on open_downgrade + - NFS: Fix spurious readdir cookie loop messages + - proc: fix a race in do_io_accounting() + - ipc/sem.c: fix race with concurrent semtimedop() timeouts and IPC_RMID + - [armel,armhf,hppa] dm io: flush cpu cache with vmapped io + - dm snapshot: flush disk cache when merging + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.1 + + [ Jonathan Nieder ] + * perf: do not look at ./config for configuration (Closes: #632923) + (CVE-2011-2905) + + [ Uwe Kleine-König ] + * [amd64] Update rt featureset to 3.0.1-rt11 + + -- Ben Hutchings Tue, 16 Aug 2011 06:08:53 +0100 + +linux-2.6 (3.0.0-1) unstable; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.0 + + [ maximilian attems ] + * Topconfig enable modular VIDEO_SR030PC30, VIDEO_NOON010PC30, + SOC_CAMERA_IMX074, SOC_CAMERA_OV2640, SOC_CAMERA_OV6650, + SOC_CAMERA_OV9740, USB_YUREX. + * [x86] enable modular VIDEO_VIA_CAMERA. + * [x86_32] enable modular XO15_EBOOK. + * ALSA: hda - Enable auto-parser as default for Conexant codecs. + + [ Ben Hutchings ] + * linux-support, linux-tools: Use dh_python2 instead of dh_pysupport + * aufs: Update for 3.0 + * [amd64] Enable PCMCIA_AHA152X as module (Closes: #632929) + * Update debconf template translations: + - Slovak (Slavko) + * [x86] comedi: Enable the same drivers as in stable (squeeze), except + for ISA drivers on amd64 (Closes: #633516) + * Reduce required initramfs-tools version to 0.99~, to ease backporting + * [armhf/mx5] Explicitly configure this flavour to support i.MX51; it + is not currently possible to support other i.MX5x processors as well + + [ Arnaud Patard ] + * Merge ixp4xx build fix and enable ixp4xx back + + [ Aurelien Jarno ] + * [mips/octeon] Disable MEGARAID_SAS, SUSPEND, HIBERNATION, PM_RUNTIME. + Enable FUSION, FUSION_SAS, HW_RANDOM, HW_RANDOM_OCTEON, + OCTEON_MGMT_ETHERNET, CONFIG_OCTEON_ETHERNET. + + [ Bastian Blank ] + * [xen] Allow autoloading of backend drivers. + + [ Uwe Kleine-König ] + * [amd64] Add rt featureset with 3.0-rt2 patch set + + -- Ben Hutchings Sun, 24 Jul 2011 02:42:27 +0200 + +linux-2.6 (3.0.0~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ maximilian attems ] + * Topconfig enable modular USB_NET_KALMIA, I2C_DIOLAN_U2C, SMBUS, + SENSORS_SMBUS, SENSORS_SHT21, SENSORS_EMC6W201, SENSORS_SCH5627, + SENSORS_ADS1015, SENSORS_W83795, SENSORS_DS620, SENSORS_LINEAGE, + SENSORS_LTC4151, SENSORS_LTC4261, SENSORS_MAX16065, SENSORS_MAX6639, + SENSORS_MAX6642, BT_WILINK. + * [x86_32] enable modular I2C_PXA. + * [x86] enable modular SENSORS_FAM15H_POWER. + * drm/i915: Hold struct_mutex during i915_save_state/i915_restore_state. + * [thinkpad]: Add KEY_MICMUTE and enable it on Lenovo X220. + * [m68k]: resources: Add lookup_resource(). + * m68k/atari: Reserve some ST-RAM early on for device buffer use. + * ALSA: hda - Handle -1 as invalid position, too + * ALSA: hda - Judge playback stream from stream id in azx_via_get_position() + + [ Ben Hutchings ] + * [x86] Enable SCSI_ISCI as module + + -- maximilian attems Tue, 05 Jul 2011 11:05:43 +0200 + +linux-2.6 (3.0.0~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - fix wrong iput on d_inod. (closes: #631255, #631802) + + [ maximilian attems ] + * [x86] enable some comedi modules. (closes: #631199) + * [kirkwood] Enable sound support for the HP t5325 (closes: #631762) + + [ Arnaud Patard ] + * [armel] disable ixp4xx, until upstream agrees on how to fix + the build error + * [armel] Remove configuration options which don't exist anymore + * [armhf] disable net dma/async tx on mx5 as it can't work + + -- maximilian attems Tue, 28 Jun 2011 11:55:21 +0200 + +linux-2.6 (3.0.0~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - drm/i915: Fixes. (closes: #627976) + + [ maximilian attems ] + * [x86] enable modular INTEL_OAKTRAIL, ACPI_APEI_PCIEAER. + * Topconfig enable modular RADIO_WL1273, RADIO_WL128X. + + [ Ben Hutchings ] + * rt2800pci: Add device ID for RT539F device (Closes: #630960) + * atm: Enable for all architectures except m68k, s390 (Closes: #630900) + + -- maximilian attems Tue, 21 Jun 2011 15:00:23 +0200 + +linux-2.6 (3.0.0~rc3-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [i386] idle: EXPORT_SYMBOL(default_idle, pm_idle) if + CONFIG_APM_MODULE (only); fixes FTBFS + + [ maximilian attems ] + * Update configs. + * Topconfig enable BPF_JIT. (closes: #630553) + * Update debconf pt (Américo Monteiro) translations. (closes: #627631) + * Add kbuild fixes out of linux-next. + + -- maximilian attems Thu, 16 Jun 2011 15:04:33 +0200 + +linux-2.6 (3.0.0~rc2-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ maximilian attems ] + * Newer Standards-Version 3.9.2 without changes. + + [ Hector Oron ] + * [armel/iop32x] Fix FTBFS (Closes: #629342) + + [ Aurelien Jarno ] + * [mips,mipsel] Update arch/mips/kernel/i8259.c to fix FTBFS. + * [mips,mipsel] Remove explicit disable of CONFIG_DRM_NOUVEAU and + CONFIG_DRM_RADEON_KMS. + + [ Ben Hutchings ] + * perf: Cancel -Werror compiler option; fixes FTBFS with perl 5.14 + * qla4xxx: Remove our fix for #598503; it has now been fixed upstream + in a different way and the two changes resulted in FTBFS + * [ia64] nouveau: Disable ACPI support. It probably wasn't very useful + on ia64, and now depends on mxm-wmi which is definitely x86-only. + * Make gcc-4.5 the default compiler (except for alpha, hppa and m68k) + * Restore xen-linux-system-- packages + + -- Ben Hutchings Thu, 09 Jun 2011 01:10:53 +0100 + +linux-2.6 (3.0.0~rc1-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [x86] Enable BACKLIGHT_APPLE, replacing BACKLIGHT_MBP_NVIDIA + (Closes: #627492) + * cgroups: Disable memory resource controller by default. Allow it + to be enabled using kernel parameter 'cgroup_enable=memory'. + * rt2800usb: Enable support for more USB devices including + Linksys WUSB600N (Closes: #596626) (this change was accidentally + omitted from 2.6.39-1) + * fs: Enable FHANDLE + * cgroups: Enable CGROUP_MEM_RES_CTLR_SWAP but not + CGROUP_MEM_RES_CTLR_SWAP_ENABLED. Swap accounting can be enabled + using kernel parameter 'swapaccount'. + * ipv4: Enable IP_FIB_TRIE_STATS + * netfilter: Enable IP_SET, IP_SET_BITMAP_IP, IP_SET_BITMAP_IPMAC, + IP_SET_BITMAP_PORT, IP_SET_HASH_IP, IP_SET_HASH_IPPORT, + IP_SET_HASH_IPPORTIP, IP_SET_HASH_IPPORTNET, IP_SET_HASH_NET, + IP_SET_HASH_NETPORT, IP_SET_LIST_SET, NETFILTER_XT_SET as modules + * net/sched: Enable NET_SCH_QFQ as module + * can: Enable CAN_SOFTING, CAN_SOFTING_CS as modules + * mtd: Enable MTD_SWAP as module + * of, proc: Enable PROC_DEVICETREE + * dm: Enable DM_RAID, DM_FLAKEY as modules. Note these are currently + experimental. + * target: Enable TCM_FC as module + * net/wireless/ath: Enable CARL9170 as module (carl9170, replacing + ar9170usb) + * rtlwifi: Enable RTL8192SE as module (Closes: #590280) + * net/wireless: Enable MWIFIEX, MWIFIEX_SDIO as modules + * net/usb: Enable USB_VL600 as module + * tablet: Enable drivers for all possible architectures and flavours + * tablet: Enable TABLET_USB_HANWANG as module + * pps: Enable PPS_CLIENT_PARPORT as module + * ptp: Enable PTP_1588_CLOCK, PTP_1588_CLOCK_GIANFAR, + PTP_1588_CLOCK_IXP46X as modules + * [x86] watchdog: Enable SP5100_TCO, NV_TCO as modules + * media/rc: Enable IR_REDRAT3, RC_LOOPBACK as module + * [x86] media/rc: Enable IR_ITE_CIR, IR_FINTEK as modules + * gspca: Enable USB_GSPCA_KINECT as module + * [i386] radio: Enable RADIO_MIROPCM20 as module + * s3fb: Enable FB_S3_DDC + * viafb: Enable FB_VIA_X_COMPATIBILITY + * es1968: Enable SND_ES1968_RADIO + * sound: Enable SND_ISIGHT, SND_LOLA as modules + * hid: Enable HID_ACRUX, HID_EMS_FF, HID_KEYTOUCH, HID_LCPOWER, + HID_MULTITOUCH, HID_ROCCAT_ARVO, HID_ROCCAT_KONEPLUS, + HID_ROCCAT_KOVAPLUS as modules + * usb-storage: Enable USB_STORAGE_REALTEK, USB_STORAGE_ENE_UB6250 as + modules + * mmc: Enable MMC_VUB300, MMC_USHC as modules + * memstick: Enable MEMSTICK_R592 as module + * [x86] edac: Enable EDAC_I7300 as module + * [i386] staging, video: Enable FB_OLPC_DCON as module + * [x86] staging, drm: Enable DRM_PSB as module + * crypto, net: Enable CRYPTO_USER_API_HASH, CRYPTO_USER_API_SKCIPHER as + modules + * [x86] block, xen: Enable XEN_BLKDEV_BACKEND as module + + -- Ben Hutchings Wed, 01 Jun 2011 06:41:14 +0100 + +linux-2.6 (2.6.39-3) unstable; urgency=low + + [ Ben Hutchings ] + * [x86] i915: Revert "drm/i915: Enable GMBUS for post-gen2 chipsets" + (Closes: #627575) + * linux-source-: Suggest libqt4-dev (for 'make xconfig') + instead of libqt3-mt-dev (Closes: #631666) + * [armhf] Add omap flavour, thanks to Sebastian Reichel + * [armhf] rtc-twl: Switch to using threaded irq + * bridge/netfilter: provide a cow_metrics method for fake_ops + (Closes: #629932) + * Update debconf template translations: + - Danish (Joe Dalton) (Closes: #632551) + - Slovak (Slavko) (Closes: #608684) + * partitions/efi: Fix crash (oops) caused by corrupted GUID partition + table (CVE-2011-1577) + * ksm: fix NULL pointer dereference in scan_get_next_rmap_item() + (CVE-2011-2183) + * inet_diag: Fix infinite loop in inet_diag_bc_audit() (CVE-2011-2213) + * taskstats: don't allow duplicate entries in listener mode (CVE-2011-2484) + * bluetooth: Prevent buffer overflow in l2cap config request + (CVE-2011-2497) + + [ maximilian attems ] + * Add stable 2.6.39.2, including: + - block: Fix crash (oops) in blkdev_get() on failed exclusive open + (Closes: #631574) + - nl80211: fix check for valid SSID size in scan operations (CVE-2011-2517) + - drm/radeon/kms: viewport height has to be even + - drm/radeon/kms: fix for radeon on systems >4GB without hardware iommu + - fat: Fix corrupt inode flags when remove ATTR_SYS flag + - scsi: Fix oops caused by queue refcounting failure + - cifs: don't allow cifs_reconnect to exit with NULL socket pointer + - drm/radeon/kms: do bounds checking for 3D_LOAD_VBPNTR and bump array + limit + - TOMOYO: Fix oops in tomoyo_mount_acl() (CVE-2011-2518) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39.2 + + -- Ben Hutchings Mon, 04 Jul 2011 07:08:10 +0100 + +linux-2.6 (2.6.39-2) unstable; urgency=low + + [ Ben Hutchings ] + * [x86] Enable BACKLIGHT_APPLE, replacing BACKLIGHT_MBP_NVIDIA + (Closes: #627492) + * cgroups: Disable memory resource controller by default. Allow it + to be enabled using kernel parameter 'cgroup_enable=memory'. + * rt2800usb: Enable support for more USB devices including + Linksys WUSB600N (Closes: #596626) (this change was accidentally + omitted from 2.6.39-1) + * [x86] Remove Celeron from list of processors supporting PAE. Most + 'Celeron M' models do not. + * Update debconf template translations: + - Swedish (Martin Bagge) (Closes: #628932) + - French (David Prévot) (Closes: #628191) + * aufs: Update for 2.6.39 (Closes: #627837) + * Add stable 2.6.39.1, including: + - ext4: dont set PageUptodate in ext4_end_bio() + - pata_cmd64x: fix boot crash on parisc (Closes: #622997, #622745) + - ext3: Fix fs corruption when make_indexed_dir() fails + - netfilter: nf_ct_sip: validate Content-Length in TCP SIP messages + - sctp: fix race between sctp_bind_addr_free() and + sctp_bind_addr_conflict() + - sctp: fix memory leak of the ASCONF queue when free asoc + - md/bitmap: fix saving of events_cleared and other state + - cdc_acm: Fix oops when Droids MuIn LCD is connected + - cx88: Fix conversion from BKL to fine-grained locks (Closes: #619827) + - keys: Set cred->user_ns in key_replace_session_keyring (CVE-2011-2184) + - tmpfs: fix race between truncate and writepage + - nfs41: Correct offset for LAYOUTCOMMIT + - xen/mmu: fix a race window causing leave_mm BUG() + - ext4: fix possible use-after-free in ext4_remove_li_request() + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39.1 + * Bump ABI to 2 + * netfilter: Enable IP_SET, IP_SET_BITMAP_IP, IP_SET_BITMAP_IPMAC, + IP_SET_BITMAP_PORT, IP_SET_HASH_IP, IP_SET_HASH_IPPORT, + IP_SET_HASH_IPPORTIP, IP_SET_HASH_IPPORTNET, IP_SET_HASH_NET, + IP_SET_HASH_NETPORT, IP_SET_LIST_SET, NETFILTER_XT_SET as modules + (Closes: #629401) + + [ Aurelien Jarno ] + * [mipsel/loongson-2f] Disable_SCSI_LPFC to workaround GCC ICE. + + -- Ben Hutchings Tue, 07 Jun 2011 12:14:05 +0100 + +linux-2.6 (2.6.39-1) unstable; urgency=low + + [ maximilian attems ] + * [x86] Enable CRYPTO_AES_NI_INTEL for all flavours. (closes: #623631) + * topconfig: Enable SND_USB_6FIRE, SND_FIREWIRE_SPEAKERS, + MEDIA_CONTROLLER, DVB_USB_TECHNISAT_USB2, USB_GSPCA_NW80X, + USB_GSPCA_VICAM, XEN_WDT, LOOPBACK_TARGET. + * [x86] Enable modular XEN_NETDEV_BACKEND. + * topconfig enable mem cgroup RESOURCE_COUNTERS, CGROUP_MEM_RES_CTLR. + (closes: #534964) + * Cleanup configs. + + [ Ben Hutchings ] + * [!x86] Disable TPM drivers. TPMs are currently only fitted in PCs. + * rt2800usb: Enable support for more USB devices including + Linksys WUSB600N (Closes: #596626) + * mm: Select SLAB allocator again. Although SLUB is currently the + upstream default, this was set as an experiment rather than a + recommendation! SLUB generally has poorer performance than SLAB on + larger systems. + * postinst: Remove specific support for running a ramdisk creator; + warn users that specify one in /etc/kernel-img.conf + * Require initramfs-tools >= 0.99, which installs a postinst hook + + [ Arnaud Patard ] + * [armel] Disable eeti touchscreen driver due to missing irq_to_gpio on + several platforms. + + -- maximilian attems Thu, 19 May 2011 15:34:37 +0200 + +linux-2.6 (2.6.39~rc7-1~experimental.1) experimental; urgency=low + + * [x86] Enable modular ASUS_WMI and ASUS_NB_WMI. (closes: #626141) + * [x86] Enable modular DELL_WMI_AIO, HP_ACCEL, INTEL_IPS, ACPI_IPMI. + * [x86/486] Enable modular XO1_RFKILL, XO15_EBOOK. + * topconfig: Enable modular NF_CONNTRACK_TIMESTAMP, NF_CONNTRACK_SNMP, + NETFILTER_XT_TARGET_AUDIT, NETFILTER_XT_MATCH_ADDRTYPE, + NETFILTER_XT_MATCH_DEVGROUP, NET_SCH_SFB, NET_SCH_MQPRIO, NET_SCH_CHOKE, + SATA_ACARD_AHCI, PATA_ARASAN_CF, SCSI_BNX2X_FCOE. + * Add nl debconf template translation. (closes: #622967) + Thanks willem kuyn . + * topconfig Enable modular RTL8192CU. (closes: #625613) + + -- maximilian attems Tue, 10 May 2011 15:11:00 +0200 + +linux-2.6 (2.6.39~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ maximilian attems ] + * Enable SQUASHFS_{LZO,XZ}. (closes: #613658) + * [x86] Enable EASYCAP. (closes: #624505) + + [ Ben Hutchings + * xhci-hcd: Include in xhci-pci.c (fixes FTBFS on armel) + * [x86] Enable BRCMSMAC; the brcmsmac module replaces brcm80211 + (Closes: #625510) + + [ Aurelien Jarno ] + * drm/nouveau, drm/radeon: remove fix for non-powerpc/sparc/x86. + * [mips,mipsel] Disabled CONFIG_DRM_NOUVEAU and CONFIG_DRM_RADEON_KMS. + * [mips/octeon] Disabled CONFIG_HOTPLUG_CPU and CONFIG_PM. + + -- maximilian attems Sun, 08 May 2011 12:23:15 +0200 + +linux-2.6 (2.6.39~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [powerpc] kexec: Fix build failure on 32-bit SMP + * net/wireless: Adjust config for iwlegacy/iwlwifi split (Closes: #624124) + - Enable IWLWIFI_LEGACY as module + - Enable IWL4965 as module; it is no longer part of the iwlagn module + * [armhf] Actually install zImage into the linux-image package, thanks to + Sebastian Reichel + * [armhf] Build a linux-tools package + * Fix configuration for features that are no longer modular, thanks to + Sedat Dilek (Closes: #624372): + - bluetooth: Re-enable BT_L2CAP and BT_SCO as part of bluetooth module + - leds: Explicitly enable LEDS_CLASS as built-in + - mfd: Explicitly disable MFD_WM8994 + + [ Aurelien Jarno ] + * drm/nouveau, drm/radeon: fix build failure on mips. + + -- Ben Hutchings Fri, 29 Apr 2011 06:04:13 +0100 + +linux-2.6 (2.6.39~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [i386] Rename '686-bigmem' flavour to '686-pae'; remove '686' flavour. + For 686-class systems without PAE, the '486' flavour is more efficient + than the '686' flavour due to optimisation for uniprocessor systems. + * Add armhf architecture with mx5 flavour, thanks to Hector Oron and + Vagrant Cascadian (Closes: #621032) + + -- Ben Hutchings Sun, 24 Apr 2011 03:21:31 +0100 + +linux-2.6 (2.6.38-5) unstable; urgency=medium + + [ Thorsten Glaser ] + * [m68k] atari: Enable and compile in generic RTC + * [m68k] Backport the most urgent fixes from 2.6.39 + - Add helper functions to handle kernel faults, traps and + exceptions better (used by the other patches below) + - Add improved support for running under the ARAnyM emulator + (its native features interface) and emulated hardware + + block access (similar to virtio-block) + + console access (redirection to stdout) + + network access (Ethernet) (Closes: #599121) + * [m68k] Add patch from queue fixing atarifb console output on + machines with a lot of FastRAM by reserving some ST-RAM early + * [m68k] Add patch from mm mailing list to fix SLUB breakage + + [ Aurelien Jarno ] + * [mips/octeon] Disable CONFIG_HOTPLUG_CPU. + + [ Ben Hutchings ] + * rt2800pci, rt2800usb: Enable experimental support for more recent + chips (Closes: #623808) + * [x86] staging: Enable EASYCAP as module (Closes: #624505) + * Add stable 2.6.38.5, including: + - p54: Initialize extra_len in p54_tx_80211 + - nfsd4: Fix filp leak (regression introduced in 2.6.38.3) + - radeon: PLL tweaks for R7xx + - nouveau: Fix notifier memory corruption bug + - radeon: Fix bad shift in atom iio table parser + - [x86] i915: Sanitize the output registers after resume + - [x86] ideapad: Read brightness setting on brightness key notify + - ath9k_hw: Partially revert "fix dma descriptor rx error bit parsing" + - [s390] pfault: fix token handling + - ACPI/PM: Avoid infinite recurrence while registering power resources + - [hppa] slub: Disable use with DISCONTIGMEM && !NUMA + - vfs: avoid large kmalloc()s for the fdtable + - agp: Fix arbitrary kernel memory writes (CVE-2011-1745) + - agp: Fix OOM and buffer overflow (CVE-2011-1746) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.5 + * [hppa] Bump ABI to 2a + * mpt2sas: Prevent heap overflows and unchecked reads + (CVE-2011-1494, CVE-2011-1495) + * [armel] Prevent heap corruption in OABI semtimedop + * can: Add missing socket check in can/bcm release (CVE-2011-1598) + * ldm: Disable broken support for VBLK fragments (CVE-2011-1017) + + -- Ben Hutchings Sat, 07 May 2011 21:24:55 +0100 + +linux-2.6 (2.6.38-4) unstable; urgency=low + + * usb-audio: Define another USB ID for a buggy USB MIDI cable + (Closes: #617743) + * net: Enable BATMAN_ADV as module (Closes: #622361) + * Add stable 2.6.38.3, including: + - eCryptfs: Unlock page in write_begin error path + - irda: validate peer name and attribute lengths (CVE-2011-1180) + - irda: prevent heap corruption on invalid nickname + - nilfs2: fix data loss in mmap page write for hole blocks + - ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + - inotify: fix double free/corruption of stuct user + - perf: Fix task_struct reference leak + - ROSE: prevent heap corruption with bad facilities (CVE-2011-1493) + - [x86] mtrr, pat: Fix one cpu getting out of sync during resume + - Input: synaptics - fix crash in synaptics_module_init() + - ath9k: fix a chip wakeup related crash in ath9k_start + - mac80211: fix a crash in minstrel_ht in HT mode with no supported MCS + rates + - UBIFS: fix oops on error path in read_pnode + - quota: Don't write quota info in dquot_commit() + - mm: avoid wrapping vm_pgoff in mremap() + - wl12xx: fix potential buffer overflow in testmode nvs push + - Bluetooth: sco: fix information leak to userspace (CVE-2011-1078) + - bridge: netfilter: fix information leak (CVE-2011-1080) + - Bluetooth: bnep: fix buffer overflow (CVE-2011-1079) + - netfilter: ip_tables: fix infoleak to userspace (CVE-2011-1171) + - netfilter: arp_tables: fix infoleak to userspace (CVE-2011-1170) + - [x86] Revert "x86: Cleanup highmap after brk is concluded" + (Closes: #621072) + - Squashfs: handle corruption of directory structure + - ext4: fix a double free in ext4_register_li_request + - ext4: fix credits computing for indirect mapped files + - nfsd: fix auth_domain reference leak on nlm operations + - nfsd4: fix oops on lock failure + - char/tpm: Fix unitialized usage of data buffer (CVE-2011-1160) + - ipv6: netfilter: ip6_tables: fix infoleak to userspace (CVE-2011-1172) + - econet: 4 byte infoleak to the network (CVE-2011-1173) + - sound/oss: remove offset from load_patch callbacks + (CVE-2011-1476, CVE-2011-1477) + - inotify: fix double free/corruption of stuct user (CVE-2011-1479) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.3 + * Add stable 2.6.38.4, including: + - vm: Fix vm_pgoff wrap in stack expansion + - cifs: Always do is_path_accessible check in cifs_mount + - cifs: Check for private_data before trying to put it + - sn9c102: Restrict world-wirtable sysfs files + - UBIFS: Restrict world-writable debugfs files + - vm: Fix mlock() on stack guard page + - UBIFS: Fix assertion warnings + - perf: Fix task context scheduling + - fib: Add rtnl locking in ip_fib_net_exit + - l2tp: Fix possible oops on l2tp_eth module unload + - ipv6: Fix duplicate /proc/sys/net/ipv6/neigh directory entries. + - net_sched: fix ip_tos2prio + - pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev + - xfrm: Refcount destination entry on xfrm_lookup + - vlan: Take into account needed_headroom + - bridge: Reset IPCB when entering IP stack on NF_FORWARD + - futex: Set FLAGS_HAS_TIMEOUT during futex_wait restart setup + - oom-kill: Remove boost_dying_task_prio() + - UBIFS: Fix oops when R/O file-system is fsync'ed + - sched: Fix erroneous all_pinned logic + - vmscan: all_unreclaimable() use zone->all_unreclaimable as a name + - next_pidmap: fix overflow condition + - proc: Do proper range check on readdir offset + - [powerpc] Fix oops if scan_dispatch_log is called too early + - ehci: Unlink unused QHs when the controller is stopped + - USB: Fix formatting of SuperSpeed endpoints in /proc/bus/usb/devices + - xhci: Fix math in xhci_get_endpoint_interval() + - xhci: Also free streams when resetting devices + - USB: Fix unplug of device with active streams + - bluetooth: Fix HCI_RESET command synchronization + - bridge: Reset IPCB in br_parse_ip_options + - ip: ip_options_compile() resilient to NULL skb route + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.4 + * [s390] pfault: fix token handling (Closes: #622570) + + -- Ben Hutchings Sat, 23 Apr 2011 03:17:53 +0100 + +linux-2.6 (2.6.38-3) unstable; urgency=low + + [ Ben Hutchings ] + * [ppc64] Add to linux-tools package architectures (Closes: #620124) + * [amd64] Save cr4 to mmu_cr4_features at boot time (Closes: #620284) + * appletalk: Fix bugs introduced when removing use of BKL + * ALSA: Fix yet another race in disconnection + * cciss: Fix lost command issue + * ath9k: Fix kernel panic in AR2427 + * ses: Avoid kernel panic when lun 0 is not mapped + * PCI/ACPI: Report ASPM support to BIOS if not disabled from command line + + [ Aurelien Jarno ] + * rtlwifi: fix build when PCI is not enabled. + + [ Martin Michlmayr ] + * rtlwifi: Eliminate udelay calls with too large values (Closes: #620204) + + -- Ben Hutchings Wed, 06 Apr 2011 13:53:30 +0100 + +linux-2.6 (2.6.38-2) unstable; urgency=low + + [ Ben Hutchings ] + * kconfig: Avoid buffer underrun in choice input (fixes FTBFS on mips) + * rt2800usb: Disable powersaving by default (Closes: #618930) + * b43: Enable B43_PHY_N (Closes: #619070) + * net/wireless: Enable RTL8192CE as module (Closes: #619051) + * Add configuration for Debian architecture ppc64, matching the + powerpc/powerpc64 flavour (Closes: #618976) + * Enable BOOT_PRINTK_DELAY (support for the boot_delay kernel parameter) + * [x86/!486] Enable TRANSPARENT_HUGEPAGE, TRANSPARENT_HUGEPAGE_MADVISE + (Closes: #618924) + * [x86/486] Enable X86_32_IRIS (IRIS power-off support) (Closes: #619493) + * Add stable 2.6.38.1, including: + - RDMA/cma: Fix crash in request handlers (CVE-2011-0695) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.1 + * radeon: Add some sanity checks to obj info record parsing, thanks + to John Lindgren (Closes: #618847) + * [x86] KVM: remove isr_ack logic from PIC (Closes: #612105) + * Add stable 2.6.38.2, including: + - cgroups: If you list_empty() a head then don't list_del() it + - oom: Fix various bugs in victim task selection + - xen-kbdfront: Advertise either absolute or relative coordinates + - signal: Prevent rt_sigqueueinfo and rt_tgsigqueueinfo from spoofing + the signal code (CVE-2011-1182) + - ext3: Skip orphan cleanup on rocompat fs + - sysctl: Restrict write access to dmesg_restrict + - proc: Protect mm start_code/end_code in /proc/pid/stat + - nfsd: Fix internal NFSv4.1 operation flags to be non-overlapping + - nfsd: Fix wrong limit used in NFSv4 session creation + - USB: Do not pass negative length to snoop_urb() + - cdc-acm: Fix various bugs that can lead to a crash or memory corruption + - fs: Fix deadlock in pivot_root() + - fs: Assign sb->s_bdi to default_backing_dev_info if the bdi is going away + - x86: Cleanup highmap after brk is concluded + - NFS: Fix a hang/infinite loop in nfs_wb_page() + - ext4: Skip orphan cleanup if fs has unknown ROCOMPAT features + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.2 + * [amd64] media/rc: Enable IR_NUVOTON as module (Closes: #619937) + * [x86] media/rc: Enable IR_WINBOND_CIR as module + * [x86] Enable DEBUG_SET_MODULE_RONX (Closes: #619838) + * SCSI: Enable TARGET_CORE and related modules (Closes: #619298) + * [hppa] Remove .size directive for flush_alias_page (should fix FTBFS) + + [ Jurij Smakov ] + * Bump CONFIG_NR_CPUS on sparc to 256 to accomodate T2+ machines + (Closes: #619435) + * Bump ABI to 2 + + -- Ben Hutchings Tue, 29 Mar 2011 05:31:03 +0100 + +linux-2.6 (2.6.38-1) unstable; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_38 + + [ Ben Hutchings ] + * Move firmware-linux-free to separate source package (firmware-free) + * Move linux-base to separate source package + * net/can: Enable CAN_SLCAN as module (Closes: #617629) + * sound: Enable SND_ALOOP as module (Closes: #617869) + * Remove the Big Kernel Lock: + - adfs,appletalk,i810,ufs,usbip: Refactor locking + - hpfs: Disable HPFS_FS + * ext4: Disable FS_IOC_FIEMAP ioctl temporarily (together with fixes + for btrfs in 2.6.38, closes: #615035) + * sched: Build with SCHED_AUTOGROUP, but do not enable autogrouping by + default (use sysctl kernel.sched_autogroup_enabled=1) (Closes: #618486) + * Set ABI to 1 + + [ Aurelien Jarno] + * mips/malta-[45]kc: + - disable ATM, TR, WAN. + - synchronize options in malta-4kc and malta-5kc. + + -- Ben Hutchings Wed, 16 Mar 2011 04:47:57 +0000 + +linux-2.6 (2.6.38~rc8-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [sparc] Fix .size directive for do_int_load + * [arm] Fix .size directive for xscale_dma_a0_map_area + + -- Ben Hutchings Sat, 12 Mar 2011 03:31:52 +0000 + +linux-2.6 (2.6.38~rc7-1~experimental.1) experimental; urgency=low + + [ maximilian attems ] + * New upstream release candidate + - swiotlb: Fix wrong panic (Closes: #615990) + * x86: Set DRM_I915_KMS on request by xorg team. + + [ Ben Hutchings ] + * [x86] Correct typos in label names in two asm functions (Closes: #616426) + * [x86] Enable VT6656, loading firmware from a separate file (requires + firmware-linux-nonfree 0.29) (Closes: #568454) + * perf: Build with libdwarf for improved analysis capabilities + * perf: Build with newt for improved user interface (Closes: #615868) + * aufs: Update for 2.6.38 + * aufs: Fix device numbers passed to security_path_mknod() + * dib0700/dib7000m: Add pid filtering (Closes: #614837) + * [powerpc] Revert fb module changes (Closes: #614221) + + -- Ben Hutchings Tue, 08 Mar 2011 02:34:04 +0000 + +linux-2.6 (2.6.38~rc6-1~experimental.1) experimental; urgency=low + + [ Ben Hutchings ] + * New upstream release candidate + - drm/radeon/kms: hopefully fix pll issues for real (v3) (Closes: #614566) + - r8169: Keep firmware in memory (Closes: #609538) + - [sparc] Fix misaligned tracing information which the module loader + does not support (Closes: #609371) + - [sh4] Export cpu_core_map to fix build failure with CONFIG_SFC=m. + - [armel] Support for Buffalo LS-CHL (Closes: #590105). + - btrfs: Prevent heap corruption in btrfs_ioctl_space_info() + (CVE-2011-0699) + - [s390] Remove task_show_regs (CVE-2011-0710) + * DFSG: Remove drivers/staging/ft1000/ft1000-pcmcia/boot.h, non-free + firmware for a driver we don't build (Closes: #609448) + * module,bug: Add TAINT_OOT_MODULE flag for modules that weren't built + in-tree + + [ maximilian attems ] + * [x86] linux-images suggest extlinux, s/grub/grub-pc/. (closes: #613909) + + [ Aurelien Jarno] + * mips/swarm: enable PATA drivers that have been lost during IDE -> PATA + conversion. + * mips/malta-[45]kc: set VIRTUALIZATION. + + -- maximilian attems Tue, 22 Feb 2011 14:36:33 +0100 + +linux-2.6 (2.6.37-2) unstable; urgency=low + + [ Ben Hutchings ] + * Add stable 2.6.37.1: + - libata: Set queue DMA alignment to sector size for ATAPI too + - USB: serial: add missing .usb_driver field in serial drivers + - USB: EHCI: fix scheduling while atomic during suspend + - zram: Fix data corruption issue + - brcm80211: Fix suspend/resume issue + - ath9k: Fix system hang when resuming from S3/S4 + - SCSI: Fix medium error problems with some arrays which can cause + data corruption + - libsas: Fix runaway error handler problem + - NFS: Don't use vm_map_ram() in readdir + - NFS: Fix NFSv3 exclusive open semantics + - /proc/kcore: Fix seeking + - mm: Fix migration hangs on anon_vma lock + - writeback: Stop background/kupdate works from livelocking other works + - writeback: Avoid livelocking WB_SYNC_ALL writeback + - ext4: Fix trimming of a single group + - af_unix: Avoid socket->sk NULL OOPS in stream connect security hooks + - virtio_net: Add schedule check to napi_enable call + - ptrace: Use safer wake up on ptrace_detach() + - net: Fix ip link add netns oops + - SMP: Fix smp_call_function_many() SMP race + - md: Ensure no IO request to get md device before it is properly + initialised + - PM/runtime: Don't enable interrupts while running in_interrupt + - [x86] mm: Avoid possible bogus TLB entries by clearing prev + mm_cpumask after switching mm + * Kbuild: Include localversion file in linux-headers-*; fixes output + of 'make kernelrelease' + * Add stable 2.6.37.2: + - nfsd: Memory corruption due to writing beyond the stat array + - xen: p2m: Correctly initialize partial p2m leaf + - av7110: Check for negative array offset (CVE-2011-0521) + - cred: Fix kernel panic upon security_file_alloc() failure + - btrfs: Prevent heap corruption in btrfs_ioctl_space_info() + (CVE-2011-0699) + - cred: Fix BUG() upon security_cred_alloc_blank() failure + - cred: Fix memory and refcount leaks upon security_prepare_creds() + failure + - PCI: Use security_capable() when checking capablities during config + space read + - [s390] Remove task_show_regs (CVE-2011-0710) + - PM/hibernate: Return error code when alloc_image_page() fails + - fs/partitions: Validate map_count in Mac partition tables + - workqueue: Wake up a worker when a rescuer is leaving a gcwq + - ALSA: caiaq - Fix possible string-buffer overflow + * Set ABI to 2 + + [ Martin Michlmayr ] + * [armel/orion5x] Re-enable all devices. + * [armel/kirkwood] Re-enable Seagate FreeAgent DockStar support. + + -- Ben Hutchings Sat, 26 Feb 2011 03:16:16 +0000 + +linux-2.6 (2.6.37-1) unstable; urgency=low + + [ Ben Hutchings ] + * [arm] ixp4xx: Revert build fix, now applied upstream which resulted + in another build failure + * r8169: Keep firmware in memory (Closes: #609538) + * r8712u: Firmware filename is rtlwifi/rtl8712u.bin (Closes: #602450) + * [sparc] Fix misaligned tracing information which the module loader + does not support (Closes: #609371) + * Set ABI to 1 + * Add aufs2.1, marked as staging (Closes: #573189, #613248) + * fs/notify: Enable FANOTIFY (Closes: #599877) + * acer-wmi, aic94xx, asus_acpi, iscsi, janz-ican3, rtc-ds1511, tc1100-wmi: + Restrict write permissions on files in procfs/sysfs + * nbd: Remove module-level ioctl mutex mistakenly introduced in 2.6.37 + * [x86] crypto: Re-enable AES_NI_INTEL as module (Closes: #597658) + * [powerpc] video/fb: Enable FB_VGA16 as built-in; build FB_CT65550, + FB_NVIDIA, FB_MATROX, FB_RADEON, FB_ATY128, FB_ATY, FB_SIS, FB_3DFX + as modules (Closes: #609615) + + [ Aurelien Jarno ] + * [sh4] Export cpu_core_map to fix build failure with CONFIG_SFC=m. + * [mips/5kc-malta] Enable CONFIG_VGA_CONSOLE. + + [ Bastian Blank ] + * Enable CIFS fscache and ACL support. + * Enable Xen PCI frontend. + + -- Ben Hutchings Tue, 15 Feb 2011 04:14:09 +0000 + +linux-2.6 (2.6.37-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_37 + - starfire: Fix dma_addr_t size test for MIPS (fixes FTBFS) + - watchdog: Improve failure message and documentation (Closes: #608138) + + [ Ben Hutchings ] + * i2c-i801: Include (fixes FTBFS on alpha) + * [x86] Staging: Enable R8712U as module (r8712u, replacing r8192s_usb) + - Enable loading external firmware, thanks to Stefan Lippers-Hollmann + * linux-base: Look for GRUB 1 configuration in both /boot/grub and + /boot/boot/grub (Closes: #607863) + * btrfs: Require CAP_SYS_ADMIN for filesystem rebalance (Closes: #608185) + * r8169: Change RTL8111D/RTL8168D initialisation and firmware loading to + match upstream version (Closes: #596390 with firmware-realtek 0.28) + + -- Ben Hutchings Wed, 05 Jan 2011 02:44:28 +0000 + +linux-2.6 (2.6.37~rc7-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - [mips] Rename mips_dma_cache_sync back to dma_cache_sync (fixes FTBFS) + + [ Ben Hutchings ] + * debian/copyright: Add explanation of indirect linking of perf to + OpenSSL (Closes: #606520) + * [powerpc,x86] Enable PATA_PCMCIA (Closes: #606324) + * Disable BLK_DEV_IDECS + * [alpha] Use libata-based drivers for most PATA controllers + * [powerpc] linux-base: Run ybin after updating yaboot.conf + (Closes: #607284) + * Update debconf template translations: + - Add Catalan (Jordi Mallach) + - Update Danish (Joe Hansen) + - Update Spanish (Omar Campagne, Javier Fernández-Sanguino) + - Add Italian (Luca Bruno) + - Update Japanese (Nobuhiro Iwamatsu) + - Add Brazilian Portugese (Flamarion Jorge) + - Update Vietnamese (Clytie Siddall) + * debian/bin/test-patches: Restrict patches to featureset when building + with a featureset (thanks to Tim Small) + * Recommend use of 'make deb-pkg' to build custom kernel packages + * [ia64] drm/nouveau: Revert unnecessary exclusion of ACPI support code + + -- Ben Hutchings Sat, 25 Dec 2010 16:21:09 +0000 + +linux-2.6 (2.6.37~rc5-1~experimental.3) experimental; urgency=low + + * Really apply patches added in the previous version + + -- Ben Hutchings Sat, 11 Dec 2010 16:27:21 +0000 + +linux-2.6 (2.6.37~rc5-1~experimental.2) experimental; urgency=low + + * Second attempt to fix FTBFS on various architectures: + - [alpha] Do not use -Werror for arch/alpha + - [arm/ixp4xx] Rename FREQ macro to avoid collisions (v2) + - drm/nouveau: Only select ACPI_VIDEO if its dependencies are met + - [mips] Change mips_sc_is_activated() to do what the comment says + + -- Ben Hutchings Sat, 11 Dec 2010 06:27:51 +0000 + +linux-2.6 (2.6.37~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * Attempt to fix FTBFS on various architectures: + - [alpha] Do not use -Werror for arch/alpha/kernel + - [arm/ixp4xx] Rename FREQ macro to avoid collisions + - [mips] Add the necessary parameter to mips_sc_is_activated() + + -- Ben Hutchings Fri, 10 Dec 2010 02:59:12 +0000 + +linux-2.6 (2.6.37~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ maximilian attems ] + * Newer Standards-Version 3.9.1 without changes. + + [ Martin Michlmayr ] + * Add ixp4xx build fix from Arnaud Patard (Closes: #602669) + * [armel/kirkwood] Enable sound. + * ASoC: Add support for OpenRD Ultimate (Arnaud Patard). + + [ Ben Hutchings ] + * Enable PM_ADVANCED_DEBUG (Closes: #603254) + * Disable X.25 protocol and related drivers. This 10 year old experiment + has stalled and is a source of security bugs. + * Disable Econet protocol. It is unmaintained upstream, probably broken, + and of historical interest only. + * af_802154,decnet,rds: Disable auto-loading as mitigation against local + exploits. These protocol modules are not widely used and can be + explicitly loaded or aliased on systems where they are wanted. + * debian/rules: Change 'clean' rule to remove package build directories + even after a version bump, thanks to Timo Juhani Lindfors + * dm: Deal with merge_bvec_fn in component devices better (Closes: #604457) + * 9p: Enable 9P_FS_POSIX_ACL + * netfilter/ipvs: Enable IP_VS_PE_SIP as module + * net/sched: Enable NET_ACT_CSUM as module + * can: Enable CAN_SJA1000_ISA, CAN_TSCAN1 as modules + * block: Enable BLK_DEV_RBD (Rados) as module + * sensors: Enable AD525X_DPOT_SPI, APDS9802ALS, ISL29020, SENSORS_BH1780, + SENSORS_BH1770, SENSORS_APDS990X, HMC6352, BMP085 as modules + * scsi: Enable SCSI_CXGB4_ISCSI as module + * net/ppp: Enable PPTP as module + * net: Enable BNA, SMCTR, USB_NET_CX82310_ETH as modules + * IR: Enable IR_RC5_SZ_DECODER as module + * [i386] IR: Enable IR_NUVOTON as module + * V4L: Enable GSPCA_KONICA, GSPCA_XIRLINK_CIT as modules + * DVB: Enable USB_LME2510 as module + * [i386] sound/isa: Enable SND_AZT1605, SND_AZT2316, SND_JAZZ16, + SND_MSND_PINNACLE, SND_MSND_CLASSIC as modules + * HID: Enable HID_UCLOGIC, HID_WALTOP, HID_ROCCAT_PYRA as modules + * hid-logitech: Enable LOGIWII_FF + * Enable USB_UAS (USB-attached SCSI) as module + * serial: Enable USB_SERIAL_SAMBA as module + * drm/nouveau: Enable DRM_I2C_SIL164 as module + * perf: Use libiberty, not libbfd, for symbol demangling + (Closes: #604750, #606050) + * firmware: Correct copyright information and add source for CIS files + (accidentally omitted when merging from sid branch) + + -- Ben Hutchings Sun, 05 Dec 2010 23:19:38 +0000 + +linux-2.6 (2.6.36-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_36 + - writeback: always use sb->s_bdi for writeback purposes (Closes: #599466) + - i7core_edac: fix panic in udimm sysfs attributes registration + (Closes: #600528) + + [ Ben Hutchings ] + * qla4xxx: Fix build on some architectures lacking 64-bit I/O + (Closes: #598503) + * [x86] Enable modular TM6000, TM6000_ALSA, TM6000_DVB + * [x86] Staging: fix Makefile so brcm80211 will actually build + (Closes: #599465) + * [x86] Enable modular IDEAPAD_ACPI (Closes: #599444) + * perf: Enable Perl and Python scripting + - Move scripts to /usr/share/perf_-core (Closes: #599624) + * crypto: Explicitly enable algorithm self-tests (Closes: #599441) + * [x86] Skip looking for ioapic overrides when ioapics are not present + (Closes: #598533) + * [x86] ata_piix: Add device ID for ICH4-L + * [armel/iop32x,ia64,x86] Disable BLK_DEV_PIIX as obsolete + * [amd64] Disable DRM_I810; i81x chipsets do not support 64-bit processors + * [x86] Disable DRM_I830; the i915 driver is now used instead + + [ Martin Michlmayr ] + * Kirkwood: restrict the scope of the PCIe reset workaround + + -- maximilian attems Wed, 27 Oct 2010 13:23:11 +0200 + +linux-2.6 (2.6.36~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - drm/i915: Ensure that the crtcinfo is populated during mode_fixup() + (Closes: #592415) + - USB: fix bug in initialization of interface minor numbers + (Closes: #598207) + + [ Ben Hutchings ] + * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996, really) + * Disable INTEL_IDLE. It can no longer be built as a module and so was + actually disabled by the previous version, but I do not consider it ready + to build-in yet. + * Enable modular NETFILTER_XT_TARGET_CHECKSUM, NETFILTER_XT_TARGET_IDLETIMER, + NETFILTER_XT_MATCH_CPU, NETFILTER_XT_MATCH_IPVS + * Reenable LOCKUP_DETECTOR, accidentally disabled by the previous version + * Enable modular AD525X_DPOT_I2C, ATM_NICSTAR, CAN_ESD_USB2, CHELSIO_T4VF, + FIREWIRE_NOSY, HID_ACRUX_FF, HID_ELECOM, INFINIBAND_CXGB4, INFINIBAND_QIB, + MTD_PCMCIA, ORINOCO_USB, PPS_CLIENT_LDISC, RAMOOPS, SERIAL_MFD_HSU, + UIO_NETX, USB_GSPCA_SPCA1528, USB_GSPCA_SQ930X, USB_SERIAL_SSU100, + USB_SERIAL_ZIO, WL1271_SDIO, WL1271_SPI + * Enable BT_HCIUART_ATH3K, USB_SERIAL_MOS7715_PARPORT + * [x86] Enable modular SENSORS_PKGTEMP + * Enable modular IR_CORE, RC_MAP, all IR decoders, IR_IMON, IR_MCEUSB, + IR_ENE, IR_STREAMZAP + * [x86] Enable modular LIRC drivers + + -- Ben Hutchings Sun, 03 Oct 2010 21:18:41 +0100 + +linux-2.6 (2.6.36~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - 3c59x: Fix deadlock in vortex_error() (Closes: #595554) + + [ Ben Hutchings ] + * speakup: Update to match Debian package version 3.1.5.dfsg.1-1 + * [x86] Add brcm80211 driver for Broadcom 802.11n wireless network + controllers + * [x86] Set XEN_PLATFORM_PCI=y + + -- Ben Hutchings Tue, 21 Sep 2010 02:15:33 +0100 + +linux-2.6 (2.6.35-1~experimental.3) experimental; urgency=low + + [ Ritesh Raj Sarraf ] + * Add .gnu_debuglink information into kernel modules (Closes: #555549) + + [ Ben Hutchings ] + * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996) + * Update debconf template translations: + - Czech (Michal Simunek) (Closes: #590546) + - Portugese (Américo Monteiro) (Closes: #590557) + - French (David Prévot) (Closes: #591149) + - Russian (Yuri Kozlov) (Closes: #591241) + - Swedish (Martin Bagge) (Closes: #592045) + - German (Holger Wansing) (Closes: #592226) + * [x86] Enable samsung-laptop driver + * [sparc] Enable XVR1000 driver (Closes: #574243) + * Change BLK_CGROUP from module to built-in so that cfq can be the + default I/O scheduler again (Closes: #593720) + * [mipsel/loongson-2f] Enable smtcfb (FB_SM7XX) driver (Closes: #594642) + + [ Ian Campbell ] + * Fixes/overrides for Linitan warnings: + - Add "(meta package)" to short description of linux-headers + metapackages, resolves empty-binary-package. + - Add dependency on ${misc:Depends} to all packages, resolves + debhelper-but-no-misc-depends. Required update to gencontrol.py to + augment rather than override headers_arch_depends read from templates. + - Override dbg-package-missing-depends for linux-image-*-dbg. It is not + necessary to install the kernel image package to use the dbg package + since the dbg package already contains a complete image with symbols. + + [ Bastian Blank ] + * Disable Ralink staging drivers, the in-tree ones reached "works-for-me" + status. + + [ Aurelien Jarno ] + * Fix netfilter CONFIG_COMPAT support. + * [sh4] set VIRTUALIZATION. + * [mips] Add an octeon flavour. + + [ maximilian attems] + * Add stable 2.6.35.3 and 2.6.35.4. + + -- maximilian attems Mon, 06 Sep 2010 15:16:17 +0200 + +linux-2.6 (2.6.35-1~experimental.2) experimental; urgency=low + + * images: Nuke modules.devname on removal. (closes: #590607) + * Add stable 2.6.35.1 and 2.6.35.2. + * mm: fix page table unmap for stack guard page properly. + * mm: fix up some user-visible effects of the stack guard page. + * config.loongson-2f: Enable USB and RTC for loongson-2f. + Thanks Geert Stappers (closes: #583689) + + -- maximilian attems Mon, 16 Aug 2010 23:49:32 +0200 + +linux-2.6 (2.6.35-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_35 + - [ia64] Fix crash when gcore reads gate area (Closes: #588574) + - tpm_tis: fix subsequent suspend failures (Closes: #591031) + + * topconfig enable BLK_CGROUP, NETFILTER_XT_TARGET_TEE, VMWARE_BALLOON, + ATH9K_HTC, TOUCHSCREEN_HAMPSHIRE, TOUCHSCREEN_TPS6507X, SND_ASIHPI, + SQUASHFS_XATTRS, RCU_FAST_NO_HZ, COMPACTION, IP_MROUTE_MULTIPLE_TABLES, + IPV6_MROUTE_MULTIPLE_TABLES, NET_DCCPPROBE, NET_SCTPPROBE, L2TP, + BT_L2CAP_EXT_FEATURES, MTD_NAND_RICOH, ATA_BMDMA, KEYBOARD_QT2160, + N_GSM, SENSORS_SHT15, SENSORS_EMC1403, SENSORS_ADS7871, SENSORS_TMP102, + SND_ES1968_INPUT, SND_MAESTRO3_INPUT, LEDS_LT3593, LEDS_MC13783. + * x86 enable INTEL_IDLE, ACPI_HED, ACPI_APEI, ACPI_APEI_GHES, + PCI_CNB20LE_QUIRK. + + -- maximilian attems Tue, 03 Aug 2010 16:21:16 +0200 + +linux-2.6 (2.6.35~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - drm/i915: Add 'reclaimable' to i915 self-reclaimable page allocations + (Closes: #534422) + + [ Ben Hutchings ] + * [!x86] Disable FB_VIA; these GPUs are only found on x86 motherboards + * ds2782_battery: Fix build failure on several architectures + * postinst: Remove support for 'default' boot loaders. Warn users on + upgrade if the current configuration may rely on this. + * [i386/686] Remove AMD K6 from the list of supported processors; it + does not implement the CMOV instruction + * 3c59x: Fix call to mdio_sync() with the wrong argument (Closes: #589989) + + -- Ben Hutchings Sat, 24 Jul 2010 01:00:26 +0100 + +linux-2.6 (2.6.35~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * Consistently name the linux-tools package and perf binary using the + upstream version without any -rcN suffix + + -- Ben Hutchings Tue, 13 Jul 2010 01:09:27 +0100 + +linux-2.6 (2.6.35~rc4-1~experimental.1) experimental; urgency=low + + * New upstream snapshot + - [hppa] clear floating point exception flag on SIGFPE signal + (Closes: #559406) + - Add mantis and hopper DVB drivers (Closes: #577264) + - eeepc-laptop: Disable wireless hotplug on more models where the + controller is not at the expected address (Closes: #576199) + - qcserial: Add support for Qualcomm Gobi 2000 devices + (Closes: #585661) + - radeon: Fix MacBook Pro connector quirk (Closes: #585943) + - r8169: Fix MDIO timing (Closes: #583139) + - asix: fix setting mac address for AX88772 (Closes: #587580) + - Update Marvell CESA (mv_cesa) driver (Closes: #585790): + + [ Ben Hutchings ] + * ipr: add writeq definition if needed (Closes: #584840) + * [mips] Fix boot from ATA hard drives (Closes: #584784): + - Set io_map_base for several PCI bridges lacking it + - Replace per-platform built-in IDE drivers with libata-based drivers + - Enable BLK_DEV_SD as built-in on all platforms + * Update Spanish debconf templates, thanks to Omar Campagne + (Closes: #580538) + * [powerpc] Enable pata_amd driver, replacing amd74xx + * linux-base: Don't identify LVM2 PVs by UUID (Closes: #585852) + * Move NEWS to linux-latest-2.6 (Closes: #586401) + * 3c59x: Change locking to avoid use of disable_irq() (Closes: #586967) + * Enable IPv6 support for IPVS (IP_VS_IPV6) (Closes: #584549) + * linux-base: If the disk ID update process fails, give the user a + chance to retry or change their answers (Closes: #585609) + * ipv6: Clamp reported valid_lft to a minimum of 0 (Closes: #514644) + * ipv6: Use interface max_desync_factor instead of static default + (Closes: #514646) + * [ia64, powerpc, sparc, x86] Enable KPROBES and KRETPROBES + (Closes: #584130) + * r8192s_usb: Fix various bugs: + - Clean up in case of an error in module initialisation + - Rename and remove proc directories correctly if an interface is + not called wlan0 (Closes: #582972) + - Correct device ID table (Closes: #584945, #587985) + * [x86] Enable r8192u_usb driver + * Add linux-tools- package containing the perf tool + (Closes: #548715) + * Enable SERIAL_USB_TI (Closes: #588096) and SERIAL_USB_WHITEHEAT + * [x86] Enable EDAC_I7CORE + + [ maximilian attems ] + * Enable DRM_RADEON_KMS. + + [ Martin Michlmayr ] + * OpenRD-Base: revert patch "allow SD/UART1 selection" since it + never made it upstream. + * ARM: update mach types. + * Add support for OpenRD-Ultimate. + * QNAP TS-11x/TS-21x: Add MPP44 (board ID). + * Add support for the HP t5325 Thin Client. + * m25p80: Add support for Macronix 25L8005. + * [armel/kirkwood] Enable FB_XGI and FRAMEBUFFER_CONSOLE. + * [armel] Make MOUSE_PS2 modular. + * [armel] Build INPUT_UINPUT for all flavours. + * [armel/kirkwood] Enable FB_UDL. + * [armel] Disable PARPORT_PC (Closes: #588164) + + [ Bastian Blank ] + * Disable mISDN support for NETJet cards. The driver binds a generic PCI + bridge. + * Disable ISDN4Linux drivers. + + -- Ben Hutchings Sat, 10 Jul 2010 21:53:57 +0100 + +linux-2.6 (2.6.34-1~experimental.2) experimental; urgency=low + + [ Ben Hutchings ] + * [x86] Reenable rtl8192su, accidentally disabled in previous version + (Closes: #580740) + * writeback: Update dirty flags in two steps + * writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync + (Closes: #582808) + * writeback: fix non-integrity write-back + * [mipsel] Add a loongson-2f flavour + * [mipsel] Loongson: Define rtc device on MC146818-equipped systems + * Make gcc-4.4 the default compiler + * [ia64] Hardcode the output of the scripts under arch/ia64/scripts so + that we can build out-of-tree modules correctly (refresh and re-add + dropped patch) (Closes: #392592) + * [ia64] Enable SGI SN support and mspec driver (Closes: #582224) + * iwlwifi: Disable QoS when connected to a non-QoS-capable AP + (Closes: #578262) + * [x86] Disable e_powersaver cpufreq driver as unsafe. It has already + been blacklisted by cpufrequtils. The acpi-cpufreq driver can be used + instead on some VIA C7 systems. (Closes: #566208) + * [amd64] ext4: Fix compat EXT4_IOC_ADD_GROUP (used by online resize) + * Install debug kernel image in /usr/lib/debug/boot (Closes: #582810) + * Build inet_lro as a module + * [sparc] Enable CONFIG_FB_XVR500, CONFIG_FB_XVR2500 (Closes: #508108) + + [ maximilian attems ] + * topconfig enable CFQ_GROUP_IOSCHED, MFD_WM8994, REGULATOR_MAX8649, + REGULATOR_WM8994, VHOST_NET, BT_ATH3K, CRYPTO_PCRYPT. + * [x86] Enable X86_PCC_CPUFREQ, VGA_SWITCHEROO (closes: #582637). + + [ Martin Michlmayr ] + * QNAP TS-419P: Export GPIO indicating jumper setting of JP1. + + [ dann frazier ] + * [hppa] clear floating point exception flag on SIGFPE signal + (Closes: #559406) + + [ Aurelien Jarno ] + * [sh4] fix sh_tmu clocksource following recent nohz changes. + + [ Moritz Muehlenhoff ] + * Enable X86 board specific fixups for reboot (Closes: #536537) + + -- Ben Hutchings Sun, 06 Jun 2010 18:53:04 +0100 + +linux-2.6 (2.6.34-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_34 + + * New upstream release + - rtl8192su: Add IDs for several more devices (Closes: #580740) + + [ maximilian attems ] + * topconfig enable IPV6_SIT_6RD, NETFILTER_XT_TARGET_CT, IP_VS_PROTO_SCTP, + NF_CONNTRACK_ZONES, CAN_PLX_PCI, TI_DAC7512, SCSI_HPSA, PATA_TOSHIBA, + MACVTAP, CHELSIO_T4, IXGBEVF, QLCNIC, LIBERTAS_MESH, + USB_NET_SMSC75XX, USB_SIERRA_NET, VIDEO_CX18_ALSA, USB_GSPCA_BENQ, + USB_GSPCA_CPIA1, USB_GSPCA_OV534_9, USB_GSPCA_SN9C2028, RADIO_TEF6862, + RADIO_SAA7706H, SND_USB_UA101, CEPH_FS, MICREL_PHY, KSZ884X_PCI, + SENSORS_ADT7411, SENSORS_ASC7621, VIDEO_TLG2300, DVB_USB_AZ6027, + DVB_NGENE, HID_3M_PCT, LOGIG940_FF, HID_MAGICMOUSE, HID_MOSART, + HID_NTRIG, HID_QUANTA, HID_STANTUM, HID_WACOM, USB_SERIAL_QCAUX, + USB_SERIAL_VIVOPAY_SERIAL, MMC_RICOH_MMC, LEDS_DELL_NETBOOKS, LOGFS. + * [x86] Enable EEEPC_WMI. + * Fix backlight support on some recent Thinkpads. + * acpi: Fall back to manually changing SCI_EN. + * Explicitly pass in whether sb is pinned or not. + + [ Ben Hutchings ] + * Prepare debconf templates for translation (Closes: #576758) + * [x86] Enable r8187se driver, previously named rtl8187se + + [ Aurelien Jarno ] + * mips/swarm: fix boot from IDE based media (Sebastian Andrzej Siewior) + (closes: #466977). + * mips/*: remove SND_* options, as they are already enabled in topconfig. + + -- maximilian attems Wed, 19 May 2010 17:06:13 +0200 + +linux-2.6 (2.6.33-1~experimental.5) experimental; urgency=low + + [ Ian Campbell ] + * Include Xen hypervisor in reportbug "related to" list. + + [ maximilian attems] + * Add stable 2.6.33.2. + + [ Ben Hutchings ] + * [x86] Enable ramzswap driver (Closes: #573912) + * [x86] Re-enable rt2860sta and rt2870sta drivers which were accidentally + disabled when moving to Linux 2.6.33 (Closes: #576723) + * Add stable 2.6.33.3: + - ACPI: EC: Allow multibyte access to EC; fixes temperature monitoring + on some Dell laptops (Closes: #563313) + + [ Aurelien Jarno ] + * Add support for sh4 architecture, patch by Nobuhiro Iwamatsu + (Closes: #569034) + * [mips*/*malta] Remove options that are present in topconfig. + + -- maximilian attems Wed, 05 May 2010 16:38:53 +0200 + +linux-2.6 (2.6.33-1~experimental.4) experimental; urgency=low + + [ Ben Hutchings ] + * Include aufs2, marked as staging (Closes: #573189) + * Remove /usr/include/drm from linux-libc-dev; let libdrm-dev provide it + again (Closes: #572067) + * [x86] Enable rtl8192su driver using external firmware + + [ maximilian attems] + * Add stable 2.6.33.1. + + -- maximilian attems Wed, 17 Mar 2010 18:13:53 +0100 + +linux-2.6 (2.6.33-1~experimental.3) experimental; urgency=low + + [ Ben Hutchings ] + * Fix regexp for binNMU versions in modules/rules.include (Closes: #524632) + * linux-base: Fix bugs and improve libata transition code: + - Fix calls to disk_id_to_path (renamed to id_to_path) (Closes: #572283) + - Don't show empty list of devices to be relabelled + - Don't update udev CD rules unnecessarily + - Show the device paths to be added to udev CD rules + - Ignore nonexistent devices and properly handle devices of unknown + filesystem type (Closes: #572341, #572445) + - Don't accept empty filesystem labels as identifiers (Closes: #572438) + - For consistency with fresh installations, use or assign UUIDs rather + than labels where both are available (Closes: #572376) + - Replace CD/DVD/BD device names with udev-provided persistent aliases + - Fix update of boot device name for LILO and related loaders + - Update uswsusp resume device name + + -- maximilian attems Thu, 11 Mar 2010 05:58:02 +0100 + +linux-2.6 (2.6.33-1~experimental.2) experimental; urgency=low + + [ Ben Hutchings ] + * Add missing debconf templates for linux-base (Closes: #571558) + * Fix libata transition code for GRUB 1 config (Closes: #571662) + + -- maximilian attems Sun, 28 Feb 2010 17:48:11 +0100 + +linux-2.6 (2.6.33-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_33 + + [ maximilian attems] + * [topconfig] set BLK_DEV_DRBD, DRM_NOUVEAU, DRM_NOUVEAU_BACKLIGHT, + DRM_VMWGFX, SENSORS_LM73, SENSORS_AMC682, SENSORS_LIS3_I2C, + SENSORS_MC13783_ADC, TOUCHSCREEN_DYNAPRO, TOUCHSCREEN_MC13783, + GIGASET_CAPI, LEDS_DAC124S085, LEDS_INTEL_SS4200, LEDS_INTEL_SS4200, + DVB_FIREDTV, DVB_USB_EC168, SOC_CAMERA_MT9T112, SOC_CAMERA_OV9640, + USB_GSPCA_PAC7302, USB_GSPCA_STV0680, AD525X_DPOT, CAN_MCP251X, + RT2800PCI, REGULATOR_MAX8660, RTC_DRV_BQ32K, RTC_DRV_MSM6242, + RTC_DRV_RP5C01, VMWARE_PVSCSI, SCSI_PM8001, WIMAX_IWMC3200_SDIO, + INPUT_SPARSEKMAP, SERIO_ALTERA_PS2, MANTIS_CORE, DVB_MANTIS, + DVB_HOPPER. + * [x86] set CS5535_MFGPT, SENSORS_K10TEMP, GEODE_WDT, MSI_WMI, + TOSHIBA_BT_RFKILL, ACPI_CMPC, CRYPTO_GHASH_CLMUL_NI_INTE. + + [ Ben Hutchings ] + * Use libata-based drivers for most PATA controllers (Closes: #444182): + - pata_triflex replaces triflex + - pata_atiixp replaces atiixp + - pata_ns87415 replaces ns87415 + - pata_sc1200 replaces sc1200 + - pata_cs5536 replaces cs5536 + - pata_amd replaces amd74xx + - pata_sis replaces sis5513 + - pata_rz1000 replaces rz1000 + - pata_efar replaces slc90e66 + - pata_pdc202xx_old replaces pdc202xx_old + - pata_pdc2027x replaces pdc202xx_new + - pata_cs5520 replaces cs5520 + - pata_cs5530 replaces cs5530 + - pata_cmd64x replaces cmd64x + - pata_sil680 replaces siimage + - pata_ali replaces alim15x3 + - pata_via replaces via82cxxx + - pata_serverworks replaces serverworks + - pata_artop replaces aec62xx + - pata_it821x replaces it821x + - ata_piix, pata_oldpiix, pata_mpiix mostly replace piix + - ata_generic, pata_ns87410, pata_netcell replace ide-pci-generic + * Add libata transition script + + -- maximilian attems Thu, 25 Feb 2010 15:21:38 +0100 + +linux-2.6 (2.6.32-30) unstable; urgency=high + + [ Ben Hutchings ] + * mpt2sas: Fix incorrect scsi_dma_map error checking (Closes: #606968) + * Update Spanish debconf template translation (Omar Campagne, Javier + Fernández-Sanguino) (Really closes: #600694) + * intel-iommu: Force-disable IOMMU for iGFX on broken Cantiga revisions + (Closes: #607095) + * [powerpc] linux-base: Run ybin after updating yaboot.conf + (Closes: #607284) + * tehuti: Firmware filename is tehuti/bdx.bin + * iwlwifi: Reduce a failure-prone memory allocation (Closes: #599345) + * linux-base: Look for GRUB 1 configuration in both /boot/grub and + /boot/boot/grub (Closes: #607863) + * rt28x0: Add ieee80211_regdom module parameter mimicking cfg80211 as a + workaround for incorrect region code in NVRAM (Closes: #594561) + * btrfs: Require CAP_SYS_ADMIN for filesystem rebalance (Closes: #608185) + * [x86] dell-laptop: Enable for some newer Dell models + * r8169: Change RTL8111D/RTL8168D initialisation and firmware loading to + match upstream version (Closes: #596390 with firmware-realtek 0.28) + * Add stable 2.6.32.28: + - NFS: Fix panic after nfs_umount() + - usb-storage/libusual: Add support for Samsung YP-CP3 MP4 Player, + thanks to Vitaly Kuznetsov (Closes: #555835) + - bfa: Fix system crash when reading sysfs fc_host statistics + (CVE-2010-4343) + - IB/uverbs: Handle large number of entries in poll CQ (CVE-2010-4649) + - orinoco: Fix TKIP countermeasure behaviour (CVE-2010-4648) + - mm: Add security_file_mmap check to install_special_mapping + (CVE-2010-4346) + - sctp: Fix a race between ICMP protocol unreachable and connect() + (CVE-2010-4526) + - hvc_console: Fix race between hvc_close and hvc_remove (CVE-2010-2653) + (previously applied as an isolated fix in 2.6.32-25) + - fuse/cuse: Verify ioctl retries (CVE-2010-4650) + * [powerpc] Restore device tree source files to linux-image packages + (Closes: #609155) + + [ maximilian attems ] + * [openvz] Reenable NF_CONNTRACK_IPV6. (closes: #580507) + * cifs: fix another memleak, in cifs_root_iget. + * b43: Fix warning at drivers/mmc/core/core.c:237 in mmc_wait_for_cmd. + * drm/radeon/kms: MC vram map needs to be >= pci aperture size. + * drm/radeon/kms: make sure blit addr masks are 64 bit. + * drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx. + * drm/i915: Free hardware status page on unload when physically mapped. + * drm/i915/overlay: Ensure that the reg_bo is in the GTT prior to writing. + * drm/radeon/kms/atom: set sane defaults in atombios_get_encoder_mode(). + * drm/radeon/kms: fix typos in disabled vbios code. + * drm/radeon/kms: add workaround for dce3 ddc line vbios bug. + * drm/radeon/kms: fix interlaced and doublescan handling. + * drm/i915/sdvo: Always add a 30ms delay to make SDVO TV detection reliable. + * wireless: b43: fix error path in SDIO. + * drm/radeon/kms: don't apply 7xx HDP flush workaround on AGP. + + [ Ian Campbell ] + * xen: backport TTM patches to use PCI API. Fixes PCIe GPU (specifically + Radeon and Nouveau) on Xen (Closes: #601341). + * xen: netback: drop SKBs which are GSO but do not have a partial + checksum set (Closes: #608144). + + [ dann frazier ] + * exec: make argv/envp memory visible to oom-killer (CVE-2010-4243) + * irda: Fix information leak in IRLMP_ENUMDEVICES (CVE-2010-4529) + * af_unix: limit unix_tot_inflight (CVE-2010-4249) + + [ Moritz Muehlenhoff ] + * net: ax25: fix information leak to userland (CVE-2010-3875) + * net: packet: fix information leak to userland (CVE-2010-3876) + * net: tipc: fix information leak to userland (CVE-2010-3877) + * inet_diag: Make sure we actually run the same bytecode we audited + (CVE-2010-3880) + * econet: Fix crash in aun_incoming() (CVE-2010-4342) + + -- Ben Hutchings Tue, 11 Jan 2011 05:42:11 +0000 + +linux-2.6 (2.6.32-29) unstable; urgency=high + + [ Ben Hutchings ] + * megaraid_sas: Add support for 'entry-level' SAS controllers including + the 9240 family (Closes: #604083) + * tcp: Make TCP_MAXSEG minimum more correct (refinement of fix for + CVE-2010-4165) + * l2tp: Fix UDP socket reference count bugs in the pppol2tp driver + (Closes: #604748) + * USB: Retain device power/wakeup setting across reconfiguration; + don't enable remote wakeup by default (Closes: #605246) + * dm: Deal with merge_bvec_fn in component devices better (Closes: #604457) + * Update Spanish debconf template translation (Aaron H Farias Martinez) + (Closes: #600694) + * perf: Use libiberty, not libbfd, for symbol demangling + (Closes: #590226, #606050) + * [x86] Add support for Fintek hardware watchdogs (Closes: #601187) + - resource: Add shared I/O region support + - hwmon: f71882fg: Use a muxed resource lock for the Super I/O port + - watchdog: Add f71808e_wdt driver + * bcm5974: Add reporting of multitouch events (Closes: #605450) + * fusion: Set FUSION_MAX_SGE=128, the upstream default (Closes: #606096) + * Add stable 2.6.32.27: + - block: limit vec count in bio_kmalloc() and bio_alloc_map_data() + - block: take care not to overflow when calculating total iov length + - block: check for proper length of iov entries in blk_rq_map_user_iov() + (CVE-2010-4163) + - net: clear heap allocation for ETHTOOL_GRXCLSRLALL (CVE-2010-3861) + - asus_oled: fix up some sysfs attribute permissions + - ipc: initialize structure memory to zero for compat functions + (CVE-2010-4073) + - ipc/shm: fix information leak to userland (CVE-2010-4072) + - ipc/sem: sys_semctl: fix kernel stack information leakage (CVE-2010-4083) + - tty: prevent DOS in the flush_to_ldisc + - [x86] KVM: VMX: Fix host userspace gsbase corruption (Closes: #604956) + - KVM: VMX: fix vmx null pointer dereference on debug register access + (CVE-2010-0435) + - KVM: x86: fix information leak to userland (CVE-2010-3881) + - firewire/cdev: fix information leak + - firewire-core: fix an information leak + - firewire-ohci: fix buffer overflow in AR split packet handling + - bio: take care not overflow page count when mapping/copying user data + (CVE-2010-4162) + - sisusbvga: fix information leak to userland + - iowarrior: fix information leak to userland + - usb: core: fix information leak to userland + - usb-storage/sierra_ms: fix sysfs file attribute + - ueagle-atm: fix up some permissions on the sysfs files + - cypress_cy7c63: fix up some sysfs attribute permissions + - usbled: fix up some sysfs attribute permissions + - trancevibrator: fix up a sysfs attribute permission + - usbsevseg: fix up some sysfs attribute permissions + - do_exit(): make sure that we run with get_fs() == USER_DS (CVE-2010-4258) + - DECnet: don't leak uninitialized stack byte + - perf_events: Fix perf_counter_mmap() hook in mprotect() (CVE-2010-4169) + - frontier: fix up some sysfs attribute permissions + - net/sched: fix kernel information leak in act_police + - can-bcm: fix minor heap overflow (CVE-2010-3874) + - ivtvfb: prevent reading uninitialized stack memory (CVE-2010-4079) + - net/sched: fix some kernel information leaks + * TTY: Fix error return from tty_ldisc_open() (regression in 2.6.32.27) + * filter: make sure filters dont read uninitialized memory (CVE-2010-4158) + * posix-cpu-timers: workaround to suppress the problems with mt exec + (CVE-2010-4248) + + [ Ian Campbell ] + * xen: disable ACPI NUMA for PV guests and allow IRQ desc allocation on any + node (Closes: #603632) + * xen: handle potential time discontinuity on resume (Closes: #602273) + * xen: don't bother to stop other cpus on shutdown/reboot (Closes: #605448) + * xen: Add cpu hotplug support to prevent crash while parsing ACPI processor + tables (Closes: #602109) + + [ Martin Michlmayr ] + * Kirkwood: Add support for 6282 based QNAP devices. + + -- Ben Hutchings Fri, 10 Dec 2010 05:45:11 +0000 + +linux-2.6 (2.6.32-28) unstable; urgency=high + + [ maximilian attems ] + * ipc: initialize structure memory to zero for shmctl. + * drm/i915: set DIDL using the ACPI video output device _ADR method return. + * images: Nuke modules.devname on removal. (closes: #590607) + * Newer Standards-Version 3.9.1 without changes. + * drm/ttm: Clear the ghost cpu_writers flag on ttm_buffer_object_transfer. + * [openvz] Update upstream patch to 2.6.32-dzhanibekov. + * [openvz] ubc: Fix orphan count checks after merge. + + [ Martin Michlmayr ] + * Update udlfb to 2.6.37: + - udlfb: minor cleanups + - udlfb: fix coding style issues + - udlfb: fbdev character read and write support + - udlfb: add DPMS support + - udlfb: remove metrics_misc sysfs attribute + - udlfb: revamp reference handling to insure successful shutdown + - udlfb: enhance EDID and mode handling support + - udlfb: fix big endian rendering error + - udlfb: support for writing backup EDID to sysfs file + - udlfb: add module options for console and fb_defio + - udlfb: fix incorrect fb_defio implementation for multiple framebuffers + - udlfb: fix checkpatch and style + + [ Ben Hutchings ] + * Update debconf template translations: + - Update Japanese (Nobuhiro Iwamatsu) (Closes: #602152) + - Update Catalan (Jordi Mallach) (Closes: #602520) + - Add Italian (Luca Bruno) (Closes: #602945) + * sunrpc: Fix NFS client over TCP hangs due to packet loss (Closes: #589945) + * brcm80211: Update to 2.6.37-rc1 + * [powerpc] ALSA: Fix headphone and line-out detection on PowerMac G4 DA + (Closes: #603419) + * [x86] snd-hda-codec-cirrus: Add quirks for IMac 27", MacBookPro 5,5 and 7,1 + * [x86] btusb: Add device IDs for MacBookPro 6,2 and 7,1 (Closes: #603651) + * [x86] applesmc: Add support for iMac 9,1 and MacBookPro 2,2, 5,3, 5,4, 6,* + and 7,* + * [x86] applesmc, bcm5974, btusb, HID, mbp_nvidia_bl, snd-hda-codec-cirrus: + Add support for MacBookAir 3,1 and 3,2 (Closes: #603395) + * [x86] mbp_nvidia_bl: Add support for MacBookPro 7,1 + * x25: Fix remote denial-of-service vulnerabilities: + - x25 accesses fields beyond end of packet + - memory corruption in X.25 facilities parsing (CVE-2010-3873) + - Prevent crashing when parsing bad X.25 facilities (CVE-2010-4164) + * tcp: Increase TCP_MAXSEG socket option minimum (CVE-2010-4165) + * rds: Fix integer overflow in RDS cmsg handling + * af_802154,decnet,econet,rds,x25: Disable auto-loading as mitigation + against local exploits. These protocol modules are not widely used + and can be explicitly loaded or aliased on systems where they are + wanted. + * atl1c: Add support for Atheros AR8151 and AR8152 (Closes: #599771) + * Add stable 2.6.32.26: + - synclink_cs: Fix information leak to userland + - bluetooth: Fix missing NULL check + - [x86] KVM: VMX: Fix host GDT.LIMIT corruption + - [x86] KVM: Fix fs/gs reload oops with invalid ldt (CVE-2010-3698) + - gdth: Fix integer overflow in ioctl (CVE-2010-4157) + * [x86] KVM: SVM: Fix wrong intercept masks for KVM_{GET,SET}_VCPU_EVENTS + on 32 bit, thanks to Philipp Matthias Hahn (Closes: #599507) + + [ dann frazier ] + * [vserver] Update patch to 2.6.32.25-vs2.3.0.36.29.6 + * add qlcnic driver + * econet: Avoid stack overflow w/ large msgiovlen (CVE-2010-3848) + * econet: disallow NULL remote addr for sendmsg() (CVE-2010-3849) + * econet: Add mising CAP_NET_ADMIN check in SIOCSIFADDR (CVE-2010-3850) + + -- Ben Hutchings Thu, 25 Nov 2010 01:20:50 +0000 + +linux-2.6 (2.6.32-27) unstable; urgency=high + + * The "We'll Always Have Paris" release + + [ Ben Hutchings ] + * rndis_host: Restrict fix for #576929 to specific devices + (Closes: #589403, #600660) + * Add stable 2.6.32.25: + - rme9652: prevent reading uninitialized stack memory + (CVE-2010-4080, CVE-2010-4081) + - ocfs2: Don't walk off the end of fast symlinks + - ip: fix truesize mismatch in ip fragmentation + - net: clear heap allocations for privileged ethtool actions + - execve: setup_arg_pages: diagnose excessive argument size + - execve: improve interactivity with large arguments + - execve: make responsive to SIGKILL with large arguments + - rose: Fix signedness issues wrt. digi count. (CVE-2010-3310) + - ALSA: prevent heap corruption in snd_ctl_new() (CVE-2010-3442) + - setup_arg_pages: diagnose excessive argument size (CVE-2010-3858) + * btrfs: add a "df" ioctl for btrfs (Closes: #600190) + * Update debconf template translations: + - Add Catalan (Jordi Mallach) (Closes: #601146) + - Add Brazilian Portugese (Flamarion Jorge) (Closes: #601102) + - Update Vietnamese (Clytie Siddall) (Closes: #601534) + * phonet: device notifier only runs on initial namespace + (Really closes: #597904) + * net/socket: Limit sendto()/recvfrom() length (CVE-2010-1187) + [Original reference is incorrect; should be CVE-2010-3859.] + + [ Ian Campbell ] + * xen: import additional fixes for disabling netfront smartpoll mode + (Closes: #600992). + + [ dann frazier ] + * e1000e: Reset 82577/82578 PHY before first PHY register read + (Closes: #601017) + + [ Martin Michlmayr ] + * Kirkwood: reset PCIe unit on boot + * Kirkwood: restrict the scope of the PCIe reset workaround + + [ maximilian attems ] + * Update abi files, readd Xen as ABI stable. + * 2.6.33.stable-queue: drm/radeon: fix PCI ID 5657 to be an RV410. + * Add drm changes from 2.6.32.24+drm33.11: + - i915: return -EFAULT if copy_to_user fails. + - drm/i915: Prevent double dpms on + - drm: Only decouple the old_fb from the crtc is we call mode_set* + - drm/i915: Unset cursor if out-of-bounds upon mode change (v4) + - drm/i915,agp/intel: Add second set of PCI-IDs for B43 + * net: Limit socket I/O iovec total length to INT_MAX. (CVE-2010-1187) + [Original reference is incorrect; should be CVE-2010-3859.] + * numa: fix slab_node(MPOL_BIND). + + -- maximilian attems Sat, 30 Oct 2010 12:24:37 +0200 + +linux-2.6 (2.6.32-26) unstable; urgency=high + + [ Ian Campbell ] + * xen: fix PVHVM hang at boot when Xen does not support vector callbacks. + * xen: fix race between PV drivers and xenstore initialisation which caused + breakage in drivers for both regular PV and PVHVM guests. + + [ maximilian attems ] + * [openvz] Enable ioprio. (closes: #596772) + Thanks Daniel Hahler + + [ Ben Hutchings ] + * [x86] radeon: Add quirks to make HP nx6125 and dv5000 laptops resume + (Closes: #583968) + * dm-crypt: Add 'plain64' IV; this avoids watermarking attacks that are + possible with 'plain' IV on devices larger than 2TB (Closes: #600384) + * [x86] ahci,ata_generic: let ata_generic handle new MBP w/ MCP89 + (Closes: #600305) + * debian/.../patches.py: Open files as needed, rather than all at once + (Closes: #600423) + * [openvz] printk: Handle global log buffer reallocation (Closes: #600299) + * debian/bin/test-patches: Restrict patches to featureset when building + with a featureset (thanks to Tim Small) + * sata_via: Delay on vt6420 when starting ATAPI DMA write (Closes: #488566) + * r6040: Fix various bugs in r6040_multicast_list() (Closes: #600155) + + [ dann frazier ] + * Force enable DMA on MBP w/ MCP 7,1 + * RDS sockets: remove unsafe kmap_atomic optimization (CVE-2010-3904) + * v4l: disable dangerous buggy compat function (CVE-2010-2963) + + -- dann frazier Tue, 19 Oct 2010 07:50:55 -0600 + +linux-2.6 (2.6.32-25) unstable; urgency=high + + [ Ben Hutchings ] + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * Add stable 2.6.32.24 (trivial fix, already applied) + * ipg: Remove device claimed by dl2k from pci id table (Closes: #599021) + * linux-image: Include modules.order in image packages (Closes: #598518) + * [x86] isdn/i4l: Reenable ISDN4Linux drivers, but mark them as staging + (Closes: #588551) + - hisax: Disable device aliases that conflict with mISDN + * Update Danish debconf template translation (Joe Hansen) (Closes: #599457) + * [x86] KVM: SVM: Fix wrong intercept masks on 32 bit (Closes: #599507) + * e1000: fix Tx hangs by disabling 64-bit DMA (Closes: #518182) + * rt2x00: Fix calculation of required TX headroom (Closes: #599395) + * Add drm changes from 2.6.32.22+drm33.10: + - i915: Don't touch PORT_HOTPLUG_EN in intel_dp_detect() + - i915: Kill dangerous pending-flip debugging + - radeon: release AGP bridge at suspend + - radeon: initialize set_surface_reg for rs600 asic + * [x86] toshiba_acpi: Add full hotkey support (Closes: #599768) + + [ Stephen R. Marenka ] + * m68k: fix missing io macros. + * m68k: modular swim on mac. + * m68k: never build staging drivers on m68k. + * m68k: build in rtc class on atari. + + [ Ian Campbell ] + * xen: do not truncate machine address on gnttab_copy_grant_page hypercall + (Closes: #599089) + + [ dann frazier ] + * drm/i915: Sanity check pread/pwrite (CVE-2010-2962) + * drm/i915: Rephrase pwrite bounds checking to avoid any potential overflow + * GFS2: Fix writing to non-page aligned gfs2_quota structures (CVE-2010-1436) + * hvc_console: Fix race between hvc_close and hvc_remove (CVE-2010-2653) + * net sched: fix some kernel memory leaks (CVE-2010-2942) + * niu: Fix kernel buffer overflow for ETHTOOL_GRXCLSRLALL (CVE-2010-3084) + * rose: Fix signedness issues wrt. digi count (CVE-2010-3310) + * Fix pktcdvd ioctl dev_minor range check (CVE-2010-3437) + * ALSA: prevent heap corruption in snd_ctl_new() (CVE-2010-3442) + * net sched: fix kernel leak in act_police (CVE-2010-3477) + * sctp: Fix out-of-bounds reading in sctp_asoc_get_hmac() (CVE-2010-3705) + + -- dann frazier Thu, 14 Oct 2010 01:08:05 -0600 + +linux-2.6 (2.6.32-24) unstable; urgency=high + + [ Ben Hutchings ] + * speakup: Update to match Debian package version 3.1.5.dfsg.1-1 + * scsi_dh_emc: Fix mode select request setup (Closes: #591540) + * snd-hda-codec-via: Fix syntax error when CONFIG_SND_HDA_POWER_SAVE is + disabled (Closes: #597043) + * Add stable 2.6.32.22: + - [vserver] Revert sched changes since they conflict. + * Recommend use of 'make deb-pkg' to build custom kernel packages + * [x86] Revert "i915: Blacklist i830, i845, i855 for KMS". The current X + driver (xserver-xorg-video-intel version 2.12.0+shadow-1) should work + properly with KMS on these chips. (Closes: #596453) + * phonet: Restrict to initial namespace (Closes: #597904) + * Add stable 2.6.32.23: + - serial/mos*: prevent reading uninitialized stack memory + - net: Fix oops from tcp_collapse() when using splice() + - rds: fix a leak of kernel memory + - hso: prevent reading uninitialized memory (CVE-2010-3298) + - cxgb3: prevent reading uninitialized stack memory (CVE-2010-3296) + - eql: prevent reading uninitialized stack memory (CVE-2010-3297) + - vt6655: fix buffer overflow + - net/llc: make opt unsigned in llc_ui_setsockopt() + - sisfb: prevent reading uninitialized stack memory + - aio: check for multiplication overflow in do_io_submit (CVE-2010-3067) + - xfs: prevent reading uninitialized stack memory (CVE-2010-3078) + - viafb: prevent reading uninitialized stack memory + - [hppa,ia64] mm: guard page for stacks that grow upwards (CVE-2010-2240) + - sctp: Do not reset the packet during sctp_packet_config() + (CVE-2010-3432) + * xen: Fix typo in xen_percpu_chip definition + * 3c59x: Remove incorrect locking (Closes: #598103) + * f71882fg: Add support for the f71889fg (Closes: #597820) + * drm/radeon: Fix regressions introduced in 2.6.34.3 (Closes: #597636) + * mmc: fix hangs related to mmc/sd card insert/removal during suspend/resume + (Closes: #598147) + + [ Martin Michlmayr ] + * ARM: update mach types. + * [armel/config.kirkwood] Enable MACH_DOCKSTAR. + + [ Ian Campbell ] + * [x86/xen] Disable netfront's smartpoll mode by default. (Closes: #596635) + + [ maximilian attems ] + * [openvz] Update upstream patch to 2.6.32-dyomin. + + -- Ben Hutchings Thu, 30 Sep 2010 00:46:16 +0100 + +linux-2.6 (2.6.32-23) unstable; urgency=low + + [ Ben Hutchings ] + * cgroupfs: create /sys/fs/cgroup to mount cgroupfs on (Closes: #595964) + * r8169: Fix MDIO timing (Closes: #583139; mistakenly reverted in 2.6.32-19) + * gro: Fix bogus gso_size on the first fraglist entry (Closes: #596802) + * vgaarb: Fix VGA arbiter to accept PCI domains other than 0 (from stable + 2.6.32.12; mistakenly omitted in 2.6.32-12) + + [ maximilian attems ] + * openvz: cfq-iosched: do not force idling for sync workload. + + [ Stephen R. Marenka ] + * m68k: switch to generic siginfo layout. + * m68k: NPTL support. + + [ dann frazier ] + * compat: Make compat_alloc_user_space() incorporate the access_ok() + (CVE-2010-3081) + * x86-64, compat (CVE-2010-3301): + - Retruncate rax after ia32 syscall entry tracing + - Test %rax for the syscall number, not %eax + * wireless extensions: fix kernel heap content leak (CVE-2010-2955) + * KEYS (CVE-2010-2960): + - Fix RCU no-lock warning in keyctl_session_to_parent() + - Fix bug in keyctl_session_to_parent() if parent has no session keyring + + -- dann frazier Fri, 17 Sep 2010 15:27:04 -0600 + +linux-2.6 (2.6.32-22) unstable; urgency=low + + [ Ian Campbell ] + * xen: backport pvhvm drivers from upstream. + * Fixes/overrides for Lintian warnings: + - Add "(meta package)" to short description of linux-headers + metapackages, resolves empty-binary-package. + - Add dependency on ${misc:Depends} to all packages, resolves + debhelper-but-no-misc-depends. Required update to gencontrol.py to + augment rather than override headers_arch_depends read from templates. + - Override dbg-package-missing-depends for linux-image-*-dbg. It is not + necessary to install the kernel image package to use the dbg package + since the dbg package already contains a complete image with symbols. + + [ Ben Hutchings ] + * [x86/xen] Restore stack guard page (CVE-2010-2240) + * Add stable 2.6.32.21: + - ext4: consolidate in_range() definitions (CVE-2010-3015) + - mm: make the mlock() stack guard page checks stricter + (avoids regression for Xen tools; closes: 594756) + - [sparc] sunxvr500: Ignore secondary output PCI devices + (Closes: #594604) + - ocfs2: fix o2dlm dlm run purgelist (Closes: #593679) + - Avoid ABI change in mm + - Ignore ABI change in snd-emu10k1 + * Add drm changes from stable 2.6.34.6: + - drm: stop information leak of old kernel stack (CVE-2010-2803) + * rt2870sta: Add more device IDs from vendor drivers + * rt2860sta, rt2870sta: Enable channels 12-14 (Closes: #594561) + * SCSI/mptsas: fix hangs caused by ATA pass-through (Closes: #594690) + * sky2: Apply fixes and new hardware support from 2.6.33-2.6.35 + (Closes: #571526) + * postinst: Really warn users on upgrade if the current configuration may + rely on running a default boot loader. + * input: add compat support for sysfs and /proc capabilities output + (Closes: #579017) + * snd-hda-intel: Add support for VIA V1708S, VT1718S, VT1828S, VT2020, + VT1716S, VT2002P, VT1812, VT1818S + * hwmon/w83627ehf: Add support for W83667HG-B + * 3c59x: Fix deadlock in vortex_error() (Closes: #595554) + * [x86] paravirt: Add a global synchronization point for pvclock (from + 2.6.32.16; reverted due to a regression which was addressed in 2.6.32.19) + * sched, cputime: Introduce thread_group_times() (from 2.6.32.19; reverted + due to the potential ABI change which we now carefully avoid) + * net/{tcp,udp,llc,sctp,tipc,x25}: Add limit for socket backlog + (Closes: #592187) + * tun: Don't add sysfs attributes to devices without sysfs directories + (Closes: #594845) + * [x86] Add brcm80211 driver for Broadcom 802.11n wireless network + controllers + * r8169: Remove MODULE_FIRMWARE declarations since the firmware is + non-essential and we do not distribute it + * [x86] HPET: unmap unused I/O space + * ipheth: add support for iPhone 4 + * ipheth: remove incorrect devtype of WWAN + * ALSA: emux: Add trivial compat ioctl handler (Closes: #596478) + * hostap_pci: set dev->base_addr during probe (Closes: #595802) + * ethtool: allow non-netadmin to query settings (see #520724) + * ACPI: add boot option acpi=copy_dsdt to fix corrupt DSDT, and enable this + automatically for known-bad Toshiba models (Closes: #596709) + + [ Bastian Blank ] + * Use Breaks instead of Conflicts. + + [ Aurelien Jarno ] + * [mips,mipsel] Fix computation of DMA flags from device's + coherent_dma_mask. + + [ Martin Michlmayr ] + * Add some patches from the Orion tree: + - OpenRD: Enable SD/UART selection for serial port 1 + - kirkwood: Unbreak PCIe I/O port + - Kirkwood: support for Seagate DockStar + + [ dann frazier ] + * netxen_nic: add support for loading unified firmware images + * irda: Correctly clean up self->ias_obj on irda_bind() failure. + (CVE-2010-2954) + + [ maximilian attems ] + * [powerpc] Enable WINDFARM_PM121. (closes: #596515) + Thanks Étienne BERSAC + * nouveau: disable acceleration on NVA3/NVA5/NVA8 by default. + * openvz: disable KSM. Thanks Dietmar Maurer . + (closes: #585864) + * Update openvz patch to d38b56fd0dca. + * openvz: enalbe modular VZ_EVENT. + + -- maximilian attems Tue, 14 Sep 2010 14:17:11 +0200 + +linux-2.6 (2.6.32-21) unstable; urgency=high + + [ Ben Hutchings ] + * Add stable 2.6.32.19: + - ext4: Make sure the MOVE_EXT ioctl can't overwrite append-only files + (CVE-2010-2066) + - mm: keep a guard page below a grow-down stack segment (CVE-2010-2240) + (not applied to xen featureset) + - md/raid10: fix deadlock with unaligned read during resync + (Closes: #591415) + - Revert "sched, cputime: Introduce thread_group_times()" which would + result in an ABI change + * Add stable 2.6.32.20: + - Fix regressions introduced by original fix for CVE-2010-2240 + * Add drm and other relevant changes from stable 2.6.34.4 + * Add 'breaks' relation from image packages to boot loader packages that + do not install required hooks (Closes: #593683) + * [x86] i915: Blacklist i830, i845, i855 for KMS + (Closes: #568207, #582105, #593432, #593507) + + [ Bastian Blank ] + * Update Xen patch. + - Notify Xen on crash. + - Several blktap fixes. + + [ Ritesh Raj Sarraf ] + * Add .gnu_debuglink information into kernel modules (Closes: #555549) + + [ Ian Campbell ] + * [x86/xen] temporarily remove stack guard page, it breaks the xen + toolstack. + + [ Aurelien Jarno ] + * [mips,mipsel] Fix 64-bit atomics. + + -- Ben Hutchings Wed, 25 Aug 2010 01:06:18 +0100 + +linux-2.6 (2.6.32-20) unstable; urgency=low + + [ Moritz Muehlenhoff ] + * Backport XVR1000 driver (Closes: #574243) + + [ Ben Hutchings ] + * Add stable 2.6.32.18: + - CIFS: Fix compile error with __init in cifs_init_dns_resolver() + definition (FTBFS for most architectures) + - GFS2: rename causes kernel Oops (CVE-2010-2798) + - xfs: prevent swapext from operating on write-only files + (CVE-2010-2226) + * Update debconf template translations: + - Swedish (Martin Bagge) (Closes: #592045) + - German (Holger Wansing) (Closes: #592226) + * [i386/openvz-686] Remove AMD Geode LX and VIA C3 "Nehemiah" from the + list of supported processors; they do not implement PAE + * V4L/DVB: Add Elgato EyeTV Diversity to dibcom driver (Closes: #591710) + * [s390] dasd: use correct label location for diag fba disks + (Closes: #582281) + * Add drm changes from stable 2.6.34.2 (thanks to Stefan Bader) and + 2.6.34.3 + * drm/i915: disable FBC when more than one pipe is active + (Closes: #589077) + * IB/ipath: Fix probe failure path (Closes: #579393) + * ext4: fix freeze deadlock under IO (regression introduced in 2.6.32.17) + * xen: Completely disable use of XSAVE (Closes: #592428) + + [ Martin Michlmayr ] + * [armel/orion5x] Add a missing #include to fix a build issue. + * [armel/kirkwood, armel/orion5x] Build-in support for more devices. + + [ dann frazier ] + * can: add limit for nframes and clean up signed/unsigned variables + + -- Ben Hutchings Thu, 12 Aug 2010 03:26:39 +0100 + +linux-2.6 (2.6.32-19) unstable; urgency=low + + [ maximilian attems ] + * inotify send IN_UNMOUNT events. + * inotify fix oneshot support. + + [ Ben Hutchings ] + * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996) + * pata_pdc202xx_old: Fix UDMA mode for PDC2024x and PDC2026x controllers + (Closes: #590532) + * Update debconf template translations: + - Czech (Michal Simunek) (Closes: #590546) + - Portugese (Américo Monteiro) (Closes: #590557) + - French (David Prévot) (Closes: #591149) + - Russian (Yuri Kozlov) (Closes: #591241) + * Add stable 2.6.32.17: + - ethtool: Fix potential kernel buffer overflow in ETHTOOL_GRXCLSRLALL + (CVE-2010-2478) + - GFS2: Fix up system xattrs (CVE-2010-2525) + - Revert ABI changes in firmware_class and ssb + - Ignore ABI changes in acpi_processor, hostap and jbd2 + * Add drm changes from stable 2.6.33.7: + - drm/i915: Enable low-power render writes on GEN3 hardware (915, 945, + G33 and Atom "Pineview") (Closes: #590193, maybe others) + * [i386/xen-686] Remove AMD Geode LX and VIA C3 "Nehemiah" from the list + of supported processors; they do not implement PAE + * [x86] Add samsung-laptop driver + + [ dann frazier ] + * [ia64] Fix crash when gcore reads gate area (Closes: #588574) + + [ Bastian Blank ] + * Update Xen patch. + - Ignore ABI changes. + + -- Ben Hutchings Thu, 05 Aug 2010 02:43:19 +0100 + +linux-2.6 (2.6.32-18) unstable; urgency=low + + [ Ben Hutchings ] + * iwlwifi: Allocate pages for RX buffers, reducing the probability of + allocation failure (Closes: #580124) + * postinst: Remove support for 'default' boot loaders. Warn users on + upgrade if the current configuration may rely on this. + * rt2860sta, rt2870sta: Apply changes from Linux 2.6.33 and 2.6.34 + - rt2860sta: Fix WPA(2)PSK issue when group cipher of AP is WEP40 + or WEP104 (Closes: #574766) + * rt3090sta: Replace with rt2860sta (Closes: #588863) + * [i386/686] Remove AMD K6 from the list of supported processors; it + does not implement the CMOV instruction + * drm/i915: Add 'reclaimable' to i915 self-reclaimable page allocations + (really closes: #534422, we hope) + * Revert "x86, paravirt: Add a global synchronization point for pvclock", + included in stable 2.6.32.16 (Closes: #588426) + * 3c59x: Fix call to mdio_sync() with the wrong argument (Closes: #589989) + + [ Martin Michlmayr ] + * Add some patches from the Orion tree, including support for Marvell's + Armada 300 (88F6282): + - Kirkwood: update MPP definition. + - Kirkwood: fix HP t5325 after updating MPP definitions + - leds: leds-gpio: Change blink_set callback to be able to turn off + blinking + - net/phy/marvell: Expose IDs and flags in a .h and add dns323 LEDs + setup flag + - orion5x: Base support for DNS-323 rev C1 + - orion5x: Fix soft-reset for some platforms + - mtd: orion/kirkwood: add RnB line support to orion mtd driver + - mtd: kirkwood: allow machines to register RnB callback + - Kirkwood: add support for rev A1 of the 88f6192 and 88f6180 chips + - Kirkwood: Add support for 88f6282 + - PCI: add platform private data to pci_sys_data + - Kirkwood: add support for PCIe1 + - Kirkwood: more factorization of the PCIe init code + + [ maximilian attems ] + * sched: Fix over-scheduling bug. + + -- Ben Hutchings Fri, 23 Jul 2010 03:48:08 +0100 + +linux-2.6 (2.6.32-17) unstable; urgency=low + + [ maximilian attems ] + * agp: add no warn since we have a fallback to vmalloc paths. + + [ Ben Hutchings ] + * linux-tools: Fix build for hppa and do not attempt to build for + architectures where perf events are not available (Closes: #588409) + * linux-tools: Add build-dependency on binutils-dev to enable symbol + demangling in perf + * drm/i915: Fix memory corruption on resume from hibernation + (Closes: #534422) + + -- Ben Hutchings Sat, 10 Jul 2010 16:40:38 +0100 + +linux-2.6 (2.6.32-16) unstable; urgency=low + + [ dann frazier ] + * [hppa] clear floating point exception flag on SIGFPE signal + (Closes: #559406) + + [ Ben Hutchings ] + * Add stable 2.6.32.15 + * Add mantis and hopper DVB drivers with mb86a16 and tda665x DVB + front-ends, backported by Bjørn Mork (Closes: #577264) + * Build inet_lro as a module + * [sparc] Enable CONFIG_FB_XVR500, CONFIG_FB_XVR2500 (Closes: #508108) + * Update Spanish debconf templates, thanks to Omar Campagne + (Closes: #580538) + * Revert "Add EC path for Thinkpad X100."; it is incomplete and broken + * sctp: fix append error cause to ERROR chunk correctly (regression due + to fix for CVE-2010-1173) + * [powerpc] Enable pata_amd driver, replacing amd74xx + * eeepc-laptop: Disable wireless hotplug on more models where the + controller is not at the expected address (Closes: #576199) + * [mips] Fix boot from ATA hard drives (Closes: #584784): + - Set io_map_base for several PCI bridges lacking it + - Replace per-platform built-in IDE drivers with libata-based drivers + - Enable BLK_DEV_SD as built-in on all platforms + * Revert "vlan/macvlan: propagate transmission state to upper layers" + (Closes: #585770) + * linux-base: Don't identify LVM2 PVs by UUID (Closes: #585852) + * usb-serial: Add generic USB WWAN code, backported by Mark Hymers + (Closes: #585661) + - option, qcserial: Use generic USB WWAN code + - qcserial: Add support for Qualcomm Gobi 2000 devices + * radeon: Fix MacBook Pro connector quirk (Closes: #585943) + * r8169: Fix MDIO timing (Closes: #583139) + * Move NEWS to linux-latest-2.6 (Closes: #586401) + * 3c59x: Change locking to avoid use of disable_irq() (Closes: #586967) + * Enable IPv6 support for IPVS (IP_VS_IPV6) (Closes: #584549) + * Revert "tpm: autoload tpm_tis based on system PnP IDs", included in + stable 2.6.32.12 (Closes: #584273) + * linux-base: If the disk ID update process fails, give the user a + chance to retry or change their answers (Closes: #585609) + * asix: fix setting mac address for AX88772 (Closes: #587580) + * ipv6: Clamp reported valid_lft to a minimum of 0 (Closes: #514644) + * ipv6: Use interface max_desync_factor instead of static default + (Closes: #514646) + * Add stable 2.6.32.16: + - Fixes CVE-2010-1641, CVE-2010-1187, CVE-2010-1148, CVE-2010-1173 + and CVE-2010-2071 + - libata: disable ATAPI AN by default (Closes: #582737, #582903) + * Add drm changes from stable 2.6.33.6 + * [ia64, powerpc, sparc, x86] Enable KPROBES and KRETPROBES + (Closes: #584130) + * r8192s_usb: Fix various bugs: + - Check for skb allocation failure in 2 more places + - Update LED control code + - Clean up in case of an error in module initialisation + - Rename and remove proc directories correctly if an interface is + not called wlan0 (Closes: #582972) + - Correct device ID table (Closes: #584945, #587985) + * Add r8192u_usb driver + * Add linux-tools- package containing the perf tool + (Closes: #548715) + * Enable USB_SERIAL_TI (Closes: #588096) and USB_SERIAL_WHITEHEAT + + [ Aurelien Jarno ] + * [sh4] optimize runtime disabling of trapped I/O. + * [mips] backport mips/swarm: fix M3 TLB exception handler. + + [ Moritz Muehlenhoff ] + * Enable X86 board specific fixups for reboot (Closes: #536537) + + [ Martin Michlmayr ] + * OpenRD-Base: revert patch "allow SD/UART1 selection" since it + never made it upstream. + * ARM: update mach types. + * Add support for OpenRD-Ultimate. + * QNAP TS-11x/TS-21x: Add MPP36 (RAM) and MPP44 (board ID). + * Add support for the HP t5325 Thin Client. + * m25p80: Add support for Macronix 25L8005. + * Add framebuffer driver for XGI chipsets. + * [armel/kirkwood] Enable FB_XGI and FRAMEBUFFER_CONSOLE. + * [armel] Make MOUSE_PS2 modular. + * [armel] Build INPUT_UINPUT for all flavours. + * Update Marvell CESA (mv_cesa) driver (Closes: #585790): + - Invoke the user callback from a softirq context + - Remove compiler warning in mv_cesa driver + - Fix situation where the dest sglist is organized differently than... + - Fix situations where the src sglist spans more data than the reques... + - Enqueue generic async requests + - Rename a variable to a more suitable name + - Execute some code via function pointers rathr than direct calls + - Make the copy-back of data optional + - Support processing of data from previous requests + - Add sha1 and hmac(sha1) async hash drivers + * Update DisplayLink (udlfb) driver: + - add dynamic modeset support + - checkpatch cleanup + - reorganize function order + - pre-allocated urb list helpers + - clean up function naming + - Add functions to expose sysfs metrics and controls + - Rework startup and teardown to fix race conditions + - improved rendering performance + - Support for fbdev mmap clients (defio) + - explicit dependencies and warnings + - remove printk and small cleanup + * [armel/kirkwood] Enable FB_UDL. + * [armel] Disable PARPORT_PC (Closes: #588164) + + [ Bastian Blank ] + * Disable mISDN support for NETJet cards. The driver binds a generic PCI + bridge. + * Disable ISDN4Linux drivers. + + [ maximilian attems] + * Update openvz patch to 5fd638726a69. + + -- Ben Hutchings Mon, 05 Jul 2010 22:13:33 +0100 + +linux-2.6 (2.6.32-15) unstable; urgency=low + + [ Ben Hutchings ] + * [hppa] Ignore ABI change caused by disabling CONFIG_IDE_TIMINGS + * [powerpc] Fix unnecessary ABI change + + [ Bastian Blank ] + * xen: Fix crash in netback. + + -- Ben Hutchings Tue, 01 Jun 2010 01:31:05 +0100 + +linux-2.6 (2.6.32-14) unstable; urgency=low + + [ Ben Hutchings ] + * [ia64] Hardcode the output of the scripts under arch/ia64/scripts so + that we can build out-of-tree modules correctly (refresh and re-add + dropped patch) (Closes: #392592) + * vlan/macvlan: propagate transmission state to upper layers + * macvlan: add GRO bit to features mask + * macvlan: allow multiple driver backends + * Add macvtap driver (Closes: #568755) + * [ia64] Enable SGI SN support and mspec driver (Closes: #582224) + * iwlwifi: Disable QoS when connected to a non-QoS-capable AP + (Closes: #578262) + * [x86] Disable e_powersaver cpufreq driver as unsafe. It has already + been blacklisted by cpufrequtils. The acpi-cpufreq driver can be used + instead on some VIA C7 systems. (Closes: #566208) + * nouveau: Fix fbcon corruption with font width not divisible by 8 + (Closes: #583162) + * [amd64] ext4: Fix compat EXT4_IOC_ADD_GROUP (used by online resize) + * Install debug kernel image in /usr/lib/debug/boot (Closes: #582810) + * net: sysfs: Check for null ethtool_ops before getting speed/duplex + * Add stable 2.6.32.14: + - [hppa] Revert "parisc: Set PCI CLS early in boot.", erroneously + included in 2.6.32.13 causing FTBFS + - btrfs: check for read permission on src file in the clone ioctl + (CVE-2010-1636) + + [ Bastian Blank ] + * Update Xen patch. + - Fix checksum offloading in netback. (closes: #583366) + + [ maximilian attems] + * Add drm changes from stable 2.6.33.5: + - i915: Disable FBC on 915GM and 945GM (Closes: #582427) + * Update openvz patch to e7399c239fad. + + [ Martin Michlmayr ] + * QNAP TS-419P: Export GPIO indicating jumper setting of JP1. + + -- Ben Hutchings Sat, 29 May 2010 00:32:44 +0100 + +linux-2.6 (2.6.32-13) unstable; urgency=low + + [ Frederik Schueler ] + * sparc: Fix use of uid16_t and gid16_t in asm/stat.h + + [ Moritz Muehlenhoff ] + * Enable tomoyo (Closes: #562486) + + [ maximilian attems] + * backport KVM: x86: Extend KVM_SET_VCPU_EVENTS with selective updates. + (closes: #580652) + * KEYS: find_keyring_by_name() can gain access to a freed keyring. + CVE-2010-1437 + * hppa, sparc, powerpc disable BLK_DEV_CMD64X. + * topconfig enable PATA_CMD64X. (closes: #580799) + * x86: Disable CRYPTO_AES_NI_INTEL as it causes boot failures on T410. + * Add stable 2.6.32.13: + - [SCSI] Enable retries for SYNCRONIZE_CACHE commands to fix I/O error. + - [SCSI] Retry commands with UNIT_ATTENTION sense codes to fix ext3/ext4 + I/O errors. + - [SCSI] skip sense logging for some ATA PASS-THROUGH cdbs + (Closes: #578129) + - raid6: fix recovery performance regression. + - raid456: Enable error-correction on singly-degraded RAID6 + (Closes: #581392) + - r8169: fix broken register writes (Closes: #407217, #573007) + - V4L/DVB: budget: Fix crash in case of failure to attach frontend + (Closes: #575207) + * drm/edid: Fix 1024x768@85Hz. + + [ Ben Hutchings ] + * linux-base: Fix typo in disk relabelling code (Closes: #580467) + * linux-base: Don't quote boot device name in elilo.conf + (Closes: #580710; works-around: #581173) + * rtl8192su: Add IDs for several more devices (Closes: #580740) + * Add drm and sfc changes from stable 2.6.33.4 + * Improve workaround for HPAs (Host Protected Areas) overlapping + partitions, thanks to Tejun Heo: + - SCSI/libata: Disable HPA if it overlaps a partition (Closes: #572618) + - buffer: Make invalidate_bdev() drain all percpu LRU add caches + - block: Rescan partition tables after HPA is disabled + - libata: Disable HPA if it is only enabled after suspend + * V4L/DVB: budget: Select correct frontend drivers (Closes: #575223) + * 3c503: Fix IRQ probing (Closes: #566522) + * sis-agp: Remove SIS 760, handled by amd64-agp + * amd64-agp: Probe unknown AGP devices the right way (Closes: #548090) + + [ Aurelien Jarno ] + * mips/swarm: fix boot from IDE based media (Sebastian Andrzej Siewior) + (closes: #466977). + * backport mips/swarm: fix M3 TLB exception handler. + [This patch was actually reverted and never applied in version 2.6.32-13] + * backport MIPS FPU emulator: allow Cause bits of FCSR to be writeable + by ctc1. (closes: #580602). + * mips/swarm: enable adm* hwmon drivers. + * backport Input: Add support of Synaptics Clickpad device (Closes: #572842) + + [ Bastian Blank ] + * Fix symlinks in several packages. + * Update Xen patch. + * [amd64, i386/{686-bigmem,openvz-686,vserver-686-bigmem,xen-686}] + Build debugging symbols. (closes: #365349) + * Ignore crypto ABI changes. + + [ Martin Michlmayr ] + * Backport GuruPlug support. + + [ Christian Perrier ] + * Update debconf templates: + - English revised by the debian-l10n-english team as part of the Smith + review project (Closes: #578349) + - Vietnamese (Clytie Siddall) (Closes: #579234) + - German (Holger Wansing) (Closes: #579864) + - Russian (Yuri Kozlov) (Closes: #578994) + - Estonian (mihkel) (Closes: #579019) + - Czech (Michal Simunek) (Closes: #579268) + - Swedish (Martin Bagge) (Closes: #579308) + - French (David Prévot) (Closes: #579763) + - Spanish (Omar Campagne) (Closes: #580538) + - Portuguese (Américo Monteiro) (Closes: #577227) + - Japanese (Kenshi Muto) (Closes: #580855) + - Danish (Joe Hansen) (Closes: #580915) + - Czech (Michal Simunek) (Closes: #581399) + + -- maximilian attems Mon, 17 May 2010 15:29:27 +0200 + +linux-2.6 (2.6.32-12) unstable; urgency=low + + * The "Microwave Background" release + + [ Ben Hutchings ] + * Prepare debconf templates for translation. (closes: #576758) + * [x86] PCI/forcedeth: Disable MSI for MCP55 on P5N32-E SLI + (Closes: #552299) + * phylib: Fix typo in bcm63xx PHY driver table + * linux-base: Fix bugs and improve libata transition code: + - Fix scope of _system() function (Closes: #576925) + - Fix case where a file may wrongly be listed as automatically converted + (Closes: #577047) + - Check device IDs in mdadm.conf rather than assuming it needs manual + conversion + - Use vol_id if available since the version of blkid in lenny does not + support the output format we need (Closes: #576608) + - Fix missing line breaks in updated crypttab (Closes: #577735) + * i915: Stop trying to use ACPI lid status to determine LVDS connection + (Closes: #577724) + * forcedeth: Fix hardware version check for TX bug workaround + (Closes: #572201) + * rndis_host: Poll status channel before control channel (Closes: #576929) + * megaraid_sas: Fix copying of sense data for 32-bit management tools on + 64-bit kernel (Closes: #578398) + * Add ipheth driver for iPhone tethering + * virtio_net: Make delayed refill more reliable (Closes: #576838) + + [ maximilian attems] + * [ia64] Built in fbcon. + * Update openvz patch to c05f95fcb04e. (closes: #574598) + * Reenable nouveau autoloading. + * reiserfs: Fix permissions on .reiserfs_priv. CVE-2010-1146 + * libata,ata_piix: detect and clear spurious IRQs. + * libata/SCSI: fix locking around blk_abort_request(). + * topconfig enable NET_DROP_MONITOR. (closes: #578568) + * Add stable 2.6.32.12: + - ACPI: EC: Allow multibyte access to EC; fixes temperature monitoring + on some Dell laptops (Closes: #563313) + - [x86] KVM: disable paravirt mmu reporting (Closes: #573071) + - thinkpad-acpi: lock down video output state access (Closes: #565790) + - xfs update (closes: #579410) + * Add drm changes from stable 2.6.33.3: + - drm/radeon: R300 AD only has one quad pipe (Closes: #575681) + * libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2) + * Add EC path for Thinkpad X100. + * Bump ABI to 5, apply: + - hrtimer: Tune hrtimer_interrupt hang logic + * Add libata TRIM support. + * Backport radeon r800 modesetting support. + * drm/radeon/kms: further spread spectrum fixes. + * Backport p54 fixes. + * net: export device speed and duplex via sysfs. + * postrm: rm modules.softdep. (closes: #579175) + * Backport KVM: Xen PV-on-HVM guest support. + * Backport KVM: x86: Add KVM_GET/SET_VCPU_EVENTS. + * hugetlb: fix infinite loop in get_futex_key() when backed by huge pages + * ext4: Issue the discard operation *before* releasing the blocks to be + reused. + * libiscsi: regression: fix header digest errors. + * Revert module.c and module.h changes from -stable update. + + [ dann frazier ] + * Add DRBD backport + * sctp: Fix skb_over_panic resulting from multiple invalid parameter + errors (CVE-2010-1173) + * [CIFS] Allow null nd (as nfs server uses) on create (CVE-2010-1148) + * tipc: Fix oops on send prior to entering networked mode (CVE-2010-1187) + * [powerpc] KGDB: don't needlessly skip PAGE_USER test for Fsl booke + Note: KGDB is not currently enabled in debian builds (CVE-2010-1446) + + [ Aurelien Jarno ] + * [sh4] Add a sh7751r flavour. + * [mips/*malta] Remove options that are present in topconfig. + + [ Martin Michlmayr ] + * dns323-setup.c: fix WARN() when booting (Arnaud Patard). + * mips: enable PATA platform on SWARM and LITTLESUR (Sebastian Andrzej + Siewior). + * [mips/sb1-bcm91250a] Enable PATA_PLATFORM. + + [ Bastian Blank ] + * Update Xen patch. + + -- Ben Hutchings Sat, 01 May 2010 02:58:31 +0100 + +linux-2.6 (2.6.32-11) unstable; urgency=low + + [ Ben Hutchings ] + * [sparc] Provide io{read,write}{16,32}be() (Closes: #574421) + * Use libata-based drivers for most PATA controllers on all architectures + (previously applied only to x86) + * linux-base: Fix bugs and improve libata transition code: + - Handle duplicates in /etc/udev/rules.d/70-persistent-cd.rules + (Closes: #574630) + - Always attempt conversion if $DEBCONF_RECONFIGURE is set + - Never attempt conversion during a fresh installation (Closes: #576243) + - Convert disk IDs in crypttab (Closes: #575056) + - Redirect stdin and stdout of child processes to avoid interfering with + debconf (Closes: #574987) + - Report when hdparm.conf or mdadm.conf may need to be updated + (Closes: #576442) + - Where a device has both a UUID and a label, prefer to identify it by + UUID, consistent with fresh installations + - Do not use device labels including certain unsafe characters + (Closes: #576537) + * iwlwifi: Fix repeated warnings about tfds_in_queue (Closes: #574526) + * eeepc-laptop: Disable CPU speed control on 701 and 702 since it can + cause the system to hang (Closes: #559578) + * eeepc-laptop: Disable wireless hotplug on 1005HA, 1201N and 1005PE + since it disconnects the wrong device (Closes: #573607) + * linux-headers-*: Support postinst hooks in /etc/kernel/header_postinst.d, + thanks to Michael Gilbert (Closes: #569724) + * rt2860sta: Fix argument to linux_pci_unmap_single() (Closes: #575726) + * nouveau: nv50: Implement ctxprog/state generation + * phylib: Support PHY module autoloading (Closes: #553024) + * [x86] Add ramzswap driver (Closes: #573912) + + [ maximilian attems] + * [alpha, hppa] Disable oprofile as tracing code is unsupported here. + (closes: #574368) + * Update openvz patch to 14a9729fab67. (closes: #574598, #575189) + * [x86]: Disable FB_INTEL. (closes: #447575, #503766, #574401) + * ssb: do not read SPROM if it does not exist. + * ssb: Avoid null pointer dereference by aboves. + * Add stable 2.6.32.11. + - MIPS: Cleanup forgotten label_module_alloc in tlbex.c (Closes: #571305) + - ath5k: fix setup for CAB queue (closes: #576213) + - NFS: Prevent another deadlock in nfs_release_page() (Closes: #574348) + * Revert to keep ABI: + - hrtimer: Tune hrtimer_interrupt hang logic + + [ Moritz Muehlenhoff ] + * Add support for sh4 architecture, patch by Nobuhiro Iwamatsu + (Closes: #569034) + + [ Bastian Blank ] + * Update Xen patch. + - Fix free interrupt problem on uni-processor machines. + + [ Ian Campbell ] + * Include Xen hypervisor in reportbug "related to" list. + + -- maximilian attems Mon, 05 Apr 2010 20:31:15 +0200 + +linux-2.6 (2.6.32-10) unstable; urgency=low + + * The "Big Bang" release + + [ maximilian attems] + * tcp: fix ICMP-RTO war. + * Add stable 2.6.32.10. + - net/via-rhine: Fix scheduling while atomic bugs (closes: #549606) + - HID: remove TENX iBuddy from blacklist (Closes: #551312) + - USB: SIS USB2VGA DRIVER: support KAIREN's USB VGA adaptor + USB20SVGA-MB-PLUS (Closes: #565857) + * Bump ABI to 4. + * [x86] Add openvz flavour. + - adds ppp support (closes: #550975) + * Prevent nouveau from autoloading until xserver-xorg-video-nouveau lands. + + [ Moritz Muehlenhoff ] + * Enable CONFIG_KEYS_DEBUG_PROC_KEYS (Closes: #400932) + * Amend README.source with documentation on how to generate a + source tree with all patches applied (Closes: #509156) + * Document needed packages for preparatory packaging + steps (Closes: #548028) + + [ Aurelien Jarno ] + * Fix signal stack alignement on sparc64 (Closes: #569797) + + [ Bastian Blank ] + * Add support for Xen dom0 into its featureset. + (Closes: #499745, #503857, #504805, #505545, #506118, #507785, #509085, + #509733, #511963, #513835, #514511, #516223, #516374, #516635, #517048, + #519586, #520702, #522452, #524571, #524596, #526695, #533132, #533432, + #534880, #534978, #541227, #542299, #542614, #543489, #544525, #548345, + #554564, #554621, #559175, #559634) + * [alpha, amd64, i386, amd64, powerpc] Make all AGP driver built-in to + workaround race-condition between DRM and AGP. + + [ Ben Hutchings ] + * drm: Apply all changes from 2.6.33 and 2.6.33.1: + - Add nouveau driver + - i915: Fix disappearing mouse pointer (Closes: #551330) + - i915: Restore video overlay support (Closes: #560033) + - i915: Fix DDC on some systems by clearing BIOS GMBUS (Closes: #567747) + - radeon: Enable KMS support + * qla2xxx: Disable MSI/MSI-X on some chips or as selected by module parameter + (Closes: #572322) + - MSI is disabled on QLA24xx chips other than QLA2432 (MSI-X already was) + - MSI-X is disabled if qlx2enablemsix=2 + - MSI and MSI-X are disabled if qlx2enablemsix=0 + * [sparc64] Make prom entry spinlock NMI safe (Closes: #572442) + * firmware: Correct copyright information and add source for CIS files + * Fix first line of kernel-doc for a few functions so that they get valid + manual pages + * Remove /usr/include/drm from linux-libc-dev; let libdrm-dev provide it + again + * [x86] Enable rtl8192su driver using external firmware + * [x86] Use libata-based drivers for most PATA controllers (Closes: #444182): + - pata_triflex replaces triflex + - pata_atiixp replaces atiixp + - pata_ns87415 replaces ns87415 + - pata_sc1200 replaces sc1200 + - pata_cs5536 replaces cs5536 + - pata_amd replaces amd74xx + - pata_sis replaces sis5513 + - pata_rz1000 replaces rz1000 + - pata_efar replaces slc90e66 + - pata_pdc202xx_old replaces pdc202xx_old + - pata_pdc2027x replaces pdc202xx_new + - pata_cs5520 replaces cs5520 + - pata_cs5530 replaces cs5530 + - pata_cmd64x replaces cmd64x + - pata_sil680 replaces siimage + - pata_ali replaces alim15x3 + - pata_via replaces via82cxxx + - pata_serverworks replaces serverworks + - pata_artop replaces aec62xx + - pata_it821x replaces it821x + - ata_piix, pata_oldpiix, pata_mpiix mostly replace piix + - ata_generic, pata_ns87410, pata_netcell replace ide-pci-generic + * linux-base: Add libata transition script + * Hide sensitive information when including network configuration in bug + reports and running a different kernel version + + [ Martin Michlmayr ] + * Add some ARM patches from git: + - Update mach types + - eSATA SheevaPlug: basic board support + - eSATA SheevaPlug: configure SoC SATA interface + - eSATA SheevaPlug: correlate MPP to SD CD and SD WP + * [armel/kirkwood] Enable MACH_ESATA_SHEEVAPLUG. + + -- maximilian attems Tue, 16 Mar 2010 23:39:05 +0100 + +linux-2.6 (2.6.32-9) unstable; urgency=high + + [ Ben Hutchings ] + * Do not build obsolete lgs8gl5 driver + * [x86] Enable USB IP drivers (Closes: #568903) + * Ignore failure of lsusb when gathering information for bug reports + (Closes: #569725) + * macvlan: Add bridge, VEPA and private modes (Closes: #568756) + * [sparc] sunxvr500: Support Intergraph graphics chips again + (Closes: #508108) + * sfc: Apply fixes from 2.6.33 + * ath9k: Add support for AR2427 + * fs/exec.c: fix initial stack reservation (regression in 2.6.32.9) + + [ maximilian attems] + * Postinst don't refercence k-p related manpage. (closes: #542208) + * Postinst only write kernel-img.conf for palo boxes. + * Enable VT_HW_CONSOLE_BINDING for unbinding efifb. (closes: #569314) + * hwmon: Add driver for VIA CPU core temperature. + * wireless: report reasonable bitrate for MCS rates through wext. + * efifb: fix framebuffer handoff. (bugzilla.k.o #15151) + * Add stable 2.6.32.9: + - drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup. + (closes: #567747) + - futex: Handle futex value corruption gracefully. (CVE-2010-0623) + - futex_lock_pi() key refcnt fix. (CVE-2010-0623) + - Staging: fix rtl8187se compilation errors with mac80211. + (closes: #566726) + * r8169 patch for rx length check errors. (CVE-2009-4537) + * vgaarb: fix incorrect dereference of userspace pointer. + * Bump ABI to 3. + * drm/i915: give up on 8xx lid status. + * vgaarb: fix "target=default" passing. + * drm/radeon: block ability for userspace app to trash 0 page and beyond. + (closes: #550562) + + [ Bastian Blank ] + * Restrict access to sensitive SysRq keys by default. + * debian/rules.real: Install arch specific scripts. + + [ Moritz Muehlenhoff ] + * Set source format to 1.0 + + [ Martin Michlmayr ] + * [armel/iop32x] Enable ARCH_IQ80321 and ARCH_IQ31244 (Thanks Arnaud + Patard). + * [armel/kirkwood] Disable MTD_NAND_VERIFY_WRITE to avoid errors + with ubifs on OpenRD (Thanks Gert Doering) (Closes: #570407) + * OpenRD-Base: allow SD/UART1 selection (Closes: #571019) + * D-Link DNS-323 revision A1: implement power LED (Closes: 503172). + + -- maximilian attems Wed, 24 Feb 2010 17:06:27 +0100 + +linux-2.6 (2.6.32-8) unstable; urgency=high + + [ Bastian Blank ] + * Don't let default compiler flags escape into build. + + [ dann frazier ] + * KVM: PIT: control word is write-only (CVE-2010-0309) + * Fix potential crash with sys_move_pages (CVE-2010-0415) + + [ Ben Hutchings ] + * Build lgs8gxx driver along with cxusb (Closes: #568414) + * Revert incorrect change to powerpc clocksource setup (Closes: #568457) + * Add stable release 2.6.32.8: + - Remove TIF_ABI_PENDING bit from x86, sparc & powerpc, fixing + 32-bit userland/64-bit kernel breakage (Closes: #568416) + - connector: Delete buggy notification code. (CVE-2010-0410) + * [x86] KVM: Add IOPL/CPL checks to emulator, to prevent privilege + escalation within a guest. (CVE-2010-0298, CVE-2010-0306) + + [ Martin Michlmayr ] + * Implement power-off for D-Link DNS-323 rev B1 and fix the blinking + power LED (Erik Benada) (Closes: #503172). + + [ Aurelien Jarno ] + * Enable CONFIG_FB_CIRRUS and CONFIG_LOGO on 4kc-malta and 5kc-malta. + + -- Ben Hutchings Thu, 11 Feb 2010 02:17:17 +0000 + +linux-2.6 (2.6.32-7) unstable; urgency=low + + [ maximilian attems] + * [x86] Disable deprecated X86_CPU_DEBUG, causes boot failures. + * Newer Standards-Version 3.8.4 without changes. + + [ Ben Hutchings ] + * clocksource/events: Fix fallout of generic code changes + (Closes: #568030) + * Set ABI to 2. + + [ dann frazier ] + * Disable FUNCTION_TRACER due to performance/build issues. + (Closes: #568025) + * Split 'flush_old_exec' into two functions (CVE-2010-0307) + + -- dann frazier Wed, 03 Feb 2010 18:35:21 -0700 + +linux-2.6 (2.6.32-6) unstable; urgency=high + + [ Ben Hutchings ] + * Documentation/3c509: document ethtool support (Closes: #564743) + * Add MODULE_FIRMWARE declarations to several drivers that lacked them + * [x86] Update rt2860sta/rt2870sta firmware loader patch + - Accept 8K versions of rt2870.bin + - Fix hang on resume + * [x86] Enable rt3090sta using firmware loader + * Add stable release 2.6.32.4: + - untangle the do_mremap() mess (CVE-2010-0291) + - fasync: split 'fasync_helper()' into separate add/remove functions + (CVE-2009-4141) + - kernel/signal.c: fix kernel information leak with print-fatal-signals=1 + (CVE-2010-0003) + - netfilter: ebtables: enforce CAP_NET_ADMIN (CVE-2010-0007) + - quota: Fix dquot_transfer for filesystems different from ext4 + (Closes: #566532) + - audit: Fix memory management bugs (Closes: #562815) + + fix braindamage in audit_tree.c untag_chunk() + + fix more leaks in audit_tree.c tag_chunk() + - ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). (CVE-2010-0006) + - Fix DMA mapping for i915 driver (Closes: #558237, #567352) + + drm: remove address mask param for drm_pci_alloc() + + agp/intel-agp: Clear entire GTT on startup + * e1000,e1000e: Discard all fragments of received over-length packets + (CVE-2009-4536, CVE-2009-4538) + * Enable the '686' configuration options in '686-vserver' packages and + the '686-bigmem' configuration options in '686-bigmem-vserver' packages + (Closes: #566213) + * Add stable release 2.6.32.5: + - inotify: do not reuse watch descriptors (Closes: #561880) + - megaraid_sas: remove sysfs poll_mode_io world writeable permissions + (CVE-2009-3939) (Closes: #562975) + * Force distribution=UNRELEASED in debian/bin/test-patches so that it + works in released source packages + * Add stable release 2.6.32.6 + * postinst: Enable escape sequences in debconf notes (Closes: #566539) + * Add 3w-sas driver for LSI 3ware 9750 SAS controllers + * aufs2: Update to snapshot from 2010-01-25 (Closes: #567391) + * cdc_ether: Do not set link down initially; not all devices send link + change interrupts (Closes: #567689) + * Add stable release 2.6.32.7: + - clockevent: Don't remove broadcast device on halt or CPU hotplug + (Closes: #566547) + * sfc: Apply fixes from 2.6.33-rc{5,6} + * Set ABI to 1. + + [ Ian Campbell ] + * xen: Enable up to 32G of guest memory on i386. + + [ Julien Cristau ] + * drm/i915: disable powersave by default (closes: #564807) + + [ Bastian Blank ] + * Enable all NCP file system options. + * [amd64] Make AGP support again built-in to fullfill the not completely + documented dependency with GART IOMMU support. (closes: #561552) + * Enable dynamic minor allocations for ALSA, DVB and USB. (closes: #510593) + + [ maximilian attems ] + * [topconfig] set MEMORY_FAILURE, 9P_FSCACHE, INFINIBAND_IPOIB_CM + (closes: #565494), ITCO_VENDOR_SUPPORT (closes: #525232), PCIEASPM + (closes: #545417), HWPOISON_INJECT. + * Enable easier debugging of Power Managment code. (closes: #478315) + * Pass `DEB_MAINT_PARAMS' to hook scripts. (closes: #563161) + * Enable more mobile IPv6 needs. (closes: #528834) + + [ dann frazier ] + * [vserver] explicitly disable CFS_HARD_LIMITS + * Enable FUNCTION_TRACER and STACK_TRACER (Closes: #563847) + + -- Ben Hutchings Sun, 31 Jan 2010 23:09:28 +0000 + +linux-2.6 (2.6.32-5) unstable; urgency=low + + [ Ben Hutchings ] + * sfc: Apply fixes from 2.6.33-rc3 + * ath5k: Fix eeprom checksum check for custom sized eeproms + (Closes: #563136) + + [ maximilian attems ] + * topconfig unset USB_ISP1362_HCD FTBFS on armel and useless. + (closes: #564156) + * topconfig set PATA_ATP867X, PATA_RDC, SND_CS5535AUDIO, PM_RUNTIME, + ATA_VERBOSE_ERROR, RTC_DRV_WM831X, RTC_DRV_PCF2123, RTC_DRV_AB3100, + SND_HDA_PATCH_LOADER, DEVTMPFS (closes: #560040). + * [x86] set RTL8192E, TOPSTAR_LAPTOP, I2C_SCMI. + * Explicitly disable diverse staging drivers. + + -- Ben Hutchings Sun, 10 Jan 2010 03:22:23 +0000 + +linux-2.6 (2.6.32-4) unstable; urgency=low + + [ Ben Hutchings ] + * Correct comments referring to dpkg --print-installation-architecture + in maintainer scripts (Closes: #558077) + * modules: Skip empty sections when exporting section notes + (Closes: #563036) + * via-velocity: Give RX descriptors to the NIC later on open or MTU change + (Closes: #508527) + * dmfe/tulip: Let dmfe handle DM910x except for SPARC on-board chips + (Closes: #515533) + * Add stable release 2.6.32.3: + - ath5k: fix SWI calibration interrupt storm (may fix #563466) + - iwl3945: disable power save (Closes: #563693) + - rt2x00: Disable powersaving for rt61pci and rt2800pci (may fix #561087) + + [ maximilian attems ] + * topconfig set CAN_EMS_USB, BT_MRVL, BT_MRVL_SDIO, BE2ISCSI, SCSI_PMCRAID, + SCSI_BFA_FC, USB_GL860, USB_GSPCA_JEILINJ, I2C_SI4713, RADIO_SI4713, + RADIO_SI470X, DVB_USB_FRIIO, EDAC_I3200, SENSORS_TMP421, SENSORS_WM8350, + SBC_FITPC2_WATCHDOG, TOUCHSCREEN_MCS5000, UIO_PCI_GENERIC, KSZ8842, + KS8851, KS8851_MLL, MISDN_AVMFRITZ, MISDN_SPEEDFAX, MISDN_INFINEON, + MISDN_W6692, MISDN_NETJET, INPUT_WINBOND_CIR, BATTERY_DS2782, MFD_WM831X, + MFD_MC13783, MTD_SST25L, TOUCHSCREEN_USB_E2I, INPUT_WM831X_ON, + SENSORS_WM831X, WM831X_WATCHDOG, AB3100_OTP, REGULATOR_WM831X, + REGULATOR_MC13783, REGULATOR_AB3100, REGULATOR_TPS65023, + REGULATOR_TPS6507X, VIDEO_SAA7164, DVB_PT1, BACKLIGHT_WM831X, + SND_HDA_CODEC_CIRRUS, USB_ISP1362_HCD, LEDS_WM831X_STATUS, + MTD_ONENAND_GENERIC, B43_SDIO, B43_PHY_LP, KEYBOARD_ADP5588, QT2160, + KEYBOARD_LM8323, KEYBOARD_MAX7359, KEYBOARD_OPENCORES, MOUSE_PS2_SENTELIC, + WM831X_POWER. + * [x86] set ACPI_POWER_METER, ACPI_PROCESSOR_AGGREGATOR, SFI, + EDAC_DECODE_MCE. + * Set MOUSE_PS2_ELANTECH for various EeePc. (closes: #522920) + + [ dann frazier ] + * Fix vserver build on ia64 (Closes: #563356) + * Fix vserver build on s390 (Closes: #563355) + + [ Martin Michlmayr ] + * Report model information on armel when filing a bug. + * ARM: Add an earlyprintk debug console (Catalin Marinas) + * [armel] Enable EARLY_PRINTK. + + -- Ben Hutchings Thu, 07 Jan 2010 03:33:39 +0000 + +linux-2.6 (2.6.32-3) unstable; urgency=high + + * The "Not a Suitable Christmas Present" release + + [ Martin Michlmayr ] + * [armel/orion5x] Build MTD_CFI_AMDSTD into the kernel again since + it's needed on the D-Link DNS-323 (thanks Manuel Roeder). + (Closes: #562205) + + [ dann frazier ] + * Input: ALPS - add support for touchpads with 4-directional button + * Input: ALPS - add interleaved protocol support (Dell E6x00 series) + (Closes: #561589) + * Re-enable vserver + + [ Ben Hutchings ] + * sfc: Apply changes from 2.6.33-rc1 adding support for SFC9000 family + * Add stable release 2.6.32.2: + - KVM: x86 emulator: limit instructions to 15 bytes (CVE-2009-4031) + - hfs: fix a potential buffer overflow (CVE-2009-4020) + * radeon: fix crtc vblank update for r600 (regression in 2.6.32.2) + * ia64: Include header in ; fixes + FTBFS + * r8169: Allow RTL8168D v1 and v2 to be used without firmware files + (Closes: #561309) + * Enable vmxnet3 (VMware guest paravirt net driver) (Closes: #562046) + + -- Ben Hutchings Thu, 24 Dec 2009 04:28:55 +0000 + +linux-2.6 (2.6.32-2) unstable; urgency=high + + [ Bastian Blank ] + * Allow memory hot-add and -remove if possible. + * Enable USB suspend. + * Enable kernel samepage merging. (closes: #558200) + * [s390] + - Enable SECCOMP. + - Enable z/VM Watchdog Timer. + + [ Moritz Muehlenhoff ] + * Disable cryptoloop (Closes: #559755) + * Initial work on a README.source file as suggested by current policy + + [ Ben Hutchings ] + * aufs2: Update to snapshot from 2009-12-05 + * postinst: Fix failure paths in check for missing firmware + (Closes: #560263) + * atl1c: Fix system hang when link drops (Closes: #559577) + * netfilter: xtables: fix conntrack match v1 ipt-save output + (Closes: #556587) + + [ Aurelien Jarno ] + * Add support for the sparc64 architecture. + + [ dann frazier ] + * Add stable release 2.6.32.1: + - ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT (CVE-2009-4306) + - ext4: avoid divide by zero when trying to mount a corrupted file system + (CVE-2009-4307) + - ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT (CVE-2009-4131) + + -- Ben Hutchings Wed, 16 Dec 2009 21:42:49 +0000 + +linux-2.6 (2.6.32-1) unstable; urgency=low + + * New upstream release candidate: + - Fixes wifi with rt73usb (Closes: #555640) + + [ Martin Michlmayr ] + * [armel/kirkwood] Turn on USB_SUSPEND (on the request of a SheevaPlug + user). + * [mips/4kc-malta, mips/5kc-malta] Compile USB as a module rather than + into the kernel. + + [ Bastian Blank ] + * Enable PCI_MSI. + * [powerpc] Properly enable Apple PMU battery. + * [mips/mipsel] Drop remaining OSS drivers. + * [powerpc] Enable PCIe support. + * Move contents of linux-support package to /usr/share. + * Make linux-patch package depend against python. + * Use python-support instead of python-central. + * Always enable software watchdog support. + * Always enable complete USB mass storage support. + * [amd64, powerpc, sparc] Build USB support as module. + * [amd64] Build AGP support as module. + * Always enable dummy net driver support. + * Drop linux-tree package, it have no users left. + + [ Ben Hutchings ] + * Re-enable accidentally omitted drivers, thanks to Uwe Kleine-König + (Closes: #558011): + - Atheros wireless drivers (ar9170, ath5k, ath9k) + - TI wl12xx wireless drivers (wl1251_spi, wl1251_sdio and wl1271 + replace wl12xx) + - Silicon Labs Si470x FM Radio Receiver driver (radio-usb-si470x) + * Add 'removable' option to the mmc module. Setting this to 0 causes + MMC/SD cards to be assumed non-removable, and filesystems on them + will remain mounted over a suspend/resume cycle. (Closes: #504391) + * Add MODULE_FIRMWARE declarations to many drivers that lacked them, so + that missing firmware will be reported automatically during upgrades + * atl1e: Remove broken implementation of TSO for TCP/IPv6 + (Closes: #558426) and allow other hardware offloads to be disabled in + case they are also buggy + * usbnet: Set link down initially for drivers that update link state + (Closes: #444043) + * aufs2: Update to snapshot from 2009-11-29 + * i915: Enable auto-loading even though CONFIG_DRM_I915_KMS is not set + + [ dann frazier ] + * mac80211 (CVE-2009-4026, CVE-2009-4027): + - fix two remote exploits + - fix spurious delBA handling + + -- Bastian Blank Sun, 06 Dec 2009 18:17:39 +0100 + +linux-2.6 (2.6.32~rc8-1~experimental.1) unstable; urgency=low + + [ Ben Hutchings ] + * New upstream release candidate. + - slip: Clean up create and destroy (Closes: #408635) + - signal: Fix alternate signal stack check (Closes: #544905) + * README.Debian: Add brief information about building specific binary + packages (Closes: #546182) + * lgs8gxx: Remove firmware for lgs8g75 and use request_firmware() to + load it + * r8169: Remove firmware for RTL8168D v1 and v2 and use + request_firmware() to load it + * DocBook: Fix build breakage + * Hide WPA authentication parameters and comments when including network + configuration in bug reports + + [ Bastian Blank ] + * [mips] Don't force EMBEDDED on. + * [sparc] Don't builtin Ext2 support. + * Enable PERF_EVENTS, EVENT_PROFILE, CRYPTO_VMAC, CRYPTO_GHASH, TREE_RCU. + * Use SLUB as default SLAB allocator. + + [ Martin Michlmayr ] + * [armel] Make some options modular (since there's no reason for them + to be built in): FTL, NFTL, MTD_CFI_AMDSTD, MTD_CFI_STAA. + * [armel/orion5x, armel/kirkwood] Enable ISDN (requested by Markus + Krebs). + * Add patch from Albin Tonnerre to add HAVE_KERNEL_LZMA to arm. + * [armel] Enable KERNEL_LZMA, i.e. compress kernels with lzma to get + much better compression. + * [armel] Re-enable options that were turned off recently because of + size constraints: DEBUG_USER, DEBUG_KERNEL, BOOT_TRACER, ARM_UNWIND, + BLK_DEV_IO_TRACE and SECURITY_SELINUX. + + [ maximilian attems ] + * Simplify postinst nuke reverse symlinks handling. Patch from + Sebastian Andrzej Siewior . + + -- Bastian Blank Sat, 21 Nov 2009 21:41:45 +0100 + +linux-2.6 (2.6.31-2) unstable; urgency=low + + [ Martin Michlmayr ] + * [armel/orion5x, armel/kirkwood] Make sure VGA_CONSOLE is disabled, + otherwise the kernel won't boot. + * [armel/kirkwood] Enable CRYPTO_DEV_MV_CESA (Closes: #552270). + * [armel/kirkwood, armel/orion5x] Enable ORION_WATCHDOG (the + name of the config variable changed). + * Add OpenRD-Client support again. + * Add QNAP TS-41x support. + * [armel/orion5x, armel/kirkwood] Enable ISDN (requested by Markus + Krebs). + * Fix a build failure of the ISDN hisax elsa driver on ARM. + * mips: fix build of vmlinux.lds (Closes: #552422). + + [ Ben Hutchings ] + * postinst: Accept absolute paths in modules.dep generated by the + lenny version of module-init-tools (Closes: #552610) + * aufs2: Remove incorrect static assertion (Closes: #554120) + * Add stable release 2.6.31.6: + - fs: pipe.c null pointer dereference (CVE-2009-3547) + - KEYS: get_instantiation_keyring() should inc the keyring refcount + in all cases (CVE-2009-3624) + - netlink: fix typo in initialization (CVE-2009-3612) + * Undo PCMCIA ABI change in 2.6.31.6 + * Hide wireless keys and wake-on-LAN password when including network + configuration in bug reports + * Add Geode LX/NX to list of 686-class processors + + [ Bastian Blank ] + * [powerpc] Remove SMP warning from PowerMac cpufreq (Closes: #554124) + + [ maximilian Attems ] + * Really fix making a debian kernel installable without kernel-img.conf. + Thanks for patch to Sebastian Andrzej Siewior . + (closes: #555093). + + -- Ben Hutchings Sun, 15 Nov 2009 18:47:49 +0000 + +linux-2.6 (2.6.31-1) unstable; urgency=low + + [ Ben Hutchings ] + * Include aufs2, marked as staging (Closes: #541828) + * Include speakup modules under staging + * Add stable release 2.6.31.5 + * [x86_64] Enable NUMA_EMU (Closes: #541389) + + [ Martin Michlmayr ] + * CPUidle: always return with interrupts enabled. + * [armel/orion5x, armel/kirkwood] Enable FB since some Kirkwood + machines have a VGA chip (e.g. OpenRD-Client) and because it's + possible to use a DisplayLink USB virtual graphics adapter. + + [ maximilian attems ] + * [alpha] Disable SND_MIXART, causes gcc ICE. + * [x86] Enable modular X86_MCE_INJECT. + * [x86_32] Set LSM_MMAP_MIN_ADDR to zero to unbreak dosemu and 16-bit Wine, + ia64 and x86_64 to 65536 otherwise default to 32768. + * Unset UEVENT_HELPER_PATH to save some boot cycles. + + [ Bastian Blank ] + * Set ABI to 1. + * Enable Apple PMU battery. (closes: #544264) + + -- Bastian Blank Sat, 24 Oct 2009 19:17:30 +0200 + +linux-2.6 (2.6.31-1~experimental.2) experimental; urgency=low + + [ Ben Hutchings ] + * Include more information in bug reports: + - Model information + - Firmware package status + - Network configuration and status (optional) + - USB device list + * nfs: Avoid overrun when copying client IP address string + (Closes: #549002) + * Add support for DEB_BUILD_OPTIONS=parallel=N (Closes: #458560) + * sfc: Fix initial link state + * Improve package descriptions + - Clarify the differences between i386 flavours (Closes: #414690) + - Simplify wording of the description template + * Add stable release 2.6.31.3 + * Remove /usr/include/scsi from linux-libc-dev; these headers are + provided by libc6-dev (Closes: #550130) + * Remove dummy dot-files from linux-libc-dev + * hfsplus: Refuse to mount volumes larger than 2TB, which may otherwise + be corrupted (Closes: #550010) + * Add stable release 2.6.31.4 + - x86: Don't leak 64-bit kernel register values to 32-bit processes + (CVE-2009-2910) + - appletalk: Fix skb leak when ipddp interface is not loaded + (CVE-2009-2903) + + [ maximilian attems ] + * Add stable release 2.6.31.2 + - ax25: Fix signed comparison in the sockopt handler (CVE-2009-2909) + - PM / yenta: Fix cardbus suspend/resume regression (Closes: #522828) + + [ dann frazier ] + * [sparc] build zImage by default, fixes build + * [ia64] Fix call to elilo in postinst + + -- maximilian attems Mon, 12 Oct 2009 23:54:52 +0200 + +linux-2.6 (2.6.31-1~experimental.1) experimental; urgency=low + + * New upstream release. + - Support for W83627DHG-P (closes: #535646). + - Restore MAC address and MTU change operations on Orinoco and others + (Closes: #536455) + - Remove incorrect ACPI blacklisting of ASUS P4B266 mainboards + (Closes: #525625) + - atl1c fixes for Eee PC model 1005HA-H. (closes: #538410) + - parisc64-smp boot fix on J5600. (closes: #539369) + - parisc: Fix GOT overflow during module load on 64bit kernel + (closes: #539378) + - xfs: fix freeing of inodes not yet added to the inode cache + (Closes: #527517) + - IPv6: add "disable" module parameter support to ipv6.ko. + (closes: #542470) + - IPv6: avoid wraparound for expired preferred lifetime + (Closes: #518710) + - Fixes lockups with older dual-CPU machines (Closes: #542551) + - x86, pat: Allow ISA memory range uncacheable mapping requests + (Closes: #538159) + - drm/i915: Hook connector to encoder during load detection + (Closes: #522358) + - module: workaround duplicate section names (Closes: #545229) + - b43: Add fw capabilities (Closes: #533357) + - procfs: Fix idle time in uptime (Closes: #545981) + - e1000, e1000e, igb, ixgb, ixgbe: Fix initial link state + (Closes: #546041) + - CIFS: Handle port= mount option correctly (Closes: #524142) + - i915: Prevent screen flickering in X11 (Closes: #545377) + - hppa: Ensure broadcast tlb purge runs single threaded + (Closes: #539215) + + [ maximilian attems ] + * [powerpc64] Enable modular RTC_DRV_PS3, PS3_VRAM. + (Closes: #528694) + * Set new NETFILTER_XT_MATCH_OSF, FIREWIRE_NET, SND_CTXFI, USB_XHCI_HCD, + IEEE802154, CAN_DEV, EEPROM_MAX6875, DM_LOG_USERSPACE, DM_MULTIPATH_QL, + DM_MULTIPATH_ST, LIBERTAS_SPI, CAN_SJA1000, CAN_SJA1000_PLATFORM, + CAN_EMS_PCI, CAN_KVASER_PCI, CB710_CORE, CNIC, RT2800USB, + USB_NET_INT51X1, SND_LX6464ES, BLK_DEV_OSD, SCSI_BNX2_ISCSI, IWM, + IEEE802154_DRIVERS, TOUCHSCREEN_EETI, TOUCHSCREEN_W90X900, + BATTERY_MAX17040, SENSORS_TMP401, REGULATOR_USERSPACE_CONSUMER, + REGULATOR_MAX1586, REGULATOR_LP3971, MEDIA_SUPPORT, CUSE, + WL12XX, PPS, AB3100_CORE, SND_HDA_INPUT_JACK,MMC_SDHCI_PLTFM, + MMC_CB710, MMC_VIA_SDMMC, LEDS_LP3944, RTC_DRV_RX8025, + SMARTJOYPLUS_FF, USB_CDC_PHONET, USB_GSPCA_SN9C20X, MOUSE_SYNAPTICS_I2C, + PCIEAER_INJECT. + * Disable v4l1 ov511 and quickcam_messenger drivers. + * [x86_64] Enable HW_RANDOM_VIA. + * [x86] Keep divers staging stuff enabled. + * [x86] Enable RT3070, COMEDI_PCMCIA_DRIVERS, ACERHDF, EDAC_AMD64, + XEN_DEV_EVTCHN, XEN_SYS_HYPERVISOR, PERF_COUNTERS, + CC_STACKPROTECTOR, DEFAULT_MMAP_MIN_ADDR=65536. + * rtl8192su: remove firmware and disable. + * Newer Standards-Version 3.8.2 without changes. + * Allow install in chroot without do_initrd check for piuparts. + * Cleanup Maintainer scripts from ancient pre linux-2.6 assumptions. + (Also closes: #536333) + * Disable DEVKMEM. + * [ppc, sparc] Enable EFI_PARTITION. (closes: #540486) + * Disable old USB_DEVICE_CLASS. (Closes: #510279) + * Drop yaird initramfs generator support. + * Add stable release 2.6.31.1. + * Enable PREEMPT_VOLUNTARY. + + [ Ben Hutchings ] + * mga: remove unnecessary change from firmware-loading patch + * cxgb3: remove PHY firmware and use request_firmware() to load it + * Add firmware-linux-free package containing DFSG-free firmware + * av7110: include firmware source and binary + * snd-cs46xx: reenable using external firmware (closes: #464197, + but note that Debian cannot currently distribute the firmware), + thanks to Kalle Olavi Niemitalo + * ib_ipath: remove firmware for QLogic IBA7220 and use + request_firmware() to load it + * dvb-usb-af9005: remove initialisation script derived from Windows + driver and use request_firmware() to extract it at run-time + (closes: #494119) + * Add warning on upgrade to a new upstream version where the system + appears to be missing necessary firmware files (closes: #541702) + * qla1280: Release spinlock when requesting firmware (closes: #543244) + * r128: Add test for initialisation to all ioctls that require it + (closes: #541630) + * rt{2860,2870,3070}sta: Use existing CCITT CRC implementation on + firmware rather than adding an equivalent variant of ITU-T CRC + * rd: Build as a module since we do not require initrd support + * x86: Fix crash in text_poke_early() on 486-class processors + (Closes: #515982) + * intel-agp: Fix cache flushing on i8xx chipsets, avoiding graphics + corruption and GPU lock-ups (Closes: #541307) + * Generate architecture-qualified package relations as needed for + flavours that exist for multiple architectures (Closes: #278729) + * Prompt bug reporters to run the kernel version they're reporting on + or otherwise record boot messages + * Include PCI device list in bug reports even if the running kernel + doesn't match + + [ Martin Michlmayr ] + * [armel/orion5x, armel/kirkwood] Set GPIO_SYSFS=y since these + platforms have been converted to GPIOLIB. + * [armel/orion5x, armel/kirkwood] Disable MARVELL_PHY since it may + lead to conflicts with the built-in Ethernet. + * Add features from 2.6.32: + - crypto: mv_cesa - Add support for Orion5X crypto engine + * [armel/orion5x] Enable CRYPTO_DEV_MV_CESA. + * Disable SYS_HAS_EARLY_PRINTK on SGI IP22 to work around a hang + during bootup (Closes: #507557) + * [armel] Enable BPQETHER (on the request of Iain Young) and some + other AX25 drivers. + + [ Bastian Blank ] + * Disable staging drivers by default. + * Force all bugs against images to be reported to linux-2.6. + (closes: #539176) + * [arm] Remove old arm architecture. + * Use kernel architecture for libc-dev build. + + [ Moritz Muehlenhoff ] + * Fix Linus' name in copyright file (Closes: #530620) + * More verbose explanation on difference between Alpha flavour + (Closes: #497230) + * Add Vcs-Svn and Vcs-Browser stanzas pointing to the SVN branch + used for development in unstable. There are other branches + used for experimental (trunk), oldstable and stable, but Vcs-* + doesn't yet provide the ability to distinguish branches in a + more fine-grained manner. (Closes: #471495) + * Update Standards-Version to 3.8.3, no changes needed + * Disable PROM console support (Closes: #525958) + * Make the description of linux-support a little more verbose + (Closes: #400825) + * This upload fixes the following security issues: + - CVE-2009-3290 (2.6.31) + - CVE-2009-3288 (2.6.31.1) + - CVE-2009-3280 (2.6.31.1) + - CVE-2009-3234 (2.6.31.1) + - CVE-2009-3043 (2.6.31) + - CVE-2009-3002 (2.6.31) + - CVE-2009-3001 (2.6.31) + - CVE-2009-2844 (2.6.31) + - CVE-2009-2695 (2.6.31) + - CVE-2009-2691 (2.6.31) + + [ dann frazier ] + * n_tty: Fix echo race + * [ia64] Stop disabling CONFIG_HOTPLUG_CPU, which was blocking + CONFIG_KEXEC from being enabled + * [hppa] Disable CONFIG_AB3100_CORE, it fails to build + + -- maximilian attems Sun, 04 Oct 2009 20:27:05 +0200 + +linux-2.6 (2.6.30-8) unstable; urgency=low + + [ Martin Michlmayr ] + * Disable SYS_HAS_EARLY_PRINTK on SGI IP22 to work around a hang + during bootup (Closes: #507557) + * module: workaround duplicate section names to fix a panic on + boot on hppa (Closes: #545229). + * Add stable release 2.6.30.8. + * [armel/kirkwood] Add Marvell OpenRD-Client support (Dhaval Vasa). + Thanks Stefan Kaltenbrunner. + + -- Bastian Blank Fri, 25 Sep 2009 23:47:56 +0200 + +linux-2.6 (2.6.30-7) unstable; urgency=low + + [ Martin Michlmayr ] + * [armel/kirkwood] Enable eSATA on QNAP TS-219P (John Holland). + * [armel/kirkwood] Marvell OpenRD-Base board support (Dhaval Vasa). + * [armel/kirkwood] Initialise SATA for OpenRD-Base (Ron Lee). + * [armel/kirkwood] Enable SATA_AHCI. + + [ Ben Hutchings ] + * qla1280: Release spinlock when requesting firmware (closes: #543244) + * r128: Add test for initialisation to all ioctls that require it + (closes: #541630) + * [i386] Fix crash in text_poke_early() on 486-class processors + (Closes: #515982) + * intel-agp: Fix cache flushing on i8xx chipsets, avoiding graphics + corruption and GPU lock-ups (Closes: #541307) + * [i386] Allow ISA memory range uncacheable mapping requests + (Closes: #538159) + * Fix idle time in /proc/uptime (Closes: #545981) + * e1000, e1000e, igb, ixgb, ixgbe, sfc: Fix initial link state + (Closes: #546041) + + [ Bastian Blank ] + * Add stable release 2.6.30.5. + - drm/i915: Hook connector to encoder during load detection + (fixes tv/vga detect) (Closes: #522358) + * Add stable release 2.6.30.6. + - x86: Fix lock-up on SMP Pentium Pro, Pentium 2, Pentium 3, and + Athlon MP systems (Closes: #542551) + - NET: Fix information leaks from getsockname() (CVE-2009-3001, + CVE-2009-3002) + - iwl3945/rfkill: Reenable radio when hardware switch turned back on + (Closes: #530554) + * Bump ABI to 2. + * Apply missing fixes: + - block: fix sg SG_DXFER_TO_FROM_DEV regression. + - sched_rt: Fix overload bug on rt group scheduling. + * Add stable release 2.6.30.7. + * [sparc] Disable PROM console. (closes: #525958) + + -- Bastian Blank Wed, 16 Sep 2009 17:23:13 +0200 + +linux-2.6 (2.6.30-6) unstable; urgency=high + + [ Bastian Blank ] + * Set default low address space protection to default value. + + [ dann frazier ] + * Make sock_sendpage() use kernel_sendpage() (CVE-2009-2692) + * flat: fix uninitialized ptr with shared libs + * [parisc] isa-eeprom - Fix loff_t usage + * do_sigaltstack: avoid copying 'stack_t' as a structure to user space + * posix-timers: Fix oops in clock_nanosleep() with CLOCK_MONOTONIC_RAW + + -- Bastian Blank Sat, 15 Aug 2009 15:50:02 +0200 + +linux-2.6 (2.6.30-5) unstable; urgency=high + + [ maximilian attems ] + * Add stable release 2.6.30.4. + - cifs: fix regression with O_EXCL creates and optimize away lookup + (closes: #536426) + - ecryptfs: check tag 11 literal data buffer size (CVE-2009-2406) + - ecryptfs: check tag 3 package encrypted size (CVE-2009-2407) + * Ignore nf_conntrack ABI change. + * Revert to keep ABI: + - block: fix sg SG_DXFER_TO_FROM_DEV regression. + - sched_rt: Fix overload bug on rt group scheduling. + * [hppa]: Ignore any ABI (broke on 2.6.30.2). + + -- maximilian attems Mon, 03 Aug 2009 12:08:56 +0200 + +linux-2.6 (2.6.30-4) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.30.2. + * Fix pci access in x86 startup code. (closes: #537783) + * Ignore ABI changes. + * Include all plattform and mach specific headers on arm. + + [ maximilian attems ] + * Add stable release 2.6.30.3. + + -- Bastian Blank Thu, 30 Jul 2009 11:55:11 +0200 + +linux-2.6 (2.6.30-3) unstable; urgency=low + + [ Bastian Blank ] + * Build-Depend against cpio. (closes: #536196) + + [ Martin Michlmayr ] + * [arm] Export __cpu_flush_dcache_page. + + [ Aurelien Jarno ] + * [ia64] Fix asm/fpu.h includes. + + [ dann frazier ] + * Fix NULL pointer dereference in tun_chr_pool() (CVE-2009-1897) + * personality: fix PER_CLEAR_ON_SETID (CVE-2009-1895) + * Add -fno-delete-null-pointer-checks to CFLAGS + + -- Bastian Blank Sat, 18 Jul 2009 10:00:01 +0200 + +linux-2.6 (2.6.30-2) unstable; urgency=low + + [ dann frazier ] + * [powerpc] Use generic rtc (closes: #535354) + * [parisc] + - ensure broadcast tlb purge runs single threaded + - fix ldcw inline assembler + (closes: #535844) + + [ Bastian Blank ] + * Add stable release 2.6.30.1: + - KVM: x86: check for cr3 validity in ioctl_set_sregs (CVE-2009-2287) + - ALSA: intel8x0 - Fix PCM position craziness (closes: #533780) + - ide-cd: prevent null pointer deref via cdrom_newpc_intr (closes: #535342) + * Ignore ABI changes. + + [ maximilian attems ] + * [alpha] Add upstream smp buildfix. + * [parisc] Disable vxge and niu. + + -- Bastian Blank Tue, 07 Jul 2009 14:45:43 +0200 + +linux-2.6 (2.6.30-1) unstable; urgency=low + + * New upstream release. + - radeonfb: suspend/resume for ATI Mobility Radeon RV350. + (closes: #506964) + - tcp: fix MSG_PEEK race check (closes: #513695) + - e100 fixes (closes: #527056) + - mos7840: fix miscalculation of minor numbers (closes: #498293) + - reiserfs update (closes: #531804) + - bluetooth stack suspend/resume (closes: #508426, #529785) + - e1000e: Remove mutex_trylock and associated WARN on failure + (closes: #524699) + + [ maximilian attems ] + * [sparc] Enable BLK_DEV_CRYPTOLOOP. (closes: #521829) + * Enable PATA_JMICRON instead of legacy BLK_DEV_JMICRON. + (closes: #431500, #458493) + * Set new NILFS2, AT76C50X_USB, MWL8K, P54_SPI, AR9170_USB, + NETFILTER_XT_MATCH_CLUSTER, RDS, SCSI_MPT2SAS, SCSI_OSD_INITIATOR, + ETHOC, IGBVF, VXGE, TOUCHSCREEN_AD7877, SENSORS_ATK0110, + NETFILTER_XT_TARGET_LED, 3C359, HW_RANDOM_TIMERIOMEM, SENSORS_G760A, + SENSORS_LTC4215, SENSORS_LM95241, USB_GSPCA_MR97310A, USB_GSPCA_SQ905, + USB_GSPCA_SQ905C, USB_PWC_INPUT_EVDEV, DVB_USB_CE6230, SND_INDIGOIOX, + SND_INDIGODJX, USB_SERIAL_CP210X, USB_SERIAL_QUALCOMM, + USB_SERIAL_SYMBOL, ISL29003, SERIAL_MAX3100, VIDEO_HDPVR, VIDEO_CX231XX, + DRAGONRISE_FF, LEDS_LP5521, LEDS_DAC124S085, LEDS_BD2802, + UIO_AEC, CRYPTO_ZLIB, REGULATOR_FIXED_VOLTAGE, NOP_USB_XCEIV, + POHMELFS, FSCACHE, CACHEFILES, EXOFS, NFS_FSCACHE, AFS_FSCACHE, + MTD_NAND_NANDSIM, STRIP_ASM_SYMS, FCOE_FNIC, USB_NET_CDC_EEM, + PCI_IOV, ASYNC_TX_DMA, ROMFS_BACKED_BY_BOTH, DETECT_HUNG_TASK. + * [amd64, i386] Set new DELL_WMI, EDAC_AMD8131, EDAC_AMD8111, X86_PAT, DMAR, + X86_CPU_DEBUG, CRYPTO_AES_NI_INTEL, X86_X2APIC. + * Newer Standards-Version 3.8.1 without changes. + * xfs: fix freeing memory in xfs_getbmap(). + + [ Ben Hutchings ] + * Remove firmware from drivers/staging (closes: #521553) + - make rt2860sta and rt2870sta use request_firmware(), + thanks to Darren Salt + * Remove some sourceless firmware not included in Debian kernel images + + [ Martin Michlmayr ] + * [mipsel/r5k-cobalt] Enable SCSI_SYM53C8XX_2 (closes: #526836). + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Turn off BOOT_TRACER, + BLK_DEV_IO_TRACE, CONTEXT_SWITCH_TRACER, ARM_UNWIND and + SECURITY_SELINUX because of size constraints. + * [mips/sb1-bcm91250a] There is a platform PATA driver for SWARM IDE + these days, so disable IDE and build in ATA, SCSI and BLK_DEV_SD. + * [mips/sb1-bcm91250a, mips/sb1a-bcm91480b] Compile in SB1250_MAC and + BROADCOM_PHY. + * [mips/r4k-ip22] Enable NET_ISA and various ISA network modules on + the request of Damian Dimmich since they might be useful on the + SGI Indigo2. + * Add patches from git.marvell.com: + - alternative copy_to_user: more precise fallback threshold + - lower overhead with alternative copy_to_user for small copies + - Kirkwood: Add CPU idle driver + - Kirkwood: clock gating for unused peripherals + + [ Aurelien Jarno ] + * [mips(el)/sb1-bcm91250a] Set CONFIG_SCSI_AIC7XXX=y, it is needed + on the build daemons. + * topconfig set CONFIG_RD_GZIP, CONFIG_RD_BZIP2, CONFIG_RD_LZMA. + + [ Bastian Blank ] + * [i386] Disable PentiumPro errata workaround. + * [i386] Enable support for big SMP systems. + * Disable OSS. + * [s390] Use Sparse Memory layout. + * [amd64, i386, powerpc, sparc] Make IPv6 support built-in. + * Centralize Sound core options. + * Centralize Power Management options. + * Centralize CPU Frequency scaling options. + * [sparc] Enable CPU Frequency scaling. + * Enable Network console logging support. + * [s390/s390x-tape] Add image. + * [s390/s390, s390/s390-tape] Remove images. + * [i386/486] Enable High Memory Support. + * [i386] Allocate pagetables from High Memory. + * [amd64, i386] Write protect kernel read-only data structures. + * [amd64, i386] Make kernel relocatable. + * Move images and headers into kernel section. + + [ dann frazier ] + * Enable bnx2x, using firmware-split patches from net-next and mirroring + the per-subarch config settings used for bnx2 + + -- Bastian Blank Sun, 14 Jun 2009 11:45:08 +0200 + +linux-2.6 (2.6.29-5) unstable; urgency=low + + [ dann frazier ] + * [ia64] Backport rtc-efi driver from mainline + + [ maximilian attems ] + * qla1280: Fix off-by-some error in firmware loading. (closes: #527265) + + [ Martin Michlmayr ] + * Broadcom SB: fix locking in set_irq_affinity. + * mmc: load mvsdio automatically when it's a platform device. + * mmc: mvsdio: ignore high speed timing requests from the core + * USB: ftdi_sio: add vendor/product id for the Marvell SheevaPlug. + + [ Bastian Blank ] + * Add stable release 2.6.29.3: + - ath9k: Fix FIF_BCN_PRBRESP_PROMISC handling + - tracing: x86, mmiotrace: fix range test + - sched: account system time properly + - rndis_wlan: fix initialization order for workqueue&workers + - mm: fix Committed_AS underflow on large NR_CPUS environment + - Ignore madvise(MADV_WILLNEED) for hugetlbfs-backed regions + - clockevents: prevent endless loop in tick_handle_periodic() + - intel-iommu: Avoid panic() for DRHD at address zero. + - intel-iommu: Fix oops in device_to_iommu() when devices not found. + - intel-iommu: Fix device-to-iommu mapping for PCI-PCI bridges. + - cs5536: define dma_sff_read_status() method + - proc: avoid information leaks to non-privileged processes + - ath5k: fix buffer overrun in rate debug code + - mv643xx_eth: OOM handling fixes + - mv643xx_eth: 64bit mib counter read fix + - check_unsafe_exec: s/lock_task_sighand/rcu_read_lock/ + - do_execve() must not clear fs->in_exec if it was set by another thread + - check_unsafe_exec() doesn't care about signal handlers sharing + - New locking/refcounting for fs_struct + - Take fs_struct handling to new file (fs/fs_struct.c) + - Get rid of bumping fs_struct refcount in pivot_root(2) + - Kill unsharing fs_struct in __set_personality() + - Annotate struct fs_struct's usage count restriction + - fix setuid sometimes wouldn't + - fix setuid sometimes doesn't + - compat_do_execve should unshare_files + - powerpc: Sanitize stack pointer in signal handling code + - ACPI: Revert conflicting workaround for BIOS w/ mangled PRT entries + - USB: serial: fix lifetime and locking problems + - ptrace: ptrace_attach: fix the usage of ->cred_exec_mutex + - kbuild: fix Module.markers permission error under cygwin + - pagemap: require aligned-length, non-null reads of /proc/pid/pagemap + - drm/i915: allow tiled front buffers on 965+ + - bio: fix memcpy corruption in bio_copy_user_iov() + - PCI quirk: disable MSI on VIA VT3364 chipsets + - ASoC: Fix offset of freqmode in WM8580 PLL configuration + - x86/PCI: don't call e820_all_mapped with -1 in the mmconfig case + - x86-64: fix FPU corruption with signals and preemption + - drm/i915: add support for G41 chipset + - unreached code in selinux_ip_postroute_iptables_compat() (CVE-2009-1184) + - PCI: fix incorrect mask of PM No_Soft_Reset bit + - exit_notify: kill the wrong capable(CAP_KILL) check (CVE-2009-1337) + - crypto: ixp4xx - Fix handling of chained sg buffers + - block: include empty disks in /proc/diskstats + - b44: Use kernel DMA addresses for the kernel DMA API + - virtio-rng: Remove false BUG for spurious callbacks + - USB: Unusual Device support for Gold MP3 Player Energy + - KVM: x86: release time_page on vcpu destruction + - KVM: Fix overlapping check for memory slots + - KVM: MMU: disable global page optimization + - KVM: MMU: Fix off-by-one calculating large page count + - mac80211: fix basic rate bitmap calculation + - ALSA: us122l: add snd_us122l_free() + - thinkpad-acpi: fix LED blinking through timer trigger + - b43: Refresh RX poison on buffer recycling + - b43: Poison RX buffers + - mac80211: Fix bug in getting rx status for frames pending in reorder + buffer + - forcedeth: Fix resume from hibernation regression. + * Ignore ABI change. + + [ Jurij Smakov ] + * [sparc] Fix build + + -- Bastian Blank Sun, 17 May 2009 12:45:13 +0200 + +linux-2.6 (2.6.29-4) unstable; urgency=low + + [ maximilian attems ] + * drm/i915: allow tiled front buffers on 965+. + + [ Martin Michlmayr ] + * Extend erase timeout in M25P80 SPI Flash driver (Peter Horton). + * Add driver for GMT G760A fan speed PWM controller chip. + * [arm/orion5x] Enable SENSORS_G760A. + * Add patches from git.marvell.com: + - allow for alternative __copy_to_user/__clear_user implementations + - alternative copy_to_user/clear_user implementation copy_user + * [arm/orion5x, armel/kirkwood] Enable UACCESS_WITH_MEMCPY. + * [MMC] give Sandisk/Kingston SDHC cards some slack before the SWITCH + command. + + [ dann frazier ] + * [parisc] Fix macro expansion in atomic.h fixing PHONET compilation issue + * [parisc] reenable PHONET + * Btrfs: fix __ucmpdi2 compile bug on 32 bit builds + + [ Stephen R. Marenka ] + * [m68k] Add 2.6.29 patches. + * [m68k] Enable RTC for aranym (2.6.29 solution). + + [ Bastian Blank ] + * Add stable release 2.6.29.2: + - Bonding: fix zero address hole bug in arp_ip_target list + - skge: fix occasional BUG during MTU change + - scsi: mpt: suppress debugobjects warning + - hugetlbfs: return negative error code for bad mount option + - NFS: Fix the XDR iovec calculation in nfs3_xdr_setaclargs + - gso: Fix support for linear packets + - agp: zero pages before sending to userspace + - virtio: fix suspend when using virtio_balloon + - Revert "console ASCII glyph 1:1 mapping" + - Input: gameport - fix attach driver code + - x86, PAT: Remove page granularity tracking for vm_insert_pfn maps + - KVM: is_long_mode() should check for EFER.LMA + - KVM: VMX: Update necessary state when guest enters long mode + - KVM: fix kvm_vm_ioctl_deassign_device + - KVM: MMU: handle compound pages in kvm_is_mmio_pfn + - KVM: Reset PIT irq injection logic when the PIT IRQ is unmasked + - KVM: Interrupt mask notifiers for ioapic + - KVM: Add CONFIG_HAVE_KVM_IRQCHIP + - KVM: Fix missing smp tlb flush in invlpg + - USB: usb-storage: augment unusual_devs entry for Simple Tech/Datafab + - USB: fix oops in cdc-wdm in case of malformed descriptors + - USB: ftdi_sio: add vendor/project id for JETI specbos 1201 spectrometer + - usb gadget: fix ethernet link reports to ethtool + - x86: disable X86_PTRACE_BTS for now + - SCSI: sg: fix q->queue_lock on scsi_error_handler path + - SCSI: sg: avoid blk_put_request/blk_rq_unmap_user in interrupt + - SCSI: sg: fix races with ioctl(SG_IO) + - SCSI: sg: fix races during device removal + - mm: pass correct mm when growing stack + - pata_hpt37x: fix HPT370 DMA timeouts + - hpt366: fix HPT370 DMA timeouts + - powerpc: Fix data-corrupting bug in __futex_atomic_op + - ALSA: hda - Fix the cmd cache keys for amp verbs + - sfc: Match calls to netif_napi_add() and netif_napi_del() + - tty: Fix leak in ti-usb + - spi: spi_write_then_read() bugfixes + - add some long-missing capabilities to fs_mask + - hrtimer: fix rq->lock inversion (again) + - x86: fix broken irq migration logic while cleaning up multiple vectors + - sched: do not count frozen tasks toward load + - dm kcopyd: fix callback race + - dm kcopyd: prepare for callback race fix + - posix-timers: fix RLIMIT_CPU && setitimer(CPUCLOCK_PROF) + - posix-timers: fix RLIMIT_CPU && fork() + - posixtimers, sched: Fix posix clock monotonicity + - cap_prctl: don't set error to 0 at 'no_change' + - SCSI: libiscsi: fix iscsi pool error path + - SCSI: libiscsi: fix iscsi pool error path + - sparc64: Fix bug in ("sparc64: Flush TLB before releasing pages.") + - ALSA: hda - add missing comma in ad1884_slave_vols + - splice: fix deadlock in splicing to file + - netfilter: {ip, ip6, arp}_tables: fix incorrect loop detection + - kprobes: Fix locking imbalance in kretprobes + - acer-wmi: Blacklist Acer Aspire One + - crypto: shash - Fix unaligned calculation with short length + - net/netrom: Fix socket locking + - af_rose/x25: Sanity check the maximum user frame size + - dm table: fix upgrade mode race + - dm: path selector use module refcount directly + - dm target: use module refcount directly + - dm snapshot: avoid having two exceptions for the same chunk + - dm snapshot: avoid dropping lock in __find_pending_exception + - dm snapshot: refactor __find_pending_exception + - dm io: make sync_io uninterruptible + - dm raid1: switch read_record from kmalloc to slab to save memory + - vfs: skip I_CLEAR state inodes + - dm: preserve bi_io_vec when resubmitting bios + - ixgbe: Fix potential memory leak/driver panic issue while setting up Tx & + Rx ring parameters + - mm: do_xip_mapping_read: fix length calculation + - mm: define a UNIQUE value for AS_UNEVICTABLE flag + - sysctl: fix suid_dumpable and lease-break-time sysctls + - cpumask: fix slab corruption caused by alloc_cpumask_var_node() + - ide-atapi: start DMA after issuing a packet command + - ide: drivers/ide/ide-atapi.c needs + - V4L/DVB (10943): cx88: Prevent general protection fault on rmmod + - r8169: Reset IntrStatus after chip reset + - md/raid1 - don't assume newly allocated bvecs are initialised. + - SCSI: sg: fix iovec bugs introduced by the block layer conversion + - drm/i915: fix TV mode setting in property change + - drm/i915: only set TV mode when any property changed + - drm: Use pgprot_writecombine in GEM GTT mapping to get the right bits for + !PAT. + - drm/i915: check for -EINVAL from vm_insert_pfn + - drm/i915: Check for dev->primary->master before dereference. + - drm/i915: Sync crt hotplug detection with intel video driver + - drm/i915: Read the right SDVO register when detecting SVDO/HDMI. + - drm/i915: Change DCC tiling detection case to cover only mobile parts. + - dock: fix dereference after kfree() + - ACPI: cap off P-state transition latency from buggy BIOSes + - x86, setup: mark %esi as clobbered in E820 BIOS call + - tracing/core: fix early free of cpumasks + - rt2x00: Fix SLAB corruption during rmmod + - ext4: fix locking typo in mballoc which could cause soft lockup hangs + - ext4: fix typo which causes a memory leak on error path + - MIPS: Compat: Zero upper 32-bit of offset_high and offset_low. + - PCI/x86: detect host bridge config space size w/o using quirks + - ide: Fix code dealing with sleeping devices in do_ide_request() + - fbdev: fix info->lock deadlock in fbcon_event_notify() + - fbmem: fix fb_info->lock and mm->mmap_sem circular locking dependency + - security/smack: fix oops when setting a size 0 SMACK64 xattr + * Bump ABI to 2. + * [sparc] Make the kernels again 64bit. (closes: #525926) + + -- Bastian Blank Sun, 03 May 2009 09:38:42 +0200 + +linux-2.6 (2.6.29-3) unstable; urgency=low + + [ maximilian attems ] + * [powerpc] Pipe mkimage postinst call to stderr for debconf. + Thanks Jordi Mallach for the patch. (closes: #518231) + * [parisc] Disable PHONET. + * [sparc] Disable BTRFS. + + [ Bastian Blank ] + * [alpha] Fix location of kernel image. + * Add source link to headers packages. (closes: #523726) + + [ Martin Michlmayr ] + * Add some sata_mv fixes for Kirkwood from Marvell: + - use new sata phy register settings for new devices + - increate the IORDY timeout for the soc controllers + + -- maximilian attems Fri, 17 Apr 2009 10:36:03 +0200 + +linux-2.6 (2.6.29-2) unstable; urgency=low + + [ Martin Michlmayr ] + * [arm/ixp4xx] Build in LEDS_TRIGGER_TIMER (closes: #521141). + * [mips*/4kc-malta, mips*/5kc-malta] Build in RTC_DRV_CMOS. + + [ maximilian attems ] + * linux-libc-dev: Bump versioned replaces libdrm-dev. + * parisc: hardcode gcc-4.3 usage. + * Postrm cleanup new module-init-tools 3.7 files. + + [ Bastian Blank ] + * Install all needed Makefiles into common headers package. + (closes: #521472) + * Add stable release 2.6.29.1: + - V4L: v4l2-common: remove incorrect MODULE test + - sparc64: Fix reset hangs on Niagara systems. + - sparc64: Flush TLB before releasing pages. + - sparc64: Fix MM refcount check in smp_flush_tlb_pending(). + - KVM: MMU: Fix another largepage memory leak + - cfg80211: fix incorrect assumption on last_request for 11d + - lguest: fix spurious BUG_ON() on invalid guest stack. + - lguest: wire up pte_update/pte_update_defer + - VM, x86, PAT: Change is_linear_pfn_mapping to not use vm_pgoff + - x86: mtrr: don't modify RdDram/WrDram bits of fixed MTRRs + - x86: ptrace, bts: fix an unreachable statement + - x86: fix 64k corruption-check + - x86, uv: fix cpumask iterator in uv_bau_init() + - x86, PAT, PCI: Change vma prot in pci_mmap to reflect inherited prot + - Add a missing unlock_kernel() in raw_open() + - fuse: fix fuse_file_lseek returning with lock held + - ARM: 5435/1: fix compile warning in sanity_check_meminfo() + - ARM: twl4030 - leak fix + - ARM: fix leak in iop13xx/pci + - ARM: cumana: Fix a long standing bogon + - ARM: 5428/1: Module relocation update for R_ARM_V4BX + - ARM: pxa: fix overlay being un-necessarily initialized on pxa25x + - DVB: firedtv: FireDTV S2 problems with tuning solved + - cfg80211: force last_request to be set for OLD_REG if regdom is EU + - CIFS: Fix memory overwrite when saving nativeFileSystem field during mount + - ath5k: warn and correct rate for unknown hw rate indexes + - ath5k: disable MIB interrupts + - b43: fix b43_plcp_get_bitrate_idx_ofdm return type + - ath9k: fix dma mapping leak of rx buffer upon rmmod + - ath5k: use spin_lock_irqsave for beacon lock + - cifs: fix buffer format byte on NT Rename/hardlink + - ath9k: downgrade xmit queue full message to xmit debug + - KVM: SVM: set accessed bit for VMCB segment selectors + - KVM: VMX: Don't allow uninhibited access to EFER on i386 + - USB: add quirk to avoid config and interface strings + - USB: gadget: fix rndis regression + - USB: usb-storage: increase max_sectors for tape drives + - USB: fix USB_STORAGE_CYPRESS_ATACB + - USB: EHCI: add software retry for transaction errors + - xfrm: spin_lock() should be spin_unlock() in xfrm_state.c + - ipv6: Plug sk_buff leak in ipv6_rcv (net/ipv6/ip6_input.c) + - GRO: Disable GRO on legacy netif_rx path (closes: #521691) + - bridge: bad error handling when adding invalid ether address + - dnet: drivers/net/dnet.c needs + - udp: Wrong locking code in udp seq_file infrastructure + - netfilter: nf_conntrack_tcp: fix unaligned memory access in tcp_sack + + [ dann frazier ] + * bnx2: correct firmware revisions (closes: #522049) + * [mips] Zero upper 32-bits of compat llseek (closes: #521016) + + -- Bastian Blank Sat, 04 Apr 2009 15:13:33 +0200 + +linux-2.6 (2.6.29-1) unstable; urgency=low + + * New upstream release + - tg3 use request_firmware and firmware nuked. + - acenic use request_firmware and firmware nuked. + - e100 use request_firmware and firmware nuked. (closes: #494308) + - cassini use request_firmware and firmware nuked. + - starfire use request_firmware and firmware nuked. (closes: #501152) + - cxgb3 use request_firmware and firmware nuked. + - NR_CPUS setting no longer affects size of modules. (closes: #516709) + - orinoco: use KERN_DEBUG for link status messages. (closes: #447549) + - [CIFS] Fix oops in cifs_strfromUCS_le mounting to servers which do + not specify their OS. (closes: #463402) + - fixes conflict between and on mips + (closes: #519761) + + [ maximilian attems ] + * topconfig set new NET_NS, NET_SCH_DRR, NET_CLS_CGROUP, LIB80211, + SCSI_CXGB3_ISCSI, NATIONAL_PHY, STE10XP, LSI_ET1011C_PHY, BTRFS_FS, + SQUASHFS, PCI_STUB, WIMAX, MTD_LPDDR, EEPROM_AT24, EEPROM_AT25, + EEPROM_LEGACY, BLK_DEV_IT8172, SMSC9420, WIMAX_I2400M_USB, + WIMAX_I2400M_SDIO, MISDN_HFCUSB, SENSORS_ADT7475, SENSORS_LTC4245, + RADIO_TEA5764, SND_HDA_CODEC_INTELHDMI, RT2860, RT2870, RTL8187SE, + LIBFC, FCOE, ATL1C, JOYSTICK_WALKERA0701, TOUCHSCREEN_WACOM_W8001, + TOUCHSCREEN_TSC2007, W1_SLAVE_DS2431, WM8350_POWER, SOC_CAMERA_MT9T031, + SOC_CAMERA_TW9910, SOC_CAMERA_OV772X, USB_STV06XX, USB_GSPCA_OV534, + DVB_LGDT3304, WM8350_WATCHDOG, SMSC_SCH311X_WDT, SND_HRTIMER, + SND_HDA_RECONFIG, GREENASIA_FF, USB_SERIAL_SIEMENS_MPI, + USB_SERIAL_OPTICON, LEDS_ALIX2, LEDS_WM8350, OCFS2_FS_POSIX_ACL, + BTRFS_FS_POSIX_ACL, ATM_SOLOS, MFD_PCF50633, PCF50633_ADC, PCF50633_GPIO, + REGULATOR_PCF50633, DVB_S921, EDAC_I5400, RTC_DRV_PCF50633, + INPUT_PCF50633_PMU, CHARGER_PCF50633, DEVPTS_MULTIPLE_INSTANCES, + SCHED_OMIT_FRAME_POINTER, DCB, IXGBE_DCB, SFC_MTD, BE2NET, DNET. + * topconfig enable SND_HDA_HWDEP for sound debugging purpose. + * topconfig enable USB_HIDDEV (closes: #517771) + * [x86] set DELL_LAPTOP, COMEDI, X86_PTRACE_BTS, XENFS, XEN_COMPAT_XENFS, + X86_REROUTE_FOR_BROKEN_BOOT_IRQS, OPTIMIZE_INLINING. + * [x86] unset DRM_I915_KMS due to upgrade path from Lenny override with + modeset module param. + * temp.image.plain/preinst: Consistent output. + * [x86_64] set SPARSE_IRQ, NUMA_MIGRATE_IRQ_DESC, TREE_RCU. + * [x86_32] set BLK_DEV_CS5536. + * [powerpc] set PHANTOM, HP_ILO, MV643XX_ETH, MOUSE_BCM5974, VIRTUALIZATION. + * topconfig unset legacy SCSI_PROC_FS, PCMCIA_IOCTL, ACPI_PROCFS_POWER, + ACPI_PROC_EVENT. + + [ Bastian Blank ] + * Use external source directory for all builds. + * Use external source directory for all header packages. + * Use dh_prep. + * Update copyright file. + * [s390/s390] Disable BTRFS. + * [sparc] Use sparc as kernel architecture. + * Update kconfig report changes patch. + * [s390] Enable KVM. + * Use debhelper compat level 7. + + [ Martin Michlmayr ] + * [mips/r4k-ip22] Build in RTC_DRV_DS1286. + * [mips/r5k-ip32] Build in RTC_DRV_CMOS (Closes: #516775). + * [arm/versatile, arm/iop32x, arm/ixp4xx] Make LLC2 modular. + * [arm, mips, mipsel] Make MII modular. + * [arm/ixp4xx] Make IXP4XX_WATCHDOG modular. + * topconfig: Disable NET_DSA since this hardware is special purpose and + the option cannot be made modular at the moment and bloats the kernel + image too much. + * [arm, armel] Enable various V4L USB devices. (Closes: #518582) + * [arm/orion5x] Build the SENSORS_LM75 module since it's needed on the + D-Link DNS-323. + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable INPUT_TOUCHSCREEN. + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable INPUT_JOYDEV, GAMEPORT + and INPUT_JOYSTICK (Closes: #520433). + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Add a size check to ensure that + the kernel will fit in flash. + * Add patches from git.marvell.com to improve Kirkwood support: + - make gpio /input/output validation separate + - MPP initialization code + - SDIO driver for Marvell SoCs + - SDIO driver registration for DB6281 and RD6281 + - register internal devices in a common place + - Marvell SheevaPlug support + - SheevaPlug USB Power Enable setup + - SheevaPlug LED support + - Hook up I2C on Kirkwood + - Add support for QNAP TS-119/TS-219 Turbo NAS + * [armel/kirkwood] Add an image for Marvell's Kirkwood platform. + + [ Ben Hutchings ] + * Remove firmware from drivers and make them use request_firmware(): + - mga (closes: #502666) + - qla1280 (closes: #502667) + - r128 (closes: #494007) + - radeon (closes: #494009) + - tehuti (closes: #501153) + - typhoon (closes: #502669) + + -- Bastian Blank Tue, 24 Mar 2009 14:32:11 +0100 + +linux-2.6 (2.6.28-1) unstable; urgency=low + + * New upstream release + - new btusb. (closes: #505184) + - iwlagn driver for Intel Wifi Link 5100 and 5300. (closes: #501157) + - drm git branch vblank-rework merged. (closes: #456219) + - netfilter.h got in.h include. (closes: #487103) + - netlink errno propageted. (closes: #489340) + - agp g41 support (closes: #513228) + - Includes atl2 driver (Closes: #500065) + - Fixes loading of video module on Samsung systems + (Closes: #475319, #495697) + - Fix rf_kill handling of iwl3945 driver (Closes: #503688) + - Fix adjtimex frequency offset (Closes: #432877) + - Fix oopses with Canon PIXMA MP150 (Closes: #487725) + - Fix excessive interrrupts with compiz (Closes: #456219) + - dsp56k: use request_firmware and firmware nuked (closes: #494010) + - dabusb: use request_firmware and firmware nuked (closes: #502663) + - kaweth: use request_firmware and firmware nuked (closes: #502665) + + [ maximilian attems ] + * Reenable new Juju firewire stack. + * topconfig set ATH9K, IWL5000, IP_NF_SECURITY, IP6_NF_SECURITY, + BRIDGE_EBT_IP6, BT_HCIBTUSB, TOUCHSCREEN_INEXIO, TOUCHSCREEN_TOUCHIT213, + VIRTIO_CONSOLE, VIDEO_ZORAN_ZR36060, USB_VIDEO_CLASS_INPUT_EVDEV, + USB_GSPCA, USB_S2255, OCFS2_FS_STATS, OMFS_FS, CRYPTO_RMD128, + CRYPTO_RMD160, CRYPTO_RMD256, CRYPTO_RMD320, VLAN_8021Q_GVRP, HP_WMI, + COMPAL_LAPTOP, SCSI_DH, SCSI_DH_RDAC, SCSI_DH_HP_SW, SCSI_DH_EMC, + SCSI_DH_ALUA, MAC80211_HWSIM, USB_HSO, BLK_DEV_INTEGRITY, SGI_XP, SGI_GRU, + TLAN, ATM_IA, ATM_FORE200E, MISDN, I2C_HELPER_AUTO, I2C_ISCH, + I2C_NFORCE2_S4985, AT24, SENSORS_AD7414, SENSORS_ADCXX, + SOC_CAMERA_PLATFORM, VIDEO_SH_MOBILE_CEU, DVB_USB_DW2102, DVB_USB_ANYSEE, + DVB_SIANO_SMS1XXX, DVB_DRX397XD, MMC_SDHCI_PCI (closes: #507150), + MMC_SDRICOH_CS (closes: #509979), EDAC_I5100, RTC_DRV_M41T94, + RTC_DRV_DS1305, UBIFS, EXT4 (closes: #512266), CGROUP_FREEZER, + NETFILTER_TPROXY, NETFILTER_XT_TARGET_TPROXY, NETFILTER_XT_MATCH_RECENT, + NETFILTER_XT_MATCH_SOCKET, NET_ACT_SKBEDIT, PHONET, NET_9P_RDMA, ATL2, JME, + ENIC, MLX4_EN, USB_NET_SMSC95XX, I7300_IDLE, NET_SCH_MULTIQ, ICS932S401, + PANASONIC_LAPTOP, QLGE, LIBERTAS_THINFIRM, LIBERTAS_THINFIRM_USB, + INPUT_CM109, W1_SLAVE_BQ27000, SENSORS_ADT7462, SENSORS_MAX1111, + SENSORS_LIS3LV02D, MFD_WM8400, MFD_WM8350_I2C, SOC_CAMERA_MT9M111, + USB_M5602, USB_GSPCA_CONEX, USB_GSPCA_ETOMS, USB_GSPCA_FINEPIX, + USB_GSPCA_MARS, USB_GSPCA_OV519, USB_GSPCA_PAC207, USB_GSPCA_PAC7311, + USB_GSPCA_SONIXB, USB_GSPCA_SONIXJ, USB_GSPCA_SPCA500, USB_GSPCA_SPCA501, + USB_GSPCA_SPCA505, USB_GSPCA_SPCA506, USB_GSPCA_SPCA508, USB_GSPCA_SPCA561, + USB_GSPCA_STK014, USB_GSPCA_SUNPLUS, USB_GSPCA_T613, USB_GSPCA_TV8532, + USB_GSPCA_VC032X, USB_GSPCA_ZC3XX, C2PORT, C2PORT_DURAMAR_2150, + W83697UG_WDT, USB_MR800, DVB_USB_CINERGY_T2, DVB_USB_DTV5100, + DVB_USB_AF9015, DVB_DM1105, DVB_LGS8GL5, DVB_DUMMY_FE, + SND_HDA_CODEC_NVHDMI, SND_USB_US122L, USB_VST, LEDS_PCA9532, LEDS_HP_DISK, + LEDS_PCA955X, LEDS_TRIGGER_BACKLIGHT, EDAC_X38, RTC_DRV_RX8581, + RTC_DRV_DS1390, RTC_DRV_DS3234, RTC_DRV_DS1286, RTC_DRV_M48T35, + RTC_DRV_BQ4802, RTC_DRV_WM8350, UNEVICTABLE_LRU, MAC80211_RC_MINSTREL, + BATTERY_BQ27x00, REGULATOR, REGULATOR_BQ24022, REGULATOR_WM8350, + REGULATOR_WM8400, FB_VIA, FB_METRONOME, FB_MB862XX, UIO_SERCOS3, + CORE_DUMP_DEFAULT_ELF_HEADERS, NET_DSA, NET_DSA_MV88E6060, + NET_DSA_MV88E6131, NET_DSA_MV88E6123_61_65, IT87_WDT, + BACKLIGHT_MBP_NVIDIA, SND_HDA_INPUT_BEEP, USB_WUSB, USB_TMC, IDE_GD, + IDE_GD_ATA, IDE_GD_ATAPI, PCMCIA_IBMTR, USB_EMI62, USB_EMI26, USB_SEVSEG, + UWB, UWB_WLP, UWB_I1480U, UWB_I1480U_WLP, CRYPTO_FIPS, ANSI_CPRNG, + CRC_T10DIF, STAGING, ET131X, CRYPTO_ANSI_CPRNG, PRISM2_USB, HID_COMPAT, + SYSCTL_SYSCALL_CHECK, BOOT_TRACER. + * [x86] set MOUSE_BCM5974, X86_RESERVE_LOW_64K, OPROFILE_IBS, + MICROCODE_INTEL, MICROCODE_AMD, X86_VERBOSE_BOOTUP, MTRR_SANITIZER, + CRYPTO_CRC32C_INTEL, STRICT_DEVMEM. + * [x86_64] set AMD_IOMMU, INTR_REMAP. + * [x86_32] set TOUCHSCREEN_HTCPEN, MOUSE_PS2_OLPC. + * Add stable releases 2.6.28.1-6. + * Turn off SYSFS_DEPRECATED* for newer udev and proper /sys/. + * linux-libc-dev: Add versioned replaces libdrm-dev. (closes: #513604) + * topconfig: Enable MACVLAN. (closes: #504611) + * [ppc] BAYCOM_PAR, BAYCOM_EPP. + * [x86_64] set NR_CPUS to 512. (closes: #491309) + * [686-bigmem] set modular XEN_FBDEV_FRONTEND. + * Newer Standards-Version 3.8.0 without changes. + * Use update-initramfs for initramfs-tools. + * Fix preinst and postinst call to not use deprecated mkinitramfs-kpkg + interfaces. + + [ Martin Michlmayr ] + * [mips/r4k-ip22, mips/sb1-bcm91250a] Don't build in ISO9660. + * [mipsel/r5k-cobalt] Enable INPUT_COBALT_BTNS. + * [mipsel/r5k-cobalt] Enable the new Cobalt LCD driver (FB_COBALT). + * [mips/r4k-ip22] Enable the new ALSA sound driver (SND_SGI_HAL2). + * [arm/iop32x, arm/ixp4xx] Don't build in KEYBOARD_ATKBD, MOUSE_PS2, + SERIO, JFFS2_FS, and CRAMFS. + * [arm/iop32x, arm/ixp4xx] Unset DEBUG_KERNEL so the kernel will + fit in flash. + * [arm/orion5x] Unset FIXED_PHY to work around a clash with fixed + mdio bus and mv643xx_eth. + * Migrate arm, armel, mips and mipsel away from kernel-package. + + [ Ian Campbell ] + * [x86]: Enable Xen guest support in amd64 flavour. (closes: #495590) + + [ dann frazier ] + * [x86, ia64] Enable ACPI_PCI_SLOT + + [ Bastian Blank ] + * Make gcc-4.3 the default compiler. (closes: #463295) + * Add optional image size check. + * debian/rules.real: Setup image installation rules for alpha, hppa, + ia64 and sparc. + * Remove support to build images using kernel-package. + + -- maximilian attems Wed, 18 Feb 2009 16:36:04 +0100 + +linux-2.6 (2.6.26-12) unstable; urgency=high + + [ Ian Campbell ] + * xen: fix ACPI processor throttling for when processor id is -1. (closes: #502849) + + [ dann frazier ] + * Make sendmsg() block during UNIX garbage collection (CVE-2008-5300) + * Fix race conditions between inotify removal and umount (CVE-2008-5182) + * Fix DoS when calling svc_listen twice on the same socket while reading + /proc/net/atm/*vc (CVE-2008-5079) + + [ Bastian Blank ] + * [openvz, vserver] Fix descriptions. + * [sparc] Enable Sun Logical Domains support. (closes: #501684) + * Fix coexistence of pata_marvell and ahci. (closes: #507432) + * [sparc] Support Intergraph graphics chips. (closes: #508108) + + -- Bastian Blank Mon, 15 Dec 2008 12:57:18 +0100 + +linux-2.6 (2.6.26-11) unstable; urgency=low + + [ Bastian Blank ] + * [sparc] Reintroduce dummy PCI host controller to workaround broken X.org. + * [sparc] Fix size checks in PCI maps. + * Add stable release 2.6.26.8: + - netfilter: restore lost ifdef guarding defrag exception + - netfilter: snmp nat leaks memory in case of failure + - netfilter: xt_iprange: fix range inversion match + - ACPI: dock: avoid check _STA method + - ACPI: video: fix brightness allocation + - sparc64: Fix race in arch/sparc64/kernel/trampoline.S + - math-emu: Fix signalling of underflow and inexact while packing result. + - tcpv6: fix option space offsets with md5 + - net: Fix netdev_run_todo dead-lock + - scx200_i2c: Add missing class parameter + - DVB: s5h1411: Power down s5h1411 when not in use + - DVB: s5h1411: Perform s5h1411 soft reset after tuning + - DVB: s5h1411: bugfix: Setting serial or parallel mode could destroy bits + - V4L: pvrusb2: Keep MPEG PTSs from drifting away + - ACPI: Always report a sync event after a lid state change + - ALSA: use correct lock in snd_ctl_dev_disconnect() + - file caps: always start with clear bprm->caps_* + - libertas: fix buffer overrun + - net: Fix recursive descent in __scm_destroy(). + - SCSI: qla2xxx: Skip FDMI registration on ISP21xx/22xx parts. + (Closes: #502552) + - edac cell: fix incorrect edac_mode + - ext[234]: Avoid printk floods in the face of directory corruption + (CVE-2008-3528) + - gpiolib: fix oops in gpio_get_value_cansleep() + * Override ABI changes. + * [xen] Update description. (closes: #505961) + * Revert parts of 2.6.26.6 to fix resume breakage. (closes: #504167) + - clockevents: prevent multiple init/shutdown + - clockevents: broadcast fixup possible waiters + + [ dann frazier ] + * Fix buffer overflow in hfsplus (CVE-2008-4933) + * Fix BUG() in hfsplus (CVE-2008-4934) + * Fix stack corruption in hfs (CVE-2008-5025) + * Fix oops in tvaudio when controlling bass/treble (CVE-2008-5033) + + [ Martin Michlmayr ] + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable support for more partition + tables, including MAC_PARTITION (requested by Benoît Knecht). + * leds-pca9532: Fix memory leak and properly handle errors (Sven Wegener) + * leds-pca9532: Move i2c work to a workqueque (Riku Voipio). (closes: + #506116) + + -- Bastian Blank Wed, 26 Nov 2008 11:43:48 +0100 + +linux-2.6 (2.6.26-10) unstable; urgency=low + + [ dann frazier ] + * sctp: Fix possible kernel panic in sctp_sf_abort_violation (CVE-2008-4618) + + [ Martin Michlmayr ] + * DNS-323: add support for revision B1 machines (Matthew Palmer). + * ext3/ext4: Add support for non-native signed/unsigned htree hash + algorithms (Theodore Ts'o). (closes: #493957) + * [arm/ixp4xx] Enable USB_ACM (closes: #504723). + + [ Bastian Blank ] + * agp: Fix stolen memory counting on Intel G4X. (closes: #502606) + * Add stable release 2.6.26.7: + - security: avoid calling a NULL function pointer in drivers/video/tvaudio.c + - DVB: au0828: add support for another USB id for Hauppauge HVR950Q + - drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831) + - ACPI: Ignore _BQC object when registering backlight device + - hwmon: (it87) Prevent power-off on Shuttle SN68PT + - Check mapped ranges on sysfs resource files + - x86: avoid dereferencing beyond stack + THREAD_SIZE + - PCI: disable ASPM on pre-1.1 PCIe devices + - PCI: disable ASPM per ACPI FADT setting + - V4L/DVB (9053): fix buffer overflow in uvc-video + - V4L/DVB (8617): uvcvideo: don't use stack-based buffers for USB transfers. + - V4L/DVB (8498): uvcvideo: Return sensible min and max values when querying + a boolean control. + - V4L: zr36067: Fix RGBR pixel format + - V4L: bttv: Prevent NULL pointer dereference in radio_open + - libata: fix EH action overwriting in ata_eh_reset() + - libata: always do follow-up SRST if hardreset returned -EAGAIN + - fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles + - modules: fix module "notes" kobject leak + - b43legacy: Fix failure in rate-adjustment mechanism + - CIFS: make sure we have the right resume info before calling CIFSFindNext + - sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq + - tty: Termios locking - sort out real_tty confusions and lock reads + - x86, early_ioremap: fix fencepost error + - x86: improve UP kernel when CPU-hotplug and SMP is enabled + - x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + * [xen] Remove pte file workaround. + + [ Ian Campbell ] + * [xen] Disable usage of PAT. (closes: #503821) + + -- Bastian Blank Sat, 08 Nov 2008 10:50:58 +0100 + +linux-2.6 (2.6.26-9) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.26.6: + - mm owner: fix race between swapoff and exit + - rtc: fix kernel panic on second use of SIGIO nofitication + - fbcon: fix monochrome color value calculation + - ALSA: snd-powermac: HP detection for 1st iMac G3 SL + - ALSA: snd-powermac: mixers for PowerMac G4 AGP + - sparc64: Fix missing devices due to PCI bridge test in + of_create_pci_dev(). + - sparc64: Fix disappearing PCI devices on e3500. + - sparc64: Fix OOPS in psycho_pcierr_intr_other(). + - sparc64: Fix interrupt register calculations on Psycho and Sabre. + - sparc64: Fix PCI error interrupt registry on PSYCHO. + - udp: Fix rcv socket locking + - sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH + (CVE-2008-4576) + - sctp: do not enable peer features if we can't do them. + - ipsec: Fix pskb_expand_head corruption in xfrm_state_check_space + - netlink: fix overrun in attribute iteration + - niu: panic on reset + - ipv6: Fix OOPS in ip6_dst_lookup_tail(). + - XFRM,IPv6: initialize ip6_dst_blackhole_ops.kmem_cachep + - af_key: Free dumping state on socket close + - pcmcia: Fix broken abuse of dev->driver_data + - clockevents: remove WARN_ON which was used to gather information + - ntp: fix calculation of the next jiffie to trigger RTC sync + - x86: HPET: read back compare register before reading counter + - x86: HPET fix moronic 32/64bit thinko + - clockevents: broadcast fixup possible waiters + - HPET: make minimum reprogramming delta useful + - clockevents: prevent endless loop lockup + - clockevents: prevent multiple init/shutdown + - clockevents: enforce reprogram in oneshot setup + - clockevents: prevent endless loop in periodic broadcast handler + - clockevents: prevent clockevent event_handler ending up handler_noop + - x86: fix memmap=exactmap boot argument + - x86: add io delay quirk for Presario F700 + - ACPI: Avoid bogus EC timeout when EC is in Polling mode + - x86: fix SMP alternatives: use mutex instead of spinlock, text_poke is + sleepable + - rtc: fix deadlock + - mm: dirty page tracking race fix + - x86-64: fix overlap of modules and fixmap areas + - x86: PAT proper tracking of set_memory_uc and friends + - x86: fix oprofile + hibernation badness + - x86: fdiv bug detection fix + - rt2x00: Use ieee80211_hw->workqueue again + - x86: Fix 27-rc crash on vsmp due to paravirt during module load + - sg: disable interrupts inside sg_copy_buffer + - ocfs2: Increment the reference count of an already-active stack. + - APIC routing fix + - sched: fix process time monotonicity + - block: submit_bh() inadvertently discards barrier flag on a sync write + - x64, fpu: fix possible FPU leakage in error conditions + - x86-64: Clean up save/restore_i387() usage + - KVM: SVM: fix guest global tlb flushes with NPT + - KVM: SVM: fix random segfaults with NPT enabled + - ALSA: remove unneeded power_mutex lock in snd_pcm_drop + - ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*() + - ALSA: oxygen: fix distorted output on AK4396-based cards + - ALSA: hda - Fix model for Dell Inspiron 1525 + - SCSI: qla2xxx: Defer enablement of RISC interrupts until ISP + initialization completes. + - USB: fix hcd interrupt disabling + - smb.h: do not include linux/time.h in userspace + - pxa2xx_spi: fix build breakage + - pxa2xx_spi: chipselect bugfixes + - pxa2xx_spi: dma bugfixes + - mm: mark the correct zone as full when scanning zonelists + - async_tx: fix the bug in async_tx_run_dependencies + - drivers/mmc/card/block.c: fix refcount leak in mmc_block_open() + - ixgbe: initialize interrupt throttle rate + - i2c-dev: Return correct error code on class_create() failure + - x86-32: AMD c1e force timer broadcast late + * [x86] Update patch to detect not properly announced cmos RTC devices. + * [xen] Overtake hvc console by default. + + [ maximilian attems ] + * [openvz] ip: NULL pointer dereferrence in tcp_v(4|6)_send_ack + (closes: #500472) + * [openvz] unset NF_CONNTRACK_IPV6 for now until abi bump. + + [ Stephen R. Marenka ] + * [m68k] add patches to fix atari ethernec per Michael Schmitz: + atari-ethernec-IRQF_SHARED.diff and atari-ethernec-fixes.diff. + * [m68k] add mac-esp-fix-for-quadras-with-two-esp-chips.diff to fix macs + with dual scsi busses and a problem with xorg, per Finn Thain. + * [m68k] add atari-atari_keyb_init-operator-precedence.diff per + Michael Schmitz. + * [m68k] more mac patches, per Finn Thain. + + [ Martin Michlmayr ] + * [arm/ixp4xx] Enable USB_ATM and USB_SPEEDTOUCH (closes: #502182). + * [arm/iop32x, arm/orion5x] Likewise. + * DNS-323: read MAC address from flash (Matthew Palmer). + + [ dann frazier ] + * Restrict access to the DRM_I915_HWS_ADDR ioctl (CVE-2008-3831) + * Don't allow splicing to files opened with O_APPEND (CVE-2008-4554) + + -- Bastian Blank Sat, 18 Oct 2008 12:14:22 +0200 + +linux-2.6 (2.6.26-8) unstable; urgency=medium + + [ dann frazier ] + * [x86] Fix broken LDT access in VMI (CVE-2008-4410) + * ata: Fix off-by-one-error that causes errors when reading a + block on the LBA28-LBA48 boundary + * [s390] prevent ptrace padding area read/write in 31-bit mode + (CVE-2008-1514) + + [ Bastian Blank ] + * Fix generation of i386 Xen image information. + * [i386] Restrict the usage of long NOPs. (closes: #464962) + * Fix access to uninitialized user keyring. (closes: #500279) + * [x86] Fix detection of non-PNP RTC devices. (closes: #499230) + + -- Bastian Blank Thu, 09 Oct 2008 12:07:21 +0200 + +linux-2.6 (2.6.26-7) unstable; urgency=low + + [ Bastian Blank ] + * [xen] Add SuSE Xen patch. (closes: #495895) + * Only register notifiers in braille console if used, fixes Insert key. + (closes: #494374) + * Fix ACPI EC GPE storm detection. (closes: #494546) + * Disable useless support for ISP1760 USB host controller. + (closes: #498304) + * rt61pci: Add a sleep after firmware upload. (closes: #498828) + + [ Stephen R. Marenka ] + * [m68k] Set CONFIG_ATARI_ETHERNEC=m for atari, since it only works + in modular form. + * [m68k] Enable CONFIG_ADB_PMU68K=y for mac. + * [m68k] Add atari-aranym-nf-wrappers.diff patch to fix atari LBD + problems, set CONFIG_LBD=y for atari. + + [ Martin Michlmayr ] + * [arm/orion5x] Enable CONFIG_ATALK (requested by Ben Schwarz). + * [arm/versatile] Enable CONFIG_VFP. (closes: #499463) + * ath5k: Fix bad udelay calls on AR5210 code (Nick Kossifidis). + * [arm] No longer disable ATH5K. + + [ dann frazier ] + * Add missing capability checks in sbni_ioctl (CVE-2008-3525) + + -- Bastian Blank Wed, 01 Oct 2008 09:02:30 +0200 + +linux-2.6 (2.6.26-6) unstable; urgency=low + + [ maximilian attems ] + * [openvz] Enable checkpointing. (closes: #497292) + + [ Bastian Blank ] + * Allow forced module loading again. (closes: #494144) + * Set IEEE 802.11 (wireless) regulatory domain default to EU. + (closes: #497971) + * [i386] Enable IDE ACPI support. Override ABI changes. (closes: #470528) + * [i386/686-bigmem] Promote to generic subarch. (closes: #476120) + + [ Martin Michlmayr ] + * Fix dead 21041 ethernet after ifconfig down (Thomas Bogendoerfer). + + [ dann frazier ] + * [hppa] Enable the FPU before using it, fixes booting on A500s + with our CONFIG_PRINTK_TIME=y setting. (closes: #499458) + + -- Bastian Blank Wed, 24 Sep 2008 12:06:47 +0200 + +linux-2.6 (2.6.26-5) unstable; urgency=low + + [ Martin Michlmayr ] + * Backport power-off method for Kurobox Pro. + * [arm/versatile] Really enable CONFIG_RTC_DRV_PL031 (closes: #484432). + + [ Stephen R. Marenka ] + * [m68k] Set CONFIG_LBD=n for atari, since it conflicts with nfblock. + + [ Bastian Blank ] + * Reenable SiS SATA support. (closes: #496603) + * [amd64,i386] Disable new-style SiS PATA support. + * Add stable release 2.6.26.4: + - sata_mv: don't issue two DMA commands concurrently + - KVM: MMU: Fix torn shadow pte + - x86: work around MTRR mask setting, v2 + - nfsd: fix buffer overrun decoding NFSv4 acl (CVE-2008-3915) + - sunrpc: fix possible overrun on read of /proc/sys/sunrpc/transports + (CVE-2008-3911) + - r8169: balance pci_map / pci_unmap pair + - tg3: Fix firmware event timeouts + - crypto: authenc - Avoid using clobbered request pointer + - sparc64: Fix cmdline_memory_size handling bugs. + - sparc64: Fix overshoot in nid_range(). + - ipsec: Fix deadlock in xfrm_state management. (closes: #497796) + - sctp: fix random memory dereference with SCTP_HMAC_IDENT option. + - sctp: correct bounds check in sctp_setsockopt_auth_key + - sch_prio: Fix nla_parse_nested_compat() regression + - sctp: add verification checks to SCTP_AUTH_KEY option + - sctp: fix potential panics in the SCTP-AUTH API. + - udp: Drop socket lock for encapsulated packets + - pkt_sched: Fix actions referencing + - pkt_sched: Fix return value corruption in HTB and TBF. + - netns: Add network namespace argument to rt6_fill_node() and + ipv6_dev_get_saddr() + - ipv6: Fix OOPS, ip -f inet6 route get fec0::1, linux-2.6.26, + ip6_route_output, rt6_fill_node+0x175 (CVE-2008-3686) + - AX.25: Fix sysctl registration if !CONFIG_AX25_DAMA_SLAVE + - mm: make setup_zone_migrate_reserve() aware of overlapping nodes + - 8250: improve workaround for UARTs that don't re-assert THRE correctly + - rtc_time_to_tm: fix signed/unsigned arithmetic + - drivers/char/random.c: fix a race which can lead to a bogus BUG() + - cifs: fix O_APPEND on directio mounts + - atl1: disable TSO by default + - forcedeth: fix checksum flag + - bio: fix bio_copy_kern() handling of bio->bv_len + - bio: fix __bio_copy_iov() handling of bio->bv_len + - ALSA: oxygen: prevent muting of nonexistent AC97 controls + - S390 dasd: fix data size for PSF/PRSSD command + - x86: fix "kernel won't boot on a Cyrix MediaGXm (Geode)" + - x86: work around MTRR mask setting + - USB: cdc-acm: don't unlock acm->mutex on error path + - binfmt_misc: fix false -ENOEXEC when coupled with other binary handlers + - fbdefio: add set_page_dirty handler to deferred IO FB + - eeepc-laptop: fix use after free + - PCI: fix reference leak in pci_get_dev_by_id() + - cramfs: fix named-pipe handling + * Override ABI changes. + * [hppa] Disable new-style RTC support. Override ABI changes. + + [ maximilian attems ] + * openvz: Add upstream fixes up to 24cebf40278cb071ff8b. (closes: #497528) + + -- Bastian Blank Wed, 10 Sep 2008 12:55:16 +0200 + +linux-2.6 (2.6.26-4) unstable; urgency=low + + [ maximilian attems ] + * x86: Reset ACPI_PROCFS_POWER for Lenny as buggy apps depend on it. + (closes: #495541) + * x86: ACPI: Fix thermal shutdowns + * openvz: Add upstream fixes up to 0f14912e3d2251aff. (closes: #494384) + * Add stable release 2.6.26.3: + - USB: fix interface unregistration logic + - usb-storage: unusual_devs entries for iRiver T10 and Datafab CF+SM reader + - usb-serial: don't release unregistered minors + - usb-storage: revert DMA-alignment change for Wireless USB + - usb-storage: automatically recognize bad residues + - USB: ftdi_sio: Add USB Product Id for ELV HS485 + - qla2xxx: Set an rport's dev_loss_tmo value in a consistent manner. + - dccp: change L/R must have at least one byte in the dccpsf_val field + (CVE-2008-3276) + - KVM: Avoid instruction emulation when event delivery is pending + - cs5520: add enablebits checking + - acer-wmi: Fix wireless and bluetooth on early AMW0 v2 laptops + - USB: usb-storage: quirk around v1.11 firmware on Nikon D4 + - radeonfb: fix accel engine hangs + - radeon: misc corrections + - sparc64: Fix global reg snapshotting on self-cpu. + - sparc64: Do not clobber %g7 in setcontext() trap. + - sparc64: Fix end-of-stack checking in save_stack_trace(). + - sparc64: Fix recursion in stack overflow detection handling. + - sparc64: Make global reg dumping even more useful. + - sparc64: Implement IRQ stacks. + - sparc64: Handle stack trace attempts before irqstacks are setup. + - PCI: Limit VPD length for Broadcom 5708S + - ide: it821x in pass-through mode segfaults in 2.6.26-stable + - syncookies: Make sure ECN is disabled + - USB: ftdi_sio: add support for Luminance Stellaris Evaluation/Development + Kits + - i2c: Fix NULL pointer dereference in i2c_new_probed_device + - SCSI: hptiop: add more PCI device IDs + - SCSI: ses: fix VPD inquiry overrun + - SCSI: scsi_transport_spi: fix oops in revalidate + - CIFS: Fix compiler warning on 64-bit + - x86: fix spin_is_contended() + - matrox maven: fix a broken error path + - i2c: Let users select algorithm drivers manually again + - CIFS: properly account for new user= field in SPNEGO upcall string + allocation + - x86: fix setup code crashes on my old 486 box + - KVM: ia64: Fix irq disabling leak in error handling code + - mlock() fix return values + - rtl8187: Fix lockups due to concurrent access to config routine + - KVM: task switch: segment base is linear address + - KVM: task switch: use seg regs provided by subarch instead of reading + from GDT + - KVM: task switch: translate guest segment limit to virt-extension byte + granular field + - r8169: avoid thrashing PCI conf space above RTL_GIGA_MAC_VER_06 + - sparc64: FUTEX_OP_ANDN fix + - posix-timers: do_schedule_next_timer: fix the setting of ->si_overrun + - posix-timers: fix posix_timer_event() vs dequeue_signal() race + - vt8623fb: fix kernel oops + - ide-cd: fix endianity for the error message in cdrom_read_capacity + - qla2xxx: Add dev_loss_tmo_callbk/terminate_rport_io callback support. + - random32: seeding improvement + - CIFS: mount of IPC$ breaks with iget patch + - CIFS: if get root inode fails during mount, cleanup tree connection + - crypto: padlock - fix VIA PadLock instruction usage with + irq_ts_save/restore() + - ipvs: Fix possible deadlock in estimator code + - SCSI: block: Fix miscalculation of sg_io timeout in CDROM_SEND_PACKET + handler. + - ALSA: asoc: restrict sample rate and size in Freescale MPC8610 sound + drivers + - ALSA: ASoC: fix SNDCTL_DSP_SYNC support in Freescale 8610 sound drivers + - USB: pl2023: Remove USB id (4348:5523) handled by ch341 + - relay: fix "full buffer with exactly full last subbuffer" accounting + problem + - ipv6: Fix ip6_xmit to send fragments if ipfragok is true + - x86: amd opteron TOM2 mask val fix + + [ dann frazier ] + * [ia64] Fix boot-time hang w/ PRINTK_TIME by ensuring that cpu0 can access + per-cpu vars in early boot + * delay calls to sched_clock() until after sched_clock_init() to prevent + inaccurate printk timings on ia64 and presumably other architectures + + [ Ian Campbell ] + * [xen] import upstream fix to fb-defio driver used by Xen framebuffer. + + [ Bastian Blank ] + * [powerpc] Enable proper RTC support. (closes: #484693) + + [ Martin Michlmayr ] + * Add Marvell Orion fixes: + - sata_mv: add the Gen IIE flag to the SoC devices. + - sata_mv: don't avoid clearing interrupt status on SoC host adapters + + [ dann frazier ] + * Fix overflow condition in sctp_setsockopt_auth_key (CVE-2008-3526) + * Fix panics that may occur if SCTP AUTH is disabled (CVE-2008-3792) + * [x86] Fix memory leak in the copy_user routine + (CVE-2008-0598, closes: #490910) + + -- Bastian Blank Thu, 28 Aug 2008 08:46:42 +0200 + +linux-2.6 (2.6.26-3) unstable; urgency=low + + [ Bastian Blank ] + * Disable Emagic Audiowerk 2 soundcard support. The PCI IDs clashes with + many DVB cards. + * Update VServer patch to 2.3.0.35. + * [armel/versatile] Override ABI changes. + * [i386/686-bigmem] Add VServer image. + + [ Aurelien Jarno ] + * [armel/versatile] Disable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for + dynticks. (closes: #494842) + + [ Martin Michlmayr ] + * Fix PCIe on the Kurobox Pro (Lennert Buytenhek). + * Fix regressions caused by the "use software GSO for SG+CSUM capable + netdevices" patch: + - loopback: Enable TSO (Herbert Xu) + - net: Preserve netfilter attributes in skb_gso_segment using + __copy_skb_header (Herbert Xu) + + [ dann frazier ] + * [amd64] Fix typo in TOM2 mask value, preventing a hang on some opteron + systems. (closes: #494365) + + -- Bastian Blank Mon, 18 Aug 2008 15:34:38 +0200 + +linux-2.6 (2.6.26-2) unstable; urgency=low + + [ Bastian Blank ] + * [powerpc] Install arch/powerpc/lib/crtsavres.o into the headers, it is + used during module linking. + * Add stable release 2.6.26.1: + - Fix off-by-one error in iov_iter_advance() + - ath5k: don't enable MSI, we cannot handle it yet + - b43legacy: Release mutex in error handling code + - cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called already + - VFS: increase pseudo-filesystem block size to PAGE_SIZE + - markers: fix markers read barrier for multiple probes + - tmpfs: fix kernel BUG in shmem_delete_inode + - mpc52xx_psc_spi: fix block transfer + - ixgbe: remove device ID for unsupported device + - UML - Fix boot crash + - eCryptfs: use page_alloc not kmalloc to get a page of memory + - x86: fix kernel_physical_mapping_init() for large x86 systems + - DVB: cx23885: SRAM changes for the 885 and 887 silicon parts + - DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues + - DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not stream + - DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default + - V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1 + - V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner type + - V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated webcam + - V4L: uvcvideo: Make input device support optional + - V4L: uvcvideo: Don't free URB buffers on suspend + - V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume + - V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing + - DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009 + - V4L: cx18: Upgrade to newer firmware & update documentation + - ALSA: trident - pause s/pdif output + - myri10ge: do not use mgp->max_intr_slots before loading the firmware + - myri10ge: do not forget to setup the single slice pointers + - iop-adma: fix platform driver hotplug/coldplug + - sparc64: Do not define BIO_VMERGE_BOUNDARY. + - sparc64: Fix cpufreq notifier registry. + - sparc64: Fix lockdep issues in LDC protocol layer. + - tcp: Clear probes_out more aggressively in tcp_ack(). + - ARM: fix fls() for 64-bit arguments + - vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section + - rtc-at91rm9200: avoid spurious irqs + - ide-cd: fix oops when using growisofs + - x86: fix crash due to missing debugctlmsr on AMD K6-3 + - cpusets: fix wrong domain attr updates + - proc: fix /proc/*/pagemap some more + - Fix build on COMPAT platforms when CONFIG_EPOLL is disabled + - markers: fix duplicate modpost entry + - x86, suspend, acpi: enter Big Real Mode + - USB: fix usb serial pm counter decrement for disconnected interfaces + - x86 reboot quirks: add Dell Precision WorkStation T5400 + - Fix typos from signal_32/64.h merge + - rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall + - Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error + - KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts + - KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction + - KVM: x86 emulator: Fix HLT instruction + - KVM: VMX: Add ept_sync_context in flush_tlb + - KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held + - KVM: SVM: fix suspend/resume support + - KVM: VMX: Fix a wrong usage of vmcs_config + - isofs: fix minor filesystem corruption + - quota: fix possible infinite loop in quota code + - hdlcdrv: Fix CRC calculation. + - ipv6: __KERNEL__ ifdef struct ipv6_devconf + - ipv6: use timer pending + - udplite: Protection against coverage value wrap-around + - pxamci: trivial fix of DMA alignment register bit clearing + * [sparc] Install asm-sparc headers again. + * Force RTC on by default and set clock on startup. Override ABI changes. + * [i386, amd64] Make the CMOS RTC support builtin. (closes: #493567) + * Add stable release 2.6.26.2: + - sound: ensure device number is valid in snd_seq_oss_synth_make_info + - Ath5k: kill tasklets on shutdown + - Ath5k: fix memory corruption + - vfs: fix lookup on deleted directory + - ALSA: emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 + - ALSA: hda - Add missing Thinkpad Z60m support + - ALSA: hda - Fix DMA position inaccuracy + - ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode + - Add compat handler for PTRACE_GETSIGINFO + - Bluetooth: Signal user-space for HIDP and BNEP socket errors + - Input: i8042 - add Acer Aspire 1360 to nomux blacklist + - Input: i8042 - add Gericom Bellagio to nomux blacklist + - Input: i8042 - add Intel D845PESV to nopnp list + - jbd: fix race between free buffer and commit transaction + - NFS: Ensure we zap only the access and acl caches when setting new acls + - SCSI: ch: fix ch_remove oops + - linear: correct disk numbering error check + - netfilter: xt_time: fix time's time_mt()'s use of do_div() + - Kprobe smoke test lockdep warning + - Close race in md_probe + - x86: io delay - add checking for NULL early param + - x86: idle process - add checking for NULL early param + - SCSI: bsg: fix bsg_mutex hang with device removal + - netfilter: nf_nat_sip: c= is optional for session + - romfs_readpage: don't report errors for pages beyond i_size + - ftrace: remove unneeded documentation + + [ Martin Michlmayr ] + * METH: fix MAC address setup (Thomas Bogendoerfer) + * Export the reset button of the QNAP TS-409. + * net: use software GSO for SG+CSUM capable netdevices (Lennert Buytenhek) + + [ dann frazier ] + * device_create interface changed between 2.6.26 and 2.6.27; adjust hpilo + backport appropriately. Fixes a NULL pointer dereference in ilo_probe(). + + -- Bastian Blank Fri, 08 Aug 2008 08:09:00 +0200 + +linux-2.6 (2.6.26-1) unstable; urgency=low + + * New upstream release see http://kernelnewbies.org/Linux_2_6_26 + - UDF 2.50 support. (closes: #480910) + - mmc: increase power up delay (closes: #481190) + - snd-hda-intel suspend troubles fixed. (closes: #469727, #481613, #480034) + - cifs QueryUnixPathInfo fix (closes: #480995) + - r8169 oops in r8169_get_mac_version (closes: #471892) + - netfilter headers cleanup (closes: #482331) + - iwlwifi led support (closes: #469095) + - ath5k associates on AR5213A (closes: #463785) + - T42 suspend fix (closes: #485873) + - cpuidle acpi driver: fix oops on AC<->DC (closes: #477201) + - opti621 ide fixes (closes: #475561) + - ssh connection hangs with mac80211 (closes: #486089) + - ocfs2: Allow uid/gid/perm changes of symlinks (closes: #479475) + - xircom_tulip_cb: oboslete driver removed (closes: #416900) + - r8169 properly detect link status (closes: #487586) + - iwl3945 connection + support fixes (closes: #481436, #482196) + - longrun cpufreq min freq fix (closes: #468149) + - emux midi synthesizer SOFT_PEDAL-release event (closes: #474312) + - vmemmap fixes to use smaller pages (closes: #483489) + - x86 freeze fixes (closes: #482100, #482074) + - xen boot failure fix (closes: #488284) + - gdb read floating-point and SSE registers (closes: #485375) + - USB_PERSIST is default on (closes: #489963) + - alsa snd-hda Dell Inspiron fix (closes: #490649) + - ipw2200: queue direct scans (closes: #487721) + - better gcc-4.3 support (closes: #492301) + - iwl3945 monitor mode. (closes: #482387) + + [ maximilian attems ] + * topconfig set CRYPTO_CTS, SND_PCSP, SND_AW2, IWL4965_LEDS, IWL3945_LEDS, + RT2400PCI_LEDS, RT2500PCI_LEDS, RT61PCI_LEDS, RT2500USB_LEDS, + RT73USB_LEDS, NF_CT_PROTO_DCCP, BRIDGE_EBT_NFLOG, IWLWIFI_RFKILL, + USB_SERIAL_SPCP8X5, USB_STORAGE_CYPRESS_ATACB, DVB_ISL6405, DVB_AU8522, + VIDEO_EM28XX_DVB, VIDEO_CX18, VIDEO_AU0828, SOC_CAMERA_MT9M001, + SOC_CAMERA_MT9V022, DVB_TUNER_ITD1000, VIDEO_PVRUSB2_DVB, USB_C67X00_HCD, + USB_ISP1760_HCD, HTC_PASIC3, I2C_PCA_PLATFORM, TOUCHSCREEN_WM97XX, + JOYSTICK_ZHENHUA, SFC, ACCESSIBILITY, UIO_SMX, LOGIRUMBLEPAD2_FF, + A11Y_BRAILLE_CONSOLE, EDS_TRIGGER_DEFAULT_ON, VIDEO_ALLOW_V4L1, ATA_ACPI, + SATA_PMP, ATA_SFF, USB_SERIAL_MOTOROLA, USB_WDM, MAC80211_MESH, + IPV6_MROUTE, IPV6_PIMSM_V2, MTD_AR7_PARTS, SENSORS_IBMAEM, PATA_SCH, + CGROUP_DEVICE, USB_ISIGHTFW, HW_RANDOM_VIRTIO, RTC_DRV_FM3130, + USB_VIDEO_CLASS, CIFS_DFS_UPCALL. + * [amd64, i386]: KVM_CLOCK, KVM_GUEST, ISCSI_IBFT_FIND, ISCSI_IBFT, THERMAL, + EEEPC_LAPTOP, FB_N411, THERMAL_HWMON. + * [amd64]: Enable SCSI_DPT_I2O as 64 bit now. + * Reenable USB_SERIAL_EDGEPORT, USB_SERIAL_EDGEPORT_TI. (closes: #480195) + * Enable TCP_MD5SIG for BGP sessions. (closes: #443742) + * Add recognised alsa cards to bug report. + * topconfig: Enable HYSDN, no longer broken on smp. + * Add request_firmware patch for keyspan. (closes: #448900) + * [x86]: Enable dma engine. (closes: #473331) + * [ppc64]: Enable IBMEBUS and EHEA. (closes: #484888) + * topconfig: Enable PROFILING across all flavours. (closes: #484885) + * 486: enable OLPC support thanks Andres Salomon for merge. + Kconfig variable patch by Robert Millan (closes: #485063). + * Add request_firmware patch for ip2. + * Add request_firmware patch for acenic. (closes: #284221) + * [x86, ia64]: Set HPET_RTC_IRQ. (closes: #479709, #476970) + * [ppc]: Set SND_VIRMIDI. (closes: #290090) + * Fallback for userspace compatibility to old IEEE 1394 FireWire stack. + (closes: #451367, #475295, #478419) + * [x86]: Enable modular FB_UVESA. (closes: #473180) + * JFFS2 enable summary and compressor support. (closes: #488242) + * Add OLPC sdhci quirks. Thanks Andres Salomon + (closes: #485192) + * [ppc]: Enable RTC_DRV_PPC. (closes: #484693) Thanks for the patch to + Geoff Levand . + * Enable BLK_DEV_BSG for SG v4 support. + * [amd64] Enable default disabled memtest boot param. + * topconfig: Enable PATA_SIS instead of SATA_SIS. (closes: #485609) + * Add OpenVZ countainer flavour for amd64, i386. (closes: #392015) + * atl1e driver for Atheros(R) L1e Fast Ethernet. (closes: #492029) + * [ALSA] hda - Add ICH9 controller support (8086:2911) + * [ALSA] hda - support intel DG33 motherboards + * HP iLO driver + * Input: i8042 - add Arima-Rioworks HDAMB board to noloop list + (closes: #489190) thanks Guillaume Morin + + [ Martin Michlmayr ] + * [arm/orion5x] Update the config to reflect upstream renaming this + subarch. + * [arm/orion5x] Add some patches from Marvell's Orion tree: + - Feroceon: speed up flushing of the entire cache + - support for 5281 D0 stepping + - cache align destination pointer when copying memory for some processors + - cache align memset and memzero + - DMA engine driver for Marvell XOR engine + - Orion hardware watchdog support + * [arm/orion5x] Enable NETCONSOLE. + * [arm/orion5x] Disable more SCSI drivers. + * [arm/ixp4xx] Disable most ATA and more SCSI and network drivers. + * [arm/versatile] Enable CONFIG_RTC_DRV_PL031 (closes: #484432). + * [arm/iop32x, arm/ixp4xx, arm/versatile] Enable ARM_THUMB (closes: #484524). + * [arm/iop32x] Add LED driver for Thecus N2100 (Riku Voipio). + * [mips/r5k-ip32] Enable USB. + * [arm/orion5x, arm/iop32x, arm/ixp4xx, mipsel/r5k-cobalt] Enable HAMRADIO + on the request of Heinz Janssen. + * [arm/orion5x] Add support for QNAP TS-409 and HP mv2120; thanks + Sylver Bruneau. + * [mips] Add patches from Thomas Bogendoerfer: + - gbefb: fix cmap FIFO timeout (closes: #487257) + - IP32: Enable FAST-20 for onboard scsi + - IP32: SGI O2 sound driver + * [arm/ixp4xx] Add support for Freecom FSG-3 (Rod Whitby). + * [arm/ixp4xx] Enable CONFIG_MACH_DSMG600. + * [arm/iop32x] Unset NET_DMA since it actually leads to worse network + performance. + * [arm/orion5x] Fix a boot crash on the Kurobox Pro. + * [arm/orion5x] use better key codes for the TS-209/TS-409 buttons + * [arm/orion5x] export red SATA lights on TS-409, fix SATA presence/activity + * [arm] Enable KEXEC (closes: #492268). + * [arm/orion5x] Enable USB_PRINTER, requested by Mike Arthur. + * [arm/orion5x] Enable binfmt aout, x25, wireless and ATM. + * [arm/iop32x, arm/orion5x] Enable USB_SISUSBVGA. + * [arm] xfs: pack some shortform dir2 structures for the ARM old ABI + architecture (closes: #414932). + + [ Ian Campbell ] + * Readme.build updated on how to generate orig tarballs. + * Forward port vmlinuz-target.patch. + * Enable Xen save/restore and memory ballooning for Xen enabled kernels. + + [ Bastian Blank ] + * [powerpc/powerpc-miboot] Disable. (closes: #481358) + * [powerpc/powerpc64] Support IBM Cell based plattforms and PS3. + (closes: #462529) + * [s390] Synchronize block device, network bridge, network scheduler and CRC + support. + * [s390] Enable support for PCI-attached cryptographic adapters. + * Use control group as base for group CPU scheduler. This reenabled + traditional nice behaviour. (closes: #489223) + * Bump yaird dependencies to at least 0.0.13. + * Reenable SECCOMP. There is no longer additional overhead. + (closes: #474648) + * Export symbol required for MOL again. (closes: #460667) + * [powerpc/powerpc64] Fix console selection in LPAR environment. + (closes: #492703) + * Fix several userspace compatibility problems. + + [ Christian T. Steigies ] + * [m68k] enable SERIAL_CONSOLE for amiga and atari + + [ Thiemo Seufer ] + * [mips] Fix logic bug in atomic_sub_if_positive. + + [ Stephen R. Marenka ] + * [m68k] Update pending m68k patches. + * [m68k] Enable nfcon and nfblock for atari. + * [m68k] Change compiler to default. + + [ Aurelien Jarno ] + * [arm/versatile] Switch scsi/ext3/smc91x to modules now that we have proper + d-i support. Remove options defined in toplevel config file. + + -- Bastian Blank Wed, 30 Jul 2008 10:17:29 +0200 + +linux-2.6 (2.6.25-7) unstable; urgency=high + + * Add stable release 2.6.25.10: + - TTY: fix for tty operations bugs (CVE-2008-2812) + - sched: fix cpu hotplug + - IB/mthca: Clear ICM pages before handing to FW + - DRM: enable bus mastering on i915 at resume time + - x86: shift bits the right way in native_read_tscp + - x86_64 ptrace: fix sys32_ptrace task_struct leak (CVE-2008-3077) + - ptrace GET/SET FPXREGS broken + - futexes: fix fault handling in futex_lock_pi + - x86: fix cpu hotplug crash + * Add stable release 2.6.25.11: + - x86: fix ldt limit for 64 bit + + -- maximilian attems Mon, 14 Jul 2008 10:58:14 +0200 + +linux-2.6 (2.6.25-6) unstable; urgency=high + + [ maximilian attems ] + * Add stable release 2.6.25.7: + - double-free of inode on alloc_file() failure exit in create_write_pipe() + - m68k: Add ext2_find_{first,next}_bit() for ext4 + - bluetooth: fix locking bug in the rfcomm socket cleanup handling + - serial: fix enable_irq_wake/disable_irq_wake imbalance in serial_core.c + - bttv: Fix a deadlock in the bttv driver (closes: #487594) + - forcedeth: msi interrupts + - CPUFREQ: Fix format string bug. + - mmc: wbsd: initialize tasklets before requesting interrupt + - ecryptfs: fix missed mutex_unlock + - mac80211: send association event on IBSS create + - bluetooth: rfcomm_dev_state_change deadlock fix + - sunhv: Fix locking in non-paged I/O case. + - cassini: Only use chip checksum for ipv4 packets. + - ipwireless: Fix blocked sending + - net: Fix call to ->change_rx_flags(dev, IFF_MULTICAST) in + dev_change_flags() + - fbdev: export symbol fb_mode_option + - ipsec: Use the correct ip_local_out function + - tcp: fix skb vs fack_count out-of-sync condition + - tcp FRTO: Fix fallback to conventional recovery + - tcp FRTO: SACK variant is errorneously used with NewReno + - tcp FRTO: work-around inorder receivers + - tcp: Fix inconsistency source (CA_Open only when !tcp_left_out(tp)) + - l2tp: avoid skb truesize bug if headroom is increased + - l2tp: Fix possible WARN_ON from socket code when UDP socket is closed + - l2tp: Fix possible oops if transmitting or receiving when tunnel goes down + - ax25: Fix NULL pointer dereference and lockup. + - sound: emu10k1 - fix system hang with Audigy2 ZS Notebook PCMCIA card + - tcp: Allow send-limited cwnd to grow up to max_burst when gso disabled + - tcp: Limit cwnd growth when deferring for GSO + - af_key: Fix selector family initialization. + - hgafb: resource management fix + - cifs: fix oops on mount when CONFIG_CIFS_DFS_UPCALL is enabled + - b43: Fix controller restart crash + - ssb: Fix context assertion in ssb_pcicore_dev_irqvecs_enable + - eCryptfs: protect crypt_stat->flags in ecryptfs_open() + - cciss: add new hardware support + - ecryptfs: add missing lock around notify_change + - ecryptfs: clean up (un)lock_parent + - Add 'rd' alias to new brd ramdisk driver + - net_sched: cls_api: fix return value for non-existant classifiers + - vlan: Correctly handle device notifications for layered VLAN devices + - IB/umem: Avoid sign problems when demoting npages to integer + - x86: fix recursive dependencies + - can: Fix copy_from_user() results interpretation + - Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LIST + - tcp: TCP connection times out if ICMP frag needed is delayed + - ALSA: hda - Fix resume of auto-config mode with Realtek codecs + - netlink: Fix nla_parse_nested_compat() to call nla_parse() directly + * Add stable release 2.6.25.9: + - Add return value to reserve_bootmem_node() + - x86: use BOOTMEM_EXCLUSIVE on 32-bit + - sctp: Make sure N * sizeof(union sctp_addr) does not overflow. + - hwmon: (lm85) Fix function RANGE_TO_REG() + - hwmon: (adt7473) Initialize max_duty_at_overheat before use + - x86: set PAE PHYSICAL_MASK_SHIFT to 44 bits. + - Reinstate ZERO_PAGE optimization in 'get_user_pages()' and fix XIP + - watchdog: hpwdt: fix use of inline assembly + - Fix ZERO_PAGE breakage with vmware + - atl1: relax eeprom mac address error check + + [ Martin Michlmayr] + * [arm/orion5x] Enable INPUT_EVDEV and KEYBOARD_GPIO. + + [ Steve Langasek ] + * Enable CONFIG_CIFS_EXPERIMENTAL and CONFIG_CIFS_UPCALL, required for + CIFS mounts to be able to use Kerberos authentication. Closes: #480663. + + [ Bastian Blank ] + * Add stable release 2.6.25.8: + - x86: disable mwait for AMD family 10H/11H CPUs + - x86: remove mwait capability C-state check + - nf_conntrack_h323: fix memory leak in module initialization error path + - nf_conntrack_h323: fix module unload crash + - nf_conntrack: fix ctnetlink related crash in nf_nat_setup_info() + - SCSI: sr: fix corrupt CD data after media change and delay + - ACPICA: Ignore ACPI table signature for Load() operator + - scsi_host regression: fix scsi host leak + - b43: Fix possible NULL pointer dereference in DMA code + - b43: Fix noise calculation WARN_ON + - virtio_net: Fix skb->csum_start computation + - opti621: remove DMA support + - opti621: disable read prefetch + - Fix tty speed handling on 8250 + - x86-64: Fix "bytes left to copy" return value for copy_from_user() + * Fix alpha build due too inconsistent kallsyms data. + + -- maximilian attems Fri, 27 Jun 2008 00:33:53 +0200 + +linux-2.6 (2.6.25-5) unstable; urgency=low + + [ maximilian attems ] + [ Bastian Blank ] + * Reenable VServer images. + + [ maximilian attems ] + * Add stable release 2.6.25.5: + - asn1: additional sanity checking during BER decoding (CVE-2008-1673) + * Add stable release 2.6.25.6: + - atl1: fix 4G memory corruption bug + - capabilities: remain source compatible with 32-bit raw legacy capability + support. + - usb-serial: Use ftdi_sio driver for RATOC REX-USB60F + - cpufreq: fix null object access on Transmeta CPU + - Smack: fuse mount hang fix + - cgroups: remove node_ prefix_from ns subsystem + - XFS: Fix memory corruption with small buffer reads + - x86: don't read maxlvt before checking if APIC is mapped + - USB: option: add new Dell 5520 HSDPA variant + - md: do not compute parity unless it is on a failed drive + - md: fix uninitialized use of mddev->recovery_wait + - md: fix prexor vs sync_request race + - HID: split Numlock emulation quirk from HID_QUIRK_APPLE_HAS_FN. + - USB: do not handle device 1410:5010 in 'option' driver + - USB: unusual_devs: Add support for GI 0401 SD-Card interface + - USB: add Telstra NextG CDMA id to option driver + - USB: fix build errors in ohci-omap.c and ohci-sm501.c + - USB: add TELIT HDSPA UC864-E modem to option driver + - memory_hotplug: always initialize pageblock bitmap + - x86: fix bad pmd ffff810000207xxx(9090909090909090) + - USB: add Zoom Telephonics Model 3095F V.92 USB Mini External modem to + cdc-acm + - x86: prevent PGE flush from interruption/preemption + - IPoIB: Test for NULL broadcast object in ipiob_mcast_join_finish() + - i386: fix asm constraint in do_IRQ() + - i2c-nforce2: Disable the second SMBus channel on the DFI Lanparty NF4 + Expert + - i2c/max6875: Really prevent 24RF08 corruption + - brk: make sys_brk() honor COMPAT_BRK when computing lower bound + - Revert "PCI: remove default PCI expansion ROM memory allocation" + - PS3: gelic: fix memory leak + - eCryptfs: remove unnecessary page decrypt call + - netfilter: nf_conntrack_expect: fix error path unwind in + nf_conntrack_expect_init() + - netfilter: xt_connlimit: fix accouning when receive RST packet in + ESTABLISHED state + - netfilter: nf_conntrack_ipv6: fix inconsistent lock state in + nf_ct_frag6_gather() + - POWERPC Bolt in SLB entry for kernel stack on secondary cpus + - netfilter: xt_iprange: module aliases for xt_iprange + - x86: user_regset_view table fix for ia32 on 64-bit + - x86: if we cannot calibrate the TSC, we panic. + - CIFS: Fix UNC path prefix on QueryUnixPathInfo to have correct slash + - x86, fpu: fix CONFIG_PREEMPT=y corruption of application's FPU stack + - libata: force hardreset if link is in powersave mode + - x86: fix setup of cyc2ns in tsc_64.c + - x86: distangle user disabled TSC from unstable + - x86: disable TSC for sched_clock() when calibration failed + - pagemap: fix bug in add_to_pagemap, require aligned-length reads of + /proc/pid/pagemap + - ext3/4: fix uninitialized bs in ext3/4_xattr_set_handle() + - proc: calculate the correct /proc/ link count + - CPUFREQ: Make acpi-cpufreq more robust against BIOS freq changes behind + our back. + - USB: remove PICDEM FS USB demo (04d8:000c) device from ldusb + - types.h: don't expose struct ustat to userspace + + [ Bastian Blank ] + * Ignore ABI change in internal XFS symbol. + + -- Bastian Blank Thu, 12 Jun 2008 08:47:11 +0200 + +linux-2.6 (2.6.25-4) unstable; urgency=low + + [ maximilian attems ] + * Fix arm Kconfig logic disabling random drivers. (closes: #481410) + * Add stable release 2.6.25.4: + - OHCI: fix regression upon awakening from hibernation + - V4L/DVB (7473): PATCH for various Dibcom based devices + - {nfnetlink, ip, ip6}_queue: fix skb_over_panic when enlarging packets + - dccp: return -EINVAL on invalid feature length + - md: fix raid5 'repair' operations + - sparc: Fix SA_ONSTACK signal handling. + - sparc: Fix fork/clone/vfork system call restart. + - sparc64: Stop creating dummy root PCI host controller devices. + - sparc64: Fix wedged irq regression. + - SPARC64: Fix args to 64-bit sys_semctl() via sys_ipc(). + - serial: Fix sparc driver name strings. + - sparc: Fix ptrace() detach. + - sparc: Fix mremap address range validation. + - sparc: Fix debugger syscall restart interactions. + - sparc32: Don't twiddle PT_DTRACE in exec. + - r8169: fix oops in r8169_get_mac_version + - SCSI: aha152x: Fix oops on module removal + - SCSI: aha152x: fix init suspiciously returned 1, it should follow + 0/-E convention + - sch_htb: remove from event queue in htb_parent_to_leaf() + - i2c-piix4: Blacklist two mainboards + - SCSI: qla1280: Fix queue depth problem + - ipvs: fix oops in backup for fwmark conn templates + - USB: airprime: unlock mutex instead of trying to lock it again + - rtc: rtc_time_to_tm: use unsigned arithmetic + - SCSI: libiscsi regression in 2.6.25: fix nop timer handling + - SCSI: libiscsi regression in 2.6.25: fix setting of recv timer + - can: Fix can_send() handling on dev_queue_xmit() failures + - macvlan: Fix memleak on device removal/crash on module removal + - nf_conntrack: padding breaks conntrack hash on ARM + - sparc: sunzilog uart order + - r8169: fix past rtl_chip_info array size for unknown chipsets + - x86: use defconfigs from x86/configs/* + - vt: fix canonical input in UTF-8 mode + - ata_piix: verify SIDPR access before enabling it + - serial: access after NULL check in uart_flush_buffer() + - x86: sysfs cpu?/topology is empty in 2.6.25 (32-bit Intel system) + - XFRM: AUDIT: Fix flowlabel text format ambibuity. + * Update userspace merged HZ alpha fixed version. + * Backport netfilter: Move linux/types.h inclusions outside of #ifdef + __KERNEL__. (closes: #479899) + * types.h: don't expose struct ustat to userspace. (closes: #429064) + + [ Bastian Blank ] + * Fix ABI changes from: ipvs: fix oops in backup for fwmark conn templates + + -- maximilian attems Tue, 27 May 2008 11:46:11 +0200 + +linux-2.6 (2.6.25-3) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.25.3: + - sit: Add missing kfree_skb() on pskb_may_pull() failure. + - sparc: Fix mmap VA span checking. + - CRYPTO: eseqiv: Fix off-by-one encryption + - CRYPTO: authenc: Fix async crypto crash in crypto_authenc_genicv() + - CRYPTO: cryptd: Correct kzalloc error test + - CRYPTO: api: Fix scatterwalk_sg_chain + - x86 PCI: call dmi_check_pciprobe() + - b43: Fix some TX/RX locking issues + - kprobes/arm: fix decoding of arithmetic immediate instructions + - kprobes/arm: fix cache flush address for instruction stub + - b43: Fix dual-PHY devices + - POWERPC: mpc5200: Fix unterminated of_device_id table + - reiserfs: Unpack tails on quota files + - sched: fix hrtick_start_fair and CPU-Hotplug + - vfs: fix permission checking in sys_utimensat + - md: fix use after free when removing rdev via sysfs + - mm: fix usemap initialization + - 2.6.25 regression: powertop says 120K wakeups/sec + + [ maximilian attems ] + * Redisable old dup prism54 driver. + * Reenable accidentaly disabled SIS190. (closes: #478773) + * Add lmkl patch to unbreak HZ userspace aka perl5.10 build fix. + (closes: #480130) + + [ Martin Michlmayr ] + * [armel] Disable some SCSI drives (that are disabled on arm) so the + ramdisk will fit in flash on NSLU2 (closes: #480310). + + -- maximilian attems Wed, 14 May 2008 11:16:56 +0200 + +linux-2.6 (2.6.25-2) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.25.1: + - Fix dnotify/close race (CVE-2008-1375) + - V4L: Fix VIDIOCGAP corruption in ivtv + - USB: log an error message when USB enumeration fails + - USB: OHCI: fix bug in controller resume + - SCSI: qla2xxx: Correct regression in relogin code. + - rose: Socket lock was not released before returning to user space + - x86, pci: fix off-by-one errors in some pirq warnings + - hrtimer: timeout too long when using HRTIMER_CB_SOFTIRQ + - RDMA/nes: Fix adapter reset after PXE boot + - rtc-pcf8583 build fix + - JFFS2: Fix free space leak with in-band cleanmarkers + - SELinux: no BUG_ON(!ss_initialized) in selinux_clone_mnt_opts + - tehuti: check register size (CVE-2008-1675) + - IPSEC: Fix catch-22 with algorithm IDs above 31 + - alpha: unbreak OSF/1 (a.out) binaries + - tehuti: move ioctl perm check closer to function start (CVE-2008-1675) + - aio: io_getevents() should return if io_destroy() is invoked + - mm: fix possible off-by-one in walk_pte_range() + - TCP: Increase the max_burst threshold from 3 to tp->reordering. + - ssb: Fix all-ones boardflags + - cgroup: fix a race condition in manipulating tsk->cg_list + - drivers/net/tehuti: use proper capability check for raw IO access + - tg3: 5701 DMA corruption fix + - V4L: tea5761: bugzilla #10462: tea5761 autodetection code were broken + - b43: Workaround invalid bluetooth settings + - b43: Add more btcoexist workarounds + - b43: Workaround DMA quirks + - dm snapshot: fix chunksize sector conversion + - x86: Fix 32-bit x86 MSI-X allocation leakage + - RTNETLINK: Fix bogus ASSERT_RTNL warning + - net: Fix wrong interpretation of some copy_to_user() results. + - dz: test after postfix decrement fails in dz_console_putchar() + - RDMA/nes: Free IRQ before killing tasklet + - S2io: Fix memory leak during free_tx_buffers + - S2io: Version update for memory leak fix during free_tx_buffers + - USB: Add HP hs2300 Broadband Wireless Module to sierra.c + - V4L: cx88: enable radio GPIO correctly + - hrtimer: raise softirq unlocked to avoid circular lock dependency + - tcp: tcp_probe buffer overflow and incorrect return value + * [ide] Add upstream piix patch for asus eee pc. (closes: #479217) + + [ Christian T. Steigies ] + * [m68k] Add patches for 2.6.25. + * [m68k] Disable EXT4DEV_FS for now. + * [m68k] Enable SCSI_MAC_ESP for mac. + + [ Ian Campbell ] + * [x86]: Enable Xen guest support in all i386 flavours. + + [ Bastian Blank ] + * Add stable release 2.6.25.2: + - fix SMP ordering hole in fcntl_setlk() (CVE-2008-1669) + + -- Bastian Blank Thu, 08 May 2008 14:46:48 +0200 + +linux-2.6 (2.6.25-1) unstable; urgency=low + + * New upstream release (closes: #456799, #468440, #475161, #475134, #475441) + - Add oabi shim for fstatat64 (closes: #462677) + + [ maximilian attems ] + * topconfig set NOZOMI, CRYPTO_SEQIV, CRYPTO_CTR, CRYPTO_GCM, CRYPTO_CCM, + CRYPTO_SALSA20, CRYPTO_LZO, CRYPTO_DEV_HIFN_795X, USB_SI470X, + USB_STKWEBCAM, VIDEO_PVRUSB2_ONAIR_USB2, VIDEO_PVRUSB2_ONAIR_CREATOR, + VIDEO_EM28XX_ALSA, CRYPTO_DEV_HIFN_795X_RNG, PCF8575, TPS65010, RTL8180, + ENC28J60, R6040, CAN, NETFILTER_XT_MATCH_OWNER, MAC80211_RC_DEFAULT_PI, + NETFILTER_XT_TARGET_RATEEST, NETFILTER_XT_TARGET_TCPOPTSTRIP, + NETFILTER_XT_MATCH_IPRANGE, NETFILTER_XT_MATCH_RATEEST, SND_OXYGEN, + SND_HIFIER, SND_VIRTUOSO, USB_NET_RNDIS_WLAN, USB_ANNOUNCE_NEW_DEVICES, + USB_SERIAL_IUU, NET_CLS_FLOW, INFINIBAND_NES, RTC_DRV_R9701, + RTC_DRV_DS1511, MEMSTICK, SENSORS_W83L786NG, SENSORS_ADS7828, IPWIRELESS, + RISCOM8, IGB, UTS_NS, IPC_NS, IPV6_ROUTE_INFO, ENCLOSURE_SERVICES, + SCSI_ENCLOSURE, SENSORS_ADT7473, SCSI_MVSAS, REALTEK_PHY, RTC_DRV_S35390A, + MEMSTICK_JMICRON_38X, IWL4965_HT. + * [amd64] Enable CRYPTO_SALSA20_X86_64, EDAC_I3000, EFI, EFI_VARS, I8K, + PARAVIRT_GUEST, PARAVIRT, VIRTIO_PCI, VIRTIO_BALLOON, SPARSEMEM_VMEMMAP. + * [amd64, i386]: Enable LEDS_CLEVO_MAIL, INPUT_APANEL, ACER_WMI, + THINKPAD_ACPI_HOTKEY_POLL, HP_WATCHDOG, THINKPAD_ACPI_VIDEO, + VIRTION_CONSOLE, ACPI_WMI, IO_DELAY_0X80. + * topconfig disable PARPORT_PC_FIFO due to instabilities. + (closes: #366165, #388309, #406056, #407816, #453911) + * [amd64, i386]: Enable SONYPI_COMPAT for better sony laptop support. + * topconfig: Enable HID_FF for some HID devices. (closes: #441348) + * topconfig: Enable IPV6_ROUTER_PREF for multi-homed net. (closes: #449247) + * topconfig: Set UTF8 as default encoding. (closes: #417324) + * Tighten yaird dependency. (closes: #403171) + * Configs general cleanup, centralize USB_NET, disable IRDA_DEBUG. + * postinst: Nuke confusing postinst message. (closes: #465512) + * [sparc]: Enable SCSI_SCAN_ASYNC. + * [i386]: Enable TC1100_WMI, SND_SIS7019, CRYPTO_SALSA20_586. + * topconfig: Centralize old IEEE80211 stack options. (closes: #470558) + * control.source.in: Newer standard version without changes. + * copyright: adapt to latest lintian recommendation. + * input: Add 4 additional exports for modular speakup and braille support. + * firewire: Add firewire-git.patch for latest firewire tree features. + * 686: Set USB_PERSIST for eee pc suspend support. (closes: #468213) + * topconfig disable PATA_SIS as sis5513 enabled. (closes: #475525) + * [xen]: Support direct load of bzImage under Xen. (closes: #474509) + Thanks Ian Campbell for patches. + * [xen]: Module autoprobing support for frontend drivers. + * [arm]: Don't ovverride topconfig SENSORS_W83792D setting. + (closes: #477745) + + [ Martin Michlmayr ] + * [arm/armel] Add a kernel for Orion based devices, such as the QNAP + TS-109/TS-209. + * [mips(el)/sb1*] Enable SB1250_MAC (thanks Thomas Bogendoerfer). + * [mipsel/r5k-cobalt] Enable DUMMY_CONSOLE since this might + fix the debian-installer startup hang on Qube 2700. + * [arm/footbridge] Disable KEYS and SECURITY for smaller d-i image. + * [arm/footbridge] Build NFS as a module to make the image smaller. + * [mips/r5k-ip32] Don't build in NFS. + * [mips/r5k-ip32] Use the generic config options for NFS, which will + enable NFSv4. (closes: #471007) + * [mips/r5k-ip32] Enable R8169, requested by Giuseppe Sacco. + * [arm/iop32x] Enable MACH_EM7210. (closes: #473136) + * [arm/orion] Add patch to set the MAC address on QNAP TS-109/TS-209 + (Lennert Buytenhek). + * [arm/orion] Add support for Buffalo Linkstation Pro/Live (Byron Bradley). + * [arm/orion] Fix hang when Write Allocate is enabled (Lennert Buytenhek). + * [arm/orion] Add support for QNAP TS-409 (Sylver Bruneau). + * [arm/orion] Add preliminary support for HP mv2120. + + [ Daniel Baumann ] + * Added patch from unionfs upstream to export release_open_intent symbol. + + [ Gordon Farquharson ] + * [arm/ixp4xx] Use GPIO LED driver as opposed to ixp4xx LED driver. + * [arm/ixp4xx] Fix ixp4xx-beeper module so that udev loads it + automatically. + * [arm/iop32x] Enable support for the GLAN Tank flash chip (M29W400DB). + * [arm/iop32x] Do not build the ARTOP PATA driver (PATA_ARTOP). + * [arm/iop32x] Register the F75375 device in the GLAN Tank platform code. + * Prevent physmap from calling request_module() too early. + * [arm/ixp4xx] Fix used_sram_bitmap corruption in qmgr_release_queue(). + + [ Aurelien Jarno ] + * [mips/mipsel] Enable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for dynticks + and true high-resolution timers on 4kc-malta and 5kc-malta flavours. + * [i386, amd64] Set modular VIRTIO, VIRTIO_RING, VIRTIO_BLK, VIRTIO_NET. + + [ Bastian Blank ] + * Remove binary only firmwares for: + - Broadcom NetXtremeII 10Gb support + * Disable now broken drivers: + - Broadcom NetXtremeII 10Gb support + * Fix broken drivers: + - Broadcom NetXtremeII support + * [powerpc] Use new wrapper install support. + * [s390] Enable DM_MULTIPATH_EMC. + * Enable AF_RXRPC, RXKAD, PRINTK_TIME, DEBUG_KERNEL, SCHED_DEBUG, + TIMER_STATS, DEBUG_FS. + * Disable R3964, USB_GADGET. + * [hppa] Enable several filesystems. + * Make NLS modular. + * [i386/486] Make ext2 modular. + * [alpha,amd64,i386] Make ATM modular. + * [powerpc/powerpc64] Support PA Semi based plattforms. (closes: #463200) + * Follow upstream change for default TCP congestion control. + (closes: #477589) + + [ Steve Langasek ] + * topconfig: Enable CONFIG_CIFS_WEAK_PW_HASH, required for compatibility + with legacy (pre-NTLM) fileservers. + + [ Christian Perrier ] + * Debconf template rewrite + mark them as translatable. + Thanks to Justin B Rye for review. + + -- Bastian Blank Fri, 25 Apr 2008 16:27:23 +0200 + +linux-2.6 (2.6.24-6) unstable; urgency=high + + [ Martin Michlmayr ] + * [armel] Fix FTBFS on armel by enabling CONFIG_USB_USBNET=m in + armel/config, as it was done for arm/config already. + * [armel] Add oabi shim for fstatat64 (Riku Voipio) + + [ Gordon Farquharson ] + * [arm/iop32x] Do not build the ARTOP PATA driver (PATA_ARTOP). + * [arm/iop32x] Enable MTD_CMDLINE_PARTS. + + [ Kyle McMartin ] + * [hppa] fix pdc_console panic at boot (closes: #476292). + * [hppa] properly flush user signal tramps + * [hppa] special case futex cmpxchg on kernel space NULL (closes: 476285). + + -- Bastian Blank Fri, 18 Apr 2008 19:41:30 +0200 + +linux-2.6 (2.6.24-5) unstable; urgency=low + + [ Gordon Farquharson ] + * [arm] Enable asix driver (USB_NET_AX8817X). + * [arm] Enable CONFIG_USB_CATC, CONFIG_USB_KAWETH, CONFIG_USB_PEGASUS, + and CONFIG_USB_RTL8150. + * [arm/ixp4xx] Update Ethernet driver (closes: #471062). + * [arm/ixp4xx] Add HSS driver. + + [ Bastian Blank ] + * [s390/s390-tape]: Override localversion correctly. + * Add stable release 2.6.24.3: + - x86_64: CPA, fix cache attribute inconsistency bug + - bonding: fix NULL pointer deref in startup processing + - POWERPC: Revert chrp_pci_fixup_vt8231_ata devinit to fix libata on pegasos + - PCMCIA: Fix station address detection in smc + - SCSI: gdth: scan for scsi devices + - USB: fix pm counter leak in usblp + - S390: Fix futex_atomic_cmpxchg_std inline assembly. + - genirq: do not leave interupts enabled on free_irq + - hrtimer: catch expired CLOCK_REALTIME timers early + - hrtimer: check relative timeouts for overflow + - SLUB: Deal with annoying gcc warning on kfree() + - hrtimer: fix *rmtp/restarts handling in compat_sys_nanosleep() + - hrtimer: fix *rmtp handling in hrtimer_nanosleep() + - Disable G5 NAP mode during SMU commands on U3 + - Be more robust about bad arguments in get_user_pages() + - AUDIT: Increase skb->truesize in audit_expand + - BLUETOOTH: Add conn add/del workqueues to avoid connection fail. + - INET: Prevent out-of-sync truesize on ip_fragment slow path + - INET_DIAG: Fix inet_diag_lock_handler error path. + - IPCOMP: Fetch nexthdr before ipch is destroyed + - IPCOMP: Fix reception of incompressible packets + - IPV4: fib: fix route replacement, fib_info is shared + - IPV4: fib_trie: apply fixes from fib_hash + - PKT_SCHED: ematch: oops from uninitialized variable (resend) + - SELinux: Fix double free in selinux_netlbl_sock_setsid() + - TC: oops in em_meta + - TCP: Fix a bug in strategy_allowed_congestion_control + - SCSI: sd: handle bad lba in sense information + - Fix dl2k constants + - XFS: Fix oops in xfs_file_readdir() + - hugetlb: add locking for overcommit sysctl + - inotify: fix check for one-shot watches before destroying them + - NFS: Fix a potential file corruption issue when writing + - NETFILTER: nf_conntrack_tcp: conntrack reopening fix + - SPARC/SPARC64: Fix usage of .section .sched.text in assembler code. + * Add stable release 2.6.24.4: + - S390 futex: let futex_atomic_cmpxchg_pt survive early functional tests. + - slab: NUMA slab allocator migration bugfix + - relay: fix subbuf_splice_actor() adding too many pages + - BLUETOOTH: Fix bugs in previous conn add/del workqueue changes. + - SCSI advansys: Fix bug in AdvLoadMicrocode + - async_tx: avoid the async xor_zero_sum path when src_cnt > device->max_xor + - aio: bad AIO race in aio_complete() leads to process hang + - jbd: correctly unescape journal data blocks + - jbd2: correctly unescape journal data blocks + - zisofs: fix readpage() outside i_size + - NETFILTER: nfnetlink_log: fix computation of netlink skb size + - NETFILTER: nfnetlink_queue: fix computation of allocated size for netlink skb + - NETFILTER: xt_time: fix failure to match on Sundays + - sched_nr_migrate wrong mode bits + - nfsd: fix oops on access from high-numbered ports + - sched: fix race in schedule() + - SCSI: mpt fusion: don't oops if NumPhys==0 + - SCSI: gdth: fix to internal commands execution + - SCSI: gdth: bugfix for the at-exit problems + - Fix default compose table initialization + - x86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC + - SCSI: fix BUG when sum(scatterlist) > bufflen + - USB: ehci: handle large bulk URBs correctly (again) + - USB: ftdi_sio - really enable EM1010PC + - USB: ftdi_sio: Workaround for broken Matrix Orbital serial port + - VT notifier fix for VT switch + - eCryptfs: make ecryptfs_prepare_write decrypt the page + - ioat: fix 'ack' handling, driver must ensure that 'ack' is zero + - macb: Fix speed setting + - x86: move out tick_nohz_stop_sched_tick() call from the loop + - atmel_spi: fix clock polarity + - b43: Backport bcm4311 fix + - arcmsr: fix IRQs disabled warning spew + - e1000e: Fix CRC stripping in hardware context bug + - PCI x86: always use conf1 to access config space below 256 bytes + - moduleparam: fix alpha, ia64 and ppc64 compile failures + - pata_hpt*, pata_serverworks: fix UDMA masking + - SCSI advansys: fix overrun_buf aligned bug + - NETFILTER: fix ebtable targets return + - NETFILTER: Fix incorrect use of skb_make_writable + - NETFILTER: nfnetlink_queue: fix SKB_LINEAR_ASSERT when mangling packet data + - spi: pxa2xx_spi clock polarity fix + - ufs: fix parenthesisation in ufs_set_fs_state() + - hugetlb: ensure we do not reference a surplus page after handing it to buddy + - file capabilities: simplify signal check + - futex: runtime enable pi and robust functionality + - futex: fix init order + - ARM pxa: fix clock lookup to find specific device clocks + - x86: replace LOCK_PREFIX in futex.h + - SCSI aic94xx: fix REQ_TASK_ABORT and REQ_DEVICE_RESET + - SCSI gdth: don't call pci_free_consistent under spinlock + - SCSI ips: fix data buffer accessors conversion bug + - usb-storage: don't access beyond the end of the sg buffer + - fuse: fix permission checking + - CRYPTO xts: Use proper alignment + - CRYPTO xcbc: Fix crash with IPsec + - SCSI ips: handle scsi_add_host() failure, and other err cleanups + - x86: adjust enable_NMI_through_LVT0() + - drivers: fix dma_get_required_mask + - iov_iter_advance() fix + - x86: Clear DF before calling signal handler (closes: #469058) + - ub: fix up the conversion to sg_init_table() + - MIPS: Mark all but i8259 interrupts as no-probe. + - IRQ_NOPROBE helper functions + - IPCOMP: Disable BH on output when using shared tfm + - IPCONFIG: The kernel gets no IP from some DHCP servers + - IPV4: Remove IP_TOS setting privilege checks. + - IPV6: dst_entry leak in ip4ip6_err. + - IPV6: Fix IPsec datagram fragmentation + - NET: Fix race in dev_close(). (Bug 9750) + - NET: Messed multicast lists after dev_mc_sync/unsync (closes: #466719) + - NIU: Bump driver version and release date. + - NIU: Fix BMAC alternate MAC address indexing. + - NIU: More BMAC alt MAC address fixes. + - TCP: Improve ipv4 established hash function. + - SPARC: Fix link errors with gcc-4.3 + - SPARC64: Loosen checks in exception table handling. + + [ Martin Michlmayr ] + * [mips/r4k-ip22] Enable BLK_DEV_LOOP and BLK_DEV_CRYPTOLOOP. + * [mips/r5k-ip32] Enable BLK_DEV_LOOP and BLK_DEV_CRYPTOLOOP. + * [mips/r4k-ip22] Enable PPP, PPPOE and SLIP. + * [mips/r5k-ip32] Enable PPP, PPPOE and SLIP. + * Don't check the section size when we're cross compiling. + + [ dann frazier ] + * Remove cap_task_kill (closes: #463669) + + -- Bastian Blank Thu, 27 Mar 2008 12:40:16 +0100 + +linux-2.6 (2.6.24-4) unstable; urgency=low + + * Add stable release 2.6.24.1: + - splice: missing user pointer access verification (CVE-2008-0009/10) + - drm: the drm really should call pci_set_master.. + - Driver core: Revert "Fix Firmware class name collision" + - fix writev regression: pan hanging unkillable and un-straceable + - sched: fix high wake up latencies with FAIR_USER_SCHED + - sched: let +nice tasks have smaller impact + - b43: Reject new firmware early + - selinux: fix labeling of /proc/net inodes + - b43legacy: fix DMA slot resource leakage + - b43legacy: drop packets we are not able to encrypt + - b43legacy: fix suspend/resume + - b43legacy: fix PIO crash + - b43: Fix dma-slot resource leakage + - b43: Drop packets we are not able to encrypt + - b43: Fix suspend/resume + - sky2: fix for WOL on some devices + - sky2: restore multicast addresses after recovery + - x86: restore correct module name for apm + - ACPI: update ACPI blacklist + - PCI: Fix fakephp deadlock + - sys_remap_file_pages: fix ->vm_file accounting + - lockdep: annotate epoll + - forcedeth: mac address mcp77/79 + - USB: Fix usb_serial_driver structure for Kobil cardreader driver. + - USB: handle idVendor of 0x0000 + - USB: fix usbtest halt check on big endian systems + - USB: storage: Add unusual_dev for HP r707 + - USB: Variant of the Dell Wireless 5520 driver + - USB: use GFP_NOIO in reset path + - USB: ftdi driver - add support for optical probe device + - USB: pl2303: add support for RATOC REX-USB60F + - USB: remove duplicate entry in Option driver and Pl2303 driver for Huawei modem + - USB: sierra: add support for Onda H600/Zte MF330 datacard to USB Driver for Sierra Wireless + - USB: ftdi-sio: Patch to add vendor/device id for ATK_16IC CCD + - USB: ftdi_sio - enabling multiple ELV devices, adding EM1010PC + - USB: sierra driver - add devices + - USB: Adding YC Cable USB Serial device to pl2303 + - USB: Sierra - Add support for Aircard 881U + - USB: add support for 4348:5523 WinChipHead USB->RS 232 adapter + - USB: CP2101 New Device IDs + - usb gadget: fix fsl_usb2_udc potential OOPS + - USB: keyspan: Fix oops + - vm audit: add VM_DONTEXPAND to mmap for drivers that need it (CVE-2008-0007) + - slab: fix bootstrap on memoryless node + - DVB: cx23885: add missing subsystem ID for Hauppauge HVR1800 Retail + + [ Martin Michlmayr ] + * [arm/ixp4xx] Enble ATA_OVER_ETH, requested by Nicola Fankhauser. + * [arm/iop32x] Enble ATA_OVER_ETH. + + [ Bastian Blank ] + * Add stable release 2.6.24.2: + - splice: fix user pointer access in get_iovec_page_array() + (CVE-2008-0600, closes: #464945) + + -- Bastian Blank Mon, 11 Feb 2008 12:29:23 +0100 + +linux-2.6 (2.6.24-3) unstable; urgency=low + + [ maximilian attems ] + * [scsi]: hptiop: add more adapter models and fixes. + * [amd64, i386]: Reenable ACPI_PROCFS_POWER. (closes: #463253) + + [ Gordon Farquharson ] + * [arm/ixp4xx] Update Ethernet driver so that it can be loaded by udev + automatically. + + [ Martin Michlmayr ] + * [mips/r5k-ip32] Enable R8169, requested by Giuseppe Sacco. (Closes: + #463705) + + -- Bastian Blank Wed, 06 Feb 2008 13:05:18 +0100 + +linux-2.6 (2.6.24-2) unstable; urgency=low + + [ Bastian Blank ] + * Fix broken merge of flavour specific settings. + - [i386]: Recommends are fixed. + - [s390/s390-tape]: Built as small image again. + + [ maximilian attems ] + * Disable old dup prism54 driver. + * Stable queue: slab: fix bootstrap on memoryless node. + + [ Aurelien Jarno ] + * [arm]: Remove options that are present in topconfig from config.versatile. + * [arm]: Turn off B44 since it fails to compile on armel. + + -- Bastian Blank Thu, 31 Jan 2008 17:37:00 +0100 + +linux-2.6 (2.6.24-1) unstable; urgency=low + + * New upstream release + (closes: #461639) + + [ Martin Michlmayr ] + * Don't build the AdvanSys driver on ARM since it fails to compile. + * Disable ATH5K on ARM since it fails to compile. + * [arm/iop32x] Activate DMADEVICES. + * [mips/mipsel] Turn off CONFIG_NIU since it fails to compile. + + [ maximilian attems ] + * [amd64, i386]: Enable ACPI_SYSFS_POWER and disable ACPI_PROCFS_POWER. + * [fw] Sync with latest git-ieee1394 for sbp2 fixes. + + [ Bastian Blank ] + * Kill reboot warning from old templates. + * Fix strange default value for link_in_boot. (closes: #425056) + * [powerpc/powerpc]: Enable Efika support. + * [powerpc]: Lower mkvmlinuz to the state of a bootloader. + * [powerpc]: Remove ppc and m68k include dirs from headers. + * Remove versions from relations fullfilled in stable. + + [ Aurelien Jarno ] + * [arm]: Update versatile config. + + [ Gordon Farquharson ] + * [arm/ixp4xx] Change the ixp4xx network driver from the driver + written by Christian Hohnstaedt to the driver written by Krzysztof + Hasala which has partially been accepted upstream. + + -- Bastian Blank Sat, 26 Jan 2008 11:35:11 +0100 + +linux-2.6 (2.6.24~rc8-1~experimental.1) experimental; urgency=low + + * New upstream release + (closes: #454776, #458142, #457992, #458899, #426124, #459732, #455566). + + [ maximilian attems ] + * New upstream release, rebase dfsg stuff plus drivers-atm.patch, + scripts-kconfig-reportoldconfig.patch. + * [amd64, powerpc] Set HIGH_RES_TIMERS and NO_HZ (closes: #458312). + * topconfig set NETFILTER_XT_MATCH_TIME, NET_ACT_NAT, KSDAZZLE_DONGLE, + KS959_DONGLE, NET_9P_FD, IP1000, VETH, IXGBE, NIU, TEHUTI, LIBERTAS_CS, + LIBERTAS_SDIO, RT2X00, SENSORS_ADT7470, SENSORS_I5K_AMB, SENSORS_F71882FG, + SENSORS_FSCHMD, SENSORS_IBMPEX, CRYPTO_XTS, CRYPTO_SEED, CRYPTO_AUTHENC, + DVB_S5H1409, DVB_TUNER_MT2131, INET_LRO, MMC_RICOH_MMC, MMC_SPI, + RTC_DRV_DS1374, VIDEO_CX23885, VIDEO_FB_IVTV, USB_SERIAL_CH341, + SCSI_SRP_TGT_ATTRS, ADM8211, MTD_INTEL_VR_NOR, MTD_ALAUDA, + MTD_ONENAND_2X_PROGRAM, MTD_ONENAND_SIM, DM_MULTIPATH_HP, FUJITSU_LAPTOP, + QUOTA_NETLINK_INTERFACE, DM_UEVENT, SCSI_FC_TGT_ATTRS, SSB, BT_HCIUART_LL, + BT_HCIBTSDIO, MTD_OOPS, CGROUPS, MDIO_BITBANG, HIDRAW, P54, SDIO_UART, + NETCONSOLE_DYNAMIC, SECURITY_FILE_CAPABILITIES. + * Disable smbfs in topconfig, not supported upstream, use cifs. + * Disable bcm43xx, deprecated by upstream. Enable B43 (needs v4 firmware) + and B43LEGACY (needs v3 firmware). + * [i386]: Set SND_SC6000, EDAC_I3000, EDAC_I5000, SBC7240_WDT, + NET_9P_VIRTIO, FB_GEODE_LX, VIRTIO_NET, VIRTIO_BLK. + * Set USB_EHCI_TT_NEWSCHED fills USB 2.0 bandwith better. (closes: #454797) + * postrm: Nuke initramfs sha1sum on linux-image removal. (closes: #420245) + * Unifiy BSD_PROCESS_ACCT settings across configs. (closes: #455892) + * Reenable DABUSB as firmware is BSD licensed. + * [hppa]: Disable OCFS2, due build trouble. + * topconfig: Enable delay accounting TASKSTATS. (closes: #433204) + * Add git-ieee1394.patch for latest firewire fixes. + * [i386] Enable PARAVIRT_GUEST. (closes: #457562) + * [amd64, i386] Enable CPU_IDLE for software-controlled idle pm. + * [amd64, i386] Enable IT8712F_WDT, FB_EFI. + * Add and enable at76.patch wireless driver for Atmel USB cards. + * Add and enable ath5k.patch wireless driver for Atheros 5xxx cards. + * Unify VLAN_8021Q setting, needed also on r5k-cobalt. + * Double max SERIAL_8250_NR_UARTS to 32. (closes: #440807) + * topconfig: Enable AUDITSYSCALL for better SELinux support. + + [ Bastian Blank ] + * [amd64, i386]: Set kernel architecture to x86. + * [i386]: Remove linux-libc-dev arch override. + + [ Martin Michlmayr ] + * [mipsel/r5k-cobalt] Enable the new LEDs driver for Cobalt RaQ. + * [arm/iop32x] Re-enable USB_NET and PPP, thanks Daniel Hess (closes: + #456416). + * [arm/iop32x] Enable BSD_PROCESS_ACCT and POSIX_MQUEUE (closes: #455892). + * [mips] Disable AdvanSys SCSI since it doesn't compile. + * [arm/ixp4xx] Enable IP_ADVANCED_ROUTER, requested by Oliver Urbann. + * [arm/iop32x] Enable IP_ADVANCED_ROUTER. + + [ dann frazier ] + * [ia64]: Enable BLK_CPQ_DA + + [ Frederik Schüler ] + * Add GFS2 locking symbols export patch. + + [ Aurelien Jarno ] + * [mips/mipsel] Remove QEMU flavour, as the Malta platform is now correctly + emulated in QEMU. + + [ Christian T. Steigies ] + * [m68k]: Update patches from linux-m68k CVS + * [m68k]: Enable building for bvme6000, mvme147, and mvme16x again + + -- Bastian Blank Fri, 18 Jan 2008 12:23:26 +0100 + +linux-2.6 (2.6.23-2) unstable; urgency=low + + [ dann frazier ] + * [ia64]: Enable BLK_CPQ_DA + + [ Gordon Farquharson ] + * [arm/iop32x] Use the new i2c framework to load rtc-rs5c372 for the + GLAN Tank. + + [ Frederik Schüler ] + * Export gfs2 locking symbols required to build gfs1 module. + + [ maximilian attems ] + * [ppc] Reenable PMAC_BACKLIGHT. + * [sparc] Add davem get_cpu() SunFire boot patch. (closes: #440720) + * Add stable release 2.6.23.10: + - IPV4: Remove bogus ifdef mess in arp_process + - KVM: x86 emulator: Use emulator_write_emulated and not emulator_write_std + - KVM: SVM: Fix FPU leak while emulating clts + - revert "dpt_i2o: convert to SCSI hotplug model" + - KVM: x86 emulator: fix access registers for instructions with ModR/M + byte and Mod = 3 + - KVM: x86 emulator: invd instruction + - KVM: SVM: Intercept the 'invd' and 'wbinvd' instructions + - KVM: Skip pio instruction when it is emulated, not executed + - KVM: VMX: Force vm86 mode if setting flags during real mode + - forcedeth: new mcp79 pci ids + - forcedeth boot delay fix + - PFKEY: Sending an SADB_GET responds with an SADB_GET + - rd: fix data corruption on memory pressure. + - create /sys/.../power when CONFIG_PM is set + - USB: fix up EHCI startup synchronization + - RXRPC: Add missing select on CRYPTO + - KVM: VMX: Reset mmu context when entering real mode + - NET: random : secure_tcp_sequence_number should not assume + CONFIG_KTIME_SCALAR + - NET: Corrects a bug in ip_rt_acct_read() + - NETFILTER: Fix NULL pointer dereference in nf_nat_move_storage() + - netfilter: Fix kernel panic with REDIRECT target. + - IPV6: Restore IPv6 when MTU is big enough + - UNIX: EOF on non-blocking SOCK_SEQPACKET + - x86 setup: add a near jump to serialize %cr0 on 386/486 + - Fix synchronize_irq races with IRQ handler + - CRYPTO api: Fix potential race in crypto_remove_spawn + - TCP: Fix TCP header misalignment + - tmpfs: restore missing clear_highpage (CVE-2007-6417) + - TCP: MTUprobe: fix potential sk_send_head corruption + - NETFILTER: fix forgotten module release in xt_CONNMARK and xt_CONNSECMARK + - fb_ddc: fix DDC lines quirk + - VLAN: Fix nested VLAN transmit bug + - I4L: fix isdn_ioctl memory overrun vulnerability (CVE-2007-6151) + - isdn: avoid copying overly-long strings + - nf_nat: fix memset error + - esp_scsi: fix reset cleanup spinlock recursion + - libertas: properly account for queue commands + - KVM: Fix hang on uniprocessor + - USB: make the microtek driver and HAL cooperate + - TEXTSEARCH: Do not allow zero length patterns in the textsearch + infrastructure + - XFRM: Fix leak of expired xfrm_states + - NETFILTER: xt_TCPMSS: remove network triggerable WARN_ON + - BRIDGE: Lost call to br_fdb_fini() in br_init() error path + - DECNET: dn_nl_deladdr() almost always returns no error + - BRIDGE: Properly dereference the br_should_route_hook + - PKT_SCHED: Check subqueue status before calling hard_start_xmit + - Freezer: Fix APM emulation breakage + - XFS: Make xfsbufd threads freezable + - TCP: Problem bug with sysctl_tcp_congestion_control function + - wait_task_stopped(): pass correct exit_code to wait_noreap_copyout() + - KVM: x86 emulator: implement 'movnti mem, reg' + - TCP: illinois: Incorrect beta usage + - futex: fix for futex_wait signal stack corruption + - libata: kill spurious NCQ completion detection + - hrtimers: avoid overflow for large relative timeouts (CVE-2007-5966) + - Input: ALPS - add support for model found in Dell Vostro 1400 + (closes: #448818) + - PNP: increase the maximum number of resources + - sched: some proc entries are missed in sched_domain sys_ctl debug code + - ATM: [he] initialize lock and tasklet earlier + * Add stable release 2.6.23.11: + - BRIDGE: Section fix. + - Revert "Freezer: Fix APM emulation breakage" + * Backport fix for CVE-2007-5938 + - iwlwifi: fix possible NULL dereference in iwl_set_rate() + * Add stable release 2.6.23.12: + - Revert "PNP: increase the maximum number of resources" + * VM/Security: add security hook to do_brk (CVE-2007-6434) + * security: protect from stack expantion into low vm addresses + * [hppa]: Disable OCFS2, due build trouble. + + [ Aurelien Jarno ] + * [arm/versatile] Disable ACENIC and MYRI10GE as they are useless on this + platform. + * Add em28xx-dv100.patch to add support for Pinnacle Dazzle DVC 100. + + [ Bastian Blank ] + * Fix abi change in 2.6.23.10. + + -- maximilian attems Fri, 21 Dec 2007 11:47:55 +0100 + +linux-2.6 (2.6.23-1) unstable; urgency=low + + * New upstream release (closes: #447682). + - r8169: fix confusion between hardware and IP header alignment + (closes: #452069). + + [ maximilian attems ] + * [ppc] Enable for powerpc config the ams (Apple Motion Sensor). + (closes: #426210) + * Add to linux-doc the missing toplevel text files. + (closes: #360876, #438697) + * Set CONFIG_BLK_DEV_IO_TRACE for blktrace(8) support. (closes: #418442) + * ipw2200: Enable IPW2200_RADIOTAP and IPW2200_PROMISCUOUS for optional + rtap interface. (closes: #432555) + * Enable in topconfig NF_CT_PROTO_UDPLITE, NETFILTER_XT_TARGET_TRACE, + NETFILTER_XT_MATCH_CONNLIMIT, NETFILTER_XT_MATCH_U32, SENSORS_ABITUGURU3, + SENSORS_LM93, SENSORS_DME1737, SENSORS_THMC50, DVB_USB_AF9005, + DVB_USB_AF9005_REMOTE, CRC7, I2C_TAOS_EVM, DS1682, SENSORS_TSL2550, + SPI_LM70_LLP, SPI_TLE62X0, W1_SLAVE_DS2760, TUNER_TEA5761, NET_9P, + DM_MULTIPATH_RDAC, NET_SCH_RR, EEPROM_93CX6, PPPOL2TP, CRYPTO_HW, UIO, + UIO_CIF, SND_CS5530, RTL8187, PC300TOO, TCG_TIS, SCSI_SAS_ATA, + PATA_MARVELL. + * [i386] Enable lguest. + * [amd64, i386] Enable VIDEO_OUTPUT_CONTROL, NETDEVICES_MULTIQUEUE. + * linux-image bugscript add cmdline. + * [amd64, i386, ia64]: Enable DMIID, ACPI_PROC_EVENT. + * Enable TCG_TPM various userspace accesses it. (closes: #439020) + * Add and enable IWLWIFI. + * Add git-ieee1394.patch for latest firewire fixes. + * [ipv6] Enable IPV6_MULTIPLE_TABLES, IPV6_SUBTREES. (closes: #441226) + * Add and enable E1000E. + * Add stable release 2.6.23.1: + - libata: sata_mv: more S/G fixes + + [ Martin Michlmayr ] + * [mips] Add a bcm1480 PCI build fix. + * Update Riku Voipio's Fintek F75375/SP driver to the latest version. + * [arm/iop32x] Set the fan on Thecus N2100 to full speed (Riku Voipio). + * [arm/iop32x] Remove the IPv6 and filesystem info from the config file + so we will get the values from the main config file. This should + enable NFSv4 and ip6tables support requested by Wouter Verhelst. + * [arm/iop32x] Remove even more options to receive the default options. + * [arm/ixp4xx] Remove a lot of options to receive the default options. + * [mips/r4k-ip22] Remove a lot of options to receive the default options. + This will enable ISCSI requested by Martin Zobel-Helas. + * [mips/r5k-ip32] Remove a lot of options to receive the default options. + This will enable PCI Ethernet devices requested by Giuseppe Sacco. + * [mipsel/r5k-cobalt] Remove a lot of options to receive the default + options. + * [mipsel/r5k-cobalt] Enable the modern Cobalt LEDs driver. + * [arm/iop32x] Enable Intel IOP ADMA support. + * [arm] Mark BCM43XX as broken on ARM. + * [mips/r4k-ip22] Disable EARLY PRINTK because it breaks serial console. + * [mips] Add some IP22 fixes from Thomas Bogendoerfer: + - Fix broken EISA interrupt setup by switching to generic i8259 + - Fix broken eeprom access by using __raw_readl/__raw_writel + + [ Bastian Blank ] + * Add unpriviledged only Xen support. + * [i386] Drop k7 images. + * Drop maybe IETF document. (closes: #423040) + * Drop drivers because of binary only firmwares: + - DABUSB driver + - COPS LocalTalk PC support + - Digi Intl. RightSwitch SE-X support + - 3Com 3C359 Token Link Velocity XL adapter support + - SMC ISA/MCA adapter support + - EMI 6|2m USB Audio interface support + - EMI 2|6 USB Audio interface support + - Computone IntelliPort Plus serial support + * Remove binary only firmwares for: + - Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support + - Broadcom Tigon3 support + - USB Keyspan USA-xxx Serial Driver + - Korg 1212 IO + - ESS Allegro/Maestro3 + - Yamaha YMF724/740/744/754 + - Technotrend/Hauppauge Nova-USB devices + - YAM driver for AX.25 + - MyriCOM Gigabit Ethernet support + - PTI Qlogic, ISP Driver + - Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x + - Madge Ambassador (Collage PCI 155 Server) + - PCA-200E support + - SBA-200E support + - Broadcom NetXtremeII support + * Disable now broken drivers: + - Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support + - USB Keyspan USA-xxx Serial Driver + - Technotrend/Hauppauge Nova-USB devices + - YAM driver for AX.25 + - MyriCOM Gigabit Ethernet support + - PTI Qlogic, ISP Driver + - Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x + - Madge Ambassador (Collage PCI 155 Server) + - PCA-200E support + - SBA-200E support + - Broadcom NetXtremeII support + * Add -common to common header package names. + * Drop provides from common header packages. + * Update plain image type. + * Put only a config dump into linux-support. + + [ Aurelien Jarno ] + * [mips, mipsel] Add a 64-bit image (5kc-malta) for the MIPS Malta board. + (closes: #435677) + [sparc] Enable r8169 module on sparc64 and sparc64-smp flavours (closes: + #431977) + + [ Frederik Schüler ] + * Move all PATA options into the global config file, exept PATA_ARTOP + (arm/ixp4xx) and PATA_MPC52xx (powerpc). + * Move new global options into the global config file + * Clean up new amd64 options + + [ dann frazier ] + * [ia64] Re-enable various unintentionally disabled config options + * Enable hugetlbfs on i386, amd64, sparc64 and powerpc64. Closes: #450939 + + [ Bastian Blank ] + * Add stable release 2.6.23.2: + - BLOCK: Fix bad sharing of tag busy list on queues with shared tag maps + - fix tmpfs BUG and AOP_WRITEPAGE_ACTIVATE + - Fix compat futex hangs. (closes: #433187) + - sched: keep utime/stime monotonic + - fix the softlockup watchdog to actually work + - splice: fix double kunmap() in vmsplice copy path + - writeback: don't propagate AOP_WRITEPAGE_ACTIVATE + - SLUB: Fix memory leak by not reusing cpu_slab + - HOWTO: update ja_JP/HOWTO with latest changes + - fix param_sysfs_builtin name length check + - param_sysfs_builtin memchr argument fix + - Remove broken ptrace() special-case code from file mapping + - locks: fix possible infinite loop in posix deadlock detection + - lockdep: fix mismatched lockdep_depth/curr_chain_hash + * Add stable release 2.6.23.3: + - revert "x86_64: allocate sparsemem memmap above 4G" + - x86: fix TSC clock source calibration error + - x86 setup: sizeof() is unsigned, unbreak comparisons + - x86 setup: handle boot loaders which set up the stack incorrectly + - x86: fix global_flush_tlb() bug + - xfs: eagerly remove vmap mappings to avoid upsetting Xen + - xen: fix incorrect vcpu_register_vcpu_info hypercall argument + - xen: deal with stale cr3 values when unpinning pagetables + - xen: add batch completion callbacks + - UML - kill subprocesses on exit + - UML - stop using libc asm/user.h + - UML - Fix kernel vs libc symbols clash + - UML - Stop using libc asm/page.h + - POWERPC: Make sure to of_node_get() the result of pci_device_to_OF_node() + - POWERPC: Fix handling of stfiwx math emulation + - MIPS: R1: Fix hazard barriers to make kernels work on R2 also. + - MIPS: MT: Fix bug in multithreaded kernels. + - Fix sparc64 MAP_FIXED handling of framebuffer mmaps + - Fix sparc64 niagara optimized RAID xor asm + * Add stable release 2.6.23.4: + - mac80211: make ieee802_11_parse_elems return void + - mac80211: only honor IW_SCAN_THIS_ESSID in STA, IBSS, and AP modes + - mac80211: honor IW_SCAN_THIS_ESSID in siwscan ioctl + - mac80211: store SSID in sta_bss_list + - mac80211: store channel info in sta_bss_list + - mac80211: reorder association debug output + - ieee80211: fix TKIP QoS bug + - NETFILTER: nf_conntrack_tcp: fix connection reopening + - Fix netlink timeouts. + - Fix crypto_alloc_comp() error checking. + - Fix SET_VLAN_INGRESS_PRIORITY_CMD error return. + - Fix VLAN address syncing. + - Fix endianness bug in U32 classifier. + - Fix TEQL oops. + - Fix error returns in sys_socketpair() + - softmac: fix wext MLME request reason code endianness + - Fix kernel_accept() return handling. + - TCP: Fix size calculation in sk_stream_alloc_pskb + - Fix SKB_WITH_OVERHEAD calculations. + - Fix 9P protocol build + - Fix advertised packet scheduler timer resolution + - Add get_unaligned to ieee80211_get_radiotap_len + - mac80211: Improve sanity checks on injected packets + - mac80211: filter locally-originated multicast frames + * Add stable release 2.6.23.5: + - zd1211rw, fix oops when ejecting install media + - rtl8187: Fix more frag bit checking, rts duration calc + - ipw2100: send WEXT scan events + - zd1201: avoid null ptr access of skb->dev + - sky2: fix power settings on Yukon XL + - sky2: ethtool register reserved area blackout + - sky2: status ring race fix + - skge: XM PHY handling fixes + - Fix L2TP oopses. + - TG3: Fix performance regression on 5705. + - forcedeth: add MCP77 device IDs + - forcedeth msi bugfix + - ehea: 64K page kernel support fix + - libertas: fix endianness breakage + - libertas: more endianness breakage + * Add stable release 2.6.23.6: + - ACPI: suspend: Wrong order of GPE restore. + - ACPI: sleep: Fix GPE suspend cleanup + - libata: backport ATA_FLAG_NO_SRST and ATA_FLAG_ASSUME_ATA, part 2 + - libata: backport ATA_FLAG_NO_SRST and ATA_FLAG_ASSUME_ATA + - libata: add HTS542525K9SA00 to NCQ blacklist + - radeon: set the address to access the GART table on the CPU side correctly + - Char: moxa, fix and optimise empty timer + - Char: rocket, fix dynamic_dev tty + - hptiop: avoid buffer overflow when returning sense data + - ide: Fix cs5535 driver accessing beyond array boundary + - ide: Fix siimage driver accessing beyond array boundary + - ide: Add ide_get_paired_drive() helper + - ide: fix serverworks.c UDMA regression + - i4l: fix random freezes with AVM B1 drivers + - i4l: Fix random hard freeze with AVM c4 card + - ALSA: hda-codec - Add array terminator for dmic in STAC codec + - USB: usbserial - fix potential deadlock between write() and IRQ + - USB: add URB_FREE_BUFFER to permissible flags + - USB: mutual exclusion for EHCI init and port resets + - usb-gadget-ether: prevent oops caused by error interrupt race + - USB: remove USB_QUIRK_NO_AUTOSUSPEND + - MSI: Use correct data offset for 32-bit MSI in read_msi_msg() + - md: raid5: fix clearing of biofill operations + - md: fix an unsigned compare to allow creation of bitmaps with v1.0 metadata + - dm: fix thaw_bdev + - dm delay: fix status + - libata: sync NCQ blacklist with upstream + - ALSA: hdsp - Fix zero division + - ALSA: emu10k1 - Fix memory corruption + - ALSA: Fix build error without CONFIG_HAS_DMA + - ALSA: fix selector unit bug affecting some USB speakerphones + - ALSA: hda-codec - Avoid zero NID in line_out_pins[] of STAC codecs + - IB/mthca: Use mmiowb() to avoid firmware commands getting jumbled up + - IB/uverbs: Fix checking of userspace object ownership + - hwmon/lm87: Disable VID when it should be + - hwmon/lm87: Fix a division by zero + - hwmon/w83627hf: Don't assume bank 0 + - hwmon/w83627hf: Fix setting fan min right after driver load + - i915: fix vbl swap allocation size. + - POWERPC: Fix platinumfb framebuffer + * Add stable release 2.6.23.7: + - NFS: Fix a writeback race... + - ocfs2: fix write() performance regression + - minixfs: limit minixfs printks on corrupted dir i_size (CVE-2006-6058) + * Add stable release 2.6.23.8: + - wait_task_stopped: Check p->exit_state instead of TASK_TRACED (CVE-2007-5500) + - TCP: Make sure write_queue_from does not begin with NULL ptr (CVE-2007-5501) + * Add stable release 2.6.23.9: + - ipw2200: batch non-user-requested scan result notifications + - USB: Nikon D40X unusual_devs entry + - USB: unusual_devs modification for Nikon D200 + - softlockup: use cpu_clock() instead of sched_clock() + - softlockup watchdog fixes and cleanups + - x86: fix freeze in x86_64 RTC update code in time_64.c + - ntp: fix typo that makes sync_cmos_clock erratic + - x86: return correct error code from child_rip in x86_64 entry.S + - x86: NX bit handling in change_page_attr() + - x86: mark read_crX() asm code as volatile + - x86: fix off-by-one in find_next_zero_string + - i386: avoid temporarily inconsistent pte-s + - libcrc32c: keep intermediate crc state in cpu order + - geode: Fix not inplace encryption + - Fix divide-by-zero in the 2.6.23 scheduler code + - ACPI: VIDEO: Adjust current level to closest available one. + - libata: sata_sis: use correct S/G table size + - sata_sis: fix SCR read breakage + - reiserfs: don't drop PG_dirty when releasing sub-page-sized dirty file + - x86: disable preemption in delay_tsc() + - dmaengine: fix broken device refcounting + - nfsd4: recheck for secure ports in fh_verify + - knfsd: fix spurious EINVAL errors on first access of new filesystem + - raid5: fix unending write sequence + - oProfile: oops when profile_pc() returns ~0LU + - drivers/video/ps3fb: fix memset size error + - i2c/eeprom: Hide Sony Vaio serial numbers + - i2c/eeprom: Recognize VGN as a valid Sony Vaio name prefix + - i2c-pasemi: Fix NACK detection + + -- maximilian attems Fri, 30 Nov 2007 11:40:09 +0100 + +linux-2.6 (2.6.22-6) unstable; urgency=low + + [ Martin Michlmayr ] + * [mips] Add IP22 (SGI Indy) patches from Thomas Bogendoerfer: + - Disable EARLY PRINTK because it breaks serial. + - fix wrong argument order. + - wrong check for second HPC. Closes: #448488 + + [ maximilian attems ] + * Add stable release 2.6.22.11 - minus ipv6 abi breaker: + - libertas: fix endianness breakage + - libertas: more endianness breakage + - Fix ROSE module unload oops. + - Add get_unaligned to ieee80211_get_radiotap_len + - Fix ipv6 redirect processing, leads to TAHI failures. + - i915: fix vbl swap allocation size. + - Fix ESP host instance numbering. + - Fix TCP MD5 on big-endian. + - Fix zero length socket write() semantics. + - Fix sys_ipc() SEMCTL on sparc64. + - Fix TCP initial sequence number selection. + - lockdep: fix mismatched lockdep_depth/curr_chain_hash + - V4L: ivtv: fix udma yuv bug + - Fix TCP's ->fastpath_cnt_hit handling. + - hwmon/lm87: Fix a division by zero + - hwmon/lm87: Disable VID when it should be + - hwmon/w83627hf: Fix setting fan min right after driver load + - hwmon/w83627hf: Don't assume bank 0 + - netdrvr: natsemi: Fix device removal bug + - Fix ieee80211 handling of bogus hdrlength field + - mac80211: filter locally-originated multicast frames + - POWERPC: Fix handling of stfiwx math emulation + - dm9601: Fix receive MTU + - firewire: fix unloading of fw-ohci while devices are attached + - Fix cls_u32 error return handling. + - ACPI: disable lower idle C-states across suspend/resume + * Add stable release 2.6.22.12-rc1: + - genirq: cleanup mismerge artifact + - genirq: suppress resend of level interrupts + - genirq: mark io_apic level interrupts to avoid resend + - IB/uverbs: Fix checking of userspace object ownership + - minixfs: limit minixfs printks on corrupted dir i_size (CVE-2006-6058) + - param_sysfs_builtin memchr argument fix + - x86: fix global_flush_tlb() bug + - dm snapshot: fix invalidation deadlock + - Revert "x86_64: allocate sparsemem memmap above 4G" + + [ Bastian Blank ] + * Update vserver patch to 2.2.0.5. + - Ignore symbols from never to be merged patch. + + -- maximilian attems Sun, 4 Nov 2007 17:35:51 +0100 + +linux-2.6 (2.6.22-5) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.22.6: + - USB: allow retry on descriptor fetch errors + - PCI: lets kill the 'PCI hidden behind bridge' message + - Netfilter: Missing Kbuild entry for netfilter + - Fix soft-fp underflow handling. + - SPARC64: Fix sparc64 task stack traces. + - TCP: Do not autobind ports for TCP sockets + - DCCP: Fix DCCP GFP_KERNEL allocation in atomic context + - NET: Share correct feature code between bridging and bonding + - SNAP: Fix SNAP protocol header accesses. + - NET: Fix missing rcu unlock in __sock_create() + - IPv6: Invalid semicolon after if statement + - TCP: Fix TCP rate-halving on bidirectional flows. + - TCP: Fix TCP handling of SACK in bidirectional flows. + - uml: fix previous request size limit fix + - usb: add PRODUCT, TYPE to usb-interface events + - PPP: Fix PPP buffer sizing. + - ocfs2: Fix bad source start calculation during kernel writes + - signalfd: fix interaction with posix-timers + - signalfd: make it group-wide, fix posix-timers scheduling + - USB: fix DoS in pwc USB video driver + - sky2: don't clear phy power bits + - PCI: disable MSI on RS690 + - PCI: disable MSI on RD580 + - PCI: disable MSI on RX790 + - IPV6: Fix kernel panic while send SCTP data with IP fragments + - i386: fix lazy mode vmalloc synchronization for paravirt + * Set abi to 3. + * Add stable release 2.6.22.7: (CVE-2007-4573) + - x86_64: Zero extend all registers after ptrace in 32bit entry path. + * Add stable release 2.6.22.8: (CVE-2007-4571) + - Convert snd-page-alloc proc file to use seq_file + * Add stable release 2.6.22.9: + - 3w-9xxx: Fix dma mask setting + - Fix pktgen src_mac handling. + - nfs: fix oops re sysctls and V4 support + - DVB: get_dvb_firmware: update script for new location of tda10046 firmware + - afs: mntput called before dput + - disable sys_timerfd() + - Fix "Fix DAC960 driver on machines which don't support 64-bit DMA" + - futex_compat: fix list traversal bugs + - MTD: Initialise s_flags in get_sb_mtd_aux() + - Fix sparc64 v100 platform booting. + - Fix IPV6 DAD handling + - ext34: ensure do_split leaves enough free space in both blocks + - dir_index: error out instead of BUG on corrupt dx dirs + - Fix oops in vlan and bridging code + - V4L: ivtv: fix VIDIOC_S_FBUF: new OSD values were never set + - crypto: blkcipher_get_spot() handling of buffer at end of page + - Fix datagram recvmsg NULL iov handling regression. + - Handle snd_una in tcp_cwnd_down() + - Fix TCP DSACK cwnd handling + - JFFS2: fix write deadlock regression + - hwmon: End of I/O region off-by-one + - Fix debug regression in video/pwc + - splice: fix direct splice error handling + - Fix race with shared tag queue maps + - Fix ipv6 source address handling. + - POWERPC: Flush registers to proper task context + - bcm43xx: Fix cancellation of work queue crashes + - Fix DAC960 driver on machines which don't support 64-bit DMA + - DVB: get_dvb_firmware: update script for new location of sp8870 firmware + - USB: fix linked list insertion bugfix for usb core + - Correctly close old nfsd/lockd sockets. + - Fix IPSEC AH4 options handling + - setpgid(child) fails if the child was forked by sub-thread + - sigqueue_free: fix the race with collect_signal() + - Fix decnet device address listing. + - Fix inet_diag OOPS. + - Leases can be hidden by flocks + - kconfig: oldconfig shall not set symbols if it does not need to + - MTD: Makefile fix for mtdsuper + - firewire: fw-ohci: ignore failure of pci_set_power_state + (fix suspend regression) + - ieee1394: ohci1394: fix initialization if built non-modular + - Fix device address listing for ipv4. + - Fix tc_ematch kbuild + - V4L: cx88: Avoid a NULL pointer dereference during mpeg_open() + - DVB: b2c2-flexcop: fix Airstar HD5000 tuning regression + - fix realtek phy id in forcedeth + - rpc: fix garbage in printk in svc_tcp_accept() + - Fix IPV6 append OOPS. + - Fix ipv6 double-sock-release with MSG_CONFIRM + - ACPI: Validate XSDT, use RSDT if XSDT fails + * Update vserver patch to 2.2.0.4. + * Add stable release 2.6.22.10: + - i386: Use global flag to disable broken local apic timer on AMD CPUs. + - Fix timer_stats printout of events/sec + - libata: update drive blacklists + - i2c-algo-bit: Read block data bugfix + - scsi_transport_spi: fix domain validation failure from incorrect width + setting + - Fix SMP poweroff hangs + - Fix ppp_mppe kernel stack usage. + - sky2: reduce impact of watchdog timer + - sky2: fix VLAN receive processing + - sky2: fix transmit state on resume + - SELinux: clear parent death signal on SID transitions + - NLM: Fix a circular lock dependency in lockd + - NLM: Fix a memory leak in nlmsvc_testlock + + [ Martin Michlmayr ] + * [mips] Add a fix so qemu NE2000 will work again. + * [mipsel/r5k-cobalt] Enable MTD. + * [mips] Backport "Fix CONFIG_BUILD_ELF64 kernels with symbols in + CKSEG0" to fix crash on boot on IP32 (SGI O2). Closes: #444104. + + [ Steve Langasek ] + * Set CONFIG_MATHEMU=y on alpha, which is required for proper fp math on + at least ev4-ev56 systems. Closes: #411813. + * linux-image packages need to depend on a newer version of coreutils, + because of the use of readlink -q -m inherited from kernel-package. + Closes: #413311. + + [ Bastian Blank ] + * Fix tainted check in bug scripts. + + [ dann frazier ] + * [ia64] Re-enable various unintentionally disabled config options + + -- Maximilian Attems Thu, 11 Oct 2007 13:31:38 +0000 + +linux-2.6 (2.6.22-4) unstable; urgency=low + + [ dann frazier ] + * [hppa] Use generic compat_sys_getdents (closes: #431773) + + [ Martin Michlmayr ] + * [powerpc] Fix PS/2 keyboard detection on Pegasos (closes: #435378). + + [ Emanuele Rocca ] + * [sparc] Add patch to fix PCI config space accesses on sun4u. + * [sparc] Disable CONFIG_SCSI_SCAN_ASYNC. + + [ maximilian attems ] + * Add stable release 2.6.22.2: + - usb-serial: Fix edgeport regression on non-EPiC devices + - Missing header include in ipt_iprange.h + - drivers/video/macmodes.c:mac_find_mode() mustn't be __devinit + - Fix ipv6 tunnel endianness bug. + - aacraid: fix security hole + - USB: cdc-acm: fix sysfs attribute registration bug + - USB: fix warning caused by autosuspend counter going negative + - Fix sparc32 memset() + - Fix leak on /proc/lockdep_stats + - Fix leaks on /proc/{*/sched, sched_debug, timer_list, timer_stats} + - futex: pass nr_wake2 to futex_wake_op + - md: handle writes to broken raid10 arrays gracefully + - forcedeth bug fix: cicada phy + - forcedeth bug fix: vitesse phy + - forcedeth bug fix: realtek phy + - ACPI: dock: fix opps after dock driver fails to initialize + - pcmcia: give socket time to power down + - drm/i915: Fix i965 secured batchbuffer usage (CVE-2007-3851) + - Fix console write locking in sparc drivers. + - Sparc64 bootup assembler bug + - IPV6: /proc/net/anycast6 unbalanced inet6_dev refcnt + - make timerfd return a u64 and fix the __put_user + - Fix error queue socket lookup in ipv6 + - Input: lifebook - fix an oops on Panasonic CF-18 + - readahead: MIN_RA_PAGES/MAX_RA_PAGES macros + - V4L: Add check for valid control ID to v4l2_ctrl_next + - V4L: ivtv: fix broken VBI output support + - V4L: ivtv: fix DMA timeout when capturing VBI + another stream + - V4L: ivtv: Add locking to ensure stream setup is atomic + - V4L: wm8775/wm8739: Fix memory leak when unloading module + - do not limit locked memory when RLIMIT_MEMLOCK is RLIM_INFINITY + - Include serial_reg.h with userspace headers (closes: #433755) + - TCP FRTO retransmit bug fix + - Fix rfkill IRQ flags. + - nfsd: fix possible read-ahead cache and export table corruption + - nfsd: fix possible oops on re-insertion of rpcsec_gss modules + - jbd commit: fix transaction dropping + - jbd2 commit: fix transaction dropping + - softmac: Fix ESSID problem + - uml: limit request size on COWed devices + - UML: exports for hostfs + - splice: fix double page unlock + - cfq-iosched: fix async queue behaviour + - cr_backlight_probe() allocates too little storage for struct cr_panel + - sx: switch subven and subid values + - hugetlb: fix race in alloc_fresh_huge_page() + - KVM: SVM: Reliably detect if SVM was disabled by BIOS + - dm io: fix another panic on large request + - md: raid10: fix use-after-free of bio + - fs: 9p/conv.c error path fix + - Fix sparc32 udelay() rounding errors. + - sony-laptop: fix bug in event handling + - eCryptfs: ecryptfs_setattr() bugfix + - Hangup TTY before releasing rfcomm_dev + - dm io: fix panic on large request + - dm raid1: fix status + - dm snapshot: permit invalid activation + - "ext4_ext_put_in_cache" uses __u32 to receive physical block number + - destroy_workqueue() can livelock + - USB: fix for ftdi_sio quirk handling + - Fix TC deadlock. + - Fix IPCOMP crashes. + - gen estimator timer unload race + - Netfilter: Fix logging regression + - Fix user struct leakage with locked IPC shem segment + - Fix reported task file values in sense data + - gen estimator deadlock fix + - Netpoll leak + - dm: disable barriers + - firewire: fw-sbp2: set correct maximum payload (fixes CardBus adapters) + - fw-ohci: fix "scheduling while atomic" + - firewire: fix memory leak of fw_request instances + - ieee1394: revert "sbp2: enforce 32bit DMA mapping" + - libata: add FUJITSU MHV2080BH to NCQ blacklist + - i386: HPET, check if the counter works + - CPU online file permission + - acpi-cpufreq: Proper ReadModifyWrite of PERF_CTL MSR + - Keep rfcomm_dev on the list until it is freed + - SCTP scope_id handling fix + - Fix ipv6 link down handling. + - Fix TCP IPV6 MD5 bug. + - sysfs: release mutex when kmalloc() failed in sysfs_open_file(). + - nf_conntrack: don't track locally generated special ICMP error + * Bump abi due to firewire, ivtv and xrfm changes. + * Add stable release 2.6.22.3: + - fix oops in __audit_signal_info() + - direct-io: fix error-path crashes + - powerpc: Fix size check for hugetlbfs + - stifb: detect cards in double buffer mode more reliably + - pata_atiixp: add SB700 PCI ID + - PPC: Revert "[POWERPC] Add 'mdio' to bus scan id list for platforms + with QE UEC" + - random: fix bound check ordering (CVE-2007-3105) + - softmac: Fix deadlock of wx_set_essid with assoc work + - PPC: Revert "[POWERPC] Don't complain if size-cells == 0 in prom_parse()" + - ata_piix: update map 10b for ich8m + - CPUFREQ: ondemand: fix tickless accounting and software coordination bug + - CPUFREQ: ondemand: add a check to avoid negative load calculation + * Add stable release 2.6.22.4: + - Reset current->pdeath_signal on SUID binary execution (CVE-2007-3848) + * Add stable release 2.6.22.5: + - x86_64: Check for .cfi_rel_offset in CFI probe + - x86_64: Change PMDS invocation to single macro + - i386: Handle P6s without performance counters in nmi watchdog + - revert "x86, serial: convert legacy COM ports to platform devices" + - ACPICA: Fixed possible corruption of global GPE list + - ACPICA: Clear reserved fields for incoming ACPI 1.0 FADTs + - i386: Fix double fault handler + - JFFS2 locking regression fix. + - r8169: avoid needless NAPI poll scheduling + - Linux 2.6.22.5 + - AVR32: Fix atomic_add_unless() and atomic_sub_unless() + - i386: allow debuggers to access the vsyscall page with compat vDSO + - hwmon: (smsc47m1) restore missing name attribute + - hwmon: fix w83781d temp sensor type setting + - Hibernation: do not try to mark invalid PFNs as nosave + - sky2: restore workarounds for lost interrupts + - sky2: carrier management + - sky2: check for more work before leaving NAPI + - sky2: check drop truncated packets + - forcedeth: fix random hang in forcedeth driver when using netconsole + - libata: add ATI SB700 device IDs to AHCI driver + + [ dann frazier ] + * [ia64] Restore config cleanup now that its safe to break the ABI + + [ Bastian Blank ] + * Update vserver patch to 2.2.0.3. + + -- Bastian Blank Thu, 30 Aug 2007 20:19:44 +0200 + +linux-2.6 (2.6.22-3) unstable; urgency=low + + [ dann frazier ] + * [ia64] Config cleanup in 2.6.22-2 broke the ABI; revert most of it + for now (everything but the efivars and sym53c8xx modules) + + [ Martin Michlmayr ] + * [mipsel/r5k-cobalt] Fix a typo in the config file. + * [mipsel/4kc-malta] Update the config file, thanks Aurelien Jarno. + * [mipsel] Add patch from Yoichi Yuasa to fix IDE on Cobalt. + + -- Bastian Blank Sun, 29 Jul 2007 13:47:38 +0200 + +linux-2.6 (2.6.22-2) unstable; urgency=low + + [ Steve Langasek ] + * [alpha] request_irq-retval.patch: capture the return value of all + request_irq() calls in sys_titan.c to suppress the warning (and + build failure with -Werror); failures still aren't being handled, but + there's nothing that needs to be done -- or nothing that can be done + -- if these requests fail anyway. + + [ Christian T. Steigies ] + * Add module.lds to kernel headers (closes: #396220) + * Enable INPUT_UINPUT on mac + * Add 2.6.22 patches from linux-m68k CVS + + [ maximilian attems ] + * Add stable release 2.6.22.1: + - nf_conntrack_h323: add checking of out-of-range on choices' index values + (CVE-2007-3642) + + [ dann frazier ] + * [ia64] Re-enable various config options which were unintentionally + disabled somewhere between 2.6.21 and 2.6.22 + * [ia64] Re-enable vserver flavour - this was somehow lost when 2.6.22 + was merged from trunk to the sid branch + + [ Bastian Blank ] + * Update vserver patch to 2.2.0.3-rc1. + + -- Bastian Blank Mon, 23 Jul 2007 09:38:01 +0200 + +linux-2.6 (2.6.22-1) unstable; urgency=low + + [ Bastian Blank ] + * Drop asfs options. + * Drop linux-libc-headers references. + * Update vserver patch to 2.2.0-rc5. + + [ maximilian attems ] + * Fullfils policy 3.7.2.2. + * Add Sempron to the k7 image description (closes: #384737) + Thanks Robert Millan . + * [powerpc] Enable CONFIG_ADB_PMU_LED. + * [hppa] Disable a bunch of topconfig enabled fb devices. Thanks Frank + Lichtenheld for build fix. + + [ Christian T. Steigies ] + * Add module.lds to kernel headers + * Enable INPUT_UINPUT on mac + * Add 2.6.22 patches from linux-m68k CVS + + [ dann frazier ] + * Enable vserver flavour for ia64 (closes: #423232) + + -- Bastian Blank Sun, 15 Jul 2007 15:03:40 +0200 + +linux-2.6 (2.6.22~rc5-1~experimental.1) experimental; urgency=low + + [ Bastian Blank ] + * [powerpc]: Disable prep. + * [powerpc]: Disable apm emulation. + * Drop inactive members from Uploaders. + + [ maximilian attems ] + * Cleanup configs of old unused variables. + * Enable TCP_CONG_YEAH, TCP_CONG_ILLINOIS, NF_CONNTRACK_SANE, DM_DELAY, + GIGASET_M101, SATA_INIC162X, VIDEO_IVTV, USB_ZR364XX, INFINIBAND_CXGB3, + MLX4_INFINIBAND, SPI_AT25, MFD_SM501, DVB_USB_M920X, DVB_USB_GL861, + DVB_USB_AU6610, DVB_USB_OPERA1, SENSORS_AD7418, SENSORS_ADM1029, + SENSORS_F75375S, SENSORS_CORETEMP, SENSORS_MAX6650, SENSORS_APPLESMC, + I2C_SIMTEC, I2C_TINY_USB, SC92031, LIBERTAS_USB, RFKILL, RFKILL_INPUT, + MTD_UBI, SND_USB_CAIAQ, SND_USB_CAIAQ_INPUT, USB_BERRY_CHARGE, + RTC_DRV_MAX6900, SUNRPC_BIND34, SND_PORTMAN2X4, FB_VT8623, FUSION_LAN, + DISPLAY_SUPPORT, FB_ARK, FB_SM501 + and disable SCSI_ESP_CORE, SPI_SPIDEV, CRYPT_CRYPTD, SYSV68_PARTITION, + MOUSE_PS2_TOUCHKIT, INPUT_POLLDEV in topconfig. + * [amd64, i386]: Take care of the renaming acpi-ibm to thinkpad-acpi. + Enable KINGSUN_DONGLE, AF_RXRPC, RXKAD, MTD_NAND_PLATFORM, BLINK, PHANTOM, + BACKLIGHT_PROGEAR, FB_HECUBA, FB_LE80578, FB_CARILLO_RANCH. + Disable OSS_OBSOLETE. + * Enable WLAN_PRE80211 and WLAN_80211 on all archs with NET_RADIO enabled. + * Fix RTC_INTF_{DEV,SYSFS,PROC}=y where enabled modular. + * Enable new wirless stack mac80211 and improved wireless conf api. + * Enable new USB Touchscreen Driver on all configs with touchscreens. + * Enable the newly added crypto algorythm: fcrypt, pcbc and camellia. + * Unify CONFIG_TR to toplevel config, also enable new drivers 3C359 + and SMCTR. + * Enable the moved USB tablets config options where wacom is enabled. + * [i386] Enable driver for Crystalfontz 128x64 2-color LCD. + * [amd64] Enable KS0108 LCD controller. + * Enable the new firewire stack labeled to be more simple and robust. + * [i386] Enable VMI paravirtualized interface. + * [powerpc] Enable fb for IBM GXT4500P adaptor. + * [amd64] Enable timerstats too. + + [ Martin Michlmayr ] + * mipsel/r5k-cobalt: Use the new RTC system. + + [ dann frazier ] + * Add Xen licensing info to the copyright file. (closes: #368912) + + [ Gordon Farquharson ] + * arm: Mark CHELSIO_T3, NETXEN_NIC, BCM43XX, VIDEO_BT848, + DVB_B2C2_FLEXCOP, and DVB_BUDGET as broken on ARM. + * arm/ixp4xx: Add support for the new generic I2C GPIO driver on the + NSLU2 and the NAS100D. Thanks to Michael-Luke Jones and Rod Whitby. + * arm/ixp4xx: Update Artop PATA support patch for the NAS 100d. + + [ Christian T. Steigies ] + * m68k: Disable already included patches (611, 618, 630) + + -- Bastian Blank Tue, 19 Jun 2007 17:49:52 +0200 + +linux-2.6 (2.6.21-6) unstable; urgency=low + + * Add stable release 2.6.21.6: + - nf_conntrack_h323: add checking of out-of-range on choices' index values + (CVE-2007-3642) + * Update vserver patch to 2.2.0. + + -- Bastian Blank Tue, 10 Jul 2007 18:36:17 +0200 + +linux-2.6 (2.6.21-5) unstable; urgency=low + + [ Christian T. Steigies ] + * [m68k] Add atari isa and scsi fixes + + [ maximilian attems ] + * Add stable release 2.6.21.4: + - cpuset: prevent information leak in cpuset_tasks_read (CVE-2007-2875) + - random: fix error in entropy extraction (CVE-2007-2453 1 of 2) + - random: fix seeding with zero entropy (CVE-2007-2453 2 of 2) + - NETFILTER: {ip, nf}_conntrack_sctp: fix remotely triggerable NULL ptr + dereference (CVE-2007-2876) + * Add stable release 2.6.21.5: + - acpi: fix potential call to a freed memory section. + - USB: set the correct Interrupt interval in usb_bulk_msg + - i386: Fix K8/core2 oprofile on multiple CPUs + - ntfs_init_locked_inode(): fix array indexing + - ALSA: wm8750 typo fix + - neofb: Fix pseudo_palette array overrun in neofb_setcolreg + - e1000: disable polling before registering netdevice + - timer statistics: fix race + - x86: fix oprofile double free + - ALSA: usb-audio: explicitly match Logitech QuickCam + - zd1211rw: Add AL2230S RF support + - IPV4: Correct rp_filter help text. + - Fix AF_UNIX OOPS + - ICMP: Fix icmp_errors_use_inbound_ifaddr sysctl + - NET: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.h + - SPARC64: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler. + - SPARC64: Don't be picky about virtual-dma values on sun4v. + - SPARC64: Fix two bugs wrt. kernel 4MB TSB. + - cciss: fix pci_driver.shutdown while device is still active + - fix compat console unimap regression + - timer stats: speedups + - SPARC: Linux always started with 9600 8N1 + - pci_ids: update patch for Intel ICH9M + - PCI: quirk disable MSI on via vt3351 + - UML - Improve host PTRACE_SYSEMU check + - NET: parse ip:port strings correctly in in4_pton + - Char: cyclades, fix deadlock + - IPSEC: Fix panic when using inter address familiy IPsec on loopback. + - TCP: Use default 32768-61000 outgoing port range in all cases. + - TG3: Fix link problem on Dell's onboard 5906. + - fuse: fix mknod of regular file + - md: Avoid overflow in raid0 calculation with large components. + - md: Don't write more than is required of the last page of a bitmap + - make freezeable workqueues singlethread + - tty: fix leakage of -ERESTARTSYS to userland + - V4L/DVB (5593): Budget-ci: Fix tuning for TDM 1316 (160..200 MHz) + - Input: i8042 - fix AUX port detection with some chips + - SCSI: aacraid: Correct sa platform support. + (Was: [Bug 8469] Bad EIP value on pentium3 SMP kernel-2.6.21.1) + - BLUETOOTH: Fix locking in hci_sock_dev_event(). + - hpt366: don't check enablebits for HPT36x + - ieee1394: eth1394: bring back a parent device + - NET: Fix race condition about network device name allocation. + - ALSA: hda-intel - Probe additional slots only if necessary + - ALSA: hda-intel - Fix detection of audio codec on Toshiba A100 + - ahci: disable 64bit dma on sb600 + - i386: HPET, check if the counter works + - Ignore bogus ACPI info for offline CPUs + - NOHZ: Rate limit the local softirq pending warning output + - Prevent going idle with softirq pending + - Work around Dell E520 BIOS reboot bug + - NET: "wrong timeout value" in sk_wait_data() v2 + - IPV6 ROUTE: No longer handle ::/0 specially. + - x86_64: allocate sparsemem memmap above 4G + * Bump ABI to 2. + + [ Bastian Blank ] + * Back out ABI fixing changes. + * Update vserver patch to 2.2.0-rc3. + + -- Bastian Blank Fri, 22 Jun 2007 12:39:47 +0200 + +linux-2.6 (2.6.21-4) unstable; urgency=low + + * [powerpc] Fix mkvmlinuz support. + * [s390] Add exception handler for diagnose 224. + + -- Bastian Blank Sat, 26 May 2007 14:08:44 +0200 + +linux-2.6 (2.6.21-3) unstable; urgency=low + + [ Gordon Farquharson ] + * arm/ixp4xx: Add patch to set NSLU2 timer frequency. + + [ maximilian attems ] + * sparc64: enable USB_SERIAL. (closes: #412740) + * Apply stable 2.6.21.1. + * Add stable release 2.6.21.2: + - slob: fix page order calculation on not 4KB page + - libata-sff: Undo bug introduced with pci_iomap changes + - kbuild: fixdep segfault on pathological string-o-death + - IPMI: fix SI address space settings + - IPV6: Reverse sense of promisc tests in ip6_mc_input + - iop: fix iop_getttimeoffset + - iop13xx: fix i/o address translation + - arm: fix handling of svc mode undefined instructions + - CPUFREQ: powernow-k7: fix MHz rounding issue with perflib + - CPUFREQ: Support rev H AMD64s in powernow-k8 + - CPUFREQ: Correct revision mask for powernow-k8 + - JFS: Fix race waking up jfsIO kernel thread + - IPV6: Send ICMPv6 error on scope violations. + - SPARC64: Add missing cpus_empty() check in hypervisor xcall handling. + - SPARC64: Fix recursion in PROM tree building. + - SERIAL SUNHV: Add an ID string. + - SPARC64: Bump PROMINTR_MAX to 32. + - SPARC64: Be more resiliant with PCI I/O space regs. + - oom: fix constraint deadlock + - fix for bugzilla 8426: massive slowdown on SCSI CD/DVD drive connected to + mptspi driver + - x86_64 : Fix vgettimeofday() + - IPV6: Fix slab corruption running ip6sic + - IPSEC: Check validity of direction in xfrm_policy_byid + - CRYPTO: api: Read module pointer before freeing algorithm + - NET_SCHED: prio qdisc boundary condition + - reiserfs: suppress lockdep warning + - USB HID: hiddev - fix race between hiddev_send_event() and + hiddev_release() + - NETFILTER: {ip,nf}_nat_proto_gre: do not modify/corrupt GREv0 packets + through NAT + - fix leaky resv_huge_pages when cpuset is in use + - ACPI: Fix 2.6.21 boot regression on P4/HT + - TG3: Fix TSO bugs. + - TG3: Remove reset during MAC address changes. + - TG3: Update version and reldate. + - BNX2: Fix TSO problem with small MSS. + - BNX2: Block MII access when ifdown. + - BNX2: Save PCI state during suspend. + - BNX2: Update version and reldate. + - sis900: Allocate rx replacement buffer before rx operation + - knfsd: Avoid use of unitialised variables on error path when nfs exports. + - knfsd: rpc: fix server-side wrapping of krb5i replies + - md: Avoid a possibility that a read error can wrongly propagate through + - md/raid1 to a filesystem. + - fat: fix VFAT compat ioctls on 64-bit systems + - NETFILTER: {ip,nf}_conntrack: fix use-after-free in helper destroy + callback invocation + - ppp: Fix ppp_deflate issues with recent zlib_inflate changes + - NETPOLL: Fix TX queue overflow in trapped mode. + - NETPOLL: Remove CONFIG_NETPOLL_RX + - cxacru: Fix infinite loop when trying to cancel polling task + - TCP: zero out rx_opt in tcp_disconnect() + - ipv6: track device renames in snmp6 + - skge: default WOL should be magic only (rev2) + - skge: allow WOL except for known broken chips + - sky2: allow 88E8056 + - sky2: 88e8071 support not ready + - skge: crash on shutdown/suspend + - sky2: fix oops on shutdown + - udf: decrement correct link count in udf_rmdir + - ALSA: hda-codec - Fix resume of STAC92xx codecs + - sata_via: add missing PM hooks + - driver-core: don't free devt_attr till the device is released + - pci-quirks: disable MSI on RS400-200 and RS480 + - highres/dyntick: prevent xtime lock contention + - clocksource: fix resume logic + - smc911x: fix compilation breakage wjen debug is on + - SCTP: Fix sctp_getsockopt_local_addrs_old() to use local storage. + - SCTP: Correctly copy addresses in sctp_copy_laddrs + - SCTP: Prevent OOPS if hmac modules didn't load + - IPV6: Do no rely on skb->dst before it is assigned. + - IPV6 ROUTE: Assign rt6i_idev for ip6_{prohibit,blk_hole}_entry. + + [ Christian T. Steigies ] + * m68k: enable ATARI_SCSI and ATARI_ROM_ISA + + [ Bastian Blank ] + * Fix linux/version.h in linux-libc-dev. + * Make it possible to specifiy special CFLAGS. + * [hppa] Reenable. + * [hppa] Workaround hppa64 failure. + * [hppa] Fix debugging in lws syscalls. + * Fix abi change. + * Add stable release 2.6.21.3: + - [PATCH] GEODE-AES: Allow in-place operations [CVE-2007-2451] + + -- Bastian Blank Fri, 25 May 2007 10:57:48 +0200 + +linux-2.6 (2.6.21-2) unstable; urgency=low + + [ Christian T. Steigies ] + * m68k: fix atari scc patch + * m68k: install compressed vmlinuz images so the post-inst script can find it + + [ Steve Langasek ] + * [alpha] isa-mapping-support.patch: add isa_page_to_bus and + isa_bus_to_virt defines to complement the existing isa_virt_to_bus + define; untested, but these should all be straightforward on alpha and + defining them is certainly a better option for getting user feedback + than disabling the affected drivers. + + [ Bastian Blank ] + * [powerpc] Readd mkvmlinuz support. (closes: #419033) + * [sparc]: Disable sparc32 image. + * [hppa]: Temporary disable all images. + + -- Bastian Blank Fri, 18 May 2007 19:52:36 +0200 + +linux-2.6 (2.6.21-1) unstable; urgency=low + + [ maximilian attems ] + * New upstream release see http://kernelnewbies.org/Linux_2_6_21 + (closes: #423874) + * Disable CONFIG_IP_ROUTE_MULTIPATH_CACHED in topconfig. + * Enable CONFIG_IP6_NF_MATCH_MH, CONFIG_CHELSIO_T3, CONFIG_USB_NET_DM9601, + CONFIG_NETFILTER_XT_TARGET_TCPMSS, CONFIG_RTC_DRV_CMOS, + CONFIG_ASUS_LAPTOP, CONFIG_SONY_LAPTOP, CONFIG_DVB_TUNER_QT1010, + CONFIG_USB_IOWARRIOR, CONFIG_ATL1 in topconfig. + * [i386] Enable CONFIG_ACPI_BAY, CONFIG_X86_LONGHAUL, CONFIG_BLK_DEV_DELKIN, + CONFIG_BLK_DEV_IT8213, CONFIG_BLK_DEV_TC86C001, CONFIG_INPUT_ATLAS_BTNS, + CONFIG_SENSORS_ADM1029, CONFIG_FB_SVGALIB, CONFIG_FB_S3, + CONFIG_USB_KC2190, CONFIG_KS0108. + * Add stable release 2.6.21.1: + - IPV4: Fix OOPS'er added to netlink fib. + - IPV6: Fix for RT0 header ipv6 change. + * [i386] Enable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for dynticks and true + high-resolution timers. + * [i386] Enable CONFIG_TIMER_STATS to collect stats about kernel/userspace + timer aka power usage (see powertop). (closes: #423694) + * [i386] Disable obsolete CONFIG_IRQBALANCE due to bad timer behaviour. + + [ Martin Michlmayr ] + * Add armel (arm with EABI) support. Thanks, Lennert Buytenhek and + Joey Hess. (closes: #410853) + * Mark CHELSIO_T3 as broken on ARM. + * Take arch/arm/tools/mach-types from current git to fix build failure + because MACH_TYPE_EP80219 is not defined. + * mips/sb1: Don't build CONFIG_ATA into the kernel. + * mips/sb1: Unset CONFIG_USB_{KBD,MOUSE} since the generic HID is used. + * arm/iop32x: Don't build CONFIG_ATA into the kernel. + * arm/ixp4xx: Enable more SATA drivers. + * arm/ixp4xx: Enable PATA_ARTOP which is needed by the nas100d. + * arm/ixp4xx: Set CONFIG_USB_EHCI_TT_NEWSCHED. + * mips/4kc-malta: Add an image for the MIPS Malta board. Thanks, + Aurelien Jarno. (closes: #421377) + + [ Emanuele Rocca ] + * sparc: Enable CONFIG_SCSI_QLOGIC_1280. (closes: #423177) + + [ Christian T. Steigies ] + * Add m68k patches for 2.6.21 + * Add type: plain to [image] in arch/m68k/defines to fix missing + Modules.symvers problem + + [ Steve Langasek ] + * Revert change to disable image building on alpha. + + [ Bastian Blank ] + * Update vserver patch to 2.2.0-rc1. + + -- Bastian Blank Wed, 16 May 2007 13:46:38 +0200 + +linux-2.6 (2.6.20-3) unstable; urgency=low + + [ Gordon Farquharson ] + * arm: Mark CONFIG_MTD_NAND_CAFE and CONFIG_NETXEN_NIC as broken to + fix FTBFS. + + [ Bastian Blank ] + * Disable new pata drivers. (closes: #419458) + * Disable pata in ata_piix. + + -- Bastian Blank Tue, 24 Apr 2007 09:54:44 +0200 + +linux-2.6 (2.6.20-2) unstable; urgency=low + + [ Bastian Blank ] + * Rename linux-libc-headers into linux-libc-dev. + * [mips] Drop sb1250 uart support. + * [alpha] Temporary disable alpha images. + * Add stable release 2.6.20.7: + - Linux 2.6.20.7 + - Update libata drive blacklist to the latest from 2.6.21 + - fix page leak during core dump + - revert "retries in ext4_prepare_write() violate ordering requirements" + - revert "retries in ext3_prepare_write() violate ordering requirements" + - libata: Clear tf before doing request sense (take 3) + - fix lba48 bug in libata fill_result_tf() + - ahci.c: walkaround for SB600 SATA internal error issue + - libata bugfix: preserve LBA bit for HDIO_DRIVE_TASK + - softmac: avoid assert in ieee80211softmac_wx_get_rate + - knfsd: allow nfsd READDIR to return 64bit cookies + - Fix TCP slow_start_after_idle sysctl + - Fix tcindex classifier ABI borkage... + - Fix IPSEC replay window handling + - Fix TCP receiver side SWS handling. + - Fix scsi sense handling + - Fix length validation in rawv6_sendmsg() + - NETFILTER: ipt_CLUSTERIP: fix oops in checkentry function + - 8139too: RTNL and flush_scheduled_work deadlock + - Fix calculation for size of filemap_attr array in md/bitmap. + - HID: Do not discard truncated input reports + - DVB: pluto2: fix incorrect TSCR register setting + - DVB: tda10086: fix DiSEqC message length + - sky2: phy workarounds for Yukon EC-U A1 + - sky2: turn on clocks when doing resume + - sky2: turn carrier off when down + - skge: turn carrier off when down + - sky2: reliable recovery + - i386: fix file_read_actor() and pipe_read() for original i386 systems + - kbuild: fix dependency generation + + [ dann frazier ] + * [hppa] Add parisc arch patch from Kyle McMartin + * [hppa] Enable CONFIG_TULIP_MMIO (closes: #332962) + * [hppa] Disable ni52 driver, it doesn't build (and wouldn't work if it did) + + -- Bastian Blank Sun, 15 Apr 2007 16:04:16 +0200 + +linux-2.6 (2.6.20-1) unstable; urgency=low + + [ Martin Michlmayr ] + * mipsel: Drop DECstation support (both r3k-kn02 and r4k-kn04). + * arm: Drop RiscPC (rpc) support. + * arm: Update configs for 2.6.19-rc6. + * arm: source drivers/ata/Kconfig so SATA can be enabled on ARM. + * arm/footbridge: Unset SATA. + * arm/s3c2410: Drop this flavour since no such device is supported + in debian-installer and the ARM build resources are limited. + + [ Sven Luther ] + * [powerpc] Added Genesi Efika support patch + + [ Bastian Blank ] + * Remove legacy pty support. (closes: #338404) + * Enable new scsi parts. + * powerpc: Enable ibmvscsis. + * Add stable release 2.6.20.1: + - Linux 2.6.20.1 + - [PATCH] Fix a free-wrong-pointer bug in nfs/acl server (CVE-2007-0772) + * Add stable release 2.6.20.2: + - Linux 2.6.20.2 + - IPV6: Handle np->opt being NULL in ipv6_getsockopt_sticky() [CVE-2007-1000] + - x86-64: survive having no irq mapping for a vector + - Fix buffer overflow in Omnikey CardMan 4040 driver (CVE-2007-0005) + - TCP: Fix minisock tcp_create_openreq_child() typo. + - gfs2: fix locking mistake + - ATA: convert GSI to irq on ia64 + - pktcdvd: Correctly set cmd_len field in pkt_generic_packet + - video/aty/mach64_ct.c: fix bogus delay loop + - revert "drivers/net/tulip/dmfe: support basic carrier detection" + - throttle_vm_writeout(): don't loop on GFP_NOFS and GFP_NOIO allocations + - fix section mismatch warning in lockdep + - ueagle-atm.c needs sched.h + - kvm: Fix asm constraint for lldt instruction + - lockdep: forward declare struct task_struct + - Char: specialix, isr have 2 params + - buffer: memorder fix + - kernel/time/clocksource.c needs struct task_struct on m68k + - m32r: build fix for processors without ISA_DSP_LEVEL2 + - hugetlb: preserve hugetlb pte dirty state + - enable mouse button 2+3 emulation for x86 macs + - v9fs_vfs_mkdir(): fix a double free + - ufs: restore back support of openstep + - Fix MTRR compat ioctl + - kexec: Fix CONFIG_SMP=n compilation V2 (ia64) + - NLM: Fix double free in __nlm_async_call + - RPM: fix double free in portmapper code + - Revert "[PATCH] LOG2: Alter get_order() so that it can make use of ilog2() on a constant" + - Backport of psmouse suspend/shutdown cleanups + - USB: usbnet driver bugfix + - sched: fix SMT scheduler bug + - tty_io: fix race in master pty close/slave pty close path + - forcedeth: disable msix + - export blk_recount_segments + - Fix reference counting (memory leak) problem in __nfulnl_send() and callers related to packet queueing. + - Fix anycast procfs device leak + - Don't add anycast reference to device multiple times + - Fix TCP MD5 locking. + - Fix %100 cpu spinning on sparc64 + - Fix skb data reallocation handling in IPSEC + - Fix xfrm_add_sa_expire() return value + - Fix interrupt probing on E450 sparc64 systems + - HID: fix possible double-free on error path in hid parser + - POWERPC: Fix performance monitor exception + - libata: add missing CONFIG_PM in LLDs + - libata: add missing PM callbacks + - bcm43xx: Fix assertion failures in interrupt handler + - mmc: Power quirk for ENE controllers + - UML - Fix 2.6.20 hang + - fix umask when noACL kernel meets extN tuned for ACLs + - sata_sil: ignore and clear spurious IRQs while executing commands by polling + - swsusp: Fix possible oops in userland interface + - Fix posix-cpu-timer breakage caused by stale p->last_ran value + - V4L: cx88-blackbird: allow usage of 376836 and 262144 sized firmware images + - V4L: fix cx25840 firmware loading + - DVB: digitv: open nxt6000 i2c_gate for TDED4 tuner handling + - DVB: cxusb: fix firmware patch for big endian systems + - V4L: pvrusb2: Handle larger cx2341x firmware images + - V4L: pvrusb2: Fix video corruption on stream start + - dvbdev: fix illegal re-usage of fileoperations struct + - md: Fix raid10 recovery problem. + - bcm43xx: fix for 4309 + - i386: Fix broken CONFIG_COMPAT_VDSO on i386 + - x86: Don't require the vDSO for handling a.out signals + - x86_64: Fix wrong gcc check in bitops.h + - sky2: transmit timeout deadlock + - sky2: dont flush good pause frames + - Fix oops in xfrm_audit_log() + - Prevent pseudo garbage in SYN's advertized window + - Fix IPX module unload + - Clear TCP segmentation offload state in ipt_REJECT + - Fix atmarp.h for userspace + - UHCI: fix port resume problem + - Fix recently introduced problem with shutting down a busy NFS server. + - Avoid using nfsd process pools on SMP machines. + - EHCI: turn off remote wakeup during shutdown + - IPV6: HASHTABLES: Use appropriate seed for caluculating ehash index. + - MTD: Fatal regression in drivers/mtd/redboot.c in 2.6.20 + - Kconfig: FAULT_INJECTION can be selected only if LOCKDEP is enabled. + - USB HID: Fix USB vendor and product IDs endianness for USB HID devices + - Fix null pointer dereference in appledisplay driver + - ieee1394: fix host device registering when nodemgr disabled + - ieee1394: video1394: DMA fix + - Fix compile error for e500 core based processors + - md: Avoid possible BUG_ON in md bitmap handling. + - Fix allocation failure handling in multicast + - Fix TCP FIN handling + - Fix ATM initcall ordering. + - Fix various bugs with aligned reads in RAID5. + - hda-intel - Don't try to probe invalid codecs + - usbaudio - Fix Oops with unconventional sample rates + - usbaudio - Fix Oops with broken usb descriptors + - USB: fix concurrent buffer access in the hub driver + - Missing critical phys_to_virt in lib/swiotlb.c + - AGP: intel-agp bugfix + - bcm43xx: Fix for oops on ampdu status + - bcm43xx: Fix for oops on resume + - ide: fix drive side 80c cable check + - Keys: Fix key serial number collision handling + - knfsd: Fix a race in closing NFSd connections. + - pata_amd: fix an obvious bug in cable detection + - prism54: correct assignment of DOT1XENABLE in WE-19 codepaths + - rtc-pcf8563: detect polarity of century bit automatically + - x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted + - ocfs2: ocfs2_link() journal credits update + * Update xen patch to changeset 48670 from fedora 2.6.20 branch. + * Support xen versions 3.0.4-1 and 3.0.3-1. + + [ Rod Whitby ] + * arm/ixp4xx: Enable PATA_ARTOP for the nas100d and dsmg600. + * arm/ixp4xx: Enable RTC for the nas100d + * Add nas100d Ethernet MAC setup support. + * Add temporary hack to get Artop PATA support going on the nas100d. + + [ maximilian attems ] + * i386: Enable kvm. + * Add stable release 2.6.20.3: + - Fix sparc64 device register probing + - Fix bug 7994 sleeping function called from invalid context + - Fix timewait jiffies + - Fix UDP header pointer after pskb_trim_rcsum() + - Fix compat_getsockopt + - bcm43xx: Fix problem with >1 GB RAM + - nfnetlink_log: fix NULL pointer dereference + - nfnetlink_log: fix possible NULL pointer dereference + - conntrack: fix {nf, ip}_ct_iterate_cleanup endless loops + - nf_conntrack/nf_nat: fix incorrect config ifdefs + - tcp conntrack: accept SYN|URG as valid + - nfnetlink_log: fix reference leak + - nfnetlink_log: fix use after free + - nf_conntrack: fix incorrect classification of IPv6 fragments as + ESTABLISHED + - nfnetlink_log: zero-terminate prefix + - nfnetlink_log: fix crash on bridged packet + - Fix callback bug in connector + - fix for bugzilla #7544 (keyspan USB-to-serial converter) + - ip6_route_me_harder should take into account mark + * Add myself to uploaders field, entry got lost after 2.6.16-2 + * Add stable release 2.6.20.4: + - fix deadlock in audit_log_task_context() + - EHCI: add delay to bus_resume before accessing ports + - Copy over mac_len when cloning an skb + - fix read past end of array in md/linear.c + - oom fix: prevent oom from killing a process with children/sibling unkillable + - Fix sparc64 hugepage bugs + - Fix page allocation debugging on sparc64 + - Fix niagara memory corruption + - Input: i8042 - really suppress ACK/NAK during panic blink + - Input: i8042 - fix AUX IRQ delivery check + - Input: i8042 - another attempt to fix AUX delivery checks + - Fix rtm_to_ifaddr() error return. + - r8169: fix a race between PCI probe and dev_open + - futex: PI state locking fix + - adjust legacy IDE resource setting (v2) + - UML - arch_prctl should set thread fs + - gdth: fix oops in gdth_copy_cmd() + - Fix extraneous IPSEC larval SA creation + - IA64: fix NULL pointer in ia64/irq_chip-mask/unmask function + - st: fix Tape dies if wrong block size used, bug 7919 + - Fix ipv6 flow label inheritance + - NETFILTER: nfnetlink_log: fix reference counting + - mm: fix madvise infinine loop + - Fix another NULL pointer deref in ipv6_sockglue.c + - NetLabel: Verify sensitivity level has a valid CIPSO mapping + - Fix GFP_KERNEL with preemption disabled in fib_trie + - IrDA: irttp_dup spin_lock initialisation + - hda-intel - Fix codec probe with ATI controllers + - hrtimer: prevent overrun DoS in hrtimer_forward() + - fix MTIME_SEC_MAX on 32-bit + - nfs: nfs_getattr() can't call nfs_sync_mapping_range() for non-regular files + - dio: invalidate clean pages before dio write + - initialise pi_lock if CONFIG_RT_MUTEXES=N + * Add stable release 2.6.20.5: + - FRA_{DST,SRC} are le16 for decnet + - CIFS: reset mode when client notices that ATTR_READONLY is no longer set + - ide: clear bmdma status in ide_intr() for ICHx controllers (revised #4) + - ide: remove clearing bmdma status from cdrom_decode_status() (rev #4) + - NET: Fix sock_attach_fd() failure in sys_accept() + - DCCP: Fix exploitable hole in DCCP socket options + - ide: revert "ide: fix drive side 80c cable check, take 2" for now + - generic_serial: fix decoding of baud rate + - IPV6: Fix ipv6 round-robin locking. + - VIDEO: Fix FFB DAC revision probing + - PPP: Fix PPP skb leak + - V4L: msp_attach must return 0 if no msp3400 was found. + - CRYPTO: api: scatterwalk_copychunks() fails to advance through scatterlist + - APPLETALK: Fix a remotely triggerable crash (CVE-2007-1357) + - UML - fix epoll + - UML - host VDSO fix + - UML - Fix static linking + - UML - use correct register file size everywhere + - libata: sata_mv: don't touch reserved bits in EDMA config register + - libata: sata_mv: Fix 50xx irq mask + - libata bugfix: HDIO_DRIVE_TASK + - V4L: Fix SECAM handling on saa7115 + - DVB: fix nxt200x rf input switching + - SPARC: Fix sparc builds with gcc-4.2.x + - V4L: saa7146: Fix allocation of clipping memory + - uml: fix unreasonably long udelay + - NET: Fix packet classidier NULL pointer OOPS + - NET_SCHED: Fix ingress qdisc locking. + - sata_nv: delay on switching between NCQ and non-NCQ commands + - dvb-core: fix several locking related problems + - ieee1394: dv1394: fix CardBus card ejection + - CIFS: Allow reset of file to ATTR_NORMAL when archive bit not set + - jmicron: make ide jmicron driver play nice with libata ones + - libata: clear TF before IDENTIFYing + - NET: Fix FIB rules compatability + - DVB: isl6421: don't reference freed memory + - V4L: radio: Fix error in Kbuild file + - i2o: block IO errors on i2o disk + * Add stable release 2.6.20.6: + - CRYPTO api: Use the right value when advancing scatterwalk_copychunks + - uml: fix static linking for real + + [ Gordon Farquharson ] + * Disable broken config options on ARM. + + [ Frederik Schüler ] + * Disable NAPI on forcedeth, it is broken. + + [ dann frazier ] + * Hardcode the output of the scripts under arch/ia64/scripts as executed + in an etch environment so that we can build out of tree modules correctly + (re-add; patch seems to have been dropped during a merge.) + See: #392592 + * Allow '.' and '+' in the target dist field of the changelog. dpkg has + supported this since 1.13.20, see #361171. + + -- Bastian Blank Mon, 09 Apr 2007 19:21:52 +0200 + +linux-2.6 (2.6.18.dfsg.1-10) unstable; urgency=low + + [ maximilian attems ] + * Add patches out of stable queue 2.6.18 + - [amd64] Don't leak NT bit into next task (CVE-2006-5755) + - IB/srp: Fix FMR mapping for 32-bit kernels and addresses above 4G + - SCSI: add missing cdb clearing in scsi_execute() + * Xen postinst: Use takeover for update-initramfs. Makes postinst idempotent. + On creation it should always overwrite. (closes: #401183) + * Hand-picked from stable release 2.6.16.38: + - i2c-viapro: Add support for the VT8237A and VT8251 + - PCI: irq: irq and pci_ids patch for Intel ICH9 + - i2c-i801: SMBus patch for Intel ICH9 + - fix the UML compilation + - drm: allow detection of new VIA chipsets + - drm: Add the P4VM800PRO PCI ID. + - rio: typo in bitwise AND expression. + - i2c-mv64xxx: Fix random oops at boot + - i2c: fix broken ds1337 initialization + - [SUNKBD]: Fix sunkbd_enable(sunkbd, 0); obvious. + - Call init_timer() for ISDN PPP CCP reset state timer (CVE-2006-5749) + - V4L: cx88: Fix leadtek_eeprom tagging + - SPI/MTD: mtd_dataflash oops prevention + - grow_buffers() infinite loop fix (CVE-2006-5757/CVE-2006-6060) + - corrupted cramfs filesystems cause kernel oops (CVE-2006-5823) + - ext2: skip pages past number of blocks in ext2_find_entry + (CVE-2006-6054) + - handle ext3 directory corruption better (CVE-2006-6053) + - hfs_fill_super returns success even if no root inode (CVE-2006-6056) + backout previous fix, was not complete. + - Fix for shmem_truncate_range() BUG_ON() + - ebtables: check struct type before computing gap + - [IPV4/IPV6]: Fix inet{,6} device initialization order. + - [IPV6] Fix joining all-node multicast group. + - [SOUND] Sparc CS4231: Use 64 for period_bytes_min + * [PKTGEN]: Convert to kthread API. Thanks David Miller for patch. + * [IDE] Add driver for Jmicron JMB36x devices by Alan Cox. + Enable jmicron on i386 and amd64 archs. + * Hand-picked from stable release 2.6.16.39: + - atiixp: hang fix + - V4L/DVB: Flexcop-usb: fix debug printk + - V4L/DVB: Fix uninitialised variable in dvb_frontend_swzigzag + - read_zero_pagealigned() locking fix + - adfs: fix filename handling + - sparc32: add offset in pci_map_sg() + - cdrom: set default timeout to 7 seconds + - [SCSI] qla1280 command timeout + - [SCSI] qla1280 bus reset typo + - [Bluetooth] Check if DLC is still attached to the TTY + - [Bluetooth] Fix uninitialized return value for RFCOMM sendmsg() + - [Bluetooth] Return EINPROGRESS for non-blocking socket calls + - [Bluetooth] Handle command complete event for exit periodic inquiry + - [Bluetooth] Fix compat ioctl for BNEP, CMTP and HIDP + - [Bluetooth] Add locking for bt_proto array manipulation + - i386: fix CPU hotplug with 2GB VMSPLIT + + [ dann frazier ] + * Fix raid1 recovery (closes: #406181) + + [ Jurij Smakov ] + * Add dtlb-prot-bug-niagara.patch by David Miller, fixing the bug in the + Niagara's DTLB-PROT trap. + + [ Bastian Blank ] + * i386: Add amd64 image. (closes: #379090) + + -- Bastian Blank Fri, 2 Feb 2007 12:50:35 +0100 + +linux-2.6 (2.6.18.dfsg.1-9) unstable; urgency=low + + [ Martin Michlmayr ] + * arm/iop32x: Enable CONFIG_IP_NF_CONNTRACK_EVENTS and _NETLINK. + * arm/ixp4xx: Enable some more I2C sensor modules. + * arm/ixp4xx: Enable CONFIG_USB_NET_RNDIS_HOST. + * arm/footbridge: Enable CONFIG_NATSEMI. + * Revert mm/msync patches because they cause filesystem corruption + (closes: #401006, #401980, #402707) ... + * ... and add an alternative msync patch from Hugh Dickins that + doesn't depend on the mm changes (closes: #394392). + * mips: provide pci_get_legacy_ide_irq needed by some IDE drivers + (see #404950). + * arm: Implement flush_anon_page(), which is needed for FUSE + (closes: #402876) and possibly dm-crypt/LUKS (see #403426). + * arm: Turn off PCI burst on the Cyber2010, otherwise X11 on + Netwinder will crash. + * arm/iop32x: Enable CONFIG_IEEE80211_SOFTMAC and drivers based + on it. + * arm/ixp4xx: Upgrade to version 0.3.1 of the IXP4xx NPE Ethernet + driver. This version fixes stuck connections, e.g. with scp and + NFS (closes: #404447). + * arm/ixp4xx: Enable CONFIG_VIDEO_CPIA_USB. + * arm/ixp4xx: Enable CONFIG_ISCSI_TCP. + * arm/iop32x: Likewise. + + [ Bastian Blank ] + * Bump ABI to 4. + * Update vserver patch to 2.0.2.2-rc9. (closes: #402743, #403790) + * Update xen patch to changeset 36186 from Fedora 2.6.18 branch. + * i386/xen: Build only the pae version. (closes: #390862) + * hppa: Override host type when necessary. + * Fix tg3 reset. (closes: #405085) + + [ dann frazier ] + * Fix potential fragmentation attacks in ip6_tables (CVE-2006-4572) + * Backport a number of fixes for the cciss driver + - Fix a bug with 1TB disks caused by converting total_size to an int + - Claim devices that are of the HP RAID class and have a valid cciss sig + - Make NR_CMDS a per-controller define - most can do 1024 commands, but + the E200 family can only support 128 + - Change the SSID on the E500 as a workaround for a firmware bug + - Disable prefetch on the P600 controller. An ASIC bug may result in + prefetching beyond the end of physical memory + - Increase blk_queue_max_sectors from 512 to 2048 to increase performance + - Map out more memor for the PCI config table, required to reach offset + 0x214 to disable DMA on the P600 + - Set a default raid level on a volume that either does not support + reading the geometry or reports an invalid geometry for whatever reason + to avoid problems with buggy firmware + - Revert change that replaed XFER_READ/XFER_WRITE macros with + h->cciss_read/h->cciss_write that caused command timeouts on older + controllers on ia32 (closes: #402787) + * Fix mincore hang (CVE-2006-4814) + * ia64: turn on IOC4 modules for SGI Altix systems. Thanks to Stephane Larose + for suggesting this. + * Add versioned build dep on findutils to make sure the system find command + supports the -execdir action (closes: #405150) + * Hardcode the output of the scripts under arch/ia64/scripts as executed + in an etch environment so that we can build out of tree modules correctly + (closes: #392592) + * Update unusual_devs entry for ipod to fix an eject issue (closes: #406124) + * Re-add verify_pmtmr_rate, resolving problems seen on older K6 ASUS + boards where the ACPI PM timer runs too fast (closes: #394753) + * Avoid condition where /proc/swaps header may not be printed + (closes: #292318) + * [hppa] disable XFS until it works (closes: #350482) + + [ Norbert Tretkowski ] + * libata: handle 0xff status properly. (closes: #391867) + * alpha: enabled CONFIG_SCSI_ARCMSR. (closes: #401187) + * removed BROKEN_ON_SMP dependency from I2C_ELEKTOR. (closes: #402253) + + [ Christian T. Steigies ] + * m68k/atari: enable keyboard, mouse and fb drivers + * m68k/atari: fixes for ethernec and video driver by Michael Schmitz + * m68k/atari: fixes for scsi driver by Michael Schmitz + * m68k/mac: fixes for mace and cuda driver by Finn Thain + * m68k/atari: fixes for ide driver by Michael Schmitz + * m68k/atari: fixes for ide driver by Michael Schmitz + * m68k/atari: fixes for ethernec and atakeyb driver by Michael Schmitz, build ethernec as module + * m68k/mac: fixes for mace and adb driver by Finn Thain + + [ maximilian attems ] + * Add stable release 2.6.18.6: + - EBTABLES: Fix wraparounds in ebt_entries verification. + - EBTABLES: Verify that ebt_entries have zero ->distinguisher. + - EBTABLES: Deal with the worst-case behaviour in loop checks. + - EBTABLES: Prevent wraparounds in checks for entry components' sizes. + - skip data conversion in compat_sys_mount when data_page is NULL + - bonding: incorrect bonding state reported via ioctl + - x86-64: Mark rdtsc as sync only for netburst, not for core2 + (closes: #406767) + - dm crypt: Fix data corruption with dm-crypt over RAID5 (closes: #402812) + - forcedeth: Disable INTx when enabling MSI in forcedeth + - PKT_SCHED act_gact: division by zero + - XFRM: Use output device disable_xfrm for forwarded packets + - IPSEC: Fix inetpeer leak in ipv4 xfrm dst entries. + - V4L: Fix broken TUNER_LG_NTSC_TAPE radio support + - m32r: make userspace headers platform-independent + - IrDA: Incorrect TTP header reservation + - SUNHME: Fix for sunhme failures on x86 + - Bluetooth: Add packet size checks for CAPI messages (CVE-2006-6106) + - softmac: remove netif_tx_disable when scanning + - DVB: lgdt330x: fix signal / lock status detection bug + - dm snapshot: fix freeing pending exception + - NET_SCHED: policer: restore compatibility with old iproute binaries + - NETFILTER: ip_tables: revision support for compat code + - ARM: Add sys_*at syscalls + - ieee1394: ohci1394: add PPC_PMAC platform code to driver probe + - softirq: remove BUG_ONs which can incorrectly trigger + * Hand-picked from stable release 2.6.16.30: + - [PPPOE]: Advertise PPPoE MTU + * Hand-picked from stable release 2.6.16.31: + - [NETFILTER]: Fix ip6_tables extension header bypass bug (CVE-2006-4572) + - fix RARP ic_servaddr breakage + * Hand-picked from stable release 2.6.16.32: + - drivers/telephony/ixj: fix an array overrun + - flush D-cache in failure path + * Hand-picked from stable release 2.6.16.33: + - Add new PHY to sis900 supported list + - ipmi_si_intf.c: fix "&& 0xff" typos + - drivers/scsi/psi240i.c: fix an array overrun + * Hand-picked from stable release 2.6.16.34: + - [IPX]: Annotate and fix IPX checksum + - [IGMP]: Fix IGMPV3_EXP() normalization bit shift value. + * Hand-picked from stable release 2.6.16.35: + - sgiioc4: Disable module unload + - Fix a masking bug in the 6pack driver. + - drivers/usb/input/ati_remote.c: fix cut'n'paste error + - proper flags type of spin_lock_irqsave() + * Hand-picked from stable release 2.6.16.37: + - [CRYPTO] sha512: Fix sha384 block size + - [SCSI] gdth: Fix && typos + - Fix SUNRPC wakeup/execute race condition + * Enable DEBUG_FS for usbmon in generic config. Don't disable it on alpha, + amd64, hppa and ia64. (closes: 378542) + * Backport a number of upstream fixes for the r8169 driver, needed for + network performance (closes: 388870, 400524) + - r8169: more alignment for the 0x8168 + - r8169: phy program update + - r8169: more magic during initialization of the hardware + - r8169: perform a PHY reset before any other operation at boot time + - r8169: Fix iteration variable sign + - r8169: remove extraneous Cmd{Tx/Rx}Enb write + * sound: hda: detect ALC883 on MSI K9A Platinum motherboards (MS-7280) + patch from Leonard Norrgard + * tulip: Add i386 specific patch to remove duplicate pci ids. + Thanks Jurij Smakov (closes: #334104, #405203) + * amd64, i386: Disable SK98LIN as SKGE is the modern capable driver. + (closes: 405196) + * Backout net-bcm43xx_netdev_watchdog.patch and push 2.6.18.2 fix. + (closes: 402475) + + [ Jurij Smakov ] + * Add bugfix/sparc/isa-dev-no-reg.patch to make sure that + isa_dev_get_resource() can deal with devices which do not have a 'reg' + PROM property. Failure to handle such devices properly resulted in an + oops during boot on Netra X1. Thanks to Richard Mortimer for debugging + and patch. (closes: #404216) + * Add bugfix/sparc/ehci-hub-contol-alignment.patch to prevent unaligned + memory accesses in ehci-hub-control() by adding an alignment attribute + to the tbuf array declaration. Thanks to David Miller for the patch. + + [ Sven Luther ] + * [powerpc] Enable CONFIG_PMAC_BACKLIGHT_LEGACY (Closes: #407671). + + -- Bastian Blank Wed, 24 Jan 2007 13:21:51 +0100 + +linux-2.6 (2.6.18-8) unstable; urgency=low + + * Fix relations in the generated control file. (closes: #400544) + * Add stable release 2.6.18.4: + - bridge: fix possible overflow in get_fdb_entries (CVE-2006-5751) + * Add stable release 2.6.18.5: + - pcmcia: fix 'rmmod pcmcia' with unbound devices + - BLUETOOTH: Fix unaligned access in hci_send_to_sock. + - alpha: Fix ALPHA_EV56 dependencies typo + - TG3: Add missing unlock in tg3_open() error path. + - softmac: fix a slab corruption in WEP restricted key association + - AGP: Allocate AGP pages with GFP_DMA32 by default + - V4L: Do not enable VIDEO_V4L2 unconditionally + - bcm43xx: Drain TX status before starting IRQs + - fuse: fix Oops in lookup + - UDP: Make udp_encap_rcv use pskb_may_pull + - NETFILTER: Missing check for CAP_NET_ADMIN in iptables compat layer + - NETFILTER: ip_tables: compat error way cleanup + - NETFILTER: ip_tables: fix module refcount leaks in compat error paths + - NETFILTER: Missed and reordered checks in {arp,ip,ip6}_tables + - NETFILTER: arp_tables: missing unregistration on module unload + - NETFILTER: Kconfig: fix xt_physdev dependencies + - NETFILTER: xt_CONNSECMARK: fix Kconfig dependencies + - NETFILTER: H.323 conntrack: fix crash with CONFIG_IP_NF_CT_ACCT + - IA64: bte_unaligned_copy() transfers one extra cache line. + - x86 microcode: don't check the size + - scsi: clear garbage after CDBs on SG_IO + - IPV6: Fix address/interface handling in UDP and DCCP, according to the scoping architecture. + * Revert abi changing patch from 2.6.18.5. + + -- Bastian Blank Sun, 10 Dec 2006 17:51:53 +0100 + +linux-2.6 (2.6.18-7) unstable; urgency=low + + [ Bastian Blank ] + * Emit conflict lines for initramfs generators. (closes: #400305) + * Update vserver patch to 2.0.2.2-rc8. + * s390: Add patch to fix posix types. + + [ Martin Michlmayr ] + * r8169: Add an option to ignore parity errors. + * r8169: Ignore parity errors on the Thecus N2100. + * rtc: Add patch from Riku Voipio to get RS5C372 going on the N2100. + * arm/iop32x: Build RS5C372 support into the kernel. + + [ maximilian attems ] + * hfs: Fix up error handling in HFS. (MOKB-14-11-2006) + * sata: Avoid null pointer dereference in SATA Promise. + * cifs: Set CIFS preferred IO size. + + [ Jurij Smakov ] + * Add bugfix/sunhme-pci-enable.patch, fixing the failure of sunhme + driver on x86/PCI hosts due to missing pci_enable_device() and + pci_set_master() calls, lost during code refactoring upstream. + (closes: #397460) + + -- Bastian Blank Mon, 4 Dec 2006 15:20:30 +0100 + +linux-2.6 (2.6.18-6) unstable; urgency=low + + [ maximilian attems ] + * Enable the new ACT modules globally. They were already set for amd64, hppa + and mips/mipsel - needed by newer iproute2. (closes: #395882, #398172) + * Fix msync() for LSB 3.1 compliance, backport fedora patches from 2.6.19 + - mm: tracking shared dirty pages + - mm: balance dirty pages + - mm: optimize the new mprotect() code a bit + - mm: small cleanup of install_page() + - mm: fixup do_wp_page() + - mm: msync() cleanup (closes: #394392) + * [amd64,i386] Enable CONFIG_USB_APPLETOUCH=m (closes: #382298) + * Add stable release 2.6.18.3: + - x86_64: Fix FPU corruption + - e1000: Fix regression: garbled stats and irq allocation during swsusp + - POWERPC: Make alignment exception always check exception table + - usbtouchscreen: use endpoint address from endpoint descriptor + - fix via586 irq routing for pirq 5 + - init_reap_node() initialization fix + - CPUFREQ: Make acpi-cpufreq unsticky again. + - SPARC64: Fix futex_atomic_cmpxchg_inatomic implementation. + - SPARC: Fix missed bump of NR_SYSCALLS. + - NET: __alloc_pages() failures reported due to fragmentation + - pci: don't try to remove sysfs files before they are setup. + - fix UFS superblock alignment issues + - NET: Set truesize in pskb_copy + - block: Fix bad data direction in SG_IO (closes: #394690) + - cpqarray: fix iostat + - cciss: fix iostat + - Char: isicom, fix close bug + - TCP: Don't use highmem in tcp hash size calculation. + - S390: user readable uninitialised kernel memory, take 2. + - correct keymapping on Powerbook built-in USB ISO keyboards + - USB: failure in usblp's error path + - Input: psmouse - fix attribute access on 64-bit systems + - Fix sys_move_pages when a NULL node list is passed. + - CIFS: report rename failure when target file is locked by Windows + - CIFS: New POSIX locking code not setting rc properly to zero on successful + - Patch for nvidia divide by zero error for 7600 pci-express card + (maybe fixes 398258) + - ipmi_si_intf.c sets bad class_mask with PCI_DEVICE_CLASS + + [ Steve Langasek ] + * [alpha] new titan-video patch, for compatibility with TITAN and similar + systems with non-standard VGA hose configs + * [alpha] bugfix for srm_env module from upstream (Jan-Benedict Glaw), + makes the module compatible with the current /proc interface so that + reads no longer return EFAULT. (closes: #353079) + * Bump ABI to 3 for the msync fixes above. + + [ Martin Michlmayr ] + * arm: Set CONFIG_BINFMT_MISC=m + * arm/ixp4xx: Set CONFIG_ATM=m (and related modules) so CONFIG_USB_ATM has + an effect. + * arm/iop32x: Likewise. + * arm/s3c2410: Unset CONFIG_PM_LEGACY. + * arm/versatile: Fix Versatile PCI config byte accesses + * arm/ixp4xx: Swap the disk 1 and disk 2 LED definitions so they're right. + * mipsel/r5k-cobalt: Unset CONFIG_SCSI_SYM53C8XX_2 because the timeout is + just too long. + * arm/ixp4xx: Enable more V4L USB devices. + + [ dann frazier ] + * Backport various SCTP changesets from 2.6.19, recommended by Vlad Yasevich + (closes: #397946) + * Add a "Scope of security support" section to README.Debian, recommended + by Moritz Muehlenhoff + + [ Thiemo Seufer ] + * Enable raid456 for mips/mipsel qemu kernel. + + [ dann frazier ] + * The scope of the USR-61S2B unusual_dev entry was tightened, but too + strictly. Loosen it to apply to additional devices with a smaller bcd. + (closes: #396375) + + [ Sven Luther ] + * Added support for TI ez430 development tool ID in ti_usb. + Thanks to Oleg Verych for providing the patch. + + [ Christian T. Steigies ] + * Added support for Atari EtherNEC, Aranym, video, keyboard, mouse, and serial + by Michael Schmitz + + [ Bastian Blank ] + * [i386] Reenable AVM isdn card modules. (closes: #386872) + + -- Bastian Blank Tue, 21 Nov 2006 11:28:09 +0100 + +linux-2.6 (2.6.18-5) unstable; urgency=low + + [ maximilian attems ] + * [s390] readd the fix for "S390: user readable uninitialised kernel memory + (CVE-2006-5174)" + * [s390] temporarily add patch queued for 2.6.18.3 fixing 32 bit opcodes and + instructions. + + [ Thiemo Seufer ] + * Fix build failure of hugetlbfs (closes: #397139). + * Add kernel configuration for qemu's mips/mipsel emulation, thanks to + Aurelien Jarno. + + [ Bastian Blank ] + * Update vserver patch to 2.0.2.2-rc6. + * Update xen parts for vserver. (closes: #397281) + + [ dann frazier ] + * [ia64] Move to upstream version of sal-flush-fix patch, which is slightly + different than the early version added in 2.6.18-3. + + [ Frederik Schüler ] + * [i386] Acticate CONFIG_SX for all flavours. (closes: #391275) + + [ Steve Langasek ] + * [alpha] new asm-subarchs patch: tell the compiler that we're + deliberately emitting ev56 or ev6 instructions, so that this code + will still compile without having to cripple gcc-4.1's checking of + whether the correct instruction set is used. Closes: #397139. + + [ Martin Michlmayr ] + * arm/ixp4xx: Enable CONFIG_USB_ATM. + * arm/iop32x: Enable CONFIG_PPPOE. + * arm/iop32x: Enable CONFIG_USB_ATM. + + -- Bastian Blank Wed, 8 Nov 2006 17:15:55 +0100 + +linux-2.6 (2.6.18-4) unstable; urgency=low + + [ Norbert Tretkowski ] + * [alpha] Switched to gcc-4.1. + + [ Jurij Smakov ] + * [sparc] Remove sparc64-atyfb-xl-gr.patch, it does more harm than + good in 2.6.18. + * [sparc] Add bugfix/sparc/compat-alloc-user-space-alignment.patch + (thanks to David Miller) to make sure that compat_alloc_user_space() + always returns memory aligned on a 8-byte boundary on sparc. This + prevents a number of unaligned memory accesses, like the ones in + sys_msgrcv() and compat_sys_msgrcv(), triggered every 5 seconds whenever + fakeroot is running. + * [sparc] Add bugfix/sparc/bus-id-size.patch (thanks to David Miller) + to ensure that the size of the strings stored in the bus_id field of + struct device never exceeds the amount of memory allocated for them + (20 bytes). It fixes the situations in which storing longer device + names in this field would cause corruption of adjacent memory regions. + (closes: #394697). + * [sparc] Add bugfix/sparc/sunblade1k-boot-fix.patch (thanks to David + Miller) to fix a boottime crash on SunBlade1000. + * [sparc] Add bugfix/sparc/t1k-cpu-lockup.patch (thanks to David Miller) + to prevent soft CPU lockup on T1000 servers, which can be triggered from + userspace, resulting in denial of service. + + [ Martin Michlmayr ] + * arm/iop32x: Fix the interrupt of the 2nd Ethernet slot on N2100. + * arm/iop32x: Allow USB and serial to co-exist on N2100. + * arm/ixp4xx: Add clocksource for Intel IXP4xx platforms. + * arm: Enable CONFIG_AUDIT=y again. + * arm/ixp4xx: Add the IXP4xx Ethernet driver. + * arm/ixp4xx: Build LED support into the kernel. + * Add a driver for Fintek F75375S/SP and F75373. + * arm/iop32x: Build F75375S/SP support in. + * arm/iop32x: Fix the size of the RedBoot config partition. + + [ maximilian attems ] + * Add netpoll leak fix. + * Add upstream forcedeth swsusp support. + * r8169: PCI ID for Corega Gigabit network card. + * r8169: the MMIO region of the 8167 stands behin BAR#1. + * r8169: Add upstream fix for infinite loop during hotplug. + * Bump build-dependency on kernel-package to 10.063. + * r8169: pull revert mac address change support. + * bcm43xx: Add full netdev watchout timeout patch. (closes: 392065) + Thanks Sjoerd Simons for the testing. + * Add stable release 2.6.18.2: + - Remove not yet released, revert the included patches. + - Keep aboves bcm43xx fix, it's more complete. + - Watchdog: sc1200wdt - fix missing pnp_unregister_driver() + - fix missing ifdefs in syscall classes hookup for generic targets + - JMB 368 PATA detection + - usbfs: private mutex for open, release, and remove + - sound/pci/au88x0/au88x0.c: ioremap balanced with iounmap + - x86-64: Fix C3 timer test + - Reintroduce NODES_SPAN_OTHER_NODES for powerpc + - ALSA: emu10k1: Fix outl() in snd_emu10k1_resume_regs() + - IB/mthca: Use mmiowb after doorbell ring + - SCSI: DAC960: PCI id table fixup + - ALSA: snd_rtctimer: handle RTC interrupts with a tasklet + - JFS: pageno needs to be long + - SPARC64: Fix central/FHC bus handling on Ex000 systems. + - SPARC64: Fix memory corruption in pci_4u_free_consistent(). + - SPARC64: Fix PCI memory space root resource on Hummingbird. + (closes: #392078) + - Fix uninitialised spinlock in via-pmu-backlight code. + - SCSI: aic7xxx: pause sequencer before touching SBLKCTL + - IPoIB: Rejoin all multicast groups after a port event + - ALSA: Dereference after free in snd_hwdep_release() + - rtc-max6902: month conversion fix + - NET: Fix skb_segment() handling of fully linear SKBs + - SCTP: Always linearise packet on input + - SCSI: aic7xxx: avoid checking SBLKCTL register for certain cards + - IPV6: fix lockup via /proc/net/ip6_flowlabel [CVE-2006-5619] + - fix Intel RNG detection + - ISDN: check for userspace copy faults + - ISDN: fix drivers, by handling errors thrown by ->readstat() + - splice: fix pipe_to_file() ->prepare_write() error path + - ALSA: Fix bug in snd-usb-usx2y's usX2Y_pcms_lock_check() + - ALSA: Repair snd-usb-usx2y for usb 2.6.18 + - PCI: Remove quirk_via_abnormal_poweroff + - Bluetooth: Check if DLC is still attached to the TTY + - vmscan: Fix temp_priority race + - Use min of two prio settings in calculating distress for reclaim + - __div64_32 for 31 bit. Fixes funny clock speed on hercules emulator. + (closes: 395247) + - DVB: fix dvb_pll_attach for mt352/zl10353 in cx88-dvb, and nxt200x + - fuse: fix hang on SMP + - md: Fix bug where spares don't always get rebuilt properly when they become live. + - md: Fix calculation of ->degraded for multipath and raid10 + - knfsd: Fix race that can disable NFS server. + - md: check bio address after mapping through partitions. + - fill_tgid: fix task_struct leak and possible oops + - uml: fix processor selection to exclude unsupported processors and features + - uml: remove warnings added by previous -stable patch + - Fix sfuzz hanging on 2.6.18 + - SERIAL: Fix resume handling bug + - SERIAL: Fix oops when removing suspended serial port + - sky2: MSI test race and message + - sky2: pause parameter adjustment + - sky2: turn off PHY IRQ on shutdown + - sky2: accept multicast pause frames + - sky2: GMAC pause frame + - sky2: 88E803X transmit lockup (2.6.18) + - tcp: cubic scaling error + - mm: fix a race condition under SMC + COW + - ALSA: powermac - Fix Oops when conflicting with aoa driver + - ALSA: Fix re-use of va_list + - posix-cpu-timers: prevent signal delivery starvation + - NFS: nfs_lookup - don't hash dentry when optimising away the lookup + - uml: make Uml compile on FC6 kernel headers + - Fix potential interrupts during alternative patching + * Backport atkbd - supress "too many keys" error message. + * [s390] Revert temporarly 2.6.18.1 "S390: user readable uninitialised + kernel memory (CVE-2006-5174)" fix as it causes ftfbs + + [ Sven Luther ] + * [powerpc] Added exception alignement patch from Benjamin Herrenschmidt. + + [ Frederik Schüler ] + * Bump ABI to 2. + * Update vserver patch to 2.0.2.2-rc4. + + [ Thiemo Seufer ] + * Add patches from linux-mips.org's 2.6.18-stable branch: + - bugfix/copy-user-highpage.patch, needed for cache alias handling + on mips/mipsel/hppa. + - bugfix/mips/syscall-wiring.patch, fixes TLS register access, and + n32 rt_sigqueueinfo. + - bugfix/mips/sb1-flush-cache-data-page.patch, missing cache flush + on SB-1. + - bugfix/mips/trylock.patch, fix trylock implementation for R1x000 + and R3xxx. + - bugfix/mips/smp-cpu-bringup.patch, correct initialization of + non-contiguous CPU topology. + - bugfix/mips/header-exports.patch, clean up userland exports of + kernel headers. + - bugfix/mips/sb1-interrupt-handler.patch, fix broken interrupt + routing on SB-1. + - bugfix/mips/cache-alias.patch, fixes #387498 for mips/mipsel. + - bugfix/mips/ip22-zilog-console.patch, fix long delays seen with + SGI ip22 serial console. + - bugfix/mips/signal-handling.patch, fixes a signal handling race + condition shown with gdb. + - bugfix/mips/sb1-duart-tts.patch, replaces mips-sb1-duart-tts.patch, + use standard Linux names for SB-1 consoles. + - bugfix/mips/wait-race.patch, correct behaviour of the idle loop. + - bugfix/mips/sgi-ioc3.patch, checksumming fix for IOC3 network + driver. + - features/mips/qemu-kernel.patch, support for the mips/mipsel + machine emulated by Qemu. + - features/mips/backtrace.patch, reimplementation of stack analysis + and backtrace printing, useful for in-kernel debugging. + - bugfix/mips/dec-scsi.patch, replaces mips-dec-scsi.patch, fixes DSP + SCSI driver for DECstations. + - bugfix/mips/dec-serial.patch, replaces mips-dec-serial.patch, fix + serial console handling on DECstations. + + -- Frederik Schüler Sat, 4 Nov 2006 18:45:02 +0100 + +linux-2.6 (2.6.18-3) unstable; urgency=low + + [ Bastian Blank ] + * Fix home of patch apply script. + * Unify CPUSET option. (closes: #391931) + * Support xen version 3.0.3-1. + * Add AHCI suspend support. + * Add patch to support bindmount without nodev on vserver. + * Update fedora xen patch to changeset 36252. + + [ Steve Langasek ] + * [alpha] restore alpha-prctl.patch, which keeps disappearing every time + there's a kernel upgrade :/ + + [ Frederik Schüler ] + * Activate CONFIG_NET_CLS_* globaly. (Closes: #389918) + * Make CONFIG_EFI_VARS modular on i386. (Closes: #381951) + * Activate CONFIG_SCSI_ARCMSR on amd64, powerpc, sparc too. + * [vserver] Activate HARDCPU and HARDCPU_IDLE. + * [vserver] Upgrade to vs2.0.2.2-rc2. + + [ maximilian attems ] + * [mipsel] Disable CONFIG_SECURITY_SECLVL on DECstations too. + * Add stable release 2.6.18.1: + - add utsrelease.h to the dontdiff file + - V4L: copy-paste bug in videodev.c + - block layer: elv_iosched_show should get elv_list_lock + - NETFILTER: NAT: fix NOTRACK checksum handling + - bcm43xx: fix regressions in 2.6.18 (Closes: #392065) + - x86-64: Calgary IOMMU: Fix off by one when calculating register space + location + - ide-generic: jmicron fix + - scx200_hrt: fix precedence bug manifesting as 27x clock in 1 MHz mode + - invalidate_inode_pages2(): ignore page refcounts + - rtc driver rtc-pcf8563 century bit inversed + - fbdev: correct buffer size limit in fbmem_read_proc() + - mm: bug in set_page_dirty_buffers + - TCP: Fix and simplify microsecond rtt sampling + - MD: Fix problem where hot-added drives are not resynced. + - IPV6: Disable SG for GSO unless we have checksum + - PKT_SCHED: cls_basic: Use unsigned int when generating handle + - sata_mv: fix oops + - [SPARC64]: Kill bogus check from bootmem_init(). + - IPV6: bh_lock_sock_nested on tcp_v6_rcv + - [CPUFREQ] Fix some more CPU hotplug locking. + - SPARC64: Fix serious bug in sched_clock() on sparc64 + - Fix VIDIOC_ENUMSTD bug + - load_module: no BUG if module_subsys uninitialized + - i386: fix flat mode numa on a real numa system + - cpu to node relationship fixup: map cpu to node + - cpu to node relationship fixup: acpi_map_cpu2node + - backlight: fix oops in __mutex_lock_slowpath during head + /sys/class/graphics/fb0/* + - do not free non slab allocated per_cpu_pageset + - rtc: lockdep fix/workaround + - powerpc: Fix ohare IDE irq workaround on old powermacs + - sysfs: remove duplicated dput in sysfs_update_file + - powerpc: fix building gdb against asm/ptrace.h + - Remove offsetof() from user-visible + - Clean up exported headers on CRIS + - Fix v850 exported headers + - Don't advertise (or allow) headers_{install,check} where inappropriate. + - Remove UML header export + - Remove ARM26 header export. + - Fix H8300 exported headers. + - Fix m68knommu exported headers + - Fix exported headers for SPARC, SPARC64 + - Fix 'make headers_check' on m32r + - Fix 'make headers_check' on sh64 + - Fix 'make headers_check' on sh + - Fix ARM 'make headers_check' + - One line per header in Kbuild files to reduce conflicts + - sky2 network driver device ids + - sky2: tx pause bug fix + - netdrvr: lp486e: fix typo + - mv643xx_eth: fix obvious typo, which caused build breakage + - zone_reclaim: dynamic slab reclaim + - Fix longstanding load balancing bug in the scheduler + - jbd: fix commit of ordered data buffers + - ALSA: Fix initiailization of user-space controls + - USB: Allow compile in g_ether, fix typo + - IB/mthca: Fix lid used for sending traps + - S390: user readable uninitialised kernel memory (CVE-2006-5174) + - zd1211rw: ZD1211B ASIC/FWT, not jointly decoder + - V4L: pvrusb2: Limit hor res for 24xxx devices + - V4L: pvrusb2: Suppress compiler warning + - V4L: pvrusb2: improve 24XXX config option description + - V4L: pvrusb2: Solve mutex deadlock + - DVB: cx24123: fix PLL divisor setup + - V4L: Fix msp343xG handling regression + - UML: Fix UML build failure + - uml: use DEFCONFIG_LIST to avoid reading host's config + - uml: allow using again x86/x86_64 crypto code + - NET_SCHED: Fix fallout from dev->qdisc RCU change + * Add backported git patch remving BSD secure level - request by the + Debian Security Team. (closes: 389282) + * [powerpc] Add DAC960-ipr PCI id table fixup. + * [powerpc] Fix uninitialised spinlock in via-pmu-backlight code. + * Fix serial_cs resume handling. + * Fix oops when removing suspended serial port. + * Check if DLC is still attached to the TTY. + * Add fedora backport of i965 DRM support. + + [ Martin Michlmayr ] + * [mips] Apply some patches from linux-mips' linux-2.6.18-stable GIT tree: + - The o32 fstatat syscall behaves differently on 32 and 64 bit kernels + - fstatat syscall names + - BCM1480: Mask pending interrupts against c0_status.im. + - Cobalt: Time runs too quickly + - Show actual CPU information in /proc/cpuinfo + - Workaround for bug in gcc -EB / -EL options + - Do not use -msym32 option for modules + - Fix O32 personality(2) call with 0xffffffff argument + - Use compat_sys_mount + + [ dann frazier ] + * [ia64]: Fix booting on HP cell systems, thanks to Troy Heber + - Enable CONFIG_HUGETLBFS + - bugfix/ia64/sal-flush-fix.patch: delay sal cache flush + * bugfix/sky2-receive-FIFO-fix.patch: fix sky2 hangs on some chips + Thanks to Stephen Hemminger for the patch. (Closes: #391382) + * features/all/drivers/cciss-support-for-gt-2TB-volumes.patch: + Add support for > 2TB volumes + * bugfix/sym2-dont-claim-raid-devs.patch: Prevent cpqarray/sym2 conflict + by telling sym2 not to claim raid devices. (Closes: #391384) + + [ Sven Luther ] + * [powerpc] Added AMD74xx driver module to the powerpc64 flavour + (Closes: #391861). + + [ Kyle McMartin ] + * [hppa] Force CROSS_COMPILE=hppa64-linux-gnu- (closes: #389296) + + -- Bastian Blank Sat, 21 Oct 2006 15:59:43 +0200 + +linux-2.6 (2.6.18-2) unstable; urgency=low + + [ Bastian Blank ] + * hppa: Fix compiler dependencies. (closes: #389296) + * Make cfq the default io scheduler. + * Add arcmsr (Areca) driver. + * powerpc/prep: Fix compatibility asm symlink. + * m68k: Disable initramfs support. + + [ Kyle McMartin ] + * hppa: Add parisc patchset. + + [ Norbert Tretkowski ] + * [alpha] Workaround undefined symbols by setting CONFIG_SCSI=y for smp flavour. + (closes: #369517) + + [ Christian T. Steiges ] + * m68k: Update patches for 2.6.18. + * m68k: Re-Add m68k-as and m68k-macro patch which allow building with current binutils. + * m68k: disable CONFIG_AUDIT for m68k. + * m68k/mac: add m68k-no-backlight and m68k-fbcon patch. + * m68k/mac: enable SONIC, disable all ADB but CUDA. + + [ Jurij Smakov ] + * Add bugfix/proc-fb-reading.patch to fix the inconsistent behaviour + of /proc/fb. (Closes: #388815) + * sparc: Enable vserver flavour for sparc64. (Closes: #386656) + + -- Bastian Blank Fri, 29 Sep 2006 14:12:19 +0200 + +linux-2.6 (2.6.18-1) unstable; urgency=low + + The unpruned release + + [ Martin Michlmayr ] + * Bump build-dependency on kernel-package to 10.054. + * arm/iop32x: Build ext2/3 as modules. + * arm/iop32x: Disable CONFIG_EMBEDDED. + * mipsel/r5k-cobalt: Enable ISDN. + * arm/footbridge: Enable the CIFS module (closes: #274808). + * arm/nslu2: Drop flavour since this machine is supported by arm/ixp4xx. + * arm: Make get_unaligned() work with const pointers and GCC 4.1. + * mipsel/r5k-cobalt: Enable CONFIG_BONDING as a module. + * arm/iop32x: Likewise. + * arm/ixp4xx: Likewise. + * arm: Disable CONFIG_AUDIT for now since it's broken. + + [ Sven Luther ] + * [powerpc] Enabled the -prep flavour. (Closes: #359025) + * [powerpc] The sisfb framebuffer device is now builtin. + * [powerpc] Updated the powerpc serial patch. This fixes the XServe serial + port, but at the cost powermac pcmcia serial cards support. + Thanks go to Mark Hymers for providing the patch. + (Closes: #364637, #375194) + * [powerpc] Added patch to fix oldworld/quik booting. + Thanks fo to Christian Aichinger for investigating to Benjamin + Herrenschmidt for providing the patch. (Closes: #366620, #375035). + * [powerpc] Fixes hvc_console caused suspsend-to-disk breakage. Thanks to + Andrew Morton for providing the patch. (Closes: #387178) + * [powerpc] Disabled mv643xx_eth on powerpc64 flavours, as there never was a + Marvell Discovery northbrige for 64bit powerpc cpus. + + [ Frederik Schüler ] + * Remove obsolete options from amd64 and i386 configs. + * Deactivate EVBUG. + * Make PARPORT options global. + * [i386] Add class definition for 486 flavour. + + [ maximilian attems ] + * Enable CONFIG_PRINTER=m for all powerpc flavours. + * Enable the new alsa CONFIG_SND_AOA framework for powerpc. + * Add the merged advansys pci table patch. + + [ Bastian Blank ] + * hppa: Use gcc-4.1. + * Only provide 16 legacy ptys. + + [ Norbert Tretkowski ] + * [alpha] Updated configs. + * [alpha] Disabled CONFIG_AUDIT, broken. + * [alpha] Added vserver flavour. + + -- Bastian Blank Sun, 24 Sep 2006 15:55:37 +0200 + +linux-2.6 (2.6.17-9) unstable; urgency=medium + + [ Bastian Blank ] + * Update vserver patch to 2.0.2. + - Fix possible priviledge escalation in remount code. (CVE-2006-4243) + + [ Frederik Schüler ] + * Add stable release 2.5.17.12: + - sky2: version 1.6.1 + - sky2: fix fiber support + - sky2: MSI test timing + - sky2: use dev_alloc_skb for receive buffers + - sky2: clear status IRQ after empty + - sky2: accept flow control + - dm: Fix deadlock under high i/o load in raid1 setup. + - Remove redundant up() in stop_machine() + - Missing PCI id update for VIA IDE + - PKTGEN: Fix oops when used with balance-tlb bonding + - PKTGEN: Make sure skb->{nh,h} are initialized in fill_packet_ipv6() too. + - Silent data corruption caused by XPC + - uhci-hcd: fix list access bug + - binfmt_elf: fix checks for bad address + - [s390] bug in futex unqueue_me + - fcntl(F_SETSIG) fix + - IPV6 OOPS'er triggerable by any user + - SCTP: Fix sctp_primitive_ABORT() call in sctp_close(). + - SPARC64: Fix X server crashes on sparc64 + - TG3: Disable TSO by default + - dm: mirror sector offset fix + - dm: fix block device initialisation + - dm: add module ref counting + - dm: fix mapped device ref counting + - dm: add DMF_FREEING + - dm: change minor_lock to spinlock + - dm: move idr_pre_get + - dm: fix idr minor allocation + - dm snapshot: unify chunk_size + - Have ext2 reject file handles with bad inode numbers early. + - Allow per-route window scale limiting + - bridge-netfilter: don't overwrite memory outside of skb + - fix compilation error on IA64 + - Fix output framentation of paged-skbs + - spectrum_cs: Fix firmware uploading errors + - TEXTSEARCH: Fix Boyer Moore initialization bug + * Add stable release 2.6.17.13: + - lib: add idr_replace + - pci_ids.h: add some VIA IDE identifiers + * Remove patches merged upstream: + - s390-kernel-futex-barrier.patch + * Unpatch ia64-mman.h-fix.patch + + -- Bastian Blank Wed, 13 Sep 2006 14:54:14 +0200 + +linux-2.6 (2.6.17-8) unstable; urgency=low + + [ Martin Michlmayr ] + * arm/ixp4xx: Enable CONFIG_W1. + + [ dann frazier ] + * sound-pci-hda-mac-mini-quirks.diff, sound-pci-hda-intel-d965.diff + sound-pci-hda-mac-mini-intel945.diff: + Updates to patch_sigmatel.c to add x86 mac-mini sound support + Thanks to Matt Kraai. (closes: #384972) + + [ Kyle McMartin ] + * hppa: Re-enable pa8800 fixing patches from James Bottomley. + Pulled fresh from parisc-linux git tree. + * ia64: Pull in compile-failure fix from Christian Cotte-Barrot. + Pulled from linux-ia64 mailing list. Fix is correct. + * hppa/alpha/mips: Fix compile-failure due to missing arch_mmap_check. Patch sent + upstream to stable@kernel.org. + + [ dann frazier ] + * sym2: only claim "Storage" class devices - the cpqarray driver should be + used for 5c1510 devices in RAID mode. (closes: #380272) + + [ Bastian Blank ] + * Backport change to allow all hypercalls for xen. + + -- Bastian Blank Thu, 31 Aug 2006 12:12:51 +0200 + +linux-2.6 (2.6.17-7) unstable; urgency=low + + [ Martin Michlmayr ] + * arm/iop32x: Enable CONFIG_BLK_DEV_OFFBOARD. + * arm/iop32x: Unset CONFIG_BLK_DEV_AMD74XX since it fails on ARM + with "Unknown symbol pci_get_legacy_ide_irq". + * arm/iop32x: Enable a number of MD and DM modules. + * arm/iop32x: Enable some more USB network modules. + * mipsel/r5k-cobalt: Increase 8250 NR_UARTS and RUNTIME_UARTS to 4. + * mipsel/r5k-cobalt: Fix MAC detection problem on Qube 2700. + + [ Bastian Blank ] + * Update vserver patch to 2.0.2-rc29. + * Add stable release 2.6.17.10: + - Fix possible UDF deadlock and memory corruption (CVE-2006-4145) + - elv_unregister: fix possible crash on module unload + - Fix sctp privilege elevation (CVE-2006-3745) + + [ maximilian attems ] + * Add RAM range to longclass for -bigmem. (closes: 382799) + * Add stable release 2.6.17.9: + - powerpc: Clear HID0 attention enable on PPC970 at boot time + (CVE-2006-4093) + * Add stable release 2.6.17.11: + - Fix ipv4 routing locking bug + - disable debugging version of write_lock() + - PCI: fix ICH6 quirks + - 1394: fix for recently added firewire patch that breaks things on ppc + - Fix IFLA_ADDRESS handling + - Fix BeFS slab corruption + - Fix timer race in dst GC code + - Have ext3 reject file handles with bad inode numbers early + - Kill HASH_HIGHMEM from route cache hash sizing + - sys_getppid oopses on debug kernel + - IA64: local DoS with corrupted ELFs + - tpm: interrupt clear fix + - ulog: fix panic on SMP kernels + - dm: BUG/OOPS fix + - MD: Fix a potential NULL dereference in md/raid1 + - ip_tables: fix table locking in ipt_do_table + - swsusp: Fix swap_type_of + - sky2: phy power problem on 88e805x + - ipx: header length validation needed + + [ Frederik Schüler ] + * Activate CONFIG_R8169_VLAN on amd64. (closes: #383707) + * Activate EFI boot support on i386. (closes: #381951) + + [ dann frazier ] + * Include module.lds in headers package if it exists. (closes: #342246) + * Add Apple MacBook product IDs to usbhid and set + CONFIG_USB_HIDINPUT_POWERBOOK=y on i386 and amd64. (closes: #383620) + + -- Bastian Blank Thu, 24 Aug 2006 15:54:51 +0000 + +linux-2.6 (2.6.17-6) unstable; urgency=low + + [ maximilian attems ] + * debian/arch/i386/defines: Activate 686-bigmem flavour for enterprise + usage. + * Add ubuntu pci table patch for scsi drivers advansys and fdomain. + + [ Martin Michlmayr ] + * arm/armeb: Use gcc-4.1. + * mips/mipsel: Use gcc-4.1. + * arm/ixp4xx: Update config based on the NSLU2 config. + * arm/s3c2410: Unset CONFIG_DEBUG_INFO. + * arm/iop32x: xscale: don't mis-report 80219 as an iop32x + * arm/iop32x: Add an MTD map for IOP3xx boards + * arm/iop32x: Add support for the Thecus N2100. + * arm/iop32x: Add support for the GLAN Tank. + * arm/iop32x: Add a flavour for IOP32x based machines. + + [ Bastian Blank ] + * Shrink short descriptions. + * Make gcc-4.1 the default compiler. + * [powerpc]: Use gcc-4.1. + * Move latest and transitional packages to linux-latest-2.6. + + [ Frederik Schüler ] + * [amd64] Add smp-alternatives backport. + * [amd64] Drop smp flavours. + * [amd64] Merge k8 and p4 flavours into a generic one, following upstreams + advice. + * Activate BSD_PROCESS_ACCT_V3. + * Add stable release 2.6.17.8: + - ALSA: Don't reject O_RDWR at opening PCM OSS + - Add stable branch to maintainers file + - tty serialize flush_to_ldisc + - S390: fix futex_atomic_cmpxchg_inatomic + - Fix budget-av compile failure + - cond_resched() fix + - e1000: add forgotten PCI ID for supported device + - ext3: avoid triggering ext3_error on bad NFS file handle + - ext3 -nobh option causes oops + - Fix race related problem when adding items to and svcrpc auth cache. + - ieee1394: sbp2: enable auto spin-up for Maxtor disks + - invalidate_bdev() speedup + - Sparc64 quad-float emulation fix + - VLAN state handling fix + - Update frag_list in pskb_trim + - UHCI: Fix handling of short last packet + - sky2: NAPI bug + - i2c: Fix 'ignore' module parameter handling in i2c-core + - scx200_acb: Fix the block transactions + - scx200_acb: Fix the state machine + - H.323 helper: fix possible NULL-ptr dereference + - Don't allow chmod() on the /proc// files + - PCI: fix issues with extended conf space when MMCONFIG disabled because of e820 + + [ Sven Luther ] + * [powerpc] Added console=hvsi0 too to CMDLINE to the powerpc64 flavour, for + non-virtualized IBM power machines serial console. + + -- Bastian Blank Fri, 11 Aug 2006 19:58:06 +0200 + +linux-2.6 (2.6.17-5) unstable; urgency=low + + [ Martin Michlmayr ] + * [arm/nslu2] Enable CONFIG_USB_EHCI_SPLIT_ISO. Closes: #378554 + + [ maximilian attems ] + * Add stable release 2.6.17.7: + - BLOCK: Fix bounce limit address check + - v4l/dvb: Fix budget-av frontend detection + - v4l/dvb: Fix CI on old KNC1 DVBC cards + - v4l/dvb: Fix CI interface on PRO KNC1 cards + - v4l/dvb: Backport fix to artec USB DVB devices + - v4l/dvb: Backport the DISEQC regression fix to 2.6.17.x + - v4l/dvb: stradis: dont export MODULE_DEVICE_TABLE + - pnp: suppress request_irq() warning + - generic_file_buffered_write(): handle zero-length iovec segments + - serial 8250: sysrq deadlock fix + - Reduce ACPI verbosity on null handle condition + - ieee80211: TKIP requires CRC32 + - Make powernow-k7 work on SMP kernels. + - via-velocity: the link is not correctly detected when the device starts + - Add missing UFO initialisations + - USB serial ftdi_sio: Prevent userspace DoS (CVE-2006-2936) + - cdrom: fix bad cgc.buflen assignment + - splice: fix problems with sys_tee() + - fix fdset leakage + - struct file leakage + - XFS: corruption fix + - v4l/dvb: Kconfig: fix description and dependencies for saa7115 module + - dvb-bt8xx: fix frontend detection for DViCO FusionHDTV DVB-T Lite rev 1.2 + - IB/mthca: restore missing PCI registers after reset + - v4l/dvb: Backport the budget driver DISEQC instability fix + - Fix IPv4/DECnet routing rule dumping + - pdflush: handle resume wakeups + - x86_64: Fix modular pc speaker + - Fix powernow-k8 SMP kernel on UP hardware bug. + - ALSA: RME HDSP - fixed proc interface (missing {}) + - ALSA: au88x0 - Fix 64bit address of MPU401 MMIO port + - ALSA: Fix a deadlock in snd-rtctimer + - ALSA: Fix missing array terminators in AD1988 codec support + - ALSA: Fix model for HP dc7600 + - ALSA: Fix mute switch on VAIO laptops with STAC7661 + - ALSA: fix the SND_FM801_TEA575X dependencies + - ALSA: Fix undefined (missing) references in ISA MIRO sound driver + - ALSA: Fix workaround for AD1988A rev2 codec + - ALSA: hda-intel - Fix race in remove + - Suppress irq handler mismatch messages in ALSA ISA drivers + - PKT_SCHED: Fix illegal memory dereferences when dumping actions + - PKT_SCHED: Return ENOENT if action module is unavailable + - PKT_SCHED: Fix error handling while dumping actions + - generic_file_buffered_write(): deadlock on vectored write + - ethtool: oops in ethtool_set_pauseparam() + - memory hotplug: solve config broken: undefined reference to `online_page' + * Add budget-av-compile-fix.patch stable compile fix. + * Enable in all configs setting SND_FM801_TEA575X SND_FM801_TEA575X_BOOL=y. + + -- Bastian Blank Sat, 29 Jul 2006 13:30:06 +0200 + +linux-2.6 (2.6.17-4) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.17.5: + - Fix nasty /proc vulnerability (CVE-2006-3626) + * Add stable release 2.6.17.6: + - Relax /proc fix a bit + * Set section of images to admin. + + [ dann frazier ] + * [ia64] Drop the non-SMP flavours; they are not well maintained upstream. + Note that the non-SMP flavours have been identical to the SMP builds + since 2.6.13-1; this was to avoid having to drop then re-add these + flavours if upstream resolved the issue - but that never happened. + Note that this is a measurable performance penalty on non-SMP systems. + + -- Bastian Blank Mon, 17 Jul 2006 11:08:41 +0200 + +linux-2.6 (2.6.17-3) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.17.2: + - ide-io: increase timeout value to allow for slave wakeup + - NTFS: Critical bug fix (affects MIPS and possibly others) + - Link error when futexes are disabled on 64bit architectures + - SCTP: Reset rtt_in_progress for the chunk when processing its sack. + - SPARC32: Fix iommu_flush_iotlb end address + - ETHTOOL: Fix UFO typo + - UML: fix uptime + - x86: compile fix for asm-i386/alternatives.h + - bcm43xx: init fix for possible Machine Check + - SCTP: Fix persistent slowdown in sctp when a gap ack consumes rx buffer. + - kbuild: bugfix with initramfs + - Input: return correct size when reading modalias attribute + - ohci1394: Fix broken suspend/resume in ohci1394 + - idr: fix race in idr code + - USB: Whiteheat: fix firmware spurious errors + - libata: minor patch for ATA_DFLAG_PIO + - SCTP: Send only 1 window update SACK per message. + - PFKEYV2: Fix inconsistent typing in struct sadb_x_kmprivate. + - SCTP: Limit association max_retrans setting in setsockopt. + - SCTP: Reject sctp packets with broadcast addresses. + - IPV6: Sum real space for RTAs. + - IPV6 ADDRCONF: Fix default source address selection without + CONFIG_IPV6_PRIVACY + - IPV6: Fix source address selection. + * Add stable release 2.6.17.3: + - NETFILTER: SCTP conntrack: fix crash triggered by packet without chunks + [CVE-2006-2934] + * Deapply merged sparc32-iotlb.patch. + * Fix README.Debian: Correct svn location, remove old boot param bswap + reference, the asfs patch is in the Debian kernel. Remove reference to + AMD 768 erratum 10, it was solved in 2.6.12. Add wording corrections. + * Set CONFIG_SERIAL_8250_RN_UARTS=16 for all archs beside mips/m68k unless + explicitly set on a specific value. (closes: 377151) + * Add stable release 2.6.17.4: + - fix prctl privilege escalation and suid_dumpable (CVE-2006-2451) + + [ Sven Luther ] + * Re-enabled fs-asfs patch. + + [ Thiemo Seufer ] + * [mips,mipsel] Fix sb1 interrupt handlers. + * [mips,mipsel] Fix devfs-induced build failure in sb1250 serial driver. + * [mips] SGI ip22 RTC was broken, fixed thanks to Julien Blache. + * [mips] Fix SGI ip22 serial console, thanks to Julien Blache. + + [ Martin Michlmayr ] + * [arm/nslu2] Enable HFS and some other filesystems. + * [arm/nslu2] Unset CONFIG_USB_STORAGE_DEBUG. Closes: #377853. + + -- Bastian Blank Thu, 13 Jul 2006 13:14:53 +0200 + +linux-2.6 (2.6.17-2) unstable; urgency=low + + [ Jurij Smakov ] + * [sparc] Switch to gcc-4.1 as it produces a working kernel, + while gcc-4.0 does not. No ABI bump neccessary, because + 2.6.17-1 sparc binaries never made it to the archive. + * [sparc32] Add sparc32-iotlb.patch to fix DMA errors on sparc32. + + [ Sven Luther ] + * [powerpc] Added console=hvc0 default commandline option to powerpc64 flavour. + * [powerpc] Fixed mkvmlinuz support, which was missing from -1. (Closes: #375645) + * [powerpc] Added PowerBook HID support for last-gen PowerBook keyboards. + (Closes: #307327) + + [ Martin Michlmayr ] + * [mipsel] Fix compilation error in dz serial driver. + * [mipsel] Update configs. + * [mipsel] Add a build fix for the Cobalt early console support. + * [arm/nslu2] Disable SE Linux support for now so the kernel fits into flash. + + [ Christian T. Steigies ] + * [m68k] Update patches for 2.6.17. + * [m68k] Add m68k-as and m68k-macro patch which allow building with current binutils. + * [m68k] Disable all subarches but amiga and mac for official linux-images. + + [ Kyle McMartin ] + * [hppa] Update patchset (2.6.17-pa6) from parisc-linux.org. + Which fixes relocation errors in modules with 64-bit kernels, and + a softlockup on non-SMP flavours with gettimeofday. + + -- Bastian Blank Thu, 29 Jun 2006 18:49:35 +0200 + +linux-2.6 (2.6.17-1) unstable; urgency=low + + [ Frederik Schüler ] + * New upstream release. + * [amd64] Use gcc 4.1. + * [amd64] Drop amd64-generic flavor. We will use amd64-k8 for the + installer. + + [ Martin Michlmayr ] + * [mips] Update patches for 2.6.17. + * [arm] Update configs. + * [armeb] Update configs. + + [ Thiemo Seufer ] + * [mips] Fix SWARM FPU detection. + * [mips] Update configurations. + + [ Kyle McMartin ] + * [hppa] Set PDC_CHASSIS_WARN to y. + * [hppa] Update patchset (2.6.17-pa2) from parisc-linux.org. + * [hppa] Change NR_CPUS to 8 from 32 on both SMP flavours. + * [hppa] Set PARISC_PAGE_SIZE to 4K on all platforms. + + [ Bastian Blank ] + * [s390] Use gcc 4.1. + * [i386] Enable REGPARM. + * [i386] Use gcc 4.1. + * [powerpc] Disable prep. + + [ dann frazier ] + * [ia64] Update configs + * [ia64] Use gcc 4.1. + + [ maximilian attems ] + * Add stable release 2.6.17.1: + - xt_sctp: fix endless loop caused by 0 chunk length (CVE-2006-3085) + + -- Bastian Blank Thu, 22 Jun 2006 12:13:15 +0200 + +linux-2.6 (2.6.16+2.6.17-rc3-0experimental.1) experimental; urgency=low + + [ Frederik Schüler ] + * New upstream release candidate. + * Switch HZ from 1000 to 250, following upstreams default. + * Activate CONFIG_BCM43XX_DEBUG. + + [ maximilian attems ] + * Disable broken and known unsecure LSM modules: CONFIG_SECURITY_SECLVL, + CONFIG_SECURITY_ROOTPLUG. Upstream plans to remove them for 2.6.18 + + -- Frederik Schüler Sun, 7 May 2006 17:06:29 +0200 + +linux-2.6.16 (2.6.16-18) unstable; urgency=high + + [ Sven Luther ] + * [powerpc] Added console=hvsi0 too to CMDLINE to the powerpc64 flavour, + for non-virtualized IBM power machines serial console. + + [ dann frazier ] + * fs-ext3-bad-nfs-handle.patch: avoid triggering ext3_error on bad NFS + file handle (CVE-2006-3468) + * cdrom-bad-cgc.buflen-assign.patch: fix buffer overflow in dvd_read_bca + * usb-serial-ftdi_sio-dos.patch: fix userspace DoS in ftdi_sio driver + + [ Bastian Blank ] + * Update xen patch to changeset 9762. + + -- Frederik Schüler Fri, 18 Aug 2006 20:29:17 +0200 + +linux-2.6.16 (2.6.16-17) unstable; urgency=high + + [ Martin Michlmayr ] + * Add stable release 2.6.16.22: + - powernow-k8 crash workaround + - NTFS: Critical bug fix (affects MIPS and possibly others) + - JFS: Fix multiple errors in metapage_releasepage + - SPARC64: Fix D-cache corruption in mremap + - SPARC64: Respect gfp_t argument to dma_alloc_coherent(). + - SPARC64: Fix missing fold at end of checksums. + - scsi_lib.c: properly count the number of pages in scsi_req_map_sg() + - I2O: Bugfixes to get I2O working again + - Missed error checking for intent's filp in open_namei(). + - tmpfs: time granularity fix for [acm]time going backwards + - USB: Whiteheat: fix firmware spurious errors + - fs/namei.c: Call to file_permission() under a spinlock in do_lookup_path() + * Add stable release 2.6.16.23: + - revert PARPORT_SERIAL should depend on SERIAL_8250_PCI patch + - NETFILTER: SCTP conntrack: fix crash triggered by packet without + chunks (CVE-2006-2934) + * Add stable release 2.6.16.24: + - fix prctl privilege escalation and suid_dumpable (CVE-2006-2451) + * Add stable release 2.6.16.25: + - Fix nasty /proc vulnerability (CVE-2006-3626) + * Relax /proc fix a bit (Linus Torvalds) + + * [arm/nslu2] Unset CONFIG_USB_STORAGE_DEBUG. Closes: #377853. + * [mips] SGI ip22 RTC was broken, fixed thanks to Julien Blache. + * [mips] Fix SGI ip22 serial console, thanks to Julien Blache. + + [ Bastian Blank ] + * Fix vserver patch. + + -- Bastian Blank Sat, 15 Jul 2006 17:18:49 +0200 + +linux-2.6.16 (2.6.16-16) unstable; urgency=low + + [ Sven Luther ] + * [powerpc] Added console=hvc0 default commandline option to powerpc64 flavour. + * [powerpc] Now THERM_PM72 and all WINDFARMs are builtin, for better fan control. + + [ Martin Michlmayr ] + * [arm/nslu2] Disable SE Linux support for now so the kernel fits into + flash. Closes: #376926. + + [ Bastian Blank ] + * [powerpc,powerpc-miboot] Enable OpenFirmware device tree support. + (closes: #376012) + + -- Bastian Blank Sat, 8 Jul 2006 17:57:57 +0200 + +linux-2.6.16 (2.6.16-15) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.16.18: + - NETFILTER: SNMP NAT: fix memory corruption (CVE-2006-2444) + * Add stable release 2.6.16.19: + - NETFILTER: Fix small information leak in SO_ORIGINAL_DST (CVE-2006-1343) + * Add stable release 2.6.16.20: + - x86_64: Don't do syscall exit tracing twice + - Altix: correct ioc4 port order + - Input: psmouse - fix new device detection logic + - PowerMac: force only suspend-to-disk to be valid + - the latest consensus libata resume fix + - Altix: correct ioc3 port order + - Cpuset: might sleep checking zones allowed fix + - ohci1394, sbp2: fix "scsi_add_device failed" with PL-3507 based devices + - sbp2: backport read_capacity workaround for iPod + - sbp2: fix check of return value of hpsb_allocate_and_register_addrspace + - x86_64: x86_64 add crashdump trigger points + - ipw2200: Filter unsupported channels out in ad-hoc mode + * Add stable release 2.6.16.21: + - check_process_timers: fix possible lockup + - run_posix_cpu_timers: remove a bogus BUG_ON() (CVE-2006-2445) + - xt_sctp: fix endless loop caused by 0 chunk length (CVE-2006-3085) + - powerpc: Fix machine check problem on 32-bit kernels (CVE-2006-2448) + + [ Christian T. Steigies ] + * [m68k] Add mac via patch from Finn Thain. + * [m68k] Enable INPUT_EVDEV. + + [ Martin Michlmayr ] + * [mips/b1-bcm91250a] Enable SMP. + * [mips] Add a compile fix for the Maxine fb. + * [mipsel] Add a patch that let's you enable serial console on DECstation. + * [mipsel] Add a patch to get SCSI working on DECstation. + * [mipsel] Handle memory-mapped RTC chips properly. + * [mipsel] Add configs for r3k-kn02 and r4k-kn04 DECstation. + * [arm] Allow RiscPC machines to boot an initrd (tagged list fix). + * [arm/nslu2] Enable many modules. + * [arm] Build loop support as a module. + * [arm] Use the generic netfilter configuration. + * [arm/footbridge] Enable sound. + + [ Kyle McMartin ] + * [hppa] Pulled patch from cvs to fix build of kernel/ptrace.c which needs + {read,write}_can_lock. + * [hppa] Disable CONFIG_DETECT_SOFTLOCKUP to fix boot on pa8800 machines. + + [ Sven Luther ] + * [powerpc,prep] Added a new ARCH=ppc PReP flavour, currently mostly a copy + of the -powerpc one. + * Upgraded mkvmlinuz dependency to mkvmlinuz 21. + + [ Bastian Blank ] + * Update vserver patch to 2.0.2-rc21. + * Bump build-dependency on kernel-package to 10.049. + + [ Jurij Smakov ] + * Add dcache-memory-corruption.patch to fix the mremap(), occasionally + triggered on sparc in the form of dpkg database corruption. Affects + sparc64, mips and generic includes. Thanks to David Miller, original + patch is included in 2.6.17. + Ref: http://marc.theaimsgroup.com/?l=linux-sparc&m=114920963824047&w=2 + * Add sparc32-iotlb.patch to fix the DMA errors encountered with latest + kernels on sparc32, in particularly HyperSparcs. Thanks to Bob Breuer. + Ref: http://marc.theaimsgroup.com/?l=linux-sparc&m=115077649707675&w=2 + + -- Bastian Blank Wed, 21 Jun 2006 14:09:11 +0200 + +linux-2.6 (2.6.16-14) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.16.16: + - fs/locks.c: Fix lease_init (CVE-2006-1860) + * Make i386 xen images recommend libc6-xen. + * Update vserver patch to 2.0.2-rc20. + * Update xen patch to changeset 9687. + + [ Christian T. Steigies ] + * [m68k] Add generic m68k ide fix. + * [m68k] Add cross-compile instructions. + * [m68k] Enable INPUT_EVDEV for yaird. + * [m68k] sun3 general compile and scsi fixes, enable sun3 SCSI again. + + [ dann frazier ] + * cs4281 - Fix the check of timeout in probe to deal with variable HZ. + (closes: #361197) + + [ Norbert Tretkowski ] + * [alpha] Readded patch to support prctl syscall, got lost when upgrading + to 2.6.16. + + [ Frederik Schüler ] + * Add stable release 2.6.16.17: + - SCTP: Validate the parameter length in HB-ACK chunk (CVE-2006-1857) + - SCTP: Respect the real chunk length when walking parameters + (CVE-2006-1858) + - ptrace_attach: fix possible deadlock schenario with irqs + - Fix ptrace_attach()/ptrace_traceme()/de_thread() race + - page migration: Fix fallback behavior for dirty pages + - add migratepage address space op to shmem + - Remove cond_resched in gather_stats() + - VIA quirk fixup, additional PCI IDs + - PCI quirk: VIA IRQ fixup should only run for VIA southbridges + - Fix udev device creation + - limit request_fn recursion + - PCI: correctly allocate return buffers for osc calls + - selinux: check for failed kmalloc in security_sid_to_context() + - TG3: ethtool always report port is TP. + - Netfilter: do_add_counters race, possible oops or info leak + (CVE-2006-0039) + - scx200_acb: Fix resource name use after free + - smbus unhiding kills thermal management + - fs/compat.c: fix 'if (a |= b )' typo + - smbfs: Fix slab corruption in samba error path + - fs/locks.c: Fix sys_flock() race + - USB: ub oops in block_uevent + - via-rhine: zero pad short packets on Rhine I ethernet cards + - md: Avoid oops when attempting to fix read errors on raid10 + + -- Bastian Blank Mon, 22 May 2006 14:56:11 +0200 + +linux-2.6 (2.6.16-13) unstable; urgency=low + + [ Frederik Schüler ] + * Add stable release 2.6.16.14: + - smbfs chroot issue (CVE-2006-1864) + + [ Bastian Blank ] + * Don't make headers packages depend on images. + * Bump abiname to 2. (closes: #366291) + * Update vserver patch to 2.0.2-rc19. + * Update xen patch to changeset 9668. + * Remove abi fixes. + * Add stable release 2.6.16.15: + - SCTP: Allow spillover of receive buffer to avoid deadlock. (CVE-2006-2275) + - SCTP: Fix panic's when receiving fragmented SCTP control chunks. (CVE-2006-2272) + - SCTP: Fix state table entries for chunks received in CLOSED state. (CVE-2006-2271) + - SCTP: Prevent possible infinite recursion with multiple bundled DATA. (CVE-2006-2274) + * Switch HZ from 1000 to 250. + + [ Christian T. Steigies ] + * [m68k] Add patches that allow building images for atari + * [m68k] Enable atyfb driver for atari + + -- Bastian Blank Wed, 10 May 2006 18:58:44 +0200 + +linux-2.6 (2.6.16-12) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.16.12: + - dm snapshot: fix kcopyd destructor + - x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages + - for_each_possible_cpu + - Simplify proc/devices and fix early termination regression + - sonypi: correct detection of new ICH7-based laptops + - MIPS: Fix tx49_blast_icache32_page_indexed. + - NET: e1000: Update truesize with the length of the packet for packet split + - i386: fix broken FP exception handling + - tipar oops fix + - USB: fix array overrun in drivers/usb/serial/option.c + - Altix snsc: duplicate kobject fix + - Alpha: strncpy() fix + - LSM: add missing hook to do_compat_readv_writev() + - Fix reiserfs deadlock + - make vm86 call audit_syscall_exit + - fix saa7129 support in saa7127 module for pvr350 tv out + - dm flush queue EINTR + - get_dvb_firmware: download nxt2002 firmware from new driver location + - cxusb-bluebird: bug-fix: power down corrupts frontend + - x86_64: Fix a race in the free_iommu path. + - MIPS: Use "R" constraint for cache_op. + - MIPS: R2 build fixes for gcc < 3.4. + - cs5535_gpio.c: call cdev_del() during module_exit to unmap kobject references and other cleanups + - MIPS: Fix branch emulation for floating-point exceptions. + - x86/PAE: Fix pte_clear for the >4GB RAM case + * Add stable release 2.6.16.13: + - NETFILTER: SCTP conntrack: fix infinite loop (CVE-2006-1527) + * Remove merged patches. + * Rediff xen patch. + * Bump build-dependency on kernel-package to 10.047. + + [ Martin Michlmayr ] + * [arm] Enable cramfs for ixp4xx and rpc. + + -- Bastian Blank Thu, 4 May 2006 11:37:26 +0200 + +linux-2.6 (2.6.16-11) unstable; urgency=low + + * Update vserver patch to 2.0.2-rc18. + - Limit ccaps to root inside a guest (CVE-2006-2110) + * Conflict with known broken grub versions. (closes: #361308) + * Enable s390 vserver image. + * Enable xen and xen-vserver images. + * Use localversion for kernel-package images. (closes: #365505) + + -- Bastian Blank Mon, 1 May 2006 16:38:45 +0200 + +linux-2.6 (2.6.16-10) unstable; urgency=low + + [ Norbert Tretkowski ] + * [alpha] Added backport of for_each_possible_cpu() to fix alpha build. + (closes: #364206) + * Add stable release 2.6.16.10: + - IPC: access to unmapped vmalloc area in grow_ary() + - Add more prevent_tail_call() + - alim15x3: ULI M-1573 south Bridge support + - apm: fix Armada laptops again + - fbdev: Fix return error of fb_write + - Fix file lookup without ref + - m41t00: fix bitmasks when writing to chip + - Open IPMI BT overflow + - x86: be careful about tailcall breakage for sys_open[at] too + - x86: don't allow tail-calls in sys_ftruncate[64]() + - IPV6: XFRM: Fix decoding session with preceding extension header(s). + - IPV6: XFRM: Don't use old copy of pointer after pskb_may_pull(). + - IPV6: Ensure to have hop-by-hop options in our header of &sk_buff. + - selinux: Fix MLS compatibility off-by-one bug + - PPC: fix oops in alsa powermac driver + - MTD_NAND_SHARPSL and MTD_NAND_NANDSIM should be tristate's + - i2c-i801: Fix resume when PEC is used + - Fix hotplug race during device registration + - Fix truesize underflow + - efficeon-agp: Add missing memory mask + - 3ware 9000 disable local irqs during kmap_atomic + - 3ware: kmap_atomic() fix + + [ maximilian attems ] + * Add stable release 2.6.16.11: + - Don't allow a backslash in a path component (CVE-2006-1863) + + -- Bastian Blank Tue, 25 Apr 2006 13:56:19 +0200 + +linux-2.6 (2.6.16-9) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.16.8: + - ip_route_input panic fix (CVE-2006-1525) + * Add stable release 2.6.16.9: + - i386/x86-64: Fix x87 information leak between processes (CVE-2006-1056) + + [ Bastian Blank ] + * Update vserver patch to 2.0.2-rc17. + + -- Bastian Blank Thu, 20 Apr 2006 15:37:28 +0200 + +linux-2.6 (2.6.16-8) unstable; urgency=low + + * Fix ABI-breakage introduced in -7. (closes: #363032) + * Add stable release 2.6.16.6: + - ext3: Fix missed mutex unlock + - RLIMIT_CPU: fix handling of a zero limit + - alpha: SMP boot fixes + - m32r: security fix of {get, put}_user macros + - m32r: Fix cpu_possible_map and cpu_present_map initialization for SMP kernel + - shmat: stop mprotect from giving write permission to a readonly attachment (CVE-2006-1524) + - powerpc: fix incorrect SA_ONSTACK behaviour for 64-bit processes + - MPBL0010 driver sysfs permissions wide open + - cciss: bug fix for crash when running hpacucli + - fuse: fix oops in fuse_send_readpages() + - Fix utime(2) in the case that no times parameter was passed in. + - Fix buddy list race that could lead to page lru list corruptions + - NETFILTER: Fix fragmentation issues with bridge netfilter + - USB: remove __init from usb_console_setup + - Fix suspend with traced tasks + - isd200: limit to BLK_DEV_IDE + - edac_752x needs CONFIG_HOTPLUG + - fix non-leader exec under ptrace + - sky2: bad memory reference on dual port cards + - atm: clip causes unregister hang + - powerpc: iSeries needs slb_initialize to be called + - Fix block device symlink name + - Incorrect signature sent on SMB Read + * Add stable release 2.6.16.7: + - fix MADV_REMOVE vulnerability (CVE-2006-1524 for real this time) + + -- Bastian Blank Tue, 18 Apr 2006 16:22:31 +0200 + +linux-2.6 (2.6.16-7) unstable; urgency=low + + [ Frederik Schüler ] + * Add stable release 2.6.16.3: + - Keys: Fix oops when adding key to non-keyring (CVE-2006-1522) + + [ Bastian Blank ] + * Add stable release 2.6.16.4: + - RCU signal handling (CVE-2006-1523) + + [ Sven Luther ] + * [powerpc] Transitioned mkvmlinuz support patch to the 2.6.16 ARCH=powerpc + tree. PReP is broken in 2.6.16 though. + + [ maximilian attems ] + * Add stable release 2.6.16.5: + - x86_64: Clean up execve + - x86_64: When user could have changed RIP always force IRET (CVE-2006-0744) + * Disable CONFIG_SECCOMP (adds useless overhead on context-switch) - + thanks to fs for checking abi. + + [ Christian T. Steigies ] + * [m68k] update m68k patch and config to 2.6.16, temporarily disable atari + + -- Bastian Blank Sat, 15 Apr 2006 13:56:05 +0200 + +linux-2.6 (2.6.16-6) unstable; urgency=medium + + [ Bastian Blank ] + * Provide version infos in support package and don't longer rely on the + changelog. + * [amd64/i386] Enable cpu hotplug support. + + [ maximilian attems ] + * Add stable release 2.6.16.2: + - PCMCIA_SPECTRUM must select FW_LOADER + - drivers/net/wireless/ipw2200.c: fix an array overun + - AIRO{,_CS} <-> CRYPTO fixes + - tlclk: fix handling of device major + - fbcon: Fix big-endian bogosity in slow_imageblit() + - Fix NULL pointer dereference in node_read_numastat() + - USB: EHCI full speed ISO bugfixes + - Mark longhaul driver as broken. + - fib_trie.c node freeing fix + - USB: Fix irda-usb use after use + - sysfs: zero terminate sysfs write buffers (CVE-2006-1055) + - USB: usbcore: usb_set_configuration oops (NULL ptr dereference) + - pcmcia: permit single-character-identifiers + - hostap: Fix EAPOL frame encryption + - wrong error path in dup_fd() leading to oopses in RCU + - {ip, nf}_conntrack_netlink: fix expectation notifier unregistration + - isicom must select FW_LOADER + - knfsd: Correct reserved reply space for read requests. + - Fix module refcount leak in __set_personality() + - sbp2: fix spinlock recursion + - powerpc: make ISA floppies work again + - opti9x - Fix compile without CONFIG_PNP + - Add default entry for CTL Travel Master U553W + - Fix the p4-clockmod N60 errata workaround. + - kdump proc vmcore size oveflow fix + + -- Bastian Blank Mon, 10 Apr 2006 16:09:51 +0200 + +linux-2.6 (2.6.16-5) unstable; urgency=low + + [ Bastian Blank ] + * Provide real dependency packages for module building. + - Add linux-headers-$version-$abiname-all and + linux-headers-$version-$abiname-all-$arch. + * Rename support package to linux-support-$version-$abiname. + * Fix module package output. + * Include .kernelrelease in headers packages. (closes: #359813) + * Disable Cumana partition support completely. (closes: #359207) + * Update vserver patch to 2.0.2-rc15. + + [ dann frazier ] + * [ia64] initramfs-tools works now, no longer restrict initramfs-generators + + -- Bastian Blank Mon, 3 Apr 2006 14:00:08 +0200 + +linux-2.6 (2.6.16-4) unstable; urgency=medium + + [ Martin Michlmayr ] + * [arm/armeb] Update nslu2 config. + * Add stable release 2.6.16.1: + - Fix speedstep-smi assembly bug in speedstep_smi_ownership + - DMI: fix DMI onboard device discovery + - cciss: fix use-after-free in cciss_init_one + - DM: Fix bug: BIO_RW_BARRIER requests to md/raid1 hang. + - fix scheduler deadlock + - proc: fix duplicate line in /proc/devices + - rtc.h broke strace(1) builds + - dm: bio split bvec fix + - v9fs: assign dentry ops to negative dentries + - i810fb_cursor(): use GFP_ATOMIC + - NET: Ensure device name passed to SO_BINDTODEVICE is NULL terminated. + - XFS writeout fix + - sysfs: fix a kobject leak in sysfs_add_link on the error path + - get_cpu_sysdev() signedness fix + - firmware: fix BUG: in fw_realloc_buffer + - sysfs: sysfs_remove_dir() needs to invalidate the dentry + - TCP: Do not use inet->id of global tcp_socket when sending RST (CVE-2006-1242) + - 2.6.xx: sata_mv: another critical fix + - Kconfig: VIDEO_DECODER must select FW_LOADER + - V4L/DVB (3324): Fix Samsung tuner frequency ranges + - sata_mv: fix irq port status usage + + -- Bastian Blank Tue, 28 Mar 2006 17:19:10 +0200 + +linux-2.6 (2.6.16-3) unstable; urgency=low + + [ Frederik Schüler ] + * [amd64] Add asm-i386 to the linux-headers packages. + + [ Jonas Smedegaard ] + * Tighten yaird dependency to at least 0.0.12-8 (supporting Linux + 2.6.16 uppercase hex in Kconfig and new IDE sysfs naming, and VIA + IDE on powerpc). + + [ Martin Michlmayr ] + * [arm/armeb] Enable CONFIG_NFSD on NSLU2 again. Closes: #358709. + * [arm/footbridge] CONFIG_NE2K_PCI should be a module, not built-in. + * [arm/footbridge] Enable CONFIG_BLK_DEV_IDECD=m since the CATS can + have a CD-ROM drive. + * [mips/sb1*] Use ttyS rather than duart as the name for the serial + console since the latter causes problems with debian-installer. + + [ Bastian Blank ] + * Update vserver patch to 2.0.2-rc14. + - Fix sendfile. (closes: #358391, #358752) + + -- Bastian Blank Mon, 27 Mar 2006 16:08:20 +0200 + +linux-2.6 (2.6.16-2) unstable; urgency=low + + [ dann frazier ] + * [ia64] Set unconfigured options: + CONFIG_PNP_DEBUG=n and CONFIG_NET_SB1000=m + * [hppa] Update config for 2.6.16 + + [ Martin Michlmayr ] + * [mips/mipsel] Put something in the generic config file because diff + will otherwise remove the empty file, causing the build to fail. + * [mipsel/r5k-cobalt] Set CONFIG_PACKET=y. + * [arm] Set CONFIG_MACLIST=y for ixp4xx because nas100d needs it. + + [ Frederik Schüler ] + * Add Maximilian Attems to uploaders list. + + -- Martin Michlmayr Wed, 22 Mar 2006 15:15:14 +0000 + +linux-2.6 (2.6.16-1) unstable; urgency=low + + [ Bastian Blank ] + * New upstream release. + * Default to initramfs-tools 0.55 or higher on s390. + + [ maximilian attems ] + * Default to initramfs-tools on arm and armeb. + + [ Martin Michlmayr ] + * [mips/mipsel] Add an image for the Broadcom BCM91480B evaluation board + (aka "BigSur"). + * [arm, armeb] Enable the netconsole module. + * [mipsel/cobalt] Enable the netconsole module. + * [mips] SB1: Fix interrupt disable hazard (Ralf Baechle). + * [mips] SB1: Support for 1480 ethernet (Broadcom). + * [mips] SB1: Support for NAPI (Tom Rix). + * [mips] SB1: DUART support (Broadcom). + * [mips] Work around bad code generation for (Ralf Baechle). + * [mips] Fix VINO drivers when using a 64-bit kernel (Mikael Nousiainen). + * [arm/armeb] Update configs for 2.6.16. + * [mips/mipsel] Update configs for 2.6.16. + * [arm/armeb] Enable the SMB module on NSLU2. + * [mipsel] Enable parallel port modules for Cobalt since there are PCI + cards that can be used in a Qube. + * [mipsel] Enable the JFS module on Cobalt. + + [ dann frazier ] + * [ia64] use yaird on ia64 until #357414 is fixed + * [ia64] Update configs for 2.6.16 + + -- Bastian Blank Tue, 21 Mar 2006 16:12:16 +0100 + +linux-2.6 (2.6.15+2.6.16-rc5-0experimental.1) experimental; urgency=low + + [ Frederik Schüler ] + * New upstream release candidate. + + [ Martin Michlmayr ] + * Add initial mips/mipsel 2.6 kernels. + * Important changes compared to the 2.4 kernels: + - Drop the XXS1500 flavour since there's little interest in it. + - Drop the LASAT flavour since these machines never went into + production. + - Drop the IP22 R5K (Indy, Indigo2) flavour since the IP22 R4K + image now also works on machines with a R5K CPU. + - Add an image for SGI IP32 (O2). + - Rename the sb1-swarm-bn flavour to sb1-bcm91250a. + - Enable PCI network (and other) modules on Cobalt. Closes: #315895. + * Add various MIPS related patches: + - Fix iomap compilation on machines without COW. + - Improve gettimeofday on MIPS. + - Fix an oops on IP22 zerilog (serial console). + - Improve IDE probing so it won't take so long on Cobalt. + - Probe for IDE disks on SWARM. + - Test whether there's a scache (fixes Cobalt crash). + - Add Tulip fixes for Cobalt. + * Fix a typo in the description of the linux-doc-* package, + thanks Justin Pryzby. Closes: #343424. + * [arm] Enable nfs and nfsd modules. + * [arm/footbride] Suggest nwutil (Netwinder utilities). + + -- Frederik Schüler Thu, 9 Mar 2006 14:13:17 +0000 + +linux-2.6 (2.6.15+2.6.16-rc4-0experimental.1) experimental; urgency=low + + [ Frederik Schüler ] + * New upstream release. + * Activate CONFIG_DVB_AV7110_OSD on alpha amd64 and ia64. + Closes: #353292 + * Globally enable NAPI on all network card drivers which support it. + + [ maximilian attems ] + * Drop fdutils from i386 and amd64 Suggests. + * Swap lilo and grub Suggests for i386 and amd64. + + [ Jurij Smakov ] + * Make sure that LOCALVERSION environment variable is not + passed to a shell while invoking make-kpkg, since it + appends it to the version string, breaking the build. + Closes: #349472 + * [sparc32] Re-enable the building of sparc32 images. + * [sparc64] Re-add (partial) sparc64-atyf-xl-gr.patch, since it + was only partially applied upstream, so the problem (garbled + screen output on SunBlade 100) is still present. Thanks to + Luis Ortiz for pointing it out. + * Bump the build-dep on kernel-package to 10.035, which fixes + the problem with building documentation packages. + + [ Martin Michlmayr ] + * [sparc] Add sys_newfstatat -> sys_fstatat64 fix from git. + * [arm] Update configs for 2.6.16-rc3. + * [armeb] Update configs for 2.6.16-rc3. + * [arm/armeb] Fix compilation error on NSLU2 due to recent flash + changes. + * [arm/armeb] Fix a compilation error in the IXP4xx beeper support + (Alessandro Zummo). + + [ Norbert Tretkowski ] + * [alpha] Update arch/alpha/config* for 2.6.16-rc3. + + -- Bastian Blank Fri, 24 Feb 2006 16:02:11 +0000 + +linux-2.6 (2.6.15-8) unstable; urgency=high + + [ maximilian attems ] + * Add stable Release 2.6.15.5: + - Fix deadlock in br_stp_disable_bridge + - Fix a severe bug + - i386: Move phys_proc_id/early intel workaround to correct function + - ramfs: update dir mtime and ctime + - sys_mbind sanity checking + - Fix s390 build failure. + - Revert skb_copy_datagram_iovec() recursion elimination. + - s390: add #ifdef __KERNEL__ to asm-s390/setup.h + - netfilter missing symbol has_bridge_parent + - hugetlbfs mmap ENOMEM failure + - IB/mthca: max_inline_data handling tweaks + - it87: Fix oops on removal + - hwmon it87: Probe i2c 0x2d only + - reiserfs: disable automatic enabling of reiserfs inode attributes + - Fix snd-usb-audio in 32-bit compat environment + - dm: missing bdput/thaw_bdev at removal + - dm: free minor after unlink gendisk + - gbefb: IP32 gbefb depth change fix + - shmdt cannot detach not-alined shm segment cleanly. + - Address autoconfiguration does not work after device down/up cycle + - gbefb: Set default of FB_GBE_MEM to 4 MB + - XFS ftruncate() bug could expose stale data (CVE-2006-0554) + - sys_signal: initialize ->sa_mask + - do_sigaction: cleanup ->sa_mask manipulation + - fix zap_thread's ptrace related problems + - fix deadlock in ext2 + - cfi: init wait queue in chip struct + - sd: fix memory corruption with broken mode page headers + - sbp2: fix another deadlock after disconnection + - skge: speed setting + - skge: fix NAPI/irq race + - skge: genesis phy initialization fix + - skge: fix SMP race + - x86_64: Check for bad elf entry address (CVE-2006-0741) + - alsa: fix bogus snd_device_free() in opl3-oss.c + - ppc32: Put cache flush routines back into .relocate_code section + - sys32_signal() forgets to initialize ->sa_mask + - Normal user can panic NFS client with direct I/O (CVE-2006-0555) + * Deactivate merged duplicates: s390-klibc-buildfix.patch, + powerpc-relocate_code.patch. + * Add stable Release 2.6.15.6: + - Don't reset rskq_defer_accept in reqsk_queue_alloc + - fs/nfs/direct.c compile fix + - mempolicy.c compile fix, make sure BITS_PER_BYTE is defined + - [IA64] die_if_kernel() can return (CVE-2006-0742) + + [ Sven Luther ] + * [powerpc] Disabled CONFIG_IEEE1394_SBP2_PHYS_DMA, which was broken on + powerpc64, as it used the long deprecated bus_to_virt symbol. + (Closes: #330225) + * [powerpc] Fixed gettimeofday breakage causing clock drift. + + -- Bastian Blank Mon, 6 Mar 2006 11:06:28 +0100 + +linux-2.6 (2.6.15-7) unstable; urgency=low + + [ Norbert Tretkowski ] + * [alpha] Disabled CONFIG_ALPHA_LEGACY_START_ADDRESS for -alpha-generic and + -alpha-smp flavours, and introduced a new -alpha-legacy flavour for MILO + based machines, which has CONFIG_ALPHA_LEGACY_START_ADDRESS enabled. + (closes: #352186) + * [alpha] Added new patch to support prctl syscall. (closes: #349765) + * [i386] Renamed kernel-image-2.6-486 to kernel-image-2.6-386, it's meant for + transition only, and kernel-image-2.6-386 is the package name in sarge. + + [ Jurij Smakov ] + * Bump build-dependency on kernel-package to 10.035, which is fixed + to build the documentation packages again. + Closes: #352000, #348332 + + [ Frederik Schüler ] + * Activate CONFIG_DVB_AV7110_OSD on alpha amd64 and ia64. + Closes: #353292 + * Deactivate CONFIG_FB_ATY_XL_INIT on all architectures: it is broken and + already removed in 2.6.16-rc. + Closes: #353310 + + [ Christian T. Steigies ] + * [m68k] build in cirrusfb driver + + -- Bastian Blank Tue, 21 Feb 2006 17:35:21 +0000 + +linux-2.6 (2.6.15-6) unstable; urgency=low + + [ Bastian Blank ] + * Moved the mkvmlinuz support patch modification to a -1 version of the + patch. + + [ maximilian attems ] + * Add stable treee 2.6.15.4 + - PCMCIA=m, HOSTAP_CS=y is not a legal configuration + - Input: iforce - do not return ENOMEM upon successful allocation + - x86_64: Let impossible CPUs point to reference per cpu data + - x86_64: Clear more state when ignoring empty node in SRAT parsing + - x86_64: Dont record local apic ids when they are disabled in MADT + - Fix keyctl usage of strnlen_user() + - Kill compat_sys_clock_settime sign extension stub. + - Input: grip - fix crash when accessing device + - Input: db9 - fix possible crash with Saturn gamepads + - Input: iforce - fix detection of USB devices + - Fixed hardware RX checksum handling + - SCSI: turn off ordered flush barriers + - Input: mousedev - fix memory leak + - seclvl settime fix + - fix regression in xfs_buf_rele + - md: remove slashes from disk names when creation dev names in sysfs + - d_instantiate_unique / NFS inode leakage + - dm-crypt: zero key before freeing it + - bridge: netfilter races on device removal + - bridge: fix RCU race on device removal + - SELinux: fix size-128 slab leak + - __cmpxchg() must really always be inlined + - emu10k1 - Fix the confliction of 'Front' control + - Input: sidewinder - fix an oops + * Deactivate merged alpha-cmpxchg-inline.patch, sparc64-clock-settime.patch. + + [ Christian T. Steigies ] + * [m68k] Add fix for m68k/buddha IDE and m68k/mac SCSI driver + * [m68k] Patch by Peter Krummrich to stop flickering pixels with PicassoII + * [m68k] make Amiga keyboard usable again, patch by Roman Zippel + * [m68k] prevent wd33c93 SCSI driver from crashing the kernel, patch by Roman Zippel + * [m68k] remove SBCs from VME descriptions (closes: #351924) + + -- Frederik Schüler Fri, 10 Feb 2006 15:33:21 +0000 + +linux-2.6 (2.6.15-5) unstable; urgency=low + + [ Martin Michlmayr ] + * Add a fix for the input support for the ixp4xx beeper driver from + 2.6.16-rc2. + * Add stable tree 2.6.15.3: + - Fix extra dst release when ip_options_echo fails (CVE-2006-0454) + + [ Sven Luther ] + * [powerpc] Removed -o root -g root option to mkvmlinuz support patch. + (Closes: #351412) + + -- Sven Luther Tue, 7 Feb 2006 19:23:14 +0000 + +linux-2.6 (2.6.15-4) unstable; urgency=low + + [ Jurij Smakov ] + * [sparc64] Add sparc64-clock-settime.patch to fix the incorrect + handling of the clock_settime syscall arguments, which resulted + in a hang when trying to set the date using 'date -s'. Patch + by David Miller is applied upstream. Thanks to Ludovic Courtes + and Frans Pop for reporting and testing. + Ref: http://marc.theaimsgroup.com/?t=113861017400002&r=1&w=2 + + [ Christian T. Steigies ] + * [m68k] update m68k patch and config to 2.6.15 + * [m68k] SCSI drivers need to be built in until ramdisk generator tools + supports loading scsi modules + * [m68k] ISCSI and IDE-TAPE don't compile, disabled + * [m68k] set CC_OPTIMIZE_FOR_SIZE=n + * [m68k] added vmeints patch which fixes building for vme + + [ maximilian attems ] + * Use initramfs-tools for ia64 - fixed klibc. + * Add stable tree 2.6.15.2: + - Fix double decrement of mqueue_mnt->mnt_count in sys_mq_open + - (CVE-2005-3356) + - Mask off GFP flags before swiotlb_alloc_coherent + - usb-audio: don't use empty packets at start of playback + - Make second arg to skb_reserved() signed. + - Input: HID - fix an oops in PID initialization code + - Fix oops in ufs_fill_super at mount time + - Kill blk_attempt_remerge() + - Fix i2o_scsi oops on abort + - Fix mkiss locking bug + - Fix timekeeping on sparc64 ultra-IIe machines + - Someone broke reiserfs v3 mount options and this fixes it + * Deactivate sparc64-jumping-time.patch, amd64-pppd-fix.patch incl in aboves. + * Add s390-klibc-buildfix.patch, regression due to header file changes. + + [ Steve Langasek ] + * [alpha] set __attribute__((always_inline)) on __cmpxchg(), to avoid + wrong optimizations with -Os (Closes: #347556). + + [ Martin Michlmayr ] + * Add input support for the ixp4xx beeper driver (Alessandro Zummo). + * [arm] Add NSLU2 specific portion of ixp4xx beeper driver (Alessandro Zummo). + * [arm/nslu2] Build PPP as a module. + * [arm/nslu2] Enable wireless. + * [arm/nslu2] Enable most USB modules. + * [arm/nslu2] Enable ALSA and USB sound modules. + * [arm/nslu2] Set 4 MB as the size of the initrd in the kernel cmd line. + * [arm/footbridge] Set CONFIG_BLK_DEV_RAM_SIZE to 8192. + * [armeb] Add support for big-endian ARM. + * [armeb/nslu2] Use the nslu2 config from arm. + + [ Frederik Schüler ] + * [amd64] Add amd64-pppd-fix.patch to fix kernel panic when using pppd. + (Closes: #347711) + * Add 64bit-vidiocswin-ioctl-fix.patch to fix VIDIOCSWIN ioctl on 64bit + kernel 32bit userland setups. (Closes: #349338) + + [ Sven Luther ] + * [powerpc] Adapted apus config file to be more modular and in sync with the + other powerpc configs. Scsi drivers are disabled as they don't build + cleanly though (need some esp stuff). + * [powerpc] Default to initramfs-tools as initramfs generator, as klibc + build is fixed now. + + [ Bastian Blank ] + * [powerpc] Fix dependencies of image packages. + + -- maximilian attems Wed, 1 Feb 2006 11:34:20 +0100 + +linux-2.6 (2.6.15-3) unstable; urgency=low + + [ Martin Michlmayr ] + * [arm] Update configs for 2.6.15; closes: #347998. + * [arm] Activate tmpfs. + * [arm] Allow modules to be unloaded. + * [arm] Enable CONFIG_INPUT_EVDEV since yaird needs this module in + order to generate initrds. + * [arm/footbridge] Activate IDEPCI so SL82C105 will really be + compiled in. + * [arm/footbridge] Activate the right network drivers (Tulip and + NE2K). + * [arm/footbridge] Enable more framebuffer drivers. + * debian/patches/arm-fix-dc21285.patch: Fix compilation of DC21285 + flash driver. + * [arm/footbridge] Enable MTD and the DC21285 flash driver. + * [arm/footbridge] Enable RAID and LVM modules. + * [arm/footbridge] Enable USB modules. + * [arm/nslu2] Add an image for Network Storage Link for USB 2.0 Disk + Drives. + * debian/patches/arm-memory-h-page-shift.patch: Fix error "PAGE_SHIFT + undeclared" (Rod Whitby). + * debian/patches/mtdpart-redboot-fis-byteswap.patch: recognise a foreign + endian RedBoot partition table (John Bowler). + * debian/patches/maclist.patch: Add support for the maclist interface + (John Bowler). + * debian/patches/arm-nslu2-maclist.patch: Add NSLU2 maclist support + (John Bowler). + * [arm/nslu2] Activate maclist. + + [ maximilian attems ] + * Add stable tree 2.6.15.1: + - arch/sparc64/Kconfig: fix HUGETLB_PAGE_SIZE_64K dependencies + - moxa serial: add proper capability check + - fix /sys/class/net//wireless without dev->get_wireless_stats + - Don't match tcp/udp source/destination port for IP fragments + - Fix sys_fstat64() entry in 64-bit syscall table. + - UFS: inode->i_sem is not released in error path + - netlink oops fix due to incorrect error code + - Fix onboard video on SPARC Blade 100 for 2.6.{13,14,15} + - Fix DoS in netlink_rcv_skb() (CVE-2006-0035) + - fix workqueue oops during cpu offline + - Fix crash in ip_nat_pptp (CVE-2006-0036) + - Fix another crash in ip_nat_pptp (CVE-2006-0037) + - ppc32: Re-add embed_config.c to ml300/ep405 + - Fix ptrace/strace + - vgacon: fix doublescan mode + - BRIDGE: Fix faulty check in br_stp_recalculate_bridge_id() + - skge: handle out of memory on ring changes + * Drop merged patch: + - sparc64-atyfb-xl-gr-final.patch + + [ Simon Horman ] + * Fix booting on PReP machines + (Closes: #348040) + powerpc-relocate_code.patch + + -- Simon Horman Tue, 17 Jan 2006 18:01:17 +0900 + +linux-2.6 (2.6.15-2) unstable; urgency=low + + [ maximilian attems ] + * Default to initramfs-tools as initramfs generator for amd64, hppa, i386, + alpha and sparc. More archs will be added once klibc matures. + (Closes: #346141, #343147, #341524, #346305) + * Backport alsa patch for opl3 - Fix the unreleased resources. + (Closes: #346273) + * Readd buslogic-pci-id-table.patch. + + [ dann frazier ] + * [ia64] Update config for 2.6.15. + + [ Frederik Schüler ] + * Make CONFIG_IPW2100 a per-architecture option and deactivate it on all + architectures but i386. (Closes: #344515) + + [ Sven Luther ] + * Removed spurious file from powerpc-apus patch. (Closes: #346159) + + [ Norbert Tretkowski ] + * Backport the generic irq framework for alpha. (closes: #339080) + + [ Bastian Blank ] + * Remove pre-sarge conflict with hotplug. + * Fix hppa diff to apply. + * Make the latest packages depend on the corect version of the real images. + (closes: #346366) + + -- Bastian Blank Tue, 10 Jan 2006 16:54:21 +0100 + +linux-2.6 (2.6.15-1) unstable; urgency=low + + [ Sven Luther ] + * New upstream release. + * [powerpc] Now use ARCH=powerpc for 64bit powerpc flavours, 32bit still + stays with ARCH=ppc for now. + * [powerpc] Readded PReP Motorola PowerStack II Utah IDE interrupt + (Closes: #345424) + * [powerpc] Fixed apus patch. + * Added make-kpkg --arch option support to gencontrol.py. + * Added debian/bin/kconfig.ml to process config file snipplet, so we can + preserve the pre 2.6.15 ordering of config file snipplets. Upto 2.6.15 + the kernel Kconfig magic apparently kept the later occuring config options, + but it seems that this is no more the case. Instead of catting the config + files together, not use the kconfig.ml script to read in the files from + more generic to more specific, and keep only the more specific. + + [ Bastian Blank ] + * [s390] Update configs. + + [ Kyle McMartin ] + * [hppa] Snag latest hppa.diff from cvs.parisc-linux.org. + * [hppa] Update configs for 2.6.15. + * [hppa] Change parisc kernel names to something less ambiguous. + + [ dann frazier ] + * [ia64] Update ia64 configs + + [ maximilian attems ] + * Drop modular-ide.patch, nacked by ide upstream. Prevents udev to load + ide-generic and those successfull boots with initramfs-tools. + * Disable CONFIG_USB_BANDWIDTH, causes major trouble for alsa usb cards. + + [ Norbert Tretkowski ] + * [alpha] Removed conflict with initramfs-tools, thanks vorlon for finding + the klibc bug! + + [ Jonas Smedegaard ] + * Adjust short description of transitional package kernel-image-2.6- + 486 to mention 2.6 (not 2.6.12). + * Clean duplicate Kconfig options. + + [ Frederik Schüler ] + * Add updated version of drivers-scsi-megaraid_splitup.patch. + * Deactivate CONFIG_IDE_TASK_IOCTL on alpha and ia64 and make it a global + option. + * Make CONFIG_VIDEO_SAA7134 a global option. + * New option CONFIG_CC_OPTIMIZE_FOR_SIZE set per-arch. + * Rename i386 368 flavour to 486. + * Add myself to uploaders. + * Readdition of qla2xxx drivers, as firmware license has been fixed. + * Make CONFIG_PACKET, PACKET_MM and UNIX builtin on all architectures: + statically linked has better performance then modules due to TLB issue. + * clean up debian-patches dir: remove all obsolete patches: + - alpha-compile-fix.patch: obsolete + - amd64-int3-fix.patch: fixed since 2.6.12 + - net-ipconntrack-nat-fix.patch: merged upstream after 2.6.14 release + - net-nf_queue-oops.patch: merged upstream after 2.6.14 release + - qla2xxx-removed.patch: obsolete + * Drop M386 support remains from the i386 386 flavour: built with M486 + from now on. + + [ Martin Michlmayr ] + * [arm] Don't define "compiler" since GCC 4.x is the default now anyway. + * [arm] Add descriptions for "class" and "longclass". + * [arm] Compile CONFIG_BLK_DEV_SL82C105 support into the kernel on + Footbridge. + * [arm] Compile ext3 support into the kernel on Footbridge. + * [arm] Turn on CONFIG_SERIAL_8250 support on Footbridge. + + [ Jurij Smakov ] + * [sparc] Correct the patch for the atyfb framebuffer driver + (sparc64-atyfb-xl-gr.patch) to finally fix the console and X + image defects on Blade 100/150. The new patch is named + sparc64-atyfb-xl-gr-final.patch to avoid the confusion. + Thanks to Luis F. Ortiz for fixing the patch and Luigi Gangitano + for testing it out. + * Drop tty-locking-fixes9.patch, which was preventing the oops during + shutdown on some sparc machines with serial console. Proper fix has + been incorporated upstream. + + [ Simon Horman ] + * Enable MKISS globally (closes: #340215) + * Add recommends libc6-i686 to 686 and k7 image packages + (closes: #278729) + * Enable OBSOLETE_OSS_USB_DRIVER and USB_AUDIO + as alsa snd-usb-audio still isn't quite there. + I expect this to be re-disabled at some stage, + possibly soon if it proves to be a source of bugs. + (closes: #340388) + + -- Sven Luther Tue, 3 Jan 2006 06:48:07 +0000 + +linux-2.6 (2.6.14-7) unstable; urgency=low + + [ maximilian attems ] + * Add stable tree 2.6.14.5 fixes: + - setting ACLs on readonly mounted NFS filesystems (CVE-2005-3623) + - Fix bridge-nf ipv6 length check + - Perform SA switchover immediately. + - Input: fix an OOPS in HID driver + - Fix hardware checksum modification + - kernel/params.c: fix sysfs access with CONFIG_MODULES=n + - Fix RTNLGRP definitions in rtnetlink.h + - Fix CTA_PROTO_NUM attribute size in ctnetlink + - Fix unbalanced read_unlock_bh in ctnetlink + - Fix NAT init order + - Fix incorrect dependency for IP6_NF_TARGET_NFQUEUE + - dpt_i2o fix for deadlock condition + - SCSI: fix transfer direction in sd (kernel panic when ejecting iPod) + - SCSI: fix transfer direction in scsi_lib and st + - Fix hardware rx csum errors + - Fix route lifetime. + - apci: fix NULL deref in video/lcd/brightness + * Disable CONFIG_USB_BANDWIDTH, causes major trouble on alsa usb cards. + (Closes: #344939) + + -- maximilian attems Tue, 27 Dec 2005 20:50:28 +0100 + +linux-2.6 (2.6.14-6) unstable; urgency=low + + [ Kyle McMartin ] + * Change parisc kernel names to something less ambiguous. + + [ maximilian attems ] + * Drop modular-ide.patch, nacked by ide upstream. Prevents udev to load + ide-generic and those successfull boots with initramfs-tools. + * Add stable tree 2.6.14.4 with the following fixes: + - drivers/scsi/dpt_i2o.c: fix a user-after-free + - drivers/message/i2o/pci.c: fix a use-after-free + - drivers/infiniband/core/mad.c: fix a use-after-free + - DVB: BUDGET CI card depends on STV0297 demodulator + - setkeys needs root + - Fix listxattr() for generic security attributes + - AGPGART: Fix serverworks TLB flush. + - Fix crash when ptrace poking hugepage areas + - I8K: fix /proc reporting of blank service tags + - i82365: release all resources if no devices are found + - bonding: fix feature consolidation + - libata: locking rewrite (== fix) + - cciss: bug fix for BIG_PASS_THRU + - ALSA: nm256: reset workaround for Latitude CSx + - cciss: bug fix for hpacucli + - V4L/DVB: Fix analog NTSC for Thomson DTT 761X hybrid tuner + - BRIDGE: recompute features when adding a new device + - 32bit integer overflow in invalidate_inode_pages2() + - USB: Adapt microtek driver to new scsi features + - ide-floppy: software eject not working with LS-120 drive + - Add try_to_freeze to kauditd + - V4L/DVB (3135) Fix tuner init for Pinnacle PCTV Stereo + - NETLINK: Fix processing of fib_lookup netlink messages + - ACPI: fix HP nx8220 boot hang regression + + [ Norbert Tretkowski ] + * [alpha] Removed conflict with initramfs-tools, thanks vorlon for finding + the klibc bug! + + [ Frederik Schüler ] + * Add updated drivers-scsi-megaraid_splitup.patch. (Closes: #317258) + * Add ppc64-thermal-overtemp.patch to fix a thermal control bug in G5 + machines. (Closes: #343980) + * Unpatch the following patches which are included in 2.6.14.4: + - setkeys-needs-root-1.patch + - setkeys-needs-root-2.patch + - mm-invalidate_inode_pages2-overflow.patch + - net-bonding-consolidation-fix.patch + + -- Frederik Schüler Tue, 20 Dec 2005 18:50:41 +0000 + +linux-2.6 (2.6.14-5) unstable; urgency=low + + [ dann frazier ] + * ia64-new-assembler-fix.patch + Fix ia64 builds with newer assembler (Closes: #341257) + + [ Sven Luther ] + * [powerpc] incremented ramdisk size to 24576 from 8192, needed by the + graphical installer, maybe we can bring this to 16384 later. + + [ Simon Horman ] + * Add recommends libc6-i686 to 686 and k7 image packages + (closes: #278729) + * Enable OBSOLETE_OSS_USB_DRIVER and USB_AUDIO + as alsa snd-usb-audio still isn't quite there. + I expect this to be re-disabled at some stage, + possibly soon if it proves to be a source of bugs. + (closes: #340388) + + [ dann frazier ] + * buslogic-pci-id-table.patch + add a pci device id table to fix initramfs-tools discovery. + (closes #342057) + * fix feature consolidation in bonding driver. (closes #340068) + + -- dann frazier Thu, 8 Dec 2005 10:59:31 -0700 + +linux-2.6 (2.6.14-4) unstable; urgency=low + + [ dann frazier ] + * setkeys-needs-root-1.patch, setkeys-needs-root-2.patch: + [SECURITY] Require root privilege to write the current + function key string entry of other user's terminals. + See CVE-2005-3257 (Closes: #334113) + + [ Simon Horman ] + * Enable MKISS globally (closes: #340215) + * mm-invalidate_inode_pages2-overflow.patch + [SECURITY] 32bit integer overflow in invalidate_inode_pages2() (local DoS) + * ctnetlink-check-if-protoinfo-is-present.patch + [SECURITY] ctnetlink: check if protoinfo is present (local DoS) + * ctnetlink-fix-oops-when-no-icmp-id-info-in-message.patch + [SECURITY] ctnetlink: Fix oops when no ICMP ID info in message (local DoS) + + [ Sven Luther ] + * Re-added powerpc/apus patch, now that Roman Zippel merged it in. + * Let's create asm-(ppc|ppc64) -> asm-powerpc symlink farm. (Closes: #340571) + + [ maximilian attems ] + * Add 2.6.14.3 patch - features changelog: + - isdn/hardware/eicon/os_4bri.c: correct the xdiLoadFile() signature + - x86_64/i386: Compute correct MTRR mask on early Noconas + - PPTP helper: Fix endianness bug in GRE key / CallID NAT + - nf_queue: Fix Ooops when no queue handler registered + - ctnetlink: check if protoinfo is present + - ip_conntrack: fix ftp/irc/tftp helpers on ports >= 32768 + - VFS: Fix memory leak with file leases + - hwmon: Fix lm78 VID conversion + - hwmon: Fix missing it87 fan div init + - ppc64 memory model depends on NUMA + - Generic HDLC WAN drivers - disable netif_carrier_off() + - ctnetlink: Fix oops when no ICMP ID info in message + - Don't auto-reap traced children + - packet writing oops fix + - PPTP helper: fix PNS-PAC expectation call id + - NAT: Fix module refcount dropping too far + - Fix soft lockup with ALSA rtc-timer + - Fix calculation of AH length during filling ancillary data. + - ip_conntrack TCP: Accept SYN+PUSH like SYN + - refcount leak of proto when ctnetlink dumping tuple + - Fix memory management error during setting up new advapi sockopts. + - Fix sending extension headers before and including routing header. + - hwmon: Fix missing boundary check when setting W83627THF in0 limits + * Remove ctnetlink-check-if-protoinfo-is-present.patch, + net-nf_queue-oops.patch - already included in 2.6.14.3. + + [ Frederik Schüler ] + * Make CONFIG_PACKET, PACKET_MM and UNIX builtin on all architectures: + statically linked has better performance then modules due to TLB issue. + * Add myself to uploaders. + + -- Frederik Schüler Sat, 26 Nov 2005 13:18:41 +0100 + +linux-2.6 (2.6.14-3) unstable; urgency=low + + [ Norbert Tretkowski ] + * [alpha] Switch to gcc 4.0. + * [alpha] Conflict with initramfs-tools, klibc is broken on alpha. + * [alpha] Enabled CONFIG_KOBJECT_UEVENT in arch/alphaconfig to fix trouble + with latest udev, thanks to Uwe Schindler for reporting. (closes: #338911) + * Bumped ABI revision: + + ABI changes on sparc and alpha because of compiler switch. + + 2.6.14.1 changes ABI of procfs. + + [ Sven Luther ] + * Set default TCP congestion algorithm to NewReno + BIC (Closes: #337089) + + [ maximilian attems ] + * Reenable CONFIG_SOFTWARE_SUSPEND on i386 and ppc, resume=/dev/ + must be set by boot loader. (Closes: #267600) + * Set CONFIG_USB_SUSPEND on i386. Usefull for suspend to ram and apm suspend. + * Add 2.6.14.1 patch: + - Al Viro: CVE-2005-2709 sysctl unregistration oops + * Add 2.6.14.2 patch: + - airo.c/airo_cs.c: correct prototypes + - fix XFS_QUOTA for modular XFS (closes: #337072) + - USB: always export interface information for modalias + - NET: Fix zero-size datagram reception + - fix alpha breakage + - Oops on suspend after on-the-fly switch to anticipatory i/o scheduler + - ipvs: fix connection leak if expire_nodest_conn=1 + - Fix ptrace self-attach rule + - fix signal->live leak in copy_process() + - fix de_thread() vs send_group_sigqueue() race + - prism54 : Fix frame length + - tcp: BIC max increment too large + * Remove alpha compile fix as contained in 2.6.14.2 + * Readd CONFIG_XFS_QUOTA=y. + * Disable ACPI cutoff year on i386, was set to 2001. + No need for acpi=force on boot. + + [ Jurij Smakov ] + * Fix the install-image script to correctly include all the necessary + stuff in scripts. (Closes: #336424) + * Enable CONFIG_SND_ALI5451 on sparc. + * Switch sparc to gcc-4.0. Thanks to Norbert for making sure it successfully + builds a working kernel now. + * Apply patch to fix ATI framebuffer output corruption on SunBlade 100 + (sparc64-atyfb-xl-gr.patch). Thanks to Luigi Gangitano. (Closes: #321200) + * Disable CONFIG_PARPORT_PC_FIFO on sparc, since it causes a hang whenever + something is sent to the parallel port device. Thanks to Attilla + (boera at rdslink.ro) for pointing that out. + + [ Simon Horman ] + * [386, AMD64] Set CONFIG_FRAMEBUFFER_CONSOLE=y instead of m. + As vesadb now built into the kernel, after finally dropping the + debian-specific patch to make it modular, make fbcons builtin too, else + all sorts of weird stuff happens which is hard for the inird builders to + automatically compenste for. (Closes: #336450) + * Redisable CONFIG_SOFTWARE_SUSPEND on ppc/miboot as it required + CONFIG_PM to compile. + * [NETFILTER] nf_queue: Fix Ooops when no queue handler registered + This is a regression introduced in 2.6.14. + net-nf_queue-oops.patch. (Closes: #337713) + * Make manuals with defconfig, as is required for kernel-package 10.008 + + [ dann frazier ] + * net-ipconntrack-nat-fix.patch - fix compilation of + ip_conntrack_helper_pptp.c when NAT is disabled. (Closes: #336431) + + [ Christian T. Steigies ] + * update m68k.diff to 2.6.14 + * add m68k-*vme* patches + * disable macsonic driver until the dma patch is fixed + * disable IEEE80211 drivers for all of m68k + + [ Frederik Schüler ] + * activate CONFIG_SECURITY_NETWORK to fix SElinux operation. + (Closes: #338543) + + -- Norbert Tretkowski Mon, 14 Nov 2005 10:23:05 +0100 + +linux-2.6 (2.6.14-2) unstable; urgency=low + + [ Simon Horman ] + * [SECURITY] Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL + This fix, included as part of the 2.6.13.4 patch in + 2.6.13+2.6.14-rc4-0experimental.1 is CVE-2005-3181 + * Fix genearation of .extraversion, again (closes: #333842) + * Add missing kernel-arch and kernel-header-dirs to defines + so headers get included. (closes: #336521) + N.B: I only filled in arches where other's hadn't done so alread. + Please fix if its wrong. + * Allow powerpc64 to compile with AUDIT enabled but + AUDITSYSCALL disabled. powerpc64-audit_sysctl-build.patch + + [ dann frazier ] + * Update hppa.diff to 2.6.14-pa0 + + [ Norbert Tretkowski ] + * [alpha] New patch to include compiler.h in barrier.h, barrier() is used in + non-SMP case. + * [alpha] Added kernel-header-dirs and kernel-arch to debian/arch/alpha/defines + to include asm-alpha in linux-headers package. + * Added myself to Uploaders. + + [ Frederik Schüler ] + * [amd64] use DISCONTIGMEM instead of SPARSEMEM on amd64-k8-smp flavour to + fix bootup kernel panic. + * [amd64] include asm-x86_64 in linux-headers package. + * Deactivate AUDITSYSCALL globally, it slows down the kernel and is not + needed for selinux at all. + + -- Simon Horman Tue, 1 Nov 2005 15:27:40 +0900 + +linux-2.6 (2.6.14-1) unstable; urgency=low + + [ Sven Luther ] + * New upstream release. + + [ Norbert Tretkowski ] + * [alpha] Update arch/alpha/config* for 2.6.14. + + [ Simon Horman ] + * Fix misformatting of long description of + linux-patch-debian-linux-patch-debian-X.Y.Z. + templates/control.main.in + (closes: #335088) + * Make sure version is seeded in apply and unapply scripts. + Actually changed in some earlier, post 2.6.12, release, + but the changelog seems to be missing. + (closes: #324583) + + [ dann frazier ] + * [ia64] Disable the CONFIG_IA64_SGI_SN_XP module. This forces + CONFIG_GENERIC_ALLOCATOR and CONFIG_IA64_UNCACHED_ALLOCATOR to y, which + appears to break on zx1 systems. + + -- Simon Horman Fri, 28 Oct 2005 16:26:03 +0900 + +linux-2.6 (2.6.13+2.6.14-rc5-0experimental.1) experimental; urgency=low + + [ Sven Luther ] + * Upgraded to 2.6.14-rc5. + + [ Jonas Smedegaard ] + * Quote variables in debian/rules.real and postinstall (making it + safer to run with weird characters in path of build environment). + + [ Bastian Blank ] + * Add some missing files from scripts to headers packages. + * Add new patch powerpc-build-links.patch: Emit relative symlinks in + arch/ppc{,64}/include. + * Include arch/*/include into headers package. + + -- Sven Luther Tue, 25 Oct 2005 03:56:11 +0000 + +linux-2.6 (2.6.13+2.6.14-rc4-0experimental.1) experimental; urgency=low + + [ Sven Luther ] + * Upgraded to 2.6.14-rc4. + + [ Simon Horman ] + * Fix genearation of .extraversion (closes: #333842) + + [ dann frazier ] + * Enhance the linux-source description to explain the types of patches + Debian adds to it. (closes: #258043) + * Correct linux-patch-debian description. It replaces the + kernel-patch-debian packages, not the kernel-source packages. + + [ Jonas Smedegaard ] + * Fix building from within a very long dir (all patches was applied at + once - exhausting shell commandline, now applied one by one). + * Add Simon Horman, Sven Luther and myself as Uploaders. + + [ Bastian Blank ] + * Use list of revisions in patch scripts. + * Use correct names for tarball and scripts. + + [ Jurij Smakov ] + * [i386] Set the CONFIG_HPET_EMULATE_RTC option to make the clock + work properly on certain Dell machines. This required setting the + CONFIG_RTC option to 'y' instead of 'm'. (closes: #309909) + [i386] Enable VIDEO_CX88 and VIDEO_CX88_DVB (both set to 'm') by + popular demand. (closes: #330916) + + [ Norbert Tretkowski ] + * [alpha] Update arch/alpha/config for 2.6.13. + + [ Kyle McMartin ] + * [hppa] Oops. Fix linux-headers not including asm-parisc by adding + headers_dirs = parisc to Makefile.inc. + + [ maximilian attems ] + * Set CONFIG_FB_VESA=y for i386 and amd64 configs. (closes: #333003) + + [ Sven Luther ] + * [powerpc] Fixed apus build, now use mkvmlinuz too to generate the vmlinuz + kernel. + * Fixed control.image.in to depend on : + initramfs-tools | yaird | linux-ramdisk-tool + where linux-ramdisk-tools is the virtual package provided by all + initrd/initramfs generating tools. + + [ Frederik Schüler ] + * deactivate FB_RIVA on all architectures. + * deactivate BLK_DEV_IDESCSI on all architectures. + * Added patch-2.6.13.4: + - [SECURITY] key: plug request_key_auth memleak + See CAN-2005-3119 + - [SECURITY] Fix drm 'debug' sysfs permissions + See CAN-2005-3179 + - [SECURITY] Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL + - [SPARC64] Fix userland FPU state corruption. + - BIC coding bug in Linux 2.6.13 + - [SECURITY] orinoco: Information leakage due to incorrect padding + See CAN-2005-3180 + - ieee1394/sbp2: fixes for hot-unplug and module unloading + + [ Christian T. Steigies ] + * disable CONFIG_EXT2_FS_XIP for m68k like on all(?) other arches + * deactivate OKTAGON_SCSI for amiga/m68k until it can be compiled again + * deactivate CONFIG_KEYBOARD_HIL_OLD, CONFIG_KEYBOARD_HIL, CONFIG_MOUSE_HIL, + CONFIG_HIL_MLC, and CONFIG_HP_SDC for hp/m68k + * update m68k.diff for 2.6.13 + * split out patches that do not intefere with other arches to + patches-debian/m68k-* + + -- Bastian Blank Fri, 21 Oct 2005 12:17:47 +0000 + +linux-2.6 (2.6.13-1) experimental; urgency=low + + * New upstream release "git booost": + - new arch xtensa + - kexec/kdump + - execute-in-place + - inotify (closes: #304387) + - time-sharing cfq I/O scheduler + - manual driver binding + - voluntary preemption + - user-space I/O initiation for InfiniBand + - new speedy DES (crypto) implementation + - uml "almost-skas" mode support + - 250 HZ default (closes: #320366) + - fixes all over (alsa, archs, ide, input, ntfs, scsi, swsusp, usb, ..) + - orinoco driver updates (closes: #291684) + - md, dm updates (closes: #317787) + + [ Frederik Schüler ] + * [amd64] Added class and longclass descriptions for amd64 flavours. + * [amd64] add amd64-tlb-flush-sigsegv-fix.patch: disable tlb flush + filtering on smp systems to workaround processor errata. + * backport kernel-api-documentation-generation-fix.diff from git to fix + documentation build. + * Added patch-2.6.13.1: + - raw_sendmsg DoS (CAN-2005-2492) + - 32bit sendmsg() flaw (CAN-2005-2490) + - Reassembly trim not clearing CHECKSUM_HW + - Use SA_SHIRQ in sparc specific code. + - Fix boundary check in standard multi-block cipher processors + - 2.6.13 breaks libpcap (and tcpdump) + - x86: pci_assign_unassigned_resources() update + - Fix PCI ROM mapping + - aacraid: 2.6.13 aacraid bad BUG_ON fix + - Kconfig: saa7134-dvb must select tda1004x + + [ Simon Horman ] + * Disable BSDv3 accounting on hppa and alpha, it was already + disabled on all other architectures. Also unify BSD accounting + config into top level config, rather than per flavour configs. + * [SECURITY] The seq_file memory leak fix included in 2.6.12-6 + as part of upstream's 2.6.12.6 patchset is now CAN-2005-2800. + + [ Jurij Smakov, Simon Horman ] + * Ensure that only one kernel-manual/linux-manual package can + be installed at a time to avoid file conflicts. (closes: #320042) + + [ Bastian Blank ] + * Move audit, preempt and security settings to core config file. + * Fix powerpc configuration. + * Add debian version information to kernel version string. + * Drop coreutils | fileutils dependencies. + * Drop modular-vesafb patch. (closes: #222374, #289810) + + [ Christian T. Steigies ] + * update m68k.diff for linux-2.6.13 + * add m68k-42_dma.patch and m68k-sonic.patch that will be in upstream 2.6.14 + (which makes sun3 build fail, needs fixing) + + [ maximilian attems ] + * Drop drivers-add-scsi_changer.patch (merged) + * Drop drivers-ide-dma-blacklist-toshiba.patch (merged) + * Drop drivers-ide-__devinit.patch (merged) + * Added patch-2.6.13.2: + - USB: ftdi_sio: custom baud rate fix + - Fix up more strange byte writes to the PCI_ROM_ADDRESS config word + - Fix MPOL_F_VERIFY + - jfs: jfs_delete_inode must call clear_inode + - Fix DHCP + MASQUERADE problem + - Sun HME: enable and map PCI ROM properly + - Sun GEM ethernet: enable and map PCI ROM properly + - hpt366: write the full 4 bytes of ROM address, not just low 1 byte + - forcedeth: Initialize link settings in every nv_open() + - Lost sockfd_put() in routing_ioctl() + - lost fput in 32bit ioctl on x86-64 + * Added patch-2.6.13.3: + - Fix fs/exec.c:788 (de_thread()) BUG_ON + - Don't over-clamp window in tcp_clamp_window() + - fix IPv6 per-socket multicast filtering in exact-match case + - yenta oops fix + - ipvs: ip_vs_ftp breaks connections using persistence + - uml - Fix x86_64 page leak + - skge: set mac address oops with bonding + - tcp: set default congestion control correctly for incoming connections + + [ Sven Luther ] + * [powerpc] Added hotplug support to the mv643xx_eth driver : + powerpc-mv643xx-hotplug-support.patch + thanks go to Nicolas Det for providing the patch. + * [powerpc] Modified a couple of configuration options for the powerpc64 + flavour, fixes and enhances Apple G5 support (Closes: #323724, #328324) + * [powerpc] Added powerpc-miboot flavour to use exclusively with oldworld + powermac miboot floppies for debian-installer. + * [powerpc] Checked upgraded version of the apus patches, separated them in + a part which is safe to apply, and one which needs checking, and is thus + not applied yet. + + [ Kyle McMartin ] + * [hppa] Update hppa.diff to 2.6.13-pa4. + * [hppa] Add space register fix to pacache.S to hppa.diff. + + [ dann frazier ] + * Add a note to README.Debian that explains where users can find the .config + files used to generate the linux-image packages. Closes: #316809 + * [ia64] Workaround #325070 until upstream works out an acceptable solution. + This bug breaks module loading on non-SMP ia64 kernels. The workaround + is to temporarily use an SMP config for the non-SMP kernels. (Note that + John Wright is running benchmarks to determine the overhead of running + an SMP kernel on UP systems to help decide if this should be a + permanent change). + * [ia64] Update arch/ia64/config for 2.6.13 + + -- Simon Horman Thu, 6 Oct 2005 15:45:21 +0900 + +linux-2.6 (2.6.12-6) unstable; urgency=high + + [ Andres Salomon, Bastian Blank ] + * Change ATM and Classical-IP-over-ATM to be modular, instead of being + statically included. (closes: #323143) + + [ Sven Luther ] + * [powerpc] powerpc-pmac-sound-check.patch: Added pmac-sound sanity check. + * [powerpc] powerpc-apus.patch: + Added preliminary apus patch to package, not applied to kernel tree yet. + + [ Simon Horman ] + * Unset CC_OPTIMIZE_FOR_SIZE in i386 config, + it breaks iproute's (and other netlink users) ability + to set routes. (closes: #322723) + * Added 2.6.12.6 + - [SECURITY: CAN-2005-2555] Restrict socket policy loading to + CAP_NET_ADMIN. + - [SECURITY] Fix DST leak in icmp_push_reply(). Possible remote + DoS? + - [SECURITY] NPTL signal delivery deadlock fix; possible local + DoS. + - fix gl_skb/skb type error in genelink driver in usbnet + - [SECURITY] fix a memory leak in devices seq_file implementation; + local DoS. + - [SECURITY] Fix SKB leak in ip6_input_finish(); local DoS. + + [ Andres Salomon ] + * [hppa] enable discontiguous memory support for 32bit hppa images, so + they build. + + -- Andres Salomon Tue, 06 Sep 2005 10:14:35 -0400 + +linux-2.6 (2.6.12-5) unstable; urgency=low + + * Change ARM to use GCC 3.3 to avoid FTBFS errors with GCC 4 + (dann frazier) + + * Remove spurious double quote character from ia64 package descriptions. + (dann frazier) + + * Add transitional meta packages (kernel-image-2.6-*) for ia64. + (dann frazier) + + * Change fuzz factor to 1, stricter patch appliance. (Maximilian Attems) + + * Enabled CONFIG_THERM_PM72 on powerpc64 flavour. (Sven Luther) + + -- Bastian Blank Tue, 16 Aug 2005 21:43:31 +0200 + +linux-2.6 (2.6.12-4) unstable; urgency=low + + * Supply correct subarch values for the powerpc images. + + -- Bastian Blank Mon, 15 Aug 2005 21:06:18 +0200 + +linux-2.6 (2.6.12-3) unstable; urgency=low + + * Added reference to old kernel-* package names to make + transition a little more obvious to end users. + A Dan Jacobson special. (Simon Horman) Closes: #321167 + + * By the time this makes it into the archive, it will + be handling kernel-image-2.6-* packages. (Simon Horman) + Closes: #321867 + + * Link palinfo statically on ia64. (dann frazier) (Closes: #321885) + + * [hppa] : + - Add hppa arch specific patch. + - Build-Depend on binutils-hppa64 and gcc-4.0-hppa64. + (Kyle McMartin) + + * Fix permissions in source tarball. (Bastian Blank) (Closes: #322409) + + * Enable the CONFIG_IP_ADVANCED_ROUTER and related options on + sparc64 to sync with other architectures. (Jurij Smakov) + Closes: #321236 + + * Include all executables as well as *.sh and *.pl files found in + scripts directory in the headers package. (Bastian Blank) + Closes: #322612, #322680, #322765 + + * Include m68k headers into the arch-common headers package on + powerpc and make sure that all the directories are linked to + properly from the flavour-specific headers packages. (Jurij Smakov) + Closes: #322610 + + * [powerpc] Enabled the powerpc64 flavour, now that we have a real biarch + toolchain in sid. Many thanks go to GOTO Masanori and Matthias Klose as + well as any other who worked on the biarch toolchain to make this happen. + + * Added 2.6.12.5 (Simon Horman) + - Fix BUG() is triggered by a call to set_mempolicy() with a negativ + first argument. + - [amd64] Fix a SRAT handling on systems with dual cores. + - [amd64] SMP timing problem + - [security] Zlib fixes See CAN-2005-2458, CAN-2005-2459 + http://sources.redhat.com/ml/bug-gnu-utils/1999-06/msg00183.html + http://bugs.gentoo.org/show_bug.cgi + - Add zlib deflateBound() + - [security] Fix error during session join. See CAN-2005-2098 + - [security] Fix keyring destructor. See CAN-2005-2099 + - Module per-cpu alignment cannot always be met + http://www.ussg.iu.edu/hypermail/linux/kernel/0409.0/0768.html + Closes: #323039 + + -- Bastian Blank Mon, 15 Aug 2005 16:42:05 +0200 + +linux-2.6 (2.6.12-2) unstable; urgency=low + + * The Kernel Team offers its condolences to the family of Jens Schmalzing + (jensen@debian), who died Saturday, July 30, 2005 in a tragic accident in + Munich. Jens was a member of the Kernel Team, and was instrumental in + taking the powerpc kernel package to 2.6, as well as maintaining MOL + and its kernel modules. + + * Add @longclass@ variable to control file autogeneration. (Andres Salomon) + + * Bump build-depends on kernel-package to a fixed version (>= 9.005). + (Jurij Smakov, Sven Luther) (closes: #319657, #320422, #321625) + + * Change default ramdisk size for sparc to 16,384K to accomodate a fatter + d-i initrd for netboot installs. + (Joshua Kwan) + + * Don't build-depend on console-tools on s390. (Bastian Blank) + + * Add ARM support. (Vincent Sanders) + + * Add ia64 descriptions. (dann frazier) + + * Strip down the scripts dir in the headers packages. (Bastian Blank) + + * Add m68k support. (Christian T. Steigies) + + * Added 2.6.12.4 (Frederik Schüler) + - Fix powernow oops on dual-core athlon + - Fix early vlan adding leads to not functional device + - sys_get_thread_area does not clear the returned argument + - bio_clone fix + - Fix possible overflow of sock->sk_policy (CAN-2005-2456) + (closes: #321401) + - Wait until all references to ip_conntrack_untracked are dropped on + unload + - Fix potential memory corruption in NAT code (aka memory NAT) + - Fix deadlock in ip6_queue + - Fix signedness issues in net/core/filter.c + - x86_64 memleak from malicious 32bit elf program + - rocket.c: Fix ldisc ref count handling + - kbuild: build TAGS problem with O= + + * Enable CONFIG_6PACK=m for all archs (Andres Salomon) + (closes: #319646) + + * Overhaul the generation of the control file. Now it is handled + by debian/bin/gencontrol.py. The debian/control target in rules + also fails now, since we don't want the control file generated + during build. Arch-specific Depends and suggests are now generated + correctly. (Bastian Blank) (Closes: #319896) + + * [powerpc] Fixed typo which made asm-ppc and asm-ppc64 not being included + in the header package. (Sven Luther) (Closes: #320817) + + * Added list of flavours built to common header package. (Sven Luther) + + -- Bastian Blank Tue, 09 Aug 2005 11:12:40 +0200 + +linux-2.6 (2.6.12-1) unstable; urgency=low + + * New upstream release: + - "git rocks" + - address space randomization + - conversion of ide driver code to the device model + - restored Philips webcam driver + - new Broadcom bcm5706 gigabit driver + - new resource limits for the audio community + - Multipath device mapper + - Intel HD Audio alsa driver + - fixes + arch updates.. + - readdition of tg3 driver, as firmware license has been fixed + + * Dropped the following patches: + - patch-2.6.11.*.patch (merged) + - powerpc-ppc64-ibmvscsi.patch (Christoph didn't like it, and it failed + to build anyways) (Sven Luther) + - doc-post_halloween.patch (unless someone can come up w/ a valid + reason for carrying around rapidly bitrotting documentation...) + (Andres Salomon) + - sparc32-hypersparc-srmmu.patch (dropped until sparc32 is working + again, and we can figure out whether it's necessary) + - fix-alpha-ext3-oops.patch (no longer needed, fixed by compiler) + - x86-i486_emu.patch (buggy and insecure 80486 instruction emulation + for 80386; we're no longer supporting this) (closes: #250468) + - amd64-outs.patch (according to + http://www.ussg.iu.edu/hypermail/linux/kernel/0502.3/1095.html, this + is unnecessary for us) (Andres Salomon) + - sparc64-rtc-mostek.patch (merged) + - sparc64-compat-nanoseconds.patch (merged) + - sparc64-sunsu-init-2.6.11.patch (merged) + - sunsab-uart-update-timeout.patch (merged) + - alpha-read-trylock.patch (different version got merged) + - powerpc-prep-motorola-irq-fix.patch (merged) + - drivers-media-video-saa7134-update.patch (merged) + - drivers-media-video-saa7134-update-2.patch (merged) + - drivers-media-video-pll-lib.patch (merged) + - drivers-media-video-pll-lib-2.patch (merged) + - drivers-media-video-tuner-update-1.patch (merged) + - drivers-media-video-tuner-update-2.patch (merged) + - drivers-media-video-v4l-mpeg-support.patch (merged) + - drivers-media-video-mt352-update.patch (merged) + - arch-ppc64-hugepage-aio-panic.patch (merged) + - drivers-input-serio-nmouse.patch (merged) + - sparc64-sb1500-clock-2.6.patch (merged) + - docbook-allow-preprocessor-directives-... (merged) + - docbook-fix-function-parameter-descriptin-in-fbmem.patch (merged) + - docbook-move-kernel-doc-comment-next-to-function.patch (merged) + - powerpc-therm-adt746x-new-i2c-fix.patch (merged) + - powerpc-mv643xx-enet.patch (merged) + - powerpc-mv643xx-eth-pegasos.patch (merged) + - powerpc-pmac-agp-sleep.patch (merged) + - drivers-input-serio-8042-resume.patch (merged) + + * Premiere of the common-source kernel package + (Jurij Smakov, Andres Salomon) + - build all architectures out of kernel source package + - rename source and binary packages + - create a common config for different architectures, and management + tools to allow for easier modification of config options + - drop default configs, autogenerate them instead; requires + kernel-package >= 9.002. + + * Add 2.6.12.1 (Maximilian Attems) + - Clean up subthread exec (CAN-2005-1913) + - ia64 ptrace + sigrestore_context (CAN-2005-1761) + + * Add 2.6.12.2 (Frederik Schüler) + - Fix two socket hashing bugs. + - ACPI: Make sure we call acpi_register_gsi() even for default PCI + interrupt assignment + - Add "memory" clobbers to the x86 inline asm of strncmp and friends + - e1000: fix spinlock bug + - fix remap_pte_range BUG + - Fix typo in drivers/pci/pci-driver.c + + * Add 2.6.12.3 (Joshua Kwan) + - Fix semaphore handling in __unregister_chrdev + - Fix TT mode in UML. + - Check for a null return in tty_ldisc_ref. + - v4l: cx88 hue offset fix + - Fix 8139cp breakage that occurs with tpm driver. + - Fix the 6pack driver in SMP environments. + - Switch to spinlocks in the shaper driver. + - ppc32: stop misusing NTP's time_offset value + - netfilter: go back to dropping conntrack references manually + - ACPI: don't accept 0 as a PCI IRQ. + + * Enable CONFIG_SCSI_INITIO. (Maximilian Attems) (closes: #318121) + + * [powerpc] : + - Added powerpc-mkvmlinuz-support patch which allows, together with + kernel-package 9.0002 to add mkvmlinuz support to hand built packages. + - Removed powerpc-ppc64-ibmvscsi.patch, FTBFS, and Christoph doesn't like + it and thinks it is not needed. + - Disabled swim3 on powerpc-smp, FTBFS. + - Disabled software-suspend on powerpc-smp, FTBFS, amd64/i386 only smp code. + - Rediffed and readded the G4 L2 hardware flush assist patch from Jacob Pan. + (Sven Luther) + + * [sparc] + - Drop sparc32 flavour for now. sparc32 kernel is currently in the + category "too buggy for us to support". In spite of numerous efforts + I still see occasional random filesystem corruptions in my tests. + That does NOT mean that we are dropping sparc32 support, we will + work with upstream trying to solve these problems for the next + kernel release. Those interested in helping/testing are encouraged + to subscribe to debian-sparc mailing list. + (Jurij Smakov) + + * [alpha] + - Renamed resulting binary packages for alpha, kernel-image-x.y.z-generic + wasn't a generic kernel, it was a generic kernel for alpha machines, so + we're now using linux-image-x.y.z-alpha-generic (and of course, the same + change for the smp kernel-image). This change was postponed after the + sarge release. (closes: #260003) + (Norbert Tretkowski) + + * [amd64] + - Now using the default compiler (gcc-4.0), thus we get rid of the + annoying MAKEFLAGS="CC=gcc-3.4" make-kpkg... invocation for third-party + modules. + This release lacks 64bit kernels for i386 userland; support will be + added in a later release as soon as the toolchain has stabilized again. + (Frederik Schüler) + + -- Andres Salomon Wed, 20 Jul 2005 17:16:04 -0400 + --- linux-2.6-3.0.0.orig/debian/copyright +++ linux-2.6-3.0.0/debian/copyright @@ -0,0 +1,54 @@ +This is the Debian GNU/Linux prepackaged version of the Linux kernel. + +It was downloaded from http://ftp.kernel.org/pub/linux/kernel/. + +Copyright: + + Copyright (C) 1991-2009 Linus Torvalds + and many others + +License: + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General Public License version +2 can be found in `/usr/share/common-licenses/GPL-2'. + +License for the Xen interface headers: + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +The 'perf' tool is dynamically linked with the Python interpreter, +which is itself dynamically linked with OpenSSL, which is not +GPL-compatible. However, since perf itself does not link with or use +OpenSSL, we believe that this indirect linking does not require +additional permissions beyond the GPL. + +The Debian packaging is licensed under the GPL, see above. --- linux-2.6-3.0.0.orig/debian/control +++ linux-2.6-3.0.0/debian/control @@ -0,0 +1,1341 @@ +Source: linux-2.6 +Section: kernel +Priority: optional +Maintainer: Debian Kernel Team +Uploaders: Bastian Blank , Frederik Schüler , maximilian attems , Ben Hutchings +Standards-Version: 3.9.2 +Build-Depends: debhelper (>> 7), cpio, module-init-tools, python (>= 2.6.6-3~), lzma [armel], libelf-dev, libdw-dev, binutils-dev, asciidoc, xmlto, libperl-dev, python-dev, libnewt-dev, gcc-4.4 [alpha hppa m68k], gcc-4.5 [amd64 armel armhf i386 ia64 mips mipsel powerpc ppc64 s390 s390x sh4 sparc sparc64], binutils-hppa64 [hppa], gcc-4.4-hppa64 [hppa] +Build-Depends-Indep: bzip2 +Vcs-Svn: svn://svn.debian.org/svn/kernel/dists/sid/linux-2.6/ +Vcs-Browser: http://svn.debian.org/wsvn/kernel/dists/sid/linux-2.6/?op=log + +Package: linux-tools-3.0.0 +Architecture: alpha amd64 armel armhf hppa i386 powerpc ppc64 s390 s390x sh4 sparc sparc64 +Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python:Depends} +Recommends: linux-base (>= 2.6.32-16) +Suggests: linux-doc-3.0.0 +Description: Performance analysis tools for Linux 3.0.0 + This package contains the 'perf' performance analysis tools for Linux + kernel version 3.0.0. + . + The linux-base package contains a 'perf' command which will invoke the + appropriate version for the running kernel. + +Package: linux-source-3.0.0 +Architecture: all +Section: kernel +Provides: linux-source +Depends: binutils, bzip2, ${misc:Depends} +Recommends: libc6-dev | libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt4-dev +Description: Linux kernel source for version 3.0.0 with Debian patches + This package provides source code for the Linux kernel version 3.0.0. This + source closely tracks official Linux kernel releases. Debian's + modifications to that source consist of security fixes, bug fixes, and + features that have already been (or are believed to be) accepted by the + upstream maintainers. + +Package: linux-doc-3.0.0 +Architecture: all +Section: doc +Depends: ${misc:Depends} +Description: Linux kernel specific documentation for version 3.0.0 + This package provides the various README files and HTML documentation for + the Linux kernel version 3.0.0. Plenty of information, including the + descriptions of various kernel subsystems, filesystems, driver-specific + notes and the like. Consult the file + /usr/share/doc/linux-doc-3.0.0/Documentation/00-INDEX for the detailed + description of the contents. + +Package: linux-manual-3.0.0 +Architecture: all +Section: doc +Provides: linux-manual +Depends: ${misc:Depends} +Replaces: linux-manual +Conflicts: linux-manual +Description: Linux kernel API manual pages for version 3.0.0 + This package provides the Kernel Hacker's Guide in the form of manual + pages, describing the kernel API functions. They are installed into + section 9 of the manual. + . + As the files containing manual pages for different kernel versions are + installed in the same location, only one linux-manual package may be + installed at a time. The linux-doc package containing the documentation + in other formats is free from such restriction. + +Package: linux-patch-debian-3.0.0 +Architecture: all +Depends: bzip2, linux-support-3.0.0-1, python, ${misc:Depends} +Suggests: linux-source-3.0.0 +Description: Debian patches to version 3.0.0 of the Linux kernel + This package includes the patches used to produce the prepackaged + linux-source-3.0.0 package, as well as architecture-specific patches. + . + Note that these patches do NOT apply against a pristine Linux 3.0.0 kernel + but only against the kernel tarball linux-2.6_3.0.0.orig.tar.gz from the + Debian archive. + +Package: linux-support-3.0.0-1 +Architecture: all +Section: devel +Depends: ${python:Depends}, ${misc:Depends} +Description: Support files for Linux 3.0.0 + This package provides support files for the Linux kernel build, e.g. + scripts to handle ABI information and for generation of build system meta + data. + +Package: linux-libc-dev +Architecture: alpha amd64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc ppc64 s390 s390x sh4 sparc sparc64 +Section: devel +Provides: linux-kernel-headers +Depends: ${misc:Depends} +Replaces: linux-kernel-headers +Conflicts: linux-kernel-headers +Description: Linux support headers for userspace development + This package provides userspaces headers from the Linux kernel. These + headers are used by the installed headers for GNU glibc and other system + libraries. +Multi-Arch: same + +Package: linux-headers-3.0.0-1-all +Architecture: alpha amd64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc ppc64 s390 s390x sh4 sparc sparc64 +Depends: linux-headers-3.0.0-1-all-${kernel:Arch} (= ${binary:Version}), ${misc:Depends} +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-headers-3.0.0-1-all-alpha +Architecture: alpha +Depends: ${misc:Depends}, linux-headers-3.0.0-1-alpha-generic (= ${binary:Version}), linux-headers-3.0.0-1-alpha-smp (= ${binary:Version}), linux-headers-3.0.0-1-alpha-legacy (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-headers-3.0.0-1-common +Architecture: alpha amd64 armel armhf hppa i386 ia64 m68k mips mipsel powerpc ppc64 s390 s390x sh4 sparc sparc64 +Depends: ${misc:Depends} +Description: Common header files for Linux 3.0.0-1 + This package provides the architecture-specific common kernel header files + for Linux kernel version 3.0.0-1, generally used for building out-of-tree + kernel modules. To obtain a complete set of headers you also need to + install the linux-headers-3.0.0-1-(flavour) package, matching the flavour + of the kernel you intend the build for. + +Package: linux-image-3.0.0-1-alpha-generic +Architecture: alpha +Provides: linux-image, linux-modules-3.0.0-1-alpha-generic +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [alpha] | linux-initramfs-tool [alpha] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, aboot [alpha], fdutils [alpha] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for Alpha + The Linux kernel 3.0.0 and modules for use on DEC Alpha systems with + extended kernel start address (Wildfire, Titan, Marvel). + +Package: linux-headers-3.0.0-1-alpha-generic +Architecture: alpha +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-alpha-generic + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-alpha-generic, generally used for building + out-of-tree kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-alpha-generic, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-alpha-generic package. + +Package: linux-image-3.0.0-1-alpha-smp +Architecture: alpha +Provides: linux-image, linux-modules-3.0.0-1-alpha-smp +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [alpha] | linux-initramfs-tool [alpha] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, aboot [alpha], fdutils [alpha] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for Alpha SMP + The Linux kernel 3.0.0 and modules for use on DEC Alpha SMP systems with + extended kernel start address (Wildfire, Titan, Marvel). + +Package: linux-headers-3.0.0-1-alpha-smp +Architecture: alpha +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-alpha-smp + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-alpha-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-alpha-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-alpha-smp package. + +Package: linux-image-3.0.0-1-alpha-legacy +Architecture: alpha +Provides: linux-image, linux-modules-3.0.0-1-alpha-legacy +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [alpha] | linux-initramfs-tool [alpha] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, aboot [alpha], fdutils [alpha] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for Alpha Legacy + The Linux kernel 3.0.0 and modules for use on DEC Alpha systems with + legacy kernel start address. + +Package: linux-headers-3.0.0-1-alpha-legacy +Architecture: alpha +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-alpha-legacy + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-alpha-legacy, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-alpha-legacy, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-alpha-legacy package. + +Package: linux-headers-3.0.0-1-all-amd64 +Architecture: amd64 +Depends: ${misc:Depends}, linux-headers-3.0.0-1-amd64 (= ${binary:Version}), linux-headers-3.0.0-1-rt-amd64 (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-amd64 +Architecture: amd64 i386 +Provides: linux-image, linux-modules-3.0.0-1-amd64 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [amd64 i386] | linux-initramfs-tool [amd64 i386] +Recommends: firmware-linux-free (>= 3~), libc6-i686 [i386] +Suggests: linux-doc-3.0.0, grub-pc [amd64 i386] | extlinux [amd64 i386] | lilo (>= 22.8-8.2~) [amd64 i386] +Breaks: initramfs-tools (<< 0.99~), lilo (<< 22.8-8.2~) +Description: Linux 3.0.0 for 64-bit PCs + The Linux kernel 3.0.0 and modules for use on PCs with AMD64 or Intel 64 + processors. + . + This kernel also runs on a Xen hypervisor. It supports both privileged + (dom0) and unprivileged (domU) operation. + +Package: linux-headers-3.0.0-1-amd64 +Architecture: amd64 i386 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-amd64 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-amd64, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-amd64, and can be used for building modules + that load into the kernel provided by the linux-image-3.0.0-1-amd64 + package. + +Package: linux-image-3.0.0-1-amd64-dbg +Architecture: amd64 +Section: debug +Priority: extra +Depends: linux-image-3.0.0-1-amd64, ${misc:Depends} +Description: Debugging infos for Linux 3.0.0-1-amd64 + This package provides the binary debug image and pre-built debug loadable + modules for Linux kernel 3.0.0 on PCs with AMD64 or Intel 64 processors + machines. + +Package: xen-linux-system-3.0.0-1-amd64 +Architecture: amd64 i386 +Depends: linux-image-3.0.0-1-amd64 (= ${binary:Version}), ${misc:Depends}, xen-hypervisor-amd64 +Description: Xen system with Linux 3.0.0 on 64-bit PCs (meta-package) + This package depends on the binary Linux image and hypervisors. + +Package: linux-headers-3.0.0-1-common-rt +Architecture: amd64 +Depends: ${misc:Depends} +Description: Common header files for Linux 3.0.0-1-rt + This package provides the architecture-specific common kernel header files + for Linux kernel version 3.0.0-1-rt, generally used for building + out-of-tree kernel modules. To obtain a complete set of headers you also + need to install the linux-headers-3.0.0-1-(flavour) package, matching the + flavour of the kernel you intend the build for. + +Package: linux-image-3.0.0-1-rt-amd64 +Architecture: amd64 +Provides: linux-image, linux-modules-3.0.0-1-rt-amd64 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [amd64] | linux-initramfs-tool [amd64] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, grub-pc [amd64] | extlinux [amd64] | lilo (>= 22.8-8.2~) [amd64] +Breaks: initramfs-tools (<< 0.99~), lilo (<< 22.8-8.2~) +Description: Linux 3.0.0 for 64-bit PCs, PREEMPT_RT + The Linux kernel 3.0.0 and modules for use on PCs with AMD64 or Intel 64 + processors. + . + This kernel includes the PREEMPT_RT realtime patch set. + . + This kernel also runs on a Xen hypervisor. It supports both privileged + (dom0) and unprivileged (domU) operation. + +Package: linux-headers-3.0.0-1-rt-amd64 +Architecture: amd64 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common-rt (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-rt-amd64 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-rt-amd64, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-rt-amd64, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-rt-amd64 package. + +Package: linux-image-3.0.0-1-rt-amd64-dbg +Architecture: amd64 +Section: debug +Priority: extra +Depends: linux-image-3.0.0-1-rt-amd64, ${misc:Depends} +Description: Debugging infos for Linux 3.0.0-1-rt-amd64 + This package provides the binary debug image and pre-built debug loadable + modules for Linux kernel 3.0.0 on PCs with AMD64 or Intel 64 processors + machines. + +Package: xen-linux-system-3.0.0-1-rt-amd64 +Architecture: amd64 +Depends: linux-image-3.0.0-1-rt-amd64 (= ${binary:Version}), ${misc:Depends}, xen-hypervisor-amd64 +Description: Xen system with Linux 3.0.0 on 64-bit PCs (meta-package) + This package depends on the binary Linux image and hypervisors. + +Package: linux-headers-3.0.0-1-all-armel +Architecture: armel +Depends: ${misc:Depends}, linux-headers-3.0.0-1-iop32x (= ${binary:Version}), linux-headers-3.0.0-1-ixp4xx (= ${binary:Version}), linux-headers-3.0.0-1-kirkwood (= ${binary:Version}), linux-headers-3.0.0-1-orion5x (= ${binary:Version}), linux-headers-3.0.0-1-versatile (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-iop32x +Architecture: armel +Provides: linux-image, linux-modules-3.0.0-1-iop32x +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [armel] | linux-initramfs-tool [armel] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, fdutils [armel] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for IOP32x + The Linux kernel 3.0.0 and modules for use on IOP32x based systems (Thecus + N2100, etc). + +Package: linux-headers-3.0.0-1-iop32x +Architecture: armel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-iop32x + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-iop32x, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-iop32x, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-iop32x package. + +Package: linux-image-3.0.0-1-ixp4xx +Architecture: armel +Provides: linux-image, linux-modules-3.0.0-1-ixp4xx +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [armel] | linux-initramfs-tool [armel] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, fdutils [armel] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for IXP4xx + The Linux kernel 3.0.0 and modules for use on IXP4xx based systems + (Linksys NSLU2, etc). + +Package: linux-headers-3.0.0-1-ixp4xx +Architecture: armel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-ixp4xx + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-ixp4xx, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-ixp4xx, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-ixp4xx package. + +Package: linux-image-3.0.0-1-kirkwood +Architecture: armel +Provides: linux-image, linux-modules-3.0.0-1-kirkwood +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [armel] | linux-initramfs-tool [armel] +Recommends: firmware-linux-free (>= 3~), uboot-mkimage [armel] +Suggests: linux-doc-3.0.0, fdutils [armel] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for Marvell Kirkwood + The Linux kernel 3.0.0 and modules for use on Marvell Kirkwood based + systems (SheevaPlug, QNAP TS-119/TS-219, etc). + +Package: linux-headers-3.0.0-1-kirkwood +Architecture: armel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-kirkwood + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-kirkwood, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-kirkwood, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-kirkwood package. + +Package: linux-image-3.0.0-1-orion5x +Architecture: armel +Provides: linux-image, linux-modules-3.0.0-1-orion5x +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [armel] | linux-initramfs-tool [armel] +Recommends: firmware-linux-free (>= 3~), uboot-mkimage [armel] +Suggests: linux-doc-3.0.0, fdutils [armel] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for Marvell Orion + The Linux kernel 3.0.0 and modules for use on Marvell Orion 5181, 5182 and + 5281 based systems (QNAP TS-109/TS-209, etc). + +Package: linux-headers-3.0.0-1-orion5x +Architecture: armel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-orion5x + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-orion5x, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-orion5x, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-orion5x package. + +Package: linux-image-3.0.0-1-versatile +Architecture: armel +Provides: linux-image, linux-modules-3.0.0-1-versatile +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [armel] | linux-initramfs-tool [armel] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, fdutils [armel] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for Versatile + The Linux kernel 3.0.0 and modules for use on Versatile systems (PB, AB, + Qemu). + +Package: linux-headers-3.0.0-1-versatile +Architecture: armel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-versatile + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-versatile, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-versatile, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-versatile package. + +Package: linux-headers-3.0.0-1-all-armhf +Architecture: armhf +Depends: ${misc:Depends}, linux-headers-3.0.0-1-mx5 (= ${binary:Version}), linux-headers-3.0.0-1-omap (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-mx5 +Architecture: armhf +Provides: linux-image, linux-modules-3.0.0-1-mx5 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [armhf] | linux-initramfs-tool [armhf] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, fdutils [armhf] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for Freescale i.MX51 + The Linux kernel 3.0.0 and modules for use on Support for Freescale i.MX51 + family of processors. + +Package: linux-headers-3.0.0-1-mx5 +Architecture: armhf +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-mx5 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-mx5, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-mx5, and can be used for building modules + that load into the kernel provided by the linux-image-3.0.0-1-mx5 package. + +Package: linux-image-3.0.0-1-omap +Architecture: armhf +Provides: linux-image, linux-modules-3.0.0-1-omap +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [armhf] | linux-initramfs-tool [armhf] +Recommends: firmware-linux-free (>= 3~), uboot-mkimage [armhf] +Suggests: linux-doc-3.0.0, fdutils [armhf] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for TI OMAP3+ + The Linux kernel 3.0.0 and modules for use on Texas Instruments OMAP3 or + OMAP4 based systems. + +Package: linux-headers-3.0.0-1-omap +Architecture: armhf +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-omap + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-omap, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-omap, and can be used for building modules + that load into the kernel provided by the linux-image-3.0.0-1-omap + package. + +Package: linux-headers-3.0.0-1-all-hppa +Architecture: hppa +Depends: ${misc:Depends}, linux-headers-3.0.0-1-parisc (= ${binary:Version}), linux-headers-3.0.0-1-parisc-smp (= ${binary:Version}), linux-headers-3.0.0-1-parisc64 (= ${binary:Version}), linux-headers-3.0.0-1-parisc64-smp (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-parisc +Architecture: hppa +Provides: linux-image, linux-modules-3.0.0-1-parisc +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [hppa] | linux-initramfs-tool [hppa] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, palo [hppa] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for 32-bit PA-RISC + The Linux kernel 3.0.0 and modules for use on 32-bit PA-RISC. + +Package: linux-headers-3.0.0-1-parisc +Architecture: hppa +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4, binutils-hppa64, gcc-4.4-hppa64 +Description: Header files for Linux 3.0.0-1-parisc + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-parisc, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-parisc, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-parisc package. + +Package: linux-image-3.0.0-1-parisc-smp +Architecture: hppa +Provides: linux-image, linux-modules-3.0.0-1-parisc-smp +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [hppa] | linux-initramfs-tool [hppa] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, palo [hppa] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for multiprocessor 32-bit PA-RISC + The Linux kernel 3.0.0 and modules for use on multiprocessor 32-bit + PA-RISC. + +Package: linux-headers-3.0.0-1-parisc-smp +Architecture: hppa +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4, binutils-hppa64, gcc-4.4-hppa64 +Description: Header files for Linux 3.0.0-1-parisc-smp + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-parisc-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-parisc-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-parisc-smp package. + +Package: linux-image-3.0.0-1-parisc64 +Architecture: hppa +Provides: linux-image, linux-modules-3.0.0-1-parisc64 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [hppa] | linux-initramfs-tool [hppa] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, palo [hppa] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for 64-bit PA-RISC + The Linux kernel 3.0.0 and modules for use on 64-bit PA-RISC. + +Package: linux-headers-3.0.0-1-parisc64 +Architecture: hppa +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4, binutils-hppa64, gcc-4.4-hppa64 +Description: Header files for Linux 3.0.0-1-parisc64 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-parisc64, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-parisc64, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-parisc64 package. + +Package: linux-image-3.0.0-1-parisc64-smp +Architecture: hppa +Provides: linux-image, linux-modules-3.0.0-1-parisc64-smp +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [hppa] | linux-initramfs-tool [hppa] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, palo [hppa] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for multiprocessor 64-bit PA-RISC + The Linux kernel 3.0.0 and modules for use on multiprocessor 64-bit + PA-RISC. + +Package: linux-headers-3.0.0-1-parisc64-smp +Architecture: hppa +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4, binutils-hppa64, gcc-4.4-hppa64 +Description: Header files for Linux 3.0.0-1-parisc64-smp + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-parisc64-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-parisc64-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-parisc64-smp package. + +Package: linux-headers-3.0.0-1-all-i386 +Architecture: i386 +Depends: ${misc:Depends}, linux-headers-3.0.0-1-486 (= ${binary:Version}), linux-headers-3.0.0-1-686-pae (= ${binary:Version}), linux-headers-3.0.0-1-amd64 (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-486 +Architecture: i386 +Provides: linux-image, linux-modules-3.0.0-1-486 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [i386] | linux-initramfs-tool [i386] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, grub-pc [i386] | extlinux [i386] | lilo (>= 22.8-8.2~) [i386] +Breaks: initramfs-tools (<< 0.99~), lilo (<< 22.8-8.2~) +Description: Linux 3.0.0 for older PCs + The Linux kernel 3.0.0 and modules for use on PCs with a single processor + not supporting PAE. + . + This kernel is not suitable for SMP (multi-processor, multi-core or + hyper-threaded) systems. + +Package: linux-headers-3.0.0-1-486 +Architecture: i386 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-486 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-486, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-486, and can be used for building modules + that load into the kernel provided by the linux-image-3.0.0-1-486 package. + +Package: linux-image-3.0.0-1-686-pae +Architecture: i386 +Provides: linux-image, linux-modules-3.0.0-1-686-pae +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [i386] | linux-initramfs-tool [i386] +Recommends: firmware-linux-free (>= 3~), libc6-i686 [i386] +Suggests: linux-doc-3.0.0, grub-pc [i386] | extlinux [i386] | lilo (>= 22.8-8.2~) [i386] +Breaks: initramfs-tools (<< 0.99~), lilo (<< 22.8-8.2~) +Description: Linux 3.0.0 for modern PCs + The Linux kernel 3.0.0 and modules for use on PCs with one or more + processors supporting PAE. + . + This kernel requires PAE (Physical Address Extension). This feature is + supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon, Core and Atom; AMD + Geode NX, Athlon (K7), Duron, Opteron, Sempron, Turion or Phenom; + Transmeta Efficeon; VIA C7; and some other processors. + . + This kernel also runs on a Xen hypervisor. It supports both privileged + (dom0) and unprivileged (domU) operation. + +Package: linux-headers-3.0.0-1-686-pae +Architecture: i386 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-686-pae + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-686-pae, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-686-pae, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-686-pae package. + +Package: linux-image-3.0.0-1-686-pae-dbg +Architecture: i386 +Section: debug +Priority: extra +Depends: linux-image-3.0.0-1-686-pae, ${misc:Depends} +Description: Debugging infos for Linux 3.0.0-1-686-pae + This package provides the binary debug image and pre-built debug loadable + modules for Linux kernel 3.0.0 on PCs with one or more processors + supporting PAE machines. + +Package: xen-linux-system-3.0.0-1-686-pae +Architecture: i386 +Depends: linux-image-3.0.0-1-686-pae (= ${binary:Version}), ${misc:Depends}, xen-hypervisor-i386 | xen-hypervisor-amd64 +Description: Xen system with Linux 3.0.0 on modern PCs (meta-package) + This package depends on the binary Linux image and hypervisors. + +Package: linux-headers-3.0.0-1-all-ia64 +Architecture: ia64 +Depends: ${misc:Depends}, linux-headers-3.0.0-1-itanium (= ${binary:Version}), linux-headers-3.0.0-1-mckinley (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-itanium +Architecture: ia64 +Provides: linux-image, linux-modules-3.0.0-1-itanium +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [ia64] | linux-initramfs-tool [ia64] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, fdutils [ia64], elilo (>= 3.12-3.1~) [ia64] +Breaks: initramfs-tools (<< 0.99~), elilo (<< 3.12-3.1~) +Description: Linux 3.0.0 for Itanium + The Linux kernel 3.0.0 and modules for use on Itanium. + +Package: linux-headers-3.0.0-1-itanium +Architecture: ia64 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-itanium + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-itanium, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-itanium, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-itanium package. + +Package: linux-image-3.0.0-1-mckinley +Architecture: ia64 +Provides: linux-image, linux-modules-3.0.0-1-mckinley +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [ia64] | linux-initramfs-tool [ia64] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, fdutils [ia64], elilo (>= 3.12-3.1~) [ia64] +Breaks: initramfs-tools (<< 0.99~), elilo (<< 3.12-3.1~) +Description: Linux 3.0.0 for Itanium II + The Linux kernel 3.0.0 and modules for use on Itanium II. + +Package: linux-headers-3.0.0-1-mckinley +Architecture: ia64 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-mckinley + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-mckinley, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-mckinley, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-mckinley package. + +Package: linux-headers-3.0.0-1-all-m68k +Architecture: m68k +Depends: ${misc:Depends}, linux-headers-3.0.0-1-amiga (= ${binary:Version}), linux-headers-3.0.0-1-atari (= ${binary:Version}), linux-headers-3.0.0-1-bvme6000 (= ${binary:Version}), linux-headers-3.0.0-1-mac (= ${binary:Version}), linux-headers-3.0.0-1-mvme147 (= ${binary:Version}), linux-headers-3.0.0-1-mvme16x (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-amiga +Architecture: m68k +Provides: linux-image, linux-modules-3.0.0-1-amiga +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, vmelilo [m68k], fdutils [m68k] +Description: Linux 3.0.0 for Amiga + The Linux kernel 3.0.0 and modules for use on Amiga. + +Package: linux-headers-3.0.0-1-amiga +Architecture: m68k +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-amiga + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-amiga, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-amiga, and can be used for building modules + that load into the kernel provided by the linux-image-3.0.0-1-amiga + package. + +Package: linux-image-3.0.0-1-atari +Architecture: m68k +Provides: linux-image, linux-modules-3.0.0-1-atari +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, vmelilo [m68k], fdutils [m68k] +Description: Linux 3.0.0 for Atari + The Linux kernel 3.0.0 and modules for use on Atari. + +Package: linux-headers-3.0.0-1-atari +Architecture: m68k +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-atari + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-atari, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-atari, and can be used for building modules + that load into the kernel provided by the linux-image-3.0.0-1-atari + package. + +Package: linux-image-3.0.0-1-bvme6000 +Architecture: m68k +Provides: linux-image, linux-modules-3.0.0-1-bvme6000 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, vmelilo [m68k], fdutils [m68k] +Description: Linux 3.0.0 for BVM BVME4000 and BVME6000 + The Linux kernel 3.0.0 and modules for use on BVM BVME4000 and BVME6000. + +Package: linux-headers-3.0.0-1-bvme6000 +Architecture: m68k +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-bvme6000 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-bvme6000, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-bvme6000, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-bvme6000 package. + +Package: linux-image-3.0.0-1-mac +Architecture: m68k +Provides: linux-image, linux-modules-3.0.0-1-mac +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, vmelilo [m68k], fdutils [m68k] +Description: Linux 3.0.0 for Macintosh + The Linux kernel 3.0.0 and modules for use on Macintosh. + +Package: linux-headers-3.0.0-1-mac +Architecture: m68k +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-mac + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-mac, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-mac, and can be used for building modules + that load into the kernel provided by the linux-image-3.0.0-1-mac package. + +Package: linux-image-3.0.0-1-mvme147 +Architecture: m68k +Provides: linux-image, linux-modules-3.0.0-1-mvme147 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, vmelilo [m68k], fdutils [m68k] +Description: Linux 3.0.0 for Motorola MVME147 + The Linux kernel 3.0.0 and modules for use on Motorola MVME147. + +Package: linux-headers-3.0.0-1-mvme147 +Architecture: m68k +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-mvme147 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-mvme147, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-mvme147, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-mvme147 package. + +Package: linux-image-3.0.0-1-mvme16x +Architecture: m68k +Provides: linux-image, linux-modules-3.0.0-1-mvme16x +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, vmelilo [m68k], fdutils [m68k] +Description: Linux 3.0.0 for Motorola MVME162/6/7, MVME172/7 + The Linux kernel 3.0.0 and modules for use on Motorola MVME162/6/7, + MVME172/7. + +Package: linux-headers-3.0.0-1-mvme16x +Architecture: m68k +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.4 +Description: Header files for Linux 3.0.0-1-mvme16x + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-mvme16x, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-mvme16x, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-mvme16x package. + +Package: linux-headers-3.0.0-1-all-mips +Architecture: mips +Depends: ${misc:Depends}, linux-headers-3.0.0-1-r4k-ip22 (= ${binary:Version}), linux-headers-3.0.0-1-r5k-ip32 (= ${binary:Version}), linux-headers-3.0.0-1-sb1-bcm91250a (= ${binary:Version}), linux-headers-3.0.0-1-sb1a-bcm91480b (= ${binary:Version}), linux-headers-3.0.0-1-4kc-malta (= ${binary:Version}), linux-headers-3.0.0-1-5kc-malta (= ${binary:Version}), linux-headers-3.0.0-1-octeon (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-r4k-ip22 +Architecture: mips +Provides: linux-image, linux-modules-3.0.0-1-r4k-ip22 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for SGI IP22 + The Linux kernel 3.0.0 and modules for use on SGI IP22 systems (Indy, + Indigo2). + +Package: linux-headers-3.0.0-1-r4k-ip22 +Architecture: mips +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-r4k-ip22 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-r4k-ip22, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-r4k-ip22, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-r4k-ip22 package. + +Package: linux-image-3.0.0-1-r5k-ip32 +Architecture: mips +Provides: linux-image, linux-modules-3.0.0-1-r5k-ip32 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for SGI IP32 + The Linux kernel 3.0.0 and modules for use on SGI IP32 systems (O2). + +Package: linux-headers-3.0.0-1-r5k-ip32 +Architecture: mips +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-r5k-ip32 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-r5k-ip32, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-r5k-ip32, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-r5k-ip32 package. + +Package: linux-image-3.0.0-1-sb1-bcm91250a +Architecture: mips mipsel +Provides: linux-image, linux-modules-3.0.0-1-sb1-bcm91250a +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for BCM91250A + The Linux kernel 3.0.0 and modules for use on Broadcom BCM91250A systems + (aka SWARM). + +Package: linux-headers-3.0.0-1-sb1-bcm91250a +Architecture: mips mipsel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-sb1-bcm91250a + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-sb1-bcm91250a, generally used for building + out-of-tree kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-sb1-bcm91250a, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-sb1-bcm91250a package. + +Package: linux-image-3.0.0-1-sb1a-bcm91480b +Architecture: mips mipsel +Provides: linux-image, linux-modules-3.0.0-1-sb1a-bcm91480b +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for BCM91480B + The Linux kernel 3.0.0 and modules for use on Broadcom BCM91480B systems + (aka BigSur). + +Package: linux-headers-3.0.0-1-sb1a-bcm91480b +Architecture: mips mipsel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-sb1a-bcm91480b + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-sb1a-bcm91480b, generally used for building + out-of-tree kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-sb1a-bcm91480b, and can be used for + building modules that load into the kernel provided by the + linux-image-3.0.0-1-sb1a-bcm91480b package. + +Package: linux-image-3.0.0-1-4kc-malta +Architecture: mips mipsel +Provides: linux-image, linux-modules-3.0.0-1-4kc-malta +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for MIPS Malta + The Linux kernel 3.0.0 and modules for use on MIPS Malta boards. + +Package: linux-headers-3.0.0-1-4kc-malta +Architecture: mips mipsel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-4kc-malta + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-4kc-malta, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-4kc-malta, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-4kc-malta package. + +Package: linux-image-3.0.0-1-5kc-malta +Architecture: mips mipsel +Provides: linux-image, linux-modules-3.0.0-1-5kc-malta +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for MIPS Malta (64-bit) + The Linux kernel 3.0.0 and modules for use on MIPS Malta boards (64-bit). + +Package: linux-headers-3.0.0-1-5kc-malta +Architecture: mips mipsel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-5kc-malta + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-5kc-malta, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-5kc-malta, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-5kc-malta package. + +Package: linux-image-3.0.0-1-octeon +Architecture: mips +Provides: linux-image, linux-modules-3.0.0-1-octeon +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for Octeon + The Linux kernel 3.0.0 and modules for use on Cavium Networks Octeon. + +Package: linux-headers-3.0.0-1-octeon +Architecture: mips +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-octeon + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-octeon, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-octeon, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-octeon package. + +Package: linux-headers-3.0.0-1-all-mipsel +Architecture: mipsel +Depends: ${misc:Depends}, linux-headers-3.0.0-1-r5k-cobalt (= ${binary:Version}), linux-headers-3.0.0-1-sb1-bcm91250a (= ${binary:Version}), linux-headers-3.0.0-1-sb1a-bcm91480b (= ${binary:Version}), linux-headers-3.0.0-1-4kc-malta (= ${binary:Version}), linux-headers-3.0.0-1-5kc-malta (= ${binary:Version}), linux-headers-3.0.0-1-loongson-2f (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-r5k-cobalt +Architecture: mipsel +Provides: linux-image, linux-modules-3.0.0-1-r5k-cobalt +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for Cobalt + The Linux kernel 3.0.0 and modules for use on Cobalt systems (Qube, RaQ, + Qube2, RaQ2). + +Package: linux-headers-3.0.0-1-r5k-cobalt +Architecture: mipsel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-r5k-cobalt + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-r5k-cobalt, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-r5k-cobalt, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-r5k-cobalt package. + +Package: linux-image-3.0.0-1-loongson-2f +Architecture: mipsel +Provides: linux-image, linux-modules-3.0.0-1-loongson-2f +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0 +Description: Linux 3.0.0 for Loongson 2F + The Linux kernel 3.0.0 and modules for use on Lemote Loongson 2F systems. + +Package: linux-headers-3.0.0-1-loongson-2f +Architecture: mipsel +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-loongson-2f + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-loongson-2f, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-loongson-2f, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-loongson-2f package. + +Package: linux-headers-3.0.0-1-all-powerpc +Architecture: powerpc +Depends: ${misc:Depends}, linux-headers-3.0.0-1-powerpc (= ${binary:Version}), linux-headers-3.0.0-1-powerpc-smp (= ${binary:Version}), linux-headers-3.0.0-1-powerpc64 (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-powerpc +Architecture: powerpc +Provides: linux-image, linux-modules-3.0.0-1-powerpc +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [powerpc] | linux-initramfs-tool [powerpc] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, mkvmlinuz [powerpc] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for uniprocessor 32-bit PowerPC + The Linux kernel 3.0.0 and modules for use on uniprocessor 32-bit PowerPC. + +Package: linux-headers-3.0.0-1-powerpc +Architecture: powerpc +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-powerpc + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-powerpc, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-powerpc, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-powerpc package. + +Package: linux-image-3.0.0-1-powerpc-smp +Architecture: powerpc +Provides: linux-image, linux-modules-3.0.0-1-powerpc-smp +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [powerpc] | linux-initramfs-tool [powerpc] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, mkvmlinuz [powerpc] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for multiprocessor 32-bit PowerPC + The Linux kernel 3.0.0 and modules for use on multiprocessor 32-bit + PowerPC. + +Package: linux-headers-3.0.0-1-powerpc-smp +Architecture: powerpc +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-powerpc-smp + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-powerpc-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-powerpc-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-powerpc-smp package. + +Package: linux-image-3.0.0-1-powerpc64 +Architecture: powerpc ppc64 +Provides: linux-image, linux-modules-3.0.0-1-powerpc64 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [powerpc ppc64] | linux-initramfs-tool [powerpc ppc64] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, mkvmlinuz [powerpc ppc64] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for 64-bit PowerPC + The Linux kernel 3.0.0 and modules for use on 64-bit PowerPC. + +Package: linux-headers-3.0.0-1-powerpc64 +Architecture: powerpc ppc64 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-powerpc64 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-powerpc64, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-powerpc64, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-powerpc64 package. + +Package: linux-headers-3.0.0-1-all-ppc64 +Architecture: ppc64 +Depends: ${misc:Depends}, linux-headers-3.0.0-1-powerpc64 (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-headers-3.0.0-1-all-s390 +Architecture: s390 +Depends: ${misc:Depends}, linux-headers-3.0.0-1-s390x (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-s390x +Architecture: s390 s390x +Provides: linux-image, linux-modules-3.0.0-1-s390x +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [s390 s390x] | linux-initramfs-tool [s390 s390x] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, s390-tools (>= 1.8.3-2~) [s390 s390x] +Breaks: initramfs-tools (<< 0.99~), s390-tools (<< 1.8.3-2~) +Description: Linux 3.0.0 for IBM zSeries + The Linux kernel 3.0.0 and modules for use on IBM zSeries. + . + This kernel has support to IPL (boot) from a VM reader or DASD device. + +Package: linux-headers-3.0.0-1-s390x +Architecture: s390 s390x +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-s390x + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-s390x, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-s390x, and can be used for building modules + that load into the kernel provided by the linux-image-3.0.0-1-s390x + package. + +Package: linux-image-3.0.0-1-s390x-tape +Architecture: s390 s390x +Provides: linux-image +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: linux-doc-3.0.0, s390-tools (>= 1.8.3-2~) [s390 s390x] +Breaks: s390-tools (<< 1.8.3-2~) +Description: Linux 3.0.0 for IBM zSeries, IPL from tape + The Linux kernel 3.0.0 for use on IBM zSeries. + . + This kernel has support to IPL (boot) from a tape. + +Package: linux-headers-3.0.0-1-all-s390x +Architecture: s390x +Depends: ${misc:Depends}, linux-headers-3.0.0-1-s390x (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-headers-3.0.0-1-all-sh4 +Architecture: sh4 +Depends: ${misc:Depends}, linux-headers-3.0.0-1-sh7751r (= ${binary:Version}), linux-headers-3.0.0-1-sh7785lcr (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-sh7751r +Architecture: sh4 +Provides: linux-image, linux-modules-3.0.0-1-sh7751r +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [sh4] | linux-initramfs-tool [sh4] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, fdutils [sh4] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for sh7751r + The Linux kernel 3.0.0 and modules for use on Renesas SH7751R R2D plus + board. + +Package: linux-headers-3.0.0-1-sh7751r +Architecture: sh4 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-sh7751r + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-sh7751r, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-sh7751r, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-sh7751r package. + +Package: linux-image-3.0.0-1-sh7785lcr +Architecture: sh4 +Provides: linux-image, linux-modules-3.0.0-1-sh7785lcr +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [sh4] | linux-initramfs-tool [sh4] +Recommends: firmware-linux-free (>= 3~), uboot-mkimage [sh4] +Suggests: linux-doc-3.0.0, fdutils [sh4] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for sh7785lcr + The Linux kernel 3.0.0 and modules for use on Renesas SH7785 reference + board. + +Package: linux-headers-3.0.0-1-sh7785lcr +Architecture: sh4 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-sh7785lcr + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-sh7785lcr, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-sh7785lcr, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-sh7785lcr package. + +Package: linux-headers-3.0.0-1-all-sparc +Architecture: sparc +Depends: ${misc:Depends}, linux-headers-3.0.0-1-sparc64 (= ${binary:Version}), linux-headers-3.0.0-1-sparc64-smp (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + +Package: linux-image-3.0.0-1-sparc64 +Architecture: sparc sparc64 +Provides: linux-image, linux-modules-3.0.0-1-sparc64 +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [sparc sparc64] | linux-initramfs-tool [sparc sparc64] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, silo [sparc sparc64], fdutils [sparc sparc64] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for uniprocessor 64-bit UltraSPARC + The Linux kernel 3.0.0 and modules for use on uniprocessor 64-bit + UltraSPARC. + +Package: linux-headers-3.0.0-1-sparc64 +Architecture: sparc sparc64 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-sparc64 + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-sparc64, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-sparc64, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-sparc64 package. + +Package: linux-image-3.0.0-1-sparc64-smp +Architecture: sparc sparc64 +Provides: linux-image, linux-modules-3.0.0-1-sparc64-smp +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.99~) [sparc sparc64] | linux-initramfs-tool [sparc sparc64] +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-3.0.0, silo [sparc sparc64], fdutils [sparc sparc64] +Breaks: initramfs-tools (<< 0.99~) +Description: Linux 3.0.0 for multiprocessor 64-bit UltraSPARC + The Linux kernel 3.0.0 and modules for use on multiprocessor 64-bit + UltraSPARC. + +Package: linux-headers-3.0.0-1-sparc64-smp +Architecture: sparc sparc64 +Provides: linux-headers +Depends: linux-headers-3.0.0-1-common (= ${binary:Version}), linux-kbuild-3.0.0, ${misc:Depends}, gcc-4.5 +Description: Header files for Linux 3.0.0-1-sparc64-smp + This package provides the architecture-specific kernel header files for + Linux kernel 3.0.0-1-sparc64-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-3.0.0-1-sparc64-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-3.0.0-1-sparc64-smp package. + +Package: linux-headers-3.0.0-1-all-sparc64 +Architecture: sparc64 +Depends: ${misc:Depends}, linux-headers-3.0.0-1-sparc64 (= ${binary:Version}), linux-headers-3.0.0-1-sparc64-smp (= ${binary:Version}) +Description: All header files for Linux 3.0.0 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 3.0.0, generally used for building out-of-tree + kernel modules. + --- linux-2.6-3.0.0.orig/debian/compat +++ linux-2.6-3.0.0/debian/compat @@ -0,0 +1 @@ +7 --- linux-2.6-3.0.0.orig/debian/rules.gen +++ linux-2.6-3.0.0/debian/rules.gen @@ -0,0 +1,1006 @@ +.NOTPARALLEL: +binary-arch: binary-arch_alpha binary-arch_amd64 binary-arch_armel binary-arch_armhf binary-arch_hppa binary-arch_i386 binary-arch_ia64 binary-arch_m68k binary-arch_mips binary-arch_mipsel binary-arch_powerpc binary-arch_ppc64 binary-arch_s390 binary-arch_s390x binary-arch_sh4 binary-arch_sparc binary-arch_sparc64 +binary-arch_alpha: binary-arch_alpha_none binary-arch_alpha_real +binary-arch_alpha_none: binary-arch_alpha_none_alpha-generic binary-arch_alpha_none_alpha-legacy binary-arch_alpha_none_alpha-smp binary-arch_alpha_none_real +binary-arch_alpha_none_alpha-generic: binary-arch_alpha_none_alpha-generic_real +binary-arch_alpha_none_alpha-generic_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_alpha_none_alpha-legacy: binary-arch_alpha_none_alpha-legacy_real +binary-arch_alpha_none_alpha-legacy_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-legacy' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-legacy' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-legacy' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-legacy' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_alpha_none_alpha-smp: binary-arch_alpha_none_alpha-smp_real +binary-arch_alpha_none_alpha-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_alpha_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='alpha' FEATURESET='none' KERNEL_ARCH='alpha' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_alpha_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_amd64: binary-arch_amd64_none binary-arch_amd64_real binary-arch_amd64_rt +binary-arch_amd64_none: binary-arch_amd64_none_amd64 binary-arch_amd64_none_real +binary-arch_amd64_none_amd64: binary-arch_amd64_none_amd64_real +binary-arch_amd64_none_amd64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='amd64' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' + $(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='-pxen-linux-system-3.0.0-1-amd64' ABINAME='-1' ARCH='amd64' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_amd64_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='amd64' FEATURESET='none' KERNEL_ARCH='x86' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_amd64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_amd64_rt: binary-arch_amd64_rt_amd64 binary-arch_amd64_rt_real +binary-arch_amd64_rt_amd64: binary-arch_amd64_rt_amd64_real +binary-arch_amd64_rt_amd64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='amd64' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64 debian/config/featureset-rt/config' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' + $(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='-pxen-linux-system-3.0.0-1-rt-amd64' ABINAME='-1' ARCH='amd64' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64 debian/config/featureset-rt/config' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_amd64_rt_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='amd64' FEATURESET='rt' KERNEL_ARCH='x86' LOCALVERSION_HEADERS='-rt' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armel: binary-arch_armel_none binary-arch_armel_real +binary-arch_armel_none: binary-arch_armel_none_iop32x binary-arch_armel_none_ixp4xx binary-arch_armel_none_kirkwood binary-arch_armel_none_orion5x binary-arch_armel_none_real binary-arch_armel_none_versatile +binary-arch_armel_none_iop32x: binary-arch_armel_none_iop32x_real +binary-arch_armel_none_iop32x_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='iop32x' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.iop32x' KERNEL_ARCH='arm' LOCALVERSION='-iop32x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-iop32x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armel_none_ixp4xx: binary-arch_armel_none_ixp4xx_real +binary-arch_armel_none_ixp4xx_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='ixp4xx' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.ixp4xx' KERNEL_ARCH='arm' LOCALVERSION='-ixp4xx' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-ixp4xx' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armel_none_kirkwood: binary-arch_armel_none_kirkwood_real +binary-arch_armel_none_kirkwood_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='kirkwood' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.kirkwood' KERNEL_ARCH='arm' LOCALVERSION='-kirkwood' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-kirkwood' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armel_none_orion5x: binary-arch_armel_none_orion5x_real +binary-arch_armel_none_orion5x_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='orion5x' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.orion5x' KERNEL_ARCH='arm' LOCALVERSION='-orion5x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-orion5x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armel_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='armel' FEATURESET='none' KERNEL_ARCH='arm' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armel_none_versatile: binary-arch_armel_none_versatile_real +binary-arch_armel_none_versatile_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='versatile' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.versatile' KERNEL_ARCH='arm' LOCALVERSION='-versatile' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-versatile' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armel_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armhf: binary-arch_armhf_none binary-arch_armhf_real +binary-arch_armhf_none: binary-arch_armhf_none_mx5 binary-arch_armhf_none_omap binary-arch_armhf_none_real +binary-arch_armhf_none_mx5: binary-arch_armhf_none_mx5_real +binary-arch_armhf_none_mx5_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='armhf' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='mx5' KCONFIG='debian/config/config debian/config/armel/config debian/config/armhf/config debian/config/armhf/config.mx5' KERNEL_ARCH='arm' LOCALVERSION='-mx5' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mx5' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armhf_none_omap: binary-arch_armhf_none_omap_real +binary-arch_armhf_none_omap_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='armhf' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='omap' KCONFIG='debian/config/config debian/config/armel/config debian/config/armhf/config debian/config/armhf/config.omap' KERNEL_ARCH='arm' LOCALVERSION='-omap' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-omap' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armhf_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='armhf' FEATURESET='none' KERNEL_ARCH='arm' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_armhf_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_hppa: binary-arch_hppa_none binary-arch_hppa_real +binary-arch_hppa_none: binary-arch_hppa_none_parisc binary-arch_hppa_none_parisc-smp binary-arch_hppa_none_parisc64 binary-arch_hppa_none_parisc64-smp binary-arch_hppa_none_real +binary-arch_hppa_none_parisc: binary-arch_hppa_none_parisc_real +binary-arch_hppa_none_parisc-smp: binary-arch_hppa_none_parisc-smp_real +binary-arch_hppa_none_parisc-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='hppa' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc-smp' KERNEL_ARCH='parisc' LOCALVERSION='-parisc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_hppa_none_parisc64: binary-arch_hppa_none_parisc64_real +binary-arch_hppa_none_parisc64-smp: binary-arch_hppa_none_parisc64-smp_real +binary-arch_hppa_none_parisc64-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' MODULES='True' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_hppa_none_parisc64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc64' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' MODULES='True' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_hppa_none_parisc_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='hppa' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_hppa_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='hppa' FEATURESET='none' KERNEL_ARCH='parisc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_hppa_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_i386: binary-arch_i386_none binary-arch_i386_real +binary-arch_i386_none: binary-arch_i386_none_486 binary-arch_i386_none_686-pae binary-arch_i386_none_amd64 binary-arch_i386_none_real +binary-arch_i386_none_486: binary-arch_i386_none_486_real +binary-arch_i386_none_486_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='486' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-32 debian/config/i386/none/config.486' KERNEL_ARCH='x86' LOCALVERSION='-486' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-486' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_i386_none_686-pae: binary-arch_i386_none_686-pae_real +binary-arch_i386_none_686-pae_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-32 debian/config/i386/none/config.686-pae' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' + $(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='-pxen-linux-system-3.0.0-1-686-pae' ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-32 debian/config/i386/none/config.686-pae' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_i386_none_amd64: binary-arch_i386_none_amd64_real +binary-arch_i386_none_amd64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' + $(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='-pxen-linux-system-3.0.0-1-amd64' ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_i386_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='i386' FEATURESET='none' KERNEL_ARCH='x86' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_i386_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_ia64: binary-arch_ia64_none binary-arch_ia64_real +binary-arch_ia64_none: binary-arch_ia64_none_itanium binary-arch_ia64_none_mckinley binary-arch_ia64_none_real +binary-arch_ia64_none_itanium: binary-arch_ia64_none_itanium_real +binary-arch_ia64_none_itanium_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='ia64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_ia64_none_mckinley: binary-arch_ia64_none_mckinley_real +binary-arch_ia64_none_mckinley_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='ia64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_ia64_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='ia64' FEATURESET='none' KERNEL_ARCH='ia64' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_ia64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_m68k: binary-arch_m68k_none binary-arch_m68k_real +binary-arch_m68k_none: binary-arch_m68k_none_amiga binary-arch_m68k_none_atari binary-arch_m68k_none_bvme6000 binary-arch_m68k_none_mac binary-arch_m68k_none_mvme147 binary-arch_m68k_none_mvme16x binary-arch_m68k_none_real +binary-arch_m68k_none_amiga: binary-arch_m68k_none_amiga_real +binary-arch_m68k_none_amiga_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='amiga' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.amiga' KERNEL_ARCH='m68k' LOCALVERSION='-amiga' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amiga' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_m68k_none_atari: binary-arch_m68k_none_atari_real +binary-arch_m68k_none_atari_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='atari' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.atari' KERNEL_ARCH='m68k' LOCALVERSION='-atari' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-atari' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_m68k_none_bvme6000: binary-arch_m68k_none_bvme6000_real +binary-arch_m68k_none_bvme6000_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='bvme6000' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.bvme6000' KERNEL_ARCH='m68k' LOCALVERSION='-bvme6000' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-bvme6000' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_m68k_none_mac: binary-arch_m68k_none_mac_real +binary-arch_m68k_none_mac_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mac' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mac' KERNEL_ARCH='m68k' LOCALVERSION='-mac' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mac' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_m68k_none_mvme147: binary-arch_m68k_none_mvme147_real +binary-arch_m68k_none_mvme147_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mvme147' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mvme147' KERNEL_ARCH='m68k' LOCALVERSION='-mvme147' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mvme147' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_m68k_none_mvme16x: binary-arch_m68k_none_mvme16x_real +binary-arch_m68k_none_mvme16x_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mvme16x' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mvme16x' KERNEL_ARCH='m68k' LOCALVERSION='-mvme16x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mvme16x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_m68k_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='m68k' FEATURESET='none' KERNEL_ARCH='m68k' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_m68k_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips: binary-arch_mips_none binary-arch_mips_real +binary-arch_mips_none: binary-arch_mips_none_4kc-malta binary-arch_mips_none_5kc-malta binary-arch_mips_none_octeon binary-arch_mips_none_r4k-ip22 binary-arch_mips_none_r5k-ip32 binary-arch_mips_none_real binary-arch_mips_none_sb1-bcm91250a binary-arch_mips_none_sb1a-bcm91480b +binary-arch_mips_none_4kc-malta: binary-arch_mips_none_4kc-malta_real +binary-arch_mips_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='4kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.4kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips_none_5kc-malta: binary-arch_mips_none_5kc-malta_real +binary-arch_mips_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='5kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.5kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips_none_octeon: binary-arch_mips_none_octeon_real +binary-arch_mips_none_octeon_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='octeon' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.octeon' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips_none_r4k-ip22: binary-arch_mips_none_r4k-ip22_real +binary-arch_mips_none_r4k-ip22_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r4k-ip22' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.r4k-ip22' KERNEL_ARCH='mips' LOCALVERSION='-r4k-ip22' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r4k-ip22' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips_none_r5k-ip32: binary-arch_mips_none_r5k-ip32_real +binary-arch_mips_none_r5k-ip32_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r5k-ip32' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.r5k-ip32' KERNEL_ARCH='mips' LOCALVERSION='-r5k-ip32' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r5k-ip32' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='mips' FEATURESET='none' KERNEL_ARCH='mips' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips_none_sb1-bcm91250a: binary-arch_mips_none_sb1-bcm91250a_real +binary-arch_mips_none_sb1-bcm91250a_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1-bcm91250a' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.sb1-bcm91250a' KERNEL_ARCH='mips' LOCALVERSION='-sb1-bcm91250a' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1-bcm91250a' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips_none_sb1a-bcm91480b: binary-arch_mips_none_sb1a-bcm91480b_real +binary-arch_mips_none_sb1a-bcm91480b_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1a-bcm91480b' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.sb1a-bcm91480b' KERNEL_ARCH='mips' LOCALVERSION='-sb1a-bcm91480b' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1a-bcm91480b' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mips_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mipsel: binary-arch_mipsel_none binary-arch_mipsel_real +binary-arch_mipsel_none: binary-arch_mipsel_none_4kc-malta binary-arch_mipsel_none_5kc-malta binary-arch_mipsel_none_loongson-2f binary-arch_mipsel_none_r5k-cobalt binary-arch_mipsel_none_real binary-arch_mipsel_none_sb1-bcm91250a binary-arch_mipsel_none_sb1a-bcm91480b +binary-arch_mipsel_none_4kc-malta: binary-arch_mipsel_none_4kc-malta_real +binary-arch_mipsel_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='4kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.4kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mipsel_none_5kc-malta: binary-arch_mipsel_none_5kc-malta_real +binary-arch_mipsel_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='5kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.5kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mipsel_none_loongson-2f: binary-arch_mipsel_none_loongson-2f_real +binary-arch_mipsel_none_loongson-2f_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='loongson-2f' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mipsel/config.loongson-2f' KERNEL_ARCH='mips' LOCALVERSION='-loongson-2f' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-2f' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mipsel_none_r5k-cobalt: binary-arch_mipsel_none_r5k-cobalt_real +binary-arch_mipsel_none_r5k-cobalt_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r5k-cobalt' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mipsel/config.r5k-cobalt' KERNEL_ARCH='mips' LOCALVERSION='-r5k-cobalt' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r5k-cobalt' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mipsel_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='mipsel' FEATURESET='none' KERNEL_ARCH='mips' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mipsel_none_sb1-bcm91250a: binary-arch_mipsel_none_sb1-bcm91250a_real +binary-arch_mipsel_none_sb1-bcm91250a_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1-bcm91250a' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.sb1-bcm91250a' KERNEL_ARCH='mips' LOCALVERSION='-sb1-bcm91250a' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1-bcm91250a' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mipsel_none_sb1a-bcm91480b: binary-arch_mipsel_none_sb1a-bcm91480b_real +binary-arch_mipsel_none_sb1a-bcm91480b_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1a-bcm91480b' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.sb1a-bcm91480b' KERNEL_ARCH='mips' LOCALVERSION='-sb1a-bcm91480b' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1a-bcm91480b' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_mipsel_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_powerpc: binary-arch_powerpc_none binary-arch_powerpc_real +binary-arch_powerpc_none: binary-arch_powerpc_none_powerpc binary-arch_powerpc_none_powerpc-smp binary-arch_powerpc_none_powerpc64 binary-arch_powerpc_none_real +binary-arch_powerpc_none_powerpc: binary-arch_powerpc_none_powerpc_real +binary-arch_powerpc_none_powerpc-smp: binary-arch_powerpc_none_powerpc-smp_real +binary-arch_powerpc_none_powerpc-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc-smp' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_powerpc_none_powerpc64: binary-arch_powerpc_none_powerpc64_real +binary-arch_powerpc_none_powerpc64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc64' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc64' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_powerpc_none_powerpc_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_powerpc_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='powerpc' FEATURESET='none' KERNEL_ARCH='powerpc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_powerpc_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_ppc64: binary-arch_ppc64_none binary-arch_ppc64_real +binary-arch_ppc64_none: binary-arch_ppc64_none_powerpc64 binary-arch_ppc64_none_real +binary-arch_ppc64_none_powerpc64: binary-arch_ppc64_none_powerpc64_real +binary-arch_ppc64_none_powerpc64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='ppc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc64' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc64' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_ppc64_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='ppc64' FEATURESET='none' KERNEL_ARCH='powerpc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_ppc64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_s390: binary-arch_s390_none binary-arch_s390_real +binary-arch_s390_none: binary-arch_s390_none_real binary-arch_s390_none_s390x binary-arch_s390_none_s390x-tape +binary-arch_s390_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='s390' FEATURESET='none' KERNEL_ARCH='s390' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_s390_none_s390x: binary-arch_s390_none_s390x_real +binary-arch_s390_none_s390x-tape: binary-arch_s390_none_s390x-tape_real +binary-arch_s390_none_s390x-tape_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='s390' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x-tape' INITRAMFS='False' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x-tape' KERNEL_ARCH='s390' LOCALVERSION='-s390x-tape' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='3.0.0-2' TYPE='plain-s390-tape' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_s390_none_s390x_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='s390' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_s390_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_s390x: binary-arch_s390x_none binary-arch_s390x_real +binary-arch_s390x_none: binary-arch_s390x_none_real binary-arch_s390x_none_s390x binary-arch_s390x_none_s390x-tape +binary-arch_s390x_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='s390x' FEATURESET='none' KERNEL_ARCH='s390' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_s390x_none_s390x: binary-arch_s390x_none_s390x_real +binary-arch_s390x_none_s390x-tape: binary-arch_s390x_none_s390x-tape_real +binary-arch_s390x_none_s390x-tape_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='s390x' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x-tape' INITRAMFS='False' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x-tape' KERNEL_ARCH='s390' LOCALVERSION='-s390x-tape' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='3.0.0-2' TYPE='plain-s390-tape' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_s390x_none_s390x_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='s390x' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_s390x_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sh4: binary-arch_sh4_none binary-arch_sh4_real +binary-arch_sh4_none: binary-arch_sh4_none_real binary-arch_sh4_none_sh7751r binary-arch_sh4_none_sh7785lcr +binary-arch_sh4_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='sh4' FEATURESET='none' KERNEL_ARCH='sh' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sh4_none_sh7751r: binary-arch_sh4_none_sh7751r_real +binary-arch_sh4_none_sh7751r_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='sh4' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sh4_none_sh7785lcr: binary-arch_sh4_none_sh7785lcr_real +binary-arch_sh4_none_sh7785lcr_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='sh4' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sh4_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sparc: binary-arch_sparc_none binary-arch_sparc_real +binary-arch_sparc64: binary-arch_sparc64_none binary-arch_sparc64_real +binary-arch_sparc64_none: binary-arch_sparc64_none_real binary-arch_sparc64_none_sparc64 binary-arch_sparc64_none_sparc64-smp +binary-arch_sparc64_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='sparc64' FEATURESET='none' KERNEL_ARCH='sparc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sparc64_none_sparc64: binary-arch_sparc64_none_sparc64_real +binary-arch_sparc64_none_sparc64-smp: binary-arch_sparc64_none_sparc64-smp_real +binary-arch_sparc64_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='sparc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64-smp' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64-smp' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sparc64_none_sparc64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='sparc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sparc64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sparc_none: binary-arch_sparc_none_real binary-arch_sparc_none_sparc64 binary-arch_sparc_none_sparc64-smp +binary-arch_sparc_none_real:: + $(MAKE) -f debian/rules.real binary-arch-featureset ABINAME='-1' ARCH='sparc' FEATURESET='none' KERNEL_ARCH='sparc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sparc_none_sparc64: binary-arch_sparc_none_sparc64_real +binary-arch_sparc_none_sparc64-smp: binary-arch_sparc_none_sparc64-smp_real +binary-arch_sparc_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='sparc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64-smp' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64-smp' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sparc_none_sparc64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='-1' ARCH='sparc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-arch_sparc_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='-1' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-indep:: + $(MAKE) -f debian/rules.real binary-indep ABINAME='-1' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_alpha:: source_alpha_real +binary-libc-dev_alpha:: + $(MAKE) -f debian/rules.real install-libc-dev_alpha ABINAME='-1' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_amd64:: source_amd64_real +binary-libc-dev_amd64:: + $(MAKE) -f debian/rules.real install-libc-dev_amd64 ABINAME='-1' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_armel:: source_armel_real +binary-libc-dev_armel:: + $(MAKE) -f debian/rules.real install-libc-dev_armel ABINAME='-1' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_armhf:: source_armhf_real +binary-libc-dev_armhf:: + $(MAKE) -f debian/rules.real install-libc-dev_armhf ABINAME='-1' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_hppa:: source_hppa_real +binary-libc-dev_hppa:: + $(MAKE) -f debian/rules.real install-libc-dev_hppa ABINAME='-1' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_i386:: source_i386_real +binary-libc-dev_i386:: + $(MAKE) -f debian/rules.real install-libc-dev_i386 ABINAME='-1' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_ia64:: source_ia64_real +binary-libc-dev_ia64:: + $(MAKE) -f debian/rules.real install-libc-dev_ia64 ABINAME='-1' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_m68k:: source_m68k_real +binary-libc-dev_m68k:: + $(MAKE) -f debian/rules.real install-libc-dev_m68k ABINAME='-1' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_mips:: source_mips_real +binary-libc-dev_mips:: + $(MAKE) -f debian/rules.real install-libc-dev_mips ABINAME='-1' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_mipsel:: source_mipsel_real +binary-libc-dev_mipsel:: + $(MAKE) -f debian/rules.real install-libc-dev_mipsel ABINAME='-1' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_powerpc:: source_powerpc_real +binary-libc-dev_powerpc:: + $(MAKE) -f debian/rules.real install-libc-dev_powerpc ABINAME='-1' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_ppc64:: source_ppc64_real +binary-libc-dev_ppc64:: + $(MAKE) -f debian/rules.real install-libc-dev_ppc64 ABINAME='-1' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_s390:: source_s390_real +binary-libc-dev_s390:: + $(MAKE) -f debian/rules.real install-libc-dev_s390 ABINAME='-1' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_s390x:: source_s390x_real +binary-libc-dev_s390x:: + $(MAKE) -f debian/rules.real install-libc-dev_s390x ABINAME='-1' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_sh4:: source_sh4_real +binary-libc-dev_sh4:: + $(MAKE) -f debian/rules.real install-libc-dev_sh4 ABINAME='-1' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_sparc:: source_sparc_real +binary-libc-dev_sparc:: + $(MAKE) -f debian/rules.real install-libc-dev_sparc ABINAME='-1' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +binary-libc-dev_sparc64:: source_sparc64_real +binary-libc-dev_sparc64:: + $(MAKE) -f debian/rules.real install-libc-dev_sparc64 ABINAME='-1' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build: build_alpha build_amd64 build_armel build_armhf build_hppa build_i386 build_ia64 build_m68k build_mips build_mipsel build_powerpc build_ppc64 build_s390 build_s390x build_sh4 build_sparc build_sparc64 +build_alpha: build_alpha_none build_alpha_real +build_alpha_none: build_alpha_none_alpha-generic build_alpha_none_alpha-legacy build_alpha_none_alpha-smp build_alpha_none_real +build_alpha_none_alpha-generic: build_alpha_none_alpha-generic_real +build_alpha_none_alpha-generic_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_alpha_none_alpha-legacy: build_alpha_none_alpha-legacy_real +build_alpha_none_alpha-legacy_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-legacy' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-legacy' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-legacy' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-legacy' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_alpha_none_alpha-smp: build_alpha_none_alpha-smp_real +build_alpha_none_alpha-smp_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_alpha_none_real: +build_alpha_real: +build_amd64: build_amd64_none build_amd64_real build_amd64_rt +build_amd64_none: build_amd64_none_amd64 build_amd64_none_real +build_amd64_none_amd64: build_amd64_none_amd64_real +build_amd64_none_amd64_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='amd64' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_amd64_none_real: +build_amd64_real: +build_amd64_rt: build_amd64_rt_amd64 build_amd64_rt_real +build_amd64_rt_amd64: build_amd64_rt_amd64_real +build_amd64_rt_amd64_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='amd64' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64 debian/config/featureset-rt/config' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_amd64_rt_real: +build_armel: build_armel_none build_armel_real +build_armel_none: build_armel_none_iop32x build_armel_none_ixp4xx build_armel_none_kirkwood build_armel_none_orion5x build_armel_none_real build_armel_none_versatile +build_armel_none_iop32x: build_armel_none_iop32x_real +build_armel_none_iop32x_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='iop32x' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.iop32x' KERNEL_ARCH='arm' LOCALVERSION='-iop32x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-iop32x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_armel_none_ixp4xx: build_armel_none_ixp4xx_real +build_armel_none_ixp4xx_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='ixp4xx' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.ixp4xx' KERNEL_ARCH='arm' LOCALVERSION='-ixp4xx' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-ixp4xx' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_armel_none_kirkwood: build_armel_none_kirkwood_real +build_armel_none_kirkwood_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='kirkwood' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.kirkwood' KERNEL_ARCH='arm' LOCALVERSION='-kirkwood' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-kirkwood' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_armel_none_orion5x: build_armel_none_orion5x_real +build_armel_none_orion5x_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='orion5x' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.orion5x' KERNEL_ARCH='arm' LOCALVERSION='-orion5x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-orion5x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_armel_none_real: +build_armel_none_versatile: build_armel_none_versatile_real +build_armel_none_versatile_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='versatile' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.versatile' KERNEL_ARCH='arm' LOCALVERSION='-versatile' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-versatile' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_armel_real: +build_armhf: build_armhf_none build_armhf_real +build_armhf_none: build_armhf_none_mx5 build_armhf_none_omap build_armhf_none_real +build_armhf_none_mx5: build_armhf_none_mx5_real +build_armhf_none_mx5_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='armhf' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='mx5' KCONFIG='debian/config/config debian/config/armel/config debian/config/armhf/config debian/config/armhf/config.mx5' KERNEL_ARCH='arm' LOCALVERSION='-mx5' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mx5' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_armhf_none_omap: build_armhf_none_omap_real +build_armhf_none_omap_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='armhf' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='omap' KCONFIG='debian/config/config debian/config/armel/config debian/config/armhf/config debian/config/armhf/config.omap' KERNEL_ARCH='arm' LOCALVERSION='-omap' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-omap' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_armhf_none_real: +build_armhf_real: +build_hppa: build_hppa_none build_hppa_real +build_hppa_none: build_hppa_none_parisc build_hppa_none_parisc-smp build_hppa_none_parisc64 build_hppa_none_parisc64-smp build_hppa_none_real +build_hppa_none_parisc: build_hppa_none_parisc_real +build_hppa_none_parisc-smp: build_hppa_none_parisc-smp_real +build_hppa_none_parisc-smp_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='hppa' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc-smp' KERNEL_ARCH='parisc' LOCALVERSION='-parisc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_hppa_none_parisc64: build_hppa_none_parisc64_real +build_hppa_none_parisc64-smp: build_hppa_none_parisc64-smp_real +build_hppa_none_parisc64-smp_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' MODULES='True' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_hppa_none_parisc64_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc64' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' MODULES='True' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_hppa_none_parisc_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='hppa' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_hppa_none_real: +build_hppa_real: +build_i386: build_i386_none build_i386_real +build_i386_none: build_i386_none_486 build_i386_none_686-pae build_i386_none_amd64 build_i386_none_real +build_i386_none_486: build_i386_none_486_real +build_i386_none_486_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='486' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-32 debian/config/i386/none/config.486' KERNEL_ARCH='x86' LOCALVERSION='-486' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-486' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_i386_none_686-pae: build_i386_none_686-pae_real +build_i386_none_686-pae_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-32 debian/config/i386/none/config.686-pae' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_i386_none_amd64: build_i386_none_amd64_real +build_i386_none_amd64_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_i386_none_real: +build_i386_real: +build_ia64: build_ia64_none build_ia64_real +build_ia64_none: build_ia64_none_itanium build_ia64_none_mckinley build_ia64_none_real +build_ia64_none_itanium: build_ia64_none_itanium_real +build_ia64_none_itanium_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='ia64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_ia64_none_mckinley: build_ia64_none_mckinley_real +build_ia64_none_mckinley_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='ia64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_ia64_none_real: +build_ia64_real: +build_m68k: build_m68k_none build_m68k_real +build_m68k_none: build_m68k_none_amiga build_m68k_none_atari build_m68k_none_bvme6000 build_m68k_none_mac build_m68k_none_mvme147 build_m68k_none_mvme16x build_m68k_none_real +build_m68k_none_amiga: build_m68k_none_amiga_real +build_m68k_none_amiga_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='amiga' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.amiga' KERNEL_ARCH='m68k' LOCALVERSION='-amiga' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amiga' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_m68k_none_atari: build_m68k_none_atari_real +build_m68k_none_atari_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='atari' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.atari' KERNEL_ARCH='m68k' LOCALVERSION='-atari' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-atari' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_m68k_none_bvme6000: build_m68k_none_bvme6000_real +build_m68k_none_bvme6000_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='bvme6000' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.bvme6000' KERNEL_ARCH='m68k' LOCALVERSION='-bvme6000' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-bvme6000' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_m68k_none_mac: build_m68k_none_mac_real +build_m68k_none_mac_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mac' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mac' KERNEL_ARCH='m68k' LOCALVERSION='-mac' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mac' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_m68k_none_mvme147: build_m68k_none_mvme147_real +build_m68k_none_mvme147_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mvme147' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mvme147' KERNEL_ARCH='m68k' LOCALVERSION='-mvme147' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mvme147' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_m68k_none_mvme16x: build_m68k_none_mvme16x_real +build_m68k_none_mvme16x_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mvme16x' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mvme16x' KERNEL_ARCH='m68k' LOCALVERSION='-mvme16x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mvme16x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_m68k_none_real: +build_m68k_real: +build_mips: build_mips_none build_mips_real +build_mips_none: build_mips_none_4kc-malta build_mips_none_5kc-malta build_mips_none_octeon build_mips_none_r4k-ip22 build_mips_none_r5k-ip32 build_mips_none_real build_mips_none_sb1-bcm91250a build_mips_none_sb1a-bcm91480b +build_mips_none_4kc-malta: build_mips_none_4kc-malta_real +build_mips_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='4kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.4kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mips_none_5kc-malta: build_mips_none_5kc-malta_real +build_mips_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='5kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.5kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mips_none_octeon: build_mips_none_octeon_real +build_mips_none_octeon_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='octeon' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.octeon' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mips_none_r4k-ip22: build_mips_none_r4k-ip22_real +build_mips_none_r4k-ip22_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r4k-ip22' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.r4k-ip22' KERNEL_ARCH='mips' LOCALVERSION='-r4k-ip22' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r4k-ip22' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mips_none_r5k-ip32: build_mips_none_r5k-ip32_real +build_mips_none_r5k-ip32_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r5k-ip32' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.r5k-ip32' KERNEL_ARCH='mips' LOCALVERSION='-r5k-ip32' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r5k-ip32' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mips_none_real: +build_mips_none_sb1-bcm91250a: build_mips_none_sb1-bcm91250a_real +build_mips_none_sb1-bcm91250a_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1-bcm91250a' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.sb1-bcm91250a' KERNEL_ARCH='mips' LOCALVERSION='-sb1-bcm91250a' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1-bcm91250a' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mips_none_sb1a-bcm91480b: build_mips_none_sb1a-bcm91480b_real +build_mips_none_sb1a-bcm91480b_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1a-bcm91480b' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.sb1a-bcm91480b' KERNEL_ARCH='mips' LOCALVERSION='-sb1a-bcm91480b' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1a-bcm91480b' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mips_real: +build_mipsel: build_mipsel_none build_mipsel_real +build_mipsel_none: build_mipsel_none_4kc-malta build_mipsel_none_5kc-malta build_mipsel_none_loongson-2f build_mipsel_none_r5k-cobalt build_mipsel_none_real build_mipsel_none_sb1-bcm91250a build_mipsel_none_sb1a-bcm91480b +build_mipsel_none_4kc-malta: build_mipsel_none_4kc-malta_real +build_mipsel_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='4kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.4kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mipsel_none_5kc-malta: build_mipsel_none_5kc-malta_real +build_mipsel_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='5kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.5kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mipsel_none_loongson-2f: build_mipsel_none_loongson-2f_real +build_mipsel_none_loongson-2f_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='loongson-2f' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mipsel/config.loongson-2f' KERNEL_ARCH='mips' LOCALVERSION='-loongson-2f' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-2f' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mipsel_none_r5k-cobalt: build_mipsel_none_r5k-cobalt_real +build_mipsel_none_r5k-cobalt_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r5k-cobalt' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mipsel/config.r5k-cobalt' KERNEL_ARCH='mips' LOCALVERSION='-r5k-cobalt' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r5k-cobalt' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mipsel_none_real: +build_mipsel_none_sb1-bcm91250a: build_mipsel_none_sb1-bcm91250a_real +build_mipsel_none_sb1-bcm91250a_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1-bcm91250a' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.sb1-bcm91250a' KERNEL_ARCH='mips' LOCALVERSION='-sb1-bcm91250a' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1-bcm91250a' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mipsel_none_sb1a-bcm91480b: build_mipsel_none_sb1a-bcm91480b_real +build_mipsel_none_sb1a-bcm91480b_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1a-bcm91480b' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.sb1a-bcm91480b' KERNEL_ARCH='mips' LOCALVERSION='-sb1a-bcm91480b' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1a-bcm91480b' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_mipsel_real: +build_powerpc: build_powerpc_none build_powerpc_real +build_powerpc_none: build_powerpc_none_powerpc build_powerpc_none_powerpc-smp build_powerpc_none_powerpc64 build_powerpc_none_real +build_powerpc_none_powerpc: build_powerpc_none_powerpc_real +build_powerpc_none_powerpc-smp: build_powerpc_none_powerpc-smp_real +build_powerpc_none_powerpc-smp_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc-smp' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_powerpc_none_powerpc64: build_powerpc_none_powerpc64_real +build_powerpc_none_powerpc64_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc64' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc64' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_powerpc_none_powerpc_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_powerpc_none_real: +build_powerpc_real: +build_ppc64: build_ppc64_none build_ppc64_real +build_ppc64_none: build_ppc64_none_powerpc64 build_ppc64_none_real +build_ppc64_none_powerpc64: build_ppc64_none_powerpc64_real +build_ppc64_none_powerpc64_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='ppc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc64' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc64' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_ppc64_none_real: +build_ppc64_real: +build_s390: build_s390_none build_s390_real +build_s390_none: build_s390_none_real build_s390_none_s390x build_s390_none_s390x-tape +build_s390_none_real: +build_s390_none_s390x: build_s390_none_s390x_real +build_s390_none_s390x-tape: build_s390_none_s390x-tape_real +build_s390_none_s390x-tape_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='s390' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x-tape' INITRAMFS='False' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x-tape' KERNEL_ARCH='s390' LOCALVERSION='-s390x-tape' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='3.0.0-2' TYPE='plain-s390-tape' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_s390_none_s390x_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='s390' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_s390_real: +build_s390x: build_s390x_none build_s390x_real +build_s390x_none: build_s390x_none_real build_s390x_none_s390x build_s390x_none_s390x-tape +build_s390x_none_real: +build_s390x_none_s390x: build_s390x_none_s390x_real +build_s390x_none_s390x-tape: build_s390x_none_s390x-tape_real +build_s390x_none_s390x-tape_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='s390x' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x-tape' INITRAMFS='False' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x-tape' KERNEL_ARCH='s390' LOCALVERSION='-s390x-tape' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='3.0.0-2' TYPE='plain-s390-tape' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_s390x_none_s390x_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='s390x' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_s390x_real: +build_sh4: build_sh4_none build_sh4_real +build_sh4_none: build_sh4_none_real build_sh4_none_sh7751r build_sh4_none_sh7785lcr +build_sh4_none_real: +build_sh4_none_sh7751r: build_sh4_none_sh7751r_real +build_sh4_none_sh7751r_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='sh4' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_sh4_none_sh7785lcr: build_sh4_none_sh7785lcr_real +build_sh4_none_sh7785lcr_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='sh4' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_sh4_real: +build_sparc: build_sparc_none build_sparc_real +build_sparc64: build_sparc64_none build_sparc64_real +build_sparc64_none: build_sparc64_none_real build_sparc64_none_sparc64 build_sparc64_none_sparc64-smp +build_sparc64_none_real: +build_sparc64_none_sparc64: build_sparc64_none_sparc64_real +build_sparc64_none_sparc64-smp: build_sparc64_none_sparc64-smp_real +build_sparc64_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='sparc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64-smp' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64-smp' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_sparc64_none_sparc64_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='sparc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_sparc64_real: +build_sparc_none: build_sparc_none_real build_sparc_none_sparc64 build_sparc_none_sparc64-smp +build_sparc_none_real: +build_sparc_none_sparc64: build_sparc_none_sparc64_real +build_sparc_none_sparc64-smp: build_sparc_none_sparc64-smp_real +build_sparc_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='sparc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64-smp' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64-smp' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_sparc_none_sparc64_real:: + $(MAKE) -f debian/rules.real build ABINAME='-1' ARCH='sparc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +build_sparc_real: +setup: setup_alpha setup_amd64 setup_armel setup_armhf setup_hppa setup_i386 setup_ia64 setup_m68k setup_mips setup_mipsel setup_powerpc setup_ppc64 setup_s390 setup_s390x setup_sh4 setup_sparc setup_sparc64 +setup_alpha: setup_alpha_none setup_alpha_real +setup_alpha_none: setup_alpha_none_alpha-generic setup_alpha_none_alpha-legacy setup_alpha_none_alpha-smp setup_alpha_none_real +setup_alpha_none_alpha-generic: setup_alpha_none_alpha-generic_real +setup_alpha_none_alpha-generic_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_alpha_none_alpha-legacy: setup_alpha_none_alpha-legacy_real +setup_alpha_none_alpha-legacy_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-legacy' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-legacy' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-legacy' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-legacy' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_alpha_none_alpha-smp: setup_alpha_none_alpha-smp_real +setup_alpha_none_alpha-smp_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='alpha' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_alpha_none_real: +setup_alpha_real: +setup_amd64: setup_amd64_none setup_amd64_real setup_amd64_rt +setup_amd64_none: setup_amd64_none_amd64 setup_amd64_none_real +setup_amd64_none_amd64: setup_amd64_none_amd64_real +setup_amd64_none_amd64_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='amd64' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_amd64_none_real: +setup_amd64_real: +setup_amd64_rt: setup_amd64_rt_amd64 setup_amd64_rt_real +setup_amd64_rt_amd64: setup_amd64_rt_amd64_real +setup_amd64_rt_amd64_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='amd64' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64 debian/config/featureset-rt/config' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_amd64_rt_real: +setup_armel: setup_armel_none setup_armel_real +setup_armel_none: setup_armel_none_iop32x setup_armel_none_ixp4xx setup_armel_none_kirkwood setup_armel_none_orion5x setup_armel_none_real setup_armel_none_versatile +setup_armel_none_iop32x: setup_armel_none_iop32x_real +setup_armel_none_iop32x_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='iop32x' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.iop32x' KERNEL_ARCH='arm' LOCALVERSION='-iop32x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-iop32x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_armel_none_ixp4xx: setup_armel_none_ixp4xx_real +setup_armel_none_ixp4xx_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='ixp4xx' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.ixp4xx' KERNEL_ARCH='arm' LOCALVERSION='-ixp4xx' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-ixp4xx' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_armel_none_kirkwood: setup_armel_none_kirkwood_real +setup_armel_none_kirkwood_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='kirkwood' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.kirkwood' KERNEL_ARCH='arm' LOCALVERSION='-kirkwood' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-kirkwood' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_armel_none_orion5x: setup_armel_none_orion5x_real +setup_armel_none_orion5x_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='orion5x' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.orion5x' KERNEL_ARCH='arm' LOCALVERSION='-orion5x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-orion5x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_armel_none_real: +setup_armel_none_versatile: setup_armel_none_versatile_real +setup_armel_none_versatile_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='armel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='versatile' KCONFIG='debian/config/config debian/config/armel/config debian/config/armel/config.versatile' KERNEL_ARCH='arm' LOCALVERSION='-versatile' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-versatile' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_armel_real: +setup_armhf: setup_armhf_none setup_armhf_real +setup_armhf_none: setup_armhf_none_mx5 setup_armhf_none_omap setup_armhf_none_real +setup_armhf_none_mx5: setup_armhf_none_mx5_real +setup_armhf_none_mx5_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='armhf' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='mx5' KCONFIG='debian/config/config debian/config/armel/config debian/config/armhf/config debian/config/armhf/config.mx5' KERNEL_ARCH='arm' LOCALVERSION='-mx5' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mx5' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_armhf_none_omap: setup_armhf_none_omap_real +setup_armhf_none_omap_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='armhf' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='omap' KCONFIG='debian/config/config debian/config/armel/config debian/config/armhf/config debian/config/armhf/config.omap' KERNEL_ARCH='arm' LOCALVERSION='-omap' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-omap' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_armhf_none_real: +setup_armhf_real: +setup_hppa: setup_hppa_none setup_hppa_real +setup_hppa_none: setup_hppa_none_parisc setup_hppa_none_parisc-smp setup_hppa_none_parisc64 setup_hppa_none_parisc64-smp setup_hppa_none_real +setup_hppa_none_parisc: setup_hppa_none_parisc_real +setup_hppa_none_parisc-smp: setup_hppa_none_parisc-smp_real +setup_hppa_none_parisc-smp_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='hppa' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc-smp' KERNEL_ARCH='parisc' LOCALVERSION='-parisc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_hppa_none_parisc64: setup_hppa_none_parisc64_real +setup_hppa_none_parisc64-smp: setup_hppa_none_parisc64-smp_real +setup_hppa_none_parisc64-smp_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' MODULES='True' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_hppa_none_parisc64_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc64' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' MODULES='True' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_hppa_none_parisc_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='hppa' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_hppa_none_real: +setup_hppa_real: +setup_i386: setup_i386_none setup_i386_real +setup_i386_none: setup_i386_none_486 setup_i386_none_686-pae setup_i386_none_amd64 setup_i386_none_real +setup_i386_none_486: setup_i386_none_486_real +setup_i386_none_486_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='486' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-32 debian/config/i386/none/config.486' KERNEL_ARCH='x86' LOCALVERSION='-486' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-486' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_i386_none_686-pae: setup_i386_none_686-pae_real +setup_i386_none_686-pae_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-32 debian/config/i386/none/config.686-pae' KCONFIG_OPTIONS='-o DEBUG_INFO=y' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_i386_none_amd64: setup_i386_none_amd64_real +setup_i386_none_amd64_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='i386' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='amd64' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/kernelarch-x86/config-arch-64' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_i386_none_real: +setup_i386_real: +setup_ia64: setup_ia64_none setup_ia64_real +setup_ia64_none: setup_ia64_none_itanium setup_ia64_none_mckinley setup_ia64_none_real +setup_ia64_none_itanium: setup_ia64_none_itanium_real +setup_ia64_none_itanium_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='ia64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_ia64_none_mckinley: setup_ia64_none_mckinley_real +setup_ia64_none_mckinley_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='ia64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_ia64_none_real: +setup_ia64_real: +setup_m68k: setup_m68k_none setup_m68k_real +setup_m68k_none: setup_m68k_none_amiga setup_m68k_none_atari setup_m68k_none_bvme6000 setup_m68k_none_mac setup_m68k_none_mvme147 setup_m68k_none_mvme16x setup_m68k_none_real +setup_m68k_none_amiga: setup_m68k_none_amiga_real +setup_m68k_none_amiga_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='amiga' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.amiga' KERNEL_ARCH='m68k' LOCALVERSION='-amiga' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amiga' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_m68k_none_atari: setup_m68k_none_atari_real +setup_m68k_none_atari_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='atari' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.atari' KERNEL_ARCH='m68k' LOCALVERSION='-atari' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-atari' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_m68k_none_bvme6000: setup_m68k_none_bvme6000_real +setup_m68k_none_bvme6000_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='bvme6000' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.bvme6000' KERNEL_ARCH='m68k' LOCALVERSION='-bvme6000' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-bvme6000' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_m68k_none_mac: setup_m68k_none_mac_real +setup_m68k_none_mac_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mac' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mac' KERNEL_ARCH='m68k' LOCALVERSION='-mac' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mac' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_m68k_none_mvme147: setup_m68k_none_mvme147_real +setup_m68k_none_mvme147_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mvme147' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mvme147' KERNEL_ARCH='m68k' LOCALVERSION='-mvme147' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mvme147' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_m68k_none_mvme16x: setup_m68k_none_mvme16x_real +setup_m68k_none_mvme16x_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='m68k' COMPILER='gcc-4.4' FEATURESET='none' FLAVOUR='mvme16x' INITRAMFS='False' KCONFIG='debian/config/config debian/config/m68k/config debian/config/m68k/config.mvme16x' KERNEL_ARCH='m68k' LOCALVERSION='-mvme16x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mvme16x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_m68k_none_real: +setup_m68k_real: +setup_mips: setup_mips_none setup_mips_real +setup_mips_none: setup_mips_none_4kc-malta setup_mips_none_5kc-malta setup_mips_none_octeon setup_mips_none_r4k-ip22 setup_mips_none_r5k-ip32 setup_mips_none_real setup_mips_none_sb1-bcm91250a setup_mips_none_sb1a-bcm91480b +setup_mips_none_4kc-malta: setup_mips_none_4kc-malta_real +setup_mips_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='4kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.4kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mips_none_5kc-malta: setup_mips_none_5kc-malta_real +setup_mips_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='5kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.5kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mips_none_octeon: setup_mips_none_octeon_real +setup_mips_none_octeon_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='octeon' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.octeon' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mips_none_r4k-ip22: setup_mips_none_r4k-ip22_real +setup_mips_none_r4k-ip22_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r4k-ip22' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.r4k-ip22' KERNEL_ARCH='mips' LOCALVERSION='-r4k-ip22' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r4k-ip22' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mips_none_r5k-ip32: setup_mips_none_r5k-ip32_real +setup_mips_none_r5k-ip32_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r5k-ip32' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.r5k-ip32' KERNEL_ARCH='mips' LOCALVERSION='-r5k-ip32' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r5k-ip32' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mips_none_real: +setup_mips_none_sb1-bcm91250a: setup_mips_none_sb1-bcm91250a_real +setup_mips_none_sb1-bcm91250a_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1-bcm91250a' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.sb1-bcm91250a' KERNEL_ARCH='mips' LOCALVERSION='-sb1-bcm91250a' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1-bcm91250a' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mips_none_sb1a-bcm91480b: setup_mips_none_sb1a-bcm91480b_real +setup_mips_none_sb1a-bcm91480b_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mips' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1a-bcm91480b' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mips/config debian/config/mips/config.sb1a-bcm91480b' KERNEL_ARCH='mips' LOCALVERSION='-sb1a-bcm91480b' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1a-bcm91480b' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mips_real: +setup_mipsel: setup_mipsel_none setup_mipsel_real +setup_mipsel_none: setup_mipsel_none_4kc-malta setup_mipsel_none_5kc-malta setup_mipsel_none_loongson-2f setup_mipsel_none_r5k-cobalt setup_mipsel_none_real setup_mipsel_none_sb1-bcm91250a setup_mipsel_none_sb1a-bcm91480b +setup_mipsel_none_4kc-malta: setup_mipsel_none_4kc-malta_real +setup_mipsel_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='4kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.4kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mipsel_none_5kc-malta: setup_mipsel_none_5kc-malta_real +setup_mipsel_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='5kc-malta' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.5kc-malta' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mipsel_none_loongson-2f: setup_mipsel_none_loongson-2f_real +setup_mipsel_none_loongson-2f_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='loongson-2f' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mipsel/config.loongson-2f' KERNEL_ARCH='mips' LOCALVERSION='-loongson-2f' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-2f' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mipsel_none_r5k-cobalt: setup_mipsel_none_r5k-cobalt_real +setup_mipsel_none_r5k-cobalt_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='r5k-cobalt' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mipsel/config.r5k-cobalt' KERNEL_ARCH='mips' LOCALVERSION='-r5k-cobalt' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-r5k-cobalt' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mipsel_none_real: +setup_mipsel_none_sb1-bcm91250a: setup_mipsel_none_sb1-bcm91250a_real +setup_mipsel_none_sb1-bcm91250a_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1-bcm91250a' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.sb1-bcm91250a' KERNEL_ARCH='mips' LOCALVERSION='-sb1-bcm91250a' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1-bcm91250a' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mipsel_none_sb1a-bcm91480b: setup_mipsel_none_sb1a-bcm91480b_real +setup_mipsel_none_sb1a-bcm91480b_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='mipsel' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sb1a-bcm91480b' INITRAMFS='False' KCONFIG='debian/config/config debian/config/mipsel/config debian/config/mips/config.sb1a-bcm91480b' KERNEL_ARCH='mips' LOCALVERSION='-sb1a-bcm91480b' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sb1a-bcm91480b' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_mipsel_real: +setup_powerpc: setup_powerpc_none setup_powerpc_real +setup_powerpc_none: setup_powerpc_none_powerpc setup_powerpc_none_powerpc-smp setup_powerpc_none_powerpc64 setup_powerpc_none_real +setup_powerpc_none_powerpc: setup_powerpc_none_powerpc_real +setup_powerpc_none_powerpc-smp: setup_powerpc_none_powerpc-smp_real +setup_powerpc_none_powerpc-smp_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc-smp' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_powerpc_none_powerpc64: setup_powerpc_none_powerpc64_real +setup_powerpc_none_powerpc64_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc64' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc64' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_powerpc_none_powerpc_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='powerpc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_powerpc_none_real: +setup_powerpc_real: +setup_ppc64: setup_ppc64_none setup_ppc64_real +setup_ppc64_none: setup_ppc64_none_powerpc64 setup_ppc64_none_real +setup_ppc64_none_powerpc64: setup_ppc64_none_powerpc64_real +setup_ppc64_none_powerpc64_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='ppc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='powerpc64' KCONFIG='debian/config/config debian/config/powerpc/config debian/config/powerpc/config.powerpc64' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_ppc64_none_real: +setup_ppc64_real: +setup_s390: setup_s390_none setup_s390_real +setup_s390_none: setup_s390_none_real setup_s390_none_s390x setup_s390_none_s390x-tape +setup_s390_none_real: +setup_s390_none_s390x: setup_s390_none_s390x_real +setup_s390_none_s390x-tape: setup_s390_none_s390x-tape_real +setup_s390_none_s390x-tape_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='s390' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x-tape' INITRAMFS='False' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x-tape' KERNEL_ARCH='s390' LOCALVERSION='-s390x-tape' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='3.0.0-2' TYPE='plain-s390-tape' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_s390_none_s390x_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='s390' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_s390_real: +setup_s390x: setup_s390x_none setup_s390x_real +setup_s390x_none: setup_s390x_none_real setup_s390x_none_s390x setup_s390x_none_s390x-tape +setup_s390x_none_real: +setup_s390x_none_s390x: setup_s390x_none_s390x_real +setup_s390x_none_s390x-tape: setup_s390x_none_s390x-tape_real +setup_s390x_none_s390x-tape_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='s390x' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x-tape' INITRAMFS='False' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x-tape' KERNEL_ARCH='s390' LOCALVERSION='-s390x-tape' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='3.0.0-2' TYPE='plain-s390-tape' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_s390x_none_s390x_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='s390x' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='s390x' KCONFIG='debian/config/config debian/config/s390/config debian/config/s390/config.s390x' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_s390x_real: +setup_sh4: setup_sh4_none setup_sh4_real +setup_sh4_none: setup_sh4_none_real setup_sh4_none_sh7751r setup_sh4_none_sh7785lcr +setup_sh4_none_real: +setup_sh4_none_sh7751r: setup_sh4_none_sh7751r_real +setup_sh4_none_sh7751r_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='sh4' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_sh4_none_sh7785lcr: setup_sh4_none_sh7785lcr_real +setup_sh4_none_sh7785lcr_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='sh4' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_sh4_real: +setup_sparc: setup_sparc_none setup_sparc_real +setup_sparc64: setup_sparc64_none setup_sparc64_real +setup_sparc64_none: setup_sparc64_none_real setup_sparc64_none_sparc64 setup_sparc64_none_sparc64-smp +setup_sparc64_none_real: +setup_sparc64_none_sparc64: setup_sparc64_none_sparc64_real +setup_sparc64_none_sparc64-smp: setup_sparc64_none_sparc64-smp_real +setup_sparc64_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='sparc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64-smp' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64-smp' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_sparc64_none_sparc64_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='sparc64' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_sparc64_real: +setup_sparc_none: setup_sparc_none_real setup_sparc_none_sparc64 setup_sparc_none_sparc64-smp +setup_sparc_none_real: +setup_sparc_none_sparc64: setup_sparc_none_sparc64_real +setup_sparc_none_sparc64-smp: setup_sparc_none_sparc64-smp_real +setup_sparc_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='sparc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64-smp' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64-smp' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_sparc_none_sparc64_real:: + $(MAKE) -f debian/rules.real setup-flavour ABINAME='-1' ARCH='sparc' COMPILER='gcc-4.5' FEATURESET='none' FLAVOUR='sparc64' KCONFIG='debian/config/config debian/config/sparc/config debian/config/sparc/config.sparc64' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' MODULES='True' SOURCEVERSION='3.0.0-2' TYPE='plain' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +setup_sparc_real: +source: source_alpha source_amd64 source_armel source_armhf source_hppa source_i386 source_ia64 source_m68k source_mips source_mipsel source_powerpc source_ppc64 source_s390 source_s390x source_sh4 source_sparc source_sparc64 +source_alpha: source_alpha_none source_alpha_real +source_alpha_none: source_alpha_none_alpha-generic source_alpha_none_alpha-legacy source_alpha_none_alpha-smp source_alpha_none_real +source_alpha_none_alpha-generic: source_alpha_none_alpha-generic_real +source_alpha_none_alpha-generic_real: +source_alpha_none_alpha-legacy: source_alpha_none_alpha-legacy_real +source_alpha_none_alpha-legacy_real: +source_alpha_none_alpha-smp: source_alpha_none_alpha-smp_real +source_alpha_none_alpha-smp_real: +source_alpha_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='alpha' FEATURESET='none' KERNEL_ARCH='alpha' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_alpha_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_amd64: source_amd64_none source_amd64_real source_amd64_rt +source_amd64_none: source_amd64_none_amd64 source_amd64_none_real +source_amd64_none_amd64: source_amd64_none_amd64_real +source_amd64_none_amd64_real: +source_amd64_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='amd64' FEATURESET='none' KERNEL_ARCH='x86' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_amd64_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_amd64_rt: source_amd64_rt_amd64 source_amd64_rt_real +source_amd64_rt_amd64: source_amd64_rt_amd64_real +source_amd64_rt_amd64_real: +source_amd64_rt_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='amd64' FEATURESET='rt' KERNEL_ARCH='x86' LOCALVERSION_HEADERS='-rt' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_armel: source_armel_none source_armel_real +source_armel_none: source_armel_none_iop32x source_armel_none_ixp4xx source_armel_none_kirkwood source_armel_none_orion5x source_armel_none_real source_armel_none_versatile +source_armel_none_iop32x: source_armel_none_iop32x_real +source_armel_none_iop32x_real: +source_armel_none_ixp4xx: source_armel_none_ixp4xx_real +source_armel_none_ixp4xx_real: +source_armel_none_kirkwood: source_armel_none_kirkwood_real +source_armel_none_kirkwood_real: +source_armel_none_orion5x: source_armel_none_orion5x_real +source_armel_none_orion5x_real: +source_armel_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='armel' FEATURESET='none' KERNEL_ARCH='arm' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_armel_none_versatile: source_armel_none_versatile_real +source_armel_none_versatile_real: +source_armel_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_armhf: source_armhf_none source_armhf_real +source_armhf_none: source_armhf_none_mx5 source_armhf_none_omap source_armhf_none_real +source_armhf_none_mx5: source_armhf_none_mx5_real +source_armhf_none_mx5_real: +source_armhf_none_omap: source_armhf_none_omap_real +source_armhf_none_omap_real: +source_armhf_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='armhf' FEATURESET='none' KERNEL_ARCH='arm' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_armhf_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_hppa: source_hppa_none source_hppa_real +source_hppa_none: source_hppa_none_parisc source_hppa_none_parisc-smp source_hppa_none_parisc64 source_hppa_none_parisc64-smp source_hppa_none_real +source_hppa_none_parisc: source_hppa_none_parisc_real +source_hppa_none_parisc-smp: source_hppa_none_parisc-smp_real +source_hppa_none_parisc-smp_real: +source_hppa_none_parisc64: source_hppa_none_parisc64_real +source_hppa_none_parisc64-smp: source_hppa_none_parisc64-smp_real +source_hppa_none_parisc64-smp_real: +source_hppa_none_parisc64_real: +source_hppa_none_parisc_real: +source_hppa_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='hppa' FEATURESET='none' KERNEL_ARCH='parisc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_hppa_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_i386: source_i386_none source_i386_real +source_i386_none: source_i386_none_486 source_i386_none_686-pae source_i386_none_amd64 source_i386_none_real +source_i386_none_486: source_i386_none_486_real +source_i386_none_486_real: +source_i386_none_686-pae: source_i386_none_686-pae_real +source_i386_none_686-pae_real: +source_i386_none_amd64: source_i386_none_amd64_real +source_i386_none_amd64_real: +source_i386_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='i386' FEATURESET='none' KERNEL_ARCH='x86' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_i386_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_ia64: source_ia64_none source_ia64_real +source_ia64_none: source_ia64_none_itanium source_ia64_none_mckinley source_ia64_none_real +source_ia64_none_itanium: source_ia64_none_itanium_real +source_ia64_none_itanium_real: +source_ia64_none_mckinley: source_ia64_none_mckinley_real +source_ia64_none_mckinley_real: +source_ia64_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='ia64' FEATURESET='none' KERNEL_ARCH='ia64' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_ia64_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_m68k: source_m68k_none source_m68k_real +source_m68k_none: source_m68k_none_amiga source_m68k_none_atari source_m68k_none_bvme6000 source_m68k_none_mac source_m68k_none_mvme147 source_m68k_none_mvme16x source_m68k_none_real +source_m68k_none_amiga: source_m68k_none_amiga_real +source_m68k_none_amiga_real: +source_m68k_none_atari: source_m68k_none_atari_real +source_m68k_none_atari_real: +source_m68k_none_bvme6000: source_m68k_none_bvme6000_real +source_m68k_none_bvme6000_real: +source_m68k_none_mac: source_m68k_none_mac_real +source_m68k_none_mac_real: +source_m68k_none_mvme147: source_m68k_none_mvme147_real +source_m68k_none_mvme147_real: +source_m68k_none_mvme16x: source_m68k_none_mvme16x_real +source_m68k_none_mvme16x_real: +source_m68k_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='m68k' FEATURESET='none' KERNEL_ARCH='m68k' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_m68k_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_mips: source_mips_none source_mips_real +source_mips_none: source_mips_none_4kc-malta source_mips_none_5kc-malta source_mips_none_octeon source_mips_none_r4k-ip22 source_mips_none_r5k-ip32 source_mips_none_real source_mips_none_sb1-bcm91250a source_mips_none_sb1a-bcm91480b +source_mips_none_4kc-malta: source_mips_none_4kc-malta_real +source_mips_none_4kc-malta_real: +source_mips_none_5kc-malta: source_mips_none_5kc-malta_real +source_mips_none_5kc-malta_real: +source_mips_none_octeon: source_mips_none_octeon_real +source_mips_none_octeon_real: +source_mips_none_r4k-ip22: source_mips_none_r4k-ip22_real +source_mips_none_r4k-ip22_real: +source_mips_none_r5k-ip32: source_mips_none_r5k-ip32_real +source_mips_none_r5k-ip32_real: +source_mips_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='mips' FEATURESET='none' KERNEL_ARCH='mips' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_mips_none_sb1-bcm91250a: source_mips_none_sb1-bcm91250a_real +source_mips_none_sb1-bcm91250a_real: +source_mips_none_sb1a-bcm91480b: source_mips_none_sb1a-bcm91480b_real +source_mips_none_sb1a-bcm91480b_real: +source_mips_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_mipsel: source_mipsel_none source_mipsel_real +source_mipsel_none: source_mipsel_none_4kc-malta source_mipsel_none_5kc-malta source_mipsel_none_loongson-2f source_mipsel_none_r5k-cobalt source_mipsel_none_real source_mipsel_none_sb1-bcm91250a source_mipsel_none_sb1a-bcm91480b +source_mipsel_none_4kc-malta: source_mipsel_none_4kc-malta_real +source_mipsel_none_4kc-malta_real: +source_mipsel_none_5kc-malta: source_mipsel_none_5kc-malta_real +source_mipsel_none_5kc-malta_real: +source_mipsel_none_loongson-2f: source_mipsel_none_loongson-2f_real +source_mipsel_none_loongson-2f_real: +source_mipsel_none_r5k-cobalt: source_mipsel_none_r5k-cobalt_real +source_mipsel_none_r5k-cobalt_real: +source_mipsel_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='mipsel' FEATURESET='none' KERNEL_ARCH='mips' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_mipsel_none_sb1-bcm91250a: source_mipsel_none_sb1-bcm91250a_real +source_mipsel_none_sb1-bcm91250a_real: +source_mipsel_none_sb1a-bcm91480b: source_mipsel_none_sb1a-bcm91480b_real +source_mipsel_none_sb1a-bcm91480b_real: +source_mipsel_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_powerpc: source_powerpc_none source_powerpc_real +source_powerpc_none: source_powerpc_none_powerpc source_powerpc_none_powerpc-smp source_powerpc_none_powerpc64 source_powerpc_none_real +source_powerpc_none_powerpc: source_powerpc_none_powerpc_real +source_powerpc_none_powerpc-smp: source_powerpc_none_powerpc-smp_real +source_powerpc_none_powerpc-smp_real: +source_powerpc_none_powerpc64: source_powerpc_none_powerpc64_real +source_powerpc_none_powerpc64_real: +source_powerpc_none_powerpc_real: +source_powerpc_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='powerpc' FEATURESET='none' KERNEL_ARCH='powerpc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_powerpc_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_ppc64: source_ppc64_none source_ppc64_real +source_ppc64_none: source_ppc64_none_powerpc64 source_ppc64_none_real +source_ppc64_none_powerpc64: source_ppc64_none_powerpc64_real +source_ppc64_none_powerpc64_real: +source_ppc64_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='ppc64' FEATURESET='none' KERNEL_ARCH='powerpc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_ppc64_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_s390: source_s390_none source_s390_real +source_s390_none: source_s390_none_real source_s390_none_s390x source_s390_none_s390x-tape +source_s390_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='s390' FEATURESET='none' KERNEL_ARCH='s390' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_s390_none_s390x: source_s390_none_s390x_real +source_s390_none_s390x-tape: source_s390_none_s390x-tape_real +source_s390_none_s390x-tape_real: +source_s390_none_s390x_real: +source_s390_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_s390x: source_s390x_none source_s390x_real +source_s390x_none: source_s390x_none_real source_s390x_none_s390x source_s390x_none_s390x-tape +source_s390x_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='s390x' FEATURESET='none' KERNEL_ARCH='s390' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_s390x_none_s390x: source_s390x_none_s390x_real +source_s390x_none_s390x-tape: source_s390x_none_s390x-tape_real +source_s390x_none_s390x-tape_real: +source_s390x_none_s390x_real: +source_s390x_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_sh4: source_sh4_none source_sh4_real +source_sh4_none: source_sh4_none_real source_sh4_none_sh7751r source_sh4_none_sh7785lcr +source_sh4_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='sh4' FEATURESET='none' KERNEL_ARCH='sh' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_sh4_none_sh7751r: source_sh4_none_sh7751r_real +source_sh4_none_sh7751r_real: +source_sh4_none_sh7785lcr: source_sh4_none_sh7785lcr_real +source_sh4_none_sh7785lcr_real: +source_sh4_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_sparc: source_sparc_none source_sparc_real +source_sparc64: source_sparc64_none source_sparc64_real +source_sparc64_none: source_sparc64_none_real source_sparc64_none_sparc64 source_sparc64_none_sparc64-smp +source_sparc64_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='sparc64' FEATURESET='none' KERNEL_ARCH='sparc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_sparc64_none_sparc64: source_sparc64_none_sparc64_real +source_sparc64_none_sparc64-smp: source_sparc64_none_sparc64-smp_real +source_sparc64_none_sparc64-smp_real: +source_sparc64_none_sparc64_real: +source_sparc64_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_sparc_none: source_sparc_none_real source_sparc_none_sparc64 source_sparc_none_sparc64-smp +source_sparc_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='-1' ARCH='sparc' FEATURESET='none' KERNEL_ARCH='sparc' LOCALVERSION_HEADERS='' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' +source_sparc_none_sparc64: source_sparc_none_sparc64_real +source_sparc_none_sparc64-smp: source_sparc_none_sparc64-smp_real +source_sparc_none_sparc64-smp_real: +source_sparc_none_sparc64_real: +source_sparc_real:: + $(MAKE) -f debian/rules.real source-arch ABINAME='-1' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='3.0.0-2' UPSTREAMVERSION='3.0.0' VERSION='3.0.0' --- linux-2.6-3.0.0.orig/debian/config.defines.dump +++ linux-2.6-3.0.0/debian/config.defines.dump @@ -0,0 +1,614 @@ +[('abi',)] +abiname: '1' +ignore-changes: ['module:drivers/misc/cs5535-mfgpt', 'module:drivers/net/wireless/ath/ath9k/*', 'module:fs/nfs/nfs'] + +[('abi', None, 'rt')] +ignore-changes: ['*'] + +[('base',)] +arches: ['alpha', 'amd64', 'armel', 'armhf', 'hppa', 'i386', 'ia64', 'm68k', 'mips', 'mipsel', 'powerpc', 'ppc64', 's390', 's390x', 'sh4', 'sparc', 'sparc64'] +featuresets: ['none', 'rt'] +compiler: 'gcc-4.5' + +[('base', 'alpha')] +kernel-arch: 'alpha' +featuresets: ['none'] +compiler: 'gcc-4.4' + +[('base', 'alpha', 'none')] +implicit-flavour: True +flavours: ['alpha-generic', 'alpha-smp', 'alpha-legacy'] + +[('base', 'amd64')] +kernel-arch: 'x86' +featuresets: ['none', 'rt'] + +[('base', 'amd64', 'none')] +implicit-flavour: True +flavours: ['amd64'] + +[('base', 'amd64', 'rt')] +flavours: ['amd64'] + +[('base', 'armel')] +kernel-arch: 'arm' +featuresets: ['none'] + +[('base', 'armel', 'none')] +implicit-flavour: True +flavours: ['iop32x', 'ixp4xx', 'kirkwood', 'orion5x', 'versatile'] + +[('base', 'armhf')] +kernel-arch: 'arm' +featuresets: ['none'] + +[('base', 'armhf', 'none')] +implicit-flavour: True +flavours: ['mx5', 'omap'] + +[('base', 'hppa')] +kernel-arch: 'parisc' +featuresets: ['none'] +compiler: 'gcc-4.4' + +[('base', 'hppa', None, 'parisc64')] +override-host-type: 'hppa64-linux-gnu' +cflags: '-fno-cse-follow-jumps' + +[('base', 'hppa', None, 'parisc64-smp')] +override-host-type: 'hppa64-linux-gnu' +cflags: '-fno-cse-follow-jumps' + +[('base', 'hppa', 'none')] +implicit-flavour: True +flavours: ['parisc', 'parisc-smp', 'parisc64', 'parisc64-smp'] + +[('base', 'i386')] +kernel-arch: 'x86' +featuresets: ['none'] + +[('base', 'i386', 'none')] +implicit-flavour: True +flavours: ['486', '686-pae', 'amd64'] + +[('base', 'ia64')] +kernel-arch: 'ia64' +featuresets: ['none'] + +[('base', 'ia64', 'none')] +implicit-flavour: True +flavours: ['itanium', 'mckinley'] + +[('base', 'm68k')] +kernel-arch: 'm68k' +featuresets: ['none'] +compiler: 'gcc-4.4' + +[('base', 'm68k', 'none')] +implicit-flavour: True +flavours: ['amiga', 'atari', 'bvme6000', 'mac', 'mvme147', 'mvme16x'] + +[('base', 'mips')] +kernel-arch: 'mips' +featuresets: ['none'] + +[('base', 'mips', 'none')] +implicit-flavour: True +flavours: ['r4k-ip22', 'r5k-ip32', 'sb1-bcm91250a', 'sb1a-bcm91480b', '4kc-malta', '5kc-malta', 'octeon'] + +[('base', 'mipsel')] +kernel-arch: 'mips' +featuresets: ['none'] + +[('base', 'mipsel', 'none')] +implicit-flavour: True +flavours: ['r5k-cobalt', 'sb1-bcm91250a', 'sb1a-bcm91480b', '4kc-malta', '5kc-malta', 'loongson-2f'] + +[('base', 'powerpc')] +kernel-arch: 'powerpc' +featuresets: ['none'] + +[('base', 'powerpc', 'none')] +implicit-flavour: True +flavours: ['powerpc', 'powerpc-smp', 'powerpc64'] + +[('base', 'ppc64')] +kernel-arch: 'powerpc' +featuresets: ['none'] + +[('base', 'ppc64', 'none')] +implicit-flavour: True +flavours: ['powerpc64'] + +[('base', 's390')] +kernel-arch: 's390' +featuresets: ['none'] + +[('base', 's390', None, 's390-tape')] +modules: False + +[('base', 's390', None, 's390x-tape')] +modules: False + +[('base', 's390', 'none')] +implicit-flavour: True +flavours: ['s390x', 's390x-tape'] + +[('base', 's390x')] +kernel-arch: 's390' +featuresets: ['none'] + +[('base', 's390x', None, 's390x-tape')] +modules: False + +[('base', 's390x', 'none')] +implicit-flavour: True +flavours: ['s390x', 's390x-tape'] + +[('base', 'sh4')] +kernel-arch: 'sh' +featuresets: ['none'] + +[('base', 'sh4', 'none')] +implicit-flavour: True +flavours: ['sh7751r', 'sh7785lcr'] + +[('base', 'sparc')] +kernel-arch: 'sparc' +featuresets: ['none'] + +[('base', 'sparc', 'none')] +implicit-flavour: True +flavours: ['sparc64', 'sparc64-smp'] + +[('base', 'sparc64')] +kernel-arch: 'sparc' +featuresets: ['none'] + +[('base', 'sparc64', 'none')] +implicit-flavour: True +flavours: ['sparc64', 'sparc64-smp'] + +[('build', 'armel', None, 'iop32x')] +image-file: 'arch/arm/boot/zImage' + +[('build', 'armel', None, 'ixp4xx')] +image-file: 'arch/arm/boot/zImage' + +[('build', 'armel', None, 'kirkwood')] +image-file: 'arch/arm/boot/zImage' + +[('build', 'armel', None, 'orion5x')] +image-file: 'arch/arm/boot/zImage' + +[('build', 'armhf', None, 'mx5')] +image-file: 'arch/arm/boot/zImage' + +[('build', 'armhf', None, 'omap')] +image-file: 'arch/arm/boot/zImage' + +[('build', 'sh4', None, 'sh7751r')] +image-file: 'arch/sh/boot/zImage' + +[('build', 'sh4', None, 'sh7785lcr')] +image-file: 'arch/sh/boot/zImage' + +[('description',)] +part-long-up: 'This kernel is not suitable for SMP (multi-processor,\nmulti-core or hyper-threaded) systems.' +part-long-xen: 'This kernel also runs on a Xen hypervisor.\nIt supports both privileged (dom0) and unprivileged (domU) operation.' + +[('description', None, 'rt')] +part-long-rt: 'This kernel includes the PREEMPT_RT realtime patch set.' +parts: ['rt'] +part-short-rt: 'PREEMPT_RT' + +[('description', 'alpha', None, 'alpha-generic')] +hardware: 'Alpha' +hardware-long: 'DEC Alpha systems with extended kernel start address (Wildfire, Titan, Marvel)' + +[('description', 'alpha', None, 'alpha-legacy')] +hardware: 'Alpha Legacy' +hardware-long: 'DEC Alpha systems with legacy kernel start address' + +[('description', 'alpha', None, 'alpha-smp')] +hardware: 'Alpha SMP' +hardware-long: 'DEC Alpha SMP systems with extended kernel start address (Wildfire, Titan, Marvel)' + +[('description', 'amd64', None, 'amd64')] +hardware: '64-bit PCs' +parts: ['xen'] +hardware-long: 'PCs with AMD64 or Intel 64 processors' + +[('description', 'armel', None, 'iop32x')] +hardware: 'IOP32x' +hardware-long: 'IOP32x based systems (Thecus N2100, etc)' + +[('description', 'armel', None, 'ixp4xx')] +hardware: 'IXP4xx' +hardware-long: 'IXP4xx based systems (Linksys NSLU2, etc)' + +[('description', 'armel', None, 'kirkwood')] +hardware: 'Marvell Kirkwood' +hardware-long: 'Marvell Kirkwood based systems (SheevaPlug, QNAP TS-119/TS-219, etc)' + +[('description', 'armel', None, 'orion5x')] +hardware: 'Marvell Orion' +hardware-long: 'Marvell Orion 5181, 5182 and 5281 based systems (QNAP TS-109/TS-209, etc)' + +[('description', 'armel', None, 'versatile')] +hardware: 'Versatile' +hardware-long: 'Versatile systems (PB, AB, Qemu)' + +[('description', 'armhf', None, 'mx5')] +hardware: 'Freescale i.MX51' +hardware-long: 'Support for Freescale i.MX51 family of processors' + +[('description', 'armhf', None, 'omap')] +hardware: 'TI OMAP3+' +hardware-long: 'Texas Instruments OMAP3 or OMAP4 based systems' + +[('description', 'hppa', None, 'parisc')] +hardware: '32-bit PA-RISC' + +[('description', 'hppa', None, 'parisc-smp')] +hardware: 'multiprocessor 32-bit PA-RISC' + +[('description', 'hppa', None, 'parisc64')] +hardware: '64-bit PA-RISC' + +[('description', 'hppa', None, 'parisc64-smp')] +hardware: 'multiprocessor 64-bit PA-RISC' + +[('description', 'i386')] +part-long-pae: 'This kernel requires PAE (Physical Address Extension).\nThis feature is supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon,\nCore and Atom; AMD Geode NX, Athlon (K7), Duron, Opteron, Sempron,\nTurion or Phenom; Transmeta Efficeon; VIA C7; and some other processors.' + +[('description', 'i386', None, '486')] +hardware: 'older PCs' +parts: ['up'] +hardware-long: 'PCs with a single processor not supporting PAE' + +[('description', 'i386', None, '686-pae')] +hardware: 'modern PCs' +parts: ['pae', 'xen'] +hardware-long: 'PCs with one or more processors supporting PAE' + +[('description', 'i386', None, 'amd64')] +hardware: '64-bit PCs' +parts: ['xen'] +hardware-long: 'PCs with AMD64 or Intel 64 processors' + +[('description', 'ia64', None, 'itanium')] +hardware: 'Itanium' + +[('description', 'ia64', None, 'mckinley')] +hardware: 'Itanium II' + +[('description', 'm68k', None, 'amiga')] +hardware: 'Amiga' + +[('description', 'm68k', None, 'atari')] +hardware: 'Atari' + +[('description', 'm68k', None, 'bvme6000')] +hardware: 'BVM BVME4000 and BVME6000' + +[('description', 'm68k', None, 'hp')] +hardware: 'HP' + +[('description', 'm68k', None, 'mac')] +hardware: 'Macintosh' + +[('description', 'm68k', None, 'mvme147')] +hardware: 'Motorola MVME147' + +[('description', 'm68k', None, 'mvme16x')] +hardware: 'Motorola MVME162/6/7, MVME172/7' + +[('description', 'm68k', None, 'q40')] +hardware: 'Q40 and Q60' + +[('description', 'm68k', None, 'sun3')] +hardware: 'sun3' + +[('description', 'mips', None, '4kc-malta')] +hardware: 'MIPS Malta' +hardware-long: 'MIPS Malta boards' + +[('description', 'mips', None, '5kc-malta')] +hardware: 'MIPS Malta (64-bit)' +hardware-long: 'MIPS Malta boards (64-bit)' + +[('description', 'mips', None, 'octeon')] +hardware: 'Octeon' +hardware-long: 'Cavium Networks Octeon' + +[('description', 'mips', None, 'r4k-ip22')] +hardware: 'SGI IP22' +hardware-long: 'SGI IP22 systems (Indy, Indigo2)' + +[('description', 'mips', None, 'r5k-ip32')] +hardware: 'SGI IP32' +hardware-long: 'SGI IP32 systems (O2)' + +[('description', 'mips', None, 'sb1-bcm91250a')] +hardware: 'BCM91250A' +hardware-long: 'Broadcom BCM91250A systems (aka SWARM)' + +[('description', 'mips', None, 'sb1a-bcm91480b')] +hardware: 'BCM91480B' +hardware-long: 'Broadcom BCM91480B systems (aka BigSur)' + +[('description', 'mipsel', None, '4kc-malta')] +hardware: 'MIPS Malta' +hardware-long: 'MIPS Malta boards' + +[('description', 'mipsel', None, '5kc-malta')] +hardware: 'MIPS Malta (64-bit)' +hardware-long: 'MIPS Malta boards (64-bit)' + +[('description', 'mipsel', None, 'loongson-2f')] +hardware: 'Loongson 2F' +hardware-long: 'Lemote Loongson 2F systems' + +[('description', 'mipsel', None, 'r5k-cobalt')] +hardware: 'Cobalt' +hardware-long: 'Cobalt systems (Qube, RaQ, Qube2, RaQ2)' + +[('description', 'mipsel', None, 'sb1-bcm91250a')] +hardware: 'BCM91250A' +hardware-long: 'Broadcom BCM91250A systems (aka SWARM)' + +[('description', 'mipsel', None, 'sb1a-bcm91480b')] +hardware: 'BCM91480B' +hardware-long: 'Broadcom BCM91480B systems (aka BigSur)' + +[('description', 'powerpc', None, 'powerpc')] +hardware: 'uniprocessor 32-bit PowerPC' + +[('description', 'powerpc', None, 'powerpc-smp')] +hardware: 'multiprocessor 32-bit PowerPC' + +[('description', 'powerpc', None, 'powerpc64')] +hardware: '64-bit PowerPC' + +[('description', 'ppc64', None, 'powerpc64')] +hardware: '64-bit PowerPC' + +[('description', 's390')] +part-short-tape: 'IPL from tape' +part-long-tape: 'This kernel has support to IPL (boot) from a tape.' +part-long-reader: 'This kernel has support to IPL (boot) from a VM reader or DASD device.' + +[('description', 's390', None, 's390')] +hardware: 'IBM S/390' +parts: ['reader'] + +[('description', 's390', None, 's390-tape')] +hardware: 'IBM S/390' +parts: ['tape'] + +[('description', 's390', None, 's390x')] +hardware: 'IBM zSeries' +parts: ['reader'] + +[('description', 's390', None, 's390x-tape')] +hardware: 'IBM zSeries' +parts: ['tape'] + +[('description', 's390x')] +part-short-tape: 'IPL from tape' +part-long-tape: 'This kernel has support to IPL (boot) from a tape.' +part-long-reader: 'This kernel has support to IPL (boot) from a VM reader or DASD device.' + +[('description', 's390x', None, 's390x')] +hardware: 'IBM zSeries' +parts: ['reader'] + +[('description', 's390x', None, 's390x-tape')] +hardware: 'IBM zSeries' +parts: ['tape'] + +[('description', 'sh4', None, 'sh7751r')] +hardware: 'sh7751r' +hardware-long: 'Renesas SH7751R R2D plus board' + +[('description', 'sh4', None, 'sh7785lcr')] +hardware: 'sh7785lcr' +hardware-long: 'Renesas SH7785 reference board' + +[('description', 'sparc', None, 'sparc32')] +hardware: 'uniprocessor sparc32 (sun4m)' + +[('description', 'sparc', None, 'sparc64')] +hardware: 'uniprocessor 64-bit UltraSPARC' + +[('description', 'sparc', None, 'sparc64-smp')] +hardware: 'multiprocessor 64-bit UltraSPARC' + +[('description', 'sparc64', None, 'sparc64')] +hardware: 'uniprocessor 64-bit UltraSPARC' + +[('description', 'sparc64', None, 'sparc64-smp')] +hardware: 'multiprocessor 64-bit UltraSPARC' + +[('featureset-rt', None, '')] +enabled: 'false' + +[('image',)] +initramfs-generators: ['initramfs-tools', 'initramfs-fallback'] +type: 'plain' + +[('image', 'alpha')] +suggests: 'aboot, fdutils' + +[('image', 'amd64')] +configs: ['kernelarch-x86/config'] +bootloaders: ['grub-pc', 'extlinux', 'lilo'] + +[('image', 'amd64', None, 'amd64')] +configs: ['kernelarch-x86/config-arch-64'] + +[('image', 'armel')] +suggests: 'fdutils' + +[('image', 'armel', None, 'iop32x')] +check-size: '1441784' + +[('image', 'armel', None, 'ixp4xx')] +check-size: '1441760' + +[('image', 'armel', None, 'kirkwood')] +check-size: '2097080' +recommends: 'uboot-mkimage' + +[('image', 'armel', None, 'orion5x')] +check-size: '1572792' +recommends: 'uboot-mkimage' + +[('image', 'armhf')] +suggests: 'fdutils' +configs: ['armel/config', 'armhf/config'] + +[('image', 'armhf', None, 'omap')] +recommends: 'uboot-mkimage' + +[('image', 'hppa')] +suggests: 'palo' + +[('image', 'i386')] +configs: ['kernelarch-x86/config'] +bootloaders: ['grub-pc', 'extlinux', 'lilo'] + +[('image', 'i386', None, '486')] +configs: ['kernelarch-x86/config-arch-32'] + +[('image', 'i386', None, '686-pae')] +configs: ['kernelarch-x86/config-arch-32'] +recommends: 'libc6-i686' + +[('image', 'i386', None, 'amd64')] +configs: ['kernelarch-x86/config-arch-64'] +recommends: 'libc6-i686' + +[('image', 'ia64')] +suggests: 'fdutils' +bootloaders: ['elilo'] + +[('image', 'm68k')] +suggests: 'vmelilo, fdutils' +initramfs: False + +[('image', 'mips')] +initramfs: False + +[('image', 'mipsel')] +initramfs: False + +[('image', 'mipsel', None, '4kc-malta')] +configs: ['mips/config.4kc-malta'] + +[('image', 'mipsel', None, '5kc-malta')] +configs: ['mips/config.5kc-malta'] + +[('image', 'mipsel', None, 'sb1-bcm91250a')] +configs: ['mips/config.sb1-bcm91250a'] + +[('image', 'mipsel', None, 'sb1a-bcm91480b')] +configs: ['mips/config.sb1a-bcm91480b'] + +[('image', 'powerpc')] +suggests: 'mkvmlinuz' + +[('image', 'powerpc', None, 'powerpc-smp')] +configs: ['powerpc/config.powerpc', 'powerpc/config.powerpc-smp'] + +[('image', 'ppc64')] +suggests: 'mkvmlinuz' +configs: ['powerpc/config'] + +[('image', 'ppc64', None, 'powerpc64')] +configs: ['powerpc/config.powerpc64'] + +[('image', 's390')] +bootloaders: ['s390-tools'] + +[('image', 's390', None, 's390-tape')] +override-localversion: 's390' +type: 'plain-s390-tape' +initramfs: False + +[('image', 's390', None, 's390x-tape')] +override-localversion: 's390x' +type: 'plain-s390-tape' +initramfs: False + +[('image', 's390x')] +configs: ['s390/config'] +bootloaders: ['s390-tools'] + +[('image', 's390x', None, 's390x')] +configs: ['s390/config.s390x'] + +[('image', 's390x', None, 's390x-tape')] +configs: ['s390/config.s390x-tape'] +override-localversion: 's390x' +type: 'plain-s390-tape' +initramfs: False + +[('image', 'sh4')] +suggests: 'fdutils' + +[('image', 'sh4', None, 'sh7785lcr')] +check-size: '4194304' +recommends: 'uboot-mkimage' + +[('image', 'sparc')] +suggests: 'silo, fdutils' + +[('image', 'sparc', None, 'sparc32')] +image-postproc: 'sparc32-image-postproc' + +[('image', 'sparc64')] +suggests: 'silo, fdutils' +configs: ['sparc/config'] + +[('image', 'sparc64', None, 'sparc64')] +configs: ['sparc/config.sparc64'] + +[('image', 'sparc64', None, 'sparc64-smp')] +configs: ['sparc/config.sparc64-smp'] + +[('image-dbg', 'amd64')] +enabled: True + +[('image-dbg', 'i386', None, '686-pae')] +enabled: True + +[('relations',)] +elilo: 'elilo (>= 3.12-3.1~)' +initramfs-tools: 'initramfs-tools (>= 0.99~)' +initramfs-fallback: 'linux-initramfs-tool' +s390-tools: 's390-tools (>= 1.8.3-2~)' +lilo: 'lilo (>= 22.8-8.2~)' +gcc-4.5: 'gcc-4.5' +gcc-4.4: 'gcc-4.4' + +[('relations', 'hppa')] +gcc-4.4: 'gcc-4.4, binutils-hppa64, gcc-4.4-hppa64' + +[('version',)] +abiname: '-1' +source: '3.0.0-2' + +[('xen', 'amd64', None, 'amd64')] +flavours: ['amd64'] +dom0-support: True + +[('xen', 'i386', None, '686-pae')] +flavours: ['i386', 'amd64'] +dom0-support: True + +[('xen', 'i386', None, 'amd64')] +flavours: ['amd64'] +dom0-support: True + --- linux-2.6-3.0.0.orig/debian/control.md5sum +++ linux-2.6-3.0.0/debian/control.md5sum @@ -0,0 +1,38 @@ +744f4933c6582f24fc5df5febed8a3f2 debian/bin/gencontrol.py +d7becb23b36fc68229ff3c0304f80672 debian/changelog +fa44fa435120c604ba57814566c0c8ab debian/templates/control.headers.arch.in +12ceda954a0cff12aca80df095dd1948 debian/templates/control.headers.featureset.in +d4f03b465a130590af9cf37d0cce265b debian/templates/control.headers.in +32d8d93a0b09cd50988bbe557c8d8afc debian/templates/control.image-dbg.in +d7c1ee06543850b3bfa16dc018a94ce2 debian/templates/control.image.type-modulesextra.in +dfed02fb3f661df115b916e10a640e69 debian/templates/control.image.type-plain.in +cf85c9756573d2fc2b6d97dc5c6b63ad debian/templates/control.image.type-standalone.in +f63980199a242cd80dab3eddf8fd4ea7 debian/templates/control.libc-dev.in +0d5b9b8d39767cff53a1a73bba203d20 debian/templates/control.main.in +4a572346d0af8eb6ad210af805ad4f4c debian/templates/control.source.in +2529dae6d977c312290f9df5052c595f debian/templates/control.xen-linux-system.in +83a58c446d8027f8a660c39bdf4beab0 debian/templates/image-dbg.lintian-override.in +e78ef4f93e1efb9c4d89b6367d9c3a30 debian/templates/image.xen.postinst.in +1cb81b60bfe6b79fd6613ae102fe7217 debian/templates/image.xen.postrm.in +3ad85bca8ade992de90953d5c846c9e9 debian/templates/image.xen.prerm.in +4f29bdb791726248bea7e4127fa3cf9b debian/templates/patch.apply.in +3b72e2f41c3122b6d376847d30e63331 debian/config/defines +dae5071be3e3eb696062e8dcc6244223 debian/config/alpha/defines +1a6adb566c5c32065f322eec878978e6 debian/config/amd64/defines +56159d7b3f3807abc43f3c89f03587bd debian/config/armel/defines +6933ffdfbfbc4010573e13fce958b391 debian/config/armhf/defines +366b94d652a66b437eabcd165bcc9610 debian/config/featureset-rt/defines +7663688e373ff5b5857c15e69a7c1d3e debian/config/hppa/defines +9892e184b77bea705d4da102b554333d debian/config/i386/defines +c09a67bf367bfa1120f274496667bfa2 debian/config/ia64/defines +c1831448c49e579a14d9c1b1ed9097ef debian/config/m68k/defines +7a4302200c744edabddb13806f96348d debian/config/mips/defines +868ce415d9aa9ad94327bd1170243101 debian/config/mipsel/defines +bb45d54589d72a396db94210bac6d021 debian/config/powerpc/defines +6d54fe2812efefe29d145a98dd6d9894 debian/config/ppc64/defines +74952c29fa964a1ccee61bde39cae5ef debian/config/s390/defines +52419b89f9dd8bb9d6ddd7972830a6f2 debian/config/s390x/defines +4f654b0507024e4483289a749a17d8cb debian/config/sh4/defines +1c43428cadb9eab47cee4e1efec554ff debian/config/sparc64/defines +7d9b29bf50681e32b95fc148252f0520 debian/config/sparc/defines +7dc981827930ed6844a731ed954b9b9d debian/config/amd64/rt/defines --- linux-2.6-3.0.0.orig/debian/README.source +++ linux-2.6-3.0.0/debian/README.source @@ -0,0 +1,107 @@ +Updating the upstream source +============================ + +1) You can use either: + a) a git repository of the kernel source + b) a kernel tarball from kernel.org (e.g. linux-2.6.25.tar.bz2) + and, optionally, a patch (e.g. patch-2.6.26-rc3.bz2). + +2) Run ./debian/bin/genorig.py + or ./debian/bin/genorig.py [patch] + This will produce ../orig/linux-2.6_.orig.tar.gz + (e.g. linux-2.6_2.6.26~rc3.orig.tar.gz). + + (genorig.py requires the python and unifdef packages to be + installed) + +3) Unpack linux-2.6-.orig.tar.gz, cd into the new directory, + and do a 'svn export' to get the debian/ subdirectory. + Alternatively unpack using "make -f debian/rules orig". + + (the orig target of the Makefiles requires rsync) + +Applying patches to the Debian kernel tree +========================================== + +The Debian kernel packaging uses a custom patching system: + +Patches are stored below debian/patches, loosely sorted in bugfix/, +features/ and debian/. Patches are in the standard kernel patch +format. + +The order and the selection of patches which are applied during build +time are specified in the series/ subdirectory. For each revision +there may be up to one file named REVISION specifying the patches +applied for the standard revision and one file named REVISION-extra +for addon flavours. If, e.g. the patches are specified for 2.6.26-12, +the patch order file is called debian/patches/series/12 for the +standard kernel images and debian/patches/series/12-extra for the +addon flavours. + +Let's look at the actual series file for 2.6.26-12: + ++ bugfix/all/net-unix-gc-fix-soft-lockups-oom-issues.patch ++ bugfix/all/inotify-watch-removal-umount-races.patch ++ bugfix/all/atm-duplicate-listen-on-socket-corrupts-the-vcc-table.patch ++ bugfix/all/ata-pata_marvell-vs-ahci.patch ++ features/sparc/video-sunxvr500-intergraph.patch + +The patches to be applied are specified relative to debian/patches. +"+" indicates that the patch should be added, "-" can be used to +drop a patch in later patch series (e.g. if the patch turned out to +be faulty). The series files may be arbitrarily documented with +comments starting with "#". + +Let's now have a look at the series file for the addon kernel flavours +of 2.6.26-12: + ++ features/all/xen/dom0-fix-processor-throttling-when-pr-id-is-minus-1.patch featureset=xen + +The same syntax applies for specifing the patches, but an additional +argument is needed which specifies the featureset the patch applies to. + + +If you want to generate a source tree with all patches applied, run +make -f debian/rules source-all + +The resulting source can be found below debian/build. + +Kernel config files +=================== +Configuration files are constructed dynamically from a number of config +files, as listed in debian/config//defines. + +Control file +============ +The master control file debian/control must be generated before +the package is uploaded. debian/rules contains the debian/control +target, which generates the control file by invoking the +debian/bin/gencontrol.py script, which combines the templates from +the templates directory and architecture-specific defines file to +produce the debian/control file. Note that this target is intentionally +made to fail with a non-zero exit code to make sure that it is never +run during an automatic build. The following variables are substituted +into the templates: + +@version@ Upstream kernel version, for example 2.6.11. +@arch@ The Debian arch name, such as powerpc or i386. +@flavour@ The build flavour, such as 686 or k7-smp. +@class@ The CPU/architecture class; displayed in synopsis. It should + be fairly short, as the synopsis is supposed to be <80 chars. + It should be in the form "foo class", and will show up in the + description as "foo class machines". +@longclass@ The CPU/architecture class; displayed in the extended + description. The same rules apply as in @class@. If + this is unset, it will default to @class@. +@desc@ (Potentially) multi-line verbiage that's appended to + -image descriptions. +@abiname@ Current abiname, a single digit. + +Normally, the arch-specific contents should be controlled by +adjusting the corresponding defines file. + +TODO: +- Patches applied to the upstream source +- How to define a flavour +- More detail on generation of debian/control and configs + --- linux-2.6-3.0.0.orig/debian/rules.defs +++ linux-2.6-3.0.0/debian/rules.defs @@ -0,0 +1,4 @@ +BUILD_DIR = debian/build +STAMPS_DIR = debian/stamps +TEMPLATES_DIR = debian/templates + --- linux-2.6-3.0.0.orig/debian/rules +++ linux-2.6-3.0.0/debian/rules @@ -0,0 +1,97 @@ +#!/usr/bin/make -f + +SHELL := sh -e +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) +SOURCE := $(shell dpkg-parsechangelog | sed -ne 's,^Source: *\(.*\)$$,\1,p') +VERSION := $(shell dpkg-parsechangelog | sed -ne 's,^Version: *\(.*\)$$,\1,p') +VERSION_UPSTREAM := $(shell echo "$(VERSION)" | sed -e 's,-[^-]*$$,,') +VERSION_BINNMU := $(shell echo "$(VERSION)" | sed -ne 's,.*\+b\(.*\)$$,\1,p') + +include debian/rules.defs + +stamp = [ -d $(dir $@) ] || mkdir $(dir $@); touch $@ + +.NOTPARALLEL: + +source: debian/control $(STAMPS_DIR)/source-base +$(STAMPS_DIR)/source-base: + dh_testdir + $(MAKE) -f debian/rules.gen source_$(DEB_HOST_ARCH) + @$(stamp) + +source-all: debian/control + dh_testdir + $(MAKE) -f debian/rules.gen source + +setup: debian/control $(STAMPS_DIR)/setup-base +$(STAMPS_DIR)/setup-base: $(STAMPS_DIR)/source-base + dh_testdir + $(MAKE) -f debian/rules.gen setup_$(DEB_HOST_ARCH) + @$(stamp) + +build: debian/control $(STAMPS_DIR)/build-base +$(STAMPS_DIR)/build-base: $(STAMPS_DIR)/setup-base + dh_testdir + $(MAKE) -f debian/rules.gen build_$(DEB_HOST_ARCH) + @$(stamp) + +DIR_ORIG = ../orig/$(SOURCE)-$(VERSION_UPSTREAM) +TAR_ORIG_NAME = $(SOURCE)_$(VERSION_UPSTREAM).orig.tar.gz +TAR_ORIG = $(firstword $(wildcard ../$(TAR_ORIG_NAME)) $(wildcard ../orig/$(TAR_ORIG_NAME))) + +orig: $(DIR_ORIG) + rsync --delete --exclude debian --exclude .svk --exclude .svn --link-dest=$(DIR_ORIG)/ -a $(DIR_ORIG)/ . + +$(DIR_ORIG): +ifeq ($(TAR_ORIG),) + $(error Cannot find orig tarball $(TAR_ORIG_NAME)) +else + mkdir -p ../orig + tar -C ../orig -xzf $(TAR_ORIG) +endif + +maintainerclean: + rm -f debian/config.defines.dump debian/control debian/control.md5sum debian/rules.gen debian/bin/patch.* + rm -rf $(filter-out debian .svk .svn, $(wildcard * .[^.]*)) + +clean: debian/control + dh_testdir + rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/debian_linux/*.pyc debian/linux-headers-* debian/linux-image-* debian/linux-tools-* debian/linux-support-* debian/linux-source-* debian/linux-doc-* debian/linux-manual-* debian/linux-patch-debian-* + dh_clean + +binary-indep: $(STAMPS_DIR)/source-base + dh_testdir + $(MAKE) -f debian/rules.gen binary-indep + +binary-arch: $(STAMPS_DIR)/build-base + dh_testdir + $(MAKE) -f debian/rules.gen binary-arch_$(DEB_HOST_ARCH) + +binary: binary-indep binary-arch + +CONTROL_FILES = debian/changelog $(wildcard debian/templates/*.in) +CONTROL_FILES += debian/config/defines $(wildcard debian/config/*/defines) $(wildcard debian/config/*/*/defines) +debian/control debian/rules.gen: debian/bin/gencontrol.py $(CONTROL_FILES) +ifeq ($(wildcard debian/control.md5sum),) + $(MAKE) -f debian/rules debian/control-real +else ifeq ($(VERSION_BINNMU),) + md5sum --check debian/control.md5sum --status || \ + $(MAKE) -f debian/rules debian/control-real +else + grep -v debian/changelog debian/control.md5sum | md5sum --check - --status || \ + $(MAKE) -f debian/rules debian/control-real +endif + +debian/control-real: debian/bin/gencontrol.py $(CONTROL_FILES) + chmod +x $< + $< + md5sum $^ > debian/control.md5sum + @echo + @echo This target is made to fail intentionally, to make sure + @echo that it is NEVER run during the automated build. Please + @echo ignore the following error, the debian/control file has + @echo been generated SUCCESSFULLY. + @echo + exit 1 + +.PHONY: clean build setup binary-indep binary-arch binary --- linux-2.6-3.0.0.orig/debian/po/pt_BR.po +++ linux-2.6-3.0.0/debian/po/pt_BR.po @@ -0,0 +1,163 @@ +# linux-2.6 Brazilian Portuguese debconf template translation. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the linux-2.6 package. +# Flamarion Jorge , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2010-09-19 10:42+0200\n" +"PO-Revision-Date: 2010-10-02 12:29-0300\n" +"Last-Translator: Flamarion Jorge \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"pt_BR utf-8\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "" +"Se o carregador de inicialização precisa ser atualizado sempre que um novo " +"kernel é instalado, o pacote do carregador de inicialização deveria instalar " +"um script em /etc/kernel/postinst.d. Alternativamente, você pode especificar " +"o comando para atualizar o carregador de inicialização definindo a variável " +"'postinst_hook' em /etc/kernel-img.conf." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Cancelar instalação após erro do depmod?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} (${SIGNAL}" +"${CORE})." +msgstr "" +"O comando 'depmod' terminou com o código de saída ${exit_value} (${SIGNAL}" +"${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Uma vez que esta imagem usa o initrd, o arquivo ${modules_base}/=V/modules." +"dep não será removido, embora possa ser considerado inválido." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Você deve cancelar a instalação e consertar os erros no depmod, ou regerar a " +"imagem do initrd com um arquivo modules.dep em bom estado. Se você não " +"cancelar a instalação, existe um perigo de seu sistema falhar na " +"inicialização." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Cancelar remoção do kernel?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Você está executando um kernel (version ${running}) e tentando remover a " +"mesma versão." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Isto pode tornar o sistema não inicializável, pois removerá /boot/vmlinuz-" +"${running} e todos os módulos sob o diretório /lib/modules/${running}. Isto " +"só pode ser consertado com uma cópia da imagem do kernel e dos módulos " +"correspondentes." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"É altamente recomendável cancelar a remoção do kernel, a menos que você " +"esteja preparado para consertar o sistema após a remoção." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Arquivos de firmware necessários podem estar faltando" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Este sistema atualmente está executando o Linux ${runningversion} e você " +"está instalando o Linux ${version}. Na nova versão alguns dos drivers usados " +"neste sistema podem precisar de arquivos de firmware adicionais:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"A maioria dos arquivos de firmware não estão incluídos no sistema porque não " +"estão em conformidade com a Definição Debian de Software Livre (\"Debian " +"Free Software Guidelines\"). Você poderá precisar reconfigurar o gerenciador " +"de pacotes para incluir as seções contrib e non-free do repositório de " +"pacotes antes de poder instalar estes arquivos de firmware." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "A configuração do carregador de inicialização deve ser atualizada" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "" +"Os pacotes do kernel não atualizam mais o carregador de inicialização " +"padrão. Você deve remover 'do_bootloader = yes' do arquivo /etc/kernel-img." +"conf." --- linux-2.6-3.0.0.orig/debian/po/sk.po +++ linux-2.6-3.0.0/debian/po/sk.po @@ -0,0 +1,146 @@ +# Slovak translations for linux-2.6 package +# Slovenské preklady pre balík linux-2.6. +# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the linux-2.6 package. +# Slavko , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32-29\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2011-06-09 10:31+0200\n" +"PO-Revision-Date: 2011-07-10 09:19+0200\n" +"Last-Translator: Slavko \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Prerušiť inštaláciu po chybe depmod?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"Príkaz „depmod” skončil s návratovým kódom ${exit_value} (${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Keďže tento obraz používa initrd, nebude súbor ${modules_base}/=V/modules." +"dep zmazaný, hoci môže byť neplatný." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Mali by ste prerušiť inštaláciu a opraviť chyby v depmod, alebo znova " +"vytvoriť obraz initrd s funkčným súborom modules.dep. Ak teraz neprerušíte " +"inštaláciu, môže sa stať, že sa nepodarí zaviesť systém." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Prerušiť odstraňovanie jadra?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Pokúšate sa odstrániť rovnakú verziu jadra, akú práve používate (version " +"${running})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Toto môže spôsobiť, že sa systém nezavedie, pretože bude odstránený /boot/" +"vmlinuz-${running} a všetky moduly z adresára /lib/modules/${running}. " +"Opravené to môže byť len prekopírovaním obrazu jadra a príslušných modulov." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Dôrazne odporúčame prerušiť odstraňovanie jadra, ak nie ste pripravený na " +"opravu systému po jeho odstránení." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Vyžadované súbory s firmware môžu chýbať" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Tento systém práve používa Linux ${runningversion} a vy inštalujete Linux " +"${version}. V novej verzii môžu niektoré ovládače používané týmto systémom " +"vyžadovať dodatočné súbory s firmware:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"Väčšina súborov s firmware nie je v systéme zahrnutá, pretože nie sú v " +"súlade so Zásadami slobodného softvéru Debianu. Pred inštaláciou týchto " +"súborov s firmware, budete možno musieť nastaviť správcu balíkov tak, aby " +"zahŕňal sekcie archívu balíkov contrib a non-free." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Ramdisk configuration must be updated" +msgstr "Nastavenie ramdisku musí byť aktualizované" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages will no longer run a specific ramdisk creator. The ramdisk " +"creator package must install a script in /etc/kernel/postinst.d, and you " +"should remove the line beginning 'ramdisk =' from /etc/kernel-img.conf." +msgstr "" +"Balíky jadra už nebudú viac spúšťať vytváranie špecifického ramdisku. " +"Nástroj na vytváranie ramdisku musí nainštalovať skript do /etc/kernel/" +"postinst.d a vy musíte odstrániť riadok, ktorý začína „ramdisk =” z /etc/" +"kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/po/cs.po +++ linux-2.6-3.0.0/debian/po/cs.po @@ -0,0 +1,153 @@ +# Czech PO debconf template translation of linux-2.6. +# Copyright (C) 2010 Michal Simunek +# This file is distributed under the same license as the linux-2.6 package. +# Michal Simunek , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32-18\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2010-07-25 10:32+0200\n" +"PO-Revision-Date: 2010-07-26 18:02+0200\n" +"Last-Translator: Michal Simunek \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "" +"Pokud je nutné aktualizovat zavaděč kdykoli je nainstalováno nové jádro, " +"balíček zavaděče nainstalovuje skript v /etc/kernel/postinst.d. " +"Můžete také zadat příkaz k aktualizaci zavaděče nastavením proměnné " +"'postinst_hook' v /etc/kernel-img.conf." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Přerušit po chybě depmod instalaci?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "Příkaz 'depmod' skončil s chybou ${exit_value} (${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Vzhledem k tomu, že tento obraz používá initrd, nebude soubor " +"${modules_base}/=V/modules.dep smazán, přesto že může být neplatný." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Měli byste přerušit instalaci a opravit chyby v depmod, nebo vytvořit obraz " +"initrd s prověřeným souborem modules.dep. Nepřerušíte-li instalaci, " +"vystavujete se riziku, že se nepodaří systém zavést." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Přerušit odstraňování jádra?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Pokoušíte se odstranit verzi jádra (version ${running}), která nyní běží." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"To může způsobit, že se nepodaří zavést systém, a také bude odstraněno /boot/" +"vmlinuz-${running} a všechny moduly v adresáři /lib/modules/${running}. Toto " +"je možné opravit pouze nakopírováním obrazu jádra a příslušných modulů." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Je silně doporučeno přerušit odstraňování jádra, pokud nejste připraveni " +"opravovat systém po jeho odstranění." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Mohou chybět potřebné soubory s firmwarem" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Systém nyní běží na Linuxu ${runningversion} a vy instalujete Linux " +"${version}. V nové verzi mohou některé ovladače používané v tomto systému, " +"vyžadovat dodatečné soubory s firmwarem:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"Většina souborů s firmwarem není zahrnuta v systému, protože nejsou v " +"souladu se Zásadami svobodného softwaru Debianu. Než budete moci tyto " +"soubory s firmwarem nainstalovat, budete možná muset nastavit správce " +"balíčků, aby zahrnoval archiv sekce balíčků non-free." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "Nastavení zavaděče musí být aktualizováno" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "" +"Jaderný balíček již neaktualizuje výchozí zavaděč. Odstraňte " +"'do_bootloader = yes' z /etc/kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/po/it.po +++ linux-2.6-3.0.0/debian/po/it.po @@ -0,0 +1,158 @@ +# This file is distributed under the same license as the linux-2.6 package. +# Collaboratively translated during an online sprint, thanks to all contributors! +# Luca Bruno , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32-27\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-11-01 10:31+0100\n" +"PO-Revision-Date: 2010-11-09 18:24+0100\n" +"Last-Translator: Luca Bruno \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "" +"Se il boot loader necessita di essere aggiornato ad ogni installazione di " +"nuovi kernel, il pacchetto relativo dovrebbe installare uno script in /etc/" +"kernel/postinst.d. In alternativa, è possibile specificare il comando di " +"aggiornamento tramite la variabile «postinst_hook» in /etc/kernel-img.conf." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Interrompere l'installazione a seguito dell'errore di depmod?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"Il comando «depmod» è terminato con codice d'uscita ${exit_value} " +"(${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Poiché questa immagine usa un initrd, il file ${modules_base}/=V/modules.dep " +"non viene eliminato, anche se potrebbe risultare non più valido." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Si consiglia di interrompere l'installazione e correggere gli errori di " +"depmod, o ricreare l'immagine initrd con un file modules.dep valido. Se " +"l'installazione non viene interrotta, è possibile che il sistema possa " +"risultare non avviabile." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Interrompere la rimozione del kernel?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Nel sistema è in esecuzione un kernel (versione ${running}) e si sta " +"cercando di rimuovere la stessa versione." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Ciò potrebbe rendere il sistema non avviabile poiché rimuoverà /boot/vmlinuz-" +"${running} e tutti i moduli nella directory /lib/modules/${running}. A " +"questo si potrà rimediare solo con una copia dell'immagine del kernel e dei " +"moduli corrispondenti." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Si consiglia vivamente di interrompere la rimozione del kernel a meno che " +"non si sia preparati a riparare il sistema in seguito." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Alcuni firmware richiesti potrebbero non essere presenti" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Su questo sistema è attualmente in esecuzione Linux ${runningversion} e si " +"sta installando Linux ${version}. Nella nuova versione alcuni dei driver " +"utilizzati su questo sistema potrebbero richiedere firmware aggiuntivi:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"La maggior parte dei firmware non sono inclusi nel sistema in quanto non " +"conformi alle Linee Guida Debian per il Software Libero. Potrebbe essere " +"necessario riconfigurare il gestore dei pacchetti ed includere le sezioni " +"contrib e non-free per poterli installare." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "La configurazione del boot loader deve essere aggiornata" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "" +"I pacchetti del kernel non provvedono più all'aggiornamento del boot loader " +"predefinito. Si dovrebbe rimuovere la riga «do_bootloader = yes» da /etc/" +"kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/po/sv.po +++ linux-2.6-3.0.0/debian/po/sv.po @@ -0,0 +1,146 @@ +# Translation of linux-2.6 debconf template to Swedish +# Copyright (C) 2010 Martin Bagge +# This file is distributed under the same license as the linux-2.6 package. +# +# Martin Bagge , 2010 +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2011-05-21 10:31+0200\n" +"PO-Revision-Date: 2011-06-02 14:52+0100\n" +"Last-Translator: Martin Bagge / brother \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: Sweden\n" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Avbryt installation efter fel i depmod?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"Kommandot \"depmod\" avslutades med felkod ${exit_value} (${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Eftersom denna avbildning använder initrd kommer inte filen ${modules_base}/" +"=V/modules.dep att raderas, trots att den kan vara felaktig." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Du bör avbryta installationen och laga felen i depmod eller skapa en ny " +"initrd-avbildning med en fungerande modules.dep-fil. Om du inte avbryter " +"installationen kan systemet hamna i ett läge där det inte kan starta." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Avbryt radering av kärnan?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Den kärna du kör (version ${running}) och den du försöker ta bort är samma " +"version." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Detta kan göra systemet ostartbart eftersom det kommer att innebära att /" +"boot/vmlinuz-${running} och alla moduler i /lib/modules/${running} raderas. " +"Detta kan endast återställas med en kopia av kärnavbildningen och " +"motsvarande moduler." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Det rekomenderas starkt att du avbryter raderingen av kärnan om du inte är " +"beredd på att laga systemet efter raderingen." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Firmware-filer som krävs kan saknas" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Detta system kör Linux ${runningversion} och du installerar Linux " +"${version}. I den nya versionen kan vissa drivrutiner behöva ytterligare " +"firmware-filer:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"På grund av bestämmelserna i Debian Free Software Guidelines kan de flesta " +"firmware-filer inte inkluderas i systemet. Du kan behöva anpassa " +"pakethanteraren för att inkludera sektionerna \"contrib\" och \"non-free\" i " +"paketarkivet innan du kan installera dessa filer." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Ramdisk configuration must be updated" +msgstr "Inställningarna för ramdisk behöver uppdateras" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages will no longer run a specific ramdisk creator. The ramdisk " +"creator package must install a script in /etc/kernel/postinst.d, and you " +"should remove the line beginning 'ramdisk =' from /etc/kernel-img.conf." +msgstr "" +"Kärnpaketen kör inte längre en specifik ramdiskskapare. Ramdiskskaparen " +"måste installera ett skript i /etc/kernel/postinst.d och du ska ta bort " +"raden som börjar med \"ramdisk=\" från /etc/kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/po/vi.po +++ linux-2.6-3.0.0/debian/po/vi.po @@ -0,0 +1,151 @@ +# Vietnamese Debconf translation for Linux 2.6. +# Copyright © 2010 Free Software Foundation, Inc. +# Clytie Siddall , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32-26\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2010-10-21 10:37+0200\n" +"PO-Revision-Date: 2010-10-27 15:21+1030\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.8\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "Nếu bộ nạp khởi động cần phải được cập nhật khi nào cài đặt một hạt nhân mới thì gói bộ nạp khởi động nên cài đặt một văn lệnh vào « /etc/kernel/postinst.d ». Hoặc bạn có thể ghi rõ câu lệnh cập nhật bộ nạp khởi động bằng cách lập biến « postinst_hook » (hàm móc hậu xử lý) trong tập tin cấu hình « /etc/kernel-img.conf »." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Hủy bỏ tiến trình cài đặt sau khi gặp lỗi depmod ?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"Lệnh « depmod » đã thoát với mã thoát ${exit_value} (${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Vì ảnh này sử dụng initrd, tập tin ${modules_base}/=V/modules.dep sẽ không " +"bị xoá, dù là nó có thể không thích hợp." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Bạn nên hủy bỏ tiến trình cài đặt và sửa chữa các lỗi trong depmod, hoặc tạo " +"lại ảnh initrd với một tập tin « modules.dep » tốt. Không hủy bỏ tiến trình " +"cài đặt thì hệ thống có thể không khởi động được." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Hủy bỏ tiến trình gỡ bỏ hạt nhân ?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Bạn đang chạy một hạt nhân phiên bản ${running} trong khi thử gỡ bỏ phiên " +"bản đó." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Hành động này có thể làm cho hệ thống không có khả năng khởi động, vì nó gỡ " +"bỏ « /boot/vmlinuz-${running} » và tất cả các mô-đụn nằm dưới thư mục « /lib/" +"modules/${running} »." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Rất khuyên bạn hủy bỏ tiến trình gỡ bỏ hạt nhân, nếu bạn không sẵn sàng sửa " +"chữa hệ thống sau khi gỡ bỏ." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Có thể thiếu một số tập tin phần vững cần thiết" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Hệ thống này hiện thời chạy Linux ${runningversion} còn bạn đang cài đặt " +"Linux ${version}. Trong phiên bản mới, một số trình điều khiển dùng trên hệ " +"thống này có thể yêu cầu tập tin phần vững bổ sung:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"Phần lớn các tập tin phần vững không phải có sẵn trong hệ thống do không làm " +"cho hợp với Nguyên tắc Chỉ đạo Phần mềm Tự do Debian. Có thể là bạn cần phải " +"cấu hình lại trình quản lý gói phần mềm để bao gồm phần đóng góp (contrib) " +"và phần khác tự do (non-free) của kho lưu gói trước khi có khả năng cài đặt " +"tập tin phần vững như vậy." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "Cần phải cập nhật cấu hình của bộ nạp khởi động" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "Gói hạt nhân không còn cập nhật lại bộ nạp khởi động mặc định. Bạn nên gỡ bỏ chuỗi « do_bootloader = yes » (làm bộ nạp khởi động = có) khỏi tập tin cấu hình « /etc/kernel-img.conf »." --- linux-2.6-3.0.0.orig/debian/po/de.po +++ linux-2.6-3.0.0/debian/po/de.po @@ -0,0 +1,162 @@ +# Translation of linux-2.6 templates to german. +# Copyright (C) 2010 Holger Wansing. +# This file is distributed under the same license as the linux-2.6 package. +# Holger Wansing , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32-11\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2010-08-07 10:32+0200\n" +"PO-Revision-Date: 2010-08-08 14:22+0200\n" +"Last-Translator: Holger Wansing \n" +"Language-Team: Debian German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "" +"Falls der Bootloader aktualisiert werden muss, wenn ein neuer Kernel " +"installiert wird, sollte das Bootloader-Paket ein Skript in " +"/etc/kernel/postinst.d installieren. Alternativ können Sie den Befehl für " +"die Aktualisierung des Bootloaders über das Setzen der Variable " +"»postinst_hook« in /etc/kernel-img.conf festlegen." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Installation nach depmod-Fehler abbrechen?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"Der »depmod«-Befehl wurde beendet: Rückgabewert ${exit_value} " +"(${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Da dieses Image eine initrd verwendet, wird die Datei ${modules_base}/=V/" +"modules.dep nicht gelöscht, obwohl sie ungültig sein könnte." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Sie sollten die Installation abbrechen und die Fehler bezüglich depmod " +"beheben, oder erstellen Sie das initrd-Image neu mit einer bekanntermaßen " +"korrekten modules.dep-Datei. Falls Sie die Installation nicht abbrechen, " +"besteht die Gefahr, dass das System nicht mehr neu starten kann." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Entfernen des Kernels abbrechen?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Es läuft derzeit ein Kernel Version ${running} und Sie versuchen, die " +"gleiche Version zu entfernen." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Das kann dazu führen, dass das System nicht mehr startfähig ist, da dadurch /" +"boot/vmlinuz-${running} und alle Module unterhalb des Verzeichnisses /lib/" +"modules/${running} entfernt werden. Dies kann nur mit einer Kopie des Kernel-" +"Images und der dazugehörigen Module behoben werden." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Es wird dringend empfohlen, das Entfernen des Kernels abzubrechen, " +"ausgenommen Sie sind darauf vorbereitet, das System nach der Entfernung " +"wieder instandzusetzen." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Benötigte Firmware-Dateien möglicherweise nicht vorhanden" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Auf diesem System läuft derzeit Linux ${runningversion} und Sie installieren " +"gerade Linux ${version}. In der neuen Version könnten einige Treiber, die " +"auf diesem System verwendet werden, zusätzliche Firmware-Dateien benötigen:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"Die meisten Firmware-Dateien sind nicht im System enthalten, da sie nicht " +"mit den Debian-Richtlinien für Freie Software (DFSG) konform sind. Sie " +"müssen unter Umständen den Paketmanager neu konfigurieren, so dass die " +"contrib- und non-free-Sektionen des Paketarchivs ebenfalls enthalten sind, " +"bevor Sie diese Firmware-Dateien installieren können." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "Aktualisierung der Bootloader-Konfiguration erforderlich" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "" +"Kernel-Pakete aktualisieren nicht mehr länger den Standard-Bootloader. " +"Sie sollten den Eintrag »do_bootloader = yes« aus /etc/kernel-img.conf " +"entfernen." --- linux-2.6-3.0.0.orig/debian/po/fr.po +++ linux-2.6-3.0.0/debian/po/fr.po @@ -0,0 +1,150 @@ +# Translation of linux-2.6 debconf templates to French +# Copyright (C) 2010, 2011 Debian French l10n team +# This file is distributed under the same license as the linux-2.6 package. +# +# David Prévot , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.39-1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-05-21 10:31+0200\n" +"PO-Revision-Date: 2011-05-22 08:48-0400\n" +"Last-Translator: David Prévot \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Abandonner l'installation après l'erreur de depmod ?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"La commande depmod s'est terminée avec le code de retour ${exit_value} " +"(${SIGNAL} ${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Puisque cette image du noyau utilise initrd, le fichier ${modules_base}/=V/" +"modules.dep ne sera pas effacé, mais il peut ne pas être valable." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Vous devriez abandonner l'installation et corriger les erreurs de dépendance " +"entre les modules du noyau (depmod), ou créer une nouvelle image initrd avec " +"un fichier modules.dep valable. Si vous n'annulez pas l'installation, le " +"système risque de ne pas redémarrer correctement." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Abandonner la suppression du noyau ?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Le noyau actuellement utilisé (version ${running}) est en train d'être " +"supprimé." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Le système risque de ne plus pouvoir démarrer car /boot/vmlinuz-${running} " +"sera enlevé ainsi que tous les modules du répertoire /lib/modules/" +"${running}. Cela peut seulement être réparé avec une copie de l'image du " +"noyau et des modules correspondants." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Il est fortement recommandé d'interrompre la suppression du noyau à moins " +"d'être ensuite prêt à réparer le système." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Microprogrammes (« firmwares ») probablement manquants" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Ce système utilise actuellement Linux ${runningversion}, et Linux ${version} " +"va être installé. Dans la nouvelle version, certains pilotes utilisés par ce " +"système peuvent avoir besoin des microprogrammes additionnels :" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"La plupart des microprogrammes ne sont pas intégrés car ils ne sont pas " +"conformes aux principes du logiciel libre selon Debian. Il est probablement " +"nécessaire de modifier la configuration du gestionnaire de paquets et " +"d'ajouter les sections « contrib » (contributions) et « non-free » (non " +"libre) de l'archive avant de pouvoir installer ces fichiers." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Ramdisk configuration must be updated" +msgstr "Mise à jour indispensable de la configuration du disque virtuel initial" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages will no longer run a specific ramdisk creator. The ramdisk " +"creator package must install a script in /etc/kernel/postinst.d, and you " +"should remove the line beginning 'ramdisk =' from /etc/kernel-img.conf." +msgstr "" +"Les paquets du noyau ne s'occupent plus de la création du disque virtuel " +"(RAM disque). Le programme en charge de la création du disque virtuel " +"doivent installer un script dans /etc/kernel/postinst.d, et vous devriez " +"supprimer la ligne commençant par « ramdisk = » de /etc/kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/po/templates.pot +++ linux-2.6-3.0.0/debian/po/templates.pot @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2011-07-04 04:24+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Ramdisk configuration must be updated" +msgstr "" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages will no longer run a specific ramdisk creator. The ramdisk " +"creator package must install a script in /etc/kernel/postinst.d, and you " +"should remove the line beginning 'ramdisk =' from /etc/kernel-img.conf." +msgstr "" --- linux-2.6-3.0.0.orig/debian/po/ca.po +++ linux-2.6-3.0.0/debian/po/ca.po @@ -0,0 +1,129 @@ +# Catalan translation of linux-2.6 debconf templates. +# Copyright © 2010 Software in the Public Interest, Inc. +# This file is distributed under the same license as linux-2.6's packaging. +# Jordi Mallach , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32-24\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2010-07-16 15:55+0100\n" +"PO-Revision-Date: 2010-10-25 00:24+0200\n" +"Last-Translator: Jordi Mallach \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "Si s'ha d'actualitzar el carregador cada vegada que s'instaŀla un nou nucli, el paquet del carregador hauria d'instaŀlar un script en /etc/kernel/postinst.d. Alternativament, podeu especificar l'ordre per a actualitzar el carregador establint la variable «postinst_hook» en /etc/kernel-img.conf." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Voleu avortar la instaŀlació degut a un error de depmod?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "L'ordre «depmod» ha sortit amb el codi d'error ${exit_value} (${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "Com aquesta imatge empra un initrd, no es suprimirà el fitxer ${modules_base}/=V/modules.dep, tot i que potser és invàlid." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "Hauríeu d'avortar la instaŀlació i corregir els errors de depmod, o regenerar la imatge initrd amb un fitxer modules.dep que siga correcte amb certesa. Si no avorteu la instaŀlació, hi ha el perill que l'arrencada del sistema falle." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Voleu avortar la supressió del nucli?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "Esteu executant un nucli (versió ${running}) i esteu intentant suprimir la mateixa versió." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "Això pot fer que el sistema no arrenque perquè suprimirà /boot/vmlinuz-${running} i tots els mòduls sota el directori /lib/modules/${running}. Això només es pot corregir amb una còpia de la imatge del nucli i els mòduls corresponents." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "És molt recomanable que avorteu la supressió del nucli si no esteu preparat per a reparar el sistema després de la supressió." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "És possible que manquen fitxers de microprogramari requerits" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "Actualment, el sistema està executant el Linux ${runningversion} i esteu instaŀlant el Linux ${version}. A la nova versió, és possible que alguns dels dispositius emprats en el sistema requereixen fitxers de microprogramari addicionals:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "La major part dels fitxers de microprogramari no estan inclosos al sistema perquè no compleixen els principis del programari lliure de Debian. És possible que necessiteu reconfigurar el gestor de paquets per a incloure les seccions «contrib» i «non-free» de l'arxiu de paquets abans de poder instaŀlar aquests fitxers de microprogramari." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "S'ha d'actualitzar la configuració del carregador" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "Els paquets del nucli ja no actualitzen el carregador per defecte. Hauríeu de suprimir la línia «do_bootloader = yes» del fitxer /etc/kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/po/POTFILES.in +++ linux-2.6-3.0.0/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] templates/temp.image.plain/templates --- linux-2.6-3.0.0.orig/debian/po/pt.po +++ linux-2.6-3.0.0/debian/po/pt.po @@ -0,0 +1,168 @@ +# Translation of linux-2.6 debconf messages to Portuguese +# Copyright (C) 2010 the linux-2.6's copyright holder +# This file is distributed under the same license as the linux-2.6 package. +# +# Américo Monteiro , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.39.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-05-21 10:31+0200\n" +"PO-Revision-Date: 2011-05-22 23:53+0100\n" +"Last-Translator: Américo Monteiro \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Abortar a instalação após erro do depmod?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} (${SIGNAL}" +"${CORE})." +msgstr "" +"O comando 'depmod' terminou com o código de erro ${exit_value} (${SIGNAL}" +"${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Como esta imagem usa initrd, o ficheiro ${modules_base}/=V/modules.dep não " +"será apagado, apesar de poder ser inválido." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Você deve abortar a instalação e corrigir os erros do depmod, ou gerar " +"novamente a imagem initrd com um ficheiro modules.dep conhecido como bom. Se " +"não abortar a instalação, existe o perigo do sistema falhar no arranque." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Abortar a remoção do kernel?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Você está a correr um kernel (versão ${running}) e a tentar remover essa " +"mesma versão." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Isto pode fazer com que o sistema não arranque porque irá remover /boot/" +"vmlinuz-${running} e todos os módulos no directório /lib/modules/${running}. " +"Isto só pode ser corrigido com uma cópia da imagem do kernel e dos " +"correspondentes módulos." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"É altamente recomendado abortar a remoção do kernel a menos que esteja " +"preparado para corrigir o sistema após a remoção." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Podem estar em falta ficheiros de firmware necessários" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Este sistema está actualmente a correr Linux ${runningversion} e você está a " +"instalar Linux ${version}. Na nova versão algumas das drivers usadas neste " +"sistema podem necessitar dos ficheiros de firmware adicionais:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"A maioria dos ficheiros de firmware não estão incluídos no sistema porque " +"não respeitam as Guidelines da Debian Free Software. Você pode precisar de " +"reconfigurar o gestor de pacotes para incluir as secções contrib e non-free " +"do arquivo de pacotes antes de poder instalar estes ficheiros de firmware." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +#| msgid "Boot loader configuration must be updated" +msgid "Ramdisk configuration must be updated" +msgstr "A configuração de ramdisk tem de ser actualizada" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages will no longer run a specific ramdisk creator. The ramdisk " +"creator package must install a script in /etc/kernel/postinst.d, and you " +"should remove the line beginning 'ramdisk =' from /etc/kernel-img.conf." +msgstr "" +"Os pacotes de kernel não irão mais correr um criador de ramdisk especificado. " +"O pacote do criador de ramdisk deve instalar um script em /etc/kernel/" +"postinst.d, e você deve remover a linha que começa com 'ramdisk =' do " +"ficheiro /etc/kernel-img.conf." + +#~ msgid "" +#~ "If the boot loader needs to be updated whenever a new kernel is " +#~ "installed, the boot loader package should install a script in /etc/kernel/" +#~ "postinst.d. Alternately, you can specify the command to update the boot " +#~ "loader by setting the 'postinst_hook' variable in /etc/kernel-img.conf." +#~ msgstr "" +#~ "Se o gestor de arranque precisa de ser actualizado sempre que um novo " +#~ "kernel é instalado, o pacote do gestor de arranque deve instalar um " +#~ "script em /etc/kernel/postinst.d. Em alternativa, você pode especificar o " +#~ "comando para actualizar o gestor de arranque ao definir a variável " +#~ "'postinst_hook' em /etc/kernel-img.conf." + +#~ msgid "" +#~ "Kernel packages no longer update a default boot loader. You should " +#~ "remove 'do_bootloader = yes' from /etc/kernel-img.conf." +#~ msgstr "" +#~ "Os pacotes do kernel já não actualizam um gestor de arranque predefinido. " +#~ "Você deve remover 'do_bootloader = yes' de /etc/kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/po/ru.po +++ linux-2.6-3.0.0/debian/po/ru.po @@ -0,0 +1,160 @@ +# translation of ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the linux-2.6 package. +# +# Yuri Kozlov , 2010. +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32-18\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2010-07-25 10:32+0200\n" +"PO-Revision-Date: 2010-08-01 17:11+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "" +"Если системный загрузчик требует обновления после установки нового ядра, " +"то пакет системного загрузчика должен устанавливать сценарий в каталог " +"/etc/kernel/postinst.d. Или же вы можете задать команду обновления " +"системного загрузчика, указав её в переменной postinst_hook в файле " +"/etc/kernel-img.conf." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Прервать установку после ошибки depmod?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"Команда depmod завершилась с кодом ошибки ${exit_value} (${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Так как этот образ использует initrd, файл ${modules_base}/=V/modules.dep не " +"будет удалён, даже если он может быть неправильным." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Вы должны прервать установку и исправить ошибки depmod, или пересобрать " +"образ initrd с работающим файлом modules.dep. Если вы не прервёте установку, " +"то система больше не сможет загружаться." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Прервать удаление ядра?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "Вы пытаетесь удалить запущенную версию ядра (${running})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Это может привести к неспособности загрузки системы, так как будут удалён " +"файл /boot/vmlinuz-${running} и все модули из каталога /lib/modules/" +"${running}. Это можно будет исправить только копированием образа ядра и " +"соответствующих модулей." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Настоятельно рекомендуется прервать удаление ядра, если вы не готовы чинить " +"систему после его удаления." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Могут отсутствовать необходимые файлы микропрограмм" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"В этой системе сейчас работает ядро Linux ${runningversion} и производится " +"установка Linux ${version}. В новой версии некоторым драйверам, используемым " +"в данной системе, могут потребоваться дополнительные файлы микропрограмм:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"Большинства файлов микропрограмм нет в дистрибутиве, так как они не " +"удовлетворяют критериям свободного ПО Debian. Для установки этих файлов из " +"архива вам может потребоваться перенастроить менеджер пакетов, чтобы " +"включить разделы contrib и non-free." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +#| msgid "Boot loader configuration check needed" +msgid "Boot loader configuration must be updated" +msgstr "Требуется обновление настроек системного загрузчика" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "" +"Пакеты ядра больше не обновляют системный загрузчик по умолчанию. " +"Вы должны удалить строку \"do_bootloader = yes\" из файла " +"/etc/kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/po/ja.po +++ linux-2.6-3.0.0/debian/po/ja.po @@ -0,0 +1,106 @@ +# Copyright (C) 2010 Kenshi Muto +# Copyright (C) 2010 Nobuhiro Iwamatsu +# This file is distributed under the same license as the linux-2.6 package. +# Kenshi Muto , 2010. +# Nobuhiro Iwamatsu , 2010. + +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-21 10:37+0200\n" +"PO-Revision-Date: 2010-10-31 06:32+0900\n" +"Last-Translator: Nobuhiro Iwamatsu \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja\n" +"X-Poedit-Language: Japanese\n" +"X-Poedit-Country: JAPAN\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 +#: ../templates/temp.image.plain/templates:5001 +msgid "If the boot loader needs to be updated whenever a new kernel is installed, the boot loader package should install a script in /etc/kernel/postinst.d. Alternately, you can specify the command to update the boot loader by setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "新しいカーネルがインストールされるときに、いつでもブートローダがアップデートされる必要があるなら、ブートローダパッケージは /etc/kernel/postinst.d にスクリプトをインストールしなければなりません。あるいは、/etc/kernel-img.conf にある 'postinst_hook' 変数を設定することによって、ブートローダをアップデートするコマンドを指定できます。" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "depmod のエラー後にインストールを中止しますか?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "The 'depmod' command exited with the exit code ${exit_value} (${SIGNAL}${CORE})." +msgstr "'depmod' コマンドは終了コード ${exit_value} (${SIGNAL}${CORE}) で終了しました。" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Since this image uses initrd, the ${modules_base}/=V/modules.dep file will not be deleted, even though it may be invalid." +msgstr "このイメージは initrd を使っているので、${modules_base}/=V/modules.dep ファイルは (たとえ無効なものであったとしても) 削除されません。" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "You should abort the installation and fix the errors in depmod, or regenerate the initrd image with a known good modules.dep file. If you don't abort the installation, there is a danger that the system will fail to boot." +msgstr "インストールを中止して depmod のエラーを修正するか、問題がないとわかっている modules.dep ファイルで initrd イメージを再生成すべきです。インストールを中止しないと、システムの起動に失敗する恐れがあります。" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "カーネルの削除を中止しますか?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "You are running a kernel (version ${running}) and attempting to remove the same version." +msgstr "現在カーネル (バージョン ${running}) を実行しており、同一バージョンのカーネルの削除を試みています。" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "This can make the system unbootable as it will remove /boot/vmlinuz-${running} and all modules under the directory /lib/modules/${running}. This can only be fixed with a copy of the kernel image and the corresponding modules." +msgstr "この操作は /boot/vmlinuz-${running} および /lib/modules/${running} ディレクトリ下のすべてのモジュールを削除するので、システムを起動不能にする可能性があります。これは、カーネルイメージおよび関連モジュールのコピーがない限り直せません。" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "It is highly recommended to abort the kernel removal unless you are prepared to fix the system after removal." +msgstr "削除後でもシステムに問題がないような準備を済ませるまで、カーネルの削除を中止することを強くお勧めします。" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "必要なファームウェアファイルがなくなっている可能性があります" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "This system is currently running Linux ${runningversion} and you are installing Linux ${version}. In the new version some of the drivers used on this system may require additional firmware files:" +msgstr "このシステムは現在 Linux ${runningversion} を実行しており、Linux ${version} をインストールしようとしています。新しいバージョンでは、このシステムで使われるドライバのいくつかは追加のファームウェアファイルを必要とするかもしれません:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Most firmware files are not included in the system because they do not conform to the Debian Free Software Guidelines. You may need to reconfigure the package manager to include the contrib and non-free sections of the package archive before you can install these firmware files." +msgstr "ほとんどのファームウェアファイルは、Debian フリーソフトウェアガイドラインに合致しないため、システムに含まれていません。これらのファームウェアファイルをインストール可能にするために、パッケージアーカイブの contrib および non-free セクションを含むようパッケージマネージャを再設定する必要があるかもしれません。" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "ブートローダ設定を更新する必要があります" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Kernel packages no longer update a default boot loader. You should remove 'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "カーネルパッケージはデフォルトブートローダをもはやアップデートしません。/etc/kernel-img.conf から 'do_bootloader = yes' の行を削除しなければなりません。" + --- linux-2.6-3.0.0.orig/debian/po/et.po +++ linux-2.6-3.0.0/debian/po/et.po @@ -0,0 +1,156 @@ +# linux-2.6-debconf estonian translation +# linux-2.6-debconf eesti keele tõlge +# Copyright (C) 2010 Debian GNU/Linux +# This file is distributed under the same license as the PACKAGE package. +# +# mihkel , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32-11\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2010-07-16 15:55+0100\n" +"PO-Revision-Date: 2010-04-24 14:20+0300\n" +"Last-Translator: mihkel \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Emacs\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Katkesta paigaldus peale depmod veateadet?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"'depmod' käsk lõpetas väljumise koodiga ${exit_value} (${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Kuna tõmmis kasutab initrd-d, siis ${modules_base}/=V/modules.dep faili ei " +"kustutata, kuigi ta võib olla vigane." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Sa peaksid paigaldamise katkestama ja parandama depmodi vead või " +"regenereerima initrd tõmmise heade modules.dep failiga. Kui sa ei katkesta, " +"siis suure tõenäosusega süsteem enam ei käivitu alglaadimisel." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Katkesta tuuma eemaldamine?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Sa kasutad tuuma versiooni (version ${running}) ning üritad seda sama " +"versiooni eemaldada." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"See võib süsteemi muuta mitte käivitatavaks kuna eemaldatakse /boot/vmlinuz-" +"${running} ja kõik moodulid kataloogist /lib/modules/${running}. Seda saab " +"parandada ainult sama tumma ja vastavate moodulite kopeerimisega õigetesse " +"kohtadesse." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"On äärmiselt soovituslik katkestada tuuma eemaldamine, kui sa just pole " +"valmistunud süsteemi ise parandama." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Vajalikud püsivara failid võivad olla puudu" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"See süsteem kasutab praegu Linuxi versiooni ${runningversion} ja sina " +"paigaldad versiooni ${version}. Uues versionis võivad mõned ajurid vajada " +"lisaks püsivara faile:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"Enamik püsivara faile ei ole kaasatud süsteemi, sest nad ei vasta Debian " +"vaba tarkvara juhtnööridele (Debian Free Software Guidelines). Võimalik, et " +"pead enne oma pakimajandajat ümber seadistama, et kaasata varamutesse ka " +"contrib ja non-free harud, kui saad need püsivara failid paigaldada." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +#, fuzzy +#| msgid "Boot loader configuration check needed" +msgid "Boot loader configuration must be updated" +msgstr "Vajalik alglaaduri konfiguratsiooni kontroll" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "" --- linux-2.6-3.0.0.orig/debian/po/nl.po +++ linux-2.6-3.0.0/debian/po/nl.po @@ -0,0 +1,101 @@ +# Dutch translation of linux-2.6 po-debconf templates. +# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the linux-2.6 package. +# Willem Kuyn , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6\n" +"Report-Msgid-Bugs-To: linux-2.6@packages.debian.org\n" +"POT-Creation-Date: 2011-03-30 10:34+0200\n" +"PO-Revision-Date: 2011-04-02 20:07+0100\n" +"Last-Translator: willem kuyn \n" +"Language-Team: Debian-Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Installatie afbreken na depmod fout? " + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "The 'depmod' command exited with the exit code ${exit_value} (${SIGNAL}${CORE})." +msgstr "De 'depmod' opdracht stopte met foutcode ${exit_value} (${SIGNAL}${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Since this image uses initrd, the ${modules_base}/=V/modules.dep file will not be deleted, even though it may be invalid." +msgstr "Omdat deze afbeelding initrd gebruikt, zal het ${modules_base}/=V/modules.dep bestand niet verwijderd worden, ook al is het niet correct." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "You should abort the installation and fix the errors in depmod, or regenerate the initrd image with a known good modules.dep file. If you don't abort the installation, there is a danger that the system will fail to boot." +msgstr "U zou de installatie moeten afbreken en de fouten in depmod herstellen, of het initrd bestand opnieuw moeten genereren met een correct modules.dep bestand. Als u de installatie niet afbreekt dan bestaat het gevaar dat het systeem niet zal starten." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Het verwijderen van de kernel afbreken?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "You are running a kernel (version ${running}) and attempting to remove the same version." +msgstr "U gebruikt kernel (versie ${running}) en probeert de zelfde versie te verwijderen." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "This can make the system unbootable as it will remove /boot/vmlinuz-${running} and all modules under the directory /lib/modules/${running}. This can only be fixed with a copy of the kernel image and the corresponding modules." +msgstr "Het resultaat kan zijn dat het systeem niet start omdat het /boot/vmlinuz-${running} en alle modules onder /lib/modules/${running} verwijdert. Dit kan alleen gerepareerd worden met een kopie van het kernel bestand en de bijbehorende modules." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "It is highly recommended to abort the kernel removal unless you are prepared to fix the system after removal." +msgstr "Het wordt ten sterkste aanbevolen om het verwijderen van de kernel af te breken tenzij u bent voorbereid om het systeem te repareren na het verwijderen." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "De vereiste firmware bestanden kunnen ontbreken" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "This system is currently running Linux ${runningversion} and you are installing Linux ${version}. In the new version some of the drivers used on this system may require additional firmware files:" +msgstr "Het systeem draait op dit moment Linux ${runningversion} en u installeert Linux ${version}. In de nieuwe versie kunnen enkele stuurprogramma's van het systeem aparte firmware bestanden nodig hebben." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Most firmware files are not included in the system because they do not conform to the Debian Free Software Guidelines. You may need to reconfigure the package manager to include the contrib and non-free sections of the package archive before you can install these firmware files." +msgstr "Veel firmware bestanden zijn niet in het systeem opgenomen omdat zij niet voldoen aan de Debian Free Software Guidelines. Mogelijk moet u de configuratie van de pakket manager aanpassen en de contrib en non-free secties van het pakket archief toevoegen voordat u deze firmware bestanden kunt installeren. " + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "De bootloader configuratie moet worden aangepast." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Kernel packages no longer update a default boot loader. You should remove 'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "Kernel pakketten passen de bootloader configuratie niet langer aan. U dient do_bootloader = yes' uit /etc/kernel-img.conf te verwijderen." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "If the boot loader needs to be updated whenever a new kernel is installed, the boot loader package should install a script in /etc/kernel/postinst.d. Alternately, you can specify the command to update the boot loader by setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "Als de bootloader configuratie aangepast moet worden bij de installatie van een nieuwe kernel dan dient het bootloader pakket eeen script in /etc/kernel/postinst.d te installeren. Anders kunt u de opdracht om de bootloader configuratie aanpassen door het aanzetten van de 'postinst_hook' variabele in /etc/kernel-img.conf." + --- linux-2.6-3.0.0.orig/debian/po/es.po +++ linux-2.6-3.0.0/debian/po/es.po @@ -0,0 +1,191 @@ +# linux-2.6 po-debconf translation to Spanish +# This file is distributed under the same license as the linux-2.6 package. +# +# Changes: +# - Initial translation +# Omar Campagne 2010 +# +# - Review and update +# Javier Fernandez-Sanguino, December 2010 +# +# Traductores, si no conocen el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas y normas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6 2.6.32+5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-11 10:35+0100\n" +"PO-Revision-Date: 2010-12-15 04:08+0100\n" +"Last-Translator: Omar Campagne \n" +"Language-Team: Debian l10n Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.6.1\n" +"X-POFile-SpellExtra: initrd postinsthook conf lib contrib yes IDE depmod\n" +"X-POFile-SpellExtra: runningversion img script boot Free exitvalue version\n" +"X-POFile-SpellExtra: Debian CORE free running dobootloader UUID dep SIGNAL\n" +"X-POFile-SpellExtra: Guidelines modulesbase vmlinuz postinst\n" + +#. Type: error +#. Description +#: ../linux-base.templates:8001 ../templates/temp.image.plain/templates:5001 +msgid "" +"If the boot loader needs to be updated whenever a new kernel is installed, " +"the boot loader package should install a script in /etc/kernel/postinst.d. " +"Alternately, you can specify the command to update the boot loader by " +"setting the 'postinst_hook' variable in /etc/kernel-img.conf." +msgstr "" +"El paquete del gestor de arranque debería instalar un script en " +"«/etc/kernel/postinst.d» si tiene que actualizarse cada vez que se instala " +"un nuevo núcleo. También puede especificar la orden a ejecutar para " +"actualizar el gestor de arranque configurando la variable «postinst_hook» " +"en el fichero de configuración «/etc/kernel-img.conf»." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "¿Desea interrumpir la instalación cuando se produzca un fallo de depmod?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"La orden «depmod» finalizó con el código de salida «${exit_value} " +"(${SIGNAL}${CORE})»." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Debido a que esta imagen usa una imagen de arranque «initrd», no se " +"eliminará el fichero «${modules_base}/=V/modules.dep», aún cuando no sea " +"válido." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Debería cancelar la instalación y arreglar los errores de depmod, o " +"regenerar la imagen de arranque «initrd» con un fichero «modules.dep» " +"fiable. Si no cancela la instalación, existe el peligro de que el sistema no " +"pueda arrancar." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "¿Desea cancelar la eliminación del núcleo?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Su sistema está ejecutando el núcleo (versión ${running}), y está intentando " +"eliminar la misma versión del núcleo." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Puede que el sistema no pueda arrancar posteriormente, ya que eliminaría «/" +"boot/vmlinuz-${running}» y todos los módulos en el directorio «/lib/modules/" +"${running}». Esto sólo se puede arreglar esto con una copia de la imagen del " +"núcleo y los correspondientes módulos." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Se recomienda encarecidamente cancelar la eliminación del núcleo, a menos " +"que esté preparado para arreglar el sistema después de la eliminación." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Puede que los ficheros de firmware requeridos no estén disponibles" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Este sistema ejecuta actualmente la versión ${runningversion} de Linux, y se " +"está instalando la versión ${version}. Puede que los controladores incluidos " +"en la nueva versión requieran ficheros de firmware adicionales:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"La mayoría de ficheros de firmware no se incluyen en el sistema porque no " +"cumplen las normas de software libre de Debian («Debian Free Software " +"Guidelines»). Puede que tenga que reconfigurar el gestor de paquetes para " +"incluir las secciones «contrib» y «non-free» del archivo de Debian antes de " +"instalar estos ficheros de firmware." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Boot loader configuration must be updated" +msgstr "Debe actualizarse la configuración del gestor de arranque" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages no longer update a default boot loader. You should remove " +"'do_bootloader = yes' from /etc/kernel-img.conf." +msgstr "" +"Los paquetes del núcleo ya no actualizan el gestor de arranque por omisión. " +"Debe eliminar la línea «do_bootloader = yes» del archivo de configuración " +"«/etc/kernel-img.conf»." --- linux-2.6-3.0.0.orig/debian/po/da.po +++ linux-2.6-3.0.0/debian/po/da.po @@ -0,0 +1,145 @@ +# Danish translation linux-2.6. +# Copyright (C) 2011 linux-2.6 & Joe Hansen. +# This file is distributed under the same license as the linux-2.6 package. +# Joe Hansen , 2010, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: linux-2.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-09 10:31+0200\n" +"PO-Revision-Date: 2011-07-03 05:26+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "Abort installation after depmod error?" +msgstr "Afbryd installation efter depmod-fejl?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"The 'depmod' command exited with the exit code ${exit_value} " +"(${SIGNAL}${CORE})." +msgstr "" +"Kommandoen depmod afsluttedes med koden afslutningskoden ${exit_value} " +"(${SIGNAL} ${CORE})." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"Since this image uses initrd, the ${modules_base}/=V/modules.dep file will " +"not be deleted, even though it may be invalid." +msgstr "" +"Da dette aftryk bruger initrd, vil filen ${modules_base}/=V/modules.dep ikke " +"blive slettet, selvom den måske er ugyldig." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:2001 +msgid "" +"You should abort the installation and fix the errors in depmod, or " +"regenerate the initrd image with a known good modules.dep file. If you don't " +"abort the installation, there is a danger that the system will fail to boot." +msgstr "" +"Du skal afbryde installationen og rette fejlene i depmod, eller gendanne " +"initrd-aftrykket med en kendt god fil af typen modules-dep. Hvis du ikke " +"afbryder installationen, er der fare for at systemet vil fejle ved opstart." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "Abort kernel removal?" +msgstr "Afbryd kernefjernelse?" + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"You are running a kernel (version ${running}) and attempting to remove the " +"same version." +msgstr "" +"Du kører en kerne (version ${running}) og forsøger at fjerne den samme " +"version." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"This can make the system unbootable as it will remove /boot/vmlinuz-" +"${running} and all modules under the directory /lib/modules/${running}. This " +"can only be fixed with a copy of the kernel image and the corresponding " +"modules." +msgstr "" +"Dette kan gøre at systemet ikke kan starte op da det vil fjerne /boot/" +"vmlinuz-${running} og alle moduler i mappen /lib/modules//${running}. Dette " +"kan kun rettes med en kopi af kerneaftrykket og de tilsvarende moduler." + +#. Type: boolean +#. Description +#: ../templates/temp.image.plain/templates:3001 +msgid "" +"It is highly recommended to abort the kernel removal unless you are prepared " +"to fix the system after removal." +msgstr "" +"Det anbefales stærkt, at afbryde kernefjernelsen med mindre du er forberedt " +"på at rette systemet op efter fjernelsen." + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "Required firmware files may be missing" +msgstr "Krævet firmwarefiler mangler måske" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"This system is currently running Linux ${runningversion} and you are " +"installing Linux ${version}. In the new version some of the drivers used on " +"this system may require additional firmware files:" +msgstr "" +"Dette system kører aktuelt Linux ${runningversion}, og du installerer Linux " +"${version}. I den nye version kræver nogle af driverne på dette system måske " +"yderligere firmwarefiler:" + +#. Type: note +#. Description +#: ../templates/temp.image.plain/templates:4001 +msgid "" +"Most firmware files are not included in the system because they do not " +"conform to the Debian Free Software Guidelines. You may need to reconfigure " +"the package manager to include the contrib and non-free sections of the " +"package archive before you can install these firmware files." +msgstr "" +"De fleste firmwarefiler er ikke inkluderet i Debiansystemet, da de ikke " +"overholder Debian Free Softwares retningslinjer. Du skal måske rekonfigurere " +"pakkehåndteringen for at inkludere contrib og det ikke frie afsnit af " +"Debianarkivet, før du kan installere disse firmwarefiler." + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "Ramdisk configuration must be updated" +msgstr "Konfiguration af ramdisk skal opdateres" + +#. Type: error +#. Description +#: ../templates/temp.image.plain/templates:5001 +msgid "" +"Kernel packages will no longer run a specific ramdisk creator. The ramdisk " +"creator package must install a script in /etc/kernel/postinst.d, and you " +"should remove the line beginning 'ramdisk =' from /etc/kernel-img.conf." +msgstr "" +"Kernepakker vil ikke længere køre et specifikt ramdiskoprettelsesprogram. " +"Pakken for ramdiskrettelsesprogrammet skal installere et skript i /etc/kernel" +"/postinst.d, og du skal fjerne linjen der begynder med »ramdisk =« fra " +"/etc/kernel-img.conf." --- linux-2.6-3.0.0.orig/debian/templates/control.main.in +++ linux-2.6-3.0.0/debian/templates/control.main.in @@ -0,0 +1,77 @@ +Package: linux-tools-@version@ +Architecture: alpha amd64 armel armhf hppa i386 powerpc ppc64 s390 s390x sh4 sparc sparc64 +Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python:Depends} +Recommends: linux-base (>= 2.6.32-16) +Suggests: linux-doc-@version@ +Description: Performance analysis tools for Linux @upstreamversion@ + This package contains the 'perf' performance analysis tools for Linux + kernel version @upstreamversion@. + . + The linux-base package contains a 'perf' command which will invoke the + appropriate version for the running kernel. + +Package: linux-source-@version@ +Architecture: all +Section: kernel +Provides: linux-source +Depends: binutils, bzip2, ${misc:Depends} +Recommends: libc6-dev | libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt4-dev +Description: Linux kernel source for version @version@ with Debian patches + This package provides source code for the Linux kernel version @version@. + This source closely tracks official Linux kernel releases. Debian's + modifications to that source consist of security fixes, bug fixes, and + features that have already been (or are believed to be) accepted by the + upstream maintainers. + +Package: linux-doc-@version@ +Architecture: all +Depends: ${misc:Depends} +Section: doc +Description: Linux kernel specific documentation for version @version@ + This package provides the various README files and HTML documentation for + the Linux kernel version @version@. Plenty of information, including the + descriptions of various kernel subsystems, filesystems, driver-specific + notes and the like. Consult the file + /usr/share/doc/linux-doc-@version@/Documentation/00-INDEX + for the detailed description of the contents. + +Package: linux-manual-@version@ +Architecture: all +Depends: ${misc:Depends} +Section: doc +Provides: linux-manual +Conflicts: linux-manual +Replaces: linux-manual +Description: Linux kernel API manual pages for version @version@ + This package provides the Kernel Hacker's Guide in the form of + manual pages, describing the kernel API functions. They + are installed into section 9 of the manual. + . + As the files containing manual pages for different kernel versions + are installed in the same location, only one linux-manual package + may be installed at a time. The linux-doc package containing the + documentation in other formats is free from such restriction. + +Package: linux-patch-debian-@version@ +Architecture: all +Depends: bzip2, linux-support-@upstreamversion@@abiname@, python, ${misc:Depends} +Suggests: linux-source-@version@ +Description: Debian patches to version @version@ of the Linux kernel + This package includes the patches used to produce the prepackaged + linux-source-@version@ package, as well as architecture-specific + patches. + . + Note that these patches do NOT apply against a pristine + Linux @version@ kernel but only against the kernel tarball + @source_package@_@source_upstream@.orig.tar.gz from the Debian archive. + +Package: linux-support-@upstreamversion@@abiname@ +Architecture: all +Section: devel +Depends: ${python:Depends}, ${misc:Depends} +Description: Support files for Linux @upstreamversion@ + This package provides support files for the Linux kernel build, + e.g. scripts to handle ABI information and for generation of + build system meta data. + --- linux-2.6-3.0.0.orig/debian/templates/control.image.type-modulesextra.in +++ linux-2.6-3.0.0/debian/templates/control.image.type-modulesextra.in @@ -0,0 +1,11 @@ +Package: linux-image-@upstreamversion@@abiname@@localversion@ +Provides: linux-image +Depends: linux-modules-@upstreamversion@@abiname@@localversion@ (= ${binary:Version}), ${misc:Depends} +Suggests: linux-doc-@version@ +Description: Linux @upstreamversion@ for @class@ + The Linux kernel @upstreamversion@ for use on @longclass@. + +Package: linux-modules-@upstreamversion@@abiname@@localversion@ +Depends: module-init-tools, ${misc:Depends} +Description: Linux @upstreamversion@ modules for @class@ + Modules for Linux kernel @upstreamversion@ for use on @longclass@. --- linux-2.6-3.0.0.orig/debian/templates/control.headers.in +++ linux-2.6-3.0.0/debian/templates/control.headers.in @@ -0,0 +1,10 @@ +Package: linux-headers-@upstreamversion@@abiname@@localversion@ +Depends: linux-headers-@upstreamversion@@abiname@-common@localversion_headers@ (= ${binary:Version}), linux-kbuild-@version@, ${misc:Depends} +Provides: linux-headers +Description: Header files for Linux @upstreamversion@@abiname@@localversion@ + This package provides the architecture-specific kernel header files + for Linux kernel @upstreamversion@@abiname@@localversion@, generally + used for building out-of-tree kernel modules. These files are going to be + installed into /usr/src/linux-headers-@upstreamversion@@abiname@@localversion@, and can + be used for building modules that load into the kernel provided by the + linux-image-@upstreamversion@@abiname@@localversion@ package. --- linux-2.6-3.0.0.orig/debian/templates/image.xen.postinst.in +++ linux-2.6-3.0.0/debian/templates/image.xen.postinst.in @@ -0,0 +1,28 @@ +#!/bin/bash + +set -e + +case "$1" in + configure) + if [ "$2" ]; then + update-initramfs -u -k @upstreamversion@@abiname@@localversion@ + else + update-initramfs -c -t -k @upstreamversion@@abiname@@localversion@ + command -v update-grub > /dev/null && update-grub + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 + + --- linux-2.6-3.0.0.orig/debian/templates/image-dbg.lintian-override.in +++ linux-2.6-3.0.0/debian/templates/image-dbg.lintian-override.in @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-=V-dbg: dbg-package-missing-depends --- linux-2.6-3.0.0.orig/debian/templates/control.image-dbg.in +++ linux-2.6-3.0.0/debian/templates/control.image-dbg.in @@ -0,0 +1,7 @@ +Package: linux-image-@upstreamversion@@abiname@@localversion@-dbg +Depends: linux-image-@upstreamversion@@abiname@@localversion@, ${misc:Depends} +Section: debug +Priority: extra +Description: Debugging infos for Linux @upstreamversion@@abiname@@localversion@ + This package provides the binary debug image and pre-built debug loadable + modules for Linux kernel @upstreamversion@ on @longclass@ machines. --- linux-2.6-3.0.0.orig/debian/templates/control.xen-linux-system.in +++ linux-2.6-3.0.0/debian/templates/control.xen-linux-system.in @@ -0,0 +1,5 @@ +Package: xen-linux-system-@upstreamversion@@abiname@@localversion@ +Depends: linux-image-@upstreamversion@@abiname@@localversion@ (= ${binary:Version}), ${misc:Depends} +Description: Xen system with Linux @upstreamversion@ on @class@ (meta-package) + This package depends on the binary Linux image and hypervisors. + --- linux-2.6-3.0.0.orig/debian/templates/image.xen.postrm.in +++ linux-2.6-3.0.0/debian/templates/image.xen.postrm.in @@ -0,0 +1,21 @@ +#!/bin/bash + +set -e + +case "$1" in + remove) + command -v update-grub > /dev/null && update-grub + ;; + + purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- linux-2.6-3.0.0.orig/debian/templates/control.image.type-standalone.in +++ linux-2.6-3.0.0/debian/templates/control.image.type-standalone.in @@ -0,0 +1,6 @@ +Package: linux-image-@upstreamversion@@abiname@@localversion@ +Provides: linux-image +Suggests: linux-doc-@version@ +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Linux @upstreamversion@ for @class@ + The Linux kernel @upstreamversion@ for use on @longclass@. --- linux-2.6-3.0.0.orig/debian/templates/control.image.type-plain.in +++ linux-2.6-3.0.0/debian/templates/control.image.type-plain.in @@ -0,0 +1,8 @@ +Package: linux-image-@upstreamversion@@abiname@@localversion@ +Provides: linux-image, linux-modules-@upstreamversion@@abiname@@localversion@ +Pre-Depends: debconf | debconf-2.0 +Depends: module-init-tools, linux-base (>= 3~), ${shlibs:Depends}, ${misc:Depends} +Recommends: firmware-linux-free (>= 3~) +Suggests: linux-doc-@version@ +Description: Linux @upstreamversion@ for @class@ + The Linux kernel @upstreamversion@ and modules for use on @longclass@. --- linux-2.6-3.0.0.orig/debian/templates/control.headers.featureset.in +++ linux-2.6-3.0.0/debian/templates/control.headers.featureset.in @@ -0,0 +1,8 @@ +Package: linux-headers-@upstreamversion@@abiname@-common@localversion_headers@ +Depends: ${misc:Depends} +Description: Common header files for Linux @upstreamversion@@abiname@@localversion_headers@ + This package provides the architecture-specific common kernel header files + for Linux kernel version @upstreamversion@@abiname@@localversion_headers@, generally used for building out-of-tree + kernel modules. To obtain a complete set of headers you also need to install + the linux-headers-@upstreamversion@@abiname@-(flavour) package, matching the + flavour of the kernel you intend the build for. --- linux-2.6-3.0.0.orig/debian/templates/control.headers.arch.in +++ linux-2.6-3.0.0/debian/templates/control.headers.arch.in @@ -0,0 +1,14 @@ +Package: linux-headers-@upstreamversion@@abiname@-all +Depends: linux-headers-@upstreamversion@@abiname@-all-${kernel:Arch} (= ${binary:Version}), ${misc:Depends} +Description: All header files for Linux @version@ (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version @upstreamversion@, generally used for building out-of-tree + kernel modules. + +Package: linux-headers-@upstreamversion@@abiname@-all-@arch@ +Depends: ${misc:Depends} +Description: All header files for Linux @version@ (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version @upstreamversion@, generally used for building out-of-tree + kernel modules. + --- linux-2.6-3.0.0.orig/debian/templates/patch.unpatch +++ linux-2.6-3.0.0/debian/templates/patch.unpatch @@ -0,0 +1,4 @@ +#!/bin/sh +set -e + +exec "$(dirname $0)/../apply/debian" orig --- linux-2.6-3.0.0.orig/debian/templates/control.libc-dev.in +++ linux-2.6-3.0.0/debian/templates/control.libc-dev.in @@ -0,0 +1,10 @@ +Package: linux-libc-dev +Section: devel +Depends: ${misc:Depends} +Provides: linux-kernel-headers +Replaces: linux-kernel-headers +Conflicts: linux-kernel-headers +Multi-Arch: same +Description: Linux support headers for userspace development + This package provides userspaces headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system libraries. --- linux-2.6-3.0.0.orig/debian/templates/patch.apply.in +++ linux-2.6-3.0.0/debian/templates/patch.apply.in @@ -0,0 +1,228 @@ +#!/usr/bin/env python + +import os, os.path, re, sys +from warnings import warn + +sys.path.append("/usr/share/linux-support-@linux_upstream@@abiname@/lib/python") + +from debian_linux.patches import PatchSeries, PatchSeriesList + +_default_home = "/usr/src/kernel-patches/all/@linux_upstream@/debian" +revisions = "@revisions@".split() +upstream = "@upstream@" + +class MatchExtra(object): + def __init__(self, arch, featureset): + self.arch, self.featureset = arch, featureset + + self.matched_arch = self.matched_featureset = False + + def __call__(self, obj): + if not self: + return False + + data = obj.data + + match_arch = [] + match_featureset = [] + for i in data: + if i.startswith("arch="): + match_arch.append(i[5:]) + elif i.startswith("featureset="): + match_featureset.append(i[11:]) + else: + raise RuntimeError('Ignored unknown modifier: %s' % i) + + ret_arch = ret_featureset = False + + if match_arch: + if self.arch is not None: + if self.arch in match_arch: + self.matched_arch = True + ret_arch = True + + else: + ret_arch = True + + if match_featureset: + if self.featureset is not None: + if self.featureset in match_featureset: + self.matched_featureset = True + ret_featureset = True + + else: + ret_featureset = True + + return ret_arch and ret_featureset + + def __nonzero__(self): + return self.arch is not None or self.featureset is not None + + def info(self): + ret = [] + if self.matched_arch: + ret.append("arch=%s" % self.arch) + if self.matched_featureset: + ret.append("featureset=%s" % self.featureset) + return ret + +_marker = object() + +class version_file(object): + _file = 'version.Debian' + extra = None + in_progress = False + + def __init__(self, upstream = None): + if os.path.exists(self._file): + s = file(self._file).readline().strip() + self._read(s) + elif upstream: + warn('No %s file, assuming Debian Linux %s' % (self._file, upstream)) + self.upstream = upstream + self.revision = 'orig' + else: + raise RuntimeError, "Not possible to determine version" + + def __str__(self): + if self.in_progress: + return "unstable" + ret = [self.upstream, self.revision] + if self.extra is not None: + ret.extend(self.extra.info()) + return ' '.join(ret) + + def _read(self, s): + if s == 'unstable': + raise RuntimeError("Tree is in an unstable condition. Can't continue!") + list = s.split() + self.upstream, self.revision = list[0:2] + + arch = featureset = None + for i in list[2:]: + if i.startswith("arch="): + arch = i[5:] + elif i.startswith("featureset="): + featureset = i[11:] + else: + raise RuntimeError("Can't parse extra information") + self.extra = MatchExtra(arch, featureset) + + def _write(self): + if os.path.lexists(self._file): + os.unlink(self._file) + file(self._file, 'w').write('%s\n' % self) + + def begin(self): + self.in_progress = True + self._write() + + def commit(self, revision, extra = _marker): + self.in_progress = False + self.revision = revision + if extra is not _marker: + self.extra = extra + self._write() + +def main(): + options, args = parse_options() + + if len(args) > 1: + print "Too much arguments" + return + + home = options.home + + vfile = version_file(upstream) + current_revision = vfile.revision + current_extra = vfile.extra + + if len(args) == 1: + target_revision = args[0] + else: + target_revision = revisions[-1] + target_extra = MatchExtra(options.arch, options.featureset) + + if vfile.upstream != upstream: + raise RuntimeError("Upstream version differs between tree (%s) and package (%s)" % (vfile.upstream, upstream)) + if current_revision not in revisions: + raise RuntimeError, "Current revision is not in our list of revisions" + if target_revision not in revisions: + raise RuntimeError, "Target revision is not in our list of revisions" + + if current_revision == target_revision and current_extra == target_extra: + print "Nothing to do" + return + + current_index = revisions.index(current_revision) + target_index = revisions.index(target_revision) + + if current_extra: + if current_revision != revisions[-1]: + raise RuntimeError, "Can't patch from %s with options %s" % (current, ' '.join(current_extra)) + consider = ['%s-extra' % i for i in revisions[1:current_index + 1]] + s = PatchSeriesList.read(home, consider) + vfile.begin() + s(cond = current_extra, reverse = True) + vfile.commit(current_revision, None) + + if current_index < target_index: + consider = revisions[current_index + 1:target_index + 1] + s = PatchSeriesList.read(home, consider) + vfile.begin() + s() + vfile.commit(target_revision) + elif current_index > target_index: + consider = revisions[target_index + 1:current_index + 1] + s = PatchSeriesList.read(home, consider) + vfile.begin() + s(reverse = True) + vfile.commit(target_revision) + + if target_extra: + consider = ['%s-extra' % i for i in revisions[1:target_index + 1]] + s = PatchSeriesList.read(home, consider) + vfile.begin() + s(cond = target_extra) + vfile.commit(target_revision, target_extra) + +def parse_options(): + from optparse import OptionParser + parser = OptionParser( + usage = "%prog [OPTION]... [TARGET]", + ) + parser.add_option( + '-a', '--arch', + dest = 'arch', + help = "arch", + ) + parser.add_option( + '-f', '--featureset', + dest = 'featureset', + help = "featureset", + ) + parser.add_option( + '-H', '--overwrite-home', + default = _default_home, dest = 'home', + help = "overwrite home [default: %default]", + ) + + options, args = parser.parse_args() + + if options.arch is None and options.featureset is not None: + raise RuntimeError('You specified a featureset without an arch, this is not really working') + + return options, args + +if __name__ == '__main__': + def showwarning(message, category, filename, lineno, + file=sys.stderr, line=''): + file.write("Warning: %s\n" % message) + import warnings + warnings.showwarning = showwarning + try: + main() + except RuntimeError, e: + sys.stderr.write("Error: %s\n" % e) + raise SystemExit, 1 + --- linux-2.6-3.0.0.orig/debian/templates/control.source.in +++ linux-2.6-3.0.0/debian/templates/control.source.in @@ -0,0 +1,9 @@ +Section: kernel +Priority: optional +Maintainer: Debian Kernel Team +Uploaders: Bastian Blank , Frederik Schüler , maximilian attems , Ben Hutchings +Standards-Version: 3.9.2 +Build-Depends: debhelper (>> 7), cpio, module-init-tools, python (>= 2.6.6-3~), lzma [armel], libelf-dev, libdw-dev, binutils-dev, asciidoc, xmlto, libperl-dev, python-dev, libnewt-dev +Build-Depends-Indep: bzip2 +Vcs-Svn: svn://svn.debian.org/svn/kernel/dists/sid/linux-2.6/ +Vcs-Browser: http://svn.debian.org/wsvn/kernel/dists/sid/linux-2.6/?op=log --- linux-2.6-3.0.0.orig/debian/templates/image.xen.prerm.in +++ linux-2.6-3.0.0/debian/templates/image.xen.prerm.in @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +case "$1" in + remove) + update-initramfs -d -k @upstreamversion@@abiname@@localversion@ || true + ;; + + upgrade|deconfigure|failed-upgrade) + ;; + + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 + + --- linux-2.6-3.0.0.orig/debian/templates/temp.image.plain/preinst +++ linux-2.6-3.0.0/debian/templates/temp.image.plain/preinst @@ -0,0 +1,162 @@ +#! /usr/bin/perl +# +use strict; +use warnings; + +use Debconf::Client::ConfModule qw(:all); +version('2.0'); +my $capb=capb("backup"); + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; +my $no_symlink = ""; +my $do_symlink = "Yes"; # target machine defined +my $kimage = "=K"; +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $preinst_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_src_link = 'YES'; # There is no harm in checking the link +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "=MK"; # List of tools to create initial ram fs. +my $package_name = "linux-image-$version"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/boot/"; +my $CONF_LOC = '/etc/kernel-img.conf'; + +my $modules_base = '/lib/modules'; + +die "Pre inst Internal error. Aborting." unless $version; + +exit 0 if $ARGV[0] =~ /abort-upgrade/; +exit 1 unless $ARGV[0] =~ /(install|upgrade)/; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /do_symlinks\s*=\s*(no|false|0)\s*$/i; + $no_symlink = "" if /no_symlinks\s*=\s*(no|false|0)\s*$/i; + $link_in_boot = "" if /link_in_boot\s*=\s*(no|false|0)\s*$/i; + $use_hard_links = '' if /use_hard_links\s*=\s*(no|false|0)\s*$/i; + $minimal_swap = '' if /minimal_swap\s*=\s*(no|false|0)\s*$/i; + $ignore_depmod_err = '' if /ignore_depmod_err\s*=\s*(no|false|0)\s*$/i; + $relink_src_link = '' if /relink_src_link\s*=\s*(no|false|0)\s*$/i; + $relink_build_link = '' if /relink_build_link\s*=\s*(no|false|0)\s*$/i; + $force_build_link = '' if /force_build_link\s*=\s*(no|false|0)\s*$/i; + + $do_symlink = "Yes" if /do_symlinks\s*=\s*(yes|true|1)\s*$/i; + $no_symlink = "Yes" if /no_symlinks\s*=\s*(yes|true|1)\s*$/i; + $link_in_boot = "Yes" if /link_in_boot\s*=\s*(yes|true|1)\s*$/i; + $use_hard_links = "Yes" if /use_hard_links\s*=\s*(yes|true|1)\s*$/i; + $minimal_swap = 'Yes' if /minimal_swap\s*=\s*(yes|true|1)\s*$/i; + $ignore_depmod_err = 'Yes' if /ignore_depmod_err\s*=\s*(yes|true|1)\s*$/i; + $relink_src_link = 'Yes' if /relink_src_link\s*=\s*(yes|true|1)\s*$/i; + $relink_build_link = 'Yes' if /relink_build_link\s*=\s*(yes|true|1)\s*$/i; + $force_build_link = 'Yes' if /force_build_link\s*=\s*(yes|true|1)\s*$/i; + + $image_dest = "$1" if /image_dest\s*=\s*(\S+)/i; + $preinst_hook = "$1" if /preinst_hook\s*=\s*(\S+)/i; + $ramdisk = "$1" if /ramdisk\s*=\s*(.+)$/i; + } + close CONF; + } +} + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +if (-d "$modules_base/$version" && -l "$modules_base/$version/build" ) { + rename("$modules_base/$version/build", "$modules_base/$version/build.save") || + die "failed to move $modules_base/$version/build:$!"; +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if (-x "$preinst_hook") { + &run_hook("preinst", $preinst_hook); +} +if (-d "/etc/kernel/preinst.d") { + print STDERR "Examining /etc/kernel/preinst.d/\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d") && + die "Failed to process /etc/kernel/preinst.d"; +} +if (-d "/etc/kernel/preinst.d/$version") { + print STDERR "Examining /etc/kernel/preinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d/$version") && + die "Failed to process /etc/kernel/preinst.d/$version"; +} + +exit 0; + +__END__ --- linux-2.6-3.0.0.orig/debian/templates/temp.image.plain/templates +++ linux-2.6-3.0.0/debian/templates/temp.image.plain/templates @@ -0,0 +1,63 @@ +# These templates have mostly been reviewed by the debian-l10n-english +# team +# +# If modifications/additions/rewording are needed, please ask +# debian-l10n-english@lists.debian.org for advice. +# +# Even minor modifications require translation updates and such +# changes should be coordinated with translators and reviewers. + +Template: linux-image-=V/postinst/depmod-error-initrd-=V +Type: boolean +Default: false +_Description: Abort installation after depmod error? + The 'depmod' command exited with the exit code ${exit_value} + (${SIGNAL}${CORE}). + . + Since this image uses initrd, the ${modules_base}/=V/modules.dep file + will not be deleted, even though it may be invalid. + . + You should abort the installation and fix the + errors in depmod, or regenerate the initrd image with a known good + modules.dep file. If you don't abort the installation, there is + a danger that the system will fail to boot. + +Template: linux-image-=V/prerm/removing-running-kernel-=V +Type: boolean +Default: true +_Description: Abort kernel removal? + You are running a kernel (version ${running}) and attempting to remove + the same version. + . + This can make the system unbootable as it will remove + /boot/vmlinuz-${running} and all modules under the directory + /lib/modules/${running}. This can only be fixed with a copy of the + kernel image and the corresponding modules. + . + It is highly recommended to abort the kernel removal unless you are + prepared to fix the system after removal. + +Template: linux-image-=V/postinst/missing-firmware-=V +Type: note +#flag:translate!:3 +_Description: Required firmware files may be missing + This system is currently running Linux ${runningversion} and you are + installing Linux ${version}. In the new version some of the drivers + used on this system may require additional firmware files: + . + ${missing} + . + Most firmware files are not included in the system because they do + not conform to the Debian Free Software Guidelines. You may need to + reconfigure the package manager to include the contrib and non-free + sections of the package archive before you can install these + firmware files. + +# This has not yet been reviewed +Template: linux-image-=V/postinst/ignoring-ramdisk +Type: error +_Description: Ramdisk configuration must be updated + Kernel packages will no longer run a specific ramdisk creator. The + ramdisk creator package must install a script in + /etc/kernel/postinst.d, and you should remove the line beginning + 'ramdisk =' from /etc/kernel-img.conf. --- linux-2.6-3.0.0.orig/debian/templates/temp.image.plain/prerm +++ linux-2.6-3.0.0/debian/templates/temp.image.plain/prerm @@ -0,0 +1,200 @@ +#! /usr/bin/perl +# +use strict; +use warnings; +use Debconf::Client::ConfModule qw(:all); +version('2.0'); +my $capb=capb("backup"); + +$|=1; +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; +my $no_symlink = ""; +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $kimage = "=K"; +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $package_name = "linux-image-$version"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/boot/"; +my $CONF_LOC = '/etc/kernel-img.conf'; + +# Variables used +my $image=''; +my $ret=0; +my $seen=''; +my $answer=''; +my $running = ''; +my $WouldInvalidate = 0; + +if ($ARGV[0] && ($ARGV[0] =~ /remove/ || $ARGV[0] =~ /upgrade/)) { + if (-l "/usr/doc/linux-image-$version") { + unlink "/usr/doc/linux-image-$version"; + } +} + +# Ignore all invocations uxcept when called on to remove +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /do_symlinks\s*=\s*(no|false|0)\s*$/i; + $no_symlink = "" if /no_symlinks\s*=\s*(no|false|0)\s*$/i; + $link_in_boot = "" if /link_in_boot\s*=\s*(no|false|0)\s*$/i; + $do_boot_enable = '' if /do_boot_enable\s*=\s*(no|false|0)\s*$/i; + $use_hard_links = '' if /use_hard_links\s*=\s*(no|false|0)\s*$/i; + $minimal_swap = '' if /minimal_swap\s*=\s*(no|false|0)\s*$/i; + $ignore_depmod_err = '' if /ignore_depmod_err\s*=\s*(no|false|0)\s*$/i; + $relink_build_link = '' if /relink_build_link\s*=\s*(no|false|0)\s*$/i; + $force_build_link = '' if /force_build_link\s*=\s*(no|false|0)\s*$/i; + + + $do_symlink = "Yes" if /do_symlinks\s*=\s*(yes|true|1)\s*$/i; + $no_symlink = "Yes" if /no_symlinks\s*=\s*(yes|true|1)\s*$/i; + $link_in_boot = "Yes" if /link_in_boot\s*=\s*(yes|true|1)\s*$/i; + $do_boot_enable = "Yes" if /do_boot_enable\s*=\s*(yes|true|1)\s*$/i; + $use_hard_links = "Yes" if /use_hard_links\s*=\s*(yes|true|1)\s*$/i; + $minimal_swap = 'Yes' if /minimal_swap\s*=\s*(yes|true|1)\s*$/i; + $ignore_depmod_err = 'Yes' if /ignore_depmod_err\s*=\s*(yes|true|1)\s*$/i; + $relink_build_link = 'Yes' if /relink_build_link\s*=\s*(yes|true|1)\s*$/i; + $force_build_link = 'Yes' if /force_build_link\s*=\s*(yes|true|1)\s*$/i; + + $image_dest = "$1" if /image_dest\s*=\s*(\S+)/i; + $prerm_hook = "$1" if /prerm_hook\s*=\s*(\S+)/i; + } + close CONF; + } +} + + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +#check to see if we are trying to remove a running kernel +# if so we abort right now. +chop($running=`uname -r`); +if ($running eq $version) { + my $question = "${package_name}/prerm/removing-running-kernel-$version"; + + ($ret,$seen) = fset ("$question", 'seen', 'false'); + die "Error setting debconf flags in $question: $seen" if $ret; + + $ret = subst("$question", 'running', "$running"); + die "Error setting debconf substitutions in $question: $seen" if $ret; + + ($ret,$seen) = input('critical', "$question"); + if ($ret && $ret != 30 ) { + die "Error setting debconf question $question: $seen"; + } + + ($ret,$seen) = go (); + if ($ret && $ret != 30 ) { + die "Error asking debconf question $question: $seen"; + } + + ($ret,$answer) = get("$question"); + die "Error retreiving answer for $question: $answer" if $ret; + + if ($answer =~ /^(y|t)/i) { + exit 1; #Operation not permitted + } + else { + print STDERR "Ok, proceeding with removing running kernel image.\n"; + } +} + +#Now, they have an alternate kernel which they are currently running + +chdir("/") or die "could not chdir to /:$!\n"; + + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if (-x "$prerm_hook") { + &run_hook("prerm", $prerm_hook); +} +if (-d "/etc/kernel/prerm.d") { + print STDERR "Examining /etc/kernel/prerm.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version /etc/kernel/prerm.d") && + die "Failed to process /etc/kernel/prerm.d"; +} +if (-d "/etc/kernel/prerm.d/$version") { + print STDERR "Examining /etc/kernel/prerm.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version " . + "/etc/kernel/prerm.d/$version") && + die "Failed to process /etc/kernel/prerm.d/$version"; +} + +exit 0; +__END__ --- linux-2.6-3.0.0.orig/debian/templates/temp.image.plain/postinst +++ linux-2.6-3.0.0/debian/templates/temp.image.plain/postinst @@ -0,0 +1,790 @@ +#! /usr/bin/perl +# +use strict; +use warnings; +use Cwd 'abs_path'; +use Debconf::Client::ConfModule qw(:all); +use POSIX (); +version('2.0'); +my $capb = capb('backup', 'escape'); + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; +my $no_symlink = ""; +my $do_symlink = "Yes"; # target machine defined +my $kimage = "=K"; +my $initrd = "=I"; # initrd kernel +my $mkimage = ""; # command to generate the initrd image +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_src_link = 'YES'; # There is no harm in checking the link +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = ''; +my $package_name = "linux-image-$version"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/boot/"; +my $have_conffile = ""; + +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; + +# Ignore all invocations except when called on to configure. +exit 0 unless $ARGV[0] =~ /configure/; + +my $DEBUG = 0; + +# Do some preliminary sanity checks here to ensure we actually have an +# valid image dir +chdir('/') or die "could not chdir to /:$!\n"; +die "Internal Error: ($realimageloc) is not a directory!\n" + unless -d $realimageloc; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /do_symlinks\s*=\s*(no|false|0)\s*$/i; + $no_symlink = "" if /no_symlinks\s*=\s*(no|false|0)\s*$/i; + $link_in_boot = "" if /link_in_boot\s*=\s*(no|false|0)\s*$/i; + $use_hard_links = '' if /use_hard_links\s*=\s*(no|false|0)\s*$/i; + $minimal_swap = '' if /minimal_swap\s*=\s*(no|false|0)\s*$/i; + $ignore_depmod_err = '' if /ignore_depmod_err\s*=\s*(no|false|0)\s*$/i; + $relink_src_link = '' if /relink_src_link\s*=\s*(no|false|0)\s*$/i; + $relink_build_link = '' if /relink_build_link\s*=\s*(no|false|0)\s*$/i; + $force_build_link = '' if /force_build_link\s*=\s*(no|false|0)\s*$/i; + + $do_symlink = "Yes" if /do_symlinks\s*=\s*(yes|true|1)\s*$/i; + $no_symlink = "Yes" if /no_symlinks\s*=\s*(yes|true|1)\s*$/i; + $link_in_boot = "Yes" if /link_in_boot\s*=\s*(yes|true|1)\s*$/i; + $use_hard_links = "Yes" if /use_hard_links\s*=\s*(yes|true|1)\s*$/i; + $minimal_swap = 'Yes' if /minimal_swap\s*=\s*(yes|true|1)\s*$/i; + $ignore_depmod_err = 'Yes' if /ignore_depmod_err\s*=\s*(yes|true|1)\s*$/i; + $relink_src_link = 'Yes' if /relink_src_link\s*=\s*(yes|true|1)\s*$/i; + $relink_build_link = 'Yes' if /relink_build_link\s*=\s*(yes|true|1)\s*$/i; + $force_build_link = 'Yes' if /force_build_link\s*=\s*(yes|true|1)\s*$/i; + + $image_dest = "$1" if /image_dest\s*=\s*(\S+)/i; + $postinst_hook = "$1" if /postinst_hook\s*=\s*(\S+)/i; + $mkimage = "$1" if /mkimage\s*=\s*(.+)$/i; + $ramdisk = "$1" if /ramdisk\s*=\s*(.+)$/i; + } + close CONF; + $have_conffile = "Yes"; + } +} + + +if ($link_in_boot) { + $image_dest = $realimageloc; +} + +# Tack on at least one trainling / +$image_dest = "$image_dest/"; +$image_dest =~ s|^/*|/|o; +$image_dest =~ s|/+$|/|o; + +if (! -d "$image_dest") { + die "Expected Image Destination dir ($image_dest) to be a valid directory!\n"; +} + +# sanity +if ($do_symlink && $no_symlink) { + warn "Both do_symlinks and no_symlinks options enabled; disabling no_symlinks\n"; + $no_symlink = 0; +} + +# most of our work is done in $image_dest (nominally /) +chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +die "Internal Error: Could not find image (" . $realimageloc + . "$kimage-$version)\n" unless -e $realimageloc + . "$kimage-$version"; + + +###################################################################### +## Fix the build link +###################################################################### +sub fix_build_link { + return unless -d "$modules_base/$version"; + # if we saved a build link in preinst, restore the link + if (! -e "$modules_base/$version/build" && + -l "$modules_base/$version/build.save" ) { + rename("$modules_base/$version/build.save", "$modules_base/$version/build") || + die "failed to move $modules_base/$version/build:$!"; + } + if ($relink_build_link || $force_build_link) { + my $build_target; + my $real_target = ''; + if (-l "$modules_base/$version/build") { + $build_target = readlink "$modules_base/$version/build"; + } else { + return; + } + # Determine what the real file name is, and test that for existence + $real_target = abs_path($build_target) if defined($build_target); + if (!defined($build_target) || ! -d "$real_target") { # Danglink link + my $num = unlink "$modules_base/$version/build"; + if ($num != 1) { + warn "error unlinking $modules_base/$version/build"; + } else { + if ($force_build_link || -d "/usr/src/linux-headers-$version") { + my $result = symlink ("/usr/src/linux-headers-$version", + "$modules_base/$version/build"); + if (! $result) { + warn "Could not link /usr/src/linux-headers-$version to $modules_base/$version/build:$!" + } + } + } + } + } +} + +if ($relink_build_link || $force_build_link) { + &fix_build_link(); +} +###################################################################### +## Fix the source link +###################################################################### +sub fix_source_link { + return unless -d "$modules_base/$version"; + if ($relink_src_link) { + my $source_target; + my $real_target = ''; + + if (-l "$modules_base/$version/source") { + $source_target = readlink "$modules_base/$version/source"; + } else { + return; + } + # Determine what the real file name is, and test that for existence + $real_target = abs_path($source_target) if defined($source_target); + if (!defined($source_target) || ! -d "$real_target") { # Danglink link + my $num = unlink "$modules_base/$version/source"; + if ($num != 1) { + warn "error unlinking $modules_base/$version/source"; + } + } + } +} + +if ($relink_src_link) { + &fix_source_link(); +} +###################################################################### +###################################################################### +########### Test whether a relative symlinkwould be OK ####### +###################################################################### +###################################################################### +sub test_relative { + my %params = @_; + my $cwd; + + die "Internal Error: Missing Required paramater 'Old Dir' " + unless $params{'Old Dir'}; + die "Internal Error: Missing Required paramater New Dir' " + unless $params{'New Dir'}; + + + die "Internal Error: No such dir $params{'Old Dir'} " + unless -d $params{'Old Dir'}; + die "Internal Error: No such dir $params{'New Dir'} " + unless -d $params{'New Dir'}; + + warn "Test relative: testing $params{'Old Dir'} -> $params{'New Dir'}" + if $DEBUG; + chomp($cwd = `pwd`); + chdir ($params{'New Dir'}) or die "Could not chdir to $params{'New Dir'}:$!"; + my $ok = 0; + $params{'Old Dir'} =~ s|^/*||o; + if (-d $params{'Old Dir'} ) { + if (defined $params{'Test File'}) { + if (-e $params{'Old Dir'} . $params{'Test File'}) { + $ok = 1; + } + } else { + $ok = 1; # well, backward compatibility + } + } + chdir ($cwd) or die "Could not chdir to $params{'New Dir'}:$!"; + return $ok; +} + + +sub spath { + my %params = @_; + + die "Missing Required paramater 'Old'" unless $params{'Old'}; + die "Missing Required paramater 'New'" unless $params{'New'}; + + my @olddir = split '/', `readlink -q -m $params{'Old'}`; + my @newdir = split '/', `readlink -q -m $params{'New'}`; + my @outdir = @olddir; + + my $out = ''; + my $i; + for ($i = 0; $i <= $#olddir && $i <= $#newdir; $i++) { + $out++ if ($olddir[$i] ne $newdir[$i]); + shift @outdir unless $out; + unshift @outdir, ".." if $out; + } + if ($#newdir > $#olddir) { + for ($i=0; $i < $#newdir; $i++) { + unshift @outdir, ".."; + } + } + return join ('/', @outdir); +} + +# This routine is invoked if there is a symbolic link in place +# in $image_dest/$kimage -- so a symlink exists in the destination. +# What we are trying to determine is if we need to move the symbolic link over +# to the the .old location +sub move_p { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + my $force_move = 0; + warn "Move?: kimage=$kimage, image_dest=$image_dest, \n" . + "\timage_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink) { + # we do not want links, yet we have a symbolic link here! + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though no_symlink is defined\n" if $no_symlink; + # make sure we change this state of affairs + $force_move = 1; + return $force_move; + } + + warn "DEBUG: OK. We found symlink, and we should have a symlink here.\n" + if $DEBUG; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + my $target = `readlink -q -m "${realimageloc}${kimage}-$version"`; + $real_target = abs_path($vmlinuz_target) if defined($vmlinuz_target); + + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a dangling link" . + "to $real_target\n"; + $force_move = 1; + return $force_move; + } + + + warn "DEBUG: The link $kimage points to ($vmlinuz_target)\n" if $DEBUG; + warn "DEBUG: ($vmlinuz_target) is really ($real_target)\n" if $DEBUG; + my $cwd; + chomp ($cwd=`pwd`); + if ($vmlinuz_target !~ m|^/|o) { + $vmlinuz_target = $cwd . "/" . $vmlinuz_target; + $vmlinuz_target =~ s|/+|/|o; + } + $vmlinuz_target = `readlink -q -m $vmlinuz_target`; + + if ("$vmlinuz_target" ne "$target") { + warn "DEBUG: We need to handle this.\n" if $DEBUG; + if ($minimal_swap) { + warn "DEBUG: Minimal swap.\n" if $DEBUG; + if (-l "$kimage.old") { + warn "DEBUG: There is an old link at $kimage.old\n" if $DEBUG; + my $old_target = readlink "$kimage.old"; + my $real_old_target = ''; + $real_old_target=abs_path($old_target) if defined ($old_target); + + if ($real_old_target && -f "$real_old_target") { + if ($old_target !~ m|^/|o) { + $old_target = $cwd . "/" . $old_target; + $old_target =~ s|/+|/|o; + } + $old_target = `readlink -q -m $old_target`; + if ("$old_target" ne "$target") { + $force_move = 1; + warn "DEBUG: Old link ($old_target) does not point to us ($target)\n" + if $DEBUG; + } + else { # The .old points to the current + warn "$kimage.old --> $target -- doing nothing"; + $force_move = 0; + } + } + else { + warn "DEBUG: Well, the old link does not exist -- so we move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: No .old link -- OK to move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: ok, minimal swap is no-- so we move.\n" + if $DEBUG; + $force_move = 1; + } + } + else { # already have proper link + warn "$kimage($vmlinuz_target) points to $target ($real_target) -- doing nothing"; + $force_move = 0; + } + return $force_move; +} + + +# This routine moves the symbolic link around (/vmlinuz -> /vmlinuz.old) +# It pays attention to whether we should the fact whether we should be using +# hard links or not. +sub really_move_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "really_move_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # don't clobber $kimage.old quite yet + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + my $Old = $src_dir; + my $cwd; + + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + if (! link("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to link ${Old}${image_name} to " . + "${image_dest}${kimage}.\n"); + } + } + else { + if (! symlink("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to symbolic-link ${Old}${image_name} to " . + "${image_dest}${kimage}.\n"); + } + } + + # Ok, now we may clobber the previous .old file + if (-l "$kimage.old" || ! -e "$kimage.old" ) { + rename("$kimage.$$", "$kimage.old"); + } + else { + warn "$kimage.old is not a symlink, not clobbering\n"; + warn "rm $kimage.$$"; + } +} + +# This routine handles a request to do symlinks, but there is no +# symlink file already there. Either we are supposed to use copy, or we are +# installing on a pristine system, or the user does not want symbolic links at +# all. We use a configuration file to tell the last two cases apart, creating +# a config file if needed. +sub handle_missing_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_missing_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink) { + my $ret = system("cp -a --backup=t " . $realimageloc . + "$image_name " . " $kimage"); + if ($ret) { + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + + if (! $no_symlink && $do_symlink =~ /Yes/i) { + my $Old = $realimageloc; + my $New = $image_dest; + my $Name = "$image_name"; + my $Link_Dest = "$kimage"; + + if (test_relative ('Old Dir' => $Old, + 'New Dir' => $New, + 'Test File' => $Name)) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$New" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + symlink($Old . "$Name", "$Link_Dest") || + die("Failed to symbolic-link ${Old}$Name to $Link_Dest.\n"); + + } +} + +# This routine handles the rest of the cases, where the user has requested +# non-traditional handling, like using cp or hard links. +sub handle_non_symlinks { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_non_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Save the current image. We do this in all four cases + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + + ##,#### + # case One + #`#### + if ($no_symlink) { + # Maybe /$image_dest is on a dos system? + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + ##,#### + # case Two + #`#### + elsif ($use_hard_links =~ m/YES/i ) { + # Ok then. this ought to be a hard link, and hence fair game + # don't clobber $kimage.old quite yet + my $Old = $realimageloc; + my $cwd; + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if (! link($Old . "$image_name", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to hard link " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + ##,#### + # case Three + #`#### + else { + # We just use cp + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + # Ok, now we may clobber the previous .old file + rename("$kimage.$$", "$kimage.old") if -e "$kimage.$$"; +} + +# This routine is responsible for setting up the symbolic links +# So, the actual kernel image lives in +# $realimageloc/$image_name (/boot/vmlinuz-2.6.12). +# This routine creates symbolic links in $image_dest/$kimage (/vmlinuz) +sub image_magic { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = "$kimage-$version"; + my $src_dir = $realimageloc; + warn "image_magic: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if (-l "$kimage") { # There is a symbolic link + warn "DEBUG: There is a symlink for $kimage\n" if $DEBUG; + my $force_move = move_p($kimage, $image_dest, $image_name, $src_dir); + + if ($force_move) { + really_move_link($kimage, $image_dest, $image_name, $src_dir); + } + } + elsif (! -e "$kimage") { + # Hmm. Pristine system? How can that be? Installing from scratch? + # Or maybe the user does not want a symbolic link here. + # Possibly they do not want a link here. (we should be in / + # here[$image_dest, really] + handle_missing_link($kimage, $image_dest, $image_name, $src_dir); + } + elsif (-e "$kimage" ) { + # OK, $kimage exists -- but is not a link + handle_non_symlinks($kimage, $image_dest, $image_name, $src_dir); + } +} + +###################################################################### +###################################################################### +###################################################################### +###################################################################### + +sub do_modules { + print STDERR "Running depmod.\n"; + my $ret = system("depmod -a -F $realimageloc/System.map-$version $version"); + my $exit_value = $? >> 8; + my $signal_num = $? & 127; + my $dumped_core = $? & 128; + if ($ret) { + my $seen; + my $answer; + my $question; + $question = "${package_name}/postinst/depmod-error-initrd-$version"; + + ($ret,$seen) = fset ("$question", 'seen', 'false'); + die "Error setting debconf flags in $question: $seen" if $ret; + + $ret = subst("$question", 'modules_base', "$modules_base"); + die "Error setting debconf substitutions in $question: $seen" if $ret; + + $ret = subst("$question", 'SIGNAL', ", and got a signal $signal_num"); + die "Error setting debconf substitutions in $question: $seen" if $ret; + + if ($dumped_core) { + $ret = subst("$question", 'CORE', ", and dumped core"); + die "Error setting debconf substitutions in $question: $seen" if $ret; + } + else { + $ret = subst("$question", 'CORE', " "); + die "Error setting debconf substitutions in $question: $seen" if $ret; + } + + ($ret,$seen) = input('medium', "$question"); + if ($ret && $ret != 30 ) { + die "Error setting debconf question $question: $seen"; + } + + ($ret,$seen) = go (); + if ($ret && $ret != 30 ) { + die "Error asking debconf question $question: $seen"; + } + + ($ret,$answer) = get("$question"); + die "Error retreiving answer for $question: $answer" if $ret; + + if (! $ignore_depmod_err) { + if ($answer =~ /^(y|t)/i) { + exit(1); + } + else { + print STDERR "Ok, continuing as directed\n"; + } + } + } + + # If we are installing (not upgrading) a package for a newer + # upstream version than that of the running kernel, check whether + # the user might be missing necessary firmware, perhaps because + # it has now been removed from the kernel. + # + # We base this check on the modules used in the running kernel and + # the corresponding (by name) modules in the new kernel. This is + # not entirely accurate because: + # 1. A device may now be handled by a module with a different name, + # leading us to miss the dependency + # 2. A device may be handled by a module that needs firmware only + # for some other device, leading us to claim a dependency wrongly + + if (!defined($ARGV[1]) || $ARGV[1] eq '') { + sub version_code { + my $version = shift; + $version =~ s/^2\.(\d+)\.(\d+).*/2*65536 + $1*256 + $2/e + or $version =~ s/^(\d+)\.(\d+).*/$1*65536 + $2*256/e + or $version = 0; + return $version; + } + (undef, undef, my $running_version) = POSIX::uname(); + + if (version_code($version) > version_code($running_version)) { + my $missing = ''; + my %module_paths; + open(DEP, "<$modules_base/$version/modules.dep") or return; + while () { + if (m|(.*/([^/]*)\.ko):|) { + my ($path, $module) = ($1, $2); + $module =~ s/-/_/g; + $module_paths{$module} = $path; + } + } + close(DEP); + open(MODULES, ') { + s/ .*//s; + my $module = $_; + my $module_path = $module_paths{$module}; + if (defined($module_path)) { + my $first = 1; + if ($module_path !~ m|^/|) { + $module_path = "$modules_base/$version/$module_path"; + } + open(MODINFO, "modinfo -F firmware '$module_path' |"); + while () { + chomp; + my $firmware = $_; + unless (-e "/lib/firmware/$firmware" || + -e "/lib/firmware/$version/$firmware") { + if ($first) { + $missing .= "\\n" if $missing ne ''; + $missing .= "$module: "; + $first = 0; + } else { + $missing .= ', '; + } + $missing .= $firmware; + } + } + close(MODINFO); + } + } + close(MODULES); + + if ($missing ne '') { + my ($ret, $seen); + my $text = "${package_name}/postinst/missing-firmware-${version}"; + + ($ret, $seen) = subst($text, 'runningversion', $running_version); + die "Error setting debconf substitutions in $text: $seen" if $ret; + + ($ret, $seen) = subst($text, 'version', $version); + die "Error setting debconf substitutions in $text: $seen" if $ret; + + ($ret, $seen) = subst($text, 'missing', $missing); + die "Error setting debconf substitutions in $text: $seen" if $ret; + + ($ret, $seen) = input('high', $text); + if ($ret && $ret != 30) { + die "Error setting debconf question $text: $seen"; + } + + ($ret, $seen) = go(); + if ($ret && $ret != 30) { + die "Error asking debconf question $text: $seen"; + } + } + } + } +} + +# We may not have any modules installed +if (-d "$modules_base/$version") { + &do_modules(); +} + + +# Warn if we are ignoring the old ramdisk setting +if ($ramdisk =~ /\S/) { + my ($question, $ret, $seen); + $question = "${package_name}/postinst/ignoring-ramdisk"; + ($ret,$seen) = input('high', "$question"); + die "Error setting debconf question $question: $seen" if $ret && $ret != 30; + ($ret,$seen) = go(); + die "Error asking debconf question $question: $seen" if $ret && $ret != 30; +} + +# Only change the symlinks if we are not being upgraded +if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//o) { + image_magic($kimage, $image_dest); + if ($initrd) { + image_magic("initrd.img", $image_dest); + } +} +else { + if (! -e "$kimage") { + handle_missing_link($kimage, $image_dest, "$kimage-$version", + $realimageloc); + } + if ($initrd && ! -e "initrd.img") { + handle_missing_link("initrd.img", $image_dest, "initrd.img-$version", + $realimageloc); + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; +sub run_hook { + my $type = shift; + my $script = shift; + + print STDERR "Running $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if ($postinst_hook) { + &run_hook("postinst", $postinst_hook); +} + +if (-d "/etc/kernel/postinst.d") { + print STDERR "Examining /etc/kernel/postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d") && + die "Failed to process /etc/kernel/postinst.d"; +} + +if (-d "/etc/kernel/postinst.d/$version") { + print STDERR "Examining /etc/kernel/postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d/$version") && + die "Failed to process /etc/kernel/postinst.d/$version"; +} + +exit 0; + +__END__ --- linux-2.6-3.0.0.orig/debian/templates/temp.image.plain/postrm +++ linux-2.6-3.0.0/debian/templates/temp.image.plain/postrm @@ -0,0 +1,296 @@ +#! /usr/bin/perl +# +use strict; +use warnings; +use Cwd 'abs_path'; + +# Debconf may not be around here. +my $have_debconf = 0; +my $capb; + +eval {require Debconf::Client::ConfModule;}; +if ( ! $@ ) +{ + $have_debconf++; + import Debconf::Client::ConfModule ':all'; + version('2.0'); + $capb=capb("backup"); +} + +$|=1; +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; +my $no_symlink = ""; +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $kimage = "=K"; +my $initrd = "=I"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postrm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # we shall not create a dangling link +my $kernel_arch = "=B"; +my $ramdisk = "=MK"; # List of tools to create initial ram fs. +my $package_name = "linux-image-$version"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/boot/"; +my $CONF_LOC = '/etc/kernel-img.conf'; + +chdir('/') or die "could not chdir to /:$!\n"; + + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /do_symlinks\s*=\s*(no|false|0)\s*$/i; + $no_symlink = "" if /no_symlinks\s*=\s*(no|false|0)\s*$/i; + $link_in_boot = "" if /link_in_boot\s*=\s*(no|false|0)\s*$/i; + $do_boot_enable = '' if /do_boot_enable\s*=\s*(no|false|0)\s*$/i; + $use_hard_links = '' if /use_hard_links\s*=\s*(no|false|0)\s*$/i; + $minimal_swap = '' if /minimal_swap\s*=\s*(no|false|0)\s*$/i; + $ignore_depmod_err = '' if /ignore_depmod_err\s*=\s*(no|false|0)\s*$/i; + $relink_build_link = '' if /relink_build_link\s*=\s*(no|false|0)\s*$/i; + $force_build_link = '' if /force_build_link\s*=\s*(no|false|0)\s*$/i; + + $do_symlink = "Yes" if /do_symlinks\s*=\s*(yes|true|1)\s*$/i; + $no_symlink = "Yes" if /no_symlinks\s*=\s*(yes|true|1)\s*$/i; + $link_in_boot = "Yes" if /link_in_boot\s*=\s*(yes|true|1)\s*$/i; + $use_hard_links = "Yes" if /use_hard_links\s*=\s*(yes|true|1)\s*$/i; + $minimal_swap = 'Yes' if /minimal_swap\s*=\s*(yes|true|1)\s*$/i; + $ignore_depmod_err = 'Yes' if /ignore_depmod_err\s*=\s*(yes|true|1)\s*$/i; + $relink_build_link = 'Yes' if /relink_build_link\s*=\s*(yes|true|1)\s*$/i; + $force_build_link = 'Yes' if /force_build_link\s*=\s*(yes|true|1)\s*$/i; + + $image_dest = "$1" if /image_dest\s*=\s*(\S+)/i; + $postrm_hook = "$1" if /postrm_hook\s*=\s*(\S+)/i; + } + close CONF; + } +} + +if ($link_in_boot) { + $image_dest = $realimageloc; +} + +$image_dest = "$image_dest/"; +$image_dest =~ s|/+$|/|o; + +# The destdir may be gone by now. +if (-d "$image_dest") { + chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; +} + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub remove_sym_link { + my $bad_image = $_[0]; + + warn "Removing symbolic link $bad_image \n"; + warn "You may need to re-run your boot loader\n"; + # Remove the dangling link + unlink "$bad_image"; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub CanonicalizePath { + my $path = join '/', @_; + my @work = split '/', $path; + my @out; + my $is_absolute; + + if (@work && $work[0] eq "") { $is_absolute = 1; shift @work; } + + while (@work) { + my $seg = shift @work; + if ($seg eq "." || $seg eq "") { + } elsif ($seg eq "..") { + if (@out && $out[-1] ne "..") { + pop @out; + } else { + # Leading "..", or "../..", etc. + push @out, $seg; + } + } else { + push @out, $seg; + } + } + + unshift @out, "" if $is_absolute; + return join('/', @out); +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# This removes dangling symlinks. What do we do about hard links? Surely a +# something with the nane $image_dest . "$kimage" ought not to be left behind? +sub image_magic { + my $kimage = $_[0]; + my $image_dest = $_[1]; + + if (-l "$kimage") { + # There is a symbolic link + my $force_move = 0; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + $real_target = abs_path($vmlinuz_target) if defined ($vmlinuz_target); + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a damaged link\n"; + # Remove the dangling link + &remove_sym_link("$kimage"); + } + else { + my $canonical_target = CanonicalizePath("$vmlinuz_target"); + if (! -e $canonical_target) { + warn "The link " . $image_dest . "$kimage is a dangling link\n"; + &remove_sym_link("$kimage"); + } + } + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + warn "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + warn "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if ($postrm_hook) { + &run_hook("postrm", $postrm_hook); +} +if (-d "/etc/kernel/postrm.d") { + warn "Examining /etc/kernel/postrm.d .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d") && + die "Failed to process /etc/kernel/postrm.d"; +} +if (-d "/etc/kernel/postrm.d/$version") { + warn "Examining /etc/kernel/postrm.d/$version .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d/$version") && + die "Failed to process /etc/kernel/postrm.d/$version"; +} + +# purge initramfs and related +if ($ARGV[0] !~ /upgrade/) { + if (-f $realimageloc . "initrd.img-$version") { + unlink $realimageloc . "initrd.img-$version"; + } + if (-f $realimageloc . "initrd.img-$version.bak") { + unlink $realimageloc . "initrd.img-$version.bak"; + } + if (-f "/var/lib/initramfs-tools/$version") { + unlink "/var/lib/initramfs-tools/$version"; + } + # check and remove damaged and dangling symlinks + image_magic($kimage, $image_dest); + image_magic($kimage . ".old", $image_dest); + image_magic("initrd.img", $image_dest) if $initrd; + image_magic("initrd.img.old", $image_dest) if $initrd; +} + + +# Ignore all invocations except when called on to purge. +exit 0 unless $ARGV[0] =~ /purge/; + +my $ret = purge(); + +my @files_to_remove = qw{ + modules.dep modules.isapnpmap modules.pcimap + modules.usbmap modules.parportmap + modules.generic_string modules.ieee1394map + modules.ieee1394map modules.pnpbiosmap + modules.alias modules.ccwmap modules.inputmap + modules.symbols build source modules.ofmap + modules.seriomap modules.alias.bin + modules.dep.bin modules.symbols.bin + modules.softdep modules.devname + }; + +foreach my $extra_file (@files_to_remove) { + if (-f "/lib/modules/$version/$extra_file") { + unlink "/lib/modules/$version/$extra_file"; + } +} + +if (-d "/lib/modules/$version" ) { + system ("rmdir", "/lib/modules/$version"); +} + +exit 0; + +__END__ --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-model +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-model @@ -0,0 +1,55 @@ +grep_model() { + case "$(uname -m)" in + alpha) + egrep '^(system (type|variation|revision)|platform string)\b' /proc/cpuinfo + ;; + arm*) + egrep '^(Processor|Hardware|Revision)\b' /proc/cpuinfo + ;; + i386|ia64|x86_64) + local found= + for name in {sys,product,chassis,bios,board}_{vendor,name,version}; do + if [ -f /sys/class/dmi/id/$name ]; then + echo -n "$name: " + cat /sys/class/dmi/id/$name + found=y + fi + done + test -n "$found" + ;; + mips|mips64) + egrep '^(system type|cpu model)\b' /proc/cpuinfo + ;; + parisc|parisc64) + egrep '^(model|[hs]version)\b' /proc/cpuinfo + ;; + ppc|ppc64) + egrep -i '^(board|machine|model|motherboard|platform|revision|vendor)\b' /proc/cpuinfo + ;; + s390|s390x) + egrep '^processor\b' /proc/cpuinfo + ;; + sparc|sparc64) + egrep '^(cpu|fpu|pmu|prom|type)\b' /proc/cpuinfo + ;; + sh4|sh4a) + egrep '^(machine|cpu)\b' /proc/cpuinfo + ;; + *) + false + ;; + esac +} + +add_model() { + local found= + echo '** Model information' >&3 + grep_model >&3 2>/dev/null || echo "not available" >&3 + echo >&3 +} + +ask_model() { + # This is still valid as long as the bug is being reported on the same + # system. + test $same_system = nop || add_model +} --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-1cmdline +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-1cmdline @@ -0,0 +1,9 @@ +add_1cmdline() { + echo '** Command line:' >&3 + cat /proc/cmdline >&3 + echo >&3 +} + +ask_1cmdline() { + true +} --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/control +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/control @@ -0,0 +1,2 @@ +Submit-As: linux-2.6 +Package-Status: firmware-bnx2 firmware-bnx2x firmware-ipw2x00 firmware-ivtv firmware-iwlwifi firmware-linux firmware-linux-nonfree firmware-qlogic firmware-ralink xen-hypervisor --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-dmesg +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-dmesg @@ -0,0 +1,12 @@ +add_dmesg() { + echo '** Kernel log:' >&3 + dmesg | tail -n 100 >&3 + echo >&3 +} + +ask_dmesg() { + # Remind the user to attach the kernel log. This should also trigger + # a reminder in some MUAs if the user tries to send without it. + echo '** Kernel log: boot messages should be attached' >&3 + echo >&3 +} --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-1tainted +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-1tainted @@ -0,0 +1,49 @@ +TAINT_PROPRIETARY_MODULE=0 +TAINT_FORCED_MODULE=1 +TAINT_UNSAFE_SMP=2 +TAINT_FORCED_RMMOD=3 +TAINT_MACHINE_CHECK=4 +TAINT_BAD_PAGE=5 +TAINT_USER=6 +TAINT_DIE=7 +TAINT_OVERRIDDEN_ACPI_TABLE=8 +TAINT_WARN=9 +TAINT_CRAP=10 +TAINT_FIRMWARE_WORKAROUND=11 +TAINT_OOT_MODULE=12 + +_check() { + if [ $(($tainted & 1<<$1)) -ne 0 ]; then + result_short="$result_short$2" + result_long="$result_long * $3\n" + fi +} + +add_1tainted() { + tainted=$(cat /proc/sys/kernel/tainted) + if [ "$tainted" -gt 0 ]; then + local result_short result_long + _check $TAINT_PROPRIETARY_MODULE 'P' 'Proprietary module has been loaded.' + _check $TAINT_FORCED_MODULE 'F' 'Module has been forcibly loaded.' + _check $TAINT_UNSAFE_SMP 'S' 'SMP with CPUs not designed for SMP.' + _check $TAINT_FORCED_RMMOD 'R' 'User forced a module unload.' + _check $TAINT_MACHINE_CHECK 'M' 'System experienced a machine check exception.' + _check $TAINT_BAD_PAGE 'B' 'System has hit bad_page.' + _check $TAINT_USER 'U' 'Userspace-defined naughtiness.' + _check $TAINT_DIE 'D' 'Kernel has oopsed before.' + _check $TAINT_OVERRIDDEN_ACPI_TABLE 'A' 'ACPI table overridden.' + _check $TAINT_WARN 'W' 'Taint on warning.' + _check $TAINT_CRAP 'C' 'Module from drivers/staging has been loaded.' + _check $TAINT_FIRMWARE_WORKAROUND 'I' 'Working around severe firmware bug.' + _check $TAINT_OOT_MODULE 'O' 'Out-of-tree module has been loaded.' + echo "** Tainted: $result_short ($tainted)" >&3 + printf "$result_long" >&3 + else + echo '** Not tainted' >&3 + fi + echo >&3 +} + +ask_1tainted() { + true +} --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-usb +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-usb @@ -0,0 +1,11 @@ +add_usb() { + echo '** USB devices:' >&3 + lsusb >&3 2>/dev/null || echo 'not available' >&3 + echo >&3 +} + +ask_usb() { + # This information shouldn't vary much between kernel versions, so + # include it anyway. + test $same_system = nop || add_usb +} --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-pci +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-pci @@ -0,0 +1,16 @@ +add_pci() { + echo '** PCI devices:' >&3 + if command -v lspci > /dev/null; then + lspci -nnvv >&3 + else + echo 'not available' >&3 + fi + echo >&3 +} + +ask_pci() { + # This information shouldn't vary much between kernel versions, so + # include it anyway. + test $same_system = nop || add_pci +} + --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/script +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/script @@ -0,0 +1,26 @@ +#!/bin/bash +set -e + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +dir="$(dirname $0)" + +. "$dir"/info + +for file in "$dir"/include-*; do + name="$(echo $file | sed -e 's,^.*/include-,,')" + hooks+=($name) + . "$file" +done + +if [ "$RELEASE" == "$(uname -r)" ]; then + for hook in ${hooks[@]}; do + add_$hook + done +else + yesno "Does the bug you are reporting affect this computer? " yep + same_system=$REPLY + for hook in ${hooks[@]}; do + ask_$hook + done +fi --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-0version +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-0version @@ -0,0 +1,9 @@ +add_0version() { + echo '** Version:' >&3 + cat /proc/version >&3 + echo >&3 +} + +ask_0version() { + true +} --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-network +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-network @@ -0,0 +1,44 @@ +_add_etc_network_interfaces() { + echo '** Network interface configuration:' >&3 + # Hide passwords/keys + awk '$1 ~ /key|pass|^wpa-(anonymous|identity|phase|pin|private|psk)/ { gsub(".", "*", $2); } + $1 == "ethtool-wol" { gsub(".", "*", $3); } + !/^[[:space:]]*\#/ { print; } + ' &3 + echo >&3 +} + +add_network() { + yesno "Include network configuration and status from this computer? " nop + test $REPLY = yep || return 0 + + _add_etc_network_interfaces + echo '** Network status:' >&3 + if command -v ip >/dev/null; then + echo '*** IP interfaces and addresses:' >&3 + ip address show >&3 + echo >&3 + fi + echo '*** Device statistics:' >&3 + cat /proc/net/dev >&3 + echo >&3 + if command -v netstat >/dev/null; then + echo '*** Protocol statistics:' >&3 + netstat -s >&3 || true + echo >&3 + fi + echo '*** Device features:' >&3 + for dir in /sys/class/net/*; do + echo -n "${dir##*/}: " >&3 + cat "$dir"/features >&3 + done + echo >&3 +} + +ask_network() { + test $same_system = yep || return 0 + yesno "Include network configuration from this computer? " nop + test $REPLY = yep || return 0 + + _add_etc_network_interfaces +} --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-modules +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-modules @@ -0,0 +1,10 @@ +add_modules() { + echo '** Loaded modules:' >&3 + lsmod >&3 + echo >&3 +} + +ask_modules() { + true +} + --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/include-sound +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/include-sound @@ -0,0 +1,11 @@ +add_sound() { + [ -f /proc/asound/cards ] && return + echo '** Sound cards:' >&3 + cat /proc/asound/cards >&3 + # amixer >&3 + echo >&3 +} + +ask_sound() { + true +} --- linux-2.6-3.0.0.orig/debian/templates/image.plain.bug/presubj +++ linux-2.6-3.0.0/debian/templates/image.plain.bug/presubj @@ -0,0 +1,8 @@ +Please ensure that you are currently running the kernel version that you +are reporting on. This will allow your bug report to include useful +diagnostic information about the running kernel. + +If you are reporting that the kernel fails to boot, please use a digital +camera, serial console or netconsole to record the boot messages and +attach these to your report. You can use the kernel parameter +'boot_delay=1000' to slow down the boot messages. --- linux-2.6-3.0.0.orig/debian/templates/temp.headers.plain/postinst +++ linux-2.6-3.0.0/debian/templates/temp.headers.plain/postinst @@ -0,0 +1,26 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "=V"; + +if (-d "/etc/kernel/header_postinst.d") { + print STDERR "Examining /etc/kernel/header_postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +if (-d "/etc/kernel/header_postinst.d/$version") { + print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d/$version") && + die "Failed to process /etc/kernel/header_postinst.d/$version"; +} + +exit 0; + +__END__ --- linux-2.6-3.0.0.orig/debian/patches/bugfix/x86/Skip-looking-for-ioapic-overrides-when-ioapics-are-not-present.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/x86/Skip-looking-for-ioapic-overrides-when-ioapics-are-not-present.patch @@ -0,0 +1,47 @@ +Subject: Skip looking for ioapic overrides when ioapics are not present +Date: Sun, 06 Jun 2010 03:56:05 -0000 +From: Eric W. Biederman + +Avinash Kurup writes: + +> Hi Eric, +>     I get the following errors while booting into 2.6.35-rc1. I did not +> get these in 2.6.34 . The computer however boots and works fine, So its not +> serious but the following errors are displayed in dmesg. +> +> [    0.089969] ERROR: Unable to locate IOAPIC for GSI 13 +> [    0.090556] ERROR: Unable to locate IOAPIC for GSI 8 +> [    0.091104] ERROR: Unable to locate IOAPIC for GSI 12 +> [    0.091375] ERROR: Unable to locate IOAPIC for GSI 1 +> [    0.093195] ERROR: Unable to locate IOAPIC for GSI 4 +> [    0.094342] ERROR: Unable to locate IOAPIC for GSI 10 +> [    0.096335] ERROR: Unable to locate IOAPIC for GSI 6 + +The new warning originates from acpi_get_override_irq, which I changed to +use helper functions that warn when they fail. + +When IOAPICs and ACPI are enabled in a kernel and run on ACPI hardware +that doesn't use the ioapics the pnp acpi code calls this function, +looking for ACPI irq overrides. ACPI irq overrides exist only in the +ioapic case so this function will never succeed. So make the function +fail fast so we don't call into help functions that legitimately +complain when they fail. + +Tested-by: Avinash Kurup +Signed-off-by: "Eric W. Biederman" +[bwh: Add config condition] +--- +--- a/arch/x86/kernel/apic/io_apic.c ++++ b/arch/x86/kernel/apic/io_apic.c +@@ -4066,6 +4066,11 @@ int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity) + { + int ioapic, pin, idx; + ++#ifdef CONFIG_ACPI ++ if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC) ++ return -1; ++#endif ++ + if (skip_ioapic_setup) + return -1; + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/ia64/hardcode-arch-script-output.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/ia64/hardcode-arch-script-output.patch @@ -0,0 +1,49 @@ +diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile +index e7cbaa0..c8af869 100644 +--- a/arch/ia64/Makefile ++++ b/arch/ia64/Makefile +@@ -30,16 +30,7 @@ cflags-y := -pipe $(EXTRA) -ffixed-r13 -mfixed-range=f12-f15,f32-f127 \ + -falign-functions=32 -frename-registers -fno-optimize-sibling-calls + KBUILD_CFLAGS_KERNEL := -mconstant-gp + +-GAS_STATUS = $(shell $(srctree)/arch/ia64/scripts/check-gas "$(CC)" "$(OBJDUMP)") +-KBUILD_CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags "$(CC)" "$(OBJDUMP)" "$(READELF)") +- +-ifeq ($(GAS_STATUS),buggy) +-$(error Sorry, you need a newer version of the assember, one that is built from \ +- a source-tree that post-dates 18-Dec-2002. You can find a pre-compiled \ +- static binary of such an assembler at: \ +- \ +- ftp://ftp.hpl.hp.com/pub/linux-ia64/gas-030124.tar.gz) +-endif ++KBUILD_CPPFLAGS += -DHAVE_WORKING_TEXT_ALIGN -DHAVE_MODEL_SMALL_ATTRIBUTE -DHAVE_SERIALIZE_DIRECTIVE + + KBUILD_CFLAGS += $(cflags-y) + head-y := arch/ia64/kernel/head.o arch/ia64/kernel/init_task.o +@@ -69,7 +60,7 @@ boot := arch/ia64/hp/sim/boot + + PHONY += boot compressed check + +-all: compressed unwcheck ++all: compressed + + compressed: vmlinux.gz + +@@ -78,9 +69,6 @@ vmlinuz: vmlinux.gz + vmlinux.gz: vmlinux + $(Q)$(MAKE) $(build)=$(boot) $@ + +-unwcheck: vmlinux +- -$(Q)READELF=$(READELF) python $(srctree)/arch/ia64/scripts/unwcheck.py $< +- + archclean: + $(Q)$(MAKE) $(clean)=$(boot) + +@@ -96,7 +84,6 @@ define archhelp + echo '* compressed - Build compressed kernel image' + echo ' install - Install compressed kernel image' + echo ' boot - Build vmlinux and bootloader for Ski simulator' +- echo '* unwcheck - Check vmlinux for invalid unwind info' + endef + + archprepare: make_nr_irqs_h FORCE --- linux-2.6-3.0.0.orig/debian/patches/bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch @@ -0,0 +1,59 @@ +From 25d4d4e2d243622dfbd35a29e3fee9ce5f099fd2 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Mon, 6 Jun 2011 00:58:46 +0100 +Subject: [PATCH] nouveau: ACPI support is dependent on X86 + +The ACPI support code probably wasn't very useful on ia64, and now +depends on mxm-wmi which is definitely x86-only. + +Signed-off-by: Ben Hutchings +--- + drivers/gpu/drm/nouveau/Kconfig | 4 ++-- + drivers/gpu/drm/nouveau/Makefile | 2 ++ + drivers/gpu/drm/nouveau/nouveau_drv.h | 2 +- + 3 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig +index ca16399..5a85697 100644 +--- a/drivers/gpu/drm/nouveau/Kconfig ++++ b/drivers/gpu/drm/nouveau/Kconfig +@@ -11,8 +11,8 @@ config DRM_NOUVEAU + select FRAMEBUFFER_CONSOLE if !EXPERT + select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT + select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL && INPUT +- select ACPI_WMI if ACPI +- select MXM_WMI if ACPI ++ select ACPI_WMI if ACPI && X86 ++ select MXM_WMI if ACPI && X86 + help + Choose this option for open-source nVidia support. + +diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile +index 0583677..797b808 100644 +--- a/drivers/gpu/drm/nouveau/Makefile ++++ b/drivers/gpu/drm/nouveau/Makefile +@@ -37,6 +37,8 @@ nouveau-y := nouveau_drv.o nouveau_state.o nouveau_channel.o nouveau_mem.o \ + nouveau-$(CONFIG_DRM_NOUVEAU_DEBUG) += nouveau_debugfs.o + nouveau-$(CONFIG_COMPAT) += nouveau_ioc32.o + nouveau-$(CONFIG_DRM_NOUVEAU_BACKLIGHT) += nouveau_backlight.o ++ifdef CONFIG_X86 + nouveau-$(CONFIG_ACPI) += nouveau_acpi.o ++endif + + obj-$(CONFIG_DRM_NOUVEAU)+= nouveau.o +diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h +index 9c56331..9ea5a17 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_drv.h ++++ b/drivers/gpu/drm/nouveau/nouveau_drv.h +@@ -968,7 +968,7 @@ extern int nouveau_dma_wait(struct nouveau_channel *, int slots, int size); + + /* nouveau_acpi.c */ + #define ROM_BIOS_PAGE 4096 +-#if defined(CONFIG_ACPI) ++#if defined(CONFIG_ACPI) && defined(CONFIG_X86) + void nouveau_register_dsm_handler(void); + void nouveau_unregister_dsm_handler(void); + int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len); +-- +1.7.5.3 + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/mips/disable-advansys.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/mips/disable-advansys.patch @@ -0,0 +1,19 @@ +Florian Lohoff reports the following build failure on IP32: + + MODPOST 552 modules +ERROR: "free_dma" [drivers/scsi/advansys.ko] undefined! +make[5]: *** [__modpost] Error 1 + +But report: +http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg12773.html + +--- a/drivers/scsi/Kconfig 2007-12-27 19:16:18.000000000 +0000 ++++ b/drivers/scsi/Kconfig 2007-12-27 19:16:58.000000000 +0000 +@@ -523,6 +523,7 @@ + tristate "AdvanSys SCSI support" + depends on SCSI && VIRT_TO_BUS + depends on ISA || EISA || PCI ++ depends on (!MIPS && !ARM) || BROKEN + help + This is a driver for all SCSI host adapters manufactured by + AdvanSys. It is documented in the kernel source in --- linux-2.6-3.0.0.orig/debian/patches/bugfix/mips/mips-ide-flush-dcache.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/mips/mips-ide-flush-dcache.patch @@ -0,0 +1,46 @@ +From: Sebastian Andrzej Siewior +Subject: mips/ide: flush dcache also if icache does not snoop dcache + +If this is not done then the new just read data which remains in dcache +will not make it into icache on time. Thus the CPU loads invalid data +and executes crap. The result is that the user is not able to execute +anything from its IDE based media while reading plain data is still +working well. +This problem has been reported as Debian #404951. + +Cc: stable@kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/mips/include/asm/mach-generic/ide.h | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/mips/include/asm/mach-generic/ide.h b/arch/mips/include/asm/mach-generic/ide.h +index 9c93a5b..e80e47f 100644 +--- a/arch/mips/include/asm/mach-generic/ide.h ++++ b/arch/mips/include/asm/mach-generic/ide.h +@@ -23,7 +23,7 @@ + static inline void __ide_flush_prologue(void) + { + #ifdef CONFIG_SMP +- if (cpu_has_dc_aliases) ++ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) + preempt_disable(); + #endif + } +@@ -31,14 +31,14 @@ static inline void __ide_flush_prologue(void) + static inline void __ide_flush_epilogue(void) + { + #ifdef CONFIG_SMP +- if (cpu_has_dc_aliases) ++ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) + preempt_enable(); + #endif + } + + static inline void __ide_flush_dcache_range(unsigned long addr, unsigned long size) + { +- if (cpu_has_dc_aliases) { ++ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) { + unsigned long end = addr + size; + + while (addr < end) { --- linux-2.6-3.0.0.orig/debian/patches/bugfix/arm/disable-scsi_acard.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/arm/disable-scsi_acard.patch @@ -0,0 +1,16 @@ +ERROR: "__bad_udelay" [drivers/scsi/atp870u.ko] undefined! +make[1]: *** [__modpost] Error 1 + +diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig +index a7a0813..fa6a4fe 100644 +--- a/drivers/scsi/Kconfig ++++ b/drivers/scsi/Kconfig +@@ -396,7 +396,7 @@ config SCSI_7000FASST + + config SCSI_ACARD + tristate "ACARD SCSI support" +- depends on PCI && SCSI ++ depends on PCI && SCSI && (!ARM || BROKEN) + help + This driver supports the ACARD SCSI host adapter. + Support Chip --- linux-2.6-3.0.0.orig/debian/patches/bugfix/powerpc/lpar-console.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/powerpc/lpar-console.patch @@ -0,0 +1,39 @@ +diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c +index 9235c46..8a20452 100644 +--- a/arch/powerpc/platforms/pseries/lpar.c ++++ b/arch/powerpc/platforms/pseries/lpar.c +@@ -204,6 +204,7 @@ void __init find_udbg_vterm(void) + struct device_node *stdout_node; + const u32 *termno; + const char *name; ++ int add_console; + + /* find the boot console from /chosen/stdout */ + if (!of_chosen) +@@ -219,6 +220,8 @@ void __init find_udbg_vterm(void) + printk(KERN_WARNING "stdout node missing 'name' property!\n"); + goto out; + } ++ /* The user has requested a console so this is already set up. */ ++ add_console = !strstr(cmd_line, "console="); + + /* Check if it's a virtual terminal */ + if (strncmp(name, "vty", 3) != 0) +@@ -232,13 +235,15 @@ void __init find_udbg_vterm(void) + udbg_putc = udbg_putcLP; + udbg_getc = udbg_getcLP; + udbg_getc_poll = udbg_getc_pollLP; +- add_preferred_console("hvc", termno[0] & 0xff, NULL); ++ if (add_console) ++ add_preferred_console("hvc", termno[0] & 0xff, NULL); + } else if (of_device_is_compatible(stdout_node, "hvterm-protocol")) { + vtermno = termno[0]; + udbg_putc = udbg_hvsi_putc; + udbg_getc = udbg_hvsi_getc; + udbg_getc_poll = udbg_hvsi_getc_poll; +- add_preferred_console("hvsi", termno[0] & 0xff, NULL); ++ if (add_console) ++ add_preferred_console("hvsi", termno[0] & 0xff, NULL); + } + out: + of_node_put(stdout_node); --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/Add-KEY_MICMUTE-and-enable-it-on-Lenovo-X220.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/Add-KEY_MICMUTE-and-enable-it-on-Lenovo-X220.patch @@ -0,0 +1,53 @@ +From 0198af5884040ec6ded1558f5f3d4e696898a19f Mon Sep 17 00:00:00 2001 +From: Andy Lutomirski +Date: Tue, 24 May 2011 15:16:43 -0400 +Subject: [PATCH] Add KEY_MICMUTE and enable it on Lenovo X220 + +I suspect that this works on T410. + +Signed-off-by: Andy Lutomirski +Signed-off-by: Matthew Garrett +--- + drivers/platform/x86/thinkpad_acpi.c | 11 ++++++++++- + include/linux/input.h | 2 ++ + 2 files changed, 12 insertions(+), 1 deletions(-) + +diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c +index 26c5b11..7bd829f 100644 +--- a/drivers/platform/x86/thinkpad_acpi.c ++++ b/drivers/platform/x86/thinkpad_acpi.c +@@ -3186,8 +3186,17 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) + KEY_VENDOR, /* 0x17: Thinkpad/AccessIBM/Lenovo */ + + /* (assignments unknown, please report if found) */ ++ KEY_UNKNOWN, KEY_UNKNOWN, ++ ++ /* ++ * The mic mute button only sends 0x1a. It does not ++ * automatically mute the mic or change the mute light. ++ */ ++ KEY_MICMUTE, /* 0x1a: Mic mute (since ?400 or so) */ ++ ++ /* (assignments unknown, please report if found) */ + KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, +- KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, ++ KEY_UNKNOWN, + }, + }; + +diff --git a/include/linux/input.h b/include/linux/input.h +index 771d6d8..f26d3b7 100644 +--- a/include/linux/input.h ++++ b/include/linux/input.h +@@ -438,6 +438,8 @@ struct input_keymap_entry { + #define KEY_WIMAX 246 + #define KEY_RFKILL 247 /* Key that controls all radios */ + ++#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ ++ + /* Code 255 is reserved for special needs of AT keyboard driver */ + + #define BTN_MISC 0x100 +-- +1.7.2.5 + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/ALSA-hda-Enable-auto-parser-as-default-for-Conexant-.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/ALSA-hda-Enable-auto-parser-as-default-for-Conexant-.patch @@ -0,0 +1,67 @@ +From 7a21b2b3d8af62110b0a564f63a64360af34ac10 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 28 Jun 2011 14:17:17 +0200 +Subject: [PATCH] ALSA: hda - Enable auto-parser as default for Conexant codecs + +Let's use auto-parser as default now. + +Signed-off-by: Takashi Iwai +--- + sound/pci/hda/patch_conexant.c | 16 ++++------------ + 1 files changed, 4 insertions(+), 12 deletions(-) + +diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c +index 6e90b6b..4ca880b 100644 +--- a/sound/pci/hda/patch_conexant.c ++++ b/sound/pci/hda/patch_conexant.c +@@ -1124,10 +1124,8 @@ static int patch_cxt5045(struct hda_codec *codec) + board_config = snd_hda_check_board_config(codec, CXT5045_MODELS, + cxt5045_models, + cxt5045_cfg_tbl); +-#if 0 /* use the old method just for safety */ + if (board_config < 0) +- board_config = CXT5045_AUTO; +-#endif ++ board_config = CXT5045_AUTO; /* model=auto as default */ + if (board_config == CXT5045_AUTO) + return patch_conexant_auto(codec); + +@@ -1565,10 +1563,8 @@ static int patch_cxt5047(struct hda_codec *codec) + board_config = snd_hda_check_board_config(codec, CXT5047_MODELS, + cxt5047_models, + cxt5047_cfg_tbl); +-#if 0 /* not enabled as default, as BIOS often broken for this codec */ + if (board_config < 0) +- board_config = CXT5047_AUTO; +-#endif ++ board_config = CXT5047_AUTO; /* model=auto as default */ + if (board_config == CXT5047_AUTO) + return patch_conexant_auto(codec); + +@@ -1994,10 +1990,8 @@ static int patch_cxt5051(struct hda_codec *codec) + board_config = snd_hda_check_board_config(codec, CXT5051_MODELS, + cxt5051_models, + cxt5051_cfg_tbl); +-#if 0 /* use the old method just for safety */ + if (board_config < 0) +- board_config = CXT5051_AUTO; +-#endif ++ board_config = CXT5051_AUTO; /* model=auto as default */ + if (board_config == CXT5051_AUTO) + return patch_conexant_auto(codec); + +@@ -3115,10 +3109,8 @@ static int patch_cxt5066(struct hda_codec *codec) + + board_config = snd_hda_check_board_config(codec, CXT5066_MODELS, + cxt5066_models, cxt5066_cfg_tbl); +-#if 0 /* use the old method just for safety */ + if (board_config < 0) +- board_config = CXT5066_AUTO; +-#endif ++ board_config = CXT5066_AUTO; /* model=auto as default */ + if (board_config == CXT5066_AUTO) + return patch_conexant_auto(codec); + +-- +1.7.2.5 + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/m68k-atari-Reserve-some-ST-RAM-early-on-for-device-b.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/m68k-atari-Reserve-some-ST-RAM-early-on-for-device-b.patch @@ -0,0 +1,524 @@ +From 10b2495b79eb8c2b6ec92b3ce1e5577f892f7821 Mon Sep 17 00:00:00 2001 +From: Michael Schmitz +Date: Mon, 1 Nov 2010 19:54:00 +0100 +Subject: [PATCH] m68k/atari: Reserve some ST-RAM early on for device buffer use + +Based on an original patch from Michael Schmitz: + +Because mem_init() is now called before device init, devices that rely on +ST-RAM may find all ST-RAM already allocated to other users by the time +device init happens. In particular, a large initrd RAM disk may use up +enough of ST-RAM to cause atari_stram_alloc() to resort to +__get_dma_pages() allocation. + +In the current state of Atari memory management, all of RAM is marked +DMA capable, so __get_dma_pages() may well return RAM that is not in actual +fact DMA capable. Using this for frame buffer or SCSI DMA buffer causes +subtle failure. + +The ST-RAM allocator has been changed to allocate memory from a pool of +reserved ST-RAM of configurable size, set aside on ST-RAM init (i.e. +before mem_init()). As long as this pool is not exhausted, allocation of +real ST-RAM can be guaranteed. + +Other changes: + - Replace the custom allocator in the ST-RAM pool by the existing allocator + in the resource subsystem, + - Remove mem_init_done and its hook, as memory init is now done before + device init, + - Remove /proc/stram, as ST-RAM usage now shows up under /proc/iomem, e.g. + + 005f2000-006f1fff : ST-RAM Pool + 005f2000-0063dfff : atafb + 0063e000-00641fff : ataflop + 00642000-00642fff : SCSI + +Signed-off-by: Michael Schmitz +[Andreas Schwab : Use memparse()] +[Geert: Use the resource subsystem instead of a custom allocator] +Signed-off-by: Geert Uytterhoeven +--- + arch/m68k/Kconfig.mmu | 6 - + arch/m68k/atari/stram.c | 354 +++++++---------------------------- + arch/m68k/include/asm/atari_stram.h | 3 +- + arch/m68k/mm/init_mm.c | 5 - + 4 files changed, 70 insertions(+), 298 deletions(-) + +diff --git a/arch/m68k/Kconfig.mmu b/arch/m68k/Kconfig.mmu +index 16539b1..13e20bb 100644 +--- a/arch/m68k/Kconfig.mmu ++++ b/arch/m68k/Kconfig.mmu +@@ -372,12 +372,6 @@ config AMIGA_PCMCIA + Include support in the kernel for pcmcia on Amiga 1200 and Amiga + 600. If you intend to use pcmcia cards say Y; otherwise say N. + +-config STRAM_PROC +- bool "ST-RAM statistics in /proc" +- depends on ATARI +- help +- Say Y here to report ST-RAM usage statistics in /proc/stram. +- + config HEARTBEAT + bool "Use power LED as a heartbeat" if AMIGA || APOLLO || ATARI || MAC ||Q40 + default y if !AMIGA && !APOLLO && !ATARI && !MAC && !Q40 && HP300 +diff --git a/arch/m68k/atari/stram.c b/arch/m68k/atari/stram.c +index 6ec3b7f..0810c8d 100644 +--- a/arch/m68k/atari/stram.c ++++ b/arch/m68k/atari/stram.c +@@ -1,5 +1,5 @@ + /* +- * arch/m68k/atari/stram.c: Functions for ST-RAM allocations ++ * Functions for ST-RAM allocations + * + * Copyright 1994-97 Roman Hodek + * +@@ -30,91 +30,35 @@ + #include + #include + +-#undef DEBUG +- +-#ifdef DEBUG +-#define DPRINTK(fmt,args...) printk( fmt, ##args ) +-#else +-#define DPRINTK(fmt,args...) +-#endif +- +-#if defined(CONFIG_PROC_FS) && defined(CONFIG_STRAM_PROC) +-/* abbrev for the && above... */ +-#define DO_PROC +-#include +-#include +-#endif + + /* +- * ++roman: +- * +- * New version of ST-Ram buffer allocation. Instead of using the +- * 1 MB - 4 KB that remain when the ST-Ram chunk starts at $1000 +- * (1 MB granularity!), such buffers are reserved like this: +- * +- * - If the kernel resides in ST-Ram anyway, we can take the buffer +- * from behind the current kernel data space the normal way +- * (incrementing start_mem). +- * +- * - If the kernel is in TT-Ram, stram_init() initializes start and +- * end of the available region. Buffers are allocated from there +- * and mem_init() later marks the such used pages as reserved. +- * Since each TT-Ram chunk is at least 4 MB in size, I hope there +- * won't be an overrun of the ST-Ram region by normal kernel data +- * space. +- * +- * For that, ST-Ram may only be allocated while kernel initialization +- * is going on, or exactly: before mem_init() is called. There is also +- * no provision now for freeing ST-Ram buffers. It seems that isn't +- * really needed. +- * ++ * The ST-RAM allocator allocates memory from a pool of reserved ST-RAM of ++ * configurable size, set aside on ST-RAM init. ++ * As long as this pool is not exhausted, allocation of real ST-RAM can be ++ * guaranteed. + */ + +-/* Start and end (virtual) of ST-RAM */ +-static void *stram_start, *stram_end; +- +-/* set after memory_init() executed and allocations via start_mem aren't +- * possible anymore */ +-static int mem_init_done; +- + /* set if kernel is in ST-RAM */ + static int kernel_in_stram; + +-typedef struct stram_block { +- struct stram_block *next; +- void *start; +- unsigned long size; +- unsigned flags; +- const char *owner; +-} BLOCK; +- +-/* values for flags field */ +-#define BLOCK_FREE 0x01 /* free structure in the BLOCKs pool */ +-#define BLOCK_KMALLOCED 0x02 /* structure allocated by kmalloc() */ +-#define BLOCK_GFP 0x08 /* block allocated with __get_dma_pages() */ ++static struct resource stram_pool = { ++ .name = "ST-RAM Pool" ++}; + +-/* list of allocated blocks */ +-static BLOCK *alloc_list; ++static unsigned long pool_size = 1024*1024; + +-/* We can't always use kmalloc() to allocate BLOCK structures, since +- * stram_alloc() can be called rather early. So we need some pool of +- * statically allocated structures. 20 of them is more than enough, so in most +- * cases we never should need to call kmalloc(). */ +-#define N_STATIC_BLOCKS 20 +-static BLOCK static_blocks[N_STATIC_BLOCKS]; + +-/***************************** Prototypes *****************************/ ++static int __init atari_stram_setup(char *arg) ++{ ++ if (!MACH_IS_ATARI) ++ return 0; + +-static BLOCK *add_region( void *addr, unsigned long size ); +-static BLOCK *find_region( void *addr ); +-static int remove_region( BLOCK *block ); ++ pool_size = memparse(arg, NULL); ++ return 0; ++} + +-/************************* End of Prototypes **************************/ ++early_param("stram_pool", atari_stram_setup); + +- +-/* ------------------------------------------------------------------------ */ +-/* Public Interface */ +-/* ------------------------------------------------------------------------ */ + + /* + * This init function is called very early by atari/config.c +@@ -123,25 +67,23 @@ static int remove_region( BLOCK *block ); + void __init atari_stram_init(void) + { + int i; ++ void *stram_start; + +- /* initialize static blocks */ +- for( i = 0; i < N_STATIC_BLOCKS; ++i ) +- static_blocks[i].flags = BLOCK_FREE; +- +- /* determine whether kernel code resides in ST-RAM (then ST-RAM is the +- * first memory block at virtual 0x0) */ ++ /* ++ * determine whether kernel code resides in ST-RAM ++ * (then ST-RAM is the first memory block at virtual 0x0) ++ */ + stram_start = phys_to_virt(0); + kernel_in_stram = (stram_start == 0); + +- for( i = 0; i < m68k_num_memory; ++i ) { ++ for (i = 0; i < m68k_num_memory; ++i) { + if (m68k_memory[i].addr == 0) { +- /* skip first 2kB or page (supervisor-only!) */ +- stram_end = stram_start + m68k_memory[i].size; + return; + } + } ++ + /* Should never come here! (There is always ST-Ram!) */ +- panic( "atari_stram_init: no ST-RAM found!" ); ++ panic("atari_stram_init: no ST-RAM found!"); + } + + +@@ -151,226 +93,68 @@ void __init atari_stram_init(void) + */ + void __init atari_stram_reserve_pages(void *start_mem) + { +- /* always reserve first page of ST-RAM, the first 2 kB are +- * supervisor-only! */ ++ /* ++ * always reserve first page of ST-RAM, the first 2 KiB are ++ * supervisor-only! ++ */ + if (!kernel_in_stram) + reserve_bootmem(0, PAGE_SIZE, BOOTMEM_DEFAULT); + +-} ++ stram_pool.start = (resource_size_t)alloc_bootmem_low_pages(pool_size); ++ stram_pool.end = stram_pool.start + pool_size - 1; ++ request_resource(&iomem_resource, &stram_pool); + +-void atari_stram_mem_init_hook (void) +-{ +- mem_init_done = 1; ++ pr_debug("atari_stram pool: size = %lu bytes, resource = %pR\n", ++ pool_size, &stram_pool); + } + + +-/* +- * This is main public interface: somehow allocate a ST-RAM block +- * +- * - If we're before mem_init(), we have to make a static allocation. The +- * region is taken in the kernel data area (if the kernel is in ST-RAM) or +- * from the start of ST-RAM (if the kernel is in TT-RAM) and added to the +- * rsvd_stram_* region. The ST-RAM is somewhere in the middle of kernel +- * address space in the latter case. +- * +- * - If mem_init() already has been called, try with __get_dma_pages(). +- * This has the disadvantage that it's very hard to get more than 1 page, +- * and it is likely to fail :-( +- * +- */ +-void *atari_stram_alloc(long size, const char *owner) ++void *atari_stram_alloc(unsigned long size, const char *owner) + { +- void *addr = NULL; +- BLOCK *block; +- int flags; +- +- DPRINTK("atari_stram_alloc(size=%08lx,owner=%s)\n", size, owner); +- +- if (!mem_init_done) +- return alloc_bootmem_low(size); +- else { +- /* After mem_init(): can only resort to __get_dma_pages() */ +- addr = (void *)__get_dma_pages(GFP_KERNEL, get_order(size)); +- flags = BLOCK_GFP; +- DPRINTK( "atari_stram_alloc: after mem_init, " +- "get_pages=%p\n", addr ); ++ struct resource *res; ++ int error; ++ ++ pr_debug("atari_stram_alloc: allocate %lu bytes\n", size); ++ ++ /* round up */ ++ size = PAGE_ALIGN(size); ++ ++ res = kzalloc(sizeof(struct resource), GFP_KERNEL); ++ if (!res) ++ return NULL; ++ ++ res->name = owner; ++ error = allocate_resource(&stram_pool, res, size, 0, UINT_MAX, ++ PAGE_SIZE, NULL, NULL); ++ if (error < 0) { ++ pr_err("atari_stram_alloc: allocate_resource() failed %d!\n", ++ error); ++ kfree(res); ++ return NULL; + } + +- if (addr) { +- if (!(block = add_region( addr, size ))) { +- /* out of memory for BLOCK structure :-( */ +- DPRINTK( "atari_stram_alloc: out of mem for BLOCK -- " +- "freeing again\n" ); +- free_pages((unsigned long)addr, get_order(size)); +- return( NULL ); +- } +- block->owner = owner; +- block->flags |= flags; +- } +- return( addr ); ++ pr_debug("atari_stram_alloc: returning %pR\n", res); ++ return (void *)res->start; + } + EXPORT_SYMBOL(atari_stram_alloc); + +-void atari_stram_free( void *addr ) + ++void atari_stram_free(void *addr) + { +- BLOCK *block; +- +- DPRINTK( "atari_stram_free(addr=%p)\n", addr ); ++ unsigned long start = (unsigned long)addr; ++ struct resource *res; ++ unsigned long size; + +- if (!(block = find_region( addr ))) { +- printk( KERN_ERR "Attempt to free non-allocated ST-RAM block at %p " +- "from %p\n", addr, __builtin_return_address(0) ); ++ res = lookup_resource(&stram_pool, start); ++ if (!res) { ++ pr_err("atari_stram_free: trying to free nonexistent region " ++ "at %p\n", addr); + return; + } +- DPRINTK( "atari_stram_free: found block (%p): size=%08lx, owner=%s, " +- "flags=%02x\n", block, block->size, block->owner, block->flags ); +- +- if (!(block->flags & BLOCK_GFP)) +- goto fail; + +- DPRINTK("atari_stram_free: is kmalloced, order_size=%d\n", +- get_order(block->size)); +- free_pages((unsigned long)addr, get_order(block->size)); +- remove_region( block ); +- return; +- +- fail: +- printk( KERN_ERR "atari_stram_free: cannot free block at %p " +- "(called from %p)\n", addr, __builtin_return_address(0) ); ++ size = resource_size(res); ++ pr_debug("atari_stram_free: free %lu bytes at %p\n", size, addr); ++ release_resource(res); ++ kfree(res); + } + EXPORT_SYMBOL(atari_stram_free); +- +- +-/* ------------------------------------------------------------------------ */ +-/* Region Management */ +-/* ------------------------------------------------------------------------ */ +- +- +-/* insert a region into the alloced list (sorted) */ +-static BLOCK *add_region( void *addr, unsigned long size ) +-{ +- BLOCK **p, *n = NULL; +- int i; +- +- for( i = 0; i < N_STATIC_BLOCKS; ++i ) { +- if (static_blocks[i].flags & BLOCK_FREE) { +- n = &static_blocks[i]; +- n->flags = 0; +- break; +- } +- } +- if (!n && mem_init_done) { +- /* if statics block pool exhausted and we can call kmalloc() already +- * (after mem_init()), try that */ +- n = kmalloc( sizeof(BLOCK), GFP_KERNEL ); +- if (n) +- n->flags = BLOCK_KMALLOCED; +- } +- if (!n) { +- printk( KERN_ERR "Out of memory for ST-RAM descriptor blocks\n" ); +- return( NULL ); +- } +- n->start = addr; +- n->size = size; +- +- for( p = &alloc_list; *p; p = &((*p)->next) ) +- if ((*p)->start > addr) break; +- n->next = *p; +- *p = n; +- +- return( n ); +-} +- +- +-/* find a region (by start addr) in the alloced list */ +-static BLOCK *find_region( void *addr ) +-{ +- BLOCK *p; +- +- for( p = alloc_list; p; p = p->next ) { +- if (p->start == addr) +- return( p ); +- if (p->start > addr) +- break; +- } +- return( NULL ); +-} +- +- +-/* remove a block from the alloced list */ +-static int remove_region( BLOCK *block ) +-{ +- BLOCK **p; +- +- for( p = &alloc_list; *p; p = &((*p)->next) ) +- if (*p == block) break; +- if (!*p) +- return( 0 ); +- +- *p = block->next; +- if (block->flags & BLOCK_KMALLOCED) +- kfree( block ); +- else +- block->flags |= BLOCK_FREE; +- return( 1 ); +-} +- +- +- +-/* ------------------------------------------------------------------------ */ +-/* /proc statistics file stuff */ +-/* ------------------------------------------------------------------------ */ +- +-#ifdef DO_PROC +- +-#define PRINT_PROC(fmt,args...) seq_printf( m, fmt, ##args ) +- +-static int stram_proc_show(struct seq_file *m, void *v) +-{ +- BLOCK *p; +- +- PRINT_PROC("Total ST-RAM: %8u kB\n", +- (stram_end - stram_start) >> 10); +- PRINT_PROC( "Allocated regions:\n" ); +- for( p = alloc_list; p; p = p->next ) { +- PRINT_PROC("0x%08lx-0x%08lx: %s (", +- virt_to_phys(p->start), +- virt_to_phys(p->start+p->size-1), +- p->owner); +- if (p->flags & BLOCK_GFP) +- PRINT_PROC( "page-alloced)\n" ); +- else +- PRINT_PROC( "??)\n" ); +- } +- +- return 0; +-} +- +-static int stram_proc_open(struct inode *inode, struct file *file) +-{ +- return single_open(file, stram_proc_show, NULL); +-} +- +-static const struct file_operations stram_proc_fops = { +- .open = stram_proc_open, +- .read = seq_read, +- .llseek = seq_lseek, +- .release = single_release, +-}; +- +-static int __init proc_stram_init(void) +-{ +- proc_create("stram", 0, NULL, &stram_proc_fops); +- return 0; +-} +-module_init(proc_stram_init); +-#endif +- +- +-/* +- * Local variables: +- * c-indent-level: 4 +- * tab-width: 4 +- * End: +- */ +diff --git a/arch/m68k/include/asm/atari_stram.h b/arch/m68k/include/asm/atari_stram.h +index 7546d13..62e2759 100644 +--- a/arch/m68k/include/asm/atari_stram.h ++++ b/arch/m68k/include/asm/atari_stram.h +@@ -6,12 +6,11 @@ + */ + + /* public interface */ +-void *atari_stram_alloc(long size, const char *owner); ++void *atari_stram_alloc(unsigned long size, const char *owner); + void atari_stram_free(void *); + + /* functions called internally by other parts of the kernel */ + void atari_stram_init(void); + void atari_stram_reserve_pages(void *start_mem); +-void atari_stram_mem_init_hook (void); + + #endif /*_M68K_ATARI_STRAM_H */ +diff --git a/arch/m68k/mm/init_mm.c b/arch/m68k/mm/init_mm.c +index 9113c2f..bbe5254 100644 +--- a/arch/m68k/mm/init_mm.c ++++ b/arch/m68k/mm/init_mm.c +@@ -83,11 +83,6 @@ void __init mem_init(void) + int initpages = 0; + int i; + +-#ifdef CONFIG_ATARI +- if (MACH_IS_ATARI) +- atari_stram_mem_init_hook(); +-#endif +- + /* this will put all memory onto the freelists */ + totalram_pages = num_physpages = 0; + for_each_online_pgdat(pgdat) { +-- +1.7.2.5 + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/ALSA-hda-Judge-playback-stream-from-stream-id-in-azx.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/ALSA-hda-Judge-playback-stream-from-stream-id-in-azx.patch @@ -0,0 +1,29 @@ +From b4a655e81d4d1d12abc92d29dfb7550e66a08799 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 7 Jun 2011 12:26:56 +0200 +Subject: [PATCH] ALSA: hda - Judge playback stream from stream id in azx_via_get_position() + +Instead of checking the azx_dev index with a fixed number (4), check +the stream direction of the assigned substream. + +Signed-off-by: Takashi Iwai +--- + sound/pci/hda/hda_intel.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c +index 45cd02f..5f2d05a 100644 +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -1866,7 +1866,7 @@ static unsigned int azx_via_get_position(struct azx *chip, + unsigned int fifo_size; + + link_pos = azx_sd_readl(azx_dev, SD_LPIB); +- if (azx_dev->index >= 4) { ++ if (azx_dev->substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { + /* Playback, no problem using link position */ + return link_pos; + } +-- +1.7.2.5 + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/rt2800-disable-powersaving-as-default.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/rt2800-disable-powersaving-as-default.patch @@ -0,0 +1,27 @@ +From: Johannes Stezenbach +Date: Wed Jan 19 04:43:34 EST 2011 +Subject: [PATCH RFC] rt2800: disable powersaving as default + +Powersaving is broken on rt2800usb (the hardware cannot do timed wakeup +to receive beacons) and also on rt2800pci currently (auto-wakeup irq +does no seem to work, for reasons so far unknown). + +Signed-off-by: Johannes Stezenbach + +diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c +index b7d91d5..b846fd9 100644 +--- a/drivers/net/wireless/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/rt2x00/rt2800lib.c +@@ -3229,10 +3229,9 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) + u16 eeprom; + + /* +- * Disable powersaving as default on PCI devices. ++ * Disable powersaving as default. + */ +- if (rt2x00_is_pci(rt2x00dev) || rt2x00_is_soc(rt2x00dev)) +- rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; ++ rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; + + /* + * Initialize all hw fields. --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/resources-Add-lookup_resource.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/resources-Add-lookup_resource.patch @@ -0,0 +1,62 @@ +From 1789c38726c2805563e9049dbc5d5253251761a7 Mon Sep 17 00:00:00 2001 +From: Geert Uytterhoeven +Date: Sat, 7 May 2011 20:53:16 +0200 +Subject: [PATCH] resources: Add lookup_resource() + +Add a function to find an existing resource by a resource start address. +This allows to implement simple allocators (with a malloc/free-alike API) +on top of the resource system. + +Signed-off-by: Geert Uytterhoeven +--- + include/linux/ioport.h | 1 + + kernel/resource.c | 21 +++++++++++++++++++++ + 2 files changed, 22 insertions(+), 0 deletions(-) + +diff --git a/include/linux/ioport.h b/include/linux/ioport.h +index e9bb22c..63eb429 100644 +--- a/include/linux/ioport.h ++++ b/include/linux/ioport.h +@@ -132,6 +132,7 @@ extern int allocate_resource(struct resource *root, struct resource *new, + resource_size_t, + resource_size_t), + void *alignf_data); ++struct resource *lookup_resource(struct resource *root, resource_size_t start); + int adjust_resource(struct resource *res, resource_size_t start, + resource_size_t size); + resource_size_t resource_alignment(struct resource *res); +diff --git a/kernel/resource.c b/kernel/resource.c +index 798e2fa..8d0b479 100644 +--- a/kernel/resource.c ++++ b/kernel/resource.c +@@ -473,6 +473,27 @@ int allocate_resource(struct resource *root, struct resource *new, + + EXPORT_SYMBOL(allocate_resource); + ++/** ++ * lookup_resource - find an existing resource by a resource start address ++ * @root: root resource descriptor ++ * @start: resource start address ++ * ++ * Returns a pointer to the resource if found, NULL otherwise ++ */ ++struct resource *lookup_resource(struct resource *root, resource_size_t start) ++{ ++ struct resource *res; ++ ++ read_lock(&resource_lock); ++ for (res = root->child; res; res = res->sibling) { ++ if (res->start == start) ++ break; ++ } ++ read_unlock(&resource_lock); ++ ++ return res; ++} ++ + /* + * Insert a resource into the resource tree. If successful, return NULL, + * otherwise return the conflicting resource (compare to __request_resource()) +-- +1.7.2.5 + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/dm-Deal-with-merge_bvec_fn-in-component-devices-bett.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/dm-Deal-with-merge_bvec_fn-in-component-devices-bett.patch @@ -0,0 +1,47 @@ +From: Ben Hutchings +Date: Sun, 28 Nov 2010 23:46:46 +0000 +Subject: [PATCH] dm: Deal with merge_bvec_fn in component devices better + +This is analogous to commit 627a2d3c29427637f4c5d31ccc7fcbd8d312cd71, +which does the same for md-devices at the top of the stack. The +following explanation is taken from that commit. Thanks to Neil Brown + for the advice. + +If a component device has a merge_bvec_fn then as we never call it +we must ensure we never need to. Currently this is done by setting +max_sector to 1 PAGE, however this does not stop a bio being created +with several sub-page iovecs that would violate the merge_bvec_fn. + +So instead set max_segments to 1 and set the segment boundary to the +same as a page boundary to ensure there is only ever one single-page +segment of IO requested at a time. + +This can particularly be an issue when 'xen' is used as it is +known to submit multiple small buffers in a single bio. + +Signed-off-by: Ben Hutchings +--- +--- a/drivers/md/dm-table.c ++++ b/drivers/md/dm-table.c +@@ -511,14 +511,15 @@ int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev, + (unsigned long long) start << SECTOR_SHIFT); + + /* +- * Check if merge fn is supported. +- * If not we'll force DM to use PAGE_SIZE or +- * smaller I/O, just to be safe. ++ * If we don't call merge_bvec_fn, we must never risk ++ * violating it, so limit max_phys_segments to 1 lying within ++ * a single page. + */ ++ if (q->merge_bvec_fn && !ti->type->merge) { ++ limits->max_segments = 1; ++ limits->seg_boundary_mask = PAGE_CACHE_SIZE - 1; ++ } + +- if (q->merge_bvec_fn && !ti->type->merge) +- blk_limits_max_hw_sectors(limits, +- (unsigned int) (PAGE_SIZE >> 9)); + return 0; + } + EXPORT_SYMBOL_GPL(dm_set_device_limits); --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/perf-do-not-look-at-.-config-for-configuration.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/perf-do-not-look-at-.-config-for-configuration.patch @@ -0,0 +1,51 @@ +Date: Fri, 5 Aug 2011 18:58:38 +0200 +From: Jonathan Nieder +Subject: [PATCH] perf: do not look at ./config for configuration + +In addition to /etc/perfconfig and $HOME/.perfconfig, perf looks for +configuration in the file ./config, imitating git which looks at +$GIT_DIR/config. If ./config is not a perf configuration file, it +fails, or worse, treats it as a configuration file and changes +behavior in some unexpected way. + +"config" is not an unusual name for a file to be lying around and perf +does not have a private directory dedicated for its own use, so let's +just stop looking for configuration in the cwd. Callers needing +context-sensitive configuration can use the PERF_CONFIG environment +variable. + +Requested-by: Christian Ohm +Signed-off-by: Jonathan Nieder +--- + tools/perf/util/config.c | 7 ------- + 1 files changed, 0 insertions(+), 7 deletions(-) + +diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c +index e02d78ca..6c86eca8 100644 +--- a/tools/perf/util/config.c ++++ b/tools/perf/util/config.c +@@ -399,7 +399,6 @@ static int perf_config_global(void) + int perf_config(config_fn_t fn, void *data) + { + int ret = 0, found = 0; +- char *repo_config = NULL; + const char *home = NULL; + + /* Setting $PERF_CONFIG makes perf read _only_ the given config file. */ +@@ -421,12 +420,6 @@ int perf_config(config_fn_t fn, void *data) + free(user_config); + } + +- repo_config = perf_pathdup("config"); +- if (!access(repo_config, R_OK)) { +- ret += perf_config_from_file(fn, repo_config, data); +- found += 1; +- } +- free(repo_config); + if (found == 0) + return -1; + return ret; +-- +1.7.6 + + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/ALSA-hda-Handle-1-as-invalid-position-too.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/ALSA-hda-Handle-1-as-invalid-position-too.patch @@ -0,0 +1,55 @@ +From a810364a0424c297242c6c66071a42f7675a5568 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 7 Jun 2011 12:23:23 +0200 +Subject: [PATCH] ALSA: hda - Handle -1 as invalid position, too + +When reading from the position-buffer results in -1, handle as it's +invalid and falls back to LPIB mode as well as 0. + +Signed-off-by: Takashi Iwai +--- + sound/pci/hda/hda_intel.c | 21 +++++++++++---------- + 1 files changed, 11 insertions(+), 10 deletions(-) + +diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c +index 966f401..45cd02f 100644 +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -1930,6 +1930,17 @@ static unsigned int azx_get_position(struct azx *chip, + default: + /* use the position buffer */ + pos = le32_to_cpu(*azx_dev->posbuf); ++ if (chip->position_fix[stream] == POS_FIX_AUTO) { ++ if (!pos || pos == (u32)-1) { ++ printk(KERN_WARNING ++ "hda-intel: Invalid position buffer, " ++ "using LPIB read method instead.\n"); ++ chip->position_fix[stream] = POS_FIX_LPIB; ++ pos = azx_sd_readl(azx_dev, SD_LPIB); ++ } else ++ chip->position_fix[stream] = POS_FIX_POSBUF; ++ } ++ break; + } + + if (pos >= azx_dev->bufsize) +@@ -1967,16 +1978,6 @@ static int azx_position_ok(struct azx *chip, struct azx_dev *azx_dev) + + stream = azx_dev->substream->stream; + pos = azx_get_position(chip, azx_dev); +- if (chip->position_fix[stream] == POS_FIX_AUTO) { +- if (!pos) { +- printk(KERN_WARNING +- "hda-intel: Invalid position buffer, " +- "using LPIB read method instead.\n"); +- chip->position_fix[stream] = POS_FIX_LPIB; +- pos = azx_get_position(chip, azx_dev); +- } else +- chip->position_fix[stream] = POS_FIX_POSBUF; +- } + + if (WARN_ONCE(!azx_dev->period_bytes, + "hda-intel: zero azx_dev->period_bytes")) +-- +1.7.2.5 + --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/stable/3.0.2.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/stable/3.0.2.patch @@ -0,0 +1,6193 @@ +diff --git a/Makefile b/Makefile +index f124b18..794fa28 100644 +diff --git a/arch/cris/arch-v10/drivers/sync_serial.c b/arch/cris/arch-v10/drivers/sync_serial.c +index 85026537..466af40 100644 +--- a/arch/cris/arch-v10/drivers/sync_serial.c ++++ b/arch/cris/arch-v10/drivers/sync_serial.c +@@ -158,7 +158,7 @@ static int sync_serial_open(struct inode *inode, struct file *file); + static int sync_serial_release(struct inode *inode, struct file *file); + static unsigned int sync_serial_poll(struct file *filp, poll_table *wait); + +-static int sync_serial_ioctl(struct file *file, ++static long sync_serial_ioctl(struct file *file, + unsigned int cmd, unsigned long arg); + static ssize_t sync_serial_write(struct file *file, const char *buf, + size_t count, loff_t *ppos); +@@ -625,11 +625,11 @@ static int sync_serial_open(struct inode *inode, struct file *file) + *R_IRQ_MASK1_SET = 1 << port->data_avail_bit; + DEBUG(printk(KERN_DEBUG "sser%d rec started\n", dev)); + } +- ret = 0; ++ err = 0; + + out: + mutex_unlock(&sync_serial_mutex); +- return ret; ++ return err; + } + + static int sync_serial_release(struct inode *inode, struct file *file) +diff --git a/arch/cris/arch-v10/kernel/irq.c b/arch/cris/arch-v10/kernel/irq.c +index 907cfb5..ba0e596 100644 +--- a/arch/cris/arch-v10/kernel/irq.c ++++ b/arch/cris/arch-v10/kernel/irq.c +@@ -20,6 +20,9 @@ + #define crisv10_mask_irq(irq_nr) (*R_VECT_MASK_CLR = 1 << (irq_nr)); + #define crisv10_unmask_irq(irq_nr) (*R_VECT_MASK_SET = 1 << (irq_nr)); + ++extern void kgdb_init(void); ++extern void breakpoint(void); ++ + /* don't use set_int_vector, it bypasses the linux interrupt handlers. it is + * global just so that the kernel gdb can use it. + */ +diff --git a/arch/cris/include/asm/thread_info.h b/arch/cris/include/asm/thread_info.h +index 29b74a1..332f19c 100644 +--- a/arch/cris/include/asm/thread_info.h ++++ b/arch/cris/include/asm/thread_info.h +@@ -11,8 +11,6 @@ + + #ifdef __KERNEL__ + +-#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR +- + #ifndef __ASSEMBLY__ + #include + #include +@@ -67,8 +65,10 @@ struct thread_info { + + #define init_thread_info (init_thread_union.thread_info) + ++#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR + /* thread information allocation */ +-#define alloc_thread_info(tsk, node) ((struct thread_info *) __get_free_pages(GFP_KERNEL,1)) ++#define alloc_thread_info_node(tsk, node) \ ++ ((struct thread_info *) __get_free_pages(GFP_KERNEL, 1)) + #define free_thread_info(ti) free_pages((unsigned long) (ti), 1) + + #endif /* !__ASSEMBLY__ */ +diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h +index f819559..26fd114 100644 +--- a/arch/parisc/include/asm/atomic.h ++++ b/arch/parisc/include/asm/atomic.h +@@ -259,10 +259,10 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) + + #define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) + +-static __inline__ int ++static __inline__ s64 + __atomic64_add_return(s64 i, atomic64_t *v) + { +- int ret; ++ s64 ret; + unsigned long flags; + _atomic_spin_lock_irqsave(v, flags); + +diff --git a/arch/parisc/include/asm/futex.h b/arch/parisc/include/asm/futex.h +index 67a33cc..2388bdb 100644 +--- a/arch/parisc/include/asm/futex.h ++++ b/arch/parisc/include/asm/futex.h +@@ -5,11 +5,14 @@ + + #include + #include ++#include + #include + + static inline int + futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr) + { ++ unsigned long int flags; ++ u32 val; + int op = (encoded_op >> 28) & 7; + int cmp = (encoded_op >> 24) & 15; + int oparg = (encoded_op << 8) >> 20; +@@ -18,21 +21,58 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr) + if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) + oparg = 1 << oparg; + +- if (! access_ok (VERIFY_WRITE, uaddr, sizeof(u32))) ++ if (!access_ok(VERIFY_WRITE, uaddr, sizeof(*uaddr))) + return -EFAULT; + + pagefault_disable(); + ++ _atomic_spin_lock_irqsave(uaddr, flags); ++ + switch (op) { + case FUTEX_OP_SET: ++ /* *(int *)UADDR2 = OPARG; */ ++ ret = get_user(oldval, uaddr); ++ if (!ret) ++ ret = put_user(oparg, uaddr); ++ break; + case FUTEX_OP_ADD: ++ /* *(int *)UADDR2 += OPARG; */ ++ ret = get_user(oldval, uaddr); ++ if (!ret) { ++ val = oldval + oparg; ++ ret = put_user(val, uaddr); ++ } ++ break; + case FUTEX_OP_OR: ++ /* *(int *)UADDR2 |= OPARG; */ ++ ret = get_user(oldval, uaddr); ++ if (!ret) { ++ val = oldval | oparg; ++ ret = put_user(val, uaddr); ++ } ++ break; + case FUTEX_OP_ANDN: ++ /* *(int *)UADDR2 &= ~OPARG; */ ++ ret = get_user(oldval, uaddr); ++ if (!ret) { ++ val = oldval & ~oparg; ++ ret = put_user(val, uaddr); ++ } ++ break; + case FUTEX_OP_XOR: ++ /* *(int *)UADDR2 ^= OPARG; */ ++ ret = get_user(oldval, uaddr); ++ if (!ret) { ++ val = oldval ^ oparg; ++ ret = put_user(val, uaddr); ++ } ++ break; + default: + ret = -ENOSYS; + } + ++ _atomic_spin_unlock_irqrestore(uaddr, flags); ++ + pagefault_enable(); + + if (!ret) { +@@ -54,7 +94,9 @@ static inline int + futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, + u32 oldval, u32 newval) + { ++ int ret; + u32 val; ++ unsigned long flags; + + /* futex.c wants to do a cmpxchg_inatomic on kernel NULL, which is + * our gateway page, and causes no end of trouble... +@@ -65,12 +107,24 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, + if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32))) + return -EFAULT; + +- if (get_user(val, uaddr)) +- return -EFAULT; +- if (val == oldval && put_user(newval, uaddr)) +- return -EFAULT; ++ /* HPPA has no cmpxchg in hardware and therefore the ++ * best we can do here is use an array of locks. The ++ * lock selected is based on a hash of the userspace ++ * address. This should scale to a couple of CPUs. ++ */ ++ ++ _atomic_spin_lock_irqsave(uaddr, flags); ++ ++ ret = get_user(val, uaddr); ++ ++ if (!ret && val == oldval) ++ ret = put_user(newval, uaddr); ++ + *uval = val; +- return 0; ++ ++ _atomic_spin_unlock_irqrestore(uaddr, flags); ++ ++ return ret; + } + + #endif /*__KERNEL__*/ +diff --git a/arch/parisc/include/asm/unistd.h b/arch/parisc/include/asm/unistd.h +index 3392de3..d61de64 100644 +--- a/arch/parisc/include/asm/unistd.h ++++ b/arch/parisc/include/asm/unistd.h +@@ -821,8 +821,9 @@ + #define __NR_open_by_handle_at (__NR_Linux + 326) + #define __NR_syncfs (__NR_Linux + 327) + #define __NR_setns (__NR_Linux + 328) ++#define __NR_sendmmsg (__NR_Linux + 329) + +-#define __NR_Linux_syscalls (__NR_setns + 1) ++#define __NR_Linux_syscalls (__NR_sendmmsg + 1) + + + #define __IGNORE_select /* newselect */ +diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S +index 34a4f5a..e66366f 100644 +--- a/arch/parisc/kernel/syscall_table.S ++++ b/arch/parisc/kernel/syscall_table.S +@@ -427,6 +427,7 @@ + ENTRY_COMP(open_by_handle_at) + ENTRY_SAME(syncfs) + ENTRY_SAME(setns) ++ ENTRY_COMP(sendmmsg) + + /* Nothing yet */ + +diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c +index c016033..3b22142 100644 +--- a/arch/powerpc/kernel/prom_init.c ++++ b/arch/powerpc/kernel/prom_init.c +@@ -1020,7 +1020,7 @@ static unsigned long __init alloc_up(unsigned long size, unsigned long align) + } + if (addr == 0) + return 0; +- RELOC(alloc_bottom) = addr; ++ RELOC(alloc_bottom) = addr + size; + + prom_debug(" -> %x\n", addr); + prom_debug(" alloc_bottom : %x\n", RELOC(alloc_bottom)); +@@ -1834,7 +1834,7 @@ static void __init *make_room(unsigned long *mem_start, unsigned long *mem_end, + chunk = alloc_up(room, 0); + if (chunk == 0) + prom_panic("No memory for flatten_device_tree (claim failed)"); +- *mem_end = RELOC(alloc_top); ++ *mem_end = chunk + room; + } + + ret = (void *)*mem_start; +@@ -2053,7 +2053,7 @@ static void __init flatten_device_tree(void) + mem_start = (unsigned long)alloc_up(room, PAGE_SIZE); + if (mem_start == 0) + prom_panic("Can't allocate initial device-tree chunk\n"); +- mem_end = RELOC(alloc_top); ++ mem_end = mem_start + room; + + /* Get root of tree */ + root = call_prom("peer", 1, 1, (phandle)0); +diff --git a/arch/powerpc/platforms/pseries/dtl.c b/arch/powerpc/platforms/pseries/dtl.c +index e919007..0e86563 100644 +--- a/arch/powerpc/platforms/pseries/dtl.c ++++ b/arch/powerpc/platforms/pseries/dtl.c +@@ -181,7 +181,7 @@ static void dtl_stop(struct dtl *dtl) + + lppaca_of(dtl->cpu).dtl_enable_mask = 0x0; + +- unregister_dtl(hwcpu, __pa(dtl->buf)); ++ unregister_dtl(hwcpu); + } + + static u64 dtl_current_index(struct dtl *dtl) +diff --git a/arch/powerpc/platforms/pseries/kexec.c b/arch/powerpc/platforms/pseries/kexec.c +index 54cf3a4..1118cb7 100644 +--- a/arch/powerpc/platforms/pseries/kexec.c ++++ b/arch/powerpc/platforms/pseries/kexec.c +@@ -26,6 +26,17 @@ static void pseries_kexec_cpu_down(int crash_shutdown, int secondary) + /* Don't risk a hypervisor call if we're crashing */ + if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) { + unsigned long addr; ++ int ret; ++ ++ if (get_lppaca()->dtl_enable_mask) { ++ ret = unregister_dtl(hard_smp_processor_id()); ++ if (ret) { ++ pr_err("WARNING: DTL deregistration for cpu " ++ "%d (hw %d) failed with %d\n", ++ smp_processor_id(), ++ hard_smp_processor_id(), ret); ++ } ++ } + + addr = __pa(get_slb_shadow()); + if (unregister_slb_shadow(hard_smp_processor_id(), addr)) +diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c +index 39e6e0a..ed96b37 100644 +--- a/arch/powerpc/platforms/pseries/lpar.c ++++ b/arch/powerpc/platforms/pseries/lpar.c +@@ -395,7 +395,7 @@ static void pSeries_lpar_hptab_clear(void) + unsigned long ptel; + } ptes[4]; + long lpar_rc; +- int i, j; ++ unsigned long i, j; + + /* Read in batches of 4, + * invalidate only valid entries not in the VRMA +diff --git a/arch/powerpc/platforms/pseries/plpar_wrappers.h b/arch/powerpc/platforms/pseries/plpar_wrappers.h +index 4bf2120..a6921ae 100644 +--- a/arch/powerpc/platforms/pseries/plpar_wrappers.h ++++ b/arch/powerpc/platforms/pseries/plpar_wrappers.h +@@ -73,9 +73,9 @@ static inline long register_slb_shadow(unsigned long cpu, unsigned long vpa) + return vpa_call(0x3, cpu, vpa); + } + +-static inline long unregister_dtl(unsigned long cpu, unsigned long vpa) ++static inline long unregister_dtl(unsigned long cpu) + { +- return vpa_call(0x6, cpu, vpa); ++ return vpa_call(0x6, cpu, 0); + } + + static inline long register_dtl(unsigned long cpu, unsigned long vpa) +diff --git a/arch/sparc/include/asm/bitops_64.h b/arch/sparc/include/asm/bitops_64.h +index 38e9aa1..3fc595a 100644 +--- a/arch/sparc/include/asm/bitops_64.h ++++ b/arch/sparc/include/asm/bitops_64.h +@@ -26,61 +26,28 @@ extern void change_bit(unsigned long nr, volatile unsigned long *addr); + #define smp_mb__before_clear_bit() barrier() + #define smp_mb__after_clear_bit() barrier() + +-#include +-#include + #include + #include + #include + + #ifdef __KERNEL__ + ++extern int ffs(int x); ++extern unsigned long __ffs(unsigned long); ++ ++#include + #include +-#include + + /* + * hweightN: returns the hamming weight (i.e. the number + * of bits set) of a N-bit word + */ + +-#ifdef ULTRA_HAS_POPULATION_COUNT +- +-static inline unsigned int __arch_hweight64(unsigned long w) +-{ +- unsigned int res; +- +- __asm__ ("popc %1,%0" : "=r" (res) : "r" (w)); +- return res; +-} +- +-static inline unsigned int __arch_hweight32(unsigned int w) +-{ +- unsigned int res; +- +- __asm__ ("popc %1,%0" : "=r" (res) : "r" (w & 0xffffffff)); +- return res; +-} ++extern unsigned long __arch_hweight64(__u64 w); ++extern unsigned int __arch_hweight32(unsigned int w); ++extern unsigned int __arch_hweight16(unsigned int w); ++extern unsigned int __arch_hweight8(unsigned int w); + +-static inline unsigned int __arch_hweight16(unsigned int w) +-{ +- unsigned int res; +- +- __asm__ ("popc %1,%0" : "=r" (res) : "r" (w & 0xffff)); +- return res; +-} +- +-static inline unsigned int __arch_hweight8(unsigned int w) +-{ +- unsigned int res; +- +- __asm__ ("popc %1,%0" : "=r" (res) : "r" (w & 0xff)); +- return res; +-} +- +-#else +- +-#include +- +-#endif + #include + #include + #endif /* __KERNEL__ */ +diff --git a/arch/sparc/include/asm/elf_64.h b/arch/sparc/include/asm/elf_64.h +index e678803..7df8b7f 100644 +--- a/arch/sparc/include/asm/elf_64.h ++++ b/arch/sparc/include/asm/elf_64.h +@@ -59,15 +59,33 @@ + #define R_SPARC_6 45 + + /* Bits present in AT_HWCAP, primarily for Sparc32. */ +- +-#define HWCAP_SPARC_FLUSH 1 /* CPU supports flush instruction. */ +-#define HWCAP_SPARC_STBAR 2 +-#define HWCAP_SPARC_SWAP 4 +-#define HWCAP_SPARC_MULDIV 8 +-#define HWCAP_SPARC_V9 16 +-#define HWCAP_SPARC_ULTRA3 32 +-#define HWCAP_SPARC_BLKINIT 64 +-#define HWCAP_SPARC_N2 128 ++#define HWCAP_SPARC_FLUSH 0x00000001 ++#define HWCAP_SPARC_STBAR 0x00000002 ++#define HWCAP_SPARC_SWAP 0x00000004 ++#define HWCAP_SPARC_MULDIV 0x00000008 ++#define HWCAP_SPARC_V9 0x00000010 ++#define HWCAP_SPARC_ULTRA3 0x00000020 ++#define HWCAP_SPARC_BLKINIT 0x00000040 ++#define HWCAP_SPARC_N2 0x00000080 ++ ++/* Solaris compatible AT_HWCAP bits. */ ++#define AV_SPARC_MUL32 0x00000100 /* 32x32 multiply is efficient */ ++#define AV_SPARC_DIV32 0x00000200 /* 32x32 divide is efficient */ ++#define AV_SPARC_FSMULD 0x00000400 /* 'fsmuld' is efficient */ ++#define AV_SPARC_V8PLUS 0x00000800 /* v9 insn available to 32bit */ ++#define AV_SPARC_POPC 0x00001000 /* 'popc' is efficient */ ++#define AV_SPARC_VIS 0x00002000 /* VIS insns available */ ++#define AV_SPARC_VIS2 0x00004000 /* VIS2 insns available */ ++#define AV_SPARC_ASI_BLK_INIT 0x00008000 /* block init ASIs available */ ++#define AV_SPARC_FMAF 0x00010000 /* fused multiply-add */ ++#define AV_SPARC_VIS3 0x00020000 /* VIS3 insns available */ ++#define AV_SPARC_HPC 0x00040000 /* HPC insns available */ ++#define AV_SPARC_RANDOM 0x00080000 /* 'random' insn available */ ++#define AV_SPARC_TRANS 0x00100000 /* transaction insns available */ ++#define AV_SPARC_FJFMAU 0x00200000 /* unfused multiply-add */ ++#define AV_SPARC_IMA 0x00400000 /* integer multiply-add */ ++#define AV_SPARC_ASI_CACHE_SPARING \ ++ 0x00800000 /* cache sparing ASIs available */ + + #define CORE_DUMP_USE_REGSET + +@@ -162,31 +180,8 @@ typedef struct { + #define ELF_ET_DYN_BASE 0x0000010000000000UL + #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL + +- +-/* This yields a mask that user programs can use to figure out what +- instruction set this cpu supports. */ +- +-/* On Ultra, we support all of the v8 capabilities. */ +-static inline unsigned int sparc64_elf_hwcap(void) +-{ +- unsigned int cap = (HWCAP_SPARC_FLUSH | HWCAP_SPARC_STBAR | +- HWCAP_SPARC_SWAP | HWCAP_SPARC_MULDIV | +- HWCAP_SPARC_V9); +- +- if (tlb_type == cheetah || tlb_type == cheetah_plus) +- cap |= HWCAP_SPARC_ULTRA3; +- else if (tlb_type == hypervisor) { +- if (sun4v_chip_type == SUN4V_CHIP_NIAGARA1 || +- sun4v_chip_type == SUN4V_CHIP_NIAGARA2) +- cap |= HWCAP_SPARC_BLKINIT; +- if (sun4v_chip_type == SUN4V_CHIP_NIAGARA2) +- cap |= HWCAP_SPARC_N2; +- } +- +- return cap; +-} +- +-#define ELF_HWCAP sparc64_elf_hwcap(); ++extern unsigned long sparc64_elf_hwcap; ++#define ELF_HWCAP sparc64_elf_hwcap + + /* This yields a string that ld.so will use to load implementation + specific libraries for optimization. This is more specific in +diff --git a/arch/sparc/include/asm/hypervisor.h b/arch/sparc/include/asm/hypervisor.h +index 7568640..015a761 100644 +--- a/arch/sparc/include/asm/hypervisor.h ++++ b/arch/sparc/include/asm/hypervisor.h +@@ -2927,6 +2927,13 @@ extern unsigned long sun4v_ncs_request(unsigned long request, + #define HV_FAST_FIRE_GET_PERFREG 0x120 + #define HV_FAST_FIRE_SET_PERFREG 0x121 + ++#define HV_FAST_REBOOT_DATA_SET 0x172 ++ ++#ifndef __ASSEMBLY__ ++extern unsigned long sun4v_reboot_data_set(unsigned long ra, ++ unsigned long len); ++#endif ++ + /* Function numbers for HV_CORE_TRAP. */ + #define HV_CORE_SET_VER 0x00 + #define HV_CORE_PUTCHAR 0x01 +@@ -2940,16 +2947,23 @@ extern unsigned long sun4v_ncs_request(unsigned long request, + #define HV_GRP_CORE 0x0001 + #define HV_GRP_INTR 0x0002 + #define HV_GRP_SOFT_STATE 0x0003 ++#define HV_GRP_TM 0x0080 + #define HV_GRP_PCI 0x0100 + #define HV_GRP_LDOM 0x0101 + #define HV_GRP_SVC_CHAN 0x0102 + #define HV_GRP_NCS 0x0103 + #define HV_GRP_RNG 0x0104 ++#define HV_GRP_PBOOT 0x0105 ++#define HV_GRP_TPM 0x0107 ++#define HV_GRP_SDIO 0x0108 ++#define HV_GRP_SDIO_ERR 0x0109 ++#define HV_GRP_REBOOT_DATA 0x0110 + #define HV_GRP_NIAG_PERF 0x0200 + #define HV_GRP_FIRE_PERF 0x0201 + #define HV_GRP_N2_CPU 0x0202 + #define HV_GRP_NIU 0x0204 + #define HV_GRP_VF_CPU 0x0205 ++#define HV_GRP_KT_CPU 0x0209 + #define HV_GRP_DIAG 0x0300 + + #ifndef __ASSEMBLY__ +diff --git a/arch/sparc/include/asm/spitfire.h b/arch/sparc/include/asm/spitfire.h +index f0d0c40..55a17c6 100644 +--- a/arch/sparc/include/asm/spitfire.h ++++ b/arch/sparc/include/asm/spitfire.h +@@ -42,6 +42,7 @@ + #define SUN4V_CHIP_INVALID 0x00 + #define SUN4V_CHIP_NIAGARA1 0x01 + #define SUN4V_CHIP_NIAGARA2 0x02 ++#define SUN4V_CHIP_NIAGARA3 0x03 + #define SUN4V_CHIP_UNKNOWN 0xff + + #ifndef __ASSEMBLY__ +diff --git a/arch/sparc/include/asm/tsb.h b/arch/sparc/include/asm/tsb.h +index 83c571d..1a8afd1 100644 +--- a/arch/sparc/include/asm/tsb.h ++++ b/arch/sparc/include/asm/tsb.h +@@ -133,29 +133,6 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end; + sub TSB, 0x8, TSB; \ + TSB_STORE(TSB, TAG); + +-#define KTSB_LOAD_QUAD(TSB, REG) \ +- ldda [TSB] ASI_NUCLEUS_QUAD_LDD, REG; +- +-#define KTSB_STORE(ADDR, VAL) \ +- stxa VAL, [ADDR] ASI_N; +- +-#define KTSB_LOCK_TAG(TSB, REG1, REG2) \ +-99: lduwa [TSB] ASI_N, REG1; \ +- sethi %hi(TSB_TAG_LOCK_HIGH), REG2;\ +- andcc REG1, REG2, %g0; \ +- bne,pn %icc, 99b; \ +- nop; \ +- casa [TSB] ASI_N, REG1, REG2;\ +- cmp REG1, REG2; \ +- bne,pn %icc, 99b; \ +- nop; \ +- +-#define KTSB_WRITE(TSB, TTE, TAG) \ +- add TSB, 0x8, TSB; \ +- stxa TTE, [TSB] ASI_N; \ +- sub TSB, 0x8, TSB; \ +- stxa TAG, [TSB] ASI_N; +- + /* Do a kernel page table walk. Leaves physical PTE pointer in + * REG1. Jumps to FAIL_LABEL on early page table walk termination. + * VADDR will not be clobbered, but REG2 will. +@@ -239,6 +216,8 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end; + (KERNEL_TSB_SIZE_BYTES / 16) + #define KERNEL_TSB4M_NENTRIES 4096 + ++#define KTSB_PHYS_SHIFT 15 ++ + /* Do a kernel TSB lookup at tl>0 on VADDR+TAG, branch to OK_LABEL + * on TSB hit. REG1, REG2, REG3, and REG4 are used as temporaries + * and the found TTE will be left in REG1. REG3 and REG4 must +@@ -247,13 +226,22 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end; + * VADDR and TAG will be preserved and not clobbered by this macro. + */ + #define KERN_TSB_LOOKUP_TL1(VADDR, TAG, REG1, REG2, REG3, REG4, OK_LABEL) \ +- sethi %hi(swapper_tsb), REG1; \ ++661: sethi %hi(swapper_tsb), REG1; \ + or REG1, %lo(swapper_tsb), REG1; \ ++ .section .swapper_tsb_phys_patch, "ax"; \ ++ .word 661b; \ ++ .previous; \ ++661: nop; \ ++ .section .tsb_ldquad_phys_patch, "ax"; \ ++ .word 661b; \ ++ sllx REG1, KTSB_PHYS_SHIFT, REG1; \ ++ sllx REG1, KTSB_PHYS_SHIFT, REG1; \ ++ .previous; \ + srlx VADDR, PAGE_SHIFT, REG2; \ + and REG2, (KERNEL_TSB_NENTRIES - 1), REG2; \ + sllx REG2, 4, REG2; \ + add REG1, REG2, REG2; \ +- KTSB_LOAD_QUAD(REG2, REG3); \ ++ TSB_LOAD_QUAD(REG2, REG3); \ + cmp REG3, TAG; \ + be,a,pt %xcc, OK_LABEL; \ + mov REG4, REG1; +@@ -263,12 +251,21 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end; + * we can make use of that for the index computation. + */ + #define KERN_TSB4M_LOOKUP_TL1(TAG, REG1, REG2, REG3, REG4, OK_LABEL) \ +- sethi %hi(swapper_4m_tsb), REG1; \ ++661: sethi %hi(swapper_4m_tsb), REG1; \ + or REG1, %lo(swapper_4m_tsb), REG1; \ ++ .section .swapper_4m_tsb_phys_patch, "ax"; \ ++ .word 661b; \ ++ .previous; \ ++661: nop; \ ++ .section .tsb_ldquad_phys_patch, "ax"; \ ++ .word 661b; \ ++ sllx REG1, KTSB_PHYS_SHIFT, REG1; \ ++ sllx REG1, KTSB_PHYS_SHIFT, REG1; \ ++ .previous; \ + and TAG, (KERNEL_TSB4M_NENTRIES - 1), REG2; \ + sllx REG2, 4, REG2; \ + add REG1, REG2, REG2; \ +- KTSB_LOAD_QUAD(REG2, REG3); \ ++ TSB_LOAD_QUAD(REG2, REG3); \ + cmp REG3, TAG; \ + be,a,pt %xcc, OK_LABEL; \ + mov REG4, REG1; +diff --git a/arch/sparc/include/asm/xor_64.h b/arch/sparc/include/asm/xor_64.h +index bee4bf4..9ed6ff6 100644 +--- a/arch/sparc/include/asm/xor_64.h ++++ b/arch/sparc/include/asm/xor_64.h +@@ -65,6 +65,7 @@ static struct xor_block_template xor_block_niagara = { + #define XOR_SELECT_TEMPLATE(FASTEST) \ + ((tlb_type == hypervisor && \ + (sun4v_chip_type == SUN4V_CHIP_NIAGARA1 || \ +- sun4v_chip_type == SUN4V_CHIP_NIAGARA2)) ? \ ++ sun4v_chip_type == SUN4V_CHIP_NIAGARA2 || \ ++ sun4v_chip_type == SUN4V_CHIP_NIAGARA3)) ? \ + &xor_block_niagara : \ + &xor_block_VIS) +diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c +index 138dbbc..9810fd8 100644 +--- a/arch/sparc/kernel/cpu.c ++++ b/arch/sparc/kernel/cpu.c +@@ -396,6 +396,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused) + , cpu_data(0).clock_tick + #endif + ); ++ cpucap_info(m); + #ifdef CONFIG_SMP + smp_bogo(m); + #endif +@@ -474,11 +475,18 @@ static void __init sun4v_cpu_probe(void) + sparc_pmu_type = "niagara2"; + break; + ++ case SUN4V_CHIP_NIAGARA3: ++ sparc_cpu_type = "UltraSparc T3 (Niagara3)"; ++ sparc_fpu_type = "UltraSparc T3 integrated FPU"; ++ sparc_pmu_type = "niagara3"; ++ break; ++ + default: + printk(KERN_WARNING "CPU: Unknown sun4v cpu type [%s]\n", + prom_cpu_compatible); + sparc_cpu_type = "Unknown SUN4V CPU"; + sparc_fpu_type = "Unknown SUN4V FPU"; ++ sparc_pmu_type = "Unknown SUN4V PMU"; + break; + } + } +diff --git a/arch/sparc/kernel/cpumap.c b/arch/sparc/kernel/cpumap.c +index d91fd78..4197e8d 100644 +--- a/arch/sparc/kernel/cpumap.c ++++ b/arch/sparc/kernel/cpumap.c +@@ -324,6 +324,7 @@ static int iterate_cpu(struct cpuinfo_tree *t, unsigned int root_index) + switch (sun4v_chip_type) { + case SUN4V_CHIP_NIAGARA1: + case SUN4V_CHIP_NIAGARA2: ++ case SUN4V_CHIP_NIAGARA3: + rover_inc_table = niagara_iterate_method; + break; + default: +diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c +index dd1342c..7429b47 100644 +--- a/arch/sparc/kernel/ds.c ++++ b/arch/sparc/kernel/ds.c +@@ -15,12 +15,15 @@ + #include + #include + ++#include + #include + #include + #include + #include + #include + ++#include "kernel.h" ++ + #define DRV_MODULE_NAME "ds" + #define PFX DRV_MODULE_NAME ": " + #define DRV_MODULE_VERSION "1.0" +@@ -828,18 +831,32 @@ void ldom_set_var(const char *var, const char *value) + } + } + ++static char full_boot_str[256] __attribute__((aligned(32))); ++static int reboot_data_supported; ++ + void ldom_reboot(const char *boot_command) + { + /* Don't bother with any of this if the boot_command + * is empty. + */ + if (boot_command && strlen(boot_command)) { +- char full_boot_str[256]; ++ unsigned long len; + + strcpy(full_boot_str, "boot "); + strcpy(full_boot_str + strlen("boot "), boot_command); ++ len = strlen(full_boot_str); + +- ldom_set_var("reboot-command", full_boot_str); ++ if (reboot_data_supported) { ++ unsigned long ra = kimage_addr_to_ra(full_boot_str); ++ unsigned long hv_ret; ++ ++ hv_ret = sun4v_reboot_data_set(ra, len); ++ if (hv_ret != HV_EOK) ++ pr_err("SUN4V: Unable to set reboot data " ++ "hv_ret=%lu\n", hv_ret); ++ } else { ++ ldom_set_var("reboot-command", full_boot_str); ++ } + } + sun4v_mach_sir(); + } +@@ -1237,6 +1254,16 @@ static struct vio_driver ds_driver = { + + static int __init ds_init(void) + { ++ unsigned long hv_ret, major, minor; ++ ++ if (tlb_type == hypervisor) { ++ hv_ret = sun4v_get_version(HV_GRP_REBOOT_DATA, &major, &minor); ++ if (hv_ret == HV_EOK) { ++ pr_info("SUN4V: Reboot data supported (maj=%lu,min=%lu).\n", ++ major, minor); ++ reboot_data_supported = 1; ++ } ++ } + kthread_run(ds_thread, NULL, "kldomd"); + + return vio_register_driver(&ds_driver); +diff --git a/arch/sparc/kernel/entry.h b/arch/sparc/kernel/entry.h +index d1f1361..e27f8ea 100644 +--- a/arch/sparc/kernel/entry.h ++++ b/arch/sparc/kernel/entry.h +@@ -42,6 +42,20 @@ extern void fpsave(unsigned long *fpregs, unsigned long *fsr, + extern void fpload(unsigned long *fpregs, unsigned long *fsr); + + #else /* CONFIG_SPARC32 */ ++struct popc_3insn_patch_entry { ++ unsigned int addr; ++ unsigned int insns[3]; ++}; ++extern struct popc_3insn_patch_entry __popc_3insn_patch, ++ __popc_3insn_patch_end; ++ ++struct popc_6insn_patch_entry { ++ unsigned int addr; ++ unsigned int insns[6]; ++}; ++extern struct popc_6insn_patch_entry __popc_6insn_patch, ++ __popc_6insn_patch_end; ++ + extern void __init per_cpu_patch(void); + extern void __init sun4v_patch(void); + extern void __init boot_cpu_id_too_large(int cpu); +diff --git a/arch/sparc/kernel/head_64.S b/arch/sparc/kernel/head_64.S +index aa594c7..0cbab31 100644 +--- a/arch/sparc/kernel/head_64.S ++++ b/arch/sparc/kernel/head_64.S +@@ -132,6 +132,8 @@ prom_sun4v_name: + .asciz "sun4v" + prom_niagara_prefix: + .asciz "SUNW,UltraSPARC-T" ++prom_sparc_prefix: ++ .asciz "SPARC-T" + .align 4 + prom_root_compatible: + .skip 64 +@@ -382,6 +384,22 @@ sun4v_chip_type: + 90: ldub [%g7], %g2 + ldub [%g1], %g4 + cmp %g2, %g4 ++ bne,pn %icc, 89f ++ add %g7, 1, %g7 ++ subcc %g3, 1, %g3 ++ bne,pt %xcc, 90b ++ add %g1, 1, %g1 ++ ba,pt %xcc, 91f ++ nop ++ ++89: sethi %hi(prom_cpu_compatible), %g1 ++ or %g1, %lo(prom_cpu_compatible), %g1 ++ sethi %hi(prom_sparc_prefix), %g7 ++ or %g7, %lo(prom_sparc_prefix), %g7 ++ mov 7, %g3 ++90: ldub [%g7], %g2 ++ ldub [%g1], %g4 ++ cmp %g2, %g4 + bne,pn %icc, 4f + add %g7, 1, %g7 + subcc %g3, 1, %g3 +@@ -390,6 +408,15 @@ sun4v_chip_type: + + sethi %hi(prom_cpu_compatible), %g1 + or %g1, %lo(prom_cpu_compatible), %g1 ++ ldub [%g1 + 7], %g2 ++ cmp %g2, '3' ++ be,pt %xcc, 5f ++ mov SUN4V_CHIP_NIAGARA3, %g4 ++ ba,pt %xcc, 4f ++ nop ++ ++91: sethi %hi(prom_cpu_compatible), %g1 ++ or %g1, %lo(prom_cpu_compatible), %g1 + ldub [%g1 + 17], %g2 + cmp %g2, '1' + be,pt %xcc, 5f +@@ -397,6 +424,7 @@ sun4v_chip_type: + cmp %g2, '2' + be,pt %xcc, 5f + mov SUN4V_CHIP_NIAGARA2, %g4 ++ + 4: + mov SUN4V_CHIP_UNKNOWN, %g4 + 5: sethi %hi(sun4v_chip_type), %g2 +@@ -514,6 +542,9 @@ niagara_tlb_fixup: + cmp %g1, SUN4V_CHIP_NIAGARA2 + be,pt %xcc, niagara2_patch + nop ++ cmp %g1, SUN4V_CHIP_NIAGARA3 ++ be,pt %xcc, niagara2_patch ++ nop + + call generic_patch_copyops + nop +@@ -528,7 +559,7 @@ niagara2_patch: + nop + call niagara_patch_bzero + nop +- call niagara2_patch_pageops ++ call niagara_patch_pageops + nop + + ba,a,pt %xcc, 80f +diff --git a/arch/sparc/kernel/hvapi.c b/arch/sparc/kernel/hvapi.c +index 7c60afb..c2d055d 100644 +--- a/arch/sparc/kernel/hvapi.c ++++ b/arch/sparc/kernel/hvapi.c +@@ -28,16 +28,23 @@ static struct api_info api_table[] = { + { .group = HV_GRP_CORE, .flags = FLAG_PRE_API }, + { .group = HV_GRP_INTR, }, + { .group = HV_GRP_SOFT_STATE, }, ++ { .group = HV_GRP_TM, }, + { .group = HV_GRP_PCI, .flags = FLAG_PRE_API }, + { .group = HV_GRP_LDOM, }, + { .group = HV_GRP_SVC_CHAN, .flags = FLAG_PRE_API }, + { .group = HV_GRP_NCS, .flags = FLAG_PRE_API }, + { .group = HV_GRP_RNG, }, ++ { .group = HV_GRP_PBOOT, }, ++ { .group = HV_GRP_TPM, }, ++ { .group = HV_GRP_SDIO, }, ++ { .group = HV_GRP_SDIO_ERR, }, ++ { .group = HV_GRP_REBOOT_DATA, }, + { .group = HV_GRP_NIAG_PERF, .flags = FLAG_PRE_API }, + { .group = HV_GRP_FIRE_PERF, }, + { .group = HV_GRP_N2_CPU, }, + { .group = HV_GRP_NIU, }, + { .group = HV_GRP_VF_CPU, }, ++ { .group = HV_GRP_KT_CPU, }, + { .group = HV_GRP_DIAG, .flags = FLAG_PRE_API }, + }; + +diff --git a/arch/sparc/kernel/hvcalls.S b/arch/sparc/kernel/hvcalls.S +index 8a5f35f..58d60de 100644 +--- a/arch/sparc/kernel/hvcalls.S ++++ b/arch/sparc/kernel/hvcalls.S +@@ -798,3 +798,10 @@ ENTRY(sun4v_niagara2_setperf) + retl + nop + ENDPROC(sun4v_niagara2_setperf) ++ ++ENTRY(sun4v_reboot_data_set) ++ mov HV_FAST_REBOOT_DATA_SET, %o5 ++ ta HV_FAST_TRAP ++ retl ++ nop ++ENDPROC(sun4v_reboot_data_set) +diff --git a/arch/sparc/kernel/kernel.h b/arch/sparc/kernel/kernel.h +index 6f6544c..fd6c36b 100644 +--- a/arch/sparc/kernel/kernel.h ++++ b/arch/sparc/kernel/kernel.h +@@ -4,12 +4,27 @@ + #include + + #include ++#include ++#include + + /* cpu.c */ + extern const char *sparc_pmu_type; + extern unsigned int fsr_storage; + extern int ncpus_probed; + ++#ifdef CONFIG_SPARC64 ++/* setup_64.c */ ++struct seq_file; ++extern void cpucap_info(struct seq_file *); ++ ++static inline unsigned long kimage_addr_to_ra(const char *p) ++{ ++ unsigned long val = (unsigned long) p; ++ ++ return kern_base + (val - KERNBASE); ++} ++#endif ++ + #ifdef CONFIG_SPARC32 + /* cpu.c */ + extern void cpu_probe(void); +diff --git a/arch/sparc/kernel/ktlb.S b/arch/sparc/kernel/ktlb.S +index 1d36147..79f3103 100644 +--- a/arch/sparc/kernel/ktlb.S ++++ b/arch/sparc/kernel/ktlb.S +@@ -47,16 +47,16 @@ kvmap_itlb_tsb_miss: + kvmap_itlb_vmalloc_addr: + KERN_PGTABLE_WALK(%g4, %g5, %g2, kvmap_itlb_longpath) + +- KTSB_LOCK_TAG(%g1, %g2, %g7) ++ TSB_LOCK_TAG(%g1, %g2, %g7) + + /* Load and check PTE. */ + ldxa [%g5] ASI_PHYS_USE_EC, %g5 + mov 1, %g7 + sllx %g7, TSB_TAG_INVALID_BIT, %g7 + brgez,a,pn %g5, kvmap_itlb_longpath +- KTSB_STORE(%g1, %g7) ++ TSB_STORE(%g1, %g7) + +- KTSB_WRITE(%g1, %g5, %g6) ++ TSB_WRITE(%g1, %g5, %g6) + + /* fallthrough to TLB load */ + +@@ -102,9 +102,9 @@ kvmap_itlb_longpath: + kvmap_itlb_obp: + OBP_TRANS_LOOKUP(%g4, %g5, %g2, %g3, kvmap_itlb_longpath) + +- KTSB_LOCK_TAG(%g1, %g2, %g7) ++ TSB_LOCK_TAG(%g1, %g2, %g7) + +- KTSB_WRITE(%g1, %g5, %g6) ++ TSB_WRITE(%g1, %g5, %g6) + + ba,pt %xcc, kvmap_itlb_load + nop +@@ -112,17 +112,17 @@ kvmap_itlb_obp: + kvmap_dtlb_obp: + OBP_TRANS_LOOKUP(%g4, %g5, %g2, %g3, kvmap_dtlb_longpath) + +- KTSB_LOCK_TAG(%g1, %g2, %g7) ++ TSB_LOCK_TAG(%g1, %g2, %g7) + +- KTSB_WRITE(%g1, %g5, %g6) ++ TSB_WRITE(%g1, %g5, %g6) + + ba,pt %xcc, kvmap_dtlb_load + nop + + .align 32 + kvmap_dtlb_tsb4m_load: +- KTSB_LOCK_TAG(%g1, %g2, %g7) +- KTSB_WRITE(%g1, %g5, %g6) ++ TSB_LOCK_TAG(%g1, %g2, %g7) ++ TSB_WRITE(%g1, %g5, %g6) + ba,pt %xcc, kvmap_dtlb_load + nop + +@@ -222,16 +222,16 @@ kvmap_linear_patch: + kvmap_dtlb_vmalloc_addr: + KERN_PGTABLE_WALK(%g4, %g5, %g2, kvmap_dtlb_longpath) + +- KTSB_LOCK_TAG(%g1, %g2, %g7) ++ TSB_LOCK_TAG(%g1, %g2, %g7) + + /* Load and check PTE. */ + ldxa [%g5] ASI_PHYS_USE_EC, %g5 + mov 1, %g7 + sllx %g7, TSB_TAG_INVALID_BIT, %g7 + brgez,a,pn %g5, kvmap_dtlb_longpath +- KTSB_STORE(%g1, %g7) ++ TSB_STORE(%g1, %g7) + +- KTSB_WRITE(%g1, %g5, %g6) ++ TSB_WRITE(%g1, %g5, %g6) + + /* fallthrough to TLB load */ + +diff --git a/arch/sparc/kernel/mdesc.c b/arch/sparc/kernel/mdesc.c +index 42f28c7..acaebb6 100644 +--- a/arch/sparc/kernel/mdesc.c ++++ b/arch/sparc/kernel/mdesc.c +@@ -508,6 +508,8 @@ const char *mdesc_node_name(struct mdesc_handle *hp, u64 node) + } + EXPORT_SYMBOL(mdesc_node_name); + ++static u64 max_cpus = 64; ++ + static void __init report_platform_properties(void) + { + struct mdesc_handle *hp = mdesc_grab(); +@@ -543,8 +545,10 @@ static void __init report_platform_properties(void) + if (v) + printk("PLATFORM: watchdog-max-timeout [%llu ms]\n", *v); + v = mdesc_get_property(hp, pn, "max-cpus", NULL); +- if (v) +- printk("PLATFORM: max-cpus [%llu]\n", *v); ++ if (v) { ++ max_cpus = *v; ++ printk("PLATFORM: max-cpus [%llu]\n", max_cpus); ++ } + + #ifdef CONFIG_SMP + { +@@ -715,7 +719,7 @@ static void __cpuinit set_proc_ids(struct mdesc_handle *hp) + } + + static void __cpuinit get_one_mondo_bits(const u64 *p, unsigned int *mask, +- unsigned char def) ++ unsigned long def, unsigned long max) + { + u64 val; + +@@ -726,6 +730,9 @@ static void __cpuinit get_one_mondo_bits(const u64 *p, unsigned int *mask, + if (!val || val >= 64) + goto use_default; + ++ if (val > max) ++ val = max; ++ + *mask = ((1U << val) * 64U) - 1U; + return; + +@@ -736,19 +743,28 @@ use_default: + static void __cpuinit get_mondo_data(struct mdesc_handle *hp, u64 mp, + struct trap_per_cpu *tb) + { ++ static int printed; + const u64 *val; + + val = mdesc_get_property(hp, mp, "q-cpu-mondo-#bits", NULL); +- get_one_mondo_bits(val, &tb->cpu_mondo_qmask, 7); ++ get_one_mondo_bits(val, &tb->cpu_mondo_qmask, 7, ilog2(max_cpus * 2)); + + val = mdesc_get_property(hp, mp, "q-dev-mondo-#bits", NULL); +- get_one_mondo_bits(val, &tb->dev_mondo_qmask, 7); ++ get_one_mondo_bits(val, &tb->dev_mondo_qmask, 7, 8); + + val = mdesc_get_property(hp, mp, "q-resumable-#bits", NULL); +- get_one_mondo_bits(val, &tb->resum_qmask, 6); ++ get_one_mondo_bits(val, &tb->resum_qmask, 6, 7); + + val = mdesc_get_property(hp, mp, "q-nonresumable-#bits", NULL); +- get_one_mondo_bits(val, &tb->nonresum_qmask, 2); ++ get_one_mondo_bits(val, &tb->nonresum_qmask, 2, 2); ++ if (!printed++) { ++ pr_info("SUN4V: Mondo queue sizes " ++ "[cpu(%u) dev(%u) r(%u) nr(%u)]\n", ++ tb->cpu_mondo_qmask + 1, ++ tb->dev_mondo_qmask + 1, ++ tb->resum_qmask + 1, ++ tb->nonresum_qmask + 1); ++ } + } + + static void * __cpuinit mdesc_iterate_over_cpus(void *(*func)(struct mdesc_handle *, u64, int, void *), void *arg, cpumask_t *mask) +diff --git a/arch/sparc/kernel/pcr.c b/arch/sparc/kernel/pcr.c +index 8ac23e6..343b0f9 100644 +--- a/arch/sparc/kernel/pcr.c ++++ b/arch/sparc/kernel/pcr.c +@@ -80,8 +80,11 @@ static void n2_pcr_write(u64 val) + { + unsigned long ret; + +- ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val); +- if (ret != HV_EOK) ++ if (val & PCR_N2_HTRACE) { ++ ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val); ++ if (ret != HV_EOK) ++ write_pcr(val); ++ } else + write_pcr(val); + } + +@@ -106,6 +109,10 @@ static int __init register_perf_hsvc(void) + perf_hsvc_group = HV_GRP_N2_CPU; + break; + ++ case SUN4V_CHIP_NIAGARA3: ++ perf_hsvc_group = HV_GRP_KT_CPU; ++ break; ++ + default: + return -ENODEV; + } +diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c +index 2cb0e1c..6860d40 100644 +--- a/arch/sparc/kernel/perf_event.c ++++ b/arch/sparc/kernel/perf_event.c +@@ -1301,7 +1301,8 @@ static bool __init supported_pmu(void) + sparc_pmu = &niagara1_pmu; + return true; + } +- if (!strcmp(sparc_pmu_type, "niagara2")) { ++ if (!strcmp(sparc_pmu_type, "niagara2") || ++ !strcmp(sparc_pmu_type, "niagara3")) { + sparc_pmu = &niagara2_pmu; + return true; + } +diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c +index c4dd099..3e9daea 100644 +--- a/arch/sparc/kernel/setup_64.c ++++ b/arch/sparc/kernel/setup_64.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -46,6 +47,8 @@ + #include + #include + #include ++#include ++#include + + #ifdef CONFIG_IP_PNP + #include +@@ -269,6 +272,40 @@ void __init sun4v_patch(void) + sun4v_hvapi_init(); + } + ++static void __init popc_patch(void) ++{ ++ struct popc_3insn_patch_entry *p3; ++ struct popc_6insn_patch_entry *p6; ++ ++ p3 = &__popc_3insn_patch; ++ while (p3 < &__popc_3insn_patch_end) { ++ unsigned long i, addr = p3->addr; ++ ++ for (i = 0; i < 3; i++) { ++ *(unsigned int *) (addr + (i * 4)) = p3->insns[i]; ++ wmb(); ++ __asm__ __volatile__("flush %0" ++ : : "r" (addr + (i * 4))); ++ } ++ ++ p3++; ++ } ++ ++ p6 = &__popc_6insn_patch; ++ while (p6 < &__popc_6insn_patch_end) { ++ unsigned long i, addr = p6->addr; ++ ++ for (i = 0; i < 6; i++) { ++ *(unsigned int *) (addr + (i * 4)) = p6->insns[i]; ++ wmb(); ++ __asm__ __volatile__("flush %0" ++ : : "r" (addr + (i * 4))); ++ } ++ ++ p6++; ++ } ++} ++ + #ifdef CONFIG_SMP + void __init boot_cpu_id_too_large(int cpu) + { +@@ -278,6 +315,154 @@ void __init boot_cpu_id_too_large(int cpu) + } + #endif + ++/* On Ultra, we support all of the v8 capabilities. */ ++unsigned long sparc64_elf_hwcap = (HWCAP_SPARC_FLUSH | HWCAP_SPARC_STBAR | ++ HWCAP_SPARC_SWAP | HWCAP_SPARC_MULDIV | ++ HWCAP_SPARC_V9); ++EXPORT_SYMBOL(sparc64_elf_hwcap); ++ ++static const char *hwcaps[] = { ++ "flush", "stbar", "swap", "muldiv", "v9", ++ "ultra3", "blkinit", "n2", ++ ++ /* These strings are as they appear in the machine description ++ * 'hwcap-list' property for cpu nodes. ++ */ ++ "mul32", "div32", "fsmuld", "v8plus", "popc", "vis", "vis2", ++ "ASIBlkInit", "fmaf", "vis3", "hpc", "random", "trans", "fjfmau", ++ "ima", "cspare", ++}; ++ ++void cpucap_info(struct seq_file *m) ++{ ++ unsigned long caps = sparc64_elf_hwcap; ++ int i, printed = 0; ++ ++ seq_puts(m, "cpucaps\t\t: "); ++ for (i = 0; i < ARRAY_SIZE(hwcaps); i++) { ++ unsigned long bit = 1UL << i; ++ if (caps & bit) { ++ seq_printf(m, "%s%s", ++ printed ? "," : "", hwcaps[i]); ++ printed++; ++ } ++ } ++ seq_putc(m, '\n'); ++} ++ ++static void __init report_hwcaps(unsigned long caps) ++{ ++ int i, printed = 0; ++ ++ printk(KERN_INFO "CPU CAPS: ["); ++ for (i = 0; i < ARRAY_SIZE(hwcaps); i++) { ++ unsigned long bit = 1UL << i; ++ if (caps & bit) { ++ printk(KERN_CONT "%s%s", ++ printed ? "," : "", hwcaps[i]); ++ if (++printed == 8) { ++ printk(KERN_CONT "]\n"); ++ printk(KERN_INFO "CPU CAPS: ["); ++ printed = 0; ++ } ++ } ++ } ++ printk(KERN_CONT "]\n"); ++} ++ ++static unsigned long __init mdesc_cpu_hwcap_list(void) ++{ ++ struct mdesc_handle *hp; ++ unsigned long caps = 0; ++ const char *prop; ++ int len; ++ u64 pn; ++ ++ hp = mdesc_grab(); ++ if (!hp) ++ return 0; ++ ++ pn = mdesc_node_by_name(hp, MDESC_NODE_NULL, "cpu"); ++ if (pn == MDESC_NODE_NULL) ++ goto out; ++ ++ prop = mdesc_get_property(hp, pn, "hwcap-list", &len); ++ if (!prop) ++ goto out; ++ ++ while (len) { ++ int i, plen; ++ ++ for (i = 0; i < ARRAY_SIZE(hwcaps); i++) { ++ unsigned long bit = 1UL << i; ++ ++ if (!strcmp(prop, hwcaps[i])) { ++ caps |= bit; ++ break; ++ } ++ } ++ ++ plen = strlen(prop) + 1; ++ prop += plen; ++ len -= plen; ++ } ++ ++out: ++ mdesc_release(hp); ++ return caps; ++} ++ ++/* This yields a mask that user programs can use to figure out what ++ * instruction set this cpu supports. ++ */ ++static void __init init_sparc64_elf_hwcap(void) ++{ ++ unsigned long cap = sparc64_elf_hwcap; ++ unsigned long mdesc_caps; ++ ++ if (tlb_type == cheetah || tlb_type == cheetah_plus) ++ cap |= HWCAP_SPARC_ULTRA3; ++ else if (tlb_type == hypervisor) { ++ if (sun4v_chip_type == SUN4V_CHIP_NIAGARA1 || ++ sun4v_chip_type == SUN4V_CHIP_NIAGARA2 || ++ sun4v_chip_type == SUN4V_CHIP_NIAGARA3) ++ cap |= HWCAP_SPARC_BLKINIT; ++ if (sun4v_chip_type == SUN4V_CHIP_NIAGARA2 || ++ sun4v_chip_type == SUN4V_CHIP_NIAGARA3) ++ cap |= HWCAP_SPARC_N2; ++ } ++ ++ cap |= (AV_SPARC_MUL32 | AV_SPARC_DIV32 | AV_SPARC_V8PLUS); ++ ++ mdesc_caps = mdesc_cpu_hwcap_list(); ++ if (!mdesc_caps) { ++ if (tlb_type == spitfire) ++ cap |= AV_SPARC_VIS; ++ if (tlb_type == cheetah || tlb_type == cheetah_plus) ++ cap |= AV_SPARC_VIS | AV_SPARC_VIS2; ++ if (tlb_type == cheetah_plus) ++ cap |= AV_SPARC_POPC; ++ if (tlb_type == hypervisor) { ++ if (sun4v_chip_type == SUN4V_CHIP_NIAGARA1) ++ cap |= AV_SPARC_ASI_BLK_INIT; ++ if (sun4v_chip_type == SUN4V_CHIP_NIAGARA2 || ++ sun4v_chip_type == SUN4V_CHIP_NIAGARA3) ++ cap |= (AV_SPARC_VIS | AV_SPARC_VIS2 | ++ AV_SPARC_ASI_BLK_INIT | ++ AV_SPARC_POPC); ++ if (sun4v_chip_type == SUN4V_CHIP_NIAGARA3) ++ cap |= (AV_SPARC_VIS3 | AV_SPARC_HPC | ++ AV_SPARC_FMAF); ++ } ++ } ++ sparc64_elf_hwcap = cap | mdesc_caps; ++ ++ report_hwcaps(sparc64_elf_hwcap); ++ ++ if (sparc64_elf_hwcap & AV_SPARC_POPC) ++ popc_patch(); ++} ++ + void __init setup_arch(char **cmdline_p) + { + /* Initialize PROM console and command line. */ +@@ -337,6 +522,7 @@ void __init setup_arch(char **cmdline_p) + init_cur_cpu_trap(current_thread_info()); + + paging_init(); ++ init_sparc64_elf_hwcap(); + } + + extern int stop_a_enabled; +diff --git a/arch/sparc/kernel/sparc_ksyms_64.c b/arch/sparc/kernel/sparc_ksyms_64.c +index 372ad59..83b47ab 100644 +--- a/arch/sparc/kernel/sparc_ksyms_64.c ++++ b/arch/sparc/kernel/sparc_ksyms_64.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -38,5 +39,15 @@ EXPORT_SYMBOL(sun4v_niagara_setperf); + EXPORT_SYMBOL(sun4v_niagara2_getperf); + EXPORT_SYMBOL(sun4v_niagara2_setperf); + ++/* from hweight.S */ ++EXPORT_SYMBOL(__arch_hweight8); ++EXPORT_SYMBOL(__arch_hweight16); ++EXPORT_SYMBOL(__arch_hweight32); ++EXPORT_SYMBOL(__arch_hweight64); ++ ++/* from ffs_ffz.S */ ++EXPORT_SYMBOL(ffs); ++EXPORT_SYMBOL(__ffs); ++ + /* Exporting a symbol from /init/main.c */ + EXPORT_SYMBOL(saved_command_line); +diff --git a/arch/sparc/kernel/sstate.c b/arch/sparc/kernel/sstate.c +index 8cdbe59..c59af54 100644 +--- a/arch/sparc/kernel/sstate.c ++++ b/arch/sparc/kernel/sstate.c +@@ -14,14 +14,9 @@ + #include + #include + +-static int hv_supports_soft_state; +- +-static unsigned long kimage_addr_to_ra(const char *p) +-{ +- unsigned long val = (unsigned long) p; ++#include "kernel.h" + +- return kern_base + (val - KERNBASE); +-} ++static int hv_supports_soft_state; + + static void do_set_sstate(unsigned long state, const char *msg) + { +diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c +index b2b019e..9043106 100644 +--- a/arch/sparc/kernel/unaligned_64.c ++++ b/arch/sparc/kernel/unaligned_64.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + + enum direction { +@@ -373,16 +374,11 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn) + } + } + +-static char popc_helper[] = { +-0, 1, 1, 2, 1, 2, 2, 3, +-1, 2, 2, 3, 2, 3, 3, 4, +-}; +- + int handle_popc(u32 insn, struct pt_regs *regs) + { +- u64 value; +- int ret, i, rd = ((insn >> 25) & 0x1f); + int from_kernel = (regs->tstate & TSTATE_PRIV) != 0; ++ int ret, rd = ((insn >> 25) & 0x1f); ++ u64 value; + + perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, 0, regs, 0); + if (insn & 0x2000) { +@@ -392,10 +388,7 @@ int handle_popc(u32 insn, struct pt_regs *regs) + maybe_flush_windows(0, insn & 0x1f, rd, from_kernel); + value = fetch_reg(insn & 0x1f, regs); + } +- for (ret = 0, i = 0; i < 16; i++) { +- ret += popc_helper[value & 0xf]; +- value >>= 4; +- } ++ ret = hweight64(value); + if (rd < 16) { + if (rd) + regs->u_regs[rd] = ret; +diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S +index c022075..0e16056 100644 +--- a/arch/sparc/kernel/vmlinux.lds.S ++++ b/arch/sparc/kernel/vmlinux.lds.S +@@ -107,7 +107,26 @@ SECTIONS + *(.sun4v_2insn_patch) + __sun4v_2insn_patch_end = .; + } +- ++ .swapper_tsb_phys_patch : { ++ __swapper_tsb_phys_patch = .; ++ *(.swapper_tsb_phys_patch) ++ __swapper_tsb_phys_patch_end = .; ++ } ++ .swapper_4m_tsb_phys_patch : { ++ __swapper_4m_tsb_phys_patch = .; ++ *(.swapper_4m_tsb_phys_patch) ++ __swapper_4m_tsb_phys_patch_end = .; ++ } ++ .popc_3insn_patch : { ++ __popc_3insn_patch = .; ++ *(.popc_3insn_patch) ++ __popc_3insn_patch_end = .; ++ } ++ .popc_6insn_patch : { ++ __popc_6insn_patch = .; ++ *(.popc_6insn_patch) ++ __popc_6insn_patch_end = .; ++ } + PERCPU_SECTION(SMP_CACHE_BYTES) + + . = ALIGN(PAGE_SIZE); +diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile +index 7f01b8f..a3fc437 100644 +--- a/arch/sparc/lib/Makefile ++++ b/arch/sparc/lib/Makefile +@@ -31,13 +31,13 @@ lib-$(CONFIG_SPARC64) += NGmemcpy.o NGcopy_from_user.o NGcopy_to_user.o + lib-$(CONFIG_SPARC64) += NGpatch.o NGpage.o NGbzero.o + + lib-$(CONFIG_SPARC64) += NG2memcpy.o NG2copy_from_user.o NG2copy_to_user.o +-lib-$(CONFIG_SPARC64) += NG2patch.o NG2page.o ++lib-$(CONFIG_SPARC64) += NG2patch.o + + lib-$(CONFIG_SPARC64) += GENmemcpy.o GENcopy_from_user.o GENcopy_to_user.o + lib-$(CONFIG_SPARC64) += GENpatch.o GENpage.o GENbzero.o + + lib-$(CONFIG_SPARC64) += copy_in_user.o user_fixup.o memmove.o +-lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o ++lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o hweight.o ffs.o + + obj-y += iomap.o + obj-$(CONFIG_SPARC32) += atomic32.o +diff --git a/arch/sparc/lib/NG2page.S b/arch/sparc/lib/NG2page.S +deleted file mode 100644 +index 73b6b7c..0000000 +--- a/arch/sparc/lib/NG2page.S ++++ /dev/null +@@ -1,61 +0,0 @@ +-/* NG2page.S: Niagara-2 optimized clear and copy page. +- * +- * Copyright (C) 2007 (davem@davemloft.net) +- */ +- +-#include +-#include +-#include +- +- .text +- .align 32 +- +- /* This is heavily simplified from the sun4u variants +- * because Niagara-2 does not have any D-cache aliasing issues. +- */ +-NG2copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ +- prefetch [%o1 + 0x00], #one_read +- prefetch [%o1 + 0x40], #one_read +- VISEntryHalf +- set PAGE_SIZE, %g7 +- sub %o0, %o1, %g3 +-1: stxa %g0, [%o1 + %g3] ASI_BLK_INIT_QUAD_LDD_P +- subcc %g7, 64, %g7 +- ldda [%o1] ASI_BLK_P, %f0 +- stda %f0, [%o1 + %g3] ASI_BLK_P +- add %o1, 64, %o1 +- bne,pt %xcc, 1b +- prefetch [%o1 + 0x40], #one_read +- membar #Sync +- VISExitHalf +- retl +- nop +- +-#define BRANCH_ALWAYS 0x10680000 +-#define NOP 0x01000000 +-#define NG_DO_PATCH(OLD, NEW) \ +- sethi %hi(NEW), %g1; \ +- or %g1, %lo(NEW), %g1; \ +- sethi %hi(OLD), %g2; \ +- or %g2, %lo(OLD), %g2; \ +- sub %g1, %g2, %g1; \ +- sethi %hi(BRANCH_ALWAYS), %g3; \ +- sll %g1, 11, %g1; \ +- srl %g1, 11 + 2, %g1; \ +- or %g3, %lo(BRANCH_ALWAYS), %g3; \ +- or %g3, %g1, %g3; \ +- stw %g3, [%g2]; \ +- sethi %hi(NOP), %g3; \ +- or %g3, %lo(NOP), %g3; \ +- stw %g3, [%g2 + 0x4]; \ +- flush %g2; +- +- .globl niagara2_patch_pageops +- .type niagara2_patch_pageops,#function +-niagara2_patch_pageops: +- NG_DO_PATCH(copy_user_page, NG2copy_user_page) +- NG_DO_PATCH(_clear_page, NGclear_page) +- NG_DO_PATCH(clear_user_page, NGclear_user_page) +- retl +- nop +- .size niagara2_patch_pageops,.-niagara2_patch_pageops +diff --git a/arch/sparc/lib/NGpage.S b/arch/sparc/lib/NGpage.S +index 428920d..b9e790b 100644 +--- a/arch/sparc/lib/NGpage.S ++++ b/arch/sparc/lib/NGpage.S +@@ -16,55 +16,91 @@ + */ + + NGcopy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ +- prefetch [%o1 + 0x00], #one_read +- mov 8, %g1 +- mov 16, %g2 +- mov 24, %g3 ++ save %sp, -192, %sp ++ rd %asi, %g3 ++ wr %g0, ASI_BLK_INIT_QUAD_LDD_P, %asi + set PAGE_SIZE, %g7 ++ prefetch [%i1 + 0x00], #one_read ++ prefetch [%i1 + 0x40], #one_read + +-1: ldda [%o1 + %g0] ASI_BLK_INIT_QUAD_LDD_P, %o2 +- ldda [%o1 + %g2] ASI_BLK_INIT_QUAD_LDD_P, %o4 +- prefetch [%o1 + 0x40], #one_read +- add %o1, 32, %o1 +- stxa %o2, [%o0 + %g0] ASI_BLK_INIT_QUAD_LDD_P +- stxa %o3, [%o0 + %g1] ASI_BLK_INIT_QUAD_LDD_P +- ldda [%o1 + %g0] ASI_BLK_INIT_QUAD_LDD_P, %o2 +- stxa %o4, [%o0 + %g2] ASI_BLK_INIT_QUAD_LDD_P +- stxa %o5, [%o0 + %g3] ASI_BLK_INIT_QUAD_LDD_P +- ldda [%o1 + %g2] ASI_BLK_INIT_QUAD_LDD_P, %o4 +- add %o1, 32, %o1 +- add %o0, 32, %o0 +- stxa %o2, [%o0 + %g0] ASI_BLK_INIT_QUAD_LDD_P +- stxa %o3, [%o0 + %g1] ASI_BLK_INIT_QUAD_LDD_P +- stxa %o4, [%o0 + %g2] ASI_BLK_INIT_QUAD_LDD_P +- stxa %o5, [%o0 + %g3] ASI_BLK_INIT_QUAD_LDD_P +- subcc %g7, 64, %g7 ++1: prefetch [%i1 + 0x80], #one_read ++ prefetch [%i1 + 0xc0], #one_read ++ ldda [%i1 + 0x00] %asi, %o2 ++ ldda [%i1 + 0x10] %asi, %o4 ++ ldda [%i1 + 0x20] %asi, %l2 ++ ldda [%i1 + 0x30] %asi, %l4 ++ stxa %o2, [%i0 + 0x00] %asi ++ stxa %o3, [%i0 + 0x08] %asi ++ stxa %o4, [%i0 + 0x10] %asi ++ stxa %o5, [%i0 + 0x18] %asi ++ stxa %l2, [%i0 + 0x20] %asi ++ stxa %l3, [%i0 + 0x28] %asi ++ stxa %l4, [%i0 + 0x30] %asi ++ stxa %l5, [%i0 + 0x38] %asi ++ ldda [%i1 + 0x40] %asi, %o2 ++ ldda [%i1 + 0x50] %asi, %o4 ++ ldda [%i1 + 0x60] %asi, %l2 ++ ldda [%i1 + 0x70] %asi, %l4 ++ stxa %o2, [%i0 + 0x40] %asi ++ stxa %o3, [%i0 + 0x48] %asi ++ stxa %o4, [%i0 + 0x50] %asi ++ stxa %o5, [%i0 + 0x58] %asi ++ stxa %l2, [%i0 + 0x60] %asi ++ stxa %l3, [%i0 + 0x68] %asi ++ stxa %l4, [%i0 + 0x70] %asi ++ stxa %l5, [%i0 + 0x78] %asi ++ add %i1, 128, %i1 ++ subcc %g7, 128, %g7 + bne,pt %xcc, 1b +- add %o0, 32, %o0 ++ add %i0, 128, %i0 ++ wr %g3, 0x0, %asi + membar #Sync +- retl +- nop ++ ret ++ restore + +- .globl NGclear_page, NGclear_user_page ++ .align 32 + NGclear_page: /* %o0=dest */ + NGclear_user_page: /* %o0=dest, %o1=vaddr */ +- mov 8, %g1 +- mov 16, %g2 +- mov 24, %g3 ++ rd %asi, %g3 ++ wr %g0, ASI_BLK_INIT_QUAD_LDD_P, %asi + set PAGE_SIZE, %g7 + +-1: stxa %g0, [%o0 + %g0] ASI_BLK_INIT_QUAD_LDD_P +- stxa %g0, [%o0 + %g1] ASI_BLK_INIT_QUAD_LDD_P +- stxa %g0, [%o0 + %g2] ASI_BLK_INIT_QUAD_LDD_P +- stxa %g0, [%o0 + %g3] ASI_BLK_INIT_QUAD_LDD_P +- add %o0, 32, %o0 +- stxa %g0, [%o0 + %g0] ASI_BLK_INIT_QUAD_LDD_P +- stxa %g0, [%o0 + %g1] ASI_BLK_INIT_QUAD_LDD_P +- stxa %g0, [%o0 + %g2] ASI_BLK_INIT_QUAD_LDD_P +- stxa %g0, [%o0 + %g3] ASI_BLK_INIT_QUAD_LDD_P +- subcc %g7, 64, %g7 ++1: stxa %g0, [%o0 + 0x00] %asi ++ stxa %g0, [%o0 + 0x08] %asi ++ stxa %g0, [%o0 + 0x10] %asi ++ stxa %g0, [%o0 + 0x18] %asi ++ stxa %g0, [%o0 + 0x20] %asi ++ stxa %g0, [%o0 + 0x28] %asi ++ stxa %g0, [%o0 + 0x30] %asi ++ stxa %g0, [%o0 + 0x38] %asi ++ stxa %g0, [%o0 + 0x40] %asi ++ stxa %g0, [%o0 + 0x48] %asi ++ stxa %g0, [%o0 + 0x50] %asi ++ stxa %g0, [%o0 + 0x58] %asi ++ stxa %g0, [%o0 + 0x60] %asi ++ stxa %g0, [%o0 + 0x68] %asi ++ stxa %g0, [%o0 + 0x70] %asi ++ stxa %g0, [%o0 + 0x78] %asi ++ stxa %g0, [%o0 + 0x80] %asi ++ stxa %g0, [%o0 + 0x88] %asi ++ stxa %g0, [%o0 + 0x90] %asi ++ stxa %g0, [%o0 + 0x98] %asi ++ stxa %g0, [%o0 + 0xa0] %asi ++ stxa %g0, [%o0 + 0xa8] %asi ++ stxa %g0, [%o0 + 0xb0] %asi ++ stxa %g0, [%o0 + 0xb8] %asi ++ stxa %g0, [%o0 + 0xc0] %asi ++ stxa %g0, [%o0 + 0xc8] %asi ++ stxa %g0, [%o0 + 0xd0] %asi ++ stxa %g0, [%o0 + 0xd8] %asi ++ stxa %g0, [%o0 + 0xe0] %asi ++ stxa %g0, [%o0 + 0xe8] %asi ++ stxa %g0, [%o0 + 0xf0] %asi ++ stxa %g0, [%o0 + 0xf8] %asi ++ subcc %g7, 256, %g7 + bne,pt %xcc, 1b +- add %o0, 32, %o0 ++ add %o0, 256, %o0 ++ wr %g3, 0x0, %asi + membar #Sync + retl + nop +diff --git a/arch/sparc/lib/ffs.S b/arch/sparc/lib/ffs.S +new file mode 100644 +index 0000000..b39389f +--- /dev/null ++++ b/arch/sparc/lib/ffs.S +@@ -0,0 +1,84 @@ ++#include ++ ++ .register %g2,#scratch ++ ++ .text ++ .align 32 ++ ++ENTRY(ffs) ++ brnz,pt %o0, 1f ++ mov 1, %o1 ++ retl ++ clr %o0 ++ nop ++ nop ++ENTRY(__ffs) ++ sllx %o0, 32, %g1 /* 1 */ ++ srlx %o0, 32, %g2 ++ ++ clr %o1 /* 2 */ ++ movrz %g1, %g2, %o0 ++ ++ movrz %g1, 32, %o1 /* 3 */ ++1: clr %o2 ++ ++ sllx %o0, (64 - 16), %g1 /* 4 */ ++ srlx %o0, 16, %g2 ++ ++ movrz %g1, %g2, %o0 /* 5 */ ++ clr %o3 ++ ++ movrz %g1, 16, %o2 /* 6 */ ++ clr %o4 ++ ++ and %o0, 0xff, %g1 /* 7 */ ++ srlx %o0, 8, %g2 ++ ++ movrz %g1, %g2, %o0 /* 8 */ ++ clr %o5 ++ ++ movrz %g1, 8, %o3 /* 9 */ ++ add %o2, %o1, %o2 ++ ++ and %o0, 0xf, %g1 /* 10 */ ++ srlx %o0, 4, %g2 ++ ++ movrz %g1, %g2, %o0 /* 11 */ ++ add %o2, %o3, %o2 ++ ++ movrz %g1, 4, %o4 /* 12 */ ++ ++ and %o0, 0x3, %g1 /* 13 */ ++ srlx %o0, 2, %g2 ++ ++ movrz %g1, %g2, %o0 /* 14 */ ++ add %o2, %o4, %o2 ++ ++ movrz %g1, 2, %o5 /* 15 */ ++ ++ and %o0, 0x1, %g1 /* 16 */ ++ ++ add %o2, %o5, %o2 /* 17 */ ++ xor %g1, 0x1, %g1 ++ ++ retl /* 18 */ ++ add %o2, %g1, %o0 ++ENDPROC(ffs) ++ENDPROC(__ffs) ++ ++ .section .popc_6insn_patch, "ax" ++ .word ffs ++ brz,pn %o0, 98f ++ neg %o0, %g1 ++ xnor %o0, %g1, %o1 ++ popc %o1, %o0 ++98: retl ++ nop ++ .word __ffs ++ neg %o0, %g1 ++ xnor %o0, %g1, %o1 ++ popc %o1, %o0 ++ retl ++ sub %o0, 1, %o0 ++ nop ++ .previous +diff --git a/arch/sparc/lib/hweight.S b/arch/sparc/lib/hweight.S +new file mode 100644 +index 0000000..95414e0 +--- /dev/null ++++ b/arch/sparc/lib/hweight.S +@@ -0,0 +1,51 @@ ++#include ++ ++ .text ++ .align 32 ++ENTRY(__arch_hweight8) ++ ba,pt %xcc, __sw_hweight8 ++ nop ++ nop ++ENDPROC(__arch_hweight8) ++ .section .popc_3insn_patch, "ax" ++ .word __arch_hweight8 ++ sllx %o0, 64-8, %g1 ++ retl ++ popc %g1, %o0 ++ .previous ++ ++ENTRY(__arch_hweight16) ++ ba,pt %xcc, __sw_hweight16 ++ nop ++ nop ++ENDPROC(__arch_hweight16) ++ .section .popc_3insn_patch, "ax" ++ .word __arch_hweight16 ++ sllx %o0, 64-16, %g1 ++ retl ++ popc %g1, %o0 ++ .previous ++ ++ENTRY(__arch_hweight32) ++ ba,pt %xcc, __sw_hweight32 ++ nop ++ nop ++ENDPROC(__arch_hweight32) ++ .section .popc_3insn_patch, "ax" ++ .word __arch_hweight32 ++ sllx %o0, 64-32, %g1 ++ retl ++ popc %g1, %o0 ++ .previous ++ ++ENTRY(__arch_hweight64) ++ ba,pt %xcc, __sw_hweight64 ++ nop ++ nop ++ENDPROC(__arch_hweight64) ++ .section .popc_3insn_patch, "ax" ++ .word __arch_hweight64 ++ retl ++ popc %o0, %o0 ++ nop ++ .previous +diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c +index 3fd8e18..581531d 100644 +--- a/arch/sparc/mm/init_64.c ++++ b/arch/sparc/mm/init_64.c +@@ -1597,6 +1597,44 @@ static void __init tsb_phys_patch(void) + static struct hv_tsb_descr ktsb_descr[NUM_KTSB_DESCR]; + extern struct tsb swapper_tsb[KERNEL_TSB_NENTRIES]; + ++static void patch_one_ktsb_phys(unsigned int *start, unsigned int *end, unsigned long pa) ++{ ++ pa >>= KTSB_PHYS_SHIFT; ++ ++ while (start < end) { ++ unsigned int *ia = (unsigned int *)(unsigned long)*start; ++ ++ ia[0] = (ia[0] & ~0x3fffff) | (pa >> 10); ++ __asm__ __volatile__("flush %0" : : "r" (ia)); ++ ++ ia[1] = (ia[1] & ~0x3ff) | (pa & 0x3ff); ++ __asm__ __volatile__("flush %0" : : "r" (ia + 1)); ++ ++ start++; ++ } ++} ++ ++static void ktsb_phys_patch(void) ++{ ++ extern unsigned int __swapper_tsb_phys_patch; ++ extern unsigned int __swapper_tsb_phys_patch_end; ++ unsigned long ktsb_pa; ++ ++ ktsb_pa = kern_base + ((unsigned long)&swapper_tsb[0] - KERNBASE); ++ patch_one_ktsb_phys(&__swapper_tsb_phys_patch, ++ &__swapper_tsb_phys_patch_end, ktsb_pa); ++#ifndef CONFIG_DEBUG_PAGEALLOC ++ { ++ extern unsigned int __swapper_4m_tsb_phys_patch; ++ extern unsigned int __swapper_4m_tsb_phys_patch_end; ++ ktsb_pa = (kern_base + ++ ((unsigned long)&swapper_4m_tsb[0] - KERNBASE)); ++ patch_one_ktsb_phys(&__swapper_4m_tsb_phys_patch, ++ &__swapper_4m_tsb_phys_patch_end, ktsb_pa); ++ } ++#endif ++} ++ + static void __init sun4v_ktsb_init(void) + { + unsigned long ktsb_pa; +@@ -1716,8 +1754,10 @@ void __init paging_init(void) + sun4u_pgprot_init(); + + if (tlb_type == cheetah_plus || +- tlb_type == hypervisor) ++ tlb_type == hypervisor) { + tsb_phys_patch(); ++ ktsb_phys_patch(); ++ } + + if (tlb_type == hypervisor) { + sun4v_patch_tlb_handlers(); +diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile +index 17c565d..a6575b9 100644 +--- a/arch/x86/xen/Makefile ++++ b/arch/x86/xen/Makefile +@@ -18,5 +18,5 @@ obj-y := enlighten.o setup.o multicalls.o mmu.o irq.o \ + obj-$(CONFIG_SMP) += smp.o + obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o + obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o +- ++obj-$(CONFIG_XEN_DOM0) += vga.o + obj-$(CONFIG_SWIOTLB_XEN) += pci-swiotlb-xen.o +diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c +index 5525163..5325742 100644 +--- a/arch/x86/xen/enlighten.c ++++ b/arch/x86/xen/enlighten.c +@@ -1248,6 +1248,14 @@ asmlinkage void __init xen_start_kernel(void) + if (pci_xen) + x86_init.pci.arch_init = pci_xen_init; + } else { ++ const struct dom0_vga_console_info *info = ++ (void *)((char *)xen_start_info + ++ xen_start_info->console.dom0.info_off); ++ ++ xen_init_vga(info, xen_start_info->console.dom0.info_size); ++ xen_start_info->console.domU.mfn = 0; ++ xen_start_info->console.domU.evtchn = 0; ++ + /* Make sure ACS will be enabled */ + pci_request_acs(); + } +diff --git a/arch/x86/xen/vga.c b/arch/x86/xen/vga.c +new file mode 100644 +index 0000000..1cd7f4d +--- /dev/null ++++ b/arch/x86/xen/vga.c +@@ -0,0 +1,67 @@ ++#include ++#include ++ ++#include ++#include ++ ++#include ++ ++#include "xen-ops.h" ++ ++void __init xen_init_vga(const struct dom0_vga_console_info *info, size_t size) ++{ ++ struct screen_info *screen_info = &boot_params.screen_info; ++ ++ /* This is drawn from a dump from vgacon:startup in ++ * standard Linux. */ ++ screen_info->orig_video_mode = 3; ++ screen_info->orig_video_isVGA = 1; ++ screen_info->orig_video_lines = 25; ++ screen_info->orig_video_cols = 80; ++ screen_info->orig_video_ega_bx = 3; ++ screen_info->orig_video_points = 16; ++ screen_info->orig_y = screen_info->orig_video_lines - 1; ++ ++ switch (info->video_type) { ++ case XEN_VGATYPE_TEXT_MODE_3: ++ if (size < offsetof(struct dom0_vga_console_info, u.text_mode_3) ++ + sizeof(info->u.text_mode_3)) ++ break; ++ screen_info->orig_video_lines = info->u.text_mode_3.rows; ++ screen_info->orig_video_cols = info->u.text_mode_3.columns; ++ screen_info->orig_x = info->u.text_mode_3.cursor_x; ++ screen_info->orig_y = info->u.text_mode_3.cursor_y; ++ screen_info->orig_video_points = ++ info->u.text_mode_3.font_height; ++ break; ++ ++ case XEN_VGATYPE_VESA_LFB: ++ if (size < offsetof(struct dom0_vga_console_info, ++ u.vesa_lfb.gbl_caps)) ++ break; ++ screen_info->orig_video_isVGA = VIDEO_TYPE_VLFB; ++ screen_info->lfb_width = info->u.vesa_lfb.width; ++ screen_info->lfb_height = info->u.vesa_lfb.height; ++ screen_info->lfb_depth = info->u.vesa_lfb.bits_per_pixel; ++ screen_info->lfb_base = info->u.vesa_lfb.lfb_base; ++ screen_info->lfb_size = info->u.vesa_lfb.lfb_size; ++ screen_info->lfb_linelength = info->u.vesa_lfb.bytes_per_line; ++ screen_info->red_size = info->u.vesa_lfb.red_size; ++ screen_info->red_pos = info->u.vesa_lfb.red_pos; ++ screen_info->green_size = info->u.vesa_lfb.green_size; ++ screen_info->green_pos = info->u.vesa_lfb.green_pos; ++ screen_info->blue_size = info->u.vesa_lfb.blue_size; ++ screen_info->blue_pos = info->u.vesa_lfb.blue_pos; ++ screen_info->rsvd_size = info->u.vesa_lfb.rsvd_size; ++ screen_info->rsvd_pos = info->u.vesa_lfb.rsvd_pos; ++ if (size >= offsetof(struct dom0_vga_console_info, ++ u.vesa_lfb.gbl_caps) ++ + sizeof(info->u.vesa_lfb.gbl_caps)) ++ screen_info->capabilities = info->u.vesa_lfb.gbl_caps; ++ if (size >= offsetof(struct dom0_vga_console_info, ++ u.vesa_lfb.mode_attrs) ++ + sizeof(info->u.vesa_lfb.mode_attrs)) ++ screen_info->vesa_attributes = info->u.vesa_lfb.mode_attrs; ++ break; ++ } ++} +diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h +index 97dfdc8..b095739 100644 +--- a/arch/x86/xen/xen-ops.h ++++ b/arch/x86/xen/xen-ops.h +@@ -88,6 +88,17 @@ static inline void xen_uninit_lock_cpu(int cpu) + } + #endif + ++struct dom0_vga_console_info; ++ ++#ifdef CONFIG_XEN_DOM0 ++void __init xen_init_vga(const struct dom0_vga_console_info *, size_t size); ++#else ++static inline void __init xen_init_vga(const struct dom0_vga_console_info *info, ++ size_t size) ++{ ++} ++#endif ++ + /* Declare an asm function, along with symbols needed to make it + inlineable */ + #define DECL_ASM(ret, name, ...) \ +diff --git a/crypto/md5.c b/crypto/md5.c +index 30efc7d..7febeaa 100644 +--- a/crypto/md5.c ++++ b/crypto/md5.c +@@ -21,99 +21,9 @@ + #include + #include + #include ++#include + #include + +-#define F1(x, y, z) (z ^ (x & (y ^ z))) +-#define F2(x, y, z) F1(z, x, y) +-#define F3(x, y, z) (x ^ y ^ z) +-#define F4(x, y, z) (y ^ (x | ~z)) +- +-#define MD5STEP(f, w, x, y, z, in, s) \ +- (w += f(x, y, z) + in, w = (w<>(32-s)) + x) +- +-static void md5_transform(u32 *hash, u32 const *in) +-{ +- u32 a, b, c, d; +- +- a = hash[0]; +- b = hash[1]; +- c = hash[2]; +- d = hash[3]; +- +- MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); +- MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); +- MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); +- MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); +- MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); +- MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); +- MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); +- MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); +- MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); +- MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); +- MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); +- MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); +- MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); +- MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); +- MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); +- MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); +- +- MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); +- MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); +- MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); +- MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); +- MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); +- MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); +- MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); +- MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); +- MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); +- MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); +- MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); +- MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); +- MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); +- MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); +- MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); +- MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); +- +- MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); +- MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); +- MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); +- MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); +- MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); +- MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); +- MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); +- MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); +- MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); +- MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); +- MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); +- MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); +- MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); +- MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); +- MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); +- MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); +- +- MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); +- MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); +- MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); +- MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); +- MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); +- MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); +- MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); +- MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); +- MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); +- MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); +- MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); +- MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); +- MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); +- MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); +- MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); +- MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); +- +- hash[0] += a; +- hash[1] += b; +- hash[2] += c; +- hash[3] += d; +-} +- + /* XXX: this stuff can be optimized */ + static inline void le32_to_cpu_array(u32 *buf, unsigned int words) + { +diff --git a/drivers/char/random.c b/drivers/char/random.c +index d4ddeba..c35a785 100644 +--- a/drivers/char/random.c ++++ b/drivers/char/random.c +@@ -1300,330 +1300,14 @@ ctl_table random_table[] = { + }; + #endif /* CONFIG_SYSCTL */ + +-/******************************************************************** +- * +- * Random functions for networking +- * +- ********************************************************************/ +- +-/* +- * TCP initial sequence number picking. This uses the random number +- * generator to pick an initial secret value. This value is hashed +- * along with the TCP endpoint information to provide a unique +- * starting point for each pair of TCP endpoints. This defeats +- * attacks which rely on guessing the initial TCP sequence number. +- * This algorithm was suggested by Steve Bellovin. +- * +- * Using a very strong hash was taking an appreciable amount of the total +- * TCP connection establishment time, so this is a weaker hash, +- * compensated for by changing the secret periodically. +- */ +- +-/* F, G and H are basic MD4 functions: selection, majority, parity */ +-#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +-#define G(x, y, z) (((x) & (y)) + (((x) ^ (y)) & (z))) +-#define H(x, y, z) ((x) ^ (y) ^ (z)) +- +-/* +- * The generic round function. The application is so specific that +- * we don't bother protecting all the arguments with parens, as is generally +- * good macro practice, in favor of extra legibility. +- * Rotation is separate from addition to prevent recomputation +- */ +-#define ROUND(f, a, b, c, d, x, s) \ +- (a += f(b, c, d) + x, a = (a << s) | (a >> (32 - s))) +-#define K1 0 +-#define K2 013240474631UL +-#define K3 015666365641UL ++static u32 random_int_secret[MD5_MESSAGE_BYTES / 4] ____cacheline_aligned; + +-#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) +- +-static __u32 twothirdsMD4Transform(__u32 const buf[4], __u32 const in[12]) ++static int __init random_int_secret_init(void) + { +- __u32 a = buf[0], b = buf[1], c = buf[2], d = buf[3]; +- +- /* Round 1 */ +- ROUND(F, a, b, c, d, in[ 0] + K1, 3); +- ROUND(F, d, a, b, c, in[ 1] + K1, 7); +- ROUND(F, c, d, a, b, in[ 2] + K1, 11); +- ROUND(F, b, c, d, a, in[ 3] + K1, 19); +- ROUND(F, a, b, c, d, in[ 4] + K1, 3); +- ROUND(F, d, a, b, c, in[ 5] + K1, 7); +- ROUND(F, c, d, a, b, in[ 6] + K1, 11); +- ROUND(F, b, c, d, a, in[ 7] + K1, 19); +- ROUND(F, a, b, c, d, in[ 8] + K1, 3); +- ROUND(F, d, a, b, c, in[ 9] + K1, 7); +- ROUND(F, c, d, a, b, in[10] + K1, 11); +- ROUND(F, b, c, d, a, in[11] + K1, 19); +- +- /* Round 2 */ +- ROUND(G, a, b, c, d, in[ 1] + K2, 3); +- ROUND(G, d, a, b, c, in[ 3] + K2, 5); +- ROUND(G, c, d, a, b, in[ 5] + K2, 9); +- ROUND(G, b, c, d, a, in[ 7] + K2, 13); +- ROUND(G, a, b, c, d, in[ 9] + K2, 3); +- ROUND(G, d, a, b, c, in[11] + K2, 5); +- ROUND(G, c, d, a, b, in[ 0] + K2, 9); +- ROUND(G, b, c, d, a, in[ 2] + K2, 13); +- ROUND(G, a, b, c, d, in[ 4] + K2, 3); +- ROUND(G, d, a, b, c, in[ 6] + K2, 5); +- ROUND(G, c, d, a, b, in[ 8] + K2, 9); +- ROUND(G, b, c, d, a, in[10] + K2, 13); +- +- /* Round 3 */ +- ROUND(H, a, b, c, d, in[ 3] + K3, 3); +- ROUND(H, d, a, b, c, in[ 7] + K3, 9); +- ROUND(H, c, d, a, b, in[11] + K3, 11); +- ROUND(H, b, c, d, a, in[ 2] + K3, 15); +- ROUND(H, a, b, c, d, in[ 6] + K3, 3); +- ROUND(H, d, a, b, c, in[10] + K3, 9); +- ROUND(H, c, d, a, b, in[ 1] + K3, 11); +- ROUND(H, b, c, d, a, in[ 5] + K3, 15); +- ROUND(H, a, b, c, d, in[ 9] + K3, 3); +- ROUND(H, d, a, b, c, in[ 0] + K3, 9); +- ROUND(H, c, d, a, b, in[ 4] + K3, 11); +- ROUND(H, b, c, d, a, in[ 8] + K3, 15); +- +- return buf[1] + b; /* "most hashed" word */ +- /* Alternative: return sum of all words? */ +-} +-#endif +- +-#undef ROUND +-#undef F +-#undef G +-#undef H +-#undef K1 +-#undef K2 +-#undef K3 +- +-/* This should not be decreased so low that ISNs wrap too fast. */ +-#define REKEY_INTERVAL (300 * HZ) +-/* +- * Bit layout of the tcp sequence numbers (before adding current time): +- * bit 24-31: increased after every key exchange +- * bit 0-23: hash(source,dest) +- * +- * The implementation is similar to the algorithm described +- * in the Appendix of RFC 1185, except that +- * - it uses a 1 MHz clock instead of a 250 kHz clock +- * - it performs a rekey every 5 minutes, which is equivalent +- * to a (source,dest) tulple dependent forward jump of the +- * clock by 0..2^(HASH_BITS+1) +- * +- * Thus the average ISN wraparound time is 68 minutes instead of +- * 4.55 hours. +- * +- * SMP cleanup and lock avoidance with poor man's RCU. +- * Manfred Spraul +- * +- */ +-#define COUNT_BITS 8 +-#define COUNT_MASK ((1 << COUNT_BITS) - 1) +-#define HASH_BITS 24 +-#define HASH_MASK ((1 << HASH_BITS) - 1) +- +-static struct keydata { +- __u32 count; /* already shifted to the final position */ +- __u32 secret[12]; +-} ____cacheline_aligned ip_keydata[2]; +- +-static unsigned int ip_cnt; +- +-static void rekey_seq_generator(struct work_struct *work); +- +-static DECLARE_DELAYED_WORK(rekey_work, rekey_seq_generator); +- +-/* +- * Lock avoidance: +- * The ISN generation runs lockless - it's just a hash over random data. +- * State changes happen every 5 minutes when the random key is replaced. +- * Synchronization is performed by having two copies of the hash function +- * state and rekey_seq_generator always updates the inactive copy. +- * The copy is then activated by updating ip_cnt. +- * The implementation breaks down if someone blocks the thread +- * that processes SYN requests for more than 5 minutes. Should never +- * happen, and even if that happens only a not perfectly compliant +- * ISN is generated, nothing fatal. +- */ +-static void rekey_seq_generator(struct work_struct *work) +-{ +- struct keydata *keyptr = &ip_keydata[1 ^ (ip_cnt & 1)]; +- +- get_random_bytes(keyptr->secret, sizeof(keyptr->secret)); +- keyptr->count = (ip_cnt & COUNT_MASK) << HASH_BITS; +- smp_wmb(); +- ip_cnt++; +- schedule_delayed_work(&rekey_work, +- round_jiffies_relative(REKEY_INTERVAL)); +-} +- +-static inline struct keydata *get_keyptr(void) +-{ +- struct keydata *keyptr = &ip_keydata[ip_cnt & 1]; +- +- smp_rmb(); +- +- return keyptr; +-} +- +-static __init int seqgen_init(void) +-{ +- rekey_seq_generator(NULL); ++ get_random_bytes(random_int_secret, sizeof(random_int_secret)); + return 0; + } +-late_initcall(seqgen_init); +- +-#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) +-__u32 secure_tcpv6_sequence_number(__be32 *saddr, __be32 *daddr, +- __be16 sport, __be16 dport) +-{ +- __u32 seq; +- __u32 hash[12]; +- struct keydata *keyptr = get_keyptr(); +- +- /* The procedure is the same as for IPv4, but addresses are longer. +- * Thus we must use twothirdsMD4Transform. +- */ +- +- memcpy(hash, saddr, 16); +- hash[4] = ((__force u16)sport << 16) + (__force u16)dport; +- memcpy(&hash[5], keyptr->secret, sizeof(__u32) * 7); +- +- seq = twothirdsMD4Transform((const __u32 *)daddr, hash) & HASH_MASK; +- seq += keyptr->count; +- +- seq += ktime_to_ns(ktime_get_real()); +- +- return seq; +-} +-EXPORT_SYMBOL(secure_tcpv6_sequence_number); +-#endif +- +-/* The code below is shamelessly stolen from secure_tcp_sequence_number(). +- * All blames to Andrey V. Savochkin . +- */ +-__u32 secure_ip_id(__be32 daddr) +-{ +- struct keydata *keyptr; +- __u32 hash[4]; +- +- keyptr = get_keyptr(); +- +- /* +- * Pick a unique starting offset for each IP destination. +- * The dest ip address is placed in the starting vector, +- * which is then hashed with random data. +- */ +- hash[0] = (__force __u32)daddr; +- hash[1] = keyptr->secret[9]; +- hash[2] = keyptr->secret[10]; +- hash[3] = keyptr->secret[11]; +- +- return half_md4_transform(hash, keyptr->secret); +-} +- +-#ifdef CONFIG_INET +- +-__u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, +- __be16 sport, __be16 dport) +-{ +- __u32 seq; +- __u32 hash[4]; +- struct keydata *keyptr = get_keyptr(); +- +- /* +- * Pick a unique starting offset for each TCP connection endpoints +- * (saddr, daddr, sport, dport). +- * Note that the words are placed into the starting vector, which is +- * then mixed with a partial MD4 over random data. +- */ +- hash[0] = (__force u32)saddr; +- hash[1] = (__force u32)daddr; +- hash[2] = ((__force u16)sport << 16) + (__force u16)dport; +- hash[3] = keyptr->secret[11]; +- +- seq = half_md4_transform(hash, keyptr->secret) & HASH_MASK; +- seq += keyptr->count; +- /* +- * As close as possible to RFC 793, which +- * suggests using a 250 kHz clock. +- * Further reading shows this assumes 2 Mb/s networks. +- * For 10 Mb/s Ethernet, a 1 MHz clock is appropriate. +- * For 10 Gb/s Ethernet, a 1 GHz clock should be ok, but +- * we also need to limit the resolution so that the u32 seq +- * overlaps less than one time per MSL (2 minutes). +- * Choosing a clock of 64 ns period is OK. (period of 274 s) +- */ +- seq += ktime_to_ns(ktime_get_real()) >> 6; +- +- return seq; +-} +- +-/* Generate secure starting point for ephemeral IPV4 transport port search */ +-u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport) +-{ +- struct keydata *keyptr = get_keyptr(); +- u32 hash[4]; +- +- /* +- * Pick a unique starting offset for each ephemeral port search +- * (saddr, daddr, dport) and 48bits of random data. +- */ +- hash[0] = (__force u32)saddr; +- hash[1] = (__force u32)daddr; +- hash[2] = (__force u32)dport ^ keyptr->secret[10]; +- hash[3] = keyptr->secret[11]; +- +- return half_md4_transform(hash, keyptr->secret); +-} +-EXPORT_SYMBOL_GPL(secure_ipv4_port_ephemeral); +- +-#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) +-u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, +- __be16 dport) +-{ +- struct keydata *keyptr = get_keyptr(); +- u32 hash[12]; +- +- memcpy(hash, saddr, 16); +- hash[4] = (__force u32)dport; +- memcpy(&hash[5], keyptr->secret, sizeof(__u32) * 7); +- +- return twothirdsMD4Transform((const __u32 *)daddr, hash); +-} +-#endif +- +-#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE) +-/* Similar to secure_tcp_sequence_number but generate a 48 bit value +- * bit's 32-47 increase every key exchange +- * 0-31 hash(source, dest) +- */ +-u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, +- __be16 sport, __be16 dport) +-{ +- u64 seq; +- __u32 hash[4]; +- struct keydata *keyptr = get_keyptr(); +- +- hash[0] = (__force u32)saddr; +- hash[1] = (__force u32)daddr; +- hash[2] = ((__force u16)sport << 16) + (__force u16)dport; +- hash[3] = keyptr->secret[11]; +- +- seq = half_md4_transform(hash, keyptr->secret); +- seq |= ((u64)keyptr->count) << (32 - HASH_BITS); +- +- seq += ktime_to_ns(ktime_get_real()); +- seq &= (1ull << 48) - 1; +- +- return seq; +-} +-EXPORT_SYMBOL(secure_dccp_sequence_number); +-#endif +- +-#endif /* CONFIG_INET */ +- ++late_initcall(random_int_secret_init); + + /* + * Get a random word for internal kernel use only. Similar to urandom but +@@ -1631,17 +1315,15 @@ EXPORT_SYMBOL(secure_dccp_sequence_number); + * value is not cryptographically secure but for several uses the cost of + * depleting entropy is too high + */ +-DEFINE_PER_CPU(__u32 [4], get_random_int_hash); ++DEFINE_PER_CPU(__u32 [MD5_DIGEST_WORDS], get_random_int_hash); + unsigned int get_random_int(void) + { +- struct keydata *keyptr; + __u32 *hash = get_cpu_var(get_random_int_hash); +- int ret; ++ unsigned int ret; + +- keyptr = get_keyptr(); + hash[0] += current->pid + jiffies + get_cycles(); +- +- ret = half_md4_transform(hash, keyptr->secret); ++ md5_transform(hash, random_int_secret); ++ ret = hash[0]; + put_cpu_var(get_random_int_hash); + + return ret; +diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c +index 0929219..1bbb85b 100644 +--- a/drivers/gpu/drm/drm_edid.c ++++ b/drivers/gpu/drm/drm_edid.c +@@ -127,6 +127,23 @@ static const u8 edid_header[] = { + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 + }; + ++ /* ++ * Sanity check the header of the base EDID block. Return 8 if the header ++ * is perfect, down to 0 if it's totally wrong. ++ */ ++int drm_edid_header_is_valid(const u8 *raw_edid) ++{ ++ int i, score = 0; ++ ++ for (i = 0; i < sizeof(edid_header); i++) ++ if (raw_edid[i] == edid_header[i]) ++ score++; ++ ++ return score; ++} ++EXPORT_SYMBOL(drm_edid_header_is_valid); ++ ++ + /* + * Sanity check the EDID block (base or extension). Return 0 if the block + * doesn't check out, or 1 if it's valid. +@@ -139,12 +156,7 @@ drm_edid_block_valid(u8 *raw_edid) + struct edid *edid = (struct edid *)raw_edid; + + if (raw_edid[0] == 0x00) { +- int score = 0; +- +- for (i = 0; i < sizeof(edid_header); i++) +- if (raw_edid[i] == edid_header[i]) +- score++; +- ++ int score = drm_edid_header_is_valid(raw_edid); + if (score == 8) ; + else if (score >= 6) { + DRM_DEBUG("Fixing EDID header, your hardware may be failing\n"); +diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c +index 296fbd6..7eef6e1 100644 +--- a/drivers/gpu/drm/i915/i915_dma.c ++++ b/drivers/gpu/drm/i915/i915_dma.c +@@ -61,7 +61,6 @@ static void i915_write_hws_pga(struct drm_device *dev) + static int i915_init_phys_hws(struct drm_device *dev) + { + drm_i915_private_t *dev_priv = dev->dev_private; +- struct intel_ring_buffer *ring = LP_RING(dev_priv); + + /* Program Hardware Status Page */ + dev_priv->status_page_dmah = +@@ -71,10 +70,9 @@ static int i915_init_phys_hws(struct drm_device *dev) + DRM_ERROR("Can not allocate hardware status page\n"); + return -ENOMEM; + } +- ring->status_page.page_addr = +- (void __force __iomem *)dev_priv->status_page_dmah->vaddr; + +- memset_io(ring->status_page.page_addr, 0, PAGE_SIZE); ++ memset_io((void __force __iomem *)dev_priv->status_page_dmah->vaddr, ++ 0, PAGE_SIZE); + + i915_write_hws_pga(dev); + +diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c +index 3b03f85..9b1d669 100644 +--- a/drivers/gpu/drm/i915/i915_irq.c ++++ b/drivers/gpu/drm/i915/i915_irq.c +@@ -306,12 +306,15 @@ static void i915_hotplug_work_func(struct work_struct *work) + struct drm_mode_config *mode_config = &dev->mode_config; + struct intel_encoder *encoder; + ++ mutex_lock(&mode_config->mutex); + DRM_DEBUG_KMS("running encoder hotplug functions\n"); + + list_for_each_entry(encoder, &mode_config->encoder_list, base.head) + if (encoder->hot_plug) + encoder->hot_plug(encoder); + ++ mutex_unlock(&mode_config->mutex); ++ + /* Just fire off a uevent and let userspace tell us what to do */ + drm_helper_hpd_irq_event(dev); + } +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 0f1c799..5609c06 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -2699,14 +2699,18 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) + I915_WRITE(PF_WIN_SZ(pipe), dev_priv->pch_pf_size); + } + ++ /* ++ * On ILK+ LUT must be loaded before the pipe is running but with ++ * clocks enabled ++ */ ++ intel_crtc_load_lut(crtc); ++ + intel_enable_pipe(dev_priv, pipe, is_pch_port); + intel_enable_plane(dev_priv, plane, pipe); + + if (is_pch_port) + ironlake_pch_enable(crtc); + +- intel_crtc_load_lut(crtc); +- + mutex_lock(&dev->struct_mutex); + intel_update_fbc(dev); + mutex_unlock(&dev->struct_mutex); +diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c +index a06ff07..05f500c 100644 +--- a/drivers/gpu/drm/i915/intel_panel.c ++++ b/drivers/gpu/drm/i915/intel_panel.c +@@ -83,11 +83,15 @@ intel_pch_panel_fitting(struct drm_device *dev, + u32 scaled_height = mode->hdisplay * adjusted_mode->vdisplay; + if (scaled_width > scaled_height) { /* pillar */ + width = scaled_height / mode->vdisplay; ++ if (width & 1) ++ width++; + x = (adjusted_mode->hdisplay - width + 1) / 2; + y = 0; + height = adjusted_mode->vdisplay; + } else if (scaled_width < scaled_height) { /* letter */ + height = scaled_width / mode->hdisplay; ++ if (height & 1) ++ height++; + y = (adjusted_mode->vdisplay - height + 1) / 2; + x = 0; + width = adjusted_mode->hdisplay; +diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c +index 95c4b14..1f61fc7 100644 +--- a/drivers/gpu/drm/i915/intel_ringbuffer.c ++++ b/drivers/gpu/drm/i915/intel_ringbuffer.c +@@ -1319,6 +1319,9 @@ int intel_render_ring_init_dri(struct drm_device *dev, u64 start, u32 size) + ring->get_seqno = pc_render_get_seqno; + } + ++ if (!I915_NEED_GFX_HWS(dev)) ++ ring->status_page.page_addr = dev_priv->status_page_dmah->vaddr; ++ + ring->dev = dev; + INIT_LIST_HEAD(&ring->active_list); + INIT_LIST_HEAD(&ring->request_list); +diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c +index 9792d4f..6d6b5f1 100644 +--- a/drivers/gpu/drm/radeon/radeon_connectors.c ++++ b/drivers/gpu/drm/radeon/radeon_connectors.c +@@ -430,6 +430,45 @@ int radeon_connector_set_property(struct drm_connector *connector, struct drm_pr + return 0; + } + ++/* ++ * Some integrated ATI Radeon chipset implementations (e. g. ++ * Asus M2A-VM HDMI) may indicate the availability of a DDC, ++ * even when there's no monitor connected. For these connectors ++ * following DDC probe extension will be applied: check also for the ++ * availability of EDID with at least a correct EDID header. Only then, ++ * DDC is assumed to be available. This prevents drm_get_edid() and ++ * drm_edid_block_valid() from periodically dumping data and kernel ++ * errors into the logs and onto the terminal. ++ */ ++static bool radeon_connector_needs_extended_probe(struct radeon_device *dev, ++ uint32_t supported_device, ++ int connector_type) ++{ ++ /* Asus M2A-VM HDMI board sends data to i2c bus even, ++ * if HDMI add-on card is not plugged in or HDMI is disabled in ++ * BIOS. Valid DDC can only be assumed, if also a valid EDID header ++ * can be retrieved via i2c bus during DDC probe */ ++ if ((dev->pdev->device == 0x791e) && ++ (dev->pdev->subsystem_vendor == 0x1043) && ++ (dev->pdev->subsystem_device == 0x826d)) { ++ if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) && ++ (supported_device == ATOM_DEVICE_DFP2_SUPPORT)) ++ return true; ++ } ++ /* ECS A740GM-M with ATI RADEON 2100 sends data to i2c bus ++ * for a DVI connector that is not implemented */ ++ if ((dev->pdev->device == 0x796e) && ++ (dev->pdev->subsystem_vendor == 0x1019) && ++ (dev->pdev->subsystem_device == 0x2615)) { ++ if ((connector_type == DRM_MODE_CONNECTOR_DVID) && ++ (supported_device == ATOM_DEVICE_DFP2_SUPPORT)) ++ return true; ++ } ++ ++ /* Default: no EDID header probe required for DDC probing */ ++ return false; ++} ++ + static void radeon_fixup_lvds_native_mode(struct drm_encoder *encoder, + struct drm_connector *connector) + { +@@ -661,7 +700,8 @@ radeon_vga_detect(struct drm_connector *connector, bool force) + ret = connector_status_disconnected; + + if (radeon_connector->ddc_bus) +- dret = radeon_ddc_probe(radeon_connector); ++ dret = radeon_ddc_probe(radeon_connector, ++ radeon_connector->requires_extended_probe); + if (dret) { + if (radeon_connector->edid) { + kfree(radeon_connector->edid); +@@ -833,7 +873,8 @@ radeon_dvi_detect(struct drm_connector *connector, bool force) + bool dret = false; + + if (radeon_connector->ddc_bus) +- dret = radeon_ddc_probe(radeon_connector); ++ dret = radeon_ddc_probe(radeon_connector, ++ radeon_connector->requires_extended_probe); + if (dret) { + if (radeon_connector->edid) { + kfree(radeon_connector->edid); +@@ -1251,7 +1292,8 @@ radeon_dp_detect(struct drm_connector *connector, bool force) + if (radeon_dp_getdpcd(radeon_connector)) + ret = connector_status_connected; + } else { +- if (radeon_ddc_probe(radeon_connector)) ++ if (radeon_ddc_probe(radeon_connector, ++ radeon_connector->requires_extended_probe)) + ret = connector_status_connected; + } + } +@@ -1406,6 +1448,9 @@ radeon_add_atom_connector(struct drm_device *dev, + radeon_connector->shared_ddc = shared_ddc; + radeon_connector->connector_object_id = connector_object_id; + radeon_connector->hpd = *hpd; ++ radeon_connector->requires_extended_probe = ++ radeon_connector_needs_extended_probe(rdev, supported_device, ++ connector_type); + radeon_connector->router = *router; + if (router->ddc_valid || router->cd_valid) { + radeon_connector->router_bus = radeon_i2c_lookup(rdev, &router->i2c_info); +@@ -1752,6 +1797,9 @@ radeon_add_legacy_connector(struct drm_device *dev, + radeon_connector->devices = supported_device; + radeon_connector->connector_object_id = connector_object_id; + radeon_connector->hpd = *hpd; ++ radeon_connector->requires_extended_probe = ++ radeon_connector_needs_extended_probe(rdev, supported_device, ++ connector_type); + switch (connector_type) { + case DRM_MODE_CONNECTOR_VGA: + drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); +diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c +index 7cfaa7e..440e6ec 100644 +--- a/drivers/gpu/drm/radeon/radeon_device.c ++++ b/drivers/gpu/drm/radeon/radeon_device.c +@@ -704,8 +704,9 @@ int radeon_device_init(struct radeon_device *rdev, + rdev->gpu_lockup = false; + rdev->accel_working = false; + +- DRM_INFO("initializing kernel modesetting (%s 0x%04X:0x%04X).\n", +- radeon_family_name[rdev->family], pdev->vendor, pdev->device); ++ DRM_INFO("initializing kernel modesetting (%s 0x%04X:0x%04X 0x%04X:0x%04X).\n", ++ radeon_family_name[rdev->family], pdev->vendor, pdev->device, ++ pdev->subsystem_vendor, pdev->subsystem_device); + + /* mutex initialization are all done here so we + * can recall function without having locking issues */ +diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c +index 292f73f..ed085ce 100644 +--- a/drivers/gpu/drm/radeon/radeon_display.c ++++ b/drivers/gpu/drm/radeon/radeon_display.c +@@ -777,8 +777,17 @@ static int radeon_ddc_dump(struct drm_connector *connector) + if (!radeon_connector->ddc_bus) + return -1; + edid = drm_get_edid(connector, &radeon_connector->ddc_bus->adapter); ++ /* Log EDID retrieval status here. In particular with regard to ++ * connectors with requires_extended_probe flag set, that will prevent ++ * function radeon_dvi_detect() to fetch EDID on this connector, ++ * as long as there is no valid EDID header found */ + if (edid) { ++ DRM_INFO("Radeon display connector %s: Found valid EDID", ++ drm_get_connector_name(connector)); + kfree(edid); ++ } else { ++ DRM_INFO("Radeon display connector %s: No monitor connected or invalid EDID", ++ drm_get_connector_name(connector)); + } + return ret; + } +diff --git a/drivers/gpu/drm/radeon/radeon_i2c.c b/drivers/gpu/drm/radeon/radeon_i2c.c +index 781196d..6c111c1 100644 +--- a/drivers/gpu/drm/radeon/radeon_i2c.c ++++ b/drivers/gpu/drm/radeon/radeon_i2c.c +@@ -32,17 +32,17 @@ + * radeon_ddc_probe + * + */ +-bool radeon_ddc_probe(struct radeon_connector *radeon_connector) ++bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool requires_extended_probe) + { +- u8 out_buf[] = { 0x0, 0x0}; +- u8 buf[2]; ++ u8 out = 0x0; ++ u8 buf[8]; + int ret; + struct i2c_msg msgs[] = { + { + .addr = 0x50, + .flags = 0, + .len = 1, +- .buf = out_buf, ++ .buf = &out, + }, + { + .addr = 0x50, +@@ -52,15 +52,31 @@ bool radeon_ddc_probe(struct radeon_connector *radeon_connector) + } + }; + ++ /* Read 8 bytes from i2c for extended probe of EDID header */ ++ if (requires_extended_probe) ++ msgs[1].len = 8; ++ + /* on hw with routers, select right port */ + if (radeon_connector->router.ddc_valid) + radeon_router_select_ddc_port(radeon_connector); + + ret = i2c_transfer(&radeon_connector->ddc_bus->adapter, msgs, 2); +- if (ret == 2) +- return true; +- +- return false; ++ if (ret != 2) ++ /* Couldn't find an accessible DDC on this connector */ ++ return false; ++ if (requires_extended_probe) { ++ /* Probe also for valid EDID header ++ * EDID header starts with: ++ * 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00. ++ * Only the first 6 bytes must be valid as ++ * drm_edid_block_valid() can fix the last 2 bytes */ ++ if (drm_edid_header_is_valid(buf) < 6) { ++ /* Couldn't find an accessible EDID on this ++ * connector */ ++ return false; ++ } ++ } ++ return true; + } + + /* bit banging i2c */ +diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h +index 6df4e3c..d09031c 100644 +--- a/drivers/gpu/drm/radeon/radeon_mode.h ++++ b/drivers/gpu/drm/radeon/radeon_mode.h +@@ -438,6 +438,9 @@ struct radeon_connector { + struct radeon_i2c_chan *ddc_bus; + /* some systems have an hdmi and vga port with a shared ddc line */ + bool shared_ddc; ++ /* for some Radeon chip families we apply an additional EDID header ++ check as part of the DDC probe */ ++ bool requires_extended_probe; + bool use_digital; + /* we need to mind the EDID between detect + and get modes due to analog/digital/tvencoder */ +@@ -514,7 +517,8 @@ extern void radeon_i2c_put_byte(struct radeon_i2c_chan *i2c, + u8 val); + extern void radeon_router_select_ddc_port(struct radeon_connector *radeon_connector); + extern void radeon_router_select_cd_port(struct radeon_connector *radeon_connector); +-extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector); ++extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector, ++ bool requires_extended_probe); + extern int radeon_ddc_get_modes(struct radeon_connector *radeon_connector); + + extern struct drm_encoder *radeon_best_encoder(struct drm_connector *connector); +diff --git a/drivers/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c +index 9798811..b145b5a 100644 +--- a/drivers/isdn/i4l/isdn_net.c ++++ b/drivers/isdn/i4l/isdn_net.c +@@ -2531,6 +2531,9 @@ static void _isdn_setup(struct net_device *dev) + + /* Setup the generic properties */ + dev->flags = IFF_NOARP|IFF_POINTOPOINT; ++ ++ /* isdn prepends a header in the tx path, can't share skbs */ ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; + dev->header_ops = NULL; + dev->netdev_ops = &isdn_netdev_ops; + +diff --git a/drivers/net/Makefile b/drivers/net/Makefile +index 776a478..d5ce011 100644 +--- a/drivers/net/Makefile ++++ b/drivers/net/Makefile +@@ -283,6 +283,7 @@ obj-$(CONFIG_USB_HSO) += usb/ + obj-$(CONFIG_USB_USBNET) += usb/ + obj-$(CONFIG_USB_ZD1201) += usb/ + obj-$(CONFIG_USB_IPHETH) += usb/ ++obj-$(CONFIG_USB_CDC_PHONET) += usb/ + + obj-$(CONFIG_WLAN) += wireless/ + obj-$(CONFIG_NET_TULIP) += tulip/ +diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c +index 63c22b0..9ea2f21 100644 +--- a/drivers/net/bonding/bond_main.c ++++ b/drivers/net/bonding/bond_main.c +@@ -1625,8 +1625,10 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) + + if (slave_dev->type != ARPHRD_ETHER) + bond_setup_by_slave(bond_dev, slave_dev); +- else ++ else { + ether_setup(bond_dev); ++ bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING; ++ } + + netdev_bonding_change(bond_dev, + NETDEV_POST_TYPE_CHANGE); +@@ -4398,7 +4400,7 @@ static void bond_setup(struct net_device *bond_dev) + bond_dev->tx_queue_len = 0; + bond_dev->flags |= IFF_MASTER|IFF_MULTICAST; + bond_dev->priv_flags |= IFF_BONDING; +- bond_dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; ++ bond_dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); + + /* At first, we block adding VLANs. That's the only way to + * prevent problems that occur when adding VLANs over an +diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c +index 88fcb25..0624610 100644 +--- a/drivers/net/bonding/bond_sysfs.c ++++ b/drivers/net/bonding/bond_sysfs.c +@@ -992,6 +992,7 @@ static ssize_t bonding_store_primary(struct device *d, + int i; + struct slave *slave; + struct bonding *bond = to_bond(d); ++ char ifname[IFNAMSIZ]; + + if (!rtnl_trylock()) + return restart_syscall(); +@@ -1002,32 +1003,33 @@ static ssize_t bonding_store_primary(struct device *d, + if (!USES_PRIMARY(bond->params.mode)) { + pr_info("%s: Unable to set primary slave; %s is in mode %d\n", + bond->dev->name, bond->dev->name, bond->params.mode); +- } else { +- bond_for_each_slave(bond, slave, i) { +- if (strnicmp +- (slave->dev->name, buf, +- strlen(slave->dev->name)) == 0) { +- pr_info("%s: Setting %s as primary slave.\n", +- bond->dev->name, slave->dev->name); +- bond->primary_slave = slave; +- strcpy(bond->params.primary, slave->dev->name); +- bond_select_active_slave(bond); +- goto out; +- } +- } ++ goto out; ++ } + +- /* if we got here, then we didn't match the name of any slave */ ++ sscanf(buf, "%16s", ifname); /* IFNAMSIZ */ + +- if (strlen(buf) == 0 || buf[0] == '\n') { +- pr_info("%s: Setting primary slave to None.\n", +- bond->dev->name); +- bond->primary_slave = NULL; +- bond_select_active_slave(bond); +- } else { +- pr_info("%s: Unable to set %.*s as primary slave as it is not a slave.\n", +- bond->dev->name, (int)strlen(buf) - 1, buf); ++ /* check to see if we are clearing primary */ ++ if (!strlen(ifname) || buf[0] == '\n') { ++ pr_info("%s: Setting primary slave to None.\n", ++ bond->dev->name); ++ bond->primary_slave = NULL; ++ bond_select_active_slave(bond); ++ goto out; ++ } ++ ++ bond_for_each_slave(bond, slave, i) { ++ if (strncmp(slave->dev->name, ifname, IFNAMSIZ) == 0) { ++ pr_info("%s: Setting %s as primary slave.\n", ++ bond->dev->name, slave->dev->name); ++ bond->primary_slave = slave; ++ strcpy(bond->params.primary, slave->dev->name); ++ bond_select_active_slave(bond); ++ goto out; + } + } ++ ++ pr_info("%s: Unable to set %.*s as primary slave.\n", ++ bond->dev->name, (int)strlen(buf) - 1, buf); + out: + write_unlock_bh(&bond->curr_slave_lock); + read_unlock(&bond->lock); +@@ -1162,6 +1164,7 @@ static ssize_t bonding_store_active_slave(struct device *d, + struct slave *old_active = NULL; + struct slave *new_active = NULL; + struct bonding *bond = to_bond(d); ++ char ifname[IFNAMSIZ]; + + if (!rtnl_trylock()) + return restart_syscall(); +@@ -1170,56 +1173,62 @@ static ssize_t bonding_store_active_slave(struct device *d, + read_lock(&bond->lock); + write_lock_bh(&bond->curr_slave_lock); + +- if (!USES_PRIMARY(bond->params.mode)) ++ if (!USES_PRIMARY(bond->params.mode)) { + pr_info("%s: Unable to change active slave; %s is in mode %d\n", + bond->dev->name, bond->dev->name, bond->params.mode); +- else { +- bond_for_each_slave(bond, slave, i) { +- if (strnicmp +- (slave->dev->name, buf, +- strlen(slave->dev->name)) == 0) { +- old_active = bond->curr_active_slave; +- new_active = slave; +- if (new_active == old_active) { +- /* do nothing */ +- pr_info("%s: %s is already the current active slave.\n", ++ goto out; ++ } ++ ++ sscanf(buf, "%16s", ifname); /* IFNAMSIZ */ ++ ++ /* check to see if we are clearing active */ ++ if (!strlen(ifname) || buf[0] == '\n') { ++ pr_info("%s: Clearing current active slave.\n", ++ bond->dev->name); ++ bond->curr_active_slave = NULL; ++ bond_select_active_slave(bond); ++ goto out; ++ } ++ ++ bond_for_each_slave(bond, slave, i) { ++ if (strncmp(slave->dev->name, ifname, IFNAMSIZ) == 0) { ++ old_active = bond->curr_active_slave; ++ new_active = slave; ++ if (new_active == old_active) { ++ /* do nothing */ ++ pr_info("%s: %s is already the current" ++ " active slave.\n", ++ bond->dev->name, ++ slave->dev->name); ++ goto out; ++ } ++ else { ++ if ((new_active) && ++ (old_active) && ++ (new_active->link == BOND_LINK_UP) && ++ IS_UP(new_active->dev)) { ++ pr_info("%s: Setting %s as active" ++ " slave.\n", + bond->dev->name, + slave->dev->name); +- goto out; ++ bond_change_active_slave(bond, ++ new_active); + } + else { +- if ((new_active) && +- (old_active) && +- (new_active->link == BOND_LINK_UP) && +- IS_UP(new_active->dev)) { +- pr_info("%s: Setting %s as active slave.\n", +- bond->dev->name, +- slave->dev->name); +- bond_change_active_slave(bond, new_active); +- } +- else { +- pr_info("%s: Could not set %s as active slave; either %s is down or the link is down.\n", +- bond->dev->name, +- slave->dev->name, +- slave->dev->name); +- } +- goto out; ++ pr_info("%s: Could not set %s as" ++ " active slave; either %s is" ++ " down or the link is down.\n", ++ bond->dev->name, ++ slave->dev->name, ++ slave->dev->name); + } ++ goto out; + } + } +- +- /* if we got here, then we didn't match the name of any slave */ +- +- if (strlen(buf) == 0 || buf[0] == '\n') { +- pr_info("%s: Setting active slave to None.\n", +- bond->dev->name); +- bond->primary_slave = NULL; +- bond_select_active_slave(bond); +- } else { +- pr_info("%s: Unable to set %.*s as active slave as it is not a slave.\n", +- bond->dev->name, (int)strlen(buf) - 1, buf); +- } + } ++ ++ pr_info("%s: Unable to set %.*s as active slave.\n", ++ bond->dev->name, (int)strlen(buf) - 1, buf); + out: + write_unlock_bh(&bond->curr_slave_lock); + read_unlock(&bond->lock); +diff --git a/drivers/net/e1000e/lib.c b/drivers/net/e1000e/lib.c +index dd8ab05..8d28602 100644 +--- a/drivers/net/e1000e/lib.c ++++ b/drivers/net/e1000e/lib.c +@@ -190,7 +190,8 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw) + /* Check for LOM (vs. NIC) or one of two valid mezzanine cards */ + if (!((nvm_data & NVM_COMPAT_LOM) || + (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_DUAL) || +- (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD))) ++ (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD) || ++ (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES))) + goto out; + + ret_val = e1000_read_nvm(hw, NVM_ALT_MAC_ADDR_PTR, 1, +diff --git a/drivers/net/gianfar_ptp.c b/drivers/net/gianfar_ptp.c +index d8e1753..c413479 100644 +--- a/drivers/net/gianfar_ptp.c ++++ b/drivers/net/gianfar_ptp.c +@@ -193,14 +193,9 @@ static void set_alarm(struct etsects *etsects) + /* Caller must hold etsects->lock. */ + static void set_fipers(struct etsects *etsects) + { +- u32 tmr_ctrl = gfar_read(&etsects->regs->tmr_ctrl); +- +- gfar_write(&etsects->regs->tmr_ctrl, tmr_ctrl & (~TE)); +- gfar_write(&etsects->regs->tmr_prsc, etsects->tmr_prsc); ++ set_alarm(etsects); + gfar_write(&etsects->regs->tmr_fiper1, etsects->tmr_fiper1); + gfar_write(&etsects->regs->tmr_fiper2, etsects->tmr_fiper2); +- set_alarm(etsects); +- gfar_write(&etsects->regs->tmr_ctrl, tmr_ctrl|TE); + } + + /* +@@ -511,7 +506,7 @@ static int gianfar_ptp_probe(struct platform_device *dev) + gfar_write(&etsects->regs->tmr_fiper1, etsects->tmr_fiper1); + gfar_write(&etsects->regs->tmr_fiper2, etsects->tmr_fiper2); + set_alarm(etsects); +- gfar_write(&etsects->regs->tmr_ctrl, tmr_ctrl|FS|RTPE|TE); ++ gfar_write(&etsects->regs->tmr_ctrl, tmr_ctrl|FS|RTPE|TE|FRD); + + spin_unlock_irqrestore(&etsects->lock, flags); + +diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c +index 4fecaed..2b98461 100644 +--- a/drivers/net/ifb.c ++++ b/drivers/net/ifb.c +@@ -145,7 +145,7 @@ static void ifb_setup(struct net_device *dev) + + dev->flags |= IFF_NOARP; + dev->flags &= ~IFF_MULTICAST; +- dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); + random_ether_addr(dev->dev_addr); + } + +diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c +index d6aeaa5..2f3c48d 100644 +--- a/drivers/net/macvlan.c ++++ b/drivers/net/macvlan.c +@@ -547,7 +547,7 @@ void macvlan_common_setup(struct net_device *dev) + { + ether_setup(dev); + +- dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); + dev->netdev_ops = &macvlan_netdev_ops; + dev->destructor = free_netdev; + dev->header_ops = &macvlan_hard_header_ops, +diff --git a/drivers/net/niu.c b/drivers/net/niu.c +index cc25bff..2f8c351 100644 +--- a/drivers/net/niu.c ++++ b/drivers/net/niu.c +@@ -9196,7 +9196,7 @@ static int __devinit niu_ldg_init(struct niu *np) + + first_chan = 0; + for (i = 0; i < port; i++) +- first_chan += parent->rxchan_per_port[port]; ++ first_chan += parent->rxchan_per_port[i]; + num_chan = parent->rxchan_per_port[port]; + + for (i = first_chan; i < (first_chan + num_chan); i++) { +@@ -9212,7 +9212,7 @@ static int __devinit niu_ldg_init(struct niu *np) + + first_chan = 0; + for (i = 0; i < port; i++) +- first_chan += parent->txchan_per_port[port]; ++ first_chan += parent->txchan_per_port[i]; + num_chan = parent->txchan_per_port[port]; + for (i = first_chan; i < (first_chan + num_chan); i++) { + err = niu_ldg_assign_ldn(np, parent, +diff --git a/drivers/net/phy/dp83640.c b/drivers/net/phy/dp83640.c +index 2cd8dc5..cb6e0b4 100644 +--- a/drivers/net/phy/dp83640.c ++++ b/drivers/net/phy/dp83640.c +@@ -34,8 +34,7 @@ + #define PAGESEL 0x13 + #define LAYER4 0x02 + #define LAYER2 0x01 +-#define MAX_RXTS 4 +-#define MAX_TXTS 4 ++#define MAX_RXTS 64 + #define N_EXT_TS 1 + #define PSF_PTPVER 2 + #define PSF_EVNT 0x4000 +@@ -218,7 +217,7 @@ static void phy2rxts(struct phy_rxts *p, struct rxts *rxts) + rxts->seqid = p->seqid; + rxts->msgtype = (p->msgtype >> 12) & 0xf; + rxts->hash = p->msgtype & 0x0fff; +- rxts->tmo = jiffies + HZ; ++ rxts->tmo = jiffies + 2; + } + + static u64 phy2txts(struct phy_txts *p) +diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c +index 5990621..5f838ef 100644 +--- a/drivers/net/r8169.c ++++ b/drivers/net/r8169.c +@@ -236,6 +236,7 @@ static DEFINE_PCI_DEVICE_TABLE(rtl8169_pci_tbl) = { + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8168), 0, 0, RTL_CFG_1 }, + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 }, ++ { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4302), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(PCI_VENDOR_ID_AT, 0xc107), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(0x16ec, 0x0116), 0, 0, RTL_CFG_0 }, + { PCI_VENDOR_ID_LINKSYS, 0x1032, +diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c +index b436e00..f6d26ab 100644 +--- a/drivers/net/sis190.c ++++ b/drivers/net/sis190.c +@@ -1824,6 +1824,16 @@ static int sis190_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) + generic_mii_ioctl(&tp->mii_if, if_mii(ifr), cmd, NULL); + } + ++static int sis190_mac_addr(struct net_device *dev, void *p) ++{ ++ int rc; ++ ++ rc = eth_mac_addr(dev, p); ++ if (!rc) ++ sis190_init_rxfilter(dev); ++ return rc; ++} ++ + static const struct net_device_ops sis190_netdev_ops = { + .ndo_open = sis190_open, + .ndo_stop = sis190_close, +@@ -1832,7 +1842,7 @@ static const struct net_device_ops sis190_netdev_ops = { + .ndo_tx_timeout = sis190_tx_timeout, + .ndo_set_multicast_list = sis190_set_rx_mode, + .ndo_change_mtu = eth_change_mtu, +- .ndo_set_mac_address = eth_mac_addr, ++ .ndo_set_mac_address = sis190_mac_addr, + .ndo_validate_addr = eth_validate_addr, + #ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = sis190_netpoll, +diff --git a/drivers/net/tun.c b/drivers/net/tun.c +index 5235f48..fb50e5a 100644 +--- a/drivers/net/tun.c ++++ b/drivers/net/tun.c +@@ -528,6 +528,7 @@ static void tun_net_init(struct net_device *dev) + dev->netdev_ops = &tap_netdev_ops; + /* Ethernet TAP Device */ + ether_setup(dev); ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; + + random_ether_addr(dev->dev_addr); + +diff --git a/drivers/net/veth.c b/drivers/net/veth.c +index 8461576..4bf7c6d 100644 +--- a/drivers/net/veth.c ++++ b/drivers/net/veth.c +@@ -262,6 +262,8 @@ static void veth_setup(struct net_device *dev) + { + ether_setup(dev); + ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; ++ + dev->netdev_ops = &veth_netdev_ops; + dev->ethtool_ops = &veth_ethtool_ops; + dev->features |= NETIF_F_LLTX; +diff --git a/drivers/net/wan/hdlc_fr.c b/drivers/net/wan/hdlc_fr.c +index fc433f2..13f9997 100644 +--- a/drivers/net/wan/hdlc_fr.c ++++ b/drivers/net/wan/hdlc_fr.c +@@ -1083,9 +1083,10 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type) + + used = pvc_is_used(pvc); + +- if (type == ARPHRD_ETHER) ++ if (type == ARPHRD_ETHER) { + dev = alloc_netdev(0, "pvceth%d", ether_setup); +- else ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; ++ } else + dev = alloc_netdev(0, "pvc%d", pvc_setup); + + if (!dev) { +diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c +index 55cf71f..e1b3e3c 100644 +--- a/drivers/net/wireless/airo.c ++++ b/drivers/net/wireless/airo.c +@@ -2823,6 +2823,7 @@ static struct net_device *_init_airo_card( unsigned short irq, int port, + dev->wireless_data = &ai->wireless_data; + dev->irq = irq; + dev->base_addr = port; ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; + + SET_NETDEV_DEV(dev, dmdev); + +diff --git a/drivers/net/wireless/ath/ath9k/ar9002_hw.c b/drivers/net/wireless/ath/ath9k/ar9002_hw.c +index f344cc2..c32f9d1 100644 +--- a/drivers/net/wireless/ath/ath9k/ar9002_hw.c ++++ b/drivers/net/wireless/ath/ath9k/ar9002_hw.c +@@ -309,11 +309,7 @@ static void ar9002_hw_configpcipowersave(struct ath_hw *ah, + u8 i; + u32 val; + +- if (ah->is_pciexpress != true) +- return; +- +- /* Do not touch SerDes registers */ +- if (ah->config.pcie_powersave_enable == 2) ++ if (ah->is_pciexpress != true || ah->aspm_enabled != true) + return; + + /* Nothing to do on restore for 11N */ +diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +index ff8150e..7e07f0f 100644 +--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c ++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +@@ -306,7 +306,7 @@ static const struct ar9300_eeprom ar9300_default = { + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } }, + +- { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } }, ++ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + +@@ -883,7 +883,7 @@ static const struct ar9300_eeprom ar9300_x113 = { + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } }, + +- { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } }, ++ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + +@@ -2039,7 +2039,7 @@ static const struct ar9300_eeprom ar9300_x112 = { + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } }, + +- { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } }, ++ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } }, + +diff --git a/drivers/net/wireless/ath/ath9k/ar9003_hw.c b/drivers/net/wireless/ath/ath9k/ar9003_hw.c +index 392bf0f..7e02fb4 100644 +--- a/drivers/net/wireless/ath/ath9k/ar9003_hw.c ++++ b/drivers/net/wireless/ath/ath9k/ar9003_hw.c +@@ -351,11 +351,7 @@ static void ar9003_hw_configpcipowersave(struct ath_hw *ah, + int restore, + int power_off) + { +- if (ah->is_pciexpress != true) +- return; +- +- /* Do not touch SerDes registers */ +- if (ah->config.pcie_powersave_enable == 2) ++ if (ah->is_pciexpress != true || ah->aspm_enabled != true) + return; + + /* Nothing to do on restore for 11N */ +diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.h b/drivers/net/wireless/ath/ath9k/ar9003_phy.h +index 443090d..efdbe98 100644 +--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.h ++++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.h +@@ -848,7 +848,7 @@ + #define AR_PHY_TPC_11_B1 (AR_SM1_BASE + 0x220) + #define AR_PHY_PDADC_TAB_1 (AR_SM1_BASE + 0x240) + #define AR_PHY_TX_IQCAL_STATUS_B1 (AR_SM1_BASE + 0x48c) +-#define AR_PHY_TX_IQCAL_CORR_COEFF_B1(_i) (AR_SM_BASE + 0x450 + ((_i) << 2)) ++#define AR_PHY_TX_IQCAL_CORR_COEFF_B1(_i) (AR_SM1_BASE + 0x450 + ((_i) << 2)) + + /* + * Channel 2 Register Map +diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c +index 1be7c8b..03900ca 100644 +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -299,6 +299,14 @@ static void ath9k_hw_disablepcie(struct ath_hw *ah) + REG_WRITE(ah, AR_PCIE_SERDES2, 0x00000000); + } + ++static void ath9k_hw_aspm_init(struct ath_hw *ah) ++{ ++ struct ath_common *common = ath9k_hw_common(ah); ++ ++ if (common->bus_ops->aspm_init) ++ common->bus_ops->aspm_init(common); ++} ++ + /* This should work for all families including legacy */ + static bool ath9k_hw_chip_test(struct ath_hw *ah) + { +@@ -359,7 +367,6 @@ static void ath9k_hw_init_config(struct ath_hw *ah) + ah->config.additional_swba_backoff = 0; + ah->config.ack_6mb = 0x0; + ah->config.cwm_ignore_extcca = 0; +- ah->config.pcie_powersave_enable = 0; + ah->config.pcie_clock_req = 0; + ah->config.pcie_waen = 0; + ah->config.analog_shiftreg = 1; +@@ -577,7 +584,7 @@ static int __ath9k_hw_init(struct ath_hw *ah) + + + if (ah->is_pciexpress) +- ath9k_hw_configpcipowersave(ah, 0, 0); ++ ath9k_hw_aspm_init(ah); + else + ath9k_hw_disablepcie(ah); + +diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h +index 4b157c5..939cc9d 100644 +--- a/drivers/net/wireless/ath/ath9k/hw.h ++++ b/drivers/net/wireless/ath/ath9k/hw.h +@@ -215,7 +215,6 @@ struct ath9k_ops_config { + int additional_swba_backoff; + int ack_6mb; + u32 cwm_ignore_extcca; +- u8 pcie_powersave_enable; + bool pcieSerDesWrite; + u8 pcie_clock_req; + u32 pcie_waen; +@@ -671,6 +670,7 @@ struct ath_hw { + + bool sw_mgmt_crypto; + bool is_pciexpress; ++ bool aspm_enabled; + bool is_monitoring; + bool need_an_top2_fixup; + u16 tx_trig_level; +@@ -870,6 +870,7 @@ struct ath_bus_ops { + bool (*eeprom_read)(struct ath_common *common, u32 off, u16 *data); + void (*bt_coex_prep)(struct ath_common *common); + void (*extn_synch_en)(struct ath_common *common); ++ void (*aspm_init)(struct ath_common *common); + }; + + static inline struct ath_common *ath9k_hw_common(struct ath_hw *ah) +diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c +index 45c585a..5a9fd21 100644 +--- a/drivers/net/wireless/ath/ath9k/init.c ++++ b/drivers/net/wireless/ath/ath9k/init.c +@@ -665,8 +665,10 @@ static void ath9k_init_band_txpower(struct ath_softc *sc, int band) + static void ath9k_init_txpower_limits(struct ath_softc *sc) + { + struct ath_hw *ah = sc->sc_ah; ++ struct ath_common *common = ath9k_hw_common(sc->sc_ah); + struct ath9k_channel *curchan = ah->curchan; + ++ ah->txchainmask = common->tx_chainmask; + if (ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ) + ath9k_init_band_txpower(sc, IEEE80211_BAND_2GHZ); + if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ) +diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c +index 3bad0b2..be4ea13 100644 +--- a/drivers/net/wireless/ath/ath9k/pci.c ++++ b/drivers/net/wireless/ath/ath9k/pci.c +@@ -16,6 +16,7 @@ + + #include + #include ++#include + #include + #include "ath9k.h" + +@@ -115,12 +116,38 @@ static void ath_pci_extn_synch_enable(struct ath_common *common) + pci_write_config_byte(pdev, sc->sc_ah->caps.pcie_lcr_offset, lnkctl); + } + ++static void ath_pci_aspm_init(struct ath_common *common) ++{ ++ struct ath_softc *sc = (struct ath_softc *) common->priv; ++ struct ath_hw *ah = sc->sc_ah; ++ struct pci_dev *pdev = to_pci_dev(sc->dev); ++ struct pci_dev *parent; ++ int pos; ++ u8 aspm; ++ ++ if (!pci_is_pcie(pdev)) ++ return; ++ ++ parent = pdev->bus->self; ++ if (WARN_ON(!parent)) ++ return; ++ ++ pos = pci_pcie_cap(parent); ++ pci_read_config_byte(parent, pos + PCI_EXP_LNKCTL, &aspm); ++ if (aspm & (PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1)) { ++ ah->aspm_enabled = true; ++ /* Initialize PCIe PM and SERDES registers. */ ++ ath9k_hw_configpcipowersave(ah, 0, 0); ++ } ++} ++ + static const struct ath_bus_ops ath_pci_bus_ops = { + .ath_bus_type = ATH_PCI, + .read_cachesize = ath_pci_read_cachesize, + .eeprom_read = ath_pci_eeprom_read, + .bt_coex_prep = ath_pci_bt_coex_prep, + .extn_synch_en = ath_pci_extn_synch_enable, ++ .aspm_init = ath_pci_aspm_init, + }; + + static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) +diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c +index d508482..89a116f 100644 +--- a/drivers/net/wireless/hostap/hostap_main.c ++++ b/drivers/net/wireless/hostap/hostap_main.c +@@ -855,6 +855,7 @@ void hostap_setup_dev(struct net_device *dev, local_info_t *local, + + iface = netdev_priv(dev); + ether_setup(dev); ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; + + /* kernel callbacks */ + if (iface) { +diff --git a/drivers/net/wireless/iwlegacy/iwl-3945.c b/drivers/net/wireless/iwlegacy/iwl-3945.c +index d096dc2..dcc1552 100644 +--- a/drivers/net/wireless/iwlegacy/iwl-3945.c ++++ b/drivers/net/wireless/iwlegacy/iwl-3945.c +@@ -1747,7 +1747,11 @@ int iwl3945_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx) + } + + memcpy(active_rxon, staging_rxon, sizeof(*active_rxon)); +- ++ /* ++ * We do not commit tx power settings while channel changing, ++ * do it now if tx power changed. ++ */ ++ iwl_legacy_set_tx_power(priv, priv->tx_power_next, false); + return 0; + } + +diff --git a/drivers/net/wireless/iwlegacy/iwl-4965.c b/drivers/net/wireless/iwlegacy/iwl-4965.c +index facc94e..0a1babb 100644 +--- a/drivers/net/wireless/iwlegacy/iwl-4965.c ++++ b/drivers/net/wireless/iwlegacy/iwl-4965.c +@@ -1237,7 +1237,12 @@ static int iwl4965_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *c + + memcpy(active_rxon, &ctx->staging, sizeof(*active_rxon)); + iwl_legacy_print_rx_config_cmd(priv, ctx); +- goto set_tx_power; ++ /* ++ * We do not commit tx power settings while channel changing, ++ * do it now if tx power changed. ++ */ ++ iwl_legacy_set_tx_power(priv, priv->tx_power_next, false); ++ return 0; + } + + /* If we are currently associated and the new config requires +@@ -1317,7 +1322,6 @@ static int iwl4965_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *c + + iwl4965_init_sensitivity(priv); + +-set_tx_power: + /* If we issue a new RXON command which required a tune then we must + * send a new TXPOWER command or we won't be able to Tx any frames */ + ret = iwl_legacy_set_tx_power(priv, priv->tx_power_next, true); +diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c +index e816c27..f1c3f49 100644 +--- a/drivers/net/wireless/iwlwifi/iwl-5000.c ++++ b/drivers/net/wireless/iwlwifi/iwl-5000.c +@@ -421,6 +421,7 @@ static struct iwl_base_params iwl5000_base_params = { + .chain_noise_scale = 1000, + .wd_timeout = IWL_LONG_WD_TIMEOUT, + .max_event_log_size = 512, ++ .no_idle_support = true, + }; + static struct iwl_ht_params iwl5000_ht_params = { + .ht_greenfield_support = true, +diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h +index a54d416..b76996a 100644 +--- a/drivers/net/wireless/iwlwifi/iwl-core.h ++++ b/drivers/net/wireless/iwlwifi/iwl-core.h +@@ -195,6 +195,7 @@ struct iwl_mod_params { + * @temperature_kelvin: temperature report by uCode in kelvin + * @max_event_log_size: size of event log buffer size for ucode event logging + * @shadow_reg_enable: HW shadhow register bit ++ * @no_idle_support: do not support idle mode + */ + struct iwl_base_params { + int eeprom_size; +@@ -216,6 +217,7 @@ struct iwl_base_params { + bool temperature_kelvin; + u32 max_event_log_size; + const bool shadow_reg_enable; ++ const bool no_idle_support; + }; + /* + * @advanced_bt_coexist: support advanced bt coexist +diff --git a/drivers/net/wireless/iwlwifi/iwl-power.c b/drivers/net/wireless/iwlwifi/iwl-power.c +index 595c930..4a05a6a 100644 +--- a/drivers/net/wireless/iwlwifi/iwl-power.c ++++ b/drivers/net/wireless/iwlwifi/iwl-power.c +@@ -355,7 +355,8 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, + + dtimper = priv->hw->conf.ps_dtim_period ?: 1; + +- if (priv->hw->conf.flags & IEEE80211_CONF_IDLE) ++ if (!priv->cfg->base_params->no_idle_support && ++ priv->hw->conf.flags & IEEE80211_CONF_IDLE) + iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, 20); + else if (iwl_tt_is_low_power_state(priv)) { + /* in thermal throttling low power state */ +diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c +index 2a6aa85..5a45228 100644 +--- a/drivers/net/wireless/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/rt2x00/rt2800lib.c +@@ -784,8 +784,7 @@ void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc) + /* + * Add space for the TXWI in front of the skb. + */ +- skb_push(entry->skb, TXWI_DESC_SIZE); +- memset(entry->skb, 0, TXWI_DESC_SIZE); ++ memset(skb_push(entry->skb, TXWI_DESC_SIZE), 0, TXWI_DESC_SIZE); + + /* + * Register descriptor details in skb frame descriptor. +diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c +index 93bec14..a76fdbe 100644 +--- a/drivers/net/wireless/rt2x00/rt2x00mac.c ++++ b/drivers/net/wireless/rt2x00/rt2x00mac.c +@@ -113,7 +113,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb) + * due to possible race conditions in mac80211. + */ + if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) +- goto exit_fail; ++ goto exit_free_skb; + + /* + * Use the ATIM queue if appropriate and present. +@@ -127,7 +127,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb) + ERROR(rt2x00dev, + "Attempt to send packet over invalid queue %d.\n" + "Please file bug report to %s.\n", qid, DRV_PROJECT); +- goto exit_fail; ++ goto exit_free_skb; + } + + /* +@@ -159,6 +159,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb) + + exit_fail: + rt2x00queue_pause_queue(queue); ++ exit_free_skb: + dev_kfree_skb_any(skb); + } + EXPORT_SYMBOL_GPL(rt2x00mac_tx); +diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c +index 254b64b..c872a23 100644 +--- a/drivers/net/wireless/rtlwifi/pci.c ++++ b/drivers/net/wireless/rtlwifi/pci.c +@@ -1709,15 +1709,17 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev, + pcipriv->ndis_adapter.devnumber = PCI_SLOT(pdev->devfn); + pcipriv->ndis_adapter.funcnumber = PCI_FUNC(pdev->devfn); + +- /*find bridge info */ +- pcipriv->ndis_adapter.pcibridge_vendorid = bridge_pdev->vendor; +- for (tmp = 0; tmp < PCI_BRIDGE_VENDOR_MAX; tmp++) { +- if (bridge_pdev->vendor == pcibridge_vendors[tmp]) { +- pcipriv->ndis_adapter.pcibridge_vendor = tmp; +- RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, +- ("Pci Bridge Vendor is found index: %d\n", +- tmp)); +- break; ++ if (bridge_pdev) { ++ /*find bridge info if available */ ++ pcipriv->ndis_adapter.pcibridge_vendorid = bridge_pdev->vendor; ++ for (tmp = 0; tmp < PCI_BRIDGE_VENDOR_MAX; tmp++) { ++ if (bridge_pdev->vendor == pcibridge_vendors[tmp]) { ++ pcipriv->ndis_adapter.pcibridge_vendor = tmp; ++ RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ++ ("Pci Bridge Vendor is found index:" ++ " %d\n", tmp)); ++ break; ++ } + } + } + +diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c +index 3c7857c..e1678b9 100644 +--- a/drivers/platform/x86/asus-wmi.c ++++ b/drivers/platform/x86/asus-wmi.c +@@ -797,8 +797,8 @@ exit: + * Hwmon device + */ + static ssize_t asus_hwmon_pwm1(struct device *dev, +- struct device_attribute *attr, +- char *buf) ++ struct device_attribute *attr, ++ char *buf) + { + struct asus_wmi *asus = dev_get_drvdata(dev); + u32 value; +@@ -809,7 +809,7 @@ static ssize_t asus_hwmon_pwm1(struct device *dev, + if (err < 0) + return err; + +- value |= 0xFF; ++ value &= 0xFF; + + if (value == 1) /* Low Speed */ + value = 85; +@@ -869,7 +869,7 @@ static mode_t asus_hwmon_sysfs_is_visible(struct kobject *kobj, + * - reverved bits are non-zero + * - sfun and presence bit are not set + */ +- if (value != ASUS_WMI_UNSUPPORTED_METHOD || value & 0xFFF80000 ++ if (value == ASUS_WMI_UNSUPPORTED_METHOD || value & 0xFFF80000 + || (!asus->sfun && !(value & ASUS_WMI_DSTS_PRESENCE_BIT))) + ok = false; + } +@@ -904,6 +904,7 @@ static int asus_wmi_hwmon_init(struct asus_wmi *asus) + pr_err("Could not register asus hwmon device\n"); + return PTR_ERR(hwmon); + } ++ dev_set_drvdata(hwmon, asus); + asus->hwmon_device = hwmon; + result = sysfs_create_group(&hwmon->kobj, &hwmon_attribute_group); + if (result) +@@ -1164,14 +1165,18 @@ ASUS_WMI_CREATE_DEVICE_ATTR(cardr, 0644, ASUS_WMI_DEVID_CARDREADER); + static ssize_t store_cpufv(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) + { +- int value; ++ int value, rv; + + if (!count || sscanf(buf, "%i", &value) != 1) + return -EINVAL; + if (value < 0 || value > 2) + return -EINVAL; + +- return asus_wmi_evaluate_method(ASUS_WMI_METHODID_CFVS, value, 0, NULL); ++ rv = asus_wmi_evaluate_method(ASUS_WMI_METHODID_CFVS, value, 0, NULL); ++ if (rv < 0) ++ return rv; ++ ++ return count; + } + + static DEVICE_ATTR(cpufv, S_IRUGO | S_IWUSR, NULL, store_cpufv); +diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c +index efa0255..1da606c 100644 +--- a/drivers/scsi/mpt2sas/mpt2sas_base.c ++++ b/drivers/scsi/mpt2sas/mpt2sas_base.c +@@ -94,7 +94,7 @@ module_param(diag_buffer_enable, int, 0); + MODULE_PARM_DESC(diag_buffer_enable, " post diag buffers " + "(TRACE=1/SNAPSHOT=2/EXTENDED=4/default=0)"); + +-int mpt2sas_fwfault_debug; ++static int mpt2sas_fwfault_debug; + MODULE_PARM_DESC(mpt2sas_fwfault_debug, " enable detection of firmware fault " + "and halt firmware - (default=0)"); + +@@ -857,7 +857,7 @@ _base_interrupt(int irq, void *bus_id) + completed_cmds = 0; + cb_idx = 0xFF; + do { +- rd.word = rpf->Words; ++ rd.word = le64_to_cpu(rpf->Words); + if (rd.u.low == UINT_MAX || rd.u.high == UINT_MAX) + goto out; + reply = 0; +@@ -906,7 +906,7 @@ _base_interrupt(int irq, void *bus_id) + + next: + +- rpf->Words = ULLONG_MAX; ++ rpf->Words = cpu_to_le64(ULLONG_MAX); + ioc->reply_post_host_index = (ioc->reply_post_host_index == + (ioc->reply_post_queue_depth - 1)) ? 0 : + ioc->reply_post_host_index + 1; +@@ -1817,7 +1817,9 @@ _base_display_ioc_capabilities(struct MPT2SAS_ADAPTER *ioc) + char desc[16]; + u8 revision; + u32 iounit_pg1_flags; ++ u32 bios_version; + ++ bios_version = le32_to_cpu(ioc->bios_pg3.BiosVersion); + pci_read_config_byte(ioc->pdev, PCI_CLASS_REVISION, &revision); + strncpy(desc, ioc->manu_pg0.ChipName, 16); + printk(MPT2SAS_INFO_FMT "%s: FWVersion(%02d.%02d.%02d.%02d), " +@@ -1828,10 +1830,10 @@ _base_display_ioc_capabilities(struct MPT2SAS_ADAPTER *ioc) + (ioc->facts.FWVersion.Word & 0x0000FF00) >> 8, + ioc->facts.FWVersion.Word & 0x000000FF, + revision, +- (ioc->bios_pg3.BiosVersion & 0xFF000000) >> 24, +- (ioc->bios_pg3.BiosVersion & 0x00FF0000) >> 16, +- (ioc->bios_pg3.BiosVersion & 0x0000FF00) >> 8, +- ioc->bios_pg3.BiosVersion & 0x000000FF); ++ (bios_version & 0xFF000000) >> 24, ++ (bios_version & 0x00FF0000) >> 16, ++ (bios_version & 0x0000FF00) >> 8, ++ bios_version & 0x000000FF); + + _base_display_dell_branding(ioc); + _base_display_intel_branding(ioc); +@@ -2150,7 +2152,7 @@ _base_release_memory_pools(struct MPT2SAS_ADAPTER *ioc) + static int + _base_allocate_memory_pools(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) + { +- Mpi2IOCFactsReply_t *facts; ++ struct mpt2sas_facts *facts; + u32 queue_size, queue_diff; + u16 max_sge_elements; + u16 num_of_reply_frames; +@@ -2783,7 +2785,7 @@ _base_handshake_req_reply_wait(struct MPT2SAS_ADAPTER *ioc, int request_bytes, + int i; + u8 failed; + u16 dummy; +- u32 *mfp; ++ __le32 *mfp; + + /* make sure doorbell is not in use */ + if ((readl(&ioc->chip->Doorbell) & MPI2_DOORBELL_USED)) { +@@ -2871,7 +2873,7 @@ _base_handshake_req_reply_wait(struct MPT2SAS_ADAPTER *ioc, int request_bytes, + writel(0, &ioc->chip->HostInterruptStatus); + + if (ioc->logging_level & MPT_DEBUG_INIT) { +- mfp = (u32 *)reply; ++ mfp = (__le32 *)reply; + printk(KERN_INFO "\toffset:data\n"); + for (i = 0; i < reply_bytes/4; i++) + printk(KERN_INFO "\t[0x%02x]:%08x\n", i*4, +@@ -3097,7 +3099,8 @@ static int + _base_get_port_facts(struct MPT2SAS_ADAPTER *ioc, int port, int sleep_flag) + { + Mpi2PortFactsRequest_t mpi_request; +- Mpi2PortFactsReply_t mpi_reply, *pfacts; ++ Mpi2PortFactsReply_t mpi_reply; ++ struct mpt2sas_port_facts *pfacts; + int mpi_reply_sz, mpi_request_sz, r; + + dinitprintk(ioc, printk(MPT2SAS_INFO_FMT "%s\n", ioc->name, +@@ -3139,7 +3142,8 @@ static int + _base_get_ioc_facts(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) + { + Mpi2IOCFactsRequest_t mpi_request; +- Mpi2IOCFactsReply_t mpi_reply, *facts; ++ Mpi2IOCFactsReply_t mpi_reply; ++ struct mpt2sas_facts *facts; + int mpi_reply_sz, mpi_request_sz, r; + + dinitprintk(ioc, printk(MPT2SAS_INFO_FMT "%s\n", ioc->name, +@@ -3225,17 +3229,6 @@ _base_send_ioc_init(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) + mpi_request.MsgVersion = cpu_to_le16(MPI2_VERSION); + mpi_request.HeaderVersion = cpu_to_le16(MPI2_HEADER_VERSION); + +- /* In MPI Revision I (0xA), the SystemReplyFrameSize(offset 0x18) was +- * removed and made reserved. For those with older firmware will need +- * this fix. It was decided that the Reply and Request frame sizes are +- * the same. +- */ +- if ((ioc->facts.HeaderVersion >> 8) < 0xA) { +- mpi_request.Reserved7 = cpu_to_le16(ioc->reply_sz); +-/* mpi_request.SystemReplyFrameSize = +- * cpu_to_le16(ioc->reply_sz); +- */ +- } + + mpi_request.SystemRequestFrameSize = cpu_to_le16(ioc->request_sz/4); + mpi_request.ReplyDescriptorPostQueueDepth = +@@ -3243,25 +3236,17 @@ _base_send_ioc_init(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) + mpi_request.ReplyFreeQueueDepth = + cpu_to_le16(ioc->reply_free_queue_depth); + +-#if BITS_PER_LONG > 32 + mpi_request.SenseBufferAddressHigh = +- cpu_to_le32(ioc->sense_dma >> 32); ++ cpu_to_le32((u64)ioc->sense_dma >> 32); + mpi_request.SystemReplyAddressHigh = +- cpu_to_le32(ioc->reply_dma >> 32); ++ cpu_to_le32((u64)ioc->reply_dma >> 32); + mpi_request.SystemRequestFrameBaseAddress = +- cpu_to_le64(ioc->request_dma); ++ cpu_to_le64((u64)ioc->request_dma); + mpi_request.ReplyFreeQueueAddress = +- cpu_to_le64(ioc->reply_free_dma); ++ cpu_to_le64((u64)ioc->reply_free_dma); + mpi_request.ReplyDescriptorPostQueueAddress = +- cpu_to_le64(ioc->reply_post_free_dma); +-#else +- mpi_request.SystemRequestFrameBaseAddress = +- cpu_to_le32(ioc->request_dma); +- mpi_request.ReplyFreeQueueAddress = +- cpu_to_le32(ioc->reply_free_dma); +- mpi_request.ReplyDescriptorPostQueueAddress = +- cpu_to_le32(ioc->reply_post_free_dma); +-#endif ++ cpu_to_le64((u64)ioc->reply_post_free_dma); ++ + + /* This time stamp specifies number of milliseconds + * since epoch ~ midnight January 1, 1970. +@@ -3271,10 +3256,10 @@ _base_send_ioc_init(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) + (current_time.tv_usec / 1000)); + + if (ioc->logging_level & MPT_DEBUG_INIT) { +- u32 *mfp; ++ __le32 *mfp; + int i; + +- mfp = (u32 *)&mpi_request; ++ mfp = (__le32 *)&mpi_request; + printk(KERN_INFO "\toffset:data\n"); + for (i = 0; i < sizeof(Mpi2IOCInitRequest_t)/4; i++) + printk(KERN_INFO "\t[0x%02x]:%08x\n", i*4, +@@ -3759,7 +3744,7 @@ _base_make_ioc_operational(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) + + /* initialize Reply Post Free Queue */ + for (i = 0; i < ioc->reply_post_queue_depth; i++) +- ioc->reply_post_free[i].Words = ULLONG_MAX; ++ ioc->reply_post_free[i].Words = cpu_to_le64(ULLONG_MAX); + + r = _base_send_ioc_init(ioc, sleep_flag); + if (r) +diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h +index dcc289c..451dc1c 100644 +--- a/drivers/scsi/mpt2sas/mpt2sas_base.h ++++ b/drivers/scsi/mpt2sas/mpt2sas_base.h +@@ -541,6 +541,53 @@ struct _tr_list { + + typedef void (*MPT_ADD_SGE)(void *paddr, u32 flags_length, dma_addr_t dma_addr); + ++/* IOC Facts and Port Facts converted from little endian to cpu */ ++union mpi2_version_union { ++ MPI2_VERSION_STRUCT Struct; ++ u32 Word; ++}; ++ ++struct mpt2sas_facts { ++ u16 MsgVersion; ++ u16 HeaderVersion; ++ u8 IOCNumber; ++ u8 VP_ID; ++ u8 VF_ID; ++ u16 IOCExceptions; ++ u16 IOCStatus; ++ u32 IOCLogInfo; ++ u8 MaxChainDepth; ++ u8 WhoInit; ++ u8 NumberOfPorts; ++ u8 MaxMSIxVectors; ++ u16 RequestCredit; ++ u16 ProductID; ++ u32 IOCCapabilities; ++ union mpi2_version_union FWVersion; ++ u16 IOCRequestFrameSize; ++ u16 Reserved3; ++ u16 MaxInitiators; ++ u16 MaxTargets; ++ u16 MaxSasExpanders; ++ u16 MaxEnclosures; ++ u16 ProtocolFlags; ++ u16 HighPriorityCredit; ++ u16 MaxReplyDescriptorPostQueueDepth; ++ u8 ReplyFrameSize; ++ u8 MaxVolumes; ++ u16 MaxDevHandle; ++ u16 MaxPersistentEntries; ++ u16 MinDevHandle; ++}; ++ ++struct mpt2sas_port_facts { ++ u8 PortNumber; ++ u8 VP_ID; ++ u8 VF_ID; ++ u8 PortType; ++ u16 MaxPostedCmdBuffers; ++}; ++ + /** + * struct MPT2SAS_ADAPTER - per adapter struct + * @list: ioc_list +@@ -749,8 +796,8 @@ struct MPT2SAS_ADAPTER { + u32 event_masks[MPI2_EVENT_NOTIFY_EVENTMASK_WORDS]; + + /* static config pages */ +- Mpi2IOCFactsReply_t facts; +- Mpi2PortFactsReply_t *pfacts; ++ struct mpt2sas_facts facts; ++ struct mpt2sas_port_facts *pfacts; + Mpi2ManufacturingPage0_t manu_pg0; + Mpi2BiosPage2_t bios_pg2; + Mpi2BiosPage3_t bios_pg3; +@@ -840,7 +887,7 @@ struct MPT2SAS_ADAPTER { + + /* reply free queue */ + u16 reply_free_queue_depth; +- u32 *reply_free; ++ __le32 *reply_free; + dma_addr_t reply_free_dma; + struct dma_pool *reply_free_dma_pool; + u32 reply_free_host_index; +diff --git a/drivers/scsi/mpt2sas/mpt2sas_ctl.c b/drivers/scsi/mpt2sas/mpt2sas_ctl.c +index 437c2d9..d1c3bba 100644 +--- a/drivers/scsi/mpt2sas/mpt2sas_ctl.c ++++ b/drivers/scsi/mpt2sas/mpt2sas_ctl.c +@@ -2706,13 +2706,13 @@ static DEVICE_ATTR(ioc_reset_count, S_IRUGO, + _ctl_ioc_reset_count_show, NULL); + + struct DIAG_BUFFER_START { +- u32 Size; +- u32 DiagVersion; ++ __le32 Size; ++ __le32 DiagVersion; + u8 BufferType; + u8 Reserved[3]; +- u32 Reserved1; +- u32 Reserved2; +- u32 Reserved3; ++ __le32 Reserved1; ++ __le32 Reserved2; ++ __le32 Reserved3; + }; + /** + * _ctl_host_trace_buffer_size_show - host buffer size (trace only) +diff --git a/drivers/scsi/mpt2sas/mpt2sas_debug.h b/drivers/scsi/mpt2sas/mpt2sas_debug.h +index 3dcddfe..9731f8e 100644 +--- a/drivers/scsi/mpt2sas/mpt2sas_debug.h ++++ b/drivers/scsi/mpt2sas/mpt2sas_debug.h +@@ -164,7 +164,7 @@ static inline void + _debug_dump_mf(void *mpi_request, int sz) + { + int i; +- u32 *mfp = (u32 *)mpi_request; ++ __le32 *mfp = (__le32 *)mpi_request; + + printk(KERN_INFO "mf:\n\t"); + for (i = 0; i < sz; i++) { +diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c +index a7dbc68..e327a3c 100644 +--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c ++++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c +@@ -1956,7 +1956,7 @@ _scsih_slave_configure(struct scsi_device *sdev) + case MPI2_RAID_VOL_TYPE_RAID1E: + qdepth = MPT2SAS_RAID_QUEUE_DEPTH; + if (ioc->manu_pg10.OEMIdentifier && +- (ioc->manu_pg10.GenericFlags0 & ++ (le32_to_cpu(ioc->manu_pg10.GenericFlags0) & + MFG10_GF0_R10_DISPLAY) && + !(raid_device->num_pds % 2)) + r_level = "RAID10"; +@@ -4598,7 +4598,7 @@ _scsih_expander_add(struct MPT2SAS_ADAPTER *ioc, u16 handle) + Mpi2SasEnclosurePage0_t enclosure_pg0; + u32 ioc_status; + u16 parent_handle; +- __le64 sas_address, sas_address_parent = 0; ++ u64 sas_address, sas_address_parent = 0; + int i; + unsigned long flags; + struct _sas_port *mpt2sas_port = NULL; +@@ -5404,7 +5404,7 @@ _scsih_sas_device_status_change_event(struct MPT2SAS_ADAPTER *ioc, + { + struct MPT2SAS_TARGET *target_priv_data; + struct _sas_device *sas_device; +- __le64 sas_address; ++ u64 sas_address; + unsigned long flags; + Mpi2EventDataSasDeviceStatusChange_t *event_data = + fw_event->event_data; +@@ -6566,7 +6566,7 @@ _scsih_search_responding_expanders(struct MPT2SAS_ADAPTER *ioc) + Mpi2ExpanderPage0_t expander_pg0; + Mpi2ConfigReply_t mpi_reply; + u16 ioc_status; +- __le64 sas_address; ++ u64 sas_address; + u16 handle; + + printk(MPT2SAS_INFO_FMT "%s\n", ioc->name, __func__); +@@ -7505,7 +7505,7 @@ _scsih_suspend(struct pci_dev *pdev, pm_message_t state) + { + struct Scsi_Host *shost = pci_get_drvdata(pdev); + struct MPT2SAS_ADAPTER *ioc = shost_priv(shost); +- u32 device_state; ++ pci_power_t device_state; + + mpt2sas_base_stop_watchdog(ioc); + scsi_block_requests(shost); +@@ -7532,7 +7532,7 @@ _scsih_resume(struct pci_dev *pdev) + { + struct Scsi_Host *shost = pci_get_drvdata(pdev); + struct MPT2SAS_ADAPTER *ioc = shost_priv(shost); +- u32 device_state = pdev->current_state; ++ pci_power_t device_state = pdev->current_state; + int r; + + printk(MPT2SAS_INFO_FMT "pdev=0x%p, slot=%s, previous " +diff --git a/drivers/scsi/mpt2sas/mpt2sas_transport.c b/drivers/scsi/mpt2sas/mpt2sas_transport.c +index cb1cdec..15c7980 100644 +--- a/drivers/scsi/mpt2sas/mpt2sas_transport.c ++++ b/drivers/scsi/mpt2sas/mpt2sas_transport.c +@@ -299,7 +299,6 @@ _transport_expander_report_manufacture(struct MPT2SAS_ADAPTER *ioc, + void *data_out = NULL; + dma_addr_t data_out_dma; + u32 sz; +- u64 *sas_address_le; + u16 wait_state_count; + + if (ioc->shost_recovery || ioc->pci_error_recovery) { +@@ -372,8 +371,7 @@ _transport_expander_report_manufacture(struct MPT2SAS_ADAPTER *ioc, + mpi_request->PhysicalPort = 0xFF; + mpi_request->VF_ID = 0; /* TODO */ + mpi_request->VP_ID = 0; +- sas_address_le = (u64 *)&mpi_request->SASAddress; +- *sas_address_le = cpu_to_le64(sas_address); ++ mpi_request->SASAddress = cpu_to_le64(sas_address); + mpi_request->RequestDataLength = + cpu_to_le16(sizeof(struct rep_manu_request)); + psge = &mpi_request->SGL; +@@ -1049,14 +1047,14 @@ struct phy_error_log_reply{ + u8 function; /* 0x11 */ + u8 function_result; + u8 response_length; +- u16 expander_change_count; ++ __be16 expander_change_count; + u8 reserved_1[3]; + u8 phy_identifier; + u8 reserved_2[2]; +- u32 invalid_dword; +- u32 running_disparity_error; +- u32 loss_of_dword_sync; +- u32 phy_reset_problem; ++ __be32 invalid_dword; ++ __be32 running_disparity_error; ++ __be32 loss_of_dword_sync; ++ __be32 phy_reset_problem; + }; + + /** +@@ -1085,7 +1083,6 @@ _transport_get_expander_phy_error_log(struct MPT2SAS_ADAPTER *ioc, + void *data_out = NULL; + dma_addr_t data_out_dma; + u32 sz; +- u64 *sas_address_le; + u16 wait_state_count; + + if (ioc->shost_recovery || ioc->pci_error_recovery) { +@@ -1160,8 +1157,7 @@ _transport_get_expander_phy_error_log(struct MPT2SAS_ADAPTER *ioc, + mpi_request->PhysicalPort = 0xFF; + mpi_request->VF_ID = 0; /* TODO */ + mpi_request->VP_ID = 0; +- sas_address_le = (u64 *)&mpi_request->SASAddress; +- *sas_address_le = cpu_to_le64(phy->identify.sas_address); ++ mpi_request->SASAddress = cpu_to_le64(phy->identify.sas_address); + mpi_request->RequestDataLength = + cpu_to_le16(sizeof(struct phy_error_log_request)); + psge = &mpi_request->SGL; +@@ -1406,7 +1402,6 @@ _transport_expander_phy_control(struct MPT2SAS_ADAPTER *ioc, + void *data_out = NULL; + dma_addr_t data_out_dma; + u32 sz; +- u64 *sas_address_le; + u16 wait_state_count; + + if (ioc->shost_recovery) { +@@ -1486,8 +1481,7 @@ _transport_expander_phy_control(struct MPT2SAS_ADAPTER *ioc, + mpi_request->PhysicalPort = 0xFF; + mpi_request->VF_ID = 0; /* TODO */ + mpi_request->VP_ID = 0; +- sas_address_le = (u64 *)&mpi_request->SASAddress; +- *sas_address_le = cpu_to_le64(phy->identify.sas_address); ++ mpi_request->SASAddress = cpu_to_le64(phy->identify.sas_address); + mpi_request->RequestDataLength = + cpu_to_le16(sizeof(struct phy_error_log_request)); + psge = &mpi_request->SGL; +@@ -1914,7 +1908,7 @@ _transport_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy, + mpi_request->PhysicalPort = 0xFF; + mpi_request->VF_ID = 0; /* TODO */ + mpi_request->VP_ID = 0; +- *((u64 *)&mpi_request->SASAddress) = (rphy) ? ++ mpi_request->SASAddress = (rphy) ? + cpu_to_le64(rphy->identify.sas_address) : + cpu_to_le64(ioc->sas_hba.sas_address); + mpi_request->RequestDataLength = cpu_to_le16(blk_rq_bytes(req) - 4); +diff --git a/drivers/staging/ath6kl/os/linux/ar6000_drv.c b/drivers/staging/ath6kl/os/linux/ar6000_drv.c +index aa97efc..62487a7 100644 +--- a/drivers/staging/ath6kl/os/linux/ar6000_drv.c ++++ b/drivers/staging/ath6kl/os/linux/ar6000_drv.c +@@ -6198,6 +6198,7 @@ int ar6000_create_ap_interface(struct ar6_softc *ar, char *ap_ifname) + + ether_setup(dev); + init_netdev(dev, ap_ifname); ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; + + if (register_netdev(dev)) { + AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("ar6000_create_ap_interface: register_netdev failed\n")); +diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c +index bc4b12c..fc7e57b 100644 +--- a/fs/cifs/cifsfs.c ++++ b/fs/cifs/cifsfs.c +@@ -581,6 +581,10 @@ cifs_get_root(struct smb_vol *vol, struct super_block *sb) + mutex_unlock(&dir->i_mutex); + dput(dentry); + dentry = child; ++ if (!dentry->d_inode) { ++ dput(dentry); ++ dentry = ERR_PTR(-ENOENT); ++ } + } while (!IS_ERR(dentry)); + _FreeXid(xid); + kfree(full_path); +diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c +index 9b018c8..a7b2dcd 100644 +--- a/fs/cifs/inode.c ++++ b/fs/cifs/inode.c +@@ -764,20 +764,10 @@ char *cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb, + if (full_path == NULL) + return full_path; + +- if (dfsplen) { ++ if (dfsplen) + strncpy(full_path, tcon->treeName, dfsplen); +- /* switch slash direction in prepath depending on whether +- * windows or posix style path names +- */ +- if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) { +- int i; +- for (i = 0; i < dfsplen; i++) { +- if (full_path[i] == '\\') +- full_path[i] = '/'; +- } +- } +- } + strncpy(full_path + dfsplen, vol->prepath, pplen); ++ convert_delimiter(full_path, CIFS_DIR_SEP(cifs_sb)); + full_path[dfsplen + pplen] = 0; /* add trailing null */ + return full_path; + } +diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c +index 147aa22..c1b9c4b 100644 +--- a/fs/cifs/transport.c ++++ b/fs/cifs/transport.c +@@ -362,6 +362,8 @@ cifs_call_async(struct TCP_Server_Info *server, struct kvec *iov, + mid = AllocMidQEntry(hdr, server); + if (mid == NULL) { + mutex_unlock(&server->srv_mutex); ++ atomic_dec(&server->inFlight); ++ wake_up(&server->request_q); + return -ENOMEM; + } + +diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c +index 9f1bb74..b4a6bef 100644 +--- a/fs/ecryptfs/main.c ++++ b/fs/ecryptfs/main.c +@@ -175,6 +175,7 @@ enum { ecryptfs_opt_sig, ecryptfs_opt_ecryptfs_sig, + ecryptfs_opt_encrypted_view, ecryptfs_opt_fnek_sig, + ecryptfs_opt_fn_cipher, ecryptfs_opt_fn_cipher_key_bytes, + ecryptfs_opt_unlink_sigs, ecryptfs_opt_mount_auth_tok_only, ++ ecryptfs_opt_check_dev_ruid, + ecryptfs_opt_err }; + + static const match_table_t tokens = { +@@ -191,6 +192,7 @@ static const match_table_t tokens = { + {ecryptfs_opt_fn_cipher_key_bytes, "ecryptfs_fn_key_bytes=%u"}, + {ecryptfs_opt_unlink_sigs, "ecryptfs_unlink_sigs"}, + {ecryptfs_opt_mount_auth_tok_only, "ecryptfs_mount_auth_tok_only"}, ++ {ecryptfs_opt_check_dev_ruid, "ecryptfs_check_dev_ruid"}, + {ecryptfs_opt_err, NULL} + }; + +@@ -236,6 +238,7 @@ static void ecryptfs_init_mount_crypt_stat( + * ecryptfs_parse_options + * @sb: The ecryptfs super block + * @options: The options passed to the kernel ++ * @check_ruid: set to 1 if device uid should be checked against the ruid + * + * Parse mount options: + * debug=N - ecryptfs_verbosity level for debug output +@@ -251,7 +254,8 @@ static void ecryptfs_init_mount_crypt_stat( + * + * Returns zero on success; non-zero on error + */ +-static int ecryptfs_parse_options(struct ecryptfs_sb_info *sbi, char *options) ++static int ecryptfs_parse_options(struct ecryptfs_sb_info *sbi, char *options, ++ uid_t *check_ruid) + { + char *p; + int rc = 0; +@@ -276,6 +280,8 @@ static int ecryptfs_parse_options(struct ecryptfs_sb_info *sbi, char *options) + char *cipher_key_bytes_src; + char *fn_cipher_key_bytes_src; + ++ *check_ruid = 0; ++ + if (!options) { + rc = -EINVAL; + goto out; +@@ -380,6 +386,9 @@ static int ecryptfs_parse_options(struct ecryptfs_sb_info *sbi, char *options) + mount_crypt_stat->flags |= + ECRYPTFS_GLOBAL_MOUNT_AUTH_TOK_ONLY; + break; ++ case ecryptfs_opt_check_dev_ruid: ++ *check_ruid = 1; ++ break; + case ecryptfs_opt_err: + default: + printk(KERN_WARNING +@@ -475,6 +484,7 @@ static struct dentry *ecryptfs_mount(struct file_system_type *fs_type, int flags + const char *err = "Getting sb failed"; + struct inode *inode; + struct path path; ++ uid_t check_ruid; + int rc; + + sbi = kmem_cache_zalloc(ecryptfs_sb_info_cache, GFP_KERNEL); +@@ -483,7 +493,7 @@ static struct dentry *ecryptfs_mount(struct file_system_type *fs_type, int flags + goto out; + } + +- rc = ecryptfs_parse_options(sbi, raw_data); ++ rc = ecryptfs_parse_options(sbi, raw_data, &check_ruid); + if (rc) { + err = "Error parsing options"; + goto out; +@@ -521,6 +531,15 @@ static struct dentry *ecryptfs_mount(struct file_system_type *fs_type, int flags + "known incompatibilities\n"); + goto out_free; + } ++ ++ if (check_ruid && path.dentry->d_inode->i_uid != current_uid()) { ++ rc = -EPERM; ++ printk(KERN_ERR "Mount of device (uid: %d) not owned by " ++ "requested user (uid: %d)\n", ++ path.dentry->d_inode->i_uid, current_uid()); ++ goto out_free; ++ } ++ + ecryptfs_set_superblock_lower(s, path.dentry->d_sb); + s->s_maxbytes = path.dentry->d_sb->s_maxbytes; + s->s_blocksize = path.dentry->d_sb->s_blocksize; +diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c +index 85d4309..3745f7c 100644 +--- a/fs/ecryptfs/read_write.c ++++ b/fs/ecryptfs/read_write.c +@@ -39,15 +39,16 @@ + int ecryptfs_write_lower(struct inode *ecryptfs_inode, char *data, + loff_t offset, size_t size) + { +- struct ecryptfs_inode_info *inode_info; ++ struct file *lower_file; + mm_segment_t fs_save; + ssize_t rc; + +- inode_info = ecryptfs_inode_to_private(ecryptfs_inode); +- BUG_ON(!inode_info->lower_file); ++ lower_file = ecryptfs_inode_to_private(ecryptfs_inode)->lower_file; ++ if (!lower_file) ++ return -EIO; + fs_save = get_fs(); + set_fs(get_ds()); +- rc = vfs_write(inode_info->lower_file, data, size, &offset); ++ rc = vfs_write(lower_file, data, size, &offset); + set_fs(fs_save); + mark_inode_dirty_sync(ecryptfs_inode); + return rc; +@@ -225,15 +226,16 @@ out: + int ecryptfs_read_lower(char *data, loff_t offset, size_t size, + struct inode *ecryptfs_inode) + { +- struct ecryptfs_inode_info *inode_info = +- ecryptfs_inode_to_private(ecryptfs_inode); ++ struct file *lower_file; + mm_segment_t fs_save; + ssize_t rc; + +- BUG_ON(!inode_info->lower_file); ++ lower_file = ecryptfs_inode_to_private(ecryptfs_inode)->lower_file; ++ if (!lower_file) ++ return -EIO; + fs_save = get_fs(); + set_fs(get_ds()); +- rc = vfs_read(inode_info->lower_file, data, size, &offset); ++ rc = vfs_read(lower_file, data, size, &offset); + set_fs(fs_save); + return rc; + } +diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c +index 34b6d9b..e5a7111 100644 +--- a/fs/ext3/namei.c ++++ b/fs/ext3/namei.c +@@ -2210,9 +2210,11 @@ static int ext3_symlink (struct inode * dir, + /* + * For non-fast symlinks, we just allocate inode and put it on + * orphan list in the first transaction => we need bitmap, +- * group descriptor, sb, inode block, quota blocks. ++ * group descriptor, sb, inode block, quota blocks, and ++ * possibly selinux xattr blocks. + */ +- credits = 4 + EXT3_MAXQUOTAS_INIT_BLOCKS(dir->i_sb); ++ credits = 4 + EXT3_MAXQUOTAS_INIT_BLOCKS(dir->i_sb) + ++ EXT3_XATTR_TRANS_BLOCKS; + } else { + /* + * Fast symlink. We have to add entry to directory +diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c +index b754b77..458a394 100644 +--- a/fs/ext4/namei.c ++++ b/fs/ext4/namei.c +@@ -2264,9 +2264,11 @@ static int ext4_symlink(struct inode *dir, + /* + * For non-fast symlinks, we just allocate inode and put it on + * orphan list in the first transaction => we need bitmap, +- * group descriptor, sb, inode block, quota blocks. ++ * group descriptor, sb, inode block, quota blocks, and ++ * possibly selinux xattr blocks. + */ +- credits = 4 + EXT4_MAXQUOTAS_INIT_BLOCKS(dir->i_sb); ++ credits = 4 + EXT4_MAXQUOTAS_INIT_BLOCKS(dir->i_sb) + ++ EXT4_XATTR_TRANS_BLOCKS; + } else { + /* + * Fast symlink. We have to add entry to directory +diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h +index 33d12f8..0ec3687 100644 +--- a/include/drm/drm_crtc.h ++++ b/include/drm/drm_crtc.h +@@ -802,6 +802,7 @@ extern struct drm_display_mode *drm_gtf_mode_complex(struct drm_device *dev, + extern int drm_add_modes_noedid(struct drm_connector *connector, + int hdisplay, int vdisplay); + ++extern int drm_edid_header_is_valid(const u8 *raw_edid); + extern bool drm_edid_is_valid(struct edid *edid); + struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev, + int hsize, int vsize, int fresh); +diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h +index c4d6dbf..28c0d11 100644 +--- a/include/drm/i915_drm.h ++++ b/include/drm/i915_drm.h +@@ -237,7 +237,7 @@ typedef struct _drm_i915_sarea { + #define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture) + #define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_i915_get_pipe_from_crtc_id) + #define DRM_IOCTL_I915_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MADVISE, struct drm_i915_gem_madvise) +-#define DRM_IOCTL_I915_OVERLAY_PUT_IMAGE DRM_IOW(DRM_COMMAND_BASE + DRM_IOCTL_I915_OVERLAY_ATTRS, struct drm_intel_overlay_put_image) ++#define DRM_IOCTL_I915_OVERLAY_PUT_IMAGE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_OVERLAY_PUT_IMAGE, struct drm_intel_overlay_put_image) + #define DRM_IOCTL_I915_OVERLAY_ATTRS DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_OVERLAY_ATTRS, struct drm_intel_overlay_attrs) + + /* Allow drivers to submit batchbuffers directly to hardware, relying +diff --git a/include/linux/cryptohash.h b/include/linux/cryptohash.h +index ec78a4b..d2984fb 100644 +--- a/include/linux/cryptohash.h ++++ b/include/linux/cryptohash.h +@@ -8,6 +8,11 @@ + void sha_init(__u32 *buf); + void sha_transform(__u32 *digest, const char *data, __u32 *W); + ++#define MD5_DIGEST_WORDS 4 ++#define MD5_MESSAGE_BYTES 64 ++ ++void md5_transform(__u32 *hash, __u32 const *in); ++ + __u32 half_md4_transform(__u32 buf[4], __u32 const in[8]); + + #endif +diff --git a/include/linux/if.h b/include/linux/if.h +index 3bc63e6..03489ca 100644 +--- a/include/linux/if.h ++++ b/include/linux/if.h +@@ -76,6 +76,8 @@ + #define IFF_BRIDGE_PORT 0x4000 /* device used as bridge port */ + #define IFF_OVS_DATAPATH 0x8000 /* device used as Open vSwitch + * datapath port */ ++#define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing ++ * skbs on transmit */ + + #define IF_GET_IFACE 0x0001 /* for querying only */ + #define IF_GET_PROTO 0x0002 +diff --git a/include/linux/mm.h b/include/linux/mm.h +index 1036614..ec6e33d 100644 +--- a/include/linux/mm.h ++++ b/include/linux/mm.h +@@ -959,6 +959,8 @@ int invalidate_inode_page(struct page *page); + #ifdef CONFIG_MMU + extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, + unsigned long address, unsigned int flags); ++extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, ++ unsigned long address, unsigned int fault_flags); + #else + static inline int handle_mm_fault(struct mm_struct *mm, + struct vm_area_struct *vma, unsigned long address, +@@ -968,6 +970,14 @@ static inline int handle_mm_fault(struct mm_struct *mm, + BUG(); + return VM_FAULT_SIGBUS; + } ++static inline int fixup_user_fault(struct task_struct *tsk, ++ struct mm_struct *mm, unsigned long address, ++ unsigned int fault_flags) ++{ ++ /* should never happen if there's no MMU */ ++ BUG(); ++ return -EFAULT; ++} + #endif + + extern int make_pages_present(unsigned long addr, unsigned long end); +@@ -985,8 +995,6 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, + int get_user_pages_fast(unsigned long start, int nr_pages, int write, + struct page **pages); + struct page *get_dump_page(unsigned long addr); +-extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, +- unsigned long address, unsigned int fault_flags); + + extern int try_to_release_page(struct page * page, gfp_t gfp_mask); + extern void do_invalidatepage(struct page *page, unsigned long offset); +diff --git a/include/linux/random.h b/include/linux/random.h +index fb7ab9d..d13059f 100644 +--- a/include/linux/random.h ++++ b/include/linux/random.h +@@ -57,17 +57,6 @@ extern void add_interrupt_randomness(int irq); + extern void get_random_bytes(void *buf, int nbytes); + void generate_random_uuid(unsigned char uuid_out[16]); + +-extern __u32 secure_ip_id(__be32 daddr); +-extern u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport); +-extern u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, +- __be16 dport); +-extern __u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, +- __be16 sport, __be16 dport); +-extern __u32 secure_tcpv6_sequence_number(__be32 *saddr, __be32 *daddr, +- __be16 sport, __be16 dport); +-extern u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, +- __be16 sport, __be16 dport); +- + #ifndef MODULE + extern const struct file_operations random_fops, urandom_fops; + #endif +diff --git a/include/net/ipv6.h b/include/net/ipv6.h +index c033ed0..3b5ac1f 100644 +--- a/include/net/ipv6.h ++++ b/include/net/ipv6.h +@@ -463,17 +463,7 @@ static inline int ipv6_addr_diff(const struct in6_addr *a1, const struct in6_add + return __ipv6_addr_diff(a1, a2, sizeof(struct in6_addr)); + } + +-static __inline__ void ipv6_select_ident(struct frag_hdr *fhdr) +-{ +- static u32 ipv6_fragmentation_id = 1; +- static DEFINE_SPINLOCK(ip6_id_lock); +- +- spin_lock_bh(&ip6_id_lock); +- fhdr->identification = htonl(ipv6_fragmentation_id); +- if (++ipv6_fragmentation_id == 0) +- ipv6_fragmentation_id = 1; +- spin_unlock_bh(&ip6_id_lock); +-} ++extern void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt); + + /* + * Prototypes exported by ipv6 +diff --git a/include/net/secure_seq.h b/include/net/secure_seq.h +new file mode 100644 +index 0000000..d97f689 +--- /dev/null ++++ b/include/net/secure_seq.h +@@ -0,0 +1,20 @@ ++#ifndef _NET_SECURE_SEQ ++#define _NET_SECURE_SEQ ++ ++#include ++ ++extern __u32 secure_ip_id(__be32 daddr); ++extern __u32 secure_ipv6_id(const __be32 daddr[4]); ++extern u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport); ++extern u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, ++ __be16 dport); ++extern __u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, ++ __be16 sport, __be16 dport); ++extern __u32 secure_tcpv6_sequence_number(__be32 *saddr, __be32 *daddr, ++ __be16 sport, __be16 dport); ++extern u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, ++ __be16 sport, __be16 dport); ++extern u64 secure_dccpv6_sequence_number(__be32 *saddr, __be32 *daddr, ++ __be16 sport, __be16 dport); ++ ++#endif /* _NET_SECURE_SEQ */ +diff --git a/include/net/transp_v6.h b/include/net/transp_v6.h +index 5271a74..45ce307 100644 +--- a/include/net/transp_v6.h ++++ b/include/net/transp_v6.h +@@ -14,6 +14,8 @@ extern struct proto tcpv6_prot; + + struct flowi6; + ++extern void initialize_hashidentrnd(void); ++ + /* extension headers */ + extern int ipv6_exthdrs_init(void); + extern void ipv6_exthdrs_exit(void); +diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h +index 70213b4..6acd9ce 100644 +--- a/include/xen/interface/xen.h ++++ b/include/xen/interface/xen.h +@@ -450,6 +450,45 @@ struct start_info { + int8_t cmd_line[MAX_GUEST_CMDLINE]; + }; + ++struct dom0_vga_console_info { ++ uint8_t video_type; ++#define XEN_VGATYPE_TEXT_MODE_3 0x03 ++#define XEN_VGATYPE_VESA_LFB 0x23 ++ ++ union { ++ struct { ++ /* Font height, in pixels. */ ++ uint16_t font_height; ++ /* Cursor location (column, row). */ ++ uint16_t cursor_x, cursor_y; ++ /* Number of rows and columns (dimensions in characters). */ ++ uint16_t rows, columns; ++ } text_mode_3; ++ ++ struct { ++ /* Width and height, in pixels. */ ++ uint16_t width, height; ++ /* Bytes per scan line. */ ++ uint16_t bytes_per_line; ++ /* Bits per pixel. */ ++ uint16_t bits_per_pixel; ++ /* LFB physical address, and size (in units of 64kB). */ ++ uint32_t lfb_base; ++ uint32_t lfb_size; ++ /* RGB mask offsets and sizes, as defined by VBE 1.2+ */ ++ uint8_t red_pos, red_size; ++ uint8_t green_pos, green_size; ++ uint8_t blue_pos, blue_size; ++ uint8_t rsvd_pos, rsvd_size; ++ ++ /* VESA capabilities (offset 0xa, VESA command 0x4f00). */ ++ uint32_t gbl_caps; ++ /* Mode attributes (offset 0x0, VESA command 0x4f01). */ ++ uint16_t mode_attrs; ++ } vesa_lfb; ++ } u; ++}; ++ + /* These flags are passed in the 'flags' field of start_info_t. */ + #define SIF_PRIVILEGED (1<<0) /* Is the domain privileged? */ + #define SIF_INITDOMAIN (1<<1) /* Is this the initial control domain? */ +diff --git a/kernel/futex.c b/kernel/futex.c +index 7a0a4ed..8b6da25 100644 +--- a/kernel/futex.c ++++ b/kernel/futex.c +@@ -218,6 +218,8 @@ static void drop_futex_key_refs(union futex_key *key) + * @uaddr: virtual address of the futex + * @fshared: 0 for a PROCESS_PRIVATE futex, 1 for PROCESS_SHARED + * @key: address where result is stored. ++ * @rw: mapping needs to be read/write (values: VERIFY_READ, ++ * VERIFY_WRITE) + * + * Returns a negative error code or 0 + * The key words are stored in *key on success. +@@ -229,12 +231,12 @@ static void drop_futex_key_refs(union futex_key *key) + * lock_page() might sleep, the caller should not hold a spinlock. + */ + static int +-get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key) ++get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw) + { + unsigned long address = (unsigned long)uaddr; + struct mm_struct *mm = current->mm; + struct page *page, *page_head; +- int err; ++ int err, ro = 0; + + /* + * The futex address must be "naturally" aligned. +@@ -262,8 +264,18 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key) + + again: + err = get_user_pages_fast(address, 1, 1, &page); ++ /* ++ * If write access is not required (eg. FUTEX_WAIT), try ++ * and get read-only access. ++ */ ++ if (err == -EFAULT && rw == VERIFY_READ) { ++ err = get_user_pages_fast(address, 1, 0, &page); ++ ro = 1; ++ } + if (err < 0) + return err; ++ else ++ err = 0; + + #ifdef CONFIG_TRANSPARENT_HUGEPAGE + page_head = page; +@@ -305,6 +317,13 @@ again: + if (!page_head->mapping) { + unlock_page(page_head); + put_page(page_head); ++ /* ++ * ZERO_PAGE pages don't have a mapping. Avoid a busy loop ++ * trying to find one. RW mapping would have COW'd (and thus ++ * have a mapping) so this page is RO and won't ever change. ++ */ ++ if ((page_head == ZERO_PAGE(address))) ++ return -EFAULT; + goto again; + } + +@@ -316,6 +335,15 @@ again: + * the object not the particular process. + */ + if (PageAnon(page_head)) { ++ /* ++ * A RO anonymous page will never change and thus doesn't make ++ * sense for futex operations. ++ */ ++ if (ro) { ++ err = -EFAULT; ++ goto out; ++ } ++ + key->both.offset |= FUT_OFF_MMSHARED; /* ref taken on mm */ + key->private.mm = mm; + key->private.address = address; +@@ -327,9 +355,10 @@ again: + + get_futex_key_refs(key); + ++out: + unlock_page(page_head); + put_page(page_head); +- return 0; ++ return err; + } + + static inline void put_futex_key(union futex_key *key) +@@ -940,7 +969,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) + if (!bitset) + return -EINVAL; + +- ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &key); ++ ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &key, VERIFY_READ); + if (unlikely(ret != 0)) + goto out; + +@@ -986,10 +1015,10 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2, + int ret, op_ret; + + retry: +- ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1); ++ ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1, VERIFY_READ); + if (unlikely(ret != 0)) + goto out; +- ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2); ++ ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, VERIFY_WRITE); + if (unlikely(ret != 0)) + goto out_put_key1; + +@@ -1243,10 +1272,11 @@ retry: + pi_state = NULL; + } + +- ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1); ++ ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1, VERIFY_READ); + if (unlikely(ret != 0)) + goto out; +- ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2); ++ ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, ++ requeue_pi ? VERIFY_WRITE : VERIFY_READ); + if (unlikely(ret != 0)) + goto out_put_key1; + +@@ -1790,7 +1820,7 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags, + * while the syscall executes. + */ + retry: +- ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q->key); ++ ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q->key, VERIFY_READ); + if (unlikely(ret != 0)) + return ret; + +@@ -1941,7 +1971,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, int detect, + } + + retry: +- ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q.key); ++ ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q.key, VERIFY_WRITE); + if (unlikely(ret != 0)) + goto out; + +@@ -2060,7 +2090,7 @@ retry: + if ((uval & FUTEX_TID_MASK) != vpid) + return -EPERM; + +- ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &key); ++ ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &key, VERIFY_WRITE); + if (unlikely(ret != 0)) + goto out; + +@@ -2249,7 +2279,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, + debug_rt_mutex_init_waiter(&rt_waiter); + rt_waiter.task = NULL; + +- ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2); ++ ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, VERIFY_WRITE); + if (unlikely(ret != 0)) + goto out; + +diff --git a/lib/Makefile b/lib/Makefile +index 6b597fd..578414a 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -10,7 +10,7 @@ endif + lib-y := ctype.o string.o vsprintf.o cmdline.o \ + rbtree.o radix-tree.o dump_stack.o timerqueue.o\ + idr.o int_sqrt.o extable.o prio_tree.o \ +- sha1.o irq_regs.o reciprocal_div.o argv_split.o \ ++ sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ + proportions.o prio_heap.o ratelimit.o show_mem.o \ + is_single_threaded.o plist.o decompress.o find_next_bit.o + +diff --git a/lib/md5.c b/lib/md5.c +new file mode 100644 +index 0000000..c777180 +--- /dev/null ++++ b/lib/md5.c +@@ -0,0 +1,95 @@ ++#include ++#include ++#include ++ ++#define F1(x, y, z) (z ^ (x & (y ^ z))) ++#define F2(x, y, z) F1(z, x, y) ++#define F3(x, y, z) (x ^ y ^ z) ++#define F4(x, y, z) (y ^ (x | ~z)) ++ ++#define MD5STEP(f, w, x, y, z, in, s) \ ++ (w += f(x, y, z) + in, w = (w<>(32-s)) + x) ++ ++void md5_transform(__u32 *hash, __u32 const *in) ++{ ++ u32 a, b, c, d; ++ ++ a = hash[0]; ++ b = hash[1]; ++ c = hash[2]; ++ d = hash[3]; ++ ++ MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); ++ MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); ++ MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); ++ MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); ++ MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); ++ MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); ++ MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); ++ MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); ++ MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); ++ MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); ++ MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); ++ MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); ++ MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); ++ MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); ++ MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); ++ MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); ++ ++ MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); ++ MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); ++ MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); ++ MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); ++ MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); ++ MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); ++ MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); ++ MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); ++ MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); ++ MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); ++ MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); ++ MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); ++ MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); ++ MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); ++ MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); ++ MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); ++ ++ MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); ++ MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); ++ MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); ++ MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); ++ MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); ++ MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); ++ MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); ++ MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); ++ MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); ++ MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); ++ MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); ++ MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); ++ MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); ++ MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); ++ MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); ++ MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); ++ ++ MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); ++ MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); ++ MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); ++ MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); ++ MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); ++ MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); ++ MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); ++ MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); ++ MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); ++ MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); ++ MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); ++ MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); ++ MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); ++ MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); ++ MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); ++ MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); ++ ++ hash[0] += a; ++ hash[1] += b; ++ hash[2] += c; ++ hash[3] += d; ++} ++EXPORT_SYMBOL(md5_transform); +diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c +index 6e82148..5b4f51d 100644 +--- a/net/8021q/vlan_dev.c ++++ b/net/8021q/vlan_dev.c +@@ -694,7 +694,7 @@ void vlan_setup(struct net_device *dev) + ether_setup(dev); + + dev->priv_flags |= IFF_802_1Q_VLAN; +- dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); + dev->tx_queue_len = 0; + + dev->netdev_ops = &vlan_netdev_ops; +diff --git a/net/bluetooth/bnep/netdev.c b/net/bluetooth/bnep/netdev.c +index 8c100c9..d4f5dff 100644 +--- a/net/bluetooth/bnep/netdev.c ++++ b/net/bluetooth/bnep/netdev.c +@@ -231,6 +231,7 @@ void bnep_net_setup(struct net_device *dev) + dev->addr_len = ETH_ALEN; + + ether_setup(dev); ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; + dev->netdev_ops = &bnep_netdev_ops; + + dev->watchdog_timeo = HZ * 2; +diff --git a/net/core/Makefile b/net/core/Makefile +index 8a04dd2..0d357b1 100644 +--- a/net/core/Makefile ++++ b/net/core/Makefile +@@ -3,7 +3,7 @@ + # + + obj-y := sock.o request_sock.o skbuff.o iovec.o datagram.o stream.o scm.o \ +- gen_stats.o gen_estimator.o net_namespace.o ++ gen_stats.o gen_estimator.o net_namespace.o secure_seq.o + + obj-$(CONFIG_SYSCTL) += sysctl_net_core.o + +diff --git a/net/core/link_watch.c b/net/core/link_watch.c +index a7b3421..357bd4e 100644 +--- a/net/core/link_watch.c ++++ b/net/core/link_watch.c +@@ -126,7 +126,7 @@ static void linkwatch_schedule_work(int urgent) + return; + + /* It's already running which is good enough. */ +- if (!cancel_delayed_work(&linkwatch_work)) ++ if (!__cancel_delayed_work(&linkwatch_work)) + return; + + /* Otherwise we reschedule it again for immediate execution. */ +diff --git a/net/core/pktgen.c b/net/core/pktgen.c +index f76079c..e35a6fb 100644 +--- a/net/core/pktgen.c ++++ b/net/core/pktgen.c +@@ -1070,7 +1070,9 @@ static ssize_t pktgen_if_write(struct file *file, + len = num_arg(&user_buffer[i], 10, &value); + if (len < 0) + return len; +- ++ if ((value > 0) && ++ (!(pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING))) ++ return -ENOTSUPP; + i += len; + pkt_dev->clone_skb = value; + +@@ -3555,7 +3557,6 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) + pkt_dev->min_pkt_size = ETH_ZLEN; + pkt_dev->max_pkt_size = ETH_ZLEN; + pkt_dev->nfrags = 0; +- pkt_dev->clone_skb = pg_clone_skb_d; + pkt_dev->delay = pg_delay_d; + pkt_dev->count = pg_count_d; + pkt_dev->sofar = 0; +@@ -3563,7 +3564,6 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) + pkt_dev->udp_src_max = 9; + pkt_dev->udp_dst_min = 9; + pkt_dev->udp_dst_max = 9; +- + pkt_dev->vlan_p = 0; + pkt_dev->vlan_cfi = 0; + pkt_dev->vlan_id = 0xffff; +@@ -3575,6 +3575,8 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) + err = pktgen_setup_dev(pkt_dev, ifname); + if (err) + goto out1; ++ if (pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING) ++ pkt_dev->clone_skb = pg_clone_skb_d; + + pkt_dev->entry = proc_create_data(ifname, 0600, pg_proc_dir, + &pktgen_if_fops, pkt_dev); +diff --git a/net/core/secure_seq.c b/net/core/secure_seq.c +new file mode 100644 +index 0000000..45329d7 +--- /dev/null ++++ b/net/core/secure_seq.c +@@ -0,0 +1,184 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++static u32 net_secret[MD5_MESSAGE_BYTES / 4] ____cacheline_aligned; ++ ++static int __init net_secret_init(void) ++{ ++ get_random_bytes(net_secret, sizeof(net_secret)); ++ return 0; ++} ++late_initcall(net_secret_init); ++ ++static u32 seq_scale(u32 seq) ++{ ++ /* ++ * As close as possible to RFC 793, which ++ * suggests using a 250 kHz clock. ++ * Further reading shows this assumes 2 Mb/s networks. ++ * For 10 Mb/s Ethernet, a 1 MHz clock is appropriate. ++ * For 10 Gb/s Ethernet, a 1 GHz clock should be ok, but ++ * we also need to limit the resolution so that the u32 seq ++ * overlaps less than one time per MSL (2 minutes). ++ * Choosing a clock of 64 ns period is OK. (period of 274 s) ++ */ ++ return seq + (ktime_to_ns(ktime_get_real()) >> 6); ++} ++ ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++__u32 secure_tcpv6_sequence_number(__be32 *saddr, __be32 *daddr, ++ __be16 sport, __be16 dport) ++{ ++ u32 secret[MD5_MESSAGE_BYTES / 4]; ++ u32 hash[MD5_DIGEST_WORDS]; ++ u32 i; ++ ++ memcpy(hash, saddr, 16); ++ for (i = 0; i < 4; i++) ++ secret[i] = net_secret[i] + daddr[i]; ++ secret[4] = net_secret[4] + ++ (((__force u16)sport << 16) + (__force u16)dport); ++ for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) ++ secret[i] = net_secret[i]; ++ ++ md5_transform(hash, secret); ++ ++ return seq_scale(hash[0]); ++} ++EXPORT_SYMBOL(secure_tcpv6_sequence_number); ++ ++u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, ++ __be16 dport) ++{ ++ u32 secret[MD5_MESSAGE_BYTES / 4]; ++ u32 hash[MD5_DIGEST_WORDS]; ++ u32 i; ++ ++ memcpy(hash, saddr, 16); ++ for (i = 0; i < 4; i++) ++ secret[i] = net_secret[i] + (__force u32) daddr[i]; ++ secret[4] = net_secret[4] + (__force u32)dport; ++ for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) ++ secret[i] = net_secret[i]; ++ ++ md5_transform(hash, secret); ++ ++ return hash[0]; ++} ++#endif ++ ++#ifdef CONFIG_INET ++__u32 secure_ip_id(__be32 daddr) ++{ ++ u32 hash[MD5_DIGEST_WORDS]; ++ ++ hash[0] = (__force __u32) daddr; ++ hash[1] = net_secret[13]; ++ hash[2] = net_secret[14]; ++ hash[3] = net_secret[15]; ++ ++ md5_transform(hash, net_secret); ++ ++ return hash[0]; ++} ++ ++__u32 secure_ipv6_id(const __be32 daddr[4]) ++{ ++ __u32 hash[4]; ++ ++ memcpy(hash, daddr, 16); ++ md5_transform(hash, net_secret); ++ ++ return hash[0]; ++} ++ ++__u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, ++ __be16 sport, __be16 dport) ++{ ++ u32 hash[MD5_DIGEST_WORDS]; ++ ++ hash[0] = (__force u32)saddr; ++ hash[1] = (__force u32)daddr; ++ hash[2] = ((__force u16)sport << 16) + (__force u16)dport; ++ hash[3] = net_secret[15]; ++ ++ md5_transform(hash, net_secret); ++ ++ return seq_scale(hash[0]); ++} ++ ++u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport) ++{ ++ u32 hash[MD5_DIGEST_WORDS]; ++ ++ hash[0] = (__force u32)saddr; ++ hash[1] = (__force u32)daddr; ++ hash[2] = (__force u32)dport ^ net_secret[14]; ++ hash[3] = net_secret[15]; ++ ++ md5_transform(hash, net_secret); ++ ++ return hash[0]; ++} ++EXPORT_SYMBOL_GPL(secure_ipv4_port_ephemeral); ++#endif ++ ++#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE) ++u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, ++ __be16 sport, __be16 dport) ++{ ++ u32 hash[MD5_DIGEST_WORDS]; ++ u64 seq; ++ ++ hash[0] = (__force u32)saddr; ++ hash[1] = (__force u32)daddr; ++ hash[2] = ((__force u16)sport << 16) + (__force u16)dport; ++ hash[3] = net_secret[15]; ++ ++ md5_transform(hash, net_secret); ++ ++ seq = hash[0] | (((u64)hash[1]) << 32); ++ seq += ktime_to_ns(ktime_get_real()); ++ seq &= (1ull << 48) - 1; ++ ++ return seq; ++} ++EXPORT_SYMBOL(secure_dccp_sequence_number); ++ ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++u64 secure_dccpv6_sequence_number(__be32 *saddr, __be32 *daddr, ++ __be16 sport, __be16 dport) ++{ ++ u32 secret[MD5_MESSAGE_BYTES / 4]; ++ u32 hash[MD5_DIGEST_WORDS]; ++ u64 seq; ++ u32 i; ++ ++ memcpy(hash, saddr, 16); ++ for (i = 0; i < 4; i++) ++ secret[i] = net_secret[i] + daddr[i]; ++ secret[4] = net_secret[4] + ++ (((__force u16)sport << 16) + (__force u16)dport); ++ for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) ++ secret[i] = net_secret[i]; ++ ++ md5_transform(hash, secret); ++ ++ seq = hash[0] | (((u64)hash[1]) << 32); ++ seq += ktime_to_ns(ktime_get_real()); ++ seq &= (1ull << 48) - 1; ++ ++ return seq; ++} ++EXPORT_SYMBOL(secure_dccpv6_sequence_number); ++#endif ++#endif +diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c +index 8c36adf..332639b 100644 +--- a/net/dccp/ipv4.c ++++ b/net/dccp/ipv4.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "ackvec.h" + #include "ccid.h" +diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c +index 8dc4348..b74f761 100644 +--- a/net/dccp/ipv6.c ++++ b/net/dccp/ipv6.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + + #include "dccp.h" + #include "ipv6.h" +@@ -69,13 +70,7 @@ static inline void dccp_v6_send_check(struct sock *sk, struct sk_buff *skb) + dh->dccph_checksum = dccp_v6_csum_finish(skb, &np->saddr, &np->daddr); + } + +-static inline __u32 secure_dccpv6_sequence_number(__be32 *saddr, __be32 *daddr, +- __be16 sport, __be16 dport ) +-{ +- return secure_tcpv6_sequence_number(saddr, daddr, sport, dport); +-} +- +-static inline __u32 dccp_v6_init_sequence(struct sk_buff *skb) ++static inline __u64 dccp_v6_init_sequence(struct sk_buff *skb) + { + return secure_dccpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32, + ipv6_hdr(skb)->saddr.s6_addr32, +diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c +index 44d2b42..2780e9b 100644 +--- a/net/ethernet/eth.c ++++ b/net/ethernet/eth.c +@@ -340,6 +340,7 @@ void ether_setup(struct net_device *dev) + dev->addr_len = ETH_ALEN; + dev->tx_queue_len = 1000; /* Ethernet wants good queues */ + dev->flags = IFF_BROADCAST|IFF_MULTICAST; ++ dev->priv_flags = IFF_TX_SKB_SHARING; + + memset(dev->broadcast, 0xFF, ETH_ALEN); + +diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c +index 0d4a184..4155abc 100644 +--- a/net/ipv4/devinet.c ++++ b/net/ipv4/devinet.c +@@ -1134,15 +1134,15 @@ static void inetdev_send_gratuitous_arp(struct net_device *dev, + struct in_device *in_dev) + + { +- struct in_ifaddr *ifa = in_dev->ifa_list; +- +- if (!ifa) +- return; ++ struct in_ifaddr *ifa; + +- arp_send(ARPOP_REQUEST, ETH_P_ARP, +- ifa->ifa_local, dev, +- ifa->ifa_local, NULL, +- dev->dev_addr, NULL); ++ for (ifa = in_dev->ifa_list; ifa; ++ ifa = ifa->ifa_next) { ++ arp_send(ARPOP_REQUEST, ETH_P_ARP, ++ ifa->ifa_local, dev, ++ ifa->ifa_local, NULL, ++ dev->dev_addr, NULL); ++ } + } + + /* Called only under RTNL semaphore */ +diff --git a/net/ipv4/gre.c b/net/ipv4/gre.c +index c6933f2..3e3f75d 100644 +--- a/net/ipv4/gre.c ++++ b/net/ipv4/gre.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -97,27 +98,17 @@ drop: + static void gre_err(struct sk_buff *skb, u32 info) + { + const struct gre_protocol *proto; +- u8 ver; +- +- if (!pskb_may_pull(skb, 12)) +- goto drop; ++ const struct iphdr *iph = (const struct iphdr *)skb->data; ++ u8 ver = skb->data[(iph->ihl<<2) + 1]&0x7f; + +- ver = skb->data[1]&0x7f; + if (ver >= GREPROTO_MAX) +- goto drop; ++ return; + + rcu_read_lock(); + proto = rcu_dereference(gre_proto[ver]); +- if (!proto || !proto->err_handler) +- goto drop_unlock; +- proto->err_handler(skb, info); +- rcu_read_unlock(); +- return; +- +-drop_unlock: ++ if (proto && proto->err_handler) ++ proto->err_handler(skb, info); + rcu_read_unlock(); +-drop: +- kfree_skb(skb); + } + + static const struct net_protocol net_gre_protocol = { +diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c +index 5395e45..23ef31b 100644 +--- a/net/ipv4/icmp.c ++++ b/net/ipv4/icmp.c +@@ -380,6 +380,7 @@ static struct rtable *icmp_route_lookup(struct net *net, + struct icmp_bxm *param) + { + struct rtable *rt, *rt2; ++ struct flowi4 fl4_dec; + int err; + + memset(fl4, 0, sizeof(*fl4)); +@@ -408,19 +409,19 @@ static struct rtable *icmp_route_lookup(struct net *net, + } else + return rt; + +- err = xfrm_decode_session_reverse(skb_in, flowi4_to_flowi(fl4), AF_INET); ++ err = xfrm_decode_session_reverse(skb_in, flowi4_to_flowi(&fl4_dec), AF_INET); + if (err) + goto relookup_failed; + +- if (inet_addr_type(net, fl4->saddr) == RTN_LOCAL) { +- rt2 = __ip_route_output_key(net, fl4); ++ if (inet_addr_type(net, fl4_dec.saddr) == RTN_LOCAL) { ++ rt2 = __ip_route_output_key(net, &fl4_dec); + if (IS_ERR(rt2)) + err = PTR_ERR(rt2); + } else { + struct flowi4 fl4_2 = {}; + unsigned long orefdst; + +- fl4_2.daddr = fl4->saddr; ++ fl4_2.daddr = fl4_dec.saddr; + rt2 = ip_route_output_key(net, &fl4_2); + if (IS_ERR(rt2)) { + err = PTR_ERR(rt2); +@@ -428,7 +429,7 @@ static struct rtable *icmp_route_lookup(struct net *net, + } + /* Ugh! */ + orefdst = skb_in->_skb_refdst; /* save old refdst */ +- err = ip_route_input(skb_in, fl4->daddr, fl4->saddr, ++ err = ip_route_input(skb_in, fl4_dec.daddr, fl4_dec.saddr, + RT_TOS(tos), rt2->dst.dev); + + dst_release(&rt2->dst); +@@ -440,10 +441,11 @@ static struct rtable *icmp_route_lookup(struct net *net, + goto relookup_failed; + + rt2 = (struct rtable *) xfrm_lookup(net, &rt2->dst, +- flowi4_to_flowi(fl4), NULL, ++ flowi4_to_flowi(&fl4_dec), NULL, + XFRM_LOOKUP_ICMP); + if (!IS_ERR(rt2)) { + dst_release(&rt->dst); ++ memcpy(fl4, &fl4_dec, sizeof(*fl4)); + rt = rt2; + } else if (PTR_ERR(rt2) == -EPERM) { + if (rt) +diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c +index f1d27f6..283c0a2 100644 +--- a/net/ipv4/igmp.c ++++ b/net/ipv4/igmp.c +@@ -1718,7 +1718,7 @@ static int ip_mc_add_src(struct in_device *in_dev, __be32 *pmca, int sfmode, + + pmc->sfcount[sfmode]--; + for (j=0; jsfcount[MCAST_EXCLUDE] != 0)) { + #ifdef CONFIG_IP_MULTICAST + struct ip_sf_list *psf; +diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c +index 3c0369a..984ec65 100644 +--- a/net/ipv4/inet_hashtables.c ++++ b/net/ipv4/inet_hashtables.c +@@ -21,6 +21,7 @@ + + #include + #include ++#include + #include + + /* +diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c +index ce616d9..6877645 100644 +--- a/net/ipv4/inetpeer.c ++++ b/net/ipv4/inetpeer.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + + /* + * Theory of operations. +diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c +index 84f26e8..0c99db4 100644 +--- a/net/ipv4/ip_output.c ++++ b/net/ipv4/ip_output.c +@@ -734,7 +734,7 @@ static inline int ip_ufo_append_data(struct sock *sk, + int getfrag(void *from, char *to, int offset, int len, + int odd, struct sk_buff *skb), + void *from, int length, int hh_len, int fragheaderlen, +- int transhdrlen, int mtu, unsigned int flags) ++ int transhdrlen, int maxfraglen, unsigned int flags) + { + struct sk_buff *skb; + int err; +@@ -767,7 +767,7 @@ static inline int ip_ufo_append_data(struct sock *sk, + skb->csum = 0; + + /* specify the length of each IP datagram fragment */ +- skb_shinfo(skb)->gso_size = mtu - fragheaderlen; ++ skb_shinfo(skb)->gso_size = maxfraglen - fragheaderlen; + skb_shinfo(skb)->gso_type = SKB_GSO_UDP; + __skb_queue_tail(queue, skb); + } +@@ -831,7 +831,7 @@ static int __ip_append_data(struct sock *sk, + (rt->dst.dev->features & NETIF_F_UFO) && !rt->dst.header_len) { + err = ip_ufo_append_data(sk, queue, getfrag, from, length, + hh_len, fragheaderlen, transhdrlen, +- mtu, flags); ++ maxfraglen, flags); + if (err) + goto error; + return 0; +diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c +index 30a7763..f81af8d 100644 +--- a/net/ipv4/ipmr.c ++++ b/net/ipv4/ipmr.c +@@ -1796,7 +1796,7 @@ static struct mr_table *ipmr_rt_fib_lookup(struct net *net, struct sk_buff *skb) + struct flowi4 fl4 = { + .daddr = iph->daddr, + .saddr = iph->saddr, +- .flowi4_tos = iph->tos, ++ .flowi4_tos = RT_TOS(iph->tos), + .flowi4_oif = rt->rt_oif, + .flowi4_iif = rt->rt_iif, + .flowi4_mark = rt->rt_mark, +diff --git a/net/ipv4/netfilter/nf_nat_proto_common.c b/net/ipv4/netfilter/nf_nat_proto_common.c +index 3e61faf..f52d41e 100644 +--- a/net/ipv4/netfilter/nf_nat_proto_common.c ++++ b/net/ipv4/netfilter/nf_nat_proto_common.c +@@ -12,6 +12,7 @@ + #include + + #include ++#include + #include + #include + #include +diff --git a/net/ipv4/route.c b/net/ipv4/route.c +index aa13ef1..cdabdbf 100644 +--- a/net/ipv4/route.c ++++ b/net/ipv4/route.c +@@ -108,6 +108,7 @@ + #ifdef CONFIG_SYSCTL + #include + #endif ++#include + + #define RT_FL_TOS(oldflp4) \ + ((u32)(oldflp4->flowi4_tos & (IPTOS_RT_MASK | RTO_ONLINK))) +@@ -725,6 +726,7 @@ static inline int compare_keys(struct rtable *rt1, struct rtable *rt2) + ((__force u32)rt1->rt_key_src ^ (__force u32)rt2->rt_key_src) | + (rt1->rt_mark ^ rt2->rt_mark) | + (rt1->rt_key_tos ^ rt2->rt_key_tos) | ++ (rt1->rt_route_iif ^ rt2->rt_route_iif) | + (rt1->rt_oif ^ rt2->rt_oif) | + (rt1->rt_iif ^ rt2->rt_iif)) == 0; + } +@@ -1703,7 +1705,7 @@ void ip_rt_get_source(u8 *addr, struct sk_buff *skb, struct rtable *rt) + memset(&fl4, 0, sizeof(fl4)); + fl4.daddr = iph->daddr; + fl4.saddr = iph->saddr; +- fl4.flowi4_tos = iph->tos; ++ fl4.flowi4_tos = RT_TOS(iph->tos); + fl4.flowi4_oif = rt->dst.dev->ifindex; + fl4.flowi4_iif = skb->dev->ifindex; + fl4.flowi4_mark = skb->mark; +@@ -2281,8 +2283,8 @@ int ip_route_input_common(struct sk_buff *skb, __be32 daddr, __be32 saddr, + if ((((__force u32)rth->rt_key_dst ^ (__force u32)daddr) | + ((__force u32)rth->rt_key_src ^ (__force u32)saddr) | + (rth->rt_iif ^ iif) | +- rth->rt_oif | + (rth->rt_key_tos ^ tos)) == 0 && ++ rt_is_input_route(rth) && + rth->rt_mark == skb->mark && + net_eq(dev_net(rth->dst.dev), net) && + !rt_is_expired(rth)) { +diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c +index 708dc20..b3e6956 100644 +--- a/net/ipv4/tcp_ipv4.c ++++ b/net/ipv4/tcp_ipv4.c +@@ -72,6 +72,7 @@ + #include + #include + #include ++#include + + #include + #include +diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c +index 3b5669a..5591236 100644 +--- a/net/ipv6/af_inet6.c ++++ b/net/ipv6/af_inet6.c +@@ -1078,6 +1078,8 @@ static int __init inet6_init(void) + goto out; + } + ++ initialize_hashidentrnd(); ++ + err = proto_register(&tcpv6_prot, 1); + if (err) + goto out; +diff --git a/net/ipv6/inet6_hashtables.c b/net/ipv6/inet6_hashtables.c +index b531972..73f1a00 100644 +--- a/net/ipv6/inet6_hashtables.c ++++ b/net/ipv6/inet6_hashtables.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + + int __inet6_hash(struct sock *sk, struct inet_timewait_sock *tw) +diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c +index 9d4b165..1661296 100644 +--- a/net/ipv6/ip6_output.c ++++ b/net/ipv6/ip6_output.c +@@ -596,6 +596,35 @@ int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr) + return offset; + } + ++static u32 hashidentrnd __read_mostly; ++#define FID_HASH_SZ 16 ++static u32 ipv6_fragmentation_id[FID_HASH_SZ]; ++ ++void __init initialize_hashidentrnd(void) ++{ ++ get_random_bytes(&hashidentrnd, sizeof(hashidentrnd)); ++} ++ ++static u32 __ipv6_select_ident(const struct in6_addr *addr) ++{ ++ u32 newid, oldid, hash = jhash2((u32 *)addr, 4, hashidentrnd); ++ u32 *pid = &ipv6_fragmentation_id[hash % FID_HASH_SZ]; ++ ++ do { ++ oldid = *pid; ++ newid = oldid + 1; ++ if (!(hash + newid)) ++ newid++; ++ } while (cmpxchg(pid, oldid, newid) != oldid); ++ ++ return hash + newid; ++} ++ ++void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt) ++{ ++ fhdr->identification = htonl(__ipv6_select_ident(&rt->rt6i_dst.addr)); ++} ++ + int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) + { + struct sk_buff *frag; +@@ -680,7 +709,7 @@ int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) + skb_reset_network_header(skb); + memcpy(skb_network_header(skb), tmp_hdr, hlen); + +- ipv6_select_ident(fh); ++ ipv6_select_ident(fh, rt); + fh->nexthdr = nexthdr; + fh->reserved = 0; + fh->frag_off = htons(IP6_MF); +@@ -826,7 +855,7 @@ slow_path: + fh->nexthdr = nexthdr; + fh->reserved = 0; + if (!frag_id) { +- ipv6_select_ident(fh); ++ ipv6_select_ident(fh, rt); + frag_id = fh->identification; + } else + fh->identification = frag_id; +@@ -1072,7 +1101,8 @@ static inline int ip6_ufo_append_data(struct sock *sk, + int getfrag(void *from, char *to, int offset, int len, + int odd, struct sk_buff *skb), + void *from, int length, int hh_len, int fragheaderlen, +- int transhdrlen, int mtu,unsigned int flags) ++ int transhdrlen, int mtu,unsigned int flags, ++ struct rt6_info *rt) + + { + struct sk_buff *skb; +@@ -1116,7 +1146,7 @@ static inline int ip6_ufo_append_data(struct sock *sk, + skb_shinfo(skb)->gso_size = (mtu - fragheaderlen - + sizeof(struct frag_hdr)) & ~7; + skb_shinfo(skb)->gso_type = SKB_GSO_UDP; +- ipv6_select_ident(&fhdr); ++ ipv6_select_ident(&fhdr, rt); + skb_shinfo(skb)->ip6_frag_id = fhdr.identification; + __skb_queue_tail(&sk->sk_write_queue, skb); + +@@ -1282,7 +1312,7 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to, + + err = ip6_ufo_append_data(sk, getfrag, from, length, + hh_len, fragheaderlen, +- transhdrlen, mtu, flags); ++ transhdrlen, mtu, flags, rt); + if (err) + goto error; + return 0; +diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c +index 87551ca..7c43e86 100644 +--- a/net/ipv6/tcp_ipv6.c ++++ b/net/ipv6/tcp_ipv6.c +@@ -61,6 +61,7 @@ + #include + #include + #include ++#include + + #include + +diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c +index 328985c..29213b5 100644 +--- a/net/ipv6/udp.c ++++ b/net/ipv6/udp.c +@@ -1359,7 +1359,7 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb, u32 features) + fptr = (struct frag_hdr *)(skb_network_header(skb) + unfrag_ip6hlen); + fptr->nexthdr = nexthdr; + fptr->reserved = 0; +- ipv6_select_ident(fptr); ++ ipv6_select_ident(fptr, (struct rt6_info *)skb_dst(skb)); + + /* Fragment the skb. ipv6 header and the remaining fields of the + * fragment header are updated in ipv6_gso_segment() +diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c +index a8193f5..d2726a7 100644 +--- a/net/l2tp/l2tp_eth.c ++++ b/net/l2tp/l2tp_eth.c +@@ -103,7 +103,7 @@ static struct net_device_ops l2tp_eth_netdev_ops = { + static void l2tp_eth_dev_setup(struct net_device *dev) + { + ether_setup(dev); +- ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; + dev->netdev_ops = &l2tp_eth_netdev_ops; + dev->destructor = free_netdev; + } +diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c +index dee30ae..895eec1 100644 +--- a/net/mac80211/iface.c ++++ b/net/mac80211/iface.c +@@ -699,6 +699,7 @@ static const struct net_device_ops ieee80211_monitorif_ops = { + static void ieee80211_if_setup(struct net_device *dev) + { + ether_setup(dev); ++ dev->priv_flags &= ~IFF_TX_SKB_SHARING; + dev->netdev_ops = &ieee80211_dataif_ops; + dev->destructor = free_netdev; + } +diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c +index 699c79a..a178cb3 100644 +--- a/net/netfilter/ipvs/ip_vs_ctl.c ++++ b/net/netfilter/ipvs/ip_vs_ctl.c +@@ -3771,6 +3771,7 @@ err_sock: + void ip_vs_control_cleanup(void) + { + EnterFunction(2); ++ unregister_netdevice_notifier(&ip_vs_dst_notifier); + ip_vs_genl_unregister(); + nf_unregister_sockopt(&ip_vs_sockopts); + LeaveFunction(2); +diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c +index b6ea6af..69400e3 100644 +--- a/net/sched/sch_sfq.c ++++ b/net/sched/sch_sfq.c +@@ -410,7 +410,12 @@ sfq_enqueue(struct sk_buff *skb, struct Qdisc *sch) + /* Return Congestion Notification only if we dropped a packet + * from this flow. + */ +- return (qlen != slot->qlen) ? NET_XMIT_CN : NET_XMIT_SUCCESS; ++ if (qlen != slot->qlen) ++ return NET_XMIT_CN; ++ ++ /* As we dropped a packet, better let upper stack know this */ ++ qdisc_tree_decrease_qlen(sch, 1); ++ return NET_XMIT_SUCCESS; + } + + static struct sk_buff * +diff --git a/net/socket.c b/net/socket.c +index 02dc82d..ed46dbb 100644 +--- a/net/socket.c ++++ b/net/socket.c +@@ -1871,8 +1871,14 @@ SYSCALL_DEFINE2(shutdown, int, fd, int, how) + #define COMPAT_NAMELEN(msg) COMPAT_MSG(msg, msg_namelen) + #define COMPAT_FLAGS(msg) COMPAT_MSG(msg, msg_flags) + ++struct used_address { ++ struct sockaddr_storage name; ++ unsigned int name_len; ++}; ++ + static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg, +- struct msghdr *msg_sys, unsigned flags, int nosec) ++ struct msghdr *msg_sys, unsigned flags, ++ struct used_address *used_address) + { + struct compat_msghdr __user *msg_compat = + (struct compat_msghdr __user *)msg; +@@ -1953,8 +1959,28 @@ static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg, + + if (sock->file->f_flags & O_NONBLOCK) + msg_sys->msg_flags |= MSG_DONTWAIT; +- err = (nosec ? sock_sendmsg_nosec : sock_sendmsg)(sock, msg_sys, +- total_len); ++ /* ++ * If this is sendmmsg() and current destination address is same as ++ * previously succeeded address, omit asking LSM's decision. ++ * used_address->name_len is initialized to UINT_MAX so that the first ++ * destination address never matches. ++ */ ++ if (used_address && used_address->name_len == msg_sys->msg_namelen && ++ !memcmp(&used_address->name, msg->msg_name, ++ used_address->name_len)) { ++ err = sock_sendmsg_nosec(sock, msg_sys, total_len); ++ goto out_freectl; ++ } ++ err = sock_sendmsg(sock, msg_sys, total_len); ++ /* ++ * If this is sendmmsg() and sending to current destination address was ++ * successful, remember it. ++ */ ++ if (used_address && err >= 0) { ++ used_address->name_len = msg_sys->msg_namelen; ++ memcpy(&used_address->name, msg->msg_name, ++ used_address->name_len); ++ } + + out_freectl: + if (ctl_buf != ctl) +@@ -1979,7 +2005,7 @@ SYSCALL_DEFINE3(sendmsg, int, fd, struct msghdr __user *, msg, unsigned, flags) + if (!sock) + goto out; + +- err = __sys_sendmsg(sock, msg, &msg_sys, flags, 0); ++ err = __sys_sendmsg(sock, msg, &msg_sys, flags, NULL); + + fput_light(sock->file, fput_needed); + out: +@@ -1998,6 +2024,10 @@ int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen, + struct mmsghdr __user *entry; + struct compat_mmsghdr __user *compat_entry; + struct msghdr msg_sys; ++ struct used_address used_address; ++ ++ if (vlen > UIO_MAXIOV) ++ vlen = UIO_MAXIOV; + + datagrams = 0; + +@@ -2005,27 +2035,22 @@ int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen, + if (!sock) + return err; + +- err = sock_error(sock->sk); +- if (err) +- goto out_put; +- ++ used_address.name_len = UINT_MAX; + entry = mmsg; + compat_entry = (struct compat_mmsghdr __user *)mmsg; ++ err = 0; + + while (datagrams < vlen) { +- /* +- * No need to ask LSM for more than the first datagram. +- */ + if (MSG_CMSG_COMPAT & flags) { + err = __sys_sendmsg(sock, (struct msghdr __user *)compat_entry, +- &msg_sys, flags, datagrams); ++ &msg_sys, flags, &used_address); + if (err < 0) + break; + err = __put_user(err, &compat_entry->msg_len); + ++compat_entry; + } else { + err = __sys_sendmsg(sock, (struct msghdr __user *)entry, +- &msg_sys, flags, datagrams); ++ &msg_sys, flags, &used_address); + if (err < 0) + break; + err = put_user(err, &entry->msg_len); +@@ -2037,29 +2062,11 @@ int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen, + ++datagrams; + } + +-out_put: + fput_light(sock->file, fput_needed); + +- if (err == 0) +- return datagrams; +- +- if (datagrams != 0) { +- /* +- * We may send less entries than requested (vlen) if the +- * sock is non blocking... +- */ +- if (err != -EAGAIN) { +- /* +- * ... or if sendmsg returns an error after we +- * send some datagrams, where we record the +- * error to return on the next call or if the +- * app asks about it using getsockopt(SO_ERROR). +- */ +- sock->sk->sk_err = -err; +- } +- ++ /* We only return an error if no datagrams were able to be sent */ ++ if (datagrams != 0) + return datagrams; +- } + + return err; + } +diff --git a/net/xfrm/xfrm_algo.c b/net/xfrm/xfrm_algo.c +index 58064d9..791ab2e 100644 +--- a/net/xfrm/xfrm_algo.c ++++ b/net/xfrm/xfrm_algo.c +@@ -462,8 +462,8 @@ static struct xfrm_algo_desc ealg_list[] = { + .desc = { + .sadb_alg_id = SADB_X_EALG_AESCTR, + .sadb_alg_ivlen = 8, +- .sadb_alg_minbits = 128, +- .sadb_alg_maxbits = 256 ++ .sadb_alg_minbits = 160, ++ .sadb_alg_maxbits = 288 + } + }, + }; +diff --git a/sound/core/timer.c b/sound/core/timer.c +index 7c1cbf0..950eed0 100644 +--- a/sound/core/timer.c ++++ b/sound/core/timer.c +@@ -531,6 +531,8 @@ int snd_timer_stop(struct snd_timer_instance *timeri) + if (err < 0) + return err; + timer = timeri->timer; ++ if (!timer) ++ return -EINVAL; + spin_lock_irqsave(&timer->lock, flags); + timeri->cticks = timeri->ticks; + timeri->pticks = 0; +diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c +index ff29380..c49317c 100644 +--- a/sound/soc/codecs/sgtl5000.c ++++ b/sound/soc/codecs/sgtl5000.c +@@ -33,73 +33,31 @@ + #define SGTL5000_DAP_REG_OFFSET 0x0100 + #define SGTL5000_MAX_REG_OFFSET 0x013A + +-/* default value of sgtl5000 registers except DAP */ +-static const u16 sgtl5000_regs[SGTL5000_MAX_REG_OFFSET >> 1] = { +- 0xa011, /* 0x0000, CHIP_ID. 11 stand for revison 17 */ +- 0x0000, /* 0x0002, CHIP_DIG_POWER. */ +- 0x0008, /* 0x0004, CHIP_CKL_CTRL */ +- 0x0010, /* 0x0006, CHIP_I2S_CTRL */ +- 0x0000, /* 0x0008, reserved */ +- 0x0008, /* 0x000A, CHIP_SSS_CTRL */ +- 0x0000, /* 0x000C, reserved */ +- 0x020c, /* 0x000E, CHIP_ADCDAC_CTRL */ +- 0x3c3c, /* 0x0010, CHIP_DAC_VOL */ +- 0x0000, /* 0x0012, reserved */ +- 0x015f, /* 0x0014, CHIP_PAD_STRENGTH */ +- 0x0000, /* 0x0016, reserved */ +- 0x0000, /* 0x0018, reserved */ +- 0x0000, /* 0x001A, reserved */ +- 0x0000, /* 0x001E, reserved */ +- 0x0000, /* 0x0020, CHIP_ANA_ADC_CTRL */ +- 0x1818, /* 0x0022, CHIP_ANA_HP_CTRL */ +- 0x0111, /* 0x0024, CHIP_ANN_CTRL */ +- 0x0000, /* 0x0026, CHIP_LINREG_CTRL */ +- 0x0000, /* 0x0028, CHIP_REF_CTRL */ +- 0x0000, /* 0x002A, CHIP_MIC_CTRL */ +- 0x0000, /* 0x002C, CHIP_LINE_OUT_CTRL */ +- 0x0404, /* 0x002E, CHIP_LINE_OUT_VOL */ +- 0x7060, /* 0x0030, CHIP_ANA_POWER */ +- 0x5000, /* 0x0032, CHIP_PLL_CTRL */ +- 0x0000, /* 0x0034, CHIP_CLK_TOP_CTRL */ +- 0x0000, /* 0x0036, CHIP_ANA_STATUS */ +- 0x0000, /* 0x0038, reserved */ +- 0x0000, /* 0x003A, CHIP_ANA_TEST2 */ +- 0x0000, /* 0x003C, CHIP_SHORT_CTRL */ +- 0x0000, /* reserved */ +-}; +- +-/* default value of dap registers */ +-static const u16 sgtl5000_dap_regs[] = { +- 0x0000, /* 0x0100, DAP_CONTROL */ +- 0x0000, /* 0x0102, DAP_PEQ */ +- 0x0040, /* 0x0104, DAP_BASS_ENHANCE */ +- 0x051f, /* 0x0106, DAP_BASS_ENHANCE_CTRL */ +- 0x0000, /* 0x0108, DAP_AUDIO_EQ */ +- 0x0040, /* 0x010A, DAP_SGTL_SURROUND */ +- 0x0000, /* 0x010C, DAP_FILTER_COEF_ACCESS */ +- 0x0000, /* 0x010E, DAP_COEF_WR_B0_MSB */ +- 0x0000, /* 0x0110, DAP_COEF_WR_B0_LSB */ +- 0x0000, /* 0x0112, reserved */ +- 0x0000, /* 0x0114, reserved */ +- 0x002f, /* 0x0116, DAP_AUDIO_EQ_BASS_BAND0 */ +- 0x002f, /* 0x0118, DAP_AUDIO_EQ_BAND0 */ +- 0x002f, /* 0x011A, DAP_AUDIO_EQ_BAND2 */ +- 0x002f, /* 0x011C, DAP_AUDIO_EQ_BAND3 */ +- 0x002f, /* 0x011E, DAP_AUDIO_EQ_TREBLE_BAND4 */ +- 0x8000, /* 0x0120, DAP_MAIN_CHAN */ +- 0x0000, /* 0x0122, DAP_MIX_CHAN */ +- 0x0510, /* 0x0124, DAP_AVC_CTRL */ +- 0x1473, /* 0x0126, DAP_AVC_THRESHOLD */ +- 0x0028, /* 0x0128, DAP_AVC_ATTACK */ +- 0x0050, /* 0x012A, DAP_AVC_DECAY */ +- 0x0000, /* 0x012C, DAP_COEF_WR_B1_MSB */ +- 0x0000, /* 0x012E, DAP_COEF_WR_B1_LSB */ +- 0x0000, /* 0x0130, DAP_COEF_WR_B2_MSB */ +- 0x0000, /* 0x0132, DAP_COEF_WR_B2_LSB */ +- 0x0000, /* 0x0134, DAP_COEF_WR_A1_MSB */ +- 0x0000, /* 0x0136, DAP_COEF_WR_A1_LSB */ +- 0x0000, /* 0x0138, DAP_COEF_WR_A2_MSB */ +- 0x0000, /* 0x013A, DAP_COEF_WR_A2_LSB */ ++/* default value of sgtl5000 registers */ ++static const u16 sgtl5000_regs[SGTL5000_MAX_REG_OFFSET] = { ++ [SGTL5000_CHIP_CLK_CTRL] = 0x0008, ++ [SGTL5000_CHIP_I2S_CTRL] = 0x0010, ++ [SGTL5000_CHIP_SSS_CTRL] = 0x0008, ++ [SGTL5000_CHIP_DAC_VOL] = 0x3c3c, ++ [SGTL5000_CHIP_PAD_STRENGTH] = 0x015f, ++ [SGTL5000_CHIP_ANA_HP_CTRL] = 0x1818, ++ [SGTL5000_CHIP_ANA_CTRL] = 0x0111, ++ [SGTL5000_CHIP_LINE_OUT_VOL] = 0x0404, ++ [SGTL5000_CHIP_ANA_POWER] = 0x7060, ++ [SGTL5000_CHIP_PLL_CTRL] = 0x5000, ++ [SGTL5000_DAP_BASS_ENHANCE] = 0x0040, ++ [SGTL5000_DAP_BASS_ENHANCE_CTRL] = 0x051f, ++ [SGTL5000_DAP_SURROUND] = 0x0040, ++ [SGTL5000_DAP_EQ_BASS_BAND0] = 0x002f, ++ [SGTL5000_DAP_EQ_BASS_BAND1] = 0x002f, ++ [SGTL5000_DAP_EQ_BASS_BAND2] = 0x002f, ++ [SGTL5000_DAP_EQ_BASS_BAND3] = 0x002f, ++ [SGTL5000_DAP_EQ_BASS_BAND4] = 0x002f, ++ [SGTL5000_DAP_MAIN_CHAN] = 0x8000, ++ [SGTL5000_DAP_AVC_CTRL] = 0x0510, ++ [SGTL5000_DAP_AVC_THRESHOLD] = 0x1473, ++ [SGTL5000_DAP_AVC_ATTACK] = 0x0028, ++ [SGTL5000_DAP_AVC_DECAY] = 0x0050, + }; + + /* regulator supplies for sgtl5000, VDDD is an optional external supply */ +@@ -1022,12 +980,10 @@ static int sgtl5000_suspend(struct snd_soc_codec *codec, pm_message_t state) + static int sgtl5000_restore_regs(struct snd_soc_codec *codec) + { + u16 *cache = codec->reg_cache; +- int i; +- int regular_regs = SGTL5000_CHIP_SHORT_CTRL >> 1; ++ u16 reg; + + /* restore regular registers */ +- for (i = 0; i < regular_regs; i++) { +- int reg = i << 1; ++ for (reg = 0; reg <= SGTL5000_CHIP_SHORT_CTRL; reg += 2) { + + /* this regs depends on the others */ + if (reg == SGTL5000_CHIP_ANA_POWER || +@@ -1037,35 +993,31 @@ static int sgtl5000_restore_regs(struct snd_soc_codec *codec) + reg == SGTL5000_CHIP_CLK_CTRL) + continue; + +- snd_soc_write(codec, reg, cache[i]); ++ snd_soc_write(codec, reg, cache[reg]); + } + + /* restore dap registers */ +- for (i = SGTL5000_DAP_REG_OFFSET >> 1; +- i < SGTL5000_MAX_REG_OFFSET >> 1; i++) { +- int reg = i << 1; +- +- snd_soc_write(codec, reg, cache[i]); +- } ++ for (reg = SGTL5000_DAP_REG_OFFSET; reg < SGTL5000_MAX_REG_OFFSET; reg += 2) ++ snd_soc_write(codec, reg, cache[reg]); + + /* + * restore power and other regs according + * to set_power() and set_clock() + */ + snd_soc_write(codec, SGTL5000_CHIP_LINREG_CTRL, +- cache[SGTL5000_CHIP_LINREG_CTRL >> 1]); ++ cache[SGTL5000_CHIP_LINREG_CTRL]); + + snd_soc_write(codec, SGTL5000_CHIP_ANA_POWER, +- cache[SGTL5000_CHIP_ANA_POWER >> 1]); ++ cache[SGTL5000_CHIP_ANA_POWER]); + + snd_soc_write(codec, SGTL5000_CHIP_CLK_CTRL, +- cache[SGTL5000_CHIP_CLK_CTRL >> 1]); ++ cache[SGTL5000_CHIP_CLK_CTRL]); + + snd_soc_write(codec, SGTL5000_CHIP_REF_CTRL, +- cache[SGTL5000_CHIP_REF_CTRL >> 1]); ++ cache[SGTL5000_CHIP_REF_CTRL]); + + snd_soc_write(codec, SGTL5000_CHIP_LINE_OUT_CTRL, +- cache[SGTL5000_CHIP_LINE_OUT_CTRL >> 1]); ++ cache[SGTL5000_CHIP_LINE_OUT_CTRL]); + return 0; + } + +@@ -1460,16 +1412,6 @@ static __devinit int sgtl5000_i2c_probe(struct i2c_client *client, + if (!sgtl5000) + return -ENOMEM; + +- /* +- * copy DAP default values to default value array. +- * sgtl5000 register space has a big hole, merge it +- * at init phase makes life easy. +- * FIXME: should we drop 'const' of sgtl5000_regs? +- */ +- memcpy((void *)(&sgtl5000_regs[0] + (SGTL5000_DAP_REG_OFFSET >> 1)), +- sgtl5000_dap_regs, +- SGTL5000_MAX_REG_OFFSET - SGTL5000_DAP_REG_OFFSET); +- + i2c_set_clientdata(client, sgtl5000); + + ret = snd_soc_register_codec(&client->dev, +diff --git a/sound/usb/caiaq/input.c b/sound/usb/caiaq/input.c +index 4432ef7..a213813 100644 +--- a/sound/usb/caiaq/input.c ++++ b/sound/usb/caiaq/input.c +@@ -30,7 +30,7 @@ static unsigned short keycode_ak1[] = { KEY_C, KEY_B, KEY_A }; + static unsigned short keycode_rk2[] = { KEY_1, KEY_2, KEY_3, KEY_4, + KEY_5, KEY_6, KEY_7 }; + static unsigned short keycode_rk3[] = { KEY_1, KEY_2, KEY_3, KEY_4, +- KEY_5, KEY_6, KEY_7, KEY_5, KEY_6 }; ++ KEY_5, KEY_6, KEY_7, KEY_8, KEY_9 }; + + static unsigned short keycode_kore[] = { + KEY_FN_F1, /* "menu" */ +diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c +index b0ef9f5..05842c8 100644 +--- a/sound/usb/endpoint.c ++++ b/sound/usb/endpoint.c +@@ -352,7 +352,7 @@ int snd_usb_parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no) + continue; + } + if (((protocol == UAC_VERSION_1) && (fmt->bLength < 8)) || +- ((protocol == UAC_VERSION_2) && (fmt->bLength != 6))) { ++ ((protocol == UAC_VERSION_2) && (fmt->bLength < 6))) { + snd_printk(KERN_ERR "%d:%u:%d : invalid UAC_FORMAT_TYPE desc\n", + dev->devnum, iface_no, altno); + continue; +diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c +index c22fa76..c04d7c7 100644 +--- a/sound/usb/mixer.c ++++ b/sound/usb/mixer.c +@@ -1191,6 +1191,11 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void + + if (state->mixer->protocol == UAC_VERSION_1) { + csize = hdr->bControlSize; ++ if (!csize) { ++ snd_printdd(KERN_ERR "usbaudio: unit %u: " ++ "invalid bControlSize == 0\n", unitid); ++ return -EINVAL; ++ } + channels = (hdr->bLength - 7) / csize - 1; + bmaControls = hdr->bmaControls; + } else { +@@ -1934,15 +1939,13 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer) + struct mixer_build state; + int err; + const struct usbmix_ctl_map *map; +- struct usb_host_interface *hostif; + void *p; + +- hostif = mixer->chip->ctrl_intf; + memset(&state, 0, sizeof(state)); + state.chip = mixer->chip; + state.mixer = mixer; +- state.buffer = hostif->extra; +- state.buflen = hostif->extralen; ++ state.buffer = mixer->hostif->extra; ++ state.buflen = mixer->hostif->extralen; + + /* check the mapping table */ + for (map = usbmix_ctl_maps; map->id; map++) { +@@ -1955,7 +1958,8 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer) + } + + p = NULL; +- while ((p = snd_usb_find_csint_desc(hostif->extra, hostif->extralen, p, UAC_OUTPUT_TERMINAL)) != NULL) { ++ while ((p = snd_usb_find_csint_desc(mixer->hostif->extra, mixer->hostif->extralen, ++ p, UAC_OUTPUT_TERMINAL)) != NULL) { + if (mixer->protocol == UAC_VERSION_1) { + struct uac1_output_terminal_descriptor *desc = p; + +@@ -2162,17 +2166,15 @@ int snd_usb_mixer_activate(struct usb_mixer_interface *mixer) + /* create the handler for the optional status interrupt endpoint */ + static int snd_usb_mixer_status_create(struct usb_mixer_interface *mixer) + { +- struct usb_host_interface *hostif; + struct usb_endpoint_descriptor *ep; + void *transfer_buffer; + int buffer_length; + unsigned int epnum; + +- hostif = mixer->chip->ctrl_intf; + /* we need one interrupt input endpoint */ +- if (get_iface_desc(hostif)->bNumEndpoints < 1) ++ if (get_iface_desc(mixer->hostif)->bNumEndpoints < 1) + return 0; +- ep = get_endpoint(hostif, 0); ++ ep = get_endpoint(mixer->hostif, 0); + if (!usb_endpoint_dir_in(ep) || !usb_endpoint_xfer_int(ep)) + return 0; + +@@ -2202,7 +2204,6 @@ int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif, + }; + struct usb_mixer_interface *mixer; + struct snd_info_entry *entry; +- struct usb_host_interface *host_iface; + int err; + + strcpy(chip->card->mixername, "USB Mixer"); +@@ -2219,8 +2220,8 @@ int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif, + return -ENOMEM; + } + +- host_iface = &usb_ifnum_to_if(chip->dev, ctrlif)->altsetting[0]; +- switch (get_iface_desc(host_iface)->bInterfaceProtocol) { ++ mixer->hostif = &usb_ifnum_to_if(chip->dev, ctrlif)->altsetting[0]; ++ switch (get_iface_desc(mixer->hostif)->bInterfaceProtocol) { + case UAC_VERSION_1: + default: + mixer->protocol = UAC_VERSION_1; +diff --git a/sound/usb/mixer.h b/sound/usb/mixer.h +index ae1a14d..81b2d8a 100644 +--- a/sound/usb/mixer.h ++++ b/sound/usb/mixer.h +@@ -3,6 +3,7 @@ + + struct usb_mixer_interface { + struct snd_usb_audio *chip; ++ struct usb_host_interface *hostif; + struct list_head list; + unsigned int ignore_ctl_error; + struct urb *urb; --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/stable/gen-patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/stable/gen-patch @@ -0,0 +1,80 @@ +#!/usr/bin/env python + +import os.path, re, sys, textwrap +sys.path.append('debian/lib/python') +from debian_linux.config import ConfigCoreHierarchy +from debian_linux.debian import Changelog + +class Version(object): + _rules = ur"^(\d+\.\d+)\.(\d+)$" + _re = re.compile(_rules) + + def __init__(self, version): + self.complete = version + match = self._re.match(version) + if match is None: + raise RuntimeError + self.release = match.group(1) + self.patch = int(match.group(2)) + +class GenPatch(object): + def __init__(self, path, repo, version): + self.config = ConfigCoreHierarchy(['debian/config']) + self.package_version = Changelog()[0].version + self.path = path + self.repo = repo + self.version = version + + def __call__(self): + base = self.version.complete + patch = base + '.patch' + log = base + '.log' + series = base + '.series' + + if self.version.patch == 1: + tag_in = "v%s" % self.version.release + else: + tag_in = "v%s.%d" % (self.version.release, self.version.patch - 1) + tag_out = "v%s" % self.version.complete + print tag_in, tag_out + + backports = self.config.get(('backports',), {}) + diff_filter = '-x Makefile' + if self.version.release == self.package_version.upstream: + diff_filter += ' ' + ' '.join("-x '%s'" % re.sub(r'/$', r'/*', path) + for path in backports) + git_paths = '' + else: + git_paths = ' '.join("'%s'" % path for path in backports + if backports[path] == self.version.release) + + f = os.popen("cd %s; git diff %s %s -- %s | filterdiff -p 1 %s > %s" % + (self.repo, tag_in, tag_out, git_paths, diff_filter, + os.path.join(self.path, patch))) + if f.close() is not None: + raise RuntimeError + + f = os.popen("cd %s; git log --oneline --reverse %s..%s^ -- %s" % + (self.repo, tag_in, tag_out, git_paths)) + out = file(os.path.join(self.path, log), 'w') + out.write(" * Add stable release %s:\n" % self.version.complete) + for line in f: + line = line.strip() + if not line: + continue + hash, log = line.split(' ', 1) + log = textwrap.wrap(log, 74) + log = '\n '.join(log) + out.write(" - %s\n" % log) + if f.close() is not None: + raise RuntimeError + + out = file(os.path.join(self.path, series), 'w') + out.write("+ bugfix/all/stable/%s\n" % patch) + out.close() + +if __name__ == '__main__': + path = os.path.realpath(os.path.dirname(sys.argv[0])) + repo = sys.argv[1] + for i in sys.argv[2:]: + GenPatch(path, repo, Version(i))() --- linux-2.6-3.0.0.orig/debian/patches/bugfix/all/stable/3.0.1.patch +++ linux-2.6-3.0.0/debian/patches/bugfix/all/stable/3.0.1.patch @@ -0,0 +1,3653 @@ +diff --git a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c +index 818e74e..f20d1b5 100644 +--- a/arch/alpha/kernel/time.c ++++ b/arch/alpha/kernel/time.c +@@ -91,7 +91,7 @@ DEFINE_PER_CPU(u8, irq_work_pending); + #define test_irq_work_pending() __get_cpu_var(irq_work_pending) + #define clear_irq_work_pending() __get_cpu_var(irq_work_pending) = 0 + +-void set_irq_work_pending(void) ++void arch_irq_work_raise(void) + { + set_irq_work_pending_flag(); + } +diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c +index b2248e7..8a03487 100644 +--- a/arch/arm/mach-pxa/cm-x300.c ++++ b/arch/arm/mach-pxa/cm-x300.c +@@ -161,10 +161,10 @@ static mfp_cfg_t cm_x3xx_mfp_cfg[] __initdata = { + GPIO99_GPIO, /* Ethernet IRQ */ + + /* RTC GPIOs */ +- GPIO95_GPIO, /* RTC CS */ +- GPIO96_GPIO, /* RTC WR */ +- GPIO97_GPIO, /* RTC RD */ +- GPIO98_GPIO, /* RTC IO */ ++ GPIO95_GPIO | MFP_LPM_DRIVE_HIGH, /* RTC CS */ ++ GPIO96_GPIO | MFP_LPM_DRIVE_HIGH, /* RTC WR */ ++ GPIO97_GPIO | MFP_LPM_DRIVE_HIGH, /* RTC RD */ ++ GPIO98_GPIO, /* RTC IO */ + + /* Standard I2C */ + GPIO21_I2C_SCL, +diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c +index 4e6ee94..cc6a9d5 100644 +--- a/arch/powerpc/kernel/crash.c ++++ b/arch/powerpc/kernel/crash.c +@@ -242,12 +242,8 @@ static void crash_kexec_wait_realmode(int cpu) + + while (paca[i].kexec_state < KEXEC_STATE_REAL_MODE) { + barrier(); +- if (!cpu_possible(i)) { ++ if (!cpu_possible(i) || !cpu_online(i) || (msecs <= 0)) + break; +- } +- if (!cpu_online(i)) { +- break; +- } + msecs--; + mdelay(1); + } +diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c +index f33acfd..03b29a6 100644 +--- a/arch/powerpc/kernel/time.c ++++ b/arch/powerpc/kernel/time.c +@@ -544,7 +544,7 @@ DEFINE_PER_CPU(u8, irq_work_pending); + + #endif /* 32 vs 64 bit */ + +-void set_irq_work_pending(void) ++void arch_irq_work_raise(void) + { + preempt_disable(); + set_irq_work_pending_flag(); +diff --git a/arch/powerpc/platforms/pseries/hvconsole.c b/arch/powerpc/platforms/pseries/hvconsole.c +index 3f6a89b..041e87c 100644 +--- a/arch/powerpc/platforms/pseries/hvconsole.c ++++ b/arch/powerpc/platforms/pseries/hvconsole.c +@@ -73,7 +73,7 @@ int hvc_put_chars(uint32_t vtermno, const char *buf, int count) + if (ret == H_SUCCESS) + return count; + if (ret == H_BUSY) +- return 0; ++ return -EAGAIN; + return -EIO; + } + +diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h +index 485b4f1..23a9d89 100644 +--- a/arch/x86/include/asm/msr-index.h ++++ b/arch/x86/include/asm/msr-index.h +@@ -259,6 +259,9 @@ + #define MSR_IA32_TEMPERATURE_TARGET 0x000001a2 + + #define MSR_IA32_ENERGY_PERF_BIAS 0x000001b0 ++#define ENERGY_PERF_BIAS_PERFORMANCE 0 ++#define ENERGY_PERF_BIAS_NORMAL 6 ++#define ENERGY_PERF_BIAS_POWERSWAVE 15 + + #define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1 + +diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c +index 1edf5ba..da0d779 100644 +--- a/arch/x86/kernel/cpu/intel.c ++++ b/arch/x86/kernel/cpu/intel.c +@@ -456,6 +456,24 @@ static void __cpuinit init_intel(struct cpuinfo_x86 *c) + + if (cpu_has(c, X86_FEATURE_VMX)) + detect_vmx_virtcap(c); ++ ++ /* ++ * Initialize MSR_IA32_ENERGY_PERF_BIAS if BIOS did not. ++ * x86_energy_perf_policy(8) is available to change it at run-time ++ */ ++ if (cpu_has(c, X86_FEATURE_EPB)) { ++ u64 epb; ++ ++ rdmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); ++ if ((epb & 0xF) == 0) { ++ printk_once(KERN_WARNING, "x86: updated energy_perf_bias" ++ " to 'normal' from 'performance'\n" ++ "You can view and update epb via utility," ++ " such as x86_energy_perf_policy(8)\n"); ++ epb = (epb & ~0xF) | ENERGY_PERF_BIAS_NORMAL; ++ wrmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); ++ } ++ } + } + + #ifdef CONFIG_X86_32 +diff --git a/arch/x86/kernel/relocate_kernel_32.S b/arch/x86/kernel/relocate_kernel_32.S +index 4123553..36818f8 100644 +--- a/arch/x86/kernel/relocate_kernel_32.S ++++ b/arch/x86/kernel/relocate_kernel_32.S +@@ -97,6 +97,8 @@ relocate_kernel: + ret + + identity_mapped: ++ /* set return address to 0 if not preserving context */ ++ pushl $0 + /* store the start address on the stack */ + pushl %edx + +diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S +index 4de8f5b..7a6f3b3 100644 +--- a/arch/x86/kernel/relocate_kernel_64.S ++++ b/arch/x86/kernel/relocate_kernel_64.S +@@ -100,6 +100,8 @@ relocate_kernel: + ret + + identity_mapped: ++ /* set return address to 0 if not preserving context */ ++ pushq $0 + /* store the start address on the stack */ + pushq %rdx + +diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c +index a5b64ab..32f78eb 100644 +--- a/arch/x86/oprofile/backtrace.c ++++ b/arch/x86/oprofile/backtrace.c +@@ -11,10 +11,12 @@ + #include + #include + #include ++#include ++#include ++ + #include + #include + #include +-#include + + static int backtrace_stack(void *data, char *name) + { +@@ -36,17 +38,53 @@ static struct stacktrace_ops backtrace_ops = { + .walk_stack = print_context_stack, + }; + ++/* from arch/x86/kernel/cpu/perf_event.c: */ ++ ++/* ++ * best effort, GUP based copy_from_user() that assumes IRQ or NMI context ++ */ ++static unsigned long ++copy_from_user_nmi(void *to, const void __user *from, unsigned long n) ++{ ++ unsigned long offset, addr = (unsigned long)from; ++ unsigned long size, len = 0; ++ struct page *page; ++ void *map; ++ int ret; ++ ++ do { ++ ret = __get_user_pages_fast(addr, 1, 0, &page); ++ if (!ret) ++ break; ++ ++ offset = addr & (PAGE_SIZE - 1); ++ size = min(PAGE_SIZE - offset, n - len); ++ ++ map = kmap_atomic(page); ++ memcpy(to, map+offset, size); ++ kunmap_atomic(map); ++ put_page(page); ++ ++ len += size; ++ to += size; ++ addr += size; ++ ++ } while (len < n); ++ ++ return len; ++} ++ + #ifdef CONFIG_COMPAT + static struct stack_frame_ia32 * + dump_user_backtrace_32(struct stack_frame_ia32 *head) + { ++ /* Also check accessibility of one struct frame_head beyond: */ + struct stack_frame_ia32 bufhead[2]; + struct stack_frame_ia32 *fp; ++ unsigned long bytes; + +- /* Also check accessibility of one struct frame_head beyond */ +- if (!access_ok(VERIFY_READ, head, sizeof(bufhead))) +- return NULL; +- if (__copy_from_user_inatomic(bufhead, head, sizeof(bufhead))) ++ bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead)); ++ if (bytes != sizeof(bufhead)) + return NULL; + + fp = (struct stack_frame_ia32 *) compat_ptr(bufhead[0].next_frame); +@@ -87,12 +125,12 @@ x86_backtrace_32(struct pt_regs * const regs, unsigned int depth) + + static struct stack_frame *dump_user_backtrace(struct stack_frame *head) + { ++ /* Also check accessibility of one struct frame_head beyond: */ + struct stack_frame bufhead[2]; ++ unsigned long bytes; + +- /* Also check accessibility of one struct stack_frame beyond */ +- if (!access_ok(VERIFY_READ, head, sizeof(bufhead))) +- return NULL; +- if (__copy_from_user_inatomic(bufhead, head, sizeof(bufhead))) ++ bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead)); ++ if (bytes != sizeof(bufhead)) + return NULL; + + oprofile_add_trace(bufhead[0].return_address); +diff --git a/arch/xtensa/kernel/ptrace.c b/arch/xtensa/kernel/ptrace.c +index c72c947..a0d042a 100644 +--- a/arch/xtensa/kernel/ptrace.c ++++ b/arch/xtensa/kernel/ptrace.c +@@ -147,6 +147,9 @@ int ptrace_setxregs(struct task_struct *child, void __user *uregs) + elf_xtregs_t *xtregs = uregs; + int ret = 0; + ++ if (!access_ok(VERIFY_READ, uregs, sizeof(elf_xtregs_t))) ++ return -EFAULT; ++ + #if XTENSA_HAVE_COPROCESSORS + /* Flush all coprocessors before we overwrite them. */ + coprocessor_flush_all(ti); +diff --git a/block/blk-core.c b/block/blk-core.c +index d2f8f40..1d49e1c 100644 +--- a/block/blk-core.c ++++ b/block/blk-core.c +@@ -839,6 +839,9 @@ struct request *blk_get_request(struct request_queue *q, int rw, gfp_t gfp_mask) + { + struct request *rq; + ++ if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) ++ return NULL; ++ + BUG_ON(rw != READ && rw != WRITE); + + spin_lock_irq(q->queue_lock); +diff --git a/block/blk-exec.c b/block/blk-exec.c +index 8a0e7ec..a1ebceb 100644 +--- a/block/blk-exec.c ++++ b/block/blk-exec.c +@@ -50,6 +50,13 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk, + { + int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK; + ++ if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) { ++ rq->errors = -ENXIO; ++ if (rq->end_io) ++ rq->end_io(rq, rq->errors); ++ return; ++ } ++ + rq->rq_disk = bd_disk; + rq->end_io = done; + WARN_ON(irqs_disabled()); +diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h +index 16b4d58..c049548 100644 +--- a/drivers/block/cciss.h ++++ b/drivers/block/cciss.h +@@ -223,7 +223,7 @@ static void SA5_submit_command( ctlr_info_t *h, CommandList_struct *c) + h->ctlr, c->busaddr); + #endif /* CCISS_DEBUG */ + writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); +- readl(h->vaddr + SA5_REQUEST_PORT_OFFSET); ++ readl(h->vaddr + SA5_SCRATCHPAD_OFFSET); + h->commands_outstanding++; + if ( h->commands_outstanding > h->max_outstanding) + h->max_outstanding = h->commands_outstanding; +diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c +index b1c1177..e6ad3bb 100644 +--- a/drivers/firewire/core-cdev.c ++++ b/drivers/firewire/core-cdev.c +@@ -253,14 +253,11 @@ static int fw_device_op_open(struct inode *inode, struct file *file) + init_waitqueue_head(&client->wait); + init_waitqueue_head(&client->tx_flush_wait); + INIT_LIST_HEAD(&client->phy_receiver_link); ++ INIT_LIST_HEAD(&client->link); + kref_init(&client->kref); + + file->private_data = client; + +- mutex_lock(&device->client_list_mutex); +- list_add_tail(&client->link, &device->client_list); +- mutex_unlock(&device->client_list_mutex); +- + return nonseekable_open(inode, file); + } + +@@ -451,15 +448,20 @@ static int ioctl_get_info(struct client *client, union ioctl_arg *arg) + if (ret != 0) + return -EFAULT; + ++ mutex_lock(&client->device->client_list_mutex); ++ + client->bus_reset_closure = a->bus_reset_closure; + if (a->bus_reset != 0) { + fill_bus_reset_event(&bus_reset, client); +- if (copy_to_user(u64_to_uptr(a->bus_reset), +- &bus_reset, sizeof(bus_reset))) +- return -EFAULT; ++ ret = copy_to_user(u64_to_uptr(a->bus_reset), ++ &bus_reset, sizeof(bus_reset)); + } ++ if (ret == 0 && list_empty(&client->link)) ++ list_add_tail(&client->link, &client->device->client_list); + +- return 0; ++ mutex_unlock(&client->device->client_list_mutex); ++ ++ return ret ? -EFAULT : 0; + } + + static int add_client_resource(struct client *client, +@@ -1583,7 +1585,7 @@ static int dispatch_ioctl(struct client *client, + if (_IOC_TYPE(cmd) != '#' || + _IOC_NR(cmd) >= ARRAY_SIZE(ioctl_handlers) || + _IOC_SIZE(cmd) > sizeof(buffer)) +- return -EINVAL; ++ return -ENOTTY; + + if (_IOC_DIR(cmd) == _IOC_READ) + memset(&buffer, 0, _IOC_SIZE(cmd)); +diff --git a/drivers/firmware/sigma.c b/drivers/firmware/sigma.c +index c19cd2c..f10fc52 100644 +--- a/drivers/firmware/sigma.c ++++ b/drivers/firmware/sigma.c +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + + /* Return: 0==OK, <0==error, =1 ==no more actions */ +@@ -113,3 +114,5 @@ int process_sigma_firmware(struct i2c_client *client, const char *name) + return ret; + } + EXPORT_SYMBOL(process_sigma_firmware); ++ ++MODULE_LICENSE("GPL"); +diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c +index 8c0f9e3..645b84b 100644 +--- a/drivers/gpu/drm/radeon/atombios_dp.c ++++ b/drivers/gpu/drm/radeon/atombios_dp.c +@@ -627,6 +627,7 @@ struct radeon_dp_link_train_info { + u8 train_set[4]; + u8 link_status[DP_LINK_STATUS_SIZE]; + u8 tries; ++ bool use_dpencoder; + }; + + static void radeon_dp_update_vs_emph(struct radeon_dp_link_train_info *dp_info) +@@ -646,7 +647,7 @@ static void radeon_dp_set_tp(struct radeon_dp_link_train_info *dp_info, int tp) + int rtp = 0; + + /* set training pattern on the source */ +- if (ASIC_IS_DCE4(dp_info->rdev)) { ++ if (ASIC_IS_DCE4(dp_info->rdev) || !dp_info->use_dpencoder) { + switch (tp) { + case DP_TRAINING_PATTERN_1: + rtp = ATOM_ENCODER_CMD_DP_LINK_TRAINING_PATTERN1; +@@ -706,7 +707,7 @@ static int radeon_dp_link_train_init(struct radeon_dp_link_train_info *dp_info) + radeon_write_dpcd_reg(dp_info->radeon_connector, DP_LINK_BW_SET, tmp); + + /* start training on the source */ +- if (ASIC_IS_DCE4(dp_info->rdev)) ++ if (ASIC_IS_DCE4(dp_info->rdev) || !dp_info->use_dpencoder) + atombios_dig_encoder_setup(dp_info->encoder, + ATOM_ENCODER_CMD_DP_LINK_TRAINING_START, 0); + else +@@ -731,7 +732,7 @@ static int radeon_dp_link_train_finish(struct radeon_dp_link_train_info *dp_info + DP_TRAINING_PATTERN_DISABLE); + + /* disable the training pattern on the source */ +- if (ASIC_IS_DCE4(dp_info->rdev)) ++ if (ASIC_IS_DCE4(dp_info->rdev) || !dp_info->use_dpencoder) + atombios_dig_encoder_setup(dp_info->encoder, + ATOM_ENCODER_CMD_DP_LINK_TRAINING_COMPLETE, 0); + else +@@ -869,7 +870,8 @@ void radeon_dp_link_train(struct drm_encoder *encoder, + struct radeon_connector *radeon_connector; + struct radeon_connector_atom_dig *dig_connector; + struct radeon_dp_link_train_info dp_info; +- u8 tmp; ++ int index; ++ u8 tmp, frev, crev; + + if (!radeon_encoder->enc_priv) + return; +@@ -884,6 +886,18 @@ void radeon_dp_link_train(struct drm_encoder *encoder, + (dig_connector->dp_sink_type != CONNECTOR_OBJECT_ID_eDP)) + return; + ++ /* DPEncoderService newer than 1.1 can't program properly the ++ * training pattern. When facing such version use the ++ * DIGXEncoderControl (X== 1 | 2) ++ */ ++ dp_info.use_dpencoder = true; ++ index = GetIndexIntoMasterTable(COMMAND, DPEncoderService); ++ if (atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev)) { ++ if (crev > 1) { ++ dp_info.use_dpencoder = false; ++ } ++ } ++ + dp_info.enc_id = 0; + if (dig->dig_encoder) + dp_info.enc_id |= ATOM_DP_CONFIG_DIG2_ENCODER; +diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c +index e459467..a74217c 100644 +--- a/drivers/gpu/drm/radeon/radeon_combios.c ++++ b/drivers/gpu/drm/radeon/radeon_combios.c +@@ -779,7 +779,8 @@ void radeon_combios_i2c_init(struct radeon_device *rdev) + } + } + } +- } else if (rdev->family >= CHIP_R200) { ++ } else if ((rdev->family == CHIP_R200) || ++ (rdev->family >= CHIP_R300)) { + /* 0x68 */ + i2c = combios_setup_i2c_bus(rdev, DDC_MONID, 0, 0); + rdev->i2c_bus[3] = radeon_i2c_create(dev, &i2c, "MONID"); +diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c +index aaa19dc..6fabe89 100644 +--- a/drivers/gpu/drm/radeon/radeon_pm.c ++++ b/drivers/gpu/drm/radeon/radeon_pm.c +@@ -594,6 +594,9 @@ int radeon_pm_init(struct radeon_device *rdev) + if (rdev->pm.default_vddc) + radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, + SET_VOLTAGE_TYPE_ASIC_VDDC); ++ if (rdev->pm.default_vddci) ++ radeon_atom_set_voltage(rdev, rdev->pm.default_vddci, ++ SET_VOLTAGE_TYPE_ASIC_VDDCI); + if (rdev->pm.default_sclk) + radeon_set_engine_clock(rdev, rdev->pm.default_sclk); + if (rdev->pm.default_mclk) +diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c +index ee165fd..7d5109b 100644 +--- a/drivers/infiniband/ulp/srp/ib_srp.c ++++ b/drivers/infiniband/ulp/srp/ib_srp.c +@@ -2127,6 +2127,8 @@ static ssize_t srp_create_target(struct device *dev, + return -ENOMEM; + + target_host->transportt = ib_srp_transport_template; ++ target_host->max_channel = 0; ++ target_host->max_id = 1; + target_host->max_lun = SRP_MAX_LUN; + target_host->max_cmd_len = sizeof ((struct srp_cmd *) (void *) 0L)->cdb; + +diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c +index 2067288..ad2eba4 100644 +--- a/drivers/md/dm-io.c ++++ b/drivers/md/dm-io.c +@@ -38,6 +38,8 @@ struct io { + struct dm_io_client *client; + io_notify_fn callback; + void *context; ++ void *vma_invalidate_address; ++ unsigned long vma_invalidate_size; + } __attribute__((aligned(DM_IO_MAX_REGIONS))); + + static struct kmem_cache *_dm_io_cache; +@@ -116,6 +118,10 @@ static void dec_count(struct io *io, unsigned int region, int error) + set_bit(region, &io->error_bits); + + if (atomic_dec_and_test(&io->count)) { ++ if (io->vma_invalidate_size) ++ invalidate_kernel_vmap_range(io->vma_invalidate_address, ++ io->vma_invalidate_size); ++ + if (io->sleeper) + wake_up_process(io->sleeper); + +@@ -159,6 +165,9 @@ struct dpages { + + unsigned context_u; + void *context_ptr; ++ ++ void *vma_invalidate_address; ++ unsigned long vma_invalidate_size; + }; + + /* +@@ -377,6 +386,9 @@ static int sync_io(struct dm_io_client *client, unsigned int num_regions, + io->sleeper = current; + io->client = client; + ++ io->vma_invalidate_address = dp->vma_invalidate_address; ++ io->vma_invalidate_size = dp->vma_invalidate_size; ++ + dispatch_io(rw, num_regions, where, dp, io, 1); + + while (1) { +@@ -415,13 +427,21 @@ static int async_io(struct dm_io_client *client, unsigned int num_regions, + io->callback = fn; + io->context = context; + ++ io->vma_invalidate_address = dp->vma_invalidate_address; ++ io->vma_invalidate_size = dp->vma_invalidate_size; ++ + dispatch_io(rw, num_regions, where, dp, io, 0); + return 0; + } + +-static int dp_init(struct dm_io_request *io_req, struct dpages *dp) ++static int dp_init(struct dm_io_request *io_req, struct dpages *dp, ++ unsigned long size) + { + /* Set up dpages based on memory type */ ++ ++ dp->vma_invalidate_address = NULL; ++ dp->vma_invalidate_size = 0; ++ + switch (io_req->mem.type) { + case DM_IO_PAGE_LIST: + list_dp_init(dp, io_req->mem.ptr.pl, io_req->mem.offset); +@@ -432,6 +452,11 @@ static int dp_init(struct dm_io_request *io_req, struct dpages *dp) + break; + + case DM_IO_VMA: ++ flush_kernel_vmap_range(io_req->mem.ptr.vma, size); ++ if ((io_req->bi_rw & RW_MASK) == READ) { ++ dp->vma_invalidate_address = io_req->mem.ptr.vma; ++ dp->vma_invalidate_size = size; ++ } + vm_dp_init(dp, io_req->mem.ptr.vma); + break; + +@@ -460,7 +485,7 @@ int dm_io(struct dm_io_request *io_req, unsigned num_regions, + int r; + struct dpages dp; + +- r = dp_init(io_req, &dp); ++ r = dp_init(io_req, &dp, (unsigned long)where->count << SECTOR_SHIFT); + if (r) + return r; + +diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c +index aa4e570..209991b 100644 +--- a/drivers/md/dm-mpath.c ++++ b/drivers/md/dm-mpath.c +@@ -807,6 +807,11 @@ static int parse_features(struct arg_set *as, struct multipath *m) + if (!argc) + return 0; + ++ if (argc > as->argc) { ++ ti->error = "not enough arguments for features"; ++ return -EINVAL; ++ } ++ + do { + param_name = shift(as); + argc--; +diff --git a/drivers/md/dm-snap-persistent.c b/drivers/md/dm-snap-persistent.c +index 135c2f1..e4ecadf 100644 +--- a/drivers/md/dm-snap-persistent.c ++++ b/drivers/md/dm-snap-persistent.c +@@ -753,7 +753,7 @@ static int persistent_commit_merge(struct dm_exception_store *store, + for (i = 0; i < nr_merged; i++) + clear_exception(ps, ps->current_committed - 1 - i); + +- r = area_io(ps, WRITE); ++ r = area_io(ps, WRITE_FLUSH_FUA); + if (r < 0) + return r; + +diff --git a/drivers/md/dm.c b/drivers/md/dm.c +index 0cf68b4..41abc6d 100644 +--- a/drivers/md/dm.c ++++ b/drivers/md/dm.c +@@ -37,6 +37,8 @@ static const char *_name = DM_NAME; + static unsigned int major = 0; + static unsigned int _major = 0; + ++static DEFINE_IDR(_minor_idr); ++ + static DEFINE_SPINLOCK(_minor_lock); + /* + * For bio-based dm. +@@ -313,6 +315,12 @@ static void __exit dm_exit(void) + + while (i--) + _exits[i](); ++ ++ /* ++ * Should be empty by this point. ++ */ ++ idr_remove_all(&_minor_idr); ++ idr_destroy(&_minor_idr); + } + + /* +@@ -1705,8 +1713,6 @@ static int dm_any_congested(void *congested_data, int bdi_bits) + /*----------------------------------------------------------------- + * An IDR is used to keep track of allocated minor numbers. + *---------------------------------------------------------------*/ +-static DEFINE_IDR(_minor_idr); +- + static void free_minor(int minor) + { + spin_lock(&_minor_lock); +diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig +index 4e349cd..3546474 100644 +--- a/drivers/misc/Kconfig ++++ b/drivers/misc/Kconfig +@@ -245,8 +245,7 @@ config SGI_XP + + config CS5535_MFGPT + tristate "CS5535/CS5536 Geode Multi-Function General Purpose Timer (MFGPT) support" +- depends on PCI +- depends on X86 ++ depends on PCI && X86 && MFD_CS5535 + default n + help + This driver provides access to MFGPT functionality for other +diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c +index a19967d..ba31abe 100644 +--- a/drivers/mmc/host/sdhci-esdhc-imx.c ++++ b/drivers/mmc/host/sdhci-esdhc-imx.c +@@ -74,7 +74,7 @@ static u32 esdhc_readl_le(struct sdhci_host *host, int reg) + if (boarddata && gpio_is_valid(boarddata->cd_gpio) + && gpio_get_value(boarddata->cd_gpio)) + /* no card, if a valid gpio says so... */ +- val &= SDHCI_CARD_PRESENT; ++ val &= ~SDHCI_CARD_PRESENT; + else + /* ... in all other cases assume card is present */ + val |= SDHCI_CARD_PRESENT; +diff --git a/drivers/net/jme.c b/drivers/net/jme.c +index b5b174a..1973814 100644 +--- a/drivers/net/jme.c ++++ b/drivers/net/jme.c +@@ -753,20 +753,28 @@ jme_make_new_rx_buf(struct jme_adapter *jme, int i) + struct jme_ring *rxring = &(jme->rxring[0]); + struct jme_buffer_info *rxbi = rxring->bufinf + i; + struct sk_buff *skb; ++ dma_addr_t mapping; + + skb = netdev_alloc_skb(jme->dev, + jme->dev->mtu + RX_EXTRA_LEN); + if (unlikely(!skb)) + return -ENOMEM; + ++ mapping = pci_map_page(jme->pdev, virt_to_page(skb->data), ++ offset_in_page(skb->data), skb_tailroom(skb), ++ PCI_DMA_FROMDEVICE); ++ if (unlikely(pci_dma_mapping_error(jme->pdev, mapping))) { ++ dev_kfree_skb(skb); ++ return -ENOMEM; ++ } ++ ++ if (likely(rxbi->mapping)) ++ pci_unmap_page(jme->pdev, rxbi->mapping, ++ rxbi->len, PCI_DMA_FROMDEVICE); ++ + rxbi->skb = skb; + rxbi->len = skb_tailroom(skb); +- rxbi->mapping = pci_map_page(jme->pdev, +- virt_to_page(skb->data), +- offset_in_page(skb->data), +- rxbi->len, +- PCI_DMA_FROMDEVICE); +- ++ rxbi->mapping = mapping; + return 0; + } + +diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c +index 10d71f7..1f99249 100644 +--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c ++++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c +@@ -629,8 +629,7 @@ int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs, + rxs->rs_status |= ATH9K_RXERR_DECRYPT; + else if (rxsp->status11 & AR_MichaelErr) + rxs->rs_status |= ATH9K_RXERR_MIC; +- +- if (rxsp->status11 & AR_KeyMiss) ++ else if (rxsp->status11 & AR_KeyMiss) + rxs->rs_status |= ATH9K_RXERR_DECRYPT; + } + +diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c +index c2091f1..b6b523a 100644 +--- a/drivers/net/wireless/ath/ath9k/mac.c ++++ b/drivers/net/wireless/ath/ath9k/mac.c +@@ -645,8 +645,7 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds, + rs->rs_status |= ATH9K_RXERR_DECRYPT; + else if (ads.ds_rxstatus8 & AR_MichaelErr) + rs->rs_status |= ATH9K_RXERR_MIC; +- +- if (ads.ds_rxstatus8 & AR_KeyMiss) ++ else if (ads.ds_rxstatus8 & AR_KeyMiss) + rs->rs_status |= ATH9K_RXERR_DECRYPT; + } + +diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c +index cc4a54f..55cd3e1 100644 +--- a/drivers/net/wireless/rt2x00/rt2800pci.c ++++ b/drivers/net/wireless/rt2x00/rt2800pci.c +@@ -1158,6 +1158,7 @@ static DEFINE_PCI_DEVICE_TABLE(rt2800pci_device_table) = { + #endif + #ifdef CONFIG_RT2800PCI_RT53XX + { PCI_DEVICE(0x1814, 0x5390) }, ++ { PCI_DEVICE(0x1814, 0x539f) }, + #endif + { 0, } + }; +diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/rf.c b/drivers/net/wireless/rtlwifi/rtl8192cu/rf.c +index c7576ec..3bee79e 100644 +--- a/drivers/net/wireless/rtlwifi/rtl8192cu/rf.c ++++ b/drivers/net/wireless/rtlwifi/rtl8192cu/rf.c +@@ -104,7 +104,7 @@ void rtl92cu_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw, + tx_agc[RF90_PATH_A] = 0x10101010; + tx_agc[RF90_PATH_B] = 0x10101010; + } else if (rtlpriv->dm.dynamic_txhighpower_lvl == +- TXHIGHPWRLEVEL_LEVEL1) { ++ TXHIGHPWRLEVEL_LEVEL2) { + tx_agc[RF90_PATH_A] = 0x00000000; + tx_agc[RF90_PATH_B] = 0x00000000; + } else{ +diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c +index 692671b..d549bbc 100644 +--- a/drivers/pci/pci.c ++++ b/drivers/pci/pci.c +@@ -1905,7 +1905,7 @@ void pci_enable_ari(struct pci_dev *dev) + { + int pos; + u32 cap; +- u16 ctrl; ++ u16 flags, ctrl; + struct pci_dev *bridge; + + if (!pci_is_pcie(dev) || dev->devfn) +@@ -1923,6 +1923,11 @@ void pci_enable_ari(struct pci_dev *dev) + if (!pos) + return; + ++ /* ARI is a PCIe v2 feature */ ++ pci_read_config_word(bridge, pos + PCI_EXP_FLAGS, &flags); ++ if ((flags & PCI_EXP_FLAGS_VERS) < 2) ++ return; ++ + pci_read_config_dword(bridge, pos + PCI_EXP_DEVCAP2, &cap); + if (!(cap & PCI_EXP_DEVCAP2_ARI)) + return; +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index 02145e9..1196f61 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -2758,6 +2758,29 @@ static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev) + + dev_notice(&dev->dev, "proprietary Ricoh MMC controller disabled (via firewire function)\n"); + dev_notice(&dev->dev, "MMC cards are now supported by standard SDHCI controller\n"); ++ ++ /* ++ * RICOH 0xe823 SD/MMC card reader fails to recognize ++ * certain types of SD/MMC cards. Lowering the SD base ++ * clock frequency from 200Mhz to 50Mhz fixes this issue. ++ * ++ * 0x150 - SD2.0 mode enable for changing base clock ++ * frequency to 50Mhz ++ * 0xe1 - Base clock frequency ++ * 0x32 - 50Mhz new clock frequency ++ * 0xf9 - Key register for 0x150 ++ * 0xfc - key register for 0xe1 ++ */ ++ if (dev->device == PCI_DEVICE_ID_RICOH_R5CE823) { ++ pci_write_config_byte(dev, 0xf9, 0xfc); ++ pci_write_config_byte(dev, 0x150, 0x10); ++ pci_write_config_byte(dev, 0xf9, 0x00); ++ pci_write_config_byte(dev, 0xfc, 0x01); ++ pci_write_config_byte(dev, 0xe1, 0x32); ++ pci_write_config_byte(dev, 0xfc, 0x00); ++ ++ dev_notice(&dev->dev, "MMC controller base frequency changed to 50Mhz.\n"); ++ } + } + DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); + DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); +diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c +index df68618..3195dbd 100644 +--- a/drivers/rtc/interface.c ++++ b/drivers/rtc/interface.c +@@ -636,6 +636,29 @@ void rtc_irq_unregister(struct rtc_device *rtc, struct rtc_task *task) + } + EXPORT_SYMBOL_GPL(rtc_irq_unregister); + ++static int rtc_update_hrtimer(struct rtc_device *rtc, int enabled) ++{ ++ /* ++ * We unconditionally cancel the timer here, because otherwise ++ * we could run into BUG_ON(timer->state != HRTIMER_STATE_CALLBACK); ++ * when we manage to start the timer before the callback ++ * returns HRTIMER_RESTART. ++ * ++ * We cannot use hrtimer_cancel() here as a running callback ++ * could be blocked on rtc->irq_task_lock and hrtimer_cancel() ++ * would spin forever. ++ */ ++ if (hrtimer_try_to_cancel(&rtc->pie_timer) < 0) ++ return -1; ++ ++ if (enabled) { ++ ktime_t period = ktime_set(0, NSEC_PER_SEC / rtc->irq_freq); ++ ++ hrtimer_start(&rtc->pie_timer, period, HRTIMER_MODE_REL); ++ } ++ return 0; ++} ++ + /** + * rtc_irq_set_state - enable/disable 2^N Hz periodic IRQs + * @rtc: the rtc device +@@ -651,21 +674,21 @@ int rtc_irq_set_state(struct rtc_device *rtc, struct rtc_task *task, int enabled + int err = 0; + unsigned long flags; + ++retry: + spin_lock_irqsave(&rtc->irq_task_lock, flags); + if (rtc->irq_task != NULL && task == NULL) + err = -EBUSY; + if (rtc->irq_task != task) + err = -EACCES; +- +- if (enabled) { +- ktime_t period = ktime_set(0, NSEC_PER_SEC/rtc->irq_freq); +- hrtimer_start(&rtc->pie_timer, period, HRTIMER_MODE_REL); +- } else { +- hrtimer_cancel(&rtc->pie_timer); ++ if (!err) { ++ if (rtc_update_hrtimer(rtc, enabled) < 0) { ++ spin_unlock_irqrestore(&rtc->irq_task_lock, flags); ++ cpu_relax(); ++ goto retry; ++ } ++ rtc->pie_enabled = enabled; + } +- rtc->pie_enabled = enabled; + spin_unlock_irqrestore(&rtc->irq_task_lock, flags); +- + return err; + } + EXPORT_SYMBOL_GPL(rtc_irq_set_state); +@@ -685,22 +708,20 @@ int rtc_irq_set_freq(struct rtc_device *rtc, struct rtc_task *task, int freq) + int err = 0; + unsigned long flags; + +- if (freq <= 0) ++ if (freq <= 0 || freq > 5000) + return -EINVAL; +- ++retry: + spin_lock_irqsave(&rtc->irq_task_lock, flags); + if (rtc->irq_task != NULL && task == NULL) + err = -EBUSY; + if (rtc->irq_task != task) + err = -EACCES; +- if (err == 0) { ++ if (!err) { + rtc->irq_freq = freq; +- if (rtc->pie_enabled) { +- ktime_t period; +- hrtimer_cancel(&rtc->pie_timer); +- period = ktime_set(0, NSEC_PER_SEC/rtc->irq_freq); +- hrtimer_start(&rtc->pie_timer, period, +- HRTIMER_MODE_REL); ++ if (rtc->pie_enabled && rtc_update_hrtimer(rtc, 1) < 0) { ++ spin_unlock_irqrestore(&rtc->irq_task_lock, flags); ++ cpu_relax(); ++ goto retry; + } + } + spin_unlock_irqrestore(&rtc->irq_task_lock, flags); +diff --git a/drivers/rtc/rtc-tegra.c b/drivers/rtc/rtc-tegra.c +index 2fc31aa..75259fe 100644 +--- a/drivers/rtc/rtc-tegra.c ++++ b/drivers/rtc/rtc-tegra.c +@@ -343,7 +343,7 @@ static int __devinit tegra_rtc_probe(struct platform_device *pdev) + + /* set context info. */ + info->pdev = pdev; +- info->tegra_rtc_lock = __SPIN_LOCK_UNLOCKED(info->tegra_rtc_lock); ++ spin_lock_init(&info->tegra_rtc_lock); + + platform_set_drvdata(pdev, info); + +diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h +index 6d8dcd4..7f53cea 100644 +--- a/drivers/scsi/hpsa.h ++++ b/drivers/scsi/hpsa.h +@@ -214,7 +214,7 @@ static void SA5_submit_command(struct ctlr_info *h, + dev_dbg(&h->pdev->dev, "Sending %x, tag = %x\n", c->busaddr, + c->Header.Tag.lower); + writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); +- (void) readl(h->vaddr + SA5_REQUEST_PORT_OFFSET); ++ (void) readl(h->vaddr + SA5_SCRATCHPAD_OFFSET); + h->commands_outstanding++; + if (h->commands_outstanding > h->max_outstanding) + h->max_outstanding = h->commands_outstanding; +diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c +index 874e29d..f84084b 100644 +--- a/drivers/scsi/libsas/sas_expander.c ++++ b/drivers/scsi/libsas/sas_expander.c +@@ -849,6 +849,9 @@ static struct domain_device *sas_ex_discover_expander( + + res = sas_discover_expander(child); + if (res) { ++ spin_lock_irq(&parent->port->dev_list_lock); ++ list_del(&child->dev_list_node); ++ spin_unlock_irq(&parent->port->dev_list_lock); + kfree(child); + return NULL; + } +diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c +index fca6a89..d079f9a 100644 +--- a/drivers/scsi/pmcraid.c ++++ b/drivers/scsi/pmcraid.c +@@ -3871,6 +3871,9 @@ static long pmcraid_ioctl_passthrough( + pmcraid_err("couldn't build passthrough ioadls\n"); + goto out_free_buffer; + } ++ } else if (request_size < 0) { ++ rc = -EINVAL; ++ goto out_free_buffer; + } + + /* If data is being written into the device, copy the data from user +diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c +index 82e9e5c..cf8dfab 100644 +--- a/drivers/scsi/scsi_devinfo.c ++++ b/drivers/scsi/scsi_devinfo.c +@@ -197,6 +197,7 @@ static struct { + {"IBM", "ProFibre 4000R", "*", BLIST_SPARSELUN | BLIST_LARGELUN}, + {"IBM", "2105", NULL, BLIST_RETRY_HWERROR}, + {"iomega", "jaz 1GB", "J.86", BLIST_NOTQ | BLIST_NOLUN}, ++ {"IOMEGA", "ZIP", NULL, BLIST_NOTQ | BLIST_NOLUN}, + {"IOMEGA", "Io20S *F", NULL, BLIST_KEY}, + {"INSITE", "Floptical F*8I", NULL, BLIST_KEY}, + {"INSITE", "I325VM", NULL, BLIST_KEY}, +@@ -243,6 +244,7 @@ static struct { + {"Tornado-", "F4", "*", BLIST_NOREPORTLUN}, + {"TOSHIBA", "CDROM", NULL, BLIST_ISROM}, + {"TOSHIBA", "CD-ROM", NULL, BLIST_ISROM}, ++ {"Traxdata", "CDR4120", NULL, BLIST_NOLUN}, /* locks up */ + {"USB2.0", "SMARTMEDIA/XD", NULL, BLIST_FORCELUN | BLIST_INQUIRY_36}, + {"WangDAT", "Model 2600", "01.7", BLIST_SELECT_NO_ATN}, + {"WangDAT", "Model 3200", "02.2", BLIST_SELECT_NO_ATN}, +diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c +index ec1803a..28d9c9d 100644 +--- a/drivers/scsi/scsi_lib.c ++++ b/drivers/scsi/scsi_lib.c +@@ -213,6 +213,8 @@ int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd, + int ret = DRIVER_ERROR << 24; + + req = blk_get_request(sdev->request_queue, write, __GFP_WAIT); ++ if (!req) ++ return ret; + + if (bufflen && blk_rq_map_kern(sdev->request_queue, req, + buffer, bufflen, __GFP_WAIT)) +diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c +index eb7a3e8..eba183c 100644 +--- a/drivers/scsi/ses.c ++++ b/drivers/scsi/ses.c +@@ -160,6 +160,10 @@ static unsigned char *ses_get_page2_descriptor(struct enclosure_device *edev, + return NULL; + } + ++/* For device slot and array device slot elements, byte 3 bit 6 ++ * is "fault sensed" while byte 3 bit 5 is "fault reqstd". As this ++ * code stands these bits are shifted 4 positions right so in ++ * sysfs they will appear as bits 2 and 1 respectively. Strange. */ + static void ses_get_fault(struct enclosure_device *edev, + struct enclosure_component *ecomp) + { +@@ -181,7 +185,7 @@ static int ses_set_fault(struct enclosure_device *edev, + /* zero is disabled */ + break; + case ENCLOSURE_SETTING_ENABLED: +- desc[2] = 0x02; ++ desc[3] = 0x20; + break; + default: + /* SES doesn't do the SGPIO blink settings */ +diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c +index 4778e27..5fc97d2 100644 +--- a/drivers/scsi/sr.c ++++ b/drivers/scsi/sr.c +@@ -221,14 +221,33 @@ static unsigned int sr_check_events(struct cdrom_device_info *cdi, + return 0; + + events = sr_get_events(cd->device); ++ cd->get_event_changed |= events & DISK_EVENT_MEDIA_CHANGE; ++ ++ /* ++ * If earlier GET_EVENT_STATUS_NOTIFICATION and TUR did not agree ++ * for several times in a row. We rely on TUR only for this likely ++ * broken device, to prevent generating incorrect media changed ++ * events for every open(). ++ */ ++ if (cd->ignore_get_event) { ++ events &= ~DISK_EVENT_MEDIA_CHANGE; ++ goto do_tur; ++ } ++ + /* + * GET_EVENT_STATUS_NOTIFICATION is enough unless MEDIA_CHANGE + * is being cleared. Note that there are devices which hang + * if asked to execute TUR repeatedly. + */ +- if (!(clearing & DISK_EVENT_MEDIA_CHANGE)) +- goto skip_tur; ++ if (cd->device->changed) { ++ events |= DISK_EVENT_MEDIA_CHANGE; ++ cd->device->changed = 0; ++ cd->tur_changed = true; ++ } + ++ if (!(clearing & DISK_EVENT_MEDIA_CHANGE)) ++ return events; ++do_tur: + /* let's see whether the media is there with TUR */ + last_present = cd->media_present; + ret = scsi_test_unit_ready(cd->device, SR_TIMEOUT, MAX_RETRIES, &sshdr); +@@ -242,12 +261,31 @@ static unsigned int sr_check_events(struct cdrom_device_info *cdi, + (scsi_sense_valid(&sshdr) && sshdr.asc != 0x3a); + + if (last_present != cd->media_present) +- events |= DISK_EVENT_MEDIA_CHANGE; +-skip_tur: ++ cd->device->changed = 1; ++ + if (cd->device->changed) { + events |= DISK_EVENT_MEDIA_CHANGE; + cd->device->changed = 0; ++ cd->tur_changed = true; ++ } ++ ++ if (cd->ignore_get_event) ++ return events; ++ ++ /* check whether GET_EVENT is reporting spurious MEDIA_CHANGE */ ++ if (!cd->tur_changed) { ++ if (cd->get_event_changed) { ++ if (cd->tur_mismatch++ > 8) { ++ sdev_printk(KERN_WARNING, cd->device, ++ "GET_EVENT and TUR disagree continuously, suppress GET_EVENT events\n"); ++ cd->ignore_get_event = true; ++ } ++ } else { ++ cd->tur_mismatch = 0; ++ } + } ++ cd->tur_changed = false; ++ cd->get_event_changed = false; + + return events; + } +diff --git a/drivers/scsi/sr.h b/drivers/scsi/sr.h +index e036f1d..37c8f6b 100644 +--- a/drivers/scsi/sr.h ++++ b/drivers/scsi/sr.h +@@ -41,6 +41,13 @@ typedef struct scsi_cd { + unsigned readcd_known:1; /* drive supports READ_CD (0xbe) */ + unsigned readcd_cdda:1; /* reading audio data using READ_CD */ + unsigned media_present:1; /* media is present */ ++ ++ /* GET_EVENT spurious event handling, blk layer guarantees exclusion */ ++ int tur_mismatch; /* nr of get_event TUR mismatches */ ++ bool tur_changed:1; /* changed according to TUR */ ++ bool get_event_changed:1; /* changed according to GET_EVENT */ ++ bool ignore_get_event:1; /* GET_EVENT is unreliable, use TUR */ ++ + struct cdrom_device_info cdi; + /* We hold gendisk and scsi_device references on probe and use + * the refs on this kref to decide when to release them */ +diff --git a/drivers/staging/ath6kl/os/linux/ar6000_drv.c b/drivers/staging/ath6kl/os/linux/ar6000_drv.c +index 48dd9e3..aa97efc 100644 +--- a/drivers/staging/ath6kl/os/linux/ar6000_drv.c ++++ b/drivers/staging/ath6kl/os/linux/ar6000_drv.c +@@ -954,9 +954,13 @@ ar6000_transfer_bin_file(struct ar6_softc *ar, AR6K_BIN_FILE file, u32 address, + const char *filename; + const struct firmware *fw_entry; + u32 fw_entry_size; ++ u8 **buf; ++ size_t *buf_len; + + switch (file) { + case AR6K_OTP_FILE: ++ buf = &ar->fw_otp; ++ buf_len = &ar->fw_otp_len; + if (ar->arVersion.target_ver == AR6003_REV1_VERSION) { + filename = AR6003_REV1_OTP_FILE; + } else if (ar->arVersion.target_ver == AR6003_REV2_VERSION) { +@@ -970,6 +974,8 @@ ar6000_transfer_bin_file(struct ar6_softc *ar, AR6K_BIN_FILE file, u32 address, + break; + + case AR6K_FIRMWARE_FILE: ++ buf = &ar->fw; ++ buf_len = &ar->fw_len; + if (ar->arVersion.target_ver == AR6003_REV1_VERSION) { + filename = AR6003_REV1_FIRMWARE_FILE; + } else if (ar->arVersion.target_ver == AR6003_REV2_VERSION) { +@@ -1028,6 +1034,8 @@ ar6000_transfer_bin_file(struct ar6_softc *ar, AR6K_BIN_FILE file, u32 address, + break; + + case AR6K_PATCH_FILE: ++ buf = &ar->fw_patch; ++ buf_len = &ar->fw_patch_len; + if (ar->arVersion.target_ver == AR6003_REV1_VERSION) { + filename = AR6003_REV1_PATCH_FILE; + } else if (ar->arVersion.target_ver == AR6003_REV2_VERSION) { +@@ -1041,6 +1049,8 @@ ar6000_transfer_bin_file(struct ar6_softc *ar, AR6K_BIN_FILE file, u32 address, + break; + + case AR6K_BOARD_DATA_FILE: ++ buf = &ar->fw_data; ++ buf_len = &ar->fw_data_len; + if (ar->arVersion.target_ver == AR6003_REV1_VERSION) { + filename = AR6003_REV1_BOARD_DATA_FILE; + } else if (ar->arVersion.target_ver == AR6003_REV2_VERSION) { +@@ -1057,23 +1067,29 @@ ar6000_transfer_bin_file(struct ar6_softc *ar, AR6K_BIN_FILE file, u32 address, + AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("Unknown file type: %d\n", file)); + return A_ERROR; + } +- if ((A_REQUEST_FIRMWARE(&fw_entry, filename, ((struct device *)ar->osDevInfo.pOSDevice))) != 0) +- { +- AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("Failed to get %s\n", filename)); +- return A_ENOENT; ++ ++ if (*buf == NULL) { ++ if ((A_REQUEST_FIRMWARE(&fw_entry, filename, ((struct device *)ar->osDevInfo.pOSDevice))) != 0) { ++ AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("Failed to get %s\n", filename)); ++ return A_ENOENT; ++ } ++ ++ *buf = kmemdup(fw_entry->data, fw_entry->size, GFP_KERNEL); ++ *buf_len = fw_entry->size; ++ A_RELEASE_FIRMWARE(fw_entry); + } + + #ifdef SOFTMAC_FILE_USED +- if (file==AR6K_BOARD_DATA_FILE && fw_entry->data) { +- ar6000_softmac_update(ar, (u8 *)fw_entry->data, fw_entry->size); ++ if (file==AR6K_BOARD_DATA_FILE && *buf_len) { ++ ar6000_softmac_update(ar, *buf, *buf_len); + } + #endif + + +- fw_entry_size = fw_entry->size; ++ fw_entry_size = *buf_len; + + /* Load extended board data for AR6003 */ +- if ((file==AR6K_BOARD_DATA_FILE) && (fw_entry->data)) { ++ if ((file==AR6K_BOARD_DATA_FILE) && *buf) { + u32 board_ext_address; + u32 board_ext_data_size; + u32 board_data_size; +@@ -1089,14 +1105,13 @@ ar6000_transfer_bin_file(struct ar6_softc *ar, AR6K_BIN_FILE file, u32 address, + AR_DEBUG_PRINTF(ATH_DEBUG_INFO, ("Board extended Data download address: 0x%x\n", board_ext_address)); + + /* check whether the target has allocated memory for extended board data and file contains extended board data */ +- if ((board_ext_address) && (fw_entry->size == (board_data_size + board_ext_data_size))) { ++ if ((board_ext_address) && (*buf_len == (board_data_size + board_ext_data_size))) { + u32 param; + +- status = BMIWriteMemory(ar->arHifDevice, board_ext_address, (u8 *)(fw_entry->data + board_data_size), board_ext_data_size); ++ status = BMIWriteMemory(ar->arHifDevice, board_ext_address, (u8 *)(*buf + board_data_size), board_ext_data_size); + + if (status) { + AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("BMI operation failed: %d\n", __LINE__)); +- A_RELEASE_FIRMWARE(fw_entry); + return A_ERROR; + } + +@@ -1110,17 +1125,16 @@ ar6000_transfer_bin_file(struct ar6_softc *ar, AR6K_BIN_FILE file, u32 address, + } + + if (compressed) { +- status = BMIFastDownload(ar->arHifDevice, address, (u8 *)fw_entry->data, fw_entry_size); ++ status = BMIFastDownload(ar->arHifDevice, address, *buf, fw_entry_size); + } else { +- status = BMIWriteMemory(ar->arHifDevice, address, (u8 *)fw_entry->data, fw_entry_size); ++ status = BMIWriteMemory(ar->arHifDevice, address, *buf, fw_entry_size); + } + + if (status) { + AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("BMI operation failed: %d\n", __LINE__)); +- A_RELEASE_FIRMWARE(fw_entry); + return A_ERROR; + } +- A_RELEASE_FIRMWARE(fw_entry); ++ + return 0; + } + +@@ -2088,6 +2102,11 @@ ar6000_destroy(struct net_device *dev, unsigned int unregister) + ar6000_remove_ap_interface(); + #endif /*CONFIG_AP_VIRTUAL_ADAPTER_SUPPORT */ + ++ kfree(ar->fw_otp); ++ kfree(ar->fw); ++ kfree(ar->fw_patch); ++ kfree(ar->fw_data); ++ + AR_DEBUG_PRINTF(ATH_DEBUG_INFO,("-ar6000_destroy \n")); + } + +diff --git a/drivers/staging/ath6kl/os/linux/cfg80211.c b/drivers/staging/ath6kl/os/linux/cfg80211.c +index d3a774d..32e3197 100644 +--- a/drivers/staging/ath6kl/os/linux/cfg80211.c ++++ b/drivers/staging/ath6kl/os/linux/cfg80211.c +@@ -867,26 +867,31 @@ ar6k_cfg80211_scanComplete_event(struct ar6_softc *ar, int status) + + AR_DEBUG_PRINTF(ATH_DEBUG_INFO, ("%s: status %d\n", __func__, status)); + +- if(ar->scan_request) +- { +- /* Translate data to cfg80211 mgmt format */ +- if (ar->arWmi) +- wmi_iterate_nodes(ar->arWmi, ar6k_cfg80211_scan_node, ar->wdev->wiphy); ++ if (!ar->scan_request) ++ return; ++ ++ if ((status == A_ECANCELED) || (status == A_EBUSY)) { ++ cfg80211_scan_done(ar->scan_request, true); ++ goto out; ++ } ++ ++ /* Translate data to cfg80211 mgmt format */ ++ wmi_iterate_nodes(ar->arWmi, ar6k_cfg80211_scan_node, ar->wdev->wiphy); + +- cfg80211_scan_done(ar->scan_request, +- ((status & A_ECANCELED) || (status & A_EBUSY)) ? true : false); ++ cfg80211_scan_done(ar->scan_request, false); + +- if(ar->scan_request->n_ssids && +- ar->scan_request->ssids[0].ssid_len) { ++ if(ar->scan_request->n_ssids && ++ ar->scan_request->ssids[0].ssid_len) { + u8 i; + + for (i = 0; i < ar->scan_request->n_ssids; i++) { +- wmi_probedSsid_cmd(ar->arWmi, i+1, DISABLE_SSID_FLAG, +- 0, NULL); ++ wmi_probedSsid_cmd(ar->arWmi, i+1, DISABLE_SSID_FLAG, ++ 0, NULL); + } +- } +- ar->scan_request = NULL; + } ++ ++out: ++ ar->scan_request = NULL; + } + + static int +diff --git a/drivers/staging/ath6kl/os/linux/include/ar6000_drv.h b/drivers/staging/ath6kl/os/linux/include/ar6000_drv.h +index 22453b0..2911ea0 100644 +--- a/drivers/staging/ath6kl/os/linux/include/ar6000_drv.h ++++ b/drivers/staging/ath6kl/os/linux/include/ar6000_drv.h +@@ -651,6 +651,15 @@ struct ar6_softc { + void *arApDev; + #endif + u8 arAutoAuthStage; ++ ++ u8 *fw_otp; ++ size_t fw_otp_len; ++ u8 *fw; ++ size_t fw_len; ++ u8 *fw_patch; ++ size_t fw_patch_len; ++ u8 *fw_data; ++ size_t fw_data_len; + }; + + #ifdef CONFIG_AP_VIRTUAL_ADAPTER_SUPPORT +diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c +index 6c6236c..aa0d127 100644 +--- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c ++++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c +@@ -449,11 +449,6 @@ wl_ops_bss_info_changed(struct ieee80211_hw *hw, + wiphy_err(wiphy, "%s: qos enabled: %s (implement)\n", __func__, + info->qos ? "true" : "false"); + } +- if (changed & BSS_CHANGED_IDLE) { +- /* Idle changed for this BSS/interface */ +- wiphy_err(wiphy, "%s: BSS idle: %s (implement)\n", __func__, +- info->idle ? "true" : "false"); +- } + return; + } + +diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c +index e7e72b8..c20694e 100644 +--- a/drivers/staging/comedi/comedi_fops.c ++++ b/drivers/staging/comedi/comedi_fops.c +@@ -383,8 +383,8 @@ static int do_devinfo_ioctl(struct comedi_device *dev, + /* fill devinfo structure */ + devinfo.version_code = COMEDI_VERSION_CODE; + devinfo.n_subdevs = dev->n_subdevices; +- memcpy(devinfo.driver_name, dev->driver->driver_name, COMEDI_NAMELEN); +- memcpy(devinfo.board_name, dev->board_name, COMEDI_NAMELEN); ++ strlcpy(devinfo.driver_name, dev->driver->driver_name, COMEDI_NAMELEN); ++ strlcpy(devinfo.board_name, dev->board_name, COMEDI_NAMELEN); + + if (read_subdev) + devinfo.read_subdevice = read_subdev - dev->subdevices; +diff --git a/drivers/staging/hv/channel.c b/drivers/staging/hv/channel.c +index f655e59..d971bab 100644 +--- a/drivers/staging/hv/channel.c ++++ b/drivers/staging/hv/channel.c +@@ -212,7 +212,7 @@ int vmbus_open(struct vmbus_channel *newchannel, u32 send_ringbuffer_size, + if (ret != 0) + goto Cleanup; + +- t = wait_for_completion_timeout(&openInfo->waitevent, HZ); ++ t = wait_for_completion_timeout(&openInfo->waitevent, 5*HZ); + if (t == 0) { + err = -ETIMEDOUT; + goto errorout; +diff --git a/drivers/staging/hv/channel_mgmt.c b/drivers/staging/hv/channel_mgmt.c +index 957d61e..e2e7d05 100644 +--- a/drivers/staging/hv/channel_mgmt.c ++++ b/drivers/staging/hv/channel_mgmt.c +@@ -773,7 +773,7 @@ int vmbus_request_offers(void) + goto cleanup; + } + +- t = wait_for_completion_timeout(&msginfo->waitevent, HZ); ++ t = wait_for_completion_timeout(&msginfo->waitevent, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; +diff --git a/drivers/staging/hv/connection.c b/drivers/staging/hv/connection.c +index 37bbf77..91c65ad 100644 +--- a/drivers/staging/hv/connection.c ++++ b/drivers/staging/hv/connection.c +@@ -135,7 +135,7 @@ int vmbus_connect(void) + } + + /* Wait for the connection response */ +- t = wait_for_completion_timeout(&msginfo->waitevent, HZ); ++ t = wait_for_completion_timeout(&msginfo->waitevent, 5*HZ); + if (t == 0) { + spin_lock_irqsave(&vmbus_connection.channelmsg_lock, + flags); +diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c +index 41cbb26..4742b68 100644 +--- a/drivers/staging/hv/netvsc.c ++++ b/drivers/staging/hv/netvsc.c +@@ -270,7 +270,7 @@ static int netvsc_init_recv_buf(struct hv_device *device) + goto cleanup; + } + +- t = wait_for_completion_timeout(&net_device->channel_init_wait, HZ); ++ t = wait_for_completion_timeout(&net_device->channel_init_wait, 5*HZ); + BUG_ON(t == 0); + + +@@ -513,7 +513,7 @@ static int netvsc_connect_vsp(struct hv_device *device) + if (ret != 0) + goto cleanup; + +- t = wait_for_completion_timeout(&net_device->channel_init_wait, HZ); ++ t = wait_for_completion_timeout(&net_device->channel_init_wait, 5*HZ); + + if (t == 0) { + ret = -ETIMEDOUT; +diff --git a/drivers/staging/hv/rndis_filter.c b/drivers/staging/hv/rndis_filter.c +index 60ebdb1..b47ebb3 100644 +--- a/drivers/staging/hv/rndis_filter.c ++++ b/drivers/staging/hv/rndis_filter.c +@@ -467,7 +467,7 @@ static int rndis_filter_query_device(struct rndis_device *dev, u32 oid, + if (ret != 0) + goto Cleanup; + +- t = wait_for_completion_timeout(&request->wait_event, HZ); ++ t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto Cleanup; +@@ -543,7 +543,7 @@ static int rndis_filter_set_packet_filter(struct rndis_device *dev, + if (ret != 0) + goto Cleanup; + +- t = wait_for_completion_timeout(&request->wait_event, HZ); ++ t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + + if (t == 0) { + ret = -1; +@@ -600,7 +600,7 @@ static int rndis_filter_init_device(struct rndis_device *dev) + } + + +- t = wait_for_completion_timeout(&request->wait_event, HZ); ++ t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + + if (t == 0) { + ret = -ETIMEDOUT; +diff --git a/drivers/staging/hv/storvsc.c b/drivers/staging/hv/storvsc.c +index 06cd327..3029786 100644 +--- a/drivers/staging/hv/storvsc.c ++++ b/drivers/staging/hv/storvsc.c +@@ -135,7 +135,7 @@ static int storvsc_channel_init(struct hv_device *device) + if (ret != 0) + goto cleanup; + +- t = wait_for_completion_timeout(&request->wait_event, HZ); ++ t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; +@@ -163,7 +163,7 @@ static int storvsc_channel_init(struct hv_device *device) + if (ret != 0) + goto cleanup; + +- t = wait_for_completion_timeout(&request->wait_event, HZ); ++ t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; +@@ -192,7 +192,7 @@ static int storvsc_channel_init(struct hv_device *device) + if (ret != 0) + goto cleanup; + +- t = wait_for_completion_timeout(&request->wait_event, HZ); ++ t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; +@@ -222,7 +222,7 @@ static int storvsc_channel_init(struct hv_device *device) + if (ret != 0) + goto cleanup; + +- t = wait_for_completion_timeout(&request->wait_event, HZ); ++ t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; +diff --git a/drivers/staging/hv/storvsc_drv.c b/drivers/staging/hv/storvsc_drv.c +index 942cc5f..cb4a25b 100644 +--- a/drivers/staging/hv/storvsc_drv.c ++++ b/drivers/staging/hv/storvsc_drv.c +@@ -393,7 +393,7 @@ static int storvsc_host_reset(struct hv_device *device) + if (ret != 0) + goto cleanup; + +- t = wait_for_completion_timeout(&request->wait_event, HZ); ++ t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; +diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c +index 58d800f..cd98f89 100644 +--- a/drivers/staging/rtl8192e/r8192E_core.c ++++ b/drivers/staging/rtl8192e/r8192E_core.c +@@ -4532,6 +4532,7 @@ static int __devinit rtl8192_pci_probe(struct pci_dev *pdev, + u8 unit = 0; + int ret = -ENODEV; + unsigned long pmem_start, pmem_len, pmem_flags; ++ u8 revisionid; + + RT_TRACE(COMP_INIT,"Configuring chip resources\n"); + +@@ -4592,6 +4593,11 @@ static int __devinit rtl8192_pci_probe(struct pci_dev *pdev, + pci_write_config_byte(pdev, 0x41, 0x00); + + ++ pci_read_config_byte(pdev, 0x08, &revisionid); ++ /* If the revisionid is 0x10, the device uses rtl8192se. */ ++ if (pdev->device == 0x8192 && revisionid == 0x10) ++ goto fail1; ++ + pci_read_config_byte(pdev, 0x05, &unit); + pci_write_config_byte(pdev, 0x05, unit & (~0x04)); + +diff --git a/drivers/staging/usbip/vhci_hcd.c b/drivers/staging/usbip/vhci_hcd.c +index a76e8fa..76d7485 100644 +--- a/drivers/staging/usbip/vhci_hcd.c ++++ b/drivers/staging/usbip/vhci_hcd.c +@@ -846,9 +846,9 @@ static void vhci_shutdown_connection(struct usbip_device *ud) + } + + /* kill threads related to this sdev, if v.c. exists */ +- if (vdev->ud.tcp_rx) ++ if (vdev->ud.tcp_rx && !task_is_dead(vdev->ud.tcp_rx)) + kthread_stop(vdev->ud.tcp_rx); +- if (vdev->ud.tcp_tx) ++ if (vdev->ud.tcp_tx && !task_is_dead(vdev->ud.tcp_tx)) + kthread_stop(vdev->ud.tcp_tx); + + pr_info("stop threads\n"); +diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c +index e9cba13..aa84555 100644 +--- a/drivers/tty/hvc/hvc_console.c ++++ b/drivers/tty/hvc/hvc_console.c +@@ -163,8 +163,10 @@ static void hvc_console_print(struct console *co, const char *b, + } else { + r = cons_ops[index]->put_chars(vtermnos[index], c, i); + if (r <= 0) { +- /* throw away chars on error */ +- i = 0; ++ /* throw away characters on error ++ * but spin in case of -EAGAIN */ ++ if (r != -EAGAIN) ++ i = 0; + } else if (r > 0) { + i -= r; + if (i > 0) +@@ -448,7 +450,7 @@ static int hvc_push(struct hvc_struct *hp) + + n = hp->ops->put_chars(hp->vtermno, hp->outbuf, hp->n_outbuf); + if (n <= 0) { +- if (n == 0) { ++ if (n == 0 || n == -EAGAIN) { + hp->do_wakeup = 1; + return 0; + } +diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c +index 19b4ae0..c0d34ad 100644 +--- a/drivers/tty/n_gsm.c ++++ b/drivers/tty/n_gsm.c +@@ -1823,10 +1823,6 @@ static void gsm0_receive(struct gsm_mux *gsm, unsigned char c) + break; + case GSM_FCS: /* FCS follows the packet */ + gsm->received_fcs = c; +- if (c == GSM0_SOF) { +- gsm->state = GSM_SEARCH; +- break; +- } + gsm_queue(gsm); + gsm->state = GSM_SSOF; + break; +diff --git a/drivers/tty/serial/8250.c b/drivers/tty/serial/8250.c +index b4129f5..d32b5bb 100644 +--- a/drivers/tty/serial/8250.c ++++ b/drivers/tty/serial/8250.c +@@ -1107,7 +1107,7 @@ static void autoconfig_16550a(struct uart_8250_port *up) + */ + DEBUG_AUTOCONF("Xscale "); + up->port.type = PORT_XSCALE; +- up->capabilities |= UART_CAP_UUE; ++ up->capabilities |= UART_CAP_UUE | UART_CAP_RTOIE; + return; + } + } else { +diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig +index 636144c..b3692e6 100644 +--- a/drivers/tty/serial/Kconfig ++++ b/drivers/tty/serial/Kconfig +@@ -1419,7 +1419,7 @@ config SERIAL_SC26XX + + config SERIAL_SC26XX_CONSOLE + bool "Console on SC2681/SC2692 serial port" +- depends on SERIAL_SC26XX ++ depends on SERIAL_SC26XX=y + select SERIAL_CORE_CONSOLE + help + Support for Console on SC2681/SC2692 serial ports. +diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c +index f8030ee..9ff9abc 100644 +--- a/drivers/usb/host/ehci-hcd.c ++++ b/drivers/usb/host/ehci-hcd.c +@@ -94,7 +94,8 @@ static const char hcd_name [] = "ehci_hcd"; + #define EHCI_IAA_MSECS 10 /* arbitrary */ + #define EHCI_IO_JIFFIES (HZ/10) /* io watchdog > irq_thresh */ + #define EHCI_ASYNC_JIFFIES (HZ/20) /* async idle timeout */ +-#define EHCI_SHRINK_FRAMES 5 /* async qh unlink delay */ ++#define EHCI_SHRINK_JIFFIES (DIV_ROUND_UP(HZ, 200) + 1) ++ /* 200-ms async qh unlink delay */ + + /* Initial IRQ latency: faster than hw default */ + static int log2_irq_thresh = 0; // 0 to 6 +@@ -152,10 +153,7 @@ timer_action(struct ehci_hcd *ehci, enum ehci_timer_action action) + break; + /* case TIMER_ASYNC_SHRINK: */ + default: +- /* add a jiffie since we synch against the +- * 8 KHz uframe counter. +- */ +- t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1; ++ t = EHCI_SHRINK_JIFFIES; + break; + } + mod_timer(&ehci->watchdog, t + jiffies); +diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c +index ea6184b..88cfb8f 100644 +--- a/drivers/usb/host/ehci-hub.c ++++ b/drivers/usb/host/ehci-hub.c +@@ -891,10 +891,11 @@ static int ehci_hub_control ( + * power switching; they're allowed to just limit the + * current. khubd will turn the power back on. + */ +- if (HCS_PPC (ehci->hcs_params)){ ++ if ((temp & PORT_OC) && HCS_PPC(ehci->hcs_params)) { + ehci_writel(ehci, + temp & ~(PORT_RWC_BITS | PORT_POWER), + status_reg); ++ temp = ehci_readl(ehci, status_reg); + } + } + +diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c +index 5d6bc62..0917e3a 100644 +--- a/drivers/usb/host/ehci-q.c ++++ b/drivers/usb/host/ehci-q.c +@@ -103,7 +103,7 @@ qh_update (struct ehci_hcd *ehci, struct ehci_qh *qh, struct ehci_qtd *qtd) + if (!(hw->hw_info1 & cpu_to_hc32(ehci, 1 << 14))) { + unsigned is_out, epnum; + +- is_out = !(qtd->hw_token & cpu_to_hc32(ehci, 1 << 8)); ++ is_out = qh->is_out; + epnum = (hc32_to_cpup(ehci, &hw->hw_info1) >> 8) & 0x0f; + if (unlikely (!usb_gettoggle (qh->dev, epnum, is_out))) { + hw->hw_token &= ~cpu_to_hc32(ehci, QTD_TOGGLE); +@@ -946,6 +946,7 @@ done: + hw = qh->hw; + hw->hw_info1 = cpu_to_hc32(ehci, info1); + hw->hw_info2 = cpu_to_hc32(ehci, info2); ++ qh->is_out = !is_input; + usb_settoggle (urb->dev, usb_pipeendpoint (urb->pipe), !is_input, 1); + qh_refresh (ehci, qh); + return qh; +@@ -1231,6 +1232,8 @@ static void start_unlink_async (struct ehci_hcd *ehci, struct ehci_qh *qh) + + prev->hw->hw_next = qh->hw->hw_next; + prev->qh_next = qh->qh_next; ++ if (ehci->qh_scan_next == qh) ++ ehci->qh_scan_next = qh->qh_next.qh; + wmb (); + + /* If the controller isn't running, we don't have to wait for it */ +@@ -1256,53 +1259,49 @@ static void scan_async (struct ehci_hcd *ehci) + struct ehci_qh *qh; + enum ehci_timer_action action = TIMER_IO_WATCHDOG; + +- ehci->stamp = ehci_readl(ehci, &ehci->regs->frame_index); + timer_action_done (ehci, TIMER_ASYNC_SHRINK); +-rescan: + stopped = !HC_IS_RUNNING(ehci_to_hcd(ehci)->state); +- qh = ehci->async->qh_next.qh; +- if (likely (qh != NULL)) { +- do { +- /* clean any finished work for this qh */ +- if (!list_empty(&qh->qtd_list) && (stopped || +- qh->stamp != ehci->stamp)) { +- int temp; +- +- /* unlinks could happen here; completion +- * reporting drops the lock. rescan using +- * the latest schedule, but don't rescan +- * qhs we already finished (no looping) +- * unless the controller is stopped. +- */ +- qh = qh_get (qh); +- qh->stamp = ehci->stamp; +- temp = qh_completions (ehci, qh); +- if (qh->needs_rescan) +- unlink_async(ehci, qh); +- qh_put (qh); +- if (temp != 0) { +- goto rescan; +- } +- } + +- /* unlink idle entries, reducing DMA usage as well +- * as HCD schedule-scanning costs. delay for any qh +- * we just scanned, there's a not-unusual case that it +- * doesn't stay idle for long. +- * (plus, avoids some kind of re-activation race.) ++ ehci->qh_scan_next = ehci->async->qh_next.qh; ++ while (ehci->qh_scan_next) { ++ qh = ehci->qh_scan_next; ++ ehci->qh_scan_next = qh->qh_next.qh; ++ rescan: ++ /* clean any finished work for this qh */ ++ if (!list_empty(&qh->qtd_list)) { ++ int temp; ++ ++ /* ++ * Unlinks could happen here; completion reporting ++ * drops the lock. That's why ehci->qh_scan_next ++ * always holds the next qh to scan; if the next qh ++ * gets unlinked then ehci->qh_scan_next is adjusted ++ * in start_unlink_async(). + */ +- if (list_empty(&qh->qtd_list) +- && qh->qh_state == QH_STATE_LINKED) { +- if (!ehci->reclaim && (stopped || +- ((ehci->stamp - qh->stamp) & 0x1fff) +- >= EHCI_SHRINK_FRAMES * 8)) +- start_unlink_async(ehci, qh); +- else +- action = TIMER_ASYNC_SHRINK; +- } ++ qh = qh_get(qh); ++ temp = qh_completions(ehci, qh); ++ if (qh->needs_rescan) ++ unlink_async(ehci, qh); ++ qh->unlink_time = jiffies + EHCI_SHRINK_JIFFIES; ++ qh_put(qh); ++ if (temp != 0) ++ goto rescan; ++ } + +- qh = qh->qh_next.qh; +- } while (qh); ++ /* unlink idle entries, reducing DMA usage as well ++ * as HCD schedule-scanning costs. delay for any qh ++ * we just scanned, there's a not-unusual case that it ++ * doesn't stay idle for long. ++ * (plus, avoids some kind of re-activation race.) ++ */ ++ if (list_empty(&qh->qtd_list) ++ && qh->qh_state == QH_STATE_LINKED) { ++ if (!ehci->reclaim && (stopped || ++ time_after_eq(jiffies, qh->unlink_time))) ++ start_unlink_async(ehci, qh); ++ else ++ action = TIMER_ASYNC_SHRINK; ++ } + } + if (action == TIMER_ASYNC_SHRINK) + timer_action (ehci, TIMER_ASYNC_SHRINK); +diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h +index bd6ff48..989e0a8 100644 +--- a/drivers/usb/host/ehci.h ++++ b/drivers/usb/host/ehci.h +@@ -75,6 +75,7 @@ struct ehci_hcd { /* one per controller */ + struct ehci_qh *async; + struct ehci_qh *dummy; /* For AMD quirk use */ + struct ehci_qh *reclaim; ++ struct ehci_qh *qh_scan_next; + unsigned scanning : 1; + + /* periodic schedule support */ +@@ -117,7 +118,6 @@ struct ehci_hcd { /* one per controller */ + struct timer_list iaa_watchdog; + struct timer_list watchdog; + unsigned long actions; +- unsigned stamp; + unsigned periodic_stamp; + unsigned random_frame; + unsigned long next_statechange; +@@ -343,6 +343,7 @@ struct ehci_qh { + struct ehci_qh *reclaim; /* next to reclaim */ + + struct ehci_hcd *ehci; ++ unsigned long unlink_time; + + /* + * Do NOT use atomic operations for QH refcounting. On some CPUs +@@ -374,6 +375,7 @@ struct ehci_qh { + #define NO_FRAME ((unsigned short)~0) /* pick new start */ + + struct usb_device *dev; /* access to TT */ ++ unsigned is_out:1; /* bulk or intr OUT */ + unsigned clearing_tt:1; /* Clear-TT-Buf in progress */ + }; + +diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c +index fd93061..04b90ad 100644 +--- a/drivers/usb/host/pci-quirks.c ++++ b/drivers/usb/host/pci-quirks.c +@@ -35,6 +35,8 @@ + #define OHCI_INTRSTATUS 0x0c + #define OHCI_INTRENABLE 0x10 + #define OHCI_INTRDISABLE 0x14 ++#define OHCI_FMINTERVAL 0x34 ++#define OHCI_HCR (1 << 0) /* host controller reset */ + #define OHCI_OCR (1 << 3) /* ownership change request */ + #define OHCI_CTRL_RWC (1 << 9) /* remote wakeup connected */ + #define OHCI_CTRL_IR (1 << 8) /* interrupt routing */ +@@ -497,6 +499,32 @@ static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev) + + /* reset controller, preserving RWC (and possibly IR) */ + writel(control & OHCI_CTRL_MASK, base + OHCI_CONTROL); ++ readl(base + OHCI_CONTROL); ++ ++ /* Some NVIDIA controllers stop working if kept in RESET for too long */ ++ if (pdev->vendor == PCI_VENDOR_ID_NVIDIA) { ++ u32 fminterval; ++ int cnt; ++ ++ /* drive reset for at least 50 ms (7.1.7.5) */ ++ msleep(50); ++ ++ /* software reset of the controller, preserving HcFmInterval */ ++ fminterval = readl(base + OHCI_FMINTERVAL); ++ writel(OHCI_HCR, base + OHCI_CMDSTATUS); ++ ++ /* reset requires max 10 us delay */ ++ for (cnt = 30; cnt > 0; --cnt) { /* ... allow extra time */ ++ if ((readl(base + OHCI_CMDSTATUS) & OHCI_HCR) == 0) ++ break; ++ udelay(1); ++ } ++ writel(fminterval, base + OHCI_FMINTERVAL); ++ ++ /* Now we're in the SUSPEND state with all devices reset ++ * and wakeups and interrupts disabled ++ */ ++ } + + /* + * disable interrupts +diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c +index c71b037..dce7182 100644 +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -2329,6 +2329,7 @@ static void musb_restore_context(struct musb *musb) + musb->context.index_regs[i].rxhubport); + } + } ++ musb_writeb(musb_base, MUSB_INDEX, musb->context.index); + } + + static int musb_suspend(struct device *dev) +diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c +index 30461fc..0c20831 100644 +--- a/drivers/usb/serial/pl2303.c ++++ b/drivers/usb/serial/pl2303.c +@@ -91,6 +91,7 @@ static const struct usb_device_id id_table[] = { + { USB_DEVICE(SONY_VENDOR_ID, SONY_QN3USB_PRODUCT_ID) }, + { USB_DEVICE(SANWA_VENDOR_ID, SANWA_PRODUCT_ID) }, + { USB_DEVICE(ADLINK_VENDOR_ID, ADLINK_ND6530_PRODUCT_ID) }, ++ { USB_DEVICE(WINCHIPHEAD_VENDOR_ID, WINCHIPHEAD_USBSER_PRODUCT_ID) }, + { } /* Terminating entry */ + }; + +diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h +index 1b025f7..ca0d237 100644 +--- a/drivers/usb/serial/pl2303.h ++++ b/drivers/usb/serial/pl2303.h +@@ -144,3 +144,7 @@ + /* ADLINK ND-6530 RS232,RS485 and RS422 adapter */ + #define ADLINK_VENDOR_ID 0x0b63 + #define ADLINK_ND6530_PRODUCT_ID 0x6530 ++ ++/* WinChipHead USB->RS 232 adapter */ ++#define WINCHIPHEAD_VENDOR_ID 0x4348 ++#define WINCHIPHEAD_USBSER_PRODUCT_ID 0x5523 +diff --git a/drivers/watchdog/shwdt.c b/drivers/watchdog/shwdt.c +index db84f23..a267dc0 100644 +--- a/drivers/watchdog/shwdt.c ++++ b/drivers/watchdog/shwdt.c +@@ -64,7 +64,7 @@ + * misses its deadline, the kernel timer will allow the WDT to overflow. + */ + static int clock_division_ratio = WTCSR_CKS_4096; +-#define next_ping_period(cks) msecs_to_jiffies(cks - 4) ++#define next_ping_period(cks) (jiffies + msecs_to_jiffies(cks - 4)) + + static const struct watchdog_info sh_wdt_info; + static struct platform_device *sh_wdt_dev; +diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c +index fa8c21d..d8d26f3 100644 +--- a/fs/cifs/dir.c ++++ b/fs/cifs/dir.c +@@ -641,7 +641,7 @@ lookup_out: + static int + cifs_d_revalidate(struct dentry *direntry, struct nameidata *nd) + { +- if (nd->flags & LOOKUP_RCU) ++ if (nd && (nd->flags & LOOKUP_RCU)) + return -ECHILD; + + if (direntry->d_inode) { +diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c +index 7349ade..4a4fad7 100644 +--- a/fs/ecryptfs/inode.c ++++ b/fs/ecryptfs/inode.c +@@ -69,6 +69,7 @@ static int ecryptfs_inode_set(struct inode *inode, void *opaque) + inode->i_ino = lower_inode->i_ino; + inode->i_version++; + inode->i_mapping->a_ops = &ecryptfs_aops; ++ inode->i_mapping->backing_dev_info = inode->i_sb->s_bdi; + + if (S_ISLNK(inode->i_mode)) + inode->i_op = &ecryptfs_symlink_iops; +diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c +index 27a7fef..89dc18e 100644 +--- a/fs/ecryptfs/keystore.c ++++ b/fs/ecryptfs/keystore.c +@@ -1868,11 +1868,6 @@ int ecryptfs_parse_packet_set(struct ecryptfs_crypt_stat *crypt_stat, + * just one will be sufficient to decrypt to get the FEK. */ + find_next_matching_auth_tok: + found_auth_tok = 0; +- if (auth_tok_key) { +- up_write(&(auth_tok_key->sem)); +- key_put(auth_tok_key); +- auth_tok_key = NULL; +- } + list_for_each_entry(auth_tok_list_item, &auth_tok_list, list) { + candidate_auth_tok = &auth_tok_list_item->auth_tok; + if (unlikely(ecryptfs_verbosity > 0)) { +@@ -1909,14 +1904,22 @@ found_matching_auth_tok: + memcpy(&(candidate_auth_tok->token.private_key), + &(matching_auth_tok->token.private_key), + sizeof(struct ecryptfs_private_key)); ++ up_write(&(auth_tok_key->sem)); ++ key_put(auth_tok_key); + rc = decrypt_pki_encrypted_session_key(candidate_auth_tok, + crypt_stat); + } else if (candidate_auth_tok->token_type == ECRYPTFS_PASSWORD) { + memcpy(&(candidate_auth_tok->token.password), + &(matching_auth_tok->token.password), + sizeof(struct ecryptfs_password)); ++ up_write(&(auth_tok_key->sem)); ++ key_put(auth_tok_key); + rc = decrypt_passphrase_encrypted_session_key( + candidate_auth_tok, crypt_stat); ++ } else { ++ up_write(&(auth_tok_key->sem)); ++ key_put(auth_tok_key); ++ rc = -EINVAL; + } + if (rc) { + struct ecryptfs_auth_tok_list_item *auth_tok_list_item_tmp; +@@ -1956,15 +1959,12 @@ found_matching_auth_tok: + out_wipe_list: + wipe_auth_tok_list(&auth_tok_list); + out: +- if (auth_tok_key) { +- up_write(&(auth_tok_key->sem)); +- key_put(auth_tok_key); +- } + return rc; + } + + static int +-pki_encrypt_session_key(struct ecryptfs_auth_tok *auth_tok, ++pki_encrypt_session_key(struct key *auth_tok_key, ++ struct ecryptfs_auth_tok *auth_tok, + struct ecryptfs_crypt_stat *crypt_stat, + struct ecryptfs_key_record *key_rec) + { +@@ -1979,6 +1979,8 @@ pki_encrypt_session_key(struct ecryptfs_auth_tok *auth_tok, + crypt_stat->cipher, + crypt_stat->key_size), + crypt_stat, &payload, &payload_len); ++ up_write(&(auth_tok_key->sem)); ++ key_put(auth_tok_key); + if (rc) { + ecryptfs_printk(KERN_ERR, "Error generating tag 66 packet\n"); + goto out; +@@ -2008,6 +2010,8 @@ out: + * write_tag_1_packet - Write an RFC2440-compatible tag 1 (public key) packet + * @dest: Buffer into which to write the packet + * @remaining_bytes: Maximum number of bytes that can be writtn ++ * @auth_tok_key: The authentication token key to unlock and put when done with ++ * @auth_tok + * @auth_tok: The authentication token used for generating the tag 1 packet + * @crypt_stat: The cryptographic context + * @key_rec: The key record struct for the tag 1 packet +@@ -2018,7 +2022,7 @@ out: + */ + static int + write_tag_1_packet(char *dest, size_t *remaining_bytes, +- struct ecryptfs_auth_tok *auth_tok, ++ struct key *auth_tok_key, struct ecryptfs_auth_tok *auth_tok, + struct ecryptfs_crypt_stat *crypt_stat, + struct ecryptfs_key_record *key_rec, size_t *packet_size) + { +@@ -2039,12 +2043,15 @@ write_tag_1_packet(char *dest, size_t *remaining_bytes, + memcpy(key_rec->enc_key, + auth_tok->session_key.encrypted_key, + auth_tok->session_key.encrypted_key_size); ++ up_write(&(auth_tok_key->sem)); ++ key_put(auth_tok_key); + goto encrypted_session_key_set; + } + if (auth_tok->session_key.encrypted_key_size == 0) + auth_tok->session_key.encrypted_key_size = + auth_tok->token.private_key.key_size; +- rc = pki_encrypt_session_key(auth_tok, crypt_stat, key_rec); ++ rc = pki_encrypt_session_key(auth_tok_key, auth_tok, crypt_stat, ++ key_rec); + if (rc) { + printk(KERN_ERR "Failed to encrypt session key via a key " + "module; rc = [%d]\n", rc); +@@ -2421,6 +2428,8 @@ ecryptfs_generate_key_packet_set(char *dest_base, + &max, auth_tok, + crypt_stat, key_rec, + &written); ++ up_write(&(auth_tok_key->sem)); ++ key_put(auth_tok_key); + if (rc) { + ecryptfs_printk(KERN_WARNING, "Error " + "writing tag 3 packet\n"); +@@ -2438,8 +2447,8 @@ ecryptfs_generate_key_packet_set(char *dest_base, + } + (*len) += written; + } else if (auth_tok->token_type == ECRYPTFS_PRIVATE_KEY) { +- rc = write_tag_1_packet(dest_base + (*len), +- &max, auth_tok, ++ rc = write_tag_1_packet(dest_base + (*len), &max, ++ auth_tok_key, auth_tok, + crypt_stat, key_rec, &written); + if (rc) { + ecryptfs_printk(KERN_WARNING, "Error " +@@ -2448,14 +2457,13 @@ ecryptfs_generate_key_packet_set(char *dest_base, + } + (*len) += written; + } else { ++ up_write(&(auth_tok_key->sem)); ++ key_put(auth_tok_key); + ecryptfs_printk(KERN_WARNING, "Unsupported " + "authentication token type\n"); + rc = -EINVAL; + goto out_free; + } +- up_write(&(auth_tok_key->sem)); +- key_put(auth_tok_key); +- auth_tok_key = NULL; + } + if (likely(max > 0)) { + dest_base[(*len)] = 0x00; +@@ -2468,11 +2476,6 @@ out_free: + out: + if (rc) + (*len) = 0; +- if (auth_tok_key) { +- up_write(&(auth_tok_key->sem)); +- key_put(auth_tok_key); +- } +- + mutex_unlock(&crypt_stat->keysig_list_mutex); + return rc; + } +diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c +index 32e6cc2..d565759 100644 +--- a/fs/ext3/xattr.c ++++ b/fs/ext3/xattr.c +@@ -803,8 +803,16 @@ inserted: + /* We need to allocate a new block */ + ext3_fsblk_t goal = ext3_group_first_block_no(sb, + EXT3_I(inode)->i_block_group); +- ext3_fsblk_t block = ext3_new_block(handle, inode, +- goal, &error); ++ ext3_fsblk_t block; ++ ++ /* ++ * Protect us agaist concurrent allocations to the ++ * same inode from ext3_..._writepage(). Reservation ++ * code does not expect racing allocations. ++ */ ++ mutex_lock(&EXT3_I(inode)->truncate_mutex); ++ block = ext3_new_block(handle, inode, goal, &error); ++ mutex_unlock(&EXT3_I(inode)->truncate_mutex); + if (error) + goto cleanup; + ea_idebug(inode, "creating block %d", block); +diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h +index 1921392..354619a 100644 +--- a/fs/ext4/ext4.h ++++ b/fs/ext4/ext4.h +@@ -526,6 +526,7 @@ struct ext4_new_group_data { + #define EXT4_FREE_BLOCKS_METADATA 0x0001 + #define EXT4_FREE_BLOCKS_FORGET 0x0002 + #define EXT4_FREE_BLOCKS_VALIDATED 0x0004 ++#define EXT4_FREE_BLOCKS_NO_QUOT_UPDATE 0x0008 + + /* + * ioctl commands +diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c +index f815cc8..f3aacb3 100644 +--- a/fs/ext4/extents.c ++++ b/fs/ext4/extents.c +@@ -3596,17 +3596,18 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode, + } + + err = check_eofblocks_fl(handle, inode, map->m_lblk, path, ar.len); +- if (err) +- goto out2; +- +- err = ext4_ext_insert_extent(handle, inode, path, &newex, flags); ++ if (!err) ++ err = ext4_ext_insert_extent(handle, inode, path, ++ &newex, flags); + if (err) { ++ int fb_flags = flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE ? ++ EXT4_FREE_BLOCKS_NO_QUOT_UPDATE : 0; + /* free data blocks we just allocated */ + /* not a good idea to call discard here directly, + * but otherwise we'd need to call it every free() */ + ext4_discard_preallocations(inode); + ext4_free_blocks(handle, inode, NULL, ext4_ext_pblock(&newex), +- ext4_ext_get_actual_len(&newex), 0); ++ ext4_ext_get_actual_len(&newex), fb_flags); + goto out2; + } + +diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c +index 6ed859d..0f1be7f 100644 +--- a/fs/ext4/mballoc.c ++++ b/fs/ext4/mballoc.c +@@ -4637,7 +4637,7 @@ do_more: + } + ext4_mark_super_dirty(sb); + error_return: +- if (freed) ++ if (freed && !(flags & EXT4_FREE_BLOCKS_NO_QUOT_UPDATE)) + dquot_free_block(inode, freed); + brelse(bitmap_bh); + ext4_std_error(sb, err); +diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c +index 2a77071..fa780e6 100644 +--- a/fs/gfs2/ops_fstype.c ++++ b/fs/gfs2/ops_fstype.c +@@ -1018,13 +1018,13 @@ hostdata_error: + fsname++; + if (lm->lm_mount == NULL) { + fs_info(sdp, "Now mounting FS...\n"); +- complete(&sdp->sd_locking_init); ++ complete_all(&sdp->sd_locking_init); + return 0; + } + ret = lm->lm_mount(sdp, fsname); + if (ret == 0) + fs_info(sdp, "Joined cluster. Now mounting FS...\n"); +- complete(&sdp->sd_locking_init); ++ complete_all(&sdp->sd_locking_init); + return ret; + } + +diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c +index dd25c2a..321a66b 100644 +--- a/fs/nfs/delegation.c ++++ b/fs/nfs/delegation.c +@@ -398,12 +398,11 @@ int nfs_inode_return_delegation(struct inode *inode) + return err; + } + +-static void nfs_mark_return_delegation(struct nfs_delegation *delegation) ++static void nfs_mark_return_delegation(struct nfs_server *server, ++ struct nfs_delegation *delegation) + { +- struct nfs_client *clp = NFS_SERVER(delegation->inode)->nfs_client; +- + set_bit(NFS_DELEGATION_RETURN, &delegation->flags); +- set_bit(NFS4CLNT_DELEGRETURN, &clp->cl_state); ++ set_bit(NFS4CLNT_DELEGRETURN, &server->nfs_client->cl_state); + } + + /** +@@ -441,7 +440,7 @@ static void nfs_mark_return_all_delegation_types(struct nfs_server *server, + if ((delegation->type == (FMODE_READ|FMODE_WRITE)) && !(flags & FMODE_WRITE)) + continue; + if (delegation->type & flags) +- nfs_mark_return_delegation(delegation); ++ nfs_mark_return_delegation(server, delegation); + } + } + +@@ -508,7 +507,7 @@ static void nfs_mark_return_unreferenced_delegations(struct nfs_server *server) + list_for_each_entry_rcu(delegation, &server->delegations, super_list) { + if (test_and_clear_bit(NFS_DELEGATION_REFERENCED, &delegation->flags)) + continue; +- nfs_mark_return_delegation(delegation); ++ nfs_mark_return_delegation(server, delegation); + } + } + +@@ -539,7 +538,8 @@ void nfs_expire_unreferenced_delegations(struct nfs_client *clp) + int nfs_async_inode_return_delegation(struct inode *inode, + const nfs4_stateid *stateid) + { +- struct nfs_client *clp = NFS_SERVER(inode)->nfs_client; ++ struct nfs_server *server = NFS_SERVER(inode); ++ struct nfs_client *clp = server->nfs_client; + struct nfs_delegation *delegation; + + rcu_read_lock(); +@@ -549,7 +549,7 @@ int nfs_async_inode_return_delegation(struct inode *inode, + rcu_read_unlock(); + return -ENOENT; + } +- nfs_mark_return_delegation(delegation); ++ nfs_mark_return_delegation(server, delegation); + rcu_read_unlock(); + + nfs_delegation_run_state_manager(clp); +diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c +index ededdbd..f91c62d 100644 +--- a/fs/nfs/dir.c ++++ b/fs/nfs/dir.c +@@ -134,18 +134,19 @@ const struct inode_operations nfs4_dir_inode_operations = { + + #endif /* CONFIG_NFS_V4 */ + +-static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct rpc_cred *cred) ++static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct inode *dir, struct rpc_cred *cred) + { + struct nfs_open_dir_context *ctx; + ctx = kmalloc(sizeof(*ctx), GFP_KERNEL); + if (ctx != NULL) { + ctx->duped = 0; ++ ctx->attr_gencount = NFS_I(dir)->attr_gencount; + ctx->dir_cookie = 0; + ctx->dup_cookie = 0; + ctx->cred = get_rpccred(cred); +- } else +- ctx = ERR_PTR(-ENOMEM); +- return ctx; ++ return ctx; ++ } ++ return ERR_PTR(-ENOMEM); + } + + static void put_nfs_open_dir_context(struct nfs_open_dir_context *ctx) +@@ -173,7 +174,7 @@ nfs_opendir(struct inode *inode, struct file *filp) + cred = rpc_lookup_cred(); + if (IS_ERR(cred)) + return PTR_ERR(cred); +- ctx = alloc_nfs_open_dir_context(cred); ++ ctx = alloc_nfs_open_dir_context(inode, cred); + if (IS_ERR(ctx)) { + res = PTR_ERR(ctx); + goto out; +@@ -323,7 +324,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *array, nfs_readdir_descri + { + loff_t diff = desc->file->f_pos - desc->current_index; + unsigned int index; +- struct nfs_open_dir_context *ctx = desc->file->private_data; + + if (diff < 0) + goto out_eof; +@@ -336,7 +336,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *array, nfs_readdir_descri + index = (unsigned int)diff; + *desc->dir_cookie = array->array[index].cookie; + desc->cache_entry_index = index; +- ctx->duped = 0; + return 0; + out_eof: + desc->eof = 1; +@@ -349,14 +348,33 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_array *array, nfs_readdir_des + int i; + loff_t new_pos; + int status = -EAGAIN; +- struct nfs_open_dir_context *ctx = desc->file->private_data; + + for (i = 0; i < array->size; i++) { + if (array->array[i].cookie == *desc->dir_cookie) { ++ struct nfs_inode *nfsi = NFS_I(desc->file->f_path.dentry->d_inode); ++ struct nfs_open_dir_context *ctx = desc->file->private_data; ++ + new_pos = desc->current_index + i; +- if (new_pos < desc->file->f_pos) { ++ if (ctx->attr_gencount != nfsi->attr_gencount ++ || (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA))) { ++ ctx->duped = 0; ++ ctx->attr_gencount = nfsi->attr_gencount; ++ } else if (new_pos < desc->file->f_pos) { ++ if (ctx->duped > 0 ++ && ctx->dup_cookie == *desc->dir_cookie) { ++ if (printk_ratelimit()) { ++ pr_notice("NFS: directory %s/%s contains a readdir loop." ++ "Please contact your server vendor. " ++ "Offending cookie: %llu\n", ++ desc->file->f_dentry->d_parent->d_name.name, ++ desc->file->f_dentry->d_name.name, ++ *desc->dir_cookie); ++ } ++ status = -ELOOP; ++ goto out; ++ } + ctx->dup_cookie = *desc->dir_cookie; +- ctx->duped = 1; ++ ctx->duped = -1; + } + desc->file->f_pos = new_pos; + desc->cache_entry_index = i; +@@ -368,6 +386,7 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_array *array, nfs_readdir_des + if (*desc->dir_cookie == array->last_cookie) + desc->eof = 1; + } ++out: + return status; + } + +@@ -740,19 +759,6 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, void *dirent, + struct nfs_cache_array *array = NULL; + struct nfs_open_dir_context *ctx = file->private_data; + +- if (ctx->duped != 0 && ctx->dup_cookie == *desc->dir_cookie) { +- if (printk_ratelimit()) { +- pr_notice("NFS: directory %s/%s contains a readdir loop. " +- "Please contact your server vendor. " +- "Offending cookie: %llu\n", +- file->f_dentry->d_parent->d_name.name, +- file->f_dentry->d_name.name, +- *desc->dir_cookie); +- } +- res = -ELOOP; +- goto out; +- } +- + array = nfs_readdir_get_array(desc->page); + if (IS_ERR(array)) { + res = PTR_ERR(array); +@@ -774,6 +780,8 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, void *dirent, + *desc->dir_cookie = array->array[i+1].cookie; + else + *desc->dir_cookie = array->last_cookie; ++ if (ctx->duped != 0) ++ ctx->duped = 1; + } + if (array->eof_index >= 0) + desc->eof = 1; +@@ -805,6 +813,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, void *dirent, + struct page *page = NULL; + int status; + struct inode *inode = desc->file->f_path.dentry->d_inode; ++ struct nfs_open_dir_context *ctx = desc->file->private_data; + + dfprintk(DIRCACHE, "NFS: uncached_readdir() searching for cookie %Lu\n", + (unsigned long long)*desc->dir_cookie); +@@ -818,6 +827,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, void *dirent, + desc->page_index = 0; + desc->last_cookie = *desc->dir_cookie; + desc->page = page; ++ ctx->duped = 0; + + status = nfs_readdir_xdr_to_array(desc, page, inode); + if (status < 0) +diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c +index f9d03ab..614c4d2 100644 +--- a/fs/nfs/nfs4filelayout.c ++++ b/fs/nfs/nfs4filelayout.c +@@ -170,7 +170,7 @@ filelayout_set_layoutcommit(struct nfs_write_data *wdata) + + pnfs_set_layoutcommit(wdata); + dprintk("%s ionde %lu pls_end_pos %lu\n", __func__, wdata->inode->i_ino, +- (unsigned long) wdata->lseg->pls_end_pos); ++ (unsigned long) NFS_I(wdata->inode)->layout->plh_lwb); + } + + /* +diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c +index 5879b23..92cfd2e 100644 +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -5850,9 +5850,15 @@ nfs4_layoutcommit_done(struct rpc_task *task, void *calldata) + static void nfs4_layoutcommit_release(void *calldata) + { + struct nfs4_layoutcommit_data *data = calldata; ++ struct pnfs_layout_segment *lseg, *tmp; + + /* Matched by references in pnfs_set_layoutcommit */ +- put_lseg(data->lseg); ++ list_for_each_entry_safe(lseg, tmp, &data->lseg_list, pls_lc_list) { ++ list_del_init(&lseg->pls_lc_list); ++ if (test_and_clear_bit(NFS_LSEG_LAYOUTCOMMIT, ++ &lseg->pls_flags)) ++ put_lseg(lseg); ++ } + put_rpccred(data->cred); + kfree(data); + } +diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c +index e6e8f3b..fc97fd5 100644 +--- a/fs/nfs/nfs4xdr.c ++++ b/fs/nfs/nfs4xdr.c +@@ -1888,7 +1888,7 @@ encode_layoutcommit(struct xdr_stream *xdr, + *p++ = cpu_to_be32(OP_LAYOUTCOMMIT); + /* Only whole file layouts */ + p = xdr_encode_hyper(p, 0); /* offset */ +- p = xdr_encode_hyper(p, NFS4_MAX_UINT64); /* length */ ++ p = xdr_encode_hyper(p, args->lastbytewritten + 1); /* length */ + *p++ = cpu_to_be32(0); /* reclaim */ + p = xdr_encode_opaque_fixed(p, args->stateid.data, NFS4_STATEID_SIZE); + *p++ = cpu_to_be32(1); /* newoffset = TRUE */ +diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c +index 29c0ca7..a726c0a 100644 +--- a/fs/nfs/pnfs.c ++++ b/fs/nfs/pnfs.c +@@ -189,6 +189,7 @@ static void + pnfs_free_layout_hdr(struct pnfs_layout_hdr *lo) + { + struct pnfs_layoutdriver_type *ld = NFS_SERVER(lo->plh_inode)->pnfs_curr_ld; ++ put_rpccred(lo->plh_lc_cred); + return ld->alloc_layout_hdr ? ld->free_layout_hdr(lo) : kfree(lo); + } + +@@ -223,6 +224,7 @@ static void + init_lseg(struct pnfs_layout_hdr *lo, struct pnfs_layout_segment *lseg) + { + INIT_LIST_HEAD(&lseg->pls_list); ++ INIT_LIST_HEAD(&lseg->pls_lc_list); + atomic_set(&lseg->pls_refcount, 1); + smp_mb(); + set_bit(NFS_LSEG_VALID, &lseg->pls_flags); +@@ -805,7 +807,9 @@ out: + } + + static struct pnfs_layout_hdr * +-alloc_init_layout_hdr(struct inode *ino, gfp_t gfp_flags) ++alloc_init_layout_hdr(struct inode *ino, ++ struct nfs_open_context *ctx, ++ gfp_t gfp_flags) + { + struct pnfs_layout_hdr *lo; + +@@ -817,11 +821,14 @@ alloc_init_layout_hdr(struct inode *ino, gfp_t gfp_flags) + INIT_LIST_HEAD(&lo->plh_segs); + INIT_LIST_HEAD(&lo->plh_bulk_recall); + lo->plh_inode = ino; ++ lo->plh_lc_cred = get_rpccred(ctx->state->owner->so_cred); + return lo; + } + + static struct pnfs_layout_hdr * +-pnfs_find_alloc_layout(struct inode *ino, gfp_t gfp_flags) ++pnfs_find_alloc_layout(struct inode *ino, ++ struct nfs_open_context *ctx, ++ gfp_t gfp_flags) + { + struct nfs_inode *nfsi = NFS_I(ino); + struct pnfs_layout_hdr *new = NULL; +@@ -836,7 +843,7 @@ pnfs_find_alloc_layout(struct inode *ino, gfp_t gfp_flags) + return nfsi->layout; + } + spin_unlock(&ino->i_lock); +- new = alloc_init_layout_hdr(ino, gfp_flags); ++ new = alloc_init_layout_hdr(ino, ctx, gfp_flags); + spin_lock(&ino->i_lock); + + if (likely(nfsi->layout == NULL)) /* Won the race? */ +@@ -928,7 +935,7 @@ pnfs_update_layout(struct inode *ino, + if (!pnfs_enabled_sb(NFS_SERVER(ino))) + return NULL; + spin_lock(&ino->i_lock); +- lo = pnfs_find_alloc_layout(ino, gfp_flags); ++ lo = pnfs_find_alloc_layout(ino, ctx, gfp_flags); + if (lo == NULL) { + dprintk("%s ERROR: can't get pnfs_layout_hdr\n", __func__); + goto out_unlock; +@@ -1195,16 +1202,17 @@ pnfs_try_to_read_data(struct nfs_read_data *rdata, + } + + /* +- * Currently there is only one (whole file) write lseg. ++ * There can be multiple RW segments. + */ +-static struct pnfs_layout_segment *pnfs_list_write_lseg(struct inode *inode) ++static void pnfs_list_write_lseg(struct inode *inode, struct list_head *listp) + { +- struct pnfs_layout_segment *lseg, *rv = NULL; ++ struct pnfs_layout_segment *lseg; + +- list_for_each_entry(lseg, &NFS_I(inode)->layout->plh_segs, pls_list) +- if (lseg->pls_range.iomode == IOMODE_RW) +- rv = lseg; +- return rv; ++ list_for_each_entry(lseg, &NFS_I(inode)->layout->plh_segs, pls_list) { ++ if (lseg->pls_range.iomode == IOMODE_RW && ++ test_bit(NFS_LSEG_LAYOUTCOMMIT, &lseg->pls_flags)) ++ list_add(&lseg->pls_lc_list, listp); ++ } + } + + void +@@ -1216,17 +1224,19 @@ pnfs_set_layoutcommit(struct nfs_write_data *wdata) + + spin_lock(&nfsi->vfs_inode.i_lock); + if (!test_and_set_bit(NFS_INO_LAYOUTCOMMIT, &nfsi->flags)) { +- /* references matched in nfs4_layoutcommit_release */ +- get_lseg(wdata->lseg); +- wdata->lseg->pls_lc_cred = +- get_rpccred(wdata->args.context->state->owner->so_cred); + mark_as_dirty = true; + dprintk("%s: Set layoutcommit for inode %lu ", + __func__, wdata->inode->i_ino); + } +- if (end_pos > wdata->lseg->pls_end_pos) +- wdata->lseg->pls_end_pos = end_pos; ++ if (!test_and_set_bit(NFS_LSEG_LAYOUTCOMMIT, &wdata->lseg->pls_flags)) { ++ /* references matched in nfs4_layoutcommit_release */ ++ get_lseg(wdata->lseg); ++ } ++ if (end_pos > nfsi->layout->plh_lwb) ++ nfsi->layout->plh_lwb = end_pos; + spin_unlock(&nfsi->vfs_inode.i_lock); ++ dprintk("%s: lseg %p end_pos %llu\n", ++ __func__, wdata->lseg, nfsi->layout->plh_lwb); + + /* if pnfs_layoutcommit_inode() runs between inode locks, the next one + * will be a noop because NFS_INO_LAYOUTCOMMIT will not be set */ +@@ -1248,8 +1258,6 @@ pnfs_layoutcommit_inode(struct inode *inode, bool sync) + { + struct nfs4_layoutcommit_data *data; + struct nfs_inode *nfsi = NFS_I(inode); +- struct pnfs_layout_segment *lseg; +- struct rpc_cred *cred; + loff_t end_pos; + int status = 0; + +@@ -1266,30 +1274,25 @@ pnfs_layoutcommit_inode(struct inode *inode, bool sync) + goto out; + } + ++ INIT_LIST_HEAD(&data->lseg_list); + spin_lock(&inode->i_lock); + if (!test_and_clear_bit(NFS_INO_LAYOUTCOMMIT, &nfsi->flags)) { + spin_unlock(&inode->i_lock); + kfree(data); + goto out; + } +- /* +- * Currently only one (whole file) write lseg which is referenced +- * in pnfs_set_layoutcommit and will be found. +- */ +- lseg = pnfs_list_write_lseg(inode); + +- end_pos = lseg->pls_end_pos; +- cred = lseg->pls_lc_cred; +- lseg->pls_end_pos = 0; +- lseg->pls_lc_cred = NULL; ++ pnfs_list_write_lseg(inode, &data->lseg_list); ++ ++ end_pos = nfsi->layout->plh_lwb; ++ nfsi->layout->plh_lwb = 0; + + memcpy(&data->args.stateid.data, nfsi->layout->plh_stateid.data, + sizeof(nfsi->layout->plh_stateid.data)); + spin_unlock(&inode->i_lock); + + data->args.inode = inode; +- data->lseg = lseg; +- data->cred = cred; ++ data->cred = get_rpccred(nfsi->layout->plh_lc_cred); + nfs_fattr_init(&data->fattr); + data->args.bitmask = NFS_SERVER(inode)->cache_consistency_bitmask; + data->res.fattr = &data->fattr; +diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h +index 96bf4e6..9d147d9 100644 +--- a/fs/nfs/pnfs.h ++++ b/fs/nfs/pnfs.h +@@ -36,16 +36,16 @@ + enum { + NFS_LSEG_VALID = 0, /* cleared when lseg is recalled/returned */ + NFS_LSEG_ROC, /* roc bit received from server */ ++ NFS_LSEG_LAYOUTCOMMIT, /* layoutcommit bit set for layoutcommit */ + }; + + struct pnfs_layout_segment { + struct list_head pls_list; ++ struct list_head pls_lc_list; + struct pnfs_layout_range pls_range; + atomic_t pls_refcount; + unsigned long pls_flags; + struct pnfs_layout_hdr *pls_layout; +- struct rpc_cred *pls_lc_cred; /* LAYOUTCOMMIT credential */ +- loff_t pls_end_pos; /* LAYOUTCOMMIT write end */ + }; + + enum pnfs_try_status { +@@ -124,6 +124,8 @@ struct pnfs_layout_hdr { + unsigned long plh_block_lgets; /* block LAYOUTGET if >0 */ + u32 plh_barrier; /* ignore lower seqids */ + unsigned long plh_flags; ++ loff_t plh_lwb; /* last write byte for layoutcommit */ ++ struct rpc_cred *plh_lc_cred; /* layoutcommit cred */ + struct inode *plh_inode; + }; + +diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c +index e98f3c2..3b8ad35 100644 +--- a/fs/nfsd/nfs4state.c ++++ b/fs/nfsd/nfs4state.c +@@ -381,14 +381,6 @@ static int nfs4_access_to_omode(u32 access) + BUG(); + } + +-static int nfs4_access_bmap_to_omode(struct nfs4_stateid *stp) +-{ +- unsigned int access; +- +- set_access(&access, stp->st_access_bmap); +- return nfs4_access_to_omode(access); +-} +- + static void unhash_generic_stateid(struct nfs4_stateid *stp) + { + list_del(&stp->st_hash); +@@ -398,11 +390,14 @@ static void unhash_generic_stateid(struct nfs4_stateid *stp) + + static void free_generic_stateid(struct nfs4_stateid *stp) + { +- int oflag; ++ int i; + + if (stp->st_access_bmap) { +- oflag = nfs4_access_bmap_to_omode(stp); +- nfs4_file_put_access(stp->st_file, oflag); ++ for (i = 1; i < 4; i++) { ++ if (test_bit(i, &stp->st_access_bmap)) ++ nfs4_file_put_access(stp->st_file, ++ nfs4_access_to_omode(i)); ++ } + } + put_nfs4_file(stp->st_file); + kmem_cache_free(stateid_slab, stp); +@@ -2337,15 +2332,6 @@ out: + return ret; + } + +-static inline void +-nfs4_file_downgrade(struct nfs4_file *fp, unsigned int share_access) +-{ +- if (share_access & NFS4_SHARE_ACCESS_WRITE) +- nfs4_file_put_access(fp, O_WRONLY); +- if (share_access & NFS4_SHARE_ACCESS_READ) +- nfs4_file_put_access(fp, O_RDONLY); +-} +- + static void nfsd_break_one_deleg(struct nfs4_delegation *dp) + { + /* We're assuming the state code never drops its reference +@@ -2556,12 +2542,18 @@ static inline int nfs4_access_to_access(u32 nfs4_access) + return flags; + } + +-static __be32 nfs4_get_vfs_file(struct svc_rqst *rqstp, struct nfs4_file +-*fp, struct svc_fh *cur_fh, u32 nfs4_access) ++static __be32 nfs4_get_vfs_file(struct svc_rqst *rqstp, struct nfs4_file *fp, ++ struct svc_fh *cur_fh, struct nfsd4_open *open) + { + __be32 status; +- int oflag = nfs4_access_to_omode(nfs4_access); +- int access = nfs4_access_to_access(nfs4_access); ++ int oflag = nfs4_access_to_omode(open->op_share_access); ++ int access = nfs4_access_to_access(open->op_share_access); ++ ++ /* CLAIM_DELEGATE_CUR is used in response to a broken lease; ++ * allowing it to break the lease and return EAGAIN leaves the ++ * client unable to make progress in returning the delegation */ ++ if (open->op_claim_type == NFS4_OPEN_CLAIM_DELEGATE_CUR) ++ access |= NFSD_MAY_NOT_BREAK_LEASE; + + if (!fp->fi_fds[oflag]) { + status = nfsd_open(rqstp, cur_fh, S_IFREG, access, +@@ -2586,7 +2578,7 @@ nfs4_new_open(struct svc_rqst *rqstp, struct nfs4_stateid **stpp, + if (stp == NULL) + return nfserr_resource; + +- status = nfs4_get_vfs_file(rqstp, fp, cur_fh, open->op_share_access); ++ status = nfs4_get_vfs_file(rqstp, fp, cur_fh, open); + if (status) { + kmem_cache_free(stateid_slab, stp); + return status; +@@ -2619,14 +2611,14 @@ nfs4_upgrade_open(struct svc_rqst *rqstp, struct nfs4_file *fp, struct svc_fh *c + + new_access = !test_bit(op_share_access, &stp->st_access_bmap); + if (new_access) { +- status = nfs4_get_vfs_file(rqstp, fp, cur_fh, op_share_access); ++ status = nfs4_get_vfs_file(rqstp, fp, cur_fh, open); + if (status) + return status; + } + status = nfsd4_truncate(rqstp, cur_fh, open); + if (status) { + if (new_access) { +- int oflag = nfs4_access_to_omode(new_access); ++ int oflag = nfs4_access_to_omode(op_share_access); + nfs4_file_put_access(fp, oflag); + } + return status; +@@ -3384,18 +3376,15 @@ out: + return status; + } + +- +-/* +- * unset all bits in union bitmap (bmap) that +- * do not exist in share (from successful OPEN_DOWNGRADE) +- */ +-static void +-reset_union_bmap_access(unsigned long access, unsigned long *bmap) ++static inline void nfs4_file_downgrade(struct nfs4_stateid *stp, unsigned int to_access) + { + int i; ++ + for (i = 1; i < 4; i++) { +- if ((i & access) != i) +- __clear_bit(i, bmap); ++ if (test_bit(i, &stp->st_access_bmap) && !(i & to_access)) { ++ nfs4_file_put_access(stp->st_file, i); ++ __clear_bit(i, &stp->st_access_bmap); ++ } + } + } + +@@ -3416,7 +3405,6 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp, + { + __be32 status; + struct nfs4_stateid *stp; +- unsigned int share_access; + + dprintk("NFSD: nfsd4_open_downgrade on file %.*s\n", + (int)cstate->current_fh.fh_dentry->d_name.len, +@@ -3445,10 +3433,8 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp, + stp->st_deny_bmap, od->od_share_deny); + goto out; + } +- set_access(&share_access, stp->st_access_bmap); +- nfs4_file_downgrade(stp->st_file, share_access & ~od->od_share_access); ++ nfs4_file_downgrade(stp, od->od_share_access); + +- reset_union_bmap_access(od->od_share_access, &stp->st_access_bmap); + reset_union_bmap_deny(od->od_share_deny, &stp->st_deny_bmap); + + update_stateid(&stp->st_stateid); +diff --git a/fs/proc/base.c b/fs/proc/base.c +index fc5bc27..5bff4c6 100644 +--- a/fs/proc/base.c ++++ b/fs/proc/base.c +@@ -2707,9 +2707,16 @@ static int do_io_accounting(struct task_struct *task, char *buffer, int whole) + { + struct task_io_accounting acct = task->ioac; + unsigned long flags; ++ int result; + +- if (!ptrace_may_access(task, PTRACE_MODE_READ)) +- return -EACCES; ++ result = mutex_lock_killable(&task->signal->cred_guard_mutex); ++ if (result) ++ return result; ++ ++ if (!ptrace_may_access(task, PTRACE_MODE_READ)) { ++ result = -EACCES; ++ goto out_unlock; ++ } + + if (whole && lock_task_sighand(task, &flags)) { + struct task_struct *t = task; +@@ -2720,7 +2727,7 @@ static int do_io_accounting(struct task_struct *task, char *buffer, int whole) + + unlock_task_sighand(task, &flags); + } +- return sprintf(buffer, ++ result = sprintf(buffer, + "rchar: %llu\n" + "wchar: %llu\n" + "syscr: %llu\n" +@@ -2735,6 +2742,9 @@ static int do_io_accounting(struct task_struct *task, char *buffer, int whole) + (unsigned long long)acct.read_bytes, + (unsigned long long)acct.write_bytes, + (unsigned long long)acct.cancelled_write_bytes); ++out_unlock: ++ mutex_unlock(&task->signal->cred_guard_mutex); ++ return result; + } + + static int proc_tid_io_accounting(struct task_struct *task, char *buffer) +diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h +index 4ff0988..55814aa 100644 +--- a/include/linux/firewire-cdev.h ++++ b/include/linux/firewire-cdev.h +@@ -475,6 +475,9 @@ union fw_cdev_event { + * of the bus. This does not cause a bus reset to happen. + * @bus_reset_closure: Value of &closure in this and subsequent bus reset events + * @card: The index of the card this device belongs to ++ * ++ * As a side effect, reception of %FW_CDEV_EVENT_BUS_RESET events to be read(2) ++ * is started by this ioctl. + */ + struct fw_cdev_get_info { + __u32 version; +diff --git a/include/linux/mm.h b/include/linux/mm.h +index 9670f71..1036614 100644 +--- a/include/linux/mm.h ++++ b/include/linux/mm.h +@@ -985,6 +985,8 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, + int get_user_pages_fast(unsigned long start, int nr_pages, int write, + struct page **pages); + struct page *get_dump_page(unsigned long addr); ++extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, ++ unsigned long address, unsigned int fault_flags); + + extern int try_to_release_page(struct page * page, gfp_t gfp_mask); + extern void do_invalidatepage(struct page *page, unsigned long offset); +diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h +index 9e19477..33b5968 100644 +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -1688,9 +1688,12 @@ static inline int skb_gro_header_hard(struct sk_buff *skb, unsigned int hlen) + static inline void *skb_gro_header_slow(struct sk_buff *skb, unsigned int hlen, + unsigned int offset) + { ++ if (!pskb_may_pull(skb, hlen)) ++ return NULL; ++ + NAPI_GRO_CB(skb)->frag0 = NULL; + NAPI_GRO_CB(skb)->frag0_len = 0; +- return pskb_may_pull(skb, hlen) ? skb->data + offset : NULL; ++ return skb->data + offset; + } + + static inline void *skb_gro_mac_header(struct sk_buff *skb) +diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h +index 1b93b9c..b522370 100644 +--- a/include/linux/nfs_fs.h ++++ b/include/linux/nfs_fs.h +@@ -99,9 +99,10 @@ struct nfs_open_context { + + struct nfs_open_dir_context { + struct rpc_cred *cred; ++ unsigned long attr_gencount; + __u64 dir_cookie; + __u64 dup_cookie; +- int duped; ++ signed char duped; + }; + + /* +diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h +index 00848d8..be2eba7 100644 +--- a/include/linux/nfs_xdr.h ++++ b/include/linux/nfs_xdr.h +@@ -262,7 +262,7 @@ struct nfs4_layoutcommit_res { + struct nfs4_layoutcommit_data { + struct rpc_task task; + struct nfs_fattr fattr; +- struct pnfs_layout_segment *lseg; ++ struct list_head lseg_list; + struct rpc_cred *cred; + struct nfs4_layoutcommit_args args; + struct nfs4_layoutcommit_res res; +diff --git a/ipc/sem.c b/ipc/sem.c +index 34193ed..e68a8f5 100644 +--- a/ipc/sem.c ++++ b/ipc/sem.c +@@ -1456,15 +1456,24 @@ SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops, + } + + sma = sem_lock(ns, semid); ++ ++ /* ++ * Wait until it's guaranteed that no wakeup_sem_queue_do() is ongoing. ++ */ ++ error = get_queue_result(&queue); ++ ++ /* ++ * Array removed? If yes, leave without sem_unlock(). ++ */ + if (IS_ERR(sma)) { + error = -EIDRM; + goto out_free; + } + +- error = get_queue_result(&queue); + + /* +- * If queue.status != -EINTR we are woken up by another process ++ * If queue.status != -EINTR we are woken up by another process. ++ * Leave without unlink_queue(), but with sem_unlock(). + */ + + if (error != -EINTR) { +diff --git a/kernel/events/core.c b/kernel/events/core.c +index 9efe710..32a6151 100644 +--- a/kernel/events/core.c ++++ b/kernel/events/core.c +@@ -5016,11 +5016,8 @@ static int __perf_event_overflow(struct perf_event *event, int nmi, + if (events && atomic_dec_and_test(&event->event_limit)) { + ret = 1; + event->pending_kill = POLL_HUP; +- if (nmi) { +- event->pending_disable = 1; +- irq_work_queue(&event->pending); +- } else +- perf_event_disable(event); ++ event->pending_disable = 1; ++ irq_work_queue(&event->pending); + } + + if (event->overflow_handler) +diff --git a/kernel/futex.c b/kernel/futex.c +index fe28dc2..7a0a4ed 100644 +--- a/kernel/futex.c ++++ b/kernel/futex.c +@@ -355,8 +355,8 @@ static int fault_in_user_writeable(u32 __user *uaddr) + int ret; + + down_read(&mm->mmap_sem); +- ret = get_user_pages(current, mm, (unsigned long)uaddr, +- 1, 1, 0, NULL, NULL); ++ ret = fixup_user_fault(current, mm, (unsigned long)uaddr, ++ FAULT_FLAG_WRITE); + up_read(&mm->mmap_sem); + + return ret < 0 ? ret : 0; +diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h +index 229f859..f807407 100644 +--- a/kernel/trace/trace.h ++++ b/kernel/trace/trace.h +@@ -677,6 +677,7 @@ struct event_subsystem { + struct dentry *entry; + struct event_filter *filter; + int nr_events; ++ int ref_count; + }; + + #define FILTER_PRED_INVALID ((unsigned short)-1) +diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c +index 686ec39..3e2a7c9 100644 +--- a/kernel/trace/trace_events.c ++++ b/kernel/trace/trace_events.c +@@ -244,6 +244,35 @@ static void ftrace_clear_events(void) + mutex_unlock(&event_mutex); + } + ++static void __put_system(struct event_subsystem *system) ++{ ++ struct event_filter *filter = system->filter; ++ ++ WARN_ON_ONCE(system->ref_count == 0); ++ if (--system->ref_count) ++ return; ++ ++ if (filter) { ++ kfree(filter->filter_string); ++ kfree(filter); ++ } ++ kfree(system->name); ++ kfree(system); ++} ++ ++static void __get_system(struct event_subsystem *system) ++{ ++ WARN_ON_ONCE(system->ref_count == 0); ++ system->ref_count++; ++} ++ ++static void put_system(struct event_subsystem *system) ++{ ++ mutex_lock(&event_mutex); ++ __put_system(system); ++ mutex_unlock(&event_mutex); ++} ++ + /* + * __ftrace_set_clr_event(NULL, NULL, NULL, set) will set/unset all events. + */ +@@ -528,7 +557,7 @@ system_enable_read(struct file *filp, char __user *ubuf, size_t cnt, + loff_t *ppos) + { + const char set_to_char[4] = { '?', '0', '1', 'X' }; +- const char *system = filp->private_data; ++ struct event_subsystem *system = filp->private_data; + struct ftrace_event_call *call; + char buf[2]; + int set = 0; +@@ -539,7 +568,7 @@ system_enable_read(struct file *filp, char __user *ubuf, size_t cnt, + if (!call->name || !call->class || !call->class->reg) + continue; + +- if (system && strcmp(call->class->system, system) != 0) ++ if (system && strcmp(call->class->system, system->name) != 0) + continue; + + /* +@@ -569,7 +598,8 @@ static ssize_t + system_enable_write(struct file *filp, const char __user *ubuf, size_t cnt, + loff_t *ppos) + { +- const char *system = filp->private_data; ++ struct event_subsystem *system = filp->private_data; ++ const char *name = NULL; + unsigned long val; + char buf[64]; + ssize_t ret; +@@ -593,7 +623,14 @@ system_enable_write(struct file *filp, const char __user *ubuf, size_t cnt, + if (val != 0 && val != 1) + return -EINVAL; + +- ret = __ftrace_set_clr_event(NULL, system, NULL, val); ++ /* ++ * Opening of "enable" adds a ref count to system, ++ * so the name is safe to use. ++ */ ++ if (system) ++ name = system->name; ++ ++ ret = __ftrace_set_clr_event(NULL, name, NULL, val); + if (ret) + goto out; + +@@ -826,6 +863,52 @@ event_filter_write(struct file *filp, const char __user *ubuf, size_t cnt, + return cnt; + } + ++static LIST_HEAD(event_subsystems); ++ ++static int subsystem_open(struct inode *inode, struct file *filp) ++{ ++ struct event_subsystem *system = NULL; ++ int ret; ++ ++ if (!inode->i_private) ++ goto skip_search; ++ ++ /* Make sure the system still exists */ ++ mutex_lock(&event_mutex); ++ list_for_each_entry(system, &event_subsystems, list) { ++ if (system == inode->i_private) { ++ /* Don't open systems with no events */ ++ if (!system->nr_events) { ++ system = NULL; ++ break; ++ } ++ __get_system(system); ++ break; ++ } ++ } ++ mutex_unlock(&event_mutex); ++ ++ if (system != inode->i_private) ++ return -ENODEV; ++ ++ skip_search: ++ ret = tracing_open_generic(inode, filp); ++ if (ret < 0 && system) ++ put_system(system); ++ ++ return ret; ++} ++ ++static int subsystem_release(struct inode *inode, struct file *file) ++{ ++ struct event_subsystem *system = inode->i_private; ++ ++ if (system) ++ put_system(system); ++ ++ return 0; ++} ++ + static ssize_t + subsystem_filter_read(struct file *filp, char __user *ubuf, size_t cnt, + loff_t *ppos) +@@ -963,17 +1046,19 @@ static const struct file_operations ftrace_event_filter_fops = { + }; + + static const struct file_operations ftrace_subsystem_filter_fops = { +- .open = tracing_open_generic, ++ .open = subsystem_open, + .read = subsystem_filter_read, + .write = subsystem_filter_write, + .llseek = default_llseek, ++ .release = subsystem_release, + }; + + static const struct file_operations ftrace_system_enable_fops = { +- .open = tracing_open_generic, ++ .open = subsystem_open, + .read = system_enable_read, + .write = system_enable_write, + .llseek = default_llseek, ++ .release = subsystem_release, + }; + + static const struct file_operations ftrace_show_header_fops = { +@@ -1002,8 +1087,6 @@ static struct dentry *event_trace_events_dir(void) + return d_events; + } + +-static LIST_HEAD(event_subsystems); +- + static struct dentry * + event_subsystem_dir(const char *name, struct dentry *d_events) + { +@@ -1013,6 +1096,7 @@ event_subsystem_dir(const char *name, struct dentry *d_events) + /* First see if we did not already create this dir */ + list_for_each_entry(system, &event_subsystems, list) { + if (strcmp(system->name, name) == 0) { ++ __get_system(system); + system->nr_events++; + return system->entry; + } +@@ -1035,6 +1119,7 @@ event_subsystem_dir(const char *name, struct dentry *d_events) + } + + system->nr_events = 1; ++ system->ref_count = 1; + system->name = kstrdup(name, GFP_KERNEL); + if (!system->name) { + debugfs_remove(system->entry); +@@ -1062,8 +1147,7 @@ event_subsystem_dir(const char *name, struct dentry *d_events) + "'%s/filter' entry\n", name); + } + +- trace_create_file("enable", 0644, system->entry, +- (void *)system->name, ++ trace_create_file("enable", 0644, system->entry, system, + &ftrace_system_enable_fops); + + return system->entry; +@@ -1184,16 +1268,9 @@ static void remove_subsystem_dir(const char *name) + list_for_each_entry(system, &event_subsystems, list) { + if (strcmp(system->name, name) == 0) { + if (!--system->nr_events) { +- struct event_filter *filter = system->filter; +- + debugfs_remove_recursive(system->entry); + list_del(&system->list); +- if (filter) { +- kfree(filter->filter_string); +- kfree(filter); +- } +- kfree(system->name); +- kfree(system); ++ __put_system(system); + } + break; + } +diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c +index 8008ddc..256764e 100644 +--- a/kernel/trace/trace_events_filter.c ++++ b/kernel/trace/trace_events_filter.c +@@ -1886,6 +1886,12 @@ int apply_subsystem_event_filter(struct event_subsystem *system, + + mutex_lock(&event_mutex); + ++ /* Make sure the system still has events */ ++ if (!system->nr_events) { ++ err = -ENODEV; ++ goto out_unlock; ++ } ++ + if (!strcmp(strstrip(filter_string), "0")) { + filter_free_subsystem_preds(system); + remove_filter_string(system->filter); +diff --git a/lib/xz/xz_private.h b/lib/xz/xz_private.h +index a65633e..482b90f 100644 +--- a/lib/xz/xz_private.h ++++ b/lib/xz/xz_private.h +@@ -12,7 +12,7 @@ + + #ifdef __KERNEL__ + # include +-# include ++# include + # include + /* XZ_PREBOOT may be defined only via decompress_unxz.c. */ + # ifndef XZ_PREBOOT +diff --git a/mm/backing-dev.c b/mm/backing-dev.c +index f032e6e..e56fe35 100644 +--- a/mm/backing-dev.c ++++ b/mm/backing-dev.c +@@ -606,6 +606,7 @@ static void bdi_prune_sb(struct backing_dev_info *bdi) + void bdi_unregister(struct backing_dev_info *bdi) + { + if (bdi->dev) { ++ bdi_set_min_ratio(bdi, 0); + trace_writeback_bdi_unregister(bdi); + bdi_prune_sb(bdi); + del_timer_sync(&bdi->wb.wakeup_timer); +diff --git a/mm/memcontrol.c b/mm/memcontrol.c +index e013b8e..59ac5d6 100644 +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -1730,7 +1730,7 @@ static int mem_cgroup_hierarchical_reclaim(struct mem_cgroup *root_mem, + excess = res_counter_soft_limit_excess(&root_mem->res) >> PAGE_SHIFT; + + /* If memsw_is_minimum==1, swap-out is of-no-use. */ +- if (!check_soft && root_mem->memsw_is_minimum) ++ if (!check_soft && !shrink && root_mem->memsw_is_minimum) + noswap = true; + + while (1) { +diff --git a/mm/memory.c b/mm/memory.c +index 9b8a01d..d961e19 100644 +--- a/mm/memory.c ++++ b/mm/memory.c +@@ -1816,7 +1816,63 @@ next_page: + } + EXPORT_SYMBOL(__get_user_pages); + +-/** ++/* ++ * fixup_user_fault() - manually resolve a user page fault ++ * @tsk: the task_struct to use for page fault accounting, or ++ * NULL if faults are not to be recorded. ++ * @mm: mm_struct of target mm ++ * @address: user address ++ * @fault_flags:flags to pass down to handle_mm_fault() ++ * ++ * This is meant to be called in the specific scenario where for locking reasons ++ * we try to access user memory in atomic context (within a pagefault_disable() ++ * section), this returns -EFAULT, and we want to resolve the user fault before ++ * trying again. ++ * ++ * Typically this is meant to be used by the futex code. ++ * ++ * The main difference with get_user_pages() is that this function will ++ * unconditionally call handle_mm_fault() which will in turn perform all the ++ * necessary SW fixup of the dirty and young bits in the PTE, while ++ * handle_mm_fault() only guarantees to update these in the struct page. ++ * ++ * This is important for some architectures where those bits also gate the ++ * access permission to the page because they are maintained in software. On ++ * such architectures, gup() will not be enough to make a subsequent access ++ * succeed. ++ * ++ * This should be called with the mm_sem held for read. ++ */ ++int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, ++ unsigned long address, unsigned int fault_flags) ++{ ++ struct vm_area_struct *vma; ++ int ret; ++ ++ vma = find_extend_vma(mm, address); ++ if (!vma || address < vma->vm_start) ++ return -EFAULT; ++ ++ ret = handle_mm_fault(mm, vma, address, fault_flags); ++ if (ret & VM_FAULT_ERROR) { ++ if (ret & VM_FAULT_OOM) ++ return -ENOMEM; ++ if (ret & (VM_FAULT_HWPOISON | VM_FAULT_HWPOISON_LARGE)) ++ return -EHWPOISON; ++ if (ret & VM_FAULT_SIGBUS) ++ return -EFAULT; ++ BUG(); ++ } ++ if (tsk) { ++ if (ret & VM_FAULT_MAJOR) ++ tsk->maj_flt++; ++ else ++ tsk->min_flt++; ++ } ++ return 0; ++} ++ ++/* + * get_user_pages() - pin user pages in memory + * @tsk: the task_struct to use for page fault accounting, or + * NULL if faults are not to be recorded. +diff --git a/mm/oom_kill.c b/mm/oom_kill.c +index e4b0991..8093fc7 100644 +--- a/mm/oom_kill.c ++++ b/mm/oom_kill.c +@@ -303,7 +303,7 @@ static struct task_struct *select_bad_process(unsigned int *ppoints, + do_each_thread(g, p) { + unsigned int points; + +- if (!p->mm) ++ if (p->exit_state) + continue; + if (oom_unkillable_task(p, mem, nodemask)) + continue; +@@ -319,6 +319,8 @@ static struct task_struct *select_bad_process(unsigned int *ppoints, + */ + if (test_tsk_thread_flag(p, TIF_MEMDIE)) + return ERR_PTR(-1UL); ++ if (!p->mm) ++ continue; + + if (p->flags & PF_EXITING) { + /* +diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h +index 54578f2..78cc364 100644 +--- a/net/bridge/br_private.h ++++ b/net/bridge/br_private.h +@@ -124,6 +124,7 @@ struct net_bridge_port + bridge_id designated_bridge; + u32 path_cost; + u32 designated_cost; ++ unsigned long designated_age; + + struct timer_list forward_delay_timer; + struct timer_list hold_timer; +diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c +index bb4383e..fcff622 100644 +--- a/net/bridge/br_stp.c ++++ b/net/bridge/br_stp.c +@@ -164,8 +164,7 @@ void br_transmit_config(struct net_bridge_port *p) + else { + struct net_bridge_port *root + = br_get_port(br, br->root_port); +- bpdu.message_age = br->max_age +- - (root->message_age_timer.expires - jiffies) ++ bpdu.message_age = (jiffies - root->designated_age) + + MESSAGE_AGE_INCR; + } + bpdu.max_age = br->max_age; +@@ -189,6 +188,7 @@ static inline void br_record_config_information(struct net_bridge_port *p, + p->designated_cost = bpdu->root_path_cost; + p->designated_bridge = bpdu->bridge_id; + p->designated_port = bpdu->port_id; ++ p->designated_age = jiffies + bpdu->message_age; + + mod_timer(&p->message_age_timer, jiffies + + (p->br->max_age - bpdu->message_age)); +diff --git a/net/core/ethtool.c b/net/core/ethtool.c +index fd14116..4fb7704 100644 +--- a/net/core/ethtool.c ++++ b/net/core/ethtool.c +@@ -1227,7 +1227,7 @@ static int ethtool_get_regs(struct net_device *dev, char __user *useraddr) + regs.len = reglen; + + regbuf = vzalloc(reglen); +- if (!regbuf) ++ if (reglen && !regbuf) + return -ENOMEM; + + ops->get_regs(dev, ®s, regbuf); +@@ -1236,7 +1236,7 @@ static int ethtool_get_regs(struct net_device *dev, char __user *useraddr) + if (copy_to_user(useraddr, ®s, sizeof(regs))) + goto out; + useraddr += offsetof(struct ethtool_regs, data); +- if (copy_to_user(useraddr, regbuf, regs.len)) ++ if (regbuf && copy_to_user(useraddr, regbuf, regs.len)) + goto out; + ret = 0; + +diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c +index d595265..7a334fd 100644 +--- a/net/mac80211/mlme.c ++++ b/net/mac80211/mlme.c +@@ -2200,6 +2200,9 @@ void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata) + { + struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; + ++ if (!ifmgd->associated) ++ return; ++ + if (test_and_clear_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running)) + add_timer(&ifmgd->timer); + if (test_and_clear_bit(TMR_RUNNING_CHANSW, &ifmgd->timers_running)) +diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c +index ab86b79..bd31208 100644 +--- a/net/sunrpc/svc_xprt.c ++++ b/net/sunrpc/svc_xprt.c +@@ -902,12 +902,13 @@ void svc_delete_xprt(struct svc_xprt *xprt) + if (!test_and_set_bit(XPT_DETACHED, &xprt->xpt_flags)) + list_del_init(&xprt->xpt_list); + /* +- * We used to delete the transport from whichever list +- * it's sk_xprt.xpt_ready node was on, but we don't actually +- * need to. This is because the only time we're called +- * while still attached to a queue, the queue itself +- * is about to be destroyed (in svc_destroy). ++ * The only time we're called while xpt_ready is still on a list ++ * is while the list itself is about to be destroyed (in ++ * svc_destroy). BUT svc_xprt_enqueue could still be attempting ++ * to add new entries to the sp_sockets list, so we can't leave ++ * a freed xprt on it. + */ ++ list_del_init(&xprt->xpt_ready); + if (test_bit(XPT_TEMP, &xprt->xpt_flags)) + serv->sv_tmpcnt--; + spin_unlock_bh(&serv->sv_lock); +diff --git a/net/wireless/reg.c b/net/wireless/reg.c +index 1ad0f39..4453eb7 100644 +--- a/net/wireless/reg.c ++++ b/net/wireless/reg.c +@@ -1125,12 +1125,13 @@ void wiphy_update_regulatory(struct wiphy *wiphy, + enum ieee80211_band band; + + if (ignore_reg_update(wiphy, initiator)) +- goto out; ++ return; ++ + for (band = 0; band < IEEE80211_NUM_BANDS; band++) { + if (wiphy->bands[band]) + handle_band(wiphy, band, initiator); + } +-out: ++ + reg_process_beacons(wiphy); + reg_process_ht_flags(wiphy); + if (wiphy->reg_notifier) +diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c +index c825c6e..78adc43 100644 +--- a/security/apparmor/domain.c ++++ b/security/apparmor/domain.c +@@ -73,7 +73,6 @@ static int may_change_ptraced_domain(struct task_struct *task, + cred = get_task_cred(tracer); + tracerp = aa_cred_profile(cred); + } +- rcu_read_unlock(); + + /* not ptraced */ + if (!tracer || unconfined(tracerp)) +@@ -82,6 +81,7 @@ static int may_change_ptraced_domain(struct task_struct *task, + error = aa_may_ptrace(tracer, tracerp, to_profile, PTRACE_MODE_ATTACH); + + out: ++ rcu_read_unlock(); + if (cred) + put_cred(cred); + +diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c +index 3d2fd14..3783202 100644 +--- a/security/apparmor/lsm.c ++++ b/security/apparmor/lsm.c +@@ -127,7 +127,7 @@ static int apparmor_capget(struct task_struct *target, kernel_cap_t *effective, + *inheritable = cred->cap_inheritable; + *permitted = cred->cap_permitted; + +- if (!unconfined(profile)) { ++ if (!unconfined(profile) && !COMPLAIN_MODE(profile)) { + *effective = cap_intersect(*effective, profile->caps.allow); + *permitted = cap_intersect(*permitted, profile->caps.allow); + } +diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c +index 5fb2e28..91cdf94 100644 +--- a/sound/core/pcm_compat.c ++++ b/sound/core/pcm_compat.c +@@ -342,7 +342,7 @@ static int snd_pcm_ioctl_xfern_compat(struct snd_pcm_substream *substream, + kfree(bufs); + return -EFAULT; + } +- bufs[ch] = compat_ptr(ptr); ++ bufs[i] = compat_ptr(ptr); + bufptr++; + } + if (dir == SNDRV_PCM_STREAM_PLAYBACK) +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index b48fb43..524ff26 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -1578,13 +1578,15 @@ static void alc_init_auto_hp(struct hda_codec *codec) + if (present == 3) + spec->automute_hp_lo = 1; /* both HP and LO automute */ + +- if (!cfg->speaker_pins[0]) { ++ if (!cfg->speaker_pins[0] && ++ cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) { + memcpy(cfg->speaker_pins, cfg->line_out_pins, + sizeof(cfg->speaker_pins)); + cfg->speaker_outs = cfg->line_outs; + } + +- if (!cfg->hp_pins[0]) { ++ if (!cfg->hp_pins[0] && ++ cfg->line_out_type == AUTO_PIN_HP_OUT) { + memcpy(cfg->hp_pins, cfg->line_out_pins, + sizeof(cfg->hp_pins)); + cfg->hp_outs = cfg->line_outs; +@@ -1603,6 +1605,7 @@ static void alc_init_auto_hp(struct hda_codec *codec) + spec->automute_mode = ALC_AUTOMUTE_PIN; + } + if (spec->automute && cfg->line_out_pins[0] && ++ cfg->speaker_pins[0] && + cfg->line_out_pins[0] != cfg->hp_pins[0] && + cfg->line_out_pins[0] != cfg->speaker_pins[0]) { + for (i = 0; i < cfg->line_outs; i++) { +diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c +index 54cad38..32d096c 100644 +--- a/sound/pci/oxygen/xonar_pcm179x.c ++++ b/sound/pci/oxygen/xonar_pcm179x.c +@@ -327,8 +327,10 @@ static void pcm1796_init(struct oxygen *chip) + { + struct xonar_pcm179x *data = chip->model_data; + +- data->pcm1796_regs[0][18 - PCM1796_REG_BASE] = PCM1796_MUTE | ++ data->pcm1796_regs[0][18 - PCM1796_REG_BASE] = + PCM1796_DMF_DISABLED | PCM1796_FMT_24_I2S | PCM1796_ATLD; ++ if (!data->broken_i2c) ++ data->pcm1796_regs[0][18 - PCM1796_REG_BASE] |= PCM1796_MUTE; + data->pcm1796_regs[0][19 - PCM1796_REG_BASE] = + PCM1796_FLT_SHARP | PCM1796_ATS_1; + data->pcm1796_regs[0][20 - PCM1796_REG_BASE] = +@@ -1123,6 +1125,7 @@ int __devinit get_xonar_pcm179x_model(struct oxygen *chip, + chip->model.control_filter = xonar_st_h6_control_filter; + chip->model.dac_channels_pcm = 8; + chip->model.dac_channels_mixer = 8; ++ chip->model.dac_volume_min = 255; + chip->model.dac_mclks = OXYGEN_MCLKS(256, 128, 128); + break; + } +diff --git a/sound/soc/davinci/davinci-vcif.c b/sound/soc/davinci/davinci-vcif.c +index 9259f1f..1f11525 100644 +--- a/sound/soc/davinci/davinci-vcif.c ++++ b/sound/soc/davinci/davinci-vcif.c +@@ -62,9 +62,9 @@ static void davinci_vcif_start(struct snd_pcm_substream *substream) + w = readl(davinci_vc->base + DAVINCI_VC_CTRL); + + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) +- MOD_REG_BIT(w, DAVINCI_VC_CTRL_RSTDAC, 1); ++ MOD_REG_BIT(w, DAVINCI_VC_CTRL_RSTDAC, 0); + else +- MOD_REG_BIT(w, DAVINCI_VC_CTRL_RSTADC, 1); ++ MOD_REG_BIT(w, DAVINCI_VC_CTRL_RSTADC, 0); + + writel(w, davinci_vc->base + DAVINCI_VC_CTRL); + } +@@ -80,9 +80,9 @@ static void davinci_vcif_stop(struct snd_pcm_substream *substream) + /* Reset transmitter/receiver and sample rate/frame sync generators */ + w = readl(davinci_vc->base + DAVINCI_VC_CTRL); + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) +- MOD_REG_BIT(w, DAVINCI_VC_CTRL_RSTDAC, 0); ++ MOD_REG_BIT(w, DAVINCI_VC_CTRL_RSTDAC, 1); + else +- MOD_REG_BIT(w, DAVINCI_VC_CTRL_RSTADC, 0); ++ MOD_REG_BIT(w, DAVINCI_VC_CTRL_RSTADC, 1); + + writel(w, davinci_vc->base + DAVINCI_VC_CTRL); + } +@@ -159,6 +159,7 @@ static int davinci_vcif_trigger(struct snd_pcm_substream *substream, int cmd, + case SNDRV_PCM_TRIGGER_RESUME: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + davinci_vcif_start(substream); ++ break; + case SNDRV_PCM_TRIGGER_STOP: + case SNDRV_PCM_TRIGGER_SUSPEND: + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: +diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c +index b194be0..59abd84 100644 +--- a/sound/soc/soc-core.c ++++ b/sound/soc/soc-core.c +@@ -1124,6 +1124,7 @@ int snd_soc_suspend(struct device *dev) + case SND_SOC_BIAS_OFF: + codec->driver->suspend(codec, PMSG_SUSPEND); + codec->suspended = 1; ++ codec->cache_sync = 1; + break; + default: + dev_dbg(codec->dev, "CODEC is on over suspend\n"); +diff --git a/tools/perf/Makefile b/tools/perf/Makefile +index 940257b..c168366 100644 +--- a/tools/perf/Makefile ++++ b/tools/perf/Makefile +@@ -52,7 +52,10 @@ ifeq ($(ARCH),i386) + endif + ifeq ($(ARCH),x86_64) + ARCH := x86 +- IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -xc - | tail -n 1) ++ IS_X86_64 := 0 ++ ifeq (, $(findstring m32,$(EXTRA_CFLAGS))) ++ IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -xc - | tail -n 1) ++ endif + ifeq (${IS_X86_64}, 1) + RAW_ARCH := x86_64 + ARCH_CFLAGS := -DARCH_X86_64 +diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c +index afb0849..cb2959a 100644 +--- a/tools/perf/util/header.c ++++ b/tools/perf/util/header.c +@@ -877,9 +877,12 @@ int perf_session__read_header(struct perf_session *session, int fd) + struct perf_evsel *evsel; + off_t tmp; + +- if (perf_header__getbuffer64(header, fd, &f_attr, sizeof(f_attr))) ++ if (readn(fd, &f_attr, sizeof(f_attr)) <= 0) + goto out_errno; + ++ if (header->needs_swap) ++ perf_event__attr_swap(&f_attr.attr); ++ + tmp = lseek(fd, 0, SEEK_CUR); + evsel = perf_evsel__new(&f_attr.attr, i); + +diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c +index f5a8fbd..2dbf0ab 100644 +--- a/tools/perf/util/session.c ++++ b/tools/perf/util/session.c +@@ -407,20 +407,26 @@ static void perf_event__read_swap(union perf_event *event) + event->read.id = bswap_64(event->read.id); + } + +-static void perf_event__attr_swap(union perf_event *event) ++/* exported for swapping attributes in file header */ ++void perf_event__attr_swap(struct perf_event_attr *attr) ++{ ++ attr->type = bswap_32(attr->type); ++ attr->size = bswap_32(attr->size); ++ attr->config = bswap_64(attr->config); ++ attr->sample_period = bswap_64(attr->sample_period); ++ attr->sample_type = bswap_64(attr->sample_type); ++ attr->read_format = bswap_64(attr->read_format); ++ attr->wakeup_events = bswap_32(attr->wakeup_events); ++ attr->bp_type = bswap_32(attr->bp_type); ++ attr->bp_addr = bswap_64(attr->bp_addr); ++ attr->bp_len = bswap_64(attr->bp_len); ++} ++ ++static void perf_event__hdr_attr_swap(union perf_event *event) + { + size_t size; + +- event->attr.attr.type = bswap_32(event->attr.attr.type); +- event->attr.attr.size = bswap_32(event->attr.attr.size); +- event->attr.attr.config = bswap_64(event->attr.attr.config); +- event->attr.attr.sample_period = bswap_64(event->attr.attr.sample_period); +- event->attr.attr.sample_type = bswap_64(event->attr.attr.sample_type); +- event->attr.attr.read_format = bswap_64(event->attr.attr.read_format); +- event->attr.attr.wakeup_events = bswap_32(event->attr.attr.wakeup_events); +- event->attr.attr.bp_type = bswap_32(event->attr.attr.bp_type); +- event->attr.attr.bp_addr = bswap_64(event->attr.attr.bp_addr); +- event->attr.attr.bp_len = bswap_64(event->attr.attr.bp_len); ++ perf_event__attr_swap(&event->attr.attr); + + size = event->header.size; + size -= (void *)&event->attr.id - (void *)event; +@@ -448,7 +454,7 @@ static perf_event__swap_op perf_event__swap_ops[] = { + [PERF_RECORD_LOST] = perf_event__all64_swap, + [PERF_RECORD_READ] = perf_event__read_swap, + [PERF_RECORD_SAMPLE] = perf_event__all64_swap, +- [PERF_RECORD_HEADER_ATTR] = perf_event__attr_swap, ++ [PERF_RECORD_HEADER_ATTR] = perf_event__hdr_attr_swap, + [PERF_RECORD_HEADER_EVENT_TYPE] = perf_event__event_type_swap, + [PERF_RECORD_HEADER_TRACING_DATA] = perf_event__tracing_data_swap, + [PERF_RECORD_HEADER_BUILD_ID] = NULL, +diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h +index 66d4e14..b84c003 100644 +--- a/tools/perf/util/session.h ++++ b/tools/perf/util/session.h +@@ -112,6 +112,7 @@ int perf_session__set_kallsyms_ref_reloc_sym(struct map **maps, + u64 addr); + + void mem_bswap_64(void *src, int byte_size); ++void perf_event__attr_swap(struct perf_event_attr *attr); + + int perf_session__create_kernel_maps(struct perf_session *self); + --- linux-2.6-3.0.0.orig/debian/patches/series/2 +++ linux-2.6-3.0.0/debian/patches/series/2 @@ -0,0 +1,4 @@ +- features/all/rt2x00-Add-device-ID-for-RT539F-device.patch ++ bugfix/all/stable/3.0.1.patch ++ bugfix/all/perf-do-not-look-at-.-config-for-configuration.patch ++ bugfix/all/stable/3.0.2.patch --- linux-2.6-3.0.0.orig/debian/patches/series/base +++ linux-2.6-3.0.0/debian/patches/series/base @@ -0,0 +1,50 @@ ++ debian/version.patch ++ debian/kernelvariables.patch ++ debian/doc-build-parallel.patch + ++ features/all/drivers-media-dvb-usb-af9005-request_firmware.patch + ++ features/all/sound-pci-cs46xx-request_firmware.patch + +# Patches and source files from aufs2 repository, imported with +# debian/patches/features/all/aufs2/gen-patch. ++ features/all/aufs2/aufs2-base.patch ++ features/all/aufs2/aufs2-standalone.patch ++ features/all/aufs2/aufs2-kbuild.patch ++ features/all/aufs2/aufs2-add.patch +# mark as staging/crap ++ features/all/aufs2/mark-as-staging.patch + ++ bugfix/ia64/hardcode-arch-script-output.patch ++ bugfix/mips/disable-advansys.patch ++ bugfix/arm/disable-scsi_acard.patch ++ debian/mips-disable-werror.patch ++ bugfix/powerpc/lpar-console.patch + ++ debian/sysrq-mask.patch ++ debian/module-bug-Add-TAINT_OOT_MODULE-flag.patch + ++ debian/arch-sh4-fix-uimage-build.patch + ++ debian/af_802154-Disable-auto-loading-as-mitigation-against.patch ++ debian/rds-Disable-auto-loading-as-mitigation-against-local.patch ++ debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch + ++ bugfix/mips/mips-ide-flush-dcache.patch ++ bugfix/x86/Skip-looking-for-ioapic-overrides-when-ioapics-are-not-present.patch ++ bugfix/all/dm-Deal-with-merge_bvec_fn-in-component-devices-bett.patch ++ features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch + ++ debian/sched-autogroup-disabled.patch ++ bugfix/all/rt2800-disable-powersaving-as-default.patch ++ features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch ++ debian/cgroups-Document-the-Debian-memory-resource-controll.patch ++ bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch ++ features/all/rt2x00-Add-device-ID-for-RT539F-device.patch ++ bugfix/all/Add-KEY_MICMUTE-and-enable-it-on-Lenovo-X220.patch ++ bugfix/all/resources-Add-lookup_resource.patch ++ bugfix/all/m68k-atari-Reserve-some-ST-RAM-early-on-for-device-b.patch ++ bugfix/all/ALSA-hda-Handle-1-as-invalid-position-too.patch ++ bugfix/all/ALSA-hda-Judge-playback-stream-from-stream-id-in-azx.patch ++ bugfix/all/ALSA-hda-Enable-auto-parser-as-default-for-Conexant-.patch ++ features/all/xen/backend-autoload.patch --- linux-2.6-3.0.0.orig/debian/patches/series/orig-0 +++ linux-2.6-3.0.0/debian/patches/series/orig-0 @@ -0,0 +1,8 @@ ++ debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch ++ debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch ++ debian/dfsg/drivers-net-appletalk-cops.patch ++ debian/dfsg/drivers-staging-wlags49_h2-disable.patch ++ debian/dfsg/drivers-staging-wlags49_h25-disable.patch ++ debian/dfsg/firmware-cleanup.patch ++ debian/dfsg/sound-pci.patch +X debian/dfsg/files-1 --- linux-2.6-3.0.0.orig/debian/patches/series/2-extra +++ linux-2.6-3.0.0/debian/patches/series/2-extra @@ -0,0 +1 @@ ++ features/all/rt/patch-3.0.1-rt11.patch featureset=rt --- linux-2.6-3.0.0.orig/debian/patches/debian/cgroups-Document-the-Debian-memory-resource-controll.patch +++ linux-2.6-3.0.0/debian/patches/debian/cgroups-Document-the-Debian-memory-resource-controll.patch @@ -0,0 +1,28 @@ +From 969e4dd0b5c715b239c765b870f2abf81c57e878 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Sun, 30 May 2010 22:47:01 +0100 +Subject: [PATCH 2/2] cgroups: Document the Debian memory resource controller + config change + +--- + Documentation/cgroups/memory.txt | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt +index 7c16347..684f70d 100644 +--- a/Documentation/cgroups/memory.txt ++++ b/Documentation/cgroups/memory.txt +@@ -47,6 +47,10 @@ Features: + Kernel memory and Hugepages are not under control yet. We just manage + pages on LRU. To add more controls, we have to take care of performance. + ++NOTE: In Debian kernel packages, the memory resource controller is ++included but disabled by default. Use the kernel parameter ++'cgroup_enable=memory' to enable it. ++ + Brief summary of control files. + + tasks # attach a task(thread) and show list of threads +-- +1.7.4.4 + --- linux-2.6-3.0.0.orig/debian/patches/debian/sched-autogroup-disabled.patch +++ linux-2.6-3.0.0/debian/patches/debian/sched-autogroup-disabled.patch @@ -0,0 +1,13 @@ +diff --git a/kernel/sched_autogroup.c b/kernel/sched_autogroup.c +index 9fb6562..96abaaf 100644 +--- a/kernel/sched_autogroup.c ++++ b/kernel/sched_autogroup.c +@@ -5,7 +5,7 @@ + #include + #include + +-unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1; ++unsigned int __read_mostly sysctl_sched_autogroup_enabled = 0; + static struct autogroup autogroup_default; + static atomic_t autogroup_seq_nr; + --- linux-2.6-3.0.0.orig/debian/patches/debian/kernelvariables.patch +++ linux-2.6-3.0.0/debian/patches/debian/kernelvariables.patch @@ -0,0 +1,94 @@ +--- a/Makefile ++++ b/Makefile +@@ -198,46 +198,6 @@ + CROSS_COMPILE ?= + CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) + +-# Architecture as present in compile.h +-UTS_MACHINE := $(ARCH) +-SRCARCH := $(ARCH) +- +-# Additional ARCH settings for x86 +-ifeq ($(ARCH),i386) +- SRCARCH := x86 +-endif +-ifeq ($(ARCH),x86_64) +- SRCARCH := x86 +-endif +- +-# Additional ARCH settings for sparc +-ifeq ($(ARCH),sparc32) +- SRCARCH := sparc +-endif +-ifeq ($(ARCH),sparc64) +- SRCARCH := sparc +-endif +- +-# Additional ARCH settings for sh +-ifeq ($(ARCH),sh64) +- SRCARCH := sh +-endif +- +-# Additional ARCH settings for tile +-ifeq ($(ARCH),tilepro) +- SRCARCH := tile +-endif +-ifeq ($(ARCH),tilegx) +- SRCARCH := tile +-endif +- +-# Where to locate arch specific headers +-hdr-arch := $(SRCARCH) +- +-ifeq ($(ARCH),m68knommu) +- hdr-arch := m68k +-endif +- + KCONFIG_CONFIG ?= .config + export KCONFIG_CONFIG + +@@ -354,6 +314,44 @@ LDFLAGS_MODULE = + AFLAGS_KERNEL = + CFLAGS_GCOV = -fprofile-arcs -ftest-coverage + ++-include $(obj)/.kernelvariables ++ ++# Architecture as present in compile.h ++UTS_MACHINE := $(ARCH) ++SRCARCH := $(ARCH) ++ ++# Additional ARCH settings for x86 ++ifeq ($(ARCH),i386) ++ SRCARCH := x86 ++endif ++ifeq ($(ARCH),x86_64) ++ SRCARCH := x86 ++endif ++ ++# Additional ARCH settings for sparc ++ifeq ($(ARCH),sparc64) ++ SRCARCH := sparc ++endif ++ ++# Additional ARCH settings for sh ++ifeq ($(ARCH),sh64) ++ SRCARCH := sh ++endif ++ ++# Additional ARCH settings for tile ++ifeq ($(ARCH),tilepro) ++ SRCARCH := tile ++endif ++ifeq ($(ARCH),tilegx) ++ SRCARCH := tile ++endif ++ ++# Where to locate arch specific headers ++hdr-arch := $(SRCARCH) ++ ++ifeq ($(ARCH),m68knommu) ++ hdr-arch := m68k ++endif + + # Use LINUXINCLUDE when you must reference the include/ directory. + # Needed to be compatible with the O= option --- linux-2.6-3.0.0.orig/debian/patches/debian/arch-sh4-fix-uimage-build.patch +++ linux-2.6-3.0.0/debian/patches/debian/arch-sh4-fix-uimage-build.patch @@ -0,0 +1,10 @@ +--- a/arch/sh/Makefile 2009-12-03 12:51:21.000000000 +0900 ++++ b/arch/sh/Makefile 2010-02-04 15:47:57.000000000 +0900 +@@ -75,7 +75,6 @@ + + # Give the various platforms the opportunity to set default image types + defaultimage-$(CONFIG_SUPERH32) := zImage +-defaultimage-$(CONFIG_SH_SH7785LCR) := uImage + defaultimage-$(CONFIG_SH_RSK) := uImage + defaultimage-$(CONFIG_SH_URQUELL) := uImage + defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) := vmlinux --- linux-2.6-3.0.0.orig/debian/patches/debian/version.patch +++ linux-2.6-3.0.0/debian/patches/debian/version.patch @@ -0,0 +1,67 @@ +--- a/init/version.c ++++ b/init/version.c +@@ -36,12 +36,31 @@ struct uts_namespace init_uts_ns = { + }; + EXPORT_SYMBOL_GPL(init_uts_ns); + +-/* FIXED STRINGS! Don't touch! */ + const char linux_banner[] = +- "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@" +- LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n"; ++ "Linux version " UTS_RELEASE ++#ifdef LINUX_COMPILE_DISTRIBUTION_OFFICIAL_BUILD ++ " (" LINUX_COMPILE_DISTRIBUTION " " ++ LINUX_COMPILE_DISTRIBUTION_VERSION ")" ++ " (" LINUX_COMPILE_DISTRIBUTION_UPLOADER ")" ++#else ++# ifdef LINUX_COMPILE_DISTRIBUTION_VERSION ++ " (" LINUX_COMPILE_DISTRIBUTION_VERSION ")" ++# endif ++ " (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")" ++#endif ++ " (" LINUX_COMPILER ")" ++ " " UTS_VERSION "\n"; + + const char linux_proc_banner[] = + "%s version %s" ++#ifdef LINUX_COMPILE_DISTRIBUTION_OFFICIAL_BUILD ++ " (" LINUX_COMPILE_DISTRIBUTION " " ++ LINUX_COMPILE_DISTRIBUTION_VERSION ")" ++ " (" LINUX_COMPILE_DISTRIBUTION_UPLOADER ")" ++#else ++# ifdef LINUX_COMPILE_DISTRIBUTION_VERSION ++ " (" LINUX_COMPILE_DISTRIBUTION_VERSION ")" ++# endif + " (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")" ++#endif + " (" LINUX_COMPILER ") %s\n"; +--- a/scripts/mkcompile_h ++++ b/scripts/mkcompile_h +@@ -73,7 +73,25 @@ UTS_TRUNCATE="sed -e s/\(.\{1,$UTS_LEN\}\).*/\1/" + + echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\" + +- echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\" +- echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\" ++ DISTRIBUTION=$(lsb_release -is 2>/dev/null) ++ DISTRIBUTION=${DISTRIBUTION:-Debian} ++ echo \#define LINUX_COMPILE_DISTRIBUTION \"$DISTRIBUTION\" ++ ++ if [ "$DISTRIBUTION_OFFICIAL_BUILD" ]; then ++ echo \#define LINUX_COMPILE_DISTRIBUTION_OFFICIAL_BUILD ++ echo \#define LINUX_COMPILE_DISTRIBUTION_UPLOADER \"$DISTRIBUTION_UPLOADER\" ++ echo \#define LINUX_COMPILE_DISTRIBUTION_VERSION \"$DISTRIBUTION_VERSION\" ++ echo \#define LINUX_COMPILE_BY \"unknown\" ++ echo \#define LINUX_COMPILE_HOST \"$DISTRIBUTION\" ++ else ++ if [ -e version.$DISTRIBUTION ]; then ++ echo \#define LINUX_COMPILE_DISTRIBUTION_VERSION \"$(cut -d" " -f1 version.$DISTRIBUTION)\" ++ else ++ echo \#define LINUX_COMPILE_DISTRIBUTION_VERSION \"unknown\" ++ fi ++ ++ echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\" ++ echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\" ++ fi + + echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\" --- linux-2.6-3.0.0.orig/debian/patches/debian/doc-build-parallel.patch +++ linux-2.6-3.0.0/debian/patches/debian/doc-build-parallel.patch @@ -0,0 +1,13 @@ +diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile +index 5a2882d..71c7077 100644 +--- a/Documentation/DocBook/Makefile ++++ b/Documentation/DocBook/Makefile +@@ -146,7 +146,7 @@ quiet_cmd_db2html = HTML $@ + cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi + + quiet_cmd_db2man = MAN $@ +- cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o $(obj)/man $< ; gzip -f $(obj)/man/*.9; fi ++ cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o $(obj)/man $< ; fi + %.9 : %.xml + @(which xmlto > /dev/null 2>&1) || \ + (echo "*** You need to install xmlto ***"; \ --- linux-2.6-3.0.0.orig/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch +++ linux-2.6-3.0.0/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch @@ -0,0 +1,34 @@ +From 086fa0c78e77b68ffc83c5b14bfdd425e63f024e Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Fri, 19 Nov 2010 02:12:48 +0000 +Subject: [PATCH 2/3] af_802154: Disable auto-loading as mitigation against local exploits + +Recent review has revealed several bugs in obscure protocol +implementations that can be exploited by local users for denial of +service or privilege escalation. We can mitigate the effect of any +remaining vulnerabilities in such protocols by preventing unprivileged +users from loading the modules, so that they are only exploitable on +systems where the administrator has chosen to load the protocol. + +The 'af_802154' (IEEE 802.15.4) protocol is not widely used, was +not present in the 'lenny' kernel, and seems to receive only sporadic +maintenance. Therefore disable auto-loading. + +Signed-off-by: Ben Hutchings +--- + net/ieee802154/af_ieee802154.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/ieee802154/af_ieee802154.c b/net/ieee802154/af_ieee802154.c +index cd949d5..8f49dd5 100644 +--- a/net/ieee802154/af_ieee802154.c ++++ b/net/ieee802154/af_ieee802154.c +@@ -363,4 +363,4 @@ module_init(af_ieee802154_init); + module_exit(af_ieee802154_remove); + + MODULE_LICENSE("GPL"); +-MODULE_ALIAS_NETPROTO(PF_IEEE802154); ++/* MODULE_ALIAS_NETPROTO(PF_IEEE802154); */ +-- +1.7.2.3 + --- linux-2.6-3.0.0.orig/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch +++ linux-2.6-3.0.0/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch @@ -0,0 +1,34 @@ +From 6f9debf7c17b33ab9bb254c6c3cc1480f14d3ec2 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Fri, 19 Nov 2010 02:12:48 +0000 +Subject: [PATCH 1/3] rds: Disable auto-loading as mitigation against local exploits + +Recent review has revealed several bugs in obscure protocol +implementations that can be exploited by local users for denial of +service or privilege escalation. We can mitigate the effect of any +remaining vulnerabilities in such protocols by preventing unprivileged +users from loading the modules, so that they are only exploitable on +systems where the administrator has chosen to load the protocol. + +The 'rds' protocol is one such protocol that has been found to be +vulnerable, and which was not present in the 'lenny' kernel. +Therefore disable auto-loading. + +Signed-off-by: Ben Hutchings +--- + net/rds/af_rds.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c +index 98e0538..d8d4525 100644 +--- a/net/rds/af_rds.c ++++ b/net/rds/af_rds.c +@@ -574,4 +574,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagram Sockets" + " v" DRV_VERSION " (" DRV_RELDATE ")"); + MODULE_VERSION(DRV_VERSION); + MODULE_LICENSE("Dual BSD/GPL"); +-MODULE_ALIAS_NETPROTO(PF_RDS); ++/* MODULE_ALIAS_NETPROTO(PF_RDS); */ +-- +1.7.2.3 + --- linux-2.6-3.0.0.orig/debian/patches/debian/sysrq-mask.patch +++ linux-2.6-3.0.0/debian/patches/debian/sysrq-mask.patch @@ -0,0 +1,30 @@ +--- a/include/linux/sysrq.h ++++ b/include/linux/sysrq.h +@@ -18,7 +18,7 @@ + #include + + /* Enable/disable SYSRQ support by default (0==no, 1==yes). */ +-#define SYSRQ_DEFAULT_ENABLE 1 ++#define SYSRQ_DEFAULT_ENABLE CONFIG_MAGIC_SYSRQ_DEFAULT_MASK + + /* Possible values of bitmask for enabling sysrq functions */ + /* 0x0001 is reserved for enable everything */ +diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug +index 234ceb1..415a834 100644 +--- a/lib/Kconfig.debug ++++ b/lib/Kconfig.debug +@@ -50,6 +50,14 @@ config MAGIC_SYSRQ + keys are documented in . Don't say Y + unless you really know what this hack does. + ++config MAGIC_SYSRQ_DEFAULT_MASK ++ hex "Default mask for Magic SysRq keys on the console" ++ depends on MAGIC_SYSRQ ++ default 1 ++ help ++ Specifies the default mask for the allowed SysRq keys. This can be ++ used to disable several sensitive keys by default. ++ + config STRIP_ASM_SYMS + bool "Strip assembler-generated symbols during link" + default n --- linux-2.6-3.0.0.orig/debian/patches/debian/module-bug-Add-TAINT_OOT_MODULE-flag.patch +++ linux-2.6-3.0.0/debian/patches/debian/module-bug-Add-TAINT_OOT_MODULE-flag.patch @@ -0,0 +1,99 @@ +From 129d27b59502c85e9427f2c5299083818f77bad2 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Sun, 9 Jan 2011 06:41:52 +0000 +Subject: [PATCH] module,bug: Add TAINT_OOT_MODULE flag for modules that weren't built in-tree + +This makes it easier to spot out-of-tree modules. We have enough +bugs of our own to deal with, before supporting these. + +Signed-off-by: Ben Hutchings +--- + include/linux/kernel.h | 1 + + kernel/module.c | 5 +++++ + kernel/panic.c | 2 ++ + scripts/mod/modpost.c | 7 +++++++ + 4 files changed, 15 insertions(+), 0 deletions(-) + +diff --git a/include/linux/kernel.h b/include/linux/kernel.h +index b6de9a6..7d41307 100644 +--- a/include/linux/kernel.h ++++ b/include/linux/kernel.h +@@ -250,6 +250,7 @@ extern enum system_states { + #define TAINT_WARN 9 + #define TAINT_CRAP 10 + #define TAINT_FIRMWARE_WORKAROUND 11 ++#define TAINT_OOT_MODULE 12 + + extern const char hex_asc[]; + #define hex_asc_lo(x) hex_asc[((x) & 0x0f)] +diff --git a/kernel/module.c b/kernel/module.c +index d190664..0549df3 100644 +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -2260,6 +2260,9 @@ static int check_modinfo(struct module *mod, struct load_info *info) + return -ENOEXEC; + } + ++ if (!get_modinfo(info, "intree")) ++ add_taint_module(mod, TAINT_OOT_MODULE); ++ + if (get_modinfo(info, "staging")) { + add_taint_module(mod, TAINT_CRAP); + printk(KERN_WARNING "%s: module is from the staging directory," +@@ -3001,6 +3004,8 @@ static char *module_flags(struct module *mod, char *buf) + buf[bx++] = '('; + if (mod->taints & (1 << TAINT_PROPRIETARY_MODULE)) + buf[bx++] = 'P'; ++ else if (mod->taints & (1 << TAINT_OOT_MODULE)) ++ buf[bx++] = 'O'; + if (mod->taints & (1 << TAINT_FORCED_MODULE)) + buf[bx++] = 'F'; + if (mod->taints & (1 << TAINT_CRAP)) +diff --git a/kernel/panic.c b/kernel/panic.c +index 4c13b1a..9385d25 100644 +--- a/kernel/panic.c ++++ b/kernel/panic.c +@@ -174,6 +174,7 @@ static const struct tnt tnts[] = { + { TAINT_WARN, 'W', ' ' }, + { TAINT_CRAP, 'C', ' ' }, + { TAINT_FIRMWARE_WORKAROUND, 'I', ' ' }, ++ { TAINT_OOT_MODULE, 'O', ' ' }, + }; + + /** +@@ -191,6 +192,7 @@ static const struct tnt tnts[] = { + * 'W' - Taint on warning. + * 'C' - modules from drivers/staging are loaded. + * 'I' - Working around severe firmware bug. ++ * 'O' - Out-of-tree module has been loaded. + * + * The string is overwritten by the next call to print_tainted(). + */ +diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c +index 33122ca..d0cb92c 100644 +--- a/scripts/mod/modpost.c ++++ b/scripts/mod/modpost.c +@@ -1818,6 +1818,12 @@ static void add_header(struct buffer *b, struct module *mod) + buf_printf(b, "};\n"); + } + ++static void add_intree_flag(struct buffer *b, int is_intree) ++{ ++ if (is_intree) ++ buf_printf(b, "\nMODULE_INFO(intree, \"Y\");\n"); ++} ++ + static void add_staging_flag(struct buffer *b, const char *name) + { + static const char *staging_dir = "drivers/staging"; +@@ -2138,6 +2144,7 @@ int main(int argc, char **argv) + buf.pos = 0; + + add_header(&buf, mod); ++ add_intree_flag(&buf, !external_module); + add_staging_flag(&buf, mod->name); + err |= add_versions(&buf, mod); + add_depends(&buf, mod, modules); +-- +1.7.4.1 + --- linux-2.6-3.0.0.orig/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch +++ linux-2.6-3.0.0/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch @@ -0,0 +1,37 @@ +From 0061a6e7c7e5fef1d257cb2c2d9180f655ea5c1a Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Sat, 20 Nov 2010 02:24:55 +0000 +Subject: [PATCH] decnet: Disable auto-loading as mitigation against local exploits + +Recent review has revealed several bugs in obscure protocol +implementations that can be exploited by local users for denial of +service or privilege escalation. We can mitigate the effect of any +remaining vulnerabilities in such protocols by preventing unprivileged +users from loading the modules, so that they are only exploitable on +systems where the administrator has chosen to load the protocol. + +The 'decnet' protocol is unmaintained and of mostly historical +interest, and the user-space support package 'dnet-common' loads the +module explicitly. Therefore disable auto-loading. + +Signed-off-by: Ben Hutchings +--- + net/decnet/af_decnet.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c +index 7a58c87..ed9e2b0 100644 +--- a/net/decnet/af_decnet.c ++++ b/net/decnet/af_decnet.c +@@ -2358,7 +2358,7 @@ void dn_unregister_sysctl(void); + MODULE_DESCRIPTION("The Linux DECnet Network Protocol"); + MODULE_AUTHOR("Linux DECnet Project Team"); + MODULE_LICENSE("GPL"); +-MODULE_ALIAS_NETPROTO(PF_DECnet); ++/* MODULE_ALIAS_NETPROTO(PF_DECnet); */ + + static char banner[] __initdata = KERN_INFO "NET4: DECnet for Linux: V.2.5.68s (C) 1995-2003 Linux DECnet Project Team\n"; + +-- +1.7.2.3 + --- linux-2.6-3.0.0.orig/debian/patches/debian/mips-disable-werror.patch +++ linux-2.6-3.0.0/debian/patches/debian/mips-disable-werror.patch @@ -0,0 +1,28 @@ +From 210ea66fdb876415c09d20497beed650ac65e9d2 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Mon, 13 Sep 2010 02:16:18 +0100 +Subject: [PATCH] Partially revert "MIPS: Add -Werror to arch/mips/Kbuild" + +This reverts commit 66f9ba101f54bda63ab1db97f9e9e94763d0651b. + +We really don't want to add -Werror anywhere. +--- + arch/mips/Kbuild | 5 ----- + 1 files changed, 0 insertions(+), 5 deletions(-) + +diff --git a/arch/mips/Kbuild b/arch/mips/Kbuild +index e322d65..2e6b28f 100644 +--- a/arch/mips/Kbuild ++++ b/arch/mips/Kbuild +@@ -1,8 +1,3 @@ +-# Fail on warnings - also for files referenced in subdirs +-# -Werror can be disabled for specific files using: +-# CFLAGS_ := -Wno-error +-subdir-ccflags-y := -Werror +- + # platform specific definitions + include arch/mips/Kbuild.platforms + obj-y := $(platform-y) +-- +1.7.1 + --- linux-2.6-3.0.0.orig/debian/patches/debian/dfsg/firmware-cleanup.patch +++ linux-2.6-3.0.0/debian/patches/debian/dfsg/firmware-cleanup.patch @@ -0,0 +1,26 @@ +diff --git a/Makefile b/Makefile +index d6592b6..9afac11 100644 +--- a/Makefile ++++ b/Makefile +@@ -487,7 +487,7 @@ scripts: scripts_basic include/config/auto.conf include/config/tristate.conf + + # Objects we will link into vmlinux / subdirs we need to visit + init-y := init/ +-drivers-y := drivers/ sound/ firmware/ ++drivers-y := drivers/ sound/ + net-y := net/ + libs-y := lib/ + core-y := usr/ +diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst +index 6bf8e87..2f6db83 100644 +--- a/scripts/Makefile.fwinst ++++ b/scripts/Makefile.fwinst +@@ -13,7 +13,7 @@ src := $(obj) + -include $(objtree)/.config + + include scripts/Kbuild.include +-include $(srctree)/$(obj)/Makefile ++-include $(srctree)/$(obj)/Makefile + + include scripts/Makefile.host + --- linux-2.6-3.0.0.orig/debian/patches/debian/dfsg/drivers-staging-wlags49_h25-disable.patch +++ linux-2.6-3.0.0/debian/patches/debian/dfsg/drivers-staging-wlags49_h25-disable.patch @@ -0,0 +1,10 @@ +--- a/drivers/staging/wlags49_h25/Kconfig ++++ b/drivers/staging/wlags49_h25/Kconfig +@@ -1,6 +1,7 @@ + config WLAGS49_H25 + tristate "Linksys HERMES II.5 WCF54G_Wireless-G_CompactFlash_Card" + depends on WLAN && PCMCIA ++ depends on BROKEN + select WIRELESS_EXT + select WEXT_SPY + select WEXT_PRIV --- linux-2.6-3.0.0.orig/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch +++ linux-2.6-3.0.0/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch @@ -0,0 +1,24 @@ +diff --git a/arch/powerpc/platforms/8xx/Kconfig b/arch/powerpc/platforms/8xx/Kconfig +index 48a920a..81570b6 100644 +--- a/arch/powerpc/platforms/8xx/Kconfig ++++ b/arch/powerpc/platforms/8xx/Kconfig +@@ -160,16 +160,19 @@ config NO_UCODE_PATCH + + config USB_SOF_UCODE_PATCH + bool "USB SOF patch" ++ depends on BROKEN + help + Help not implemented yet, coming soon. + + config I2C_SPI_UCODE_PATCH + bool "I2C/SPI relocation patch" ++ depends on BROKEN + help + Help not implemented yet, coming soon. + + config I2C_SPI_SMC1_UCODE_PATCH + bool "I2C/SPI/SMC1 relocation patch" ++ depends on BROKEN + help + Help not implemented yet, coming soon. + --- linux-2.6-3.0.0.orig/debian/patches/debian/dfsg/drivers-staging-wlags49_h2-disable.patch +++ linux-2.6-3.0.0/debian/patches/debian/dfsg/drivers-staging-wlags49_h2-disable.patch @@ -0,0 +1,10 @@ +--- a/drivers/staging/wlags49_h2/Kconfig ++++ b/drivers/staging/wlags49_h2/Kconfig +@@ -1,6 +1,7 @@ + config WLAGS49_H2 + tristate "Agere Systems HERMES II Wireless PC Card Model 0110" + depends on WLAN && PCMCIA ++ depends on BROKEN + select WIRELESS_EXT + select WEXT_SPY + select WEXT_PRIV --- linux-2.6-3.0.0.orig/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch +++ linux-2.6-3.0.0/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch @@ -0,0 +1,24 @@ +From 2a7d7ecc9fdcdaa0b82865078fd2a47e3b46da1b Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Mon, 17 Aug 2009 02:45:41 +0100 +Subject: [PATCH 1/2] dvb-usb-af9005: mark as broken + +--- + drivers/media/dvb/dvb-usb/Kconfig | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig +index 496c1a3..868e1cb 100644 +--- a/drivers/media/dvb/dvb-usb/Kconfig ++++ b/drivers/media/dvb/dvb-usb/Kconfig +@@ -238,6 +238,7 @@ config DVB_USB_OPERA1 + + config DVB_USB_AF9005 + tristate "Afatech AF9005 DVB-T USB1.1 support" ++ depends on BROKEN + depends on DVB_USB && EXPERIMENTAL + select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE + select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMISE +-- +1.6.3.3 + --- linux-2.6-3.0.0.orig/debian/patches/debian/dfsg/files-1 +++ linux-2.6-3.0.0/debian/patches/debian/dfsg/files-1 @@ -0,0 +1,24 @@ +rm Documentation/netlabel/draft-ietf-cipso-ipsecurity-01.txt + +# Some of this is DFSG-free, but it has been moved to firmware-free so +# we don't need it in linux-2.6 as well. +rm firmware + +rm arch/powerpc/sysdev/micropatch.c + +rm drivers/media/dvb/dvb-usb/af9005-script.h + +rm drivers/net/appletalk/cops.c +rm drivers/net/appletalk/cops.h +rm drivers/net/appletalk/cops_ffdrv.h +rm drivers/net/appletalk/cops_ltdrv.h + +rm drivers/staging/ft1000/ft1000-pcmcia/boot.h + +rm drivers/staging/keucr/init.h + +rm drivers/staging/wlags49_h2/ap_*.c +rm drivers/staging/wlags49_h2/sta_*.c + +rm sound/pci/cs46xx/cs46xx_image.h +rm sound/pci/cs46xx/imgs --- linux-2.6-3.0.0.orig/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch +++ linux-2.6-3.0.0/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch @@ -0,0 +1,45 @@ +diff -ruN a/drivers/net/appletalk/Kconfig b/drivers/net/appletalk/Kconfig +--- a/drivers/net/appletalk/Kconfig 2006-11-29 21:57:37.000000000 +0000 ++++ b/drivers/net/appletalk/Kconfig 2007-01-05 15:34:44.000000000 +0000 +@@ -49,32 +49,6 @@ + This driver is experimental, which means that it may not work. + See the file . + +-config COPS +- tristate "COPS LocalTalk PC support" +- depends on DEV_APPLETALK && (ISA || EISA) +- help +- This allows you to use COPS AppleTalk cards to connect to LocalTalk +- networks. You also need version 1.3.3 or later of the netatalk +- package. This driver is experimental, which means that it may not +- work. This driver will only work if you choose "AppleTalk DDP" +- networking support, above. +- Please read the file . +- +-config COPS_DAYNA +- bool "Dayna firmware support" +- depends on COPS +- help +- Support COPS compatible cards with Dayna style firmware (Dayna +- DL2000/ Daynatalk/PC (half length), COPS LT-95, Farallon PhoneNET PC +- III, Farallon PhoneNET PC II). +- +-config COPS_TANGENT +- bool "Tangent firmware support" +- depends on COPS +- help +- Support COPS compatible cards with Tangent style firmware (Tangent +- ATB_II, Novell NL-1000, Daystar Digital LT-200. +- + config IPDDP + tristate "Appletalk-IP driver support" + depends on DEV_APPLETALK && ATALK +diff -ruN a/drivers/net/appletalk/Makefile b/drivers/net/appletalk/Makefile +--- a/drivers/net/appletalk/Makefile 2006-11-29 21:57:37.000000000 +0000 ++++ b/drivers/net/appletalk/Makefile 2007-01-05 15:34:11.000000000 +0000 +@@ -3,5 +3,4 @@ + # + + obj-$(CONFIG_IPDDP) += ipddp.o +-obj-$(CONFIG_COPS) += cops.o + obj-$(CONFIG_LTPC) += ltpc.o --- linux-2.6-3.0.0.orig/debian/patches/debian/dfsg/sound-pci.patch +++ linux-2.6-3.0.0/debian/patches/debian/dfsg/sound-pci.patch @@ -0,0 +1,8 @@ +--- a/sound/pci/Kconfig ++++ b/sound/pci/Kconfig +@@ -229,4 +229,5 @@ config SND_CS46XX + config SND_CS46XX + tristate "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x" ++ depends on BROKEN + select SND_RAWMIDI + select SND_AC97_CODEC --- linux-2.6-3.0.0.orig/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch +++ linux-2.6-3.0.0/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch @@ -0,0 +1,152 @@ +From 0b8d838ecaa0235000347c084d192aa30b76ae70 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Mon, 24 Aug 2009 23:19:58 +0100 +Subject: [PATCH] af9005: Use request_firmware() to load register init script + +Read the register init script from the Windows driver. This is sick +but should avoid the potential copyright infringement in distributing +a version of the script which is directly derived from the driver. +--- + drivers/media/dvb/dvb-usb/Kconfig | 2 +- + drivers/media/dvb/dvb-usb/af9005-fe.c | 66 ++++++++++++++++++++++++++------ + 2 files changed, 54 insertions(+), 14 deletions(-) + +diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig +index 868e1cb..1c3d56d 100644 +--- a/drivers/media/dvb/dvb-usb/Kconfig ++++ b/drivers/media/dvb/dvb-usb/Kconfig +@@ -238,10 +238,10 @@ config DVB_USB_OPERA1 + + config DVB_USB_AF9005 + tristate "Afatech AF9005 DVB-T USB1.1 support" +- depends on BROKEN + depends on DVB_USB && EXPERIMENTAL + select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE + select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMISE ++ select FW_LOADER + help + Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver + and the TerraTec Cinergy T USB XE (Rev.1) +diff --git a/drivers/media/dvb/dvb-usb/af9005-fe.c b/drivers/media/dvb/dvb-usb/af9005-fe.c +index 199ece0..bcc26c8 100644 +--- a/drivers/media/dvb/dvb-usb/af9005-fe.c ++++ b/drivers/media/dvb/dvb-usb/af9005-fe.c +@@ -22,10 +22,26 @@ + * see Documentation/dvb/README.dvb-usb for more information + */ + #include "af9005.h" +-#include "af9005-script.h" + #include "mt2060.h" + #include "qt1010.h" + #include ++#include ++ ++/* Register initialisation script to be extracted from the Windows driver */ ++ ++typedef struct { ++ __le16 reg; ++ u8 pos; ++ u8 len; ++ u8 val; ++ u8 pad; ++} __packed RegDesc; ++ ++#define WIN_DRV_NAME "AF05BDA.sys" ++#define WIN_DRV_VERSION "6.3.2.1" ++#define WIN_DRV_SIZE 133504 ++#define WIN_DRV_SCRIPT_OFFSET 88316 ++#define WIN_DRV_SCRIPT_SIZE 1110 + + struct af9005_fe_state { + struct dvb_usb_device *d; +@@ -818,6 +834,8 @@ static int af9005_fe_init(struct dvb_frontend *fe) + { + struct af9005_fe_state *state = fe->demodulator_priv; + struct dvb_usb_adapter *adap = fe->dvb->priv; ++ const struct firmware *fw; ++ const RegDesc *script; + int ret, i, scriptlen; + u8 temp, temp0 = 0, temp1 = 0, temp2 = 0; + u8 buf[2]; +@@ -969,37 +987,55 @@ static int af9005_fe_init(struct dvb_frontend *fe) + if ((ret = af9005_write_ofdm_register(state->d, 0xaefb, 0x01))) + return ret; + +- /* load init script */ +- deb_info("load init script\n"); +- scriptlen = sizeof(script) / sizeof(RegDesc); ++ /* load and validate init script */ ++ deb_info("load init script from Windows driver\n"); ++ ret = request_firmware(&fw, WIN_DRV_NAME, &state->d->udev->dev); ++ if (ret) ++ return ret; ++ BUILD_BUG_ON(sizeof(RegDesc) != 6); ++ if (fw->size != WIN_DRV_SIZE || ++ memcmp(fw->data + WIN_DRV_SCRIPT_OFFSET, ++ "\x80\xa1\x00\x08\x0a\x00", 6) || ++ memcmp(fw->data + WIN_DRV_SCRIPT_OFFSET + WIN_DRV_SCRIPT_SIZE - 6, ++ "\x49\xa3\x00\x06\x02\x00", 6)) { ++ err("%s is invalid - should be version %s, size %u bytes\n", ++ WIN_DRV_NAME, WIN_DRV_VERSION, WIN_DRV_SIZE); ++ ret = -EINVAL; ++ goto fail_release; ++ } ++ ++ script = (const RegDesc *)(fw->data + WIN_DRV_SCRIPT_OFFSET); ++ scriptlen = WIN_DRV_SCRIPT_SIZE / sizeof(RegDesc); + for (i = 0; i < scriptlen; i++) { ++ u16 reg = le16_to_cpu(script[i].reg); + if ((ret = +- af9005_write_register_bits(state->d, script[i].reg, ++ af9005_write_register_bits(state->d, reg, + script[i].pos, + script[i].len, script[i].val))) +- return ret; ++ goto fail_release; + /* save 3 bytes of original fcw */ +- if (script[i].reg == 0xae18) ++ if (reg == 0xae18) + temp2 = script[i].val; +- if (script[i].reg == 0xae19) ++ if (reg == 0xae19) + temp1 = script[i].val; +- if (script[i].reg == 0xae1a) ++ if (reg == 0xae1a) + temp0 = script[i].val; + + /* save original unplug threshold */ +- if (script[i].reg == xd_p_reg_unplug_th) ++ if (reg == xd_p_reg_unplug_th) + state->original_if_unplug_th = script[i].val; +- if (script[i].reg == xd_p_reg_unplug_rf_gain_th) ++ if (reg == xd_p_reg_unplug_rf_gain_th) + state->original_rf_unplug_th = script[i].val; +- if (script[i].reg == xd_p_reg_unplug_dtop_if_gain_th) ++ if (reg == xd_p_reg_unplug_dtop_if_gain_th) + state->original_dtop_if_unplug_th = script[i].val; +- if (script[i].reg == xd_p_reg_unplug_dtop_rf_gain_th) ++ if (reg == xd_p_reg_unplug_dtop_rf_gain_th) + state->original_dtop_rf_unplug_th = script[i].val; + + } + state->original_fcw = + ((u32) temp2 << 16) + ((u32) temp1 << 8) + (u32) temp0; + ++ release_firmware(fw); + + /* save original TOPs */ + deb_info("save original TOPs\n"); +@@ -1079,6 +1115,10 @@ static int af9005_fe_init(struct dvb_frontend *fe) + + deb_info("profit!\n"); + return 0; ++ ++fail_release: ++ release_firmware(fw); ++ return ret; + } + + static int af9005_fe_sleep(struct dvb_frontend *fe) +-- +1.6.3.3 + --- linux-2.6-3.0.0.orig/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch +++ linux-2.6-3.0.0/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch @@ -0,0 +1,115 @@ +From: Ben Hutchings +Date: Sun, 30 May 2010 22:43:38 +0100 +Subject: [PATCH 1/2] cgroups: Allow memory cgroup support to be included but + disabled + +Memory cgroup support has some run-time overhead, so it's useful to +include it in a distribution kernel without enabling it by default. +Add a kernel config option to disable it by default and a kernel +parameter 'cgroup_enable' as the opposite to 'cgroup_disable'. + +Signed-off-by: Ben Hutchings +--- + Documentation/kernel-parameters.txt | 4 ++-- + init/Kconfig | 8 ++++++++ + kernel/cgroup.c | 20 ++++++++++++++++---- + mm/memcontrol.c | 3 +++ + 4 files changed, 29 insertions(+), 6 deletions(-) + +diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt +index cc85a92..38e0b44 100644 +--- a/Documentation/kernel-parameters.txt ++++ b/Documentation/kernel-parameters.txt +@@ -425,8 +425,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted. + ccw_timeout_log [S390] + See Documentation/s390/CommonIO for details. + +- cgroup_disable= [KNL] Disable a particular controller +- Format: {name of the controller(s) to disable} ++ cgroup_disable= [KNL] Disable/enable a particular controller ++ cgroup_enable= Format: {name of the controller(s) to disable/enable} + {Currently supported controllers - "memory"} + + checkreqprot [SELINUX] Set initial checkreqprot flag value. +diff --git a/init/Kconfig b/init/Kconfig +index d886b1e..3410369 100644 +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -659,6 +659,14 @@ config CGROUP_MEM_RES_CTLR + This config option also selects MM_OWNER config option, which + could in turn add some fork/exit overhead. + ++config CGROUP_MEM_RES_CTLR_DISABLED ++ bool "Memory Resource Controller disabled by default" ++ depends on CGROUP_MEM_RES_CTLR ++ default n ++ help ++ Disable the memory group resource controller unless explicitly ++ enabled using the kernel parameter "cgroup_enable=memory". ++ + config CGROUP_MEM_RES_CTLR_SWAP + bool "Memory Resource Controller Swap Extension" + depends on CGROUP_MEM_RES_CTLR && SWAP +diff --git a/kernel/cgroup.c b/kernel/cgroup.c +index 25c7eb5..b3c5aa7 100644 +--- a/kernel/cgroup.c ++++ b/kernel/cgroup.c +@@ -4526,7 +4526,7 @@ static void cgroup_release_agent(struct work_struct *work) + mutex_unlock(&cgroup_mutex); + } + +-static int __init cgroup_disable(char *str) ++static int __init cgroup_set_disabled(char *str, int value) + { + int i; + char *token; +@@ -4542,17 +4542,29 @@ static int __init cgroup_disable(char *str) + struct cgroup_subsys *ss = subsys[i]; + + if (!strcmp(token, ss->name)) { +- ss->disabled = 1; +- printk(KERN_INFO "Disabling %s control group" +- " subsystem\n", ss->name); ++ ss->disabled = value; ++ printk(KERN_INFO ++ "%sabling %s control group subsystem\n", ++ value ? "Dis" : "En", ss->name); + break; + } + } + } + return 1; + } ++ ++static int __init cgroup_disable(char *str) ++{ ++ return cgroup_set_disabled(str, 1); ++} + __setup("cgroup_disable=", cgroup_disable); + ++static int __init cgroup_enable(char *str) ++{ ++ return cgroup_set_disabled(str, 0); ++} ++__setup("cgroup_enable=", cgroup_enable); ++ + /* + * Functons for CSS ID. + */ +diff --git a/mm/memcontrol.c b/mm/memcontrol.c +index 010f916..f660a07 100644 +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -5153,6 +5153,9 @@ static void mem_cgroup_move_task(struct cgroup_subsys *ss, + + struct cgroup_subsys mem_cgroup_subsys = { + .name = "memory", ++#ifdef CONFIG_CGROUP_MEM_RES_CTLR_DISABLED ++ .disabled = 1, ++#endif + .subsys_id = mem_cgroup_subsys_id, + .create = mem_cgroup_create, + .pre_destroy = mem_cgroup_pre_destroy, +-- +1.7.4.4 + --- linux-2.6-3.0.0.orig/debian/patches/features/all/sound-pci-cs46xx-request_firmware.patch +++ linux-2.6-3.0.0/debian/patches/features/all/sound-pci-cs46xx-request_firmware.patch @@ -0,0 +1,172 @@ +From: Ben Hutchings +Subject: cs46xx: Use request_firmware() for old DSP code + +Based on work by Kalle Olavi Niemitalo . + +Tested by Antonio Ospite . +Unfortunately we cannot currently distribute the firmware. + +diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig +index 17e03b9..124b3a0 100644 +--- a/sound/pci/Kconfig ++++ b/sound/pci/Kconfig +@@ -229,7 +229,7 @@ config SND_CS4281 + + config SND_CS46XX + tristate "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x" +- depends on BROKEN ++ select FW_LOADER + select SND_RAWMIDI + select SND_AC97_CODEC + help +@@ -241,6 +241,7 @@ config SND_CS46XX + + config SND_CS46XX_NEW_DSP + bool "Cirrus Logic (Sound Fusion) New DSP support" ++ depends on BROKEN + depends on SND_CS46XX + default y + help +diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c +index 1be96ea..b12b930 100644 +--- a/sound/pci/cs46xx/cs46xx_lib.c ++++ b/sound/pci/cs46xx/cs46xx_lib.c +@@ -53,6 +53,7 @@ + #include + #include + #include ++#include + + + #include +@@ -308,7 +309,7 @@ static void snd_cs46xx_ac97_write(struct snd_ac97 *ac97, + */ + + int snd_cs46xx_download(struct snd_cs46xx *chip, +- u32 *src, ++ const __le32 *src, + unsigned long offset, + unsigned long len) + { +@@ -321,9 +322,9 @@ int snd_cs46xx_download(struct snd_cs46xx *chip, + dst = chip->region.idx[bank+1].remap_addr + offset; + len /= sizeof(u32); + +- /* writel already converts 32-bit value to right endianess */ + while (len-- > 0) { +- writel(*src++, dst); ++ __raw_writel((__force u32)*src++, dst); ++ mmiowb(); + dst += sizeof(u32); + } + return 0; +@@ -360,23 +361,77 @@ int snd_cs46xx_clear_BA1(struct snd_cs46xx *chip, + + #else /* old DSP image */ + +-#include "cs46xx_image.h" ++struct cs46xx_old_image { ++ __le32 size[BA1_MEMORY_COUNT]; ++ __le32 data[0]; ++}; + +-int snd_cs46xx_download_image(struct snd_cs46xx *chip) ++static int snd_cs46xx_check_image_size(const struct firmware *firmware) + { +- int idx, err; +- unsigned long offset = 0; ++ const struct cs46xx_old_image *image = ++ (const struct cs46xx_old_image *)firmware->data; ++ size_t offset = sizeof(*image); ++ int idx; ++ ++ if (firmware->size < offset) { ++ snd_printk(KERN_ERR "cs46xx: firmware too small\n"); ++ return -EINVAL; ++ } + + for (idx = 0; idx < BA1_MEMORY_COUNT; idx++) { +- if ((err = snd_cs46xx_download(chip, +- &BA1Struct.map[offset], +- BA1Struct.memory[idx].offset, +- BA1Struct.memory[idx].size)) < 0) +- return err; +- offset += BA1Struct.memory[idx].size >> 2; +- } ++ size_t size = le32_to_cpu(image->size[idx]); ++ ++ if (size % sizeof(u32)) { ++ snd_printk(KERN_ERR "cs46xx: firmware hunk misaligned\n"); ++ return -EINVAL; ++ } ++ if (size > BA1_DWORD_SIZE * sizeof(u32)) { ++ snd_printk(KERN_ERR "cs46xx: firmware hunk out of range\n"); ++ return -EINVAL; ++ } ++ offset += size; ++ } ++ ++ if (firmware->size != offset) { ++ snd_printk(KERN_ERR "cs46xx: firmware size mismatch\n"); ++ return -EINVAL; ++ } ++ + return 0; + } ++ ++static int snd_cs46xx_download_image(struct snd_cs46xx *chip) ++{ ++ int idx, err; ++ const struct firmware *firmware = NULL; ++ const struct cs46xx_old_image *image; ++ const __le32 *data; ++ ++ err = request_firmware(&firmware, "cs46xx/cs46xx-old.fw", ++ &chip->pci->dev); ++ if (err < 0) { ++ snd_printk(KERN_ERR "cs46xx: no firmware\n"); ++ return err; ++ } ++ ++ err = snd_cs46xx_check_image_size(firmware); ++ if (err < 0) ++ goto end; ++ image = (const struct cs46xx_old_image *)firmware->data; ++ data = image->data; ++ ++ for (idx = 0; idx < BA1_MEMORY_COUNT; idx++) { ++ size_t size = le32_to_cpu(image->size[idx]); ++ ++ err = snd_cs46xx_download(chip, data, idx << 16, size); ++ if (err < 0) ++ goto end; ++ data += size / sizeof(u32); ++ } ++end: ++ release_firmware(firmware); ++ return err; ++} + #endif /* CONFIG_SND_CS46XX_NEW_DSP */ + + /* +@@ -3874,3 +3929,5 @@ int __devinit snd_cs46xx_create(struct snd_card *card, + *rchip = chip; + return 0; + } ++ ++MODULE_FIRMWARE("cs46xx/cs46xx-old.fw"); +diff --git a/sound/pci/cs46xx/cs46xx_lib.h b/sound/pci/cs46xx/cs46xx_lib.h +index 4eb55aa..85babb5 100644 +--- a/sound/pci/cs46xx/cs46xx_lib.h ++++ b/sound/pci/cs46xx/cs46xx_lib.h +@@ -103,8 +103,8 @@ int cs46xx_dsp_proc_done (struct snd_cs46xx *chip); + #define cs46xx_dsp_proc_done(chip) + #endif + int cs46xx_dsp_scb_and_task_init (struct snd_cs46xx *chip); +-int snd_cs46xx_download (struct snd_cs46xx *chip, u32 *src, unsigned long offset, +- unsigned long len); ++int snd_cs46xx_download(struct snd_cs46xx *chip, const __le32 *src, unsigned long offset, ++ unsigned long len); + int snd_cs46xx_clear_BA1(struct snd_cs46xx *chip, unsigned long offset, unsigned long len); + int cs46xx_dsp_enable_spdif_out (struct snd_cs46xx *chip); + int cs46xx_dsp_enable_spdif_hw (struct snd_cs46xx *chip); --- linux-2.6-3.0.0.orig/debian/patches/features/all/rt2x00-Add-device-ID-for-RT539F-device.patch +++ linux-2.6-3.0.0/debian/patches/features/all/rt2x00-Add-device-ID-for-RT539F-device.patch @@ -0,0 +1,25 @@ +Subject: [PATCH v2] rt2x00: Add device ID for RT539F device. +From: Gertjan van Wingerde +Date: Sat, 04 Jun 2011 15:55:00 -0500 + +Reported-by: Wim Vander Schelden +Signed-off-by: Gertjan van Wingerde +--- + drivers/net/wireless/rt2x00/rt2800pci.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c +index 5513edf..fd99449 100644 +--- a/drivers/net/wireless/rt2x00/rt2800pci.c ++++ b/drivers/net/wireless/rt2x00/rt2800pci.c +@@ -1160,6 +1160,7 @@ static DEFINE_PCI_DEVICE_TABLE(rt2800pci_device_table) = { + #endif + #ifdef CONFIG_RT2800PCI_RT53XX + { PCI_DEVICE(0x1814, 0x5390) }, ++ { PCI_DEVICE(0x1814, 0x539f) }, + #endif + { 0, } + }; +-- +1.7.5 + --- linux-2.6-3.0.0.orig/debian/patches/features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch +++ linux-2.6-3.0.0/debian/patches/features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch @@ -0,0 +1,159 @@ +From 05bf283675db983cab59159db8fb82b9a2858c7f Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Tue, 14 Sep 2010 04:33:34 +0100 +Subject: [PATCH] Kbuild: kconfig: Verbose version of --listnewconfig + +If the KBUILD_VERBOSE environment variable is set to non-zero, show +the default values of new symbols and not just their names. + +Based on work by Bastian Blank and +maximilian attems . Simplified by Michal Marek +. + +Signed-off-by: Ben Hutchings +--- + scripts/kconfig/conf.c | 45 +++++++++++++++++++++++++++++++++--------- + scripts/kconfig/confdata.c | 5 ++- + scripts/kconfig/expr.h | 2 + + scripts/kconfig/lkc_proto.h | 1 + + 4 files changed, 41 insertions(+), 12 deletions(-) + +diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c +index 5459a38..f4752b4 100644 +--- a/scripts/kconfig/conf.c ++++ b/scripts/kconfig/conf.c +@@ -363,7 +363,6 @@ static void conf(struct menu *menu) + switch (prop->type) { + case P_MENU: + if ((input_mode == silentoldconfig || +- input_mode == listnewconfig || + input_mode == oldnoconfig) && + rootEntry != menu) { + check_conf(menu); +@@ -423,11 +422,7 @@ static void check_conf(struct menu *menu) + if (sym && !sym_has_value(sym)) { + if (sym_is_changable(sym) || + (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) { +- if (input_mode == listnewconfig) { +- if (sym->name && !sym_is_choice_value(sym)) { +- printf("%s%s\n", CONFIG_, sym->name); +- } +- } else if (input_mode != oldnoconfig) { ++ if (input_mode != oldnoconfig) { + if (!conf_cnt++) + printf(_("*\n* Restart config...\n*\n")); + rootEntry = menu_get_parent_menu(menu); +@@ -440,6 +435,33 @@ static void check_conf(struct menu *menu) + check_conf(child); + } + ++static void report_conf(struct menu *menu, bool verbose) ++{ ++ struct symbol *sym; ++ struct menu *child; ++ ++ if (!menu_is_visible(menu)) ++ return; ++ ++ if (verbose && menu == &rootmenu) { ++ printf("\n#\n" ++ "# Changes:\n" ++ "#\n"); ++ } ++ ++ sym = menu->sym; ++ if (sym && (sym->flags & SYMBOL_NEW) && ++ sym_is_changable(sym) && sym->name && !sym_is_choice_value(sym)) { ++ if (verbose) ++ conf_write_symbol(sym, stdout, true); ++ else ++ printf("CONFIG_%s\n", sym->name); ++ } ++ ++ for (child = menu->list; child; child = child->next) ++ report_conf(child, verbose); ++} ++ + static struct option long_opts[] = { + {"oldaskconfig", no_argument, NULL, oldaskconfig}, + {"oldconfig", no_argument, NULL, oldconfig}, +@@ -460,6 +482,7 @@ int main(int ac, char **av) + { + int opt; + const char *name; ++ const char *value; + struct stat tmpstat; + + setlocale(LC_ALL, ""); +@@ -604,16 +627,18 @@ int main(int ac, char **av) + input_mode = silentoldconfig; + /* fall through */ + case oldconfig: +- case listnewconfig: + case oldnoconfig: + case silentoldconfig: + /* Update until a loop caused no more changes */ + do { + conf_cnt = 0; + check_conf(&rootmenu); +- } while (conf_cnt && +- (input_mode != listnewconfig && +- input_mode != oldnoconfig)); ++ } while (conf_cnt && input_mode != oldnoconfig); ++ break; ++ case listnewconfig: ++ conf_set_all_new_symbols(def_default); ++ value = getenv("KBUILD_VERBOSE"); ++ report_conf(&rootmenu, value && atoi(value)); + break; + } + +diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c +index c06f150..fbbacac 100644 +--- a/scripts/kconfig/confdata.c ++++ b/scripts/kconfig/confdata.c +@@ -440,7 +440,7 @@ static void conf_write_string(bool headerfile, const char *name, + fputs("\"\n", out); + } + +-static void conf_write_symbol(struct symbol *sym, FILE *out, bool write_no) ++void conf_write_symbol(struct symbol *sym, FILE *out, bool write_no) + { + const char *str; + +@@ -1009,6 +1009,7 @@ void conf_set_all_new_symbols(enum conf_def_mode mode) + for_all_symbols(i, sym) { + if (sym_has_value(sym)) + continue; ++ sym->flags |= SYMBOL_NEW; + switch (sym_get_type(sym)) { + case S_BOOLEAN: + case S_TRISTATE: +diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h +index 184eb6a..b267933 100644 +--- a/scripts/kconfig/expr.h ++++ b/scripts/kconfig/expr.h +@@ -108,6 +108,8 @@ struct symbol { + #define SYMBOL_DEF3 0x40000 /* symbol.def[S_DEF_3] is valid */ + #define SYMBOL_DEF4 0x80000 /* symbol.def[S_DEF_4] is valid */ + ++#define SYMBOL_NEW 0x100000 /* symbol is new (loaded config did not provide a value) */ ++ + #define SYMBOL_MAXLENGTH 256 + #define SYMBOL_HASHSIZE 9973 + +diff --git a/scripts/kconfig/lkc_proto.h b/scripts/kconfig/lkc_proto.h +index 17342fe..6da571b 100644 +--- a/scripts/kconfig/lkc_proto.h ++++ b/scripts/kconfig/lkc_proto.h +@@ -7,6 +7,7 @@ P(conf_read_simple,int,(const char *name, int)); + P(conf_write_defconfig,int,(const char *name)); + P(conf_write,int,(const char *name)); + P(conf_write_autoconf,int,(void)); ++P(conf_write_symbol, void,(struct symbol*, FILE*, bool)); + P(conf_get_changed,bool,(void)); + P(conf_set_changed_callback, void,(void (*fn)(void))); + P(conf_set_message_callback, void,(void (*fn)(const char *fmt, va_list ap))); +-- +1.7.2.3 + --- linux-2.6-3.0.0.orig/debian/patches/features/all/vserver/gen-patch +++ linux-2.6-3.0.0/debian/patches/features/all/vserver/gen-patch @@ -0,0 +1,14 @@ +#!/bin/sh +patch="$1" + +error() { + echo "$@"; + exit 1 +} + +version=$(filterdiff -p 1 -i Makefile "$patch" | grep "+EXTRAVERSION" | sed -e 's,.*-vs,vs,') +[ "$version" ] || error "can't find version!" + +file="$(dirname $0)/$version.patch" + +filterdiff -p 1 --strip 1 --addprefix=a/ -x Makefile -x include/linux/Kbuild -x include/linux/vserver/Kbuild "$patch" | grep -v "^diff" > "$file" --- linux-2.6-3.0.0.orig/debian/patches/features/all/rt/gen-patch +++ linux-2.6-3.0.0/debian/patches/features/all/rt/gen-patch @@ -0,0 +1,17 @@ +#! /bin/sh + +set -e + +version="$1" + +if [ -z "$version" ]; then + echo >&2 "Usage: $0 " + exit 2 +fi + +name="patch-$version.patch" +dir="debian/patches/features/all/rt" +wget -O "$dir/$name.bz2" "http://www.kernel.org/pub/linux/kernel/projects/rt/patch-$version.patch.bz2" +wget -O "$dir/$name.bz2.sign" "http://www.kernel.org/pub/linux/kernel/projects/rt/patch-$version.patch.bz2.sign" +( cd "$dir" && gpg --verify "$name.bz2.sign" ) +bzcat "$dir/$name.bz2" | filterdiff -x linux-2.6/localversion-rt > "$dir/$name" --- linux-2.6-3.0.0.orig/debian/patches/features/all/rt/patch-3.0.1-rt11.patch +++ linux-2.6-3.0.0/debian/patches/features/all/rt/patch-3.0.1-rt11.patch @@ -0,0 +1,24826 @@ +bwh: Update context for 3.0.2 + +Index: linux-2.6/kernel/trace/ftrace.c +=================================================================== +--- linux-2.6.orig/kernel/trace/ftrace.c ++++ linux-2.6/kernel/trace/ftrace.c +@@ -1182,8 +1182,14 @@ alloc_and_copy_ftrace_hash(int size_bits + return NULL; + } + ++static void ++ftrace_hash_rec_disable(struct ftrace_ops *ops, int filter_hash); ++static void ++ftrace_hash_rec_enable(struct ftrace_ops *ops, int filter_hash); ++ + static int +-ftrace_hash_move(struct ftrace_hash **dst, struct ftrace_hash *src) ++ftrace_hash_move(struct ftrace_ops *ops, int enable, ++ struct ftrace_hash **dst, struct ftrace_hash *src) + { + struct ftrace_func_entry *entry; + struct hlist_node *tp, *tn; +@@ -1193,9 +1199,16 @@ ftrace_hash_move(struct ftrace_hash **ds + unsigned long key; + int size = src->count; + int bits = 0; ++ int ret; + int i; + + /* ++ * Remove the current set, update the hash and add ++ * them back. ++ */ ++ ftrace_hash_rec_disable(ops, enable); ++ ++ /* + * If the new source is empty, just free dst and assign it + * the empty_hash. + */ +@@ -1215,9 +1228,10 @@ ftrace_hash_move(struct ftrace_hash **ds + if (bits > FTRACE_HASH_MAX_BITS) + bits = FTRACE_HASH_MAX_BITS; + ++ ret = -ENOMEM; + new_hash = alloc_ftrace_hash(bits); + if (!new_hash) +- return -ENOMEM; ++ goto out; + + size = 1 << src->size_bits; + for (i = 0; i < size; i++) { +@@ -1236,7 +1250,16 @@ ftrace_hash_move(struct ftrace_hash **ds + rcu_assign_pointer(*dst, new_hash); + free_ftrace_hash_rcu(old_hash); + +- return 0; ++ ret = 0; ++ out: ++ /* ++ * Enable regardless of ret: ++ * On success, we enable the new hash. ++ * On failure, we re-enable the original hash. ++ */ ++ ftrace_hash_rec_enable(ops, enable); ++ ++ return ret; + } + + /* +@@ -2857,7 +2880,7 @@ ftrace_set_regex(struct ftrace_ops *ops, + ftrace_match_records(hash, buf, len); + + mutex_lock(&ftrace_lock); +- ret = ftrace_hash_move(orig_hash, hash); ++ ret = ftrace_hash_move(ops, enable, orig_hash, hash); + mutex_unlock(&ftrace_lock); + + mutex_unlock(&ftrace_regex_lock); +@@ -3040,18 +3063,12 @@ ftrace_regex_release(struct inode *inode + orig_hash = &iter->ops->notrace_hash; + + mutex_lock(&ftrace_lock); +- /* +- * Remove the current set, update the hash and add +- * them back. +- */ +- ftrace_hash_rec_disable(iter->ops, filter_hash); +- ret = ftrace_hash_move(orig_hash, iter->hash); +- if (!ret) { +- ftrace_hash_rec_enable(iter->ops, filter_hash); +- if (iter->ops->flags & FTRACE_OPS_FL_ENABLED +- && ftrace_enabled) +- ftrace_run_update_code(FTRACE_ENABLE_CALLS); +- } ++ ret = ftrace_hash_move(iter->ops, filter_hash, ++ orig_hash, iter->hash); ++ if (!ret && (iter->ops->flags & FTRACE_OPS_FL_ENABLED) ++ && ftrace_enabled) ++ ftrace_run_update_code(FTRACE_ENABLE_CALLS); ++ + mutex_unlock(&ftrace_lock); + } + free_ftrace_hash(iter->hash); +Index: linux-2.6/drivers/block/floppy.c +=================================================================== +--- linux-2.6.orig/drivers/block/floppy.c ++++ linux-2.6/drivers/block/floppy.c +@@ -4250,7 +4250,7 @@ static int __init floppy_init(void) + use_virtual_dma = can_use_virtual_dma & 1; + fdc_state[0].address = FDC1; + if (fdc_state[0].address == -1) { +- del_timer(&fd_timeout); ++ del_timer_sync(&fd_timeout); + err = -ENODEV; + goto out_unreg_region; + } +@@ -4261,7 +4261,7 @@ static int __init floppy_init(void) + fdc = 0; /* reset fdc in case of unexpected interrupt */ + err = floppy_grab_irq_and_dma(); + if (err) { +- del_timer(&fd_timeout); ++ del_timer_sync(&fd_timeout); + err = -EBUSY; + goto out_unreg_region; + } +@@ -4318,7 +4318,7 @@ static int __init floppy_init(void) + user_reset_fdc(-1, FD_RESET_ALWAYS, false); + } + fdc = 0; +- del_timer(&fd_timeout); ++ del_timer_sync(&fd_timeout); + current_drive = 0; + initialized = true; + if (have_no_fdc) { +@@ -4368,7 +4368,7 @@ static int __init floppy_init(void) + unregister_blkdev(FLOPPY_MAJOR, "fd"); + out_put_disk: + while (dr--) { +- del_timer(&motor_off_timer[dr]); ++ del_timer_sync(&motor_off_timer[dr]); + if (disks[dr]->queue) + blk_cleanup_queue(disks[dr]->queue); + put_disk(disks[dr]); +Index: linux-2.6/drivers/gpu/drm/drm_irq.c +=================================================================== +--- linux-2.6.orig/drivers/gpu/drm/drm_irq.c ++++ linux-2.6/drivers/gpu/drm/drm_irq.c +@@ -109,10 +109,7 @@ static void vblank_disable_and_save(stru + /* Prevent vblank irq processing while disabling vblank irqs, + * so no updates of timestamps or count can happen after we've + * disabled. Needed to prevent races in case of delayed irq's. +- * Disable preemption, so vblank_time_lock is held as short as +- * possible, even under a kernel with PREEMPT_RT patches. + */ +- preempt_disable(); + spin_lock_irqsave(&dev->vblank_time_lock, irqflags); + + dev->driver->disable_vblank(dev, crtc); +@@ -163,7 +160,6 @@ static void vblank_disable_and_save(stru + clear_vblank_timestamps(dev, crtc); + + spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags); +- preempt_enable(); + } + + static void vblank_disable_fn(unsigned long arg) +@@ -875,10 +871,6 @@ int drm_vblank_get(struct drm_device *de + spin_lock_irqsave(&dev->vbl_lock, irqflags); + /* Going from 0->1 means we have to enable interrupts again */ + if (atomic_add_return(1, &dev->vblank_refcount[crtc]) == 1) { +- /* Disable preemption while holding vblank_time_lock. Do +- * it explicitely to guard against PREEMPT_RT kernel. +- */ +- preempt_disable(); + spin_lock_irqsave(&dev->vblank_time_lock, irqflags2); + if (!dev->vblank_enabled[crtc]) { + /* Enable vblank irqs under vblank_time_lock protection. +@@ -898,7 +890,6 @@ int drm_vblank_get(struct drm_device *de + } + } + spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags2); +- preempt_enable(); + } else { + if (!dev->vblank_enabled[crtc]) { + atomic_dec(&dev->vblank_refcount[crtc]); +Index: linux-2.6/arch/x86/kernel/kprobes.c +=================================================================== +--- linux-2.6.orig/arch/x86/kernel/kprobes.c ++++ linux-2.6/arch/x86/kernel/kprobes.c +@@ -475,7 +475,6 @@ static void __kprobes setup_singlestep(s + * stepping. + */ + regs->ip = (unsigned long)p->ainsn.insn; +- preempt_enable_no_resched(); + return; + } + #endif +Index: linux-2.6/drivers/ide/ide_platform.c +=================================================================== +--- linux-2.6.orig/drivers/ide/ide_platform.c ++++ linux-2.6/drivers/ide/ide_platform.c +@@ -95,7 +95,7 @@ static int __devinit plat_ide_probe(stru + plat_ide_setup_ports(&hw, base, alt_base, pdata, res_irq->start); + hw.dev = &pdev->dev; + +- d.irq_flags = res_irq->flags; ++ d.irq_flags = 0; + if (mmio) + d.host_flags |= IDE_HFLAG_MMIO; + +Index: linux-2.6/kernel/sched.c +=================================================================== +--- linux-2.6.orig/kernel/sched.c ++++ linux-2.6/kernel/sched.c +@@ -185,6 +185,7 @@ void init_rt_bandwidth(struct rt_bandwid + + hrtimer_init(&rt_b->rt_period_timer, + CLOCK_MONOTONIC, HRTIMER_MODE_REL); ++ rt_b->rt_period_timer.irqsafe = 1; + rt_b->rt_period_timer.function = sched_rt_period_timer; + } + +@@ -800,7 +801,11 @@ late_initcall(sched_init_debug); + * Number of tasks to iterate in a single balance run. + * Limited because this is done with IRQs disabled. + */ ++#ifndef CONFIG_PREEMPT_RT_FULL + const_debug unsigned int sysctl_sched_nr_migrate = 32; ++#else ++const_debug unsigned int sysctl_sched_nr_migrate = 8; ++#endif + + /* + * period over which we average the RT time consumption, measured +@@ -1136,6 +1141,7 @@ static void init_rq_hrtick(struct rq *rq + + hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + rq->hrtick_timer.function = hrtick; ++ rq->hrtick_timer.irqsafe = 1; + } + #else /* CONFIG_SCHED_HRTICK */ + static inline void hrtick_clear(struct rq *rq) +@@ -2378,11 +2384,11 @@ static int select_fallback_rq(int cpu, s + + /* Look for allowed, online CPU in same node. */ + for_each_cpu_and(dest_cpu, nodemask, cpu_active_mask) +- if (cpumask_test_cpu(dest_cpu, &p->cpus_allowed)) ++ if (cpumask_test_cpu(dest_cpu, tsk_cpus_allowed(p))) + return dest_cpu; + + /* Any allowed, online CPU? */ +- dest_cpu = cpumask_any_and(&p->cpus_allowed, cpu_active_mask); ++ dest_cpu = cpumask_any_and(tsk_cpus_allowed(p), cpu_active_mask); + if (dest_cpu < nr_cpu_ids) + return dest_cpu; + +@@ -2419,7 +2425,7 @@ int select_task_rq(struct task_struct *p + * [ this allows ->select_task() to simply return task_cpu(p) and + * not worry about this generic constraint ] + */ +- if (unlikely(!cpumask_test_cpu(cpu, &p->cpus_allowed) || ++ if (unlikely(!cpumask_test_cpu(cpu, tsk_cpus_allowed(p)) || + !cpu_online(cpu))) + cpu = select_fallback_rq(task_cpu(p), p); + +@@ -2477,10 +2483,6 @@ static void ttwu_activate(struct rq *rq, + { + activate_task(rq, p, en_flags); + p->on_rq = 1; +- +- /* if a worker is waking up, notify workqueue */ +- if (p->flags & PF_WQ_WORKER) +- wq_worker_waking_up(p, cpu_of(rq)); + } + + /* +@@ -2678,8 +2680,25 @@ try_to_wake_up(struct task_struct *p, un + + smp_wmb(); + raw_spin_lock_irqsave(&p->pi_lock, flags); +- if (!(p->state & state)) ++ if (!(p->state & state)) { ++ /* ++ * The task might be running due to a spinlock sleeper ++ * wakeup. Check the saved state and set it to running ++ * if the wakeup condition is true. ++ */ ++ if (!(wake_flags & WF_LOCK_SLEEPER)) { ++ if (p->saved_state & state) ++ p->saved_state = TASK_RUNNING; ++ } + goto out; ++ } ++ ++ /* ++ * If this is a regular wakeup, then we can unconditionally ++ * clear the saved state of a "lock sleeper". ++ */ ++ if (!(wake_flags & WF_LOCK_SLEEPER)) ++ p->saved_state = TASK_RUNNING; + + success = 1; /* we're going to change ->state */ + cpu = task_cpu(p); +@@ -2735,40 +2754,6 @@ try_to_wake_up(struct task_struct *p, un + } + + /** +- * try_to_wake_up_local - try to wake up a local task with rq lock held +- * @p: the thread to be awakened +- * +- * Put @p on the run-queue if it's not already there. The caller must +- * ensure that this_rq() is locked, @p is bound to this_rq() and not +- * the current task. +- */ +-static void try_to_wake_up_local(struct task_struct *p) +-{ +- struct rq *rq = task_rq(p); +- +- BUG_ON(rq != this_rq()); +- BUG_ON(p == current); +- lockdep_assert_held(&rq->lock); +- +- if (!raw_spin_trylock(&p->pi_lock)) { +- raw_spin_unlock(&rq->lock); +- raw_spin_lock(&p->pi_lock); +- raw_spin_lock(&rq->lock); +- } +- +- if (!(p->state & TASK_NORMAL)) +- goto out; +- +- if (!p->on_rq) +- ttwu_activate(rq, p, ENQUEUE_WAKEUP); +- +- ttwu_do_wakeup(rq, p, 0); +- ttwu_stat(p, smp_processor_id(), 0); +-out: +- raw_spin_unlock(&p->pi_lock); +-} +- +-/** + * wake_up_process - Wake up a specific process + * @p: The process to be woken up. + * +@@ -2785,6 +2770,18 @@ int wake_up_process(struct task_struct * + } + EXPORT_SYMBOL(wake_up_process); + ++/** ++ * wake_up_lock_sleeper - Wake up a specific process blocked on a "sleeping lock" ++ * @p: The process to be woken up. ++ * ++ * Same as wake_up_process() above, but wake_flags=WF_LOCK_SLEEPER to indicate ++ * the nature of the wakeup. ++ */ ++int wake_up_lock_sleeper(struct task_struct *p) ++{ ++ return try_to_wake_up(p, TASK_ALL, WF_LOCK_SLEEPER); ++} ++ + int wake_up_state(struct task_struct *p, unsigned int state) + { + return try_to_wake_up(p, state, 0); +@@ -2825,7 +2822,7 @@ static void __sched_fork(struct task_str + void sched_fork(struct task_struct *p) + { + unsigned long flags; +- int cpu = get_cpu(); ++ int cpu; + + __sched_fork(p); + /* +@@ -2865,6 +2862,7 @@ void sched_fork(struct task_struct *p) + if (!rt_prio(p->prio)) + p->sched_class = &fair_sched_class; + ++ cpu = get_cpu(); + if (p->sched_class->task_fork) + p->sched_class->task_fork(p); + +@@ -2876,8 +2874,9 @@ void sched_fork(struct task_struct *p) + * Silence PROVE_RCU. + */ + raw_spin_lock_irqsave(&p->pi_lock, flags); +- set_task_cpu(p, cpu); ++ set_task_cpu(p, smp_processor_id()); + raw_spin_unlock_irqrestore(&p->pi_lock, flags); ++ put_cpu(); + + #if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) + if (likely(sched_info_on())) +@@ -2893,8 +2892,6 @@ void sched_fork(struct task_struct *p) + #ifdef CONFIG_SMP + plist_node_init(&p->pushable_tasks, MAX_PRIO); + #endif +- +- put_cpu(); + } + + /* +@@ -3060,8 +3057,12 @@ static void finish_task_switch(struct rq + finish_lock_switch(rq, prev); + + fire_sched_in_preempt_notifiers(current); ++ /* ++ * We use mmdrop_delayed() here so we don't have to do the ++ * full __mmdrop() when we are the last user. ++ */ + if (mm) +- mmdrop(mm); ++ mmdrop_delayed(mm); + if (unlikely(prev_state == TASK_DEAD)) { + /* + * Remove function-return probe instances associated with this +@@ -4242,9 +4243,9 @@ pick_next_task(struct rq *rq) + } + + /* +- * schedule() is the main scheduler function. ++ * __schedule() is the main scheduler function. + */ +-asmlinkage void __sched schedule(void) ++static void __sched __schedule(void) + { + struct task_struct *prev, *next; + unsigned long *switch_count; +@@ -4272,29 +4273,6 @@ asmlinkage void __sched schedule(void) + } else { + deactivate_task(rq, prev, DEQUEUE_SLEEP); + prev->on_rq = 0; +- +- /* +- * If a worker went to sleep, notify and ask workqueue +- * whether it wants to wake up a task to maintain +- * concurrency. +- */ +- if (prev->flags & PF_WQ_WORKER) { +- struct task_struct *to_wakeup; +- +- to_wakeup = wq_worker_sleeping(prev, cpu); +- if (to_wakeup) +- try_to_wake_up_local(to_wakeup); +- } +- +- /* +- * If we are going to sleep and we have plugged IO +- * queued, make sure to submit it to avoid deadlocks. +- */ +- if (blk_needs_flush_plug(prev)) { +- raw_spin_unlock(&rq->lock); +- blk_schedule_flush_plug(prev); +- raw_spin_lock(&rq->lock); +- } + } + switch_count = &prev->nvcsw; + } +@@ -4328,12 +4306,62 @@ asmlinkage void __sched schedule(void) + + post_schedule(rq); + +- preempt_enable_no_resched(); ++ __preempt_enable_no_resched(); + if (need_resched()) + goto need_resched; + } ++ ++static inline void sched_submit_work(struct task_struct *tsk) ++{ ++ if (!tsk->state || tsk_is_pi_blocked(tsk)) ++ return; ++ ++ /* ++ * If a worker went to sleep, notify and ask workqueue whether ++ * it wants to wake up a task to maintain concurrency. ++ */ ++ if (tsk->flags & PF_WQ_WORKER) ++ wq_worker_sleeping(tsk); ++ ++ /* ++ * If we are going to sleep and we have plugged IO queued, ++ * make sure to submit it to avoid deadlocks. ++ */ ++ if (blk_needs_flush_plug(tsk)) ++ blk_schedule_flush_plug(tsk); ++} ++ ++static inline void sched_update_worker(struct task_struct *tsk) ++{ ++ if (tsk_is_pi_blocked(tsk)) ++ return; ++ ++ if (tsk->flags & PF_WQ_WORKER) ++ wq_worker_running(tsk); ++} ++ ++asmlinkage void schedule(void) ++{ ++ struct task_struct *tsk = current; ++ ++ sched_submit_work(tsk); ++ __schedule(); ++ sched_update_worker(tsk); ++} + EXPORT_SYMBOL(schedule); + ++/** ++ * schedule_preempt_disabled - called with preemption disabled ++ * ++ * Returns with preemption disabled. Note: preempt_count must be 1 ++ */ ++void __sched schedule_preempt_disabled(void) ++{ ++ __preempt_enable_no_resched(); ++ schedule(); ++ preempt_disable(); ++} ++ + #ifdef CONFIG_MUTEX_SPIN_ON_OWNER + + static inline bool owner_running(struct mutex *lock, struct task_struct *owner) +@@ -4405,7 +4433,7 @@ asmlinkage void __sched notrace preempt_ + + do { + add_preempt_count_notrace(PREEMPT_ACTIVE); +- schedule(); ++ __schedule(); + sub_preempt_count_notrace(PREEMPT_ACTIVE); + + /* +@@ -4433,7 +4461,7 @@ asmlinkage void __sched preempt_schedule + do { + add_preempt_count(PREEMPT_ACTIVE); + local_irq_enable(); +- schedule(); ++ __schedule(); + local_irq_disable(); + sub_preempt_count(PREEMPT_ACTIVE); + +@@ -4828,9 +4856,8 @@ long __sched sleep_on_timeout(wait_queue + EXPORT_SYMBOL(sleep_on_timeout); + + #ifdef CONFIG_RT_MUTEXES +- + /* +- * rt_mutex_setprio - set the current priority of a task ++ * task_setprio - set the current priority of a task + * @p: task + * @prio: prio value (kernel-internal form) + * +@@ -4839,7 +4866,7 @@ EXPORT_SYMBOL(sleep_on_timeout); + * + * Used by the rt_mutex code to implement priority inheritance logic. + */ +-void rt_mutex_setprio(struct task_struct *p, int prio) ++void task_setprio(struct task_struct *p, int prio) + { + int oldprio, on_rq, running; + struct rq *rq; +@@ -4849,6 +4876,24 @@ void rt_mutex_setprio(struct task_struct + + rq = __task_rq_lock(p); + ++ /* ++ * Idle task boosting is a nono in general. There is one ++ * exception, when PREEMPT_RT and NOHZ is active: ++ * ++ * The idle task calls get_next_timer_interrupt() and holds ++ * the timer wheel base->lock on the CPU and another CPU wants ++ * to access the timer (probably to cancel it). We can safely ++ * ignore the boosting request, as the idle CPU runs this code ++ * with interrupts disabled and will complete the lock ++ * protected section without being interrupted. So there is no ++ * real need to boost. ++ */ ++ if (unlikely(p == rq->idle)) { ++ WARN_ON(p != rq->curr); ++ WARN_ON(p->pi_blocked_on); ++ goto out_unlock; ++ } ++ + trace_sched_pi_setprio(p, prio); + oldprio = p->prio; + prev_class = p->sched_class; +@@ -4872,9 +4917,9 @@ void rt_mutex_setprio(struct task_struct + enqueue_task(rq, p, oldprio < prio ? ENQUEUE_HEAD : 0); + + check_class_changed(rq, p, prev_class, oldprio); ++out_unlock: + __task_rq_unlock(rq); + } +- + #endif + + void set_user_nice(struct task_struct *p, long nice) +@@ -5543,7 +5588,7 @@ SYSCALL_DEFINE0(sched_yield) + __release(rq->lock); + spin_release(&rq->lock.dep_map, 1, _THIS_IP_); + do_raw_spin_unlock(&rq->lock); +- preempt_enable_no_resched(); ++ __preempt_enable_no_resched(); + + schedule(); + +@@ -5557,9 +5602,17 @@ static inline int should_resched(void) + + static void __cond_resched(void) + { +- add_preempt_count(PREEMPT_ACTIVE); +- schedule(); +- sub_preempt_count(PREEMPT_ACTIVE); ++ do { ++ add_preempt_count(PREEMPT_ACTIVE); ++ __schedule(); ++ sub_preempt_count(PREEMPT_ACTIVE); ++ /* ++ * Check again in case we missed a preemption ++ * opportunity between schedule and now. ++ */ ++ barrier(); ++ ++ } while (need_resched()); + } + + int __sched _cond_resched(void) +@@ -5600,6 +5653,7 @@ int __cond_resched_lock(spinlock_t *lock + } + EXPORT_SYMBOL(__cond_resched_lock); + ++#ifndef CONFIG_PREEMPT_RT_FULL + int __sched __cond_resched_softirq(void) + { + BUG_ON(!in_softirq()); +@@ -5613,6 +5667,7 @@ int __sched __cond_resched_softirq(void) + return 0; + } + EXPORT_SYMBOL(__cond_resched_softirq); ++#endif + + /** + * yield - yield the current processor to other threads. +@@ -5859,7 +5914,7 @@ void show_state_filter(unsigned long sta + printk(KERN_INFO + " task PC stack pid father\n"); + #endif +- read_lock(&tasklist_lock); ++ rcu_read_lock(); + do_each_thread(g, p) { + /* + * reset the NMI-timeout, listing all files on a slow +@@ -5875,7 +5930,7 @@ void show_state_filter(unsigned long sta + #ifdef CONFIG_SCHED_DEBUG + sysrq_sched_debug_show(); + #endif +- read_unlock(&tasklist_lock); ++ rcu_read_unlock(); + /* + * Only show locks if all tasks are dumped: + */ +@@ -5997,12 +6052,12 @@ static inline void sched_init_granularit + #ifdef CONFIG_SMP + void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) + { +- if (p->sched_class && p->sched_class->set_cpus_allowed) +- p->sched_class->set_cpus_allowed(p, new_mask); +- else { +- cpumask_copy(&p->cpus_allowed, new_mask); ++ if (!__migrate_disabled(p)) { ++ if (p->sched_class && p->sched_class->set_cpus_allowed) ++ p->sched_class->set_cpus_allowed(p, new_mask); + p->rt.nr_cpus_allowed = cpumask_weight(new_mask); + } ++ cpumask_copy(&p->cpus_allowed, new_mask); + } + + /* +@@ -6053,7 +6108,7 @@ int set_cpus_allowed_ptr(struct task_str + do_set_cpus_allowed(p, new_mask); + + /* Can the task run on the task's current CPU? If so, we're done */ +- if (cpumask_test_cpu(task_cpu(p), new_mask)) ++ if (cpumask_test_cpu(task_cpu(p), new_mask) || __migrate_disabled(p)) + goto out; + + dest_cpu = cpumask_any_and(cpu_active_mask, new_mask); +@@ -6072,6 +6127,101 @@ int set_cpus_allowed_ptr(struct task_str + } + EXPORT_SYMBOL_GPL(set_cpus_allowed_ptr); + ++#ifdef CONFIG_PREEMPT_RT_FULL ++void migrate_disable(void) ++{ ++ struct task_struct *p = current; ++ const struct cpumask *mask; ++ unsigned long flags; ++ struct rq *rq; ++ ++ preempt_disable(); ++ if (p->migrate_disable) { ++ p->migrate_disable++; ++ preempt_enable(); ++ return; ++ } ++ ++ pin_current_cpu(); ++ if (unlikely(!scheduler_running)) { ++ p->migrate_disable = 1; ++ preempt_enable(); ++ return; ++ } ++ ++ /* ++ * Since this is always current we can get away with only locking ++ * rq->lock, the ->cpus_allowed value can normally only be changed ++ * while holding both p->pi_lock and rq->lock, but seeing that this ++ * it current, we cannot actually be waking up, so all code that ++ * relies on serialization against p->pi_lock is out of scope. ++ * ++ * Taking rq->lock serializes us against things like ++ * set_cpus_allowed_ptr() that can still happen concurrently. ++ */ ++ rq = this_rq(); ++ raw_spin_lock_irqsave(&rq->lock, flags); ++ p->migrate_disable = 1; ++ mask = tsk_cpus_allowed(p); ++ ++ WARN_ON(!cpumask_test_cpu(smp_processor_id(), mask)); ++ ++ if (!cpumask_equal(&p->cpus_allowed, mask)) { ++ if (p->sched_class->set_cpus_allowed) ++ p->sched_class->set_cpus_allowed(p, mask); ++ p->rt.nr_cpus_allowed = cpumask_weight(mask); ++ } ++ raw_spin_unlock_irqrestore(&rq->lock, flags); ++ preempt_enable(); ++} ++EXPORT_SYMBOL_GPL(migrate_disable); ++ ++void migrate_enable(void) ++{ ++ struct task_struct *p = current; ++ const struct cpumask *mask; ++ unsigned long flags; ++ struct rq *rq; ++ ++ WARN_ON_ONCE(p->migrate_disable <= 0); ++ ++ preempt_disable(); ++ if (p->migrate_disable > 1) { ++ p->migrate_disable--; ++ preempt_enable(); ++ return; ++ } ++ ++ if (unlikely(!scheduler_running)) { ++ p->migrate_disable = 0; ++ unpin_current_cpu(); ++ preempt_enable(); ++ return; ++ } ++ ++ /* ++ * See comment in migrate_disable(). ++ */ ++ rq = this_rq(); ++ raw_spin_lock_irqsave(&rq->lock, flags); ++ p->migrate_disable = 0; ++ mask = tsk_cpus_allowed(p); ++ ++ WARN_ON(!cpumask_test_cpu(smp_processor_id(), mask)); ++ ++ if (!cpumask_equal(&p->cpus_allowed, mask)) { ++ if (p->sched_class->set_cpus_allowed) ++ p->sched_class->set_cpus_allowed(p, mask); ++ p->rt.nr_cpus_allowed = cpumask_weight(mask); ++ } ++ ++ raw_spin_unlock_irqrestore(&rq->lock, flags); ++ unpin_current_cpu(); ++ preempt_enable(); ++} ++EXPORT_SYMBOL_GPL(migrate_enable); ++#endif /* CONFIG_PREEMPT_RT_FULL */ ++ + /* + * Move (not current) task off this cpu, onto dest cpu. We're doing + * this because either it can't run here any more (set_cpus_allowed() +@@ -6100,7 +6250,7 @@ static int __migrate_task(struct task_st + if (task_cpu(p) != src_cpu) + goto done; + /* Affinity changed (again). */ +- if (!cpumask_test_cpu(dest_cpu, &p->cpus_allowed)) ++ if (!cpumask_test_cpu(dest_cpu, tsk_cpus_allowed(p))) + goto fail; + + /* +@@ -6142,6 +6292,8 @@ static int migration_cpu_stop(void *data + + #ifdef CONFIG_HOTPLUG_CPU + ++static DEFINE_PER_CPU(struct mm_struct *, idle_last_mm); ++ + /* + * Ensures that the idle task is using init_mm right before its cpu goes + * offline. +@@ -6154,7 +6306,12 @@ void idle_task_exit(void) + + if (mm != &init_mm) + switch_mm(mm, &init_mm, current); +- mmdrop(mm); ++ ++ /* ++ * Defer the cleanup to an alive cpu. On RT we can neither ++ * call mmdrop() nor mmdrop_delayed() from here. ++ */ ++ per_cpu(idle_last_mm, smp_processor_id()) = mm; + } + + /* +@@ -6472,6 +6629,12 @@ migration_call(struct notifier_block *nf + migrate_nr_uninterruptible(rq); + calc_global_load_remove(rq); + break; ++ case CPU_DEAD: ++ if (per_cpu(idle_last_mm, cpu)) { ++ mmdrop(per_cpu(idle_last_mm, cpu)); ++ per_cpu(idle_last_mm, cpu) = NULL; ++ } ++ break; + #endif + } + +@@ -8188,7 +8351,8 @@ void __init sched_init(void) + #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP + static inline int preempt_count_equals(int preempt_offset) + { +- int nested = (preempt_count() & ~PREEMPT_ACTIVE) + rcu_preempt_depth(); ++ int nested = (preempt_count() & ~PREEMPT_ACTIVE) + ++ sched_rcu_preempt_depth(); + + return (nested == preempt_offset); + } +Index: linux-2.6/block/blk-core.c +=================================================================== +--- linux-2.6.orig/block/blk-core.c ++++ linux-2.6/block/blk-core.c +@@ -236,7 +236,7 @@ EXPORT_SYMBOL(blk_delay_queue); + **/ + void blk_start_queue(struct request_queue *q) + { +- WARN_ON(!irqs_disabled()); ++ WARN_ON_NONRT(!irqs_disabled()); + + queue_flag_clear(QUEUE_FLAG_STOPPED, q); + __blk_run_queue(q); +@@ -301,7 +301,11 @@ void __blk_run_queue(struct request_queu + { + if (unlikely(blk_queue_stopped(q))) + return; +- ++ /* ++ * q->request_fn() can drop q->queue_lock and reenable ++ * interrupts, but must return with q->queue_lock held and ++ * interrupts disabled. ++ */ + q->request_fn(q); + } + EXPORT_SYMBOL(__blk_run_queue); +@@ -2670,11 +2674,11 @@ static void queue_unplugged(struct reque + * this lock). + */ + if (from_schedule) { +- spin_unlock(q->queue_lock); ++ spin_unlock_irq(q->queue_lock); + blk_run_queue_async(q); + } else { + __blk_run_queue(q); +- spin_unlock(q->queue_lock); ++ spin_unlock_irq(q->queue_lock); + } + + } +@@ -2700,7 +2704,6 @@ static void flush_plug_callbacks(struct + void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) + { + struct request_queue *q; +- unsigned long flags; + struct request *rq; + LIST_HEAD(list); + unsigned int depth; +@@ -2721,11 +2724,6 @@ void blk_flush_plug_list(struct blk_plug + q = NULL; + depth = 0; + +- /* +- * Save and disable interrupts here, to avoid doing it for every +- * queue lock we have to take. +- */ +- local_irq_save(flags); + while (!list_empty(&list)) { + rq = list_entry_rq(list.next); + list_del_init(&rq->queuelist); +@@ -2738,7 +2736,7 @@ void blk_flush_plug_list(struct blk_plug + queue_unplugged(q, depth, from_schedule); + q = rq->q; + depth = 0; +- spin_lock(q->queue_lock); ++ spin_lock_irq(q->queue_lock); + } + /* + * rq is already accounted, so use raw insert +@@ -2756,8 +2754,6 @@ void blk_flush_plug_list(struct blk_plug + */ + if (q) + queue_unplugged(q, depth, from_schedule); +- +- local_irq_restore(flags); + } + + void blk_finish_plug(struct blk_plug *plug) +Index: linux-2.6/kernel/workqueue.c +=================================================================== +--- linux-2.6.orig/kernel/workqueue.c ++++ linux-2.6/kernel/workqueue.c +@@ -137,6 +137,7 @@ struct worker { + unsigned int flags; /* X: flags */ + int id; /* I: worker id */ + struct work_struct rebind_work; /* L: rebind worker to cpu */ ++ int sleeping; /* None */ + }; + + /* +@@ -657,66 +658,58 @@ static void wake_up_worker(struct global + } + + /** +- * wq_worker_waking_up - a worker is waking up +- * @task: task waking up +- * @cpu: CPU @task is waking up to ++ * wq_worker_running - a worker is running again ++ * @task: task returning from sleep + * +- * This function is called during try_to_wake_up() when a worker is +- * being awoken. +- * +- * CONTEXT: +- * spin_lock_irq(rq->lock) ++ * This function is called when a worker returns from schedule() + */ +-void wq_worker_waking_up(struct task_struct *task, unsigned int cpu) ++void wq_worker_running(struct task_struct *task) + { + struct worker *worker = kthread_data(task); + ++ if (!worker->sleeping) ++ return; + if (!(worker->flags & WORKER_NOT_RUNNING)) +- atomic_inc(get_gcwq_nr_running(cpu)); ++ atomic_inc(get_gcwq_nr_running(smp_processor_id())); ++ worker->sleeping = 0; + } + + /** + * wq_worker_sleeping - a worker is going to sleep + * @task: task going to sleep +- * @cpu: CPU in question, must be the current CPU number +- * +- * This function is called during schedule() when a busy worker is +- * going to sleep. Worker on the same cpu can be woken up by +- * returning pointer to its task. +- * +- * CONTEXT: +- * spin_lock_irq(rq->lock) + * +- * RETURNS: +- * Worker task on @cpu to wake up, %NULL if none. ++ * This function is called from schedule() when a busy worker is ++ * going to sleep. + */ +-struct task_struct *wq_worker_sleeping(struct task_struct *task, +- unsigned int cpu) ++void wq_worker_sleeping(struct task_struct *task) + { +- struct worker *worker = kthread_data(task), *to_wakeup = NULL; +- struct global_cwq *gcwq = get_gcwq(cpu); +- atomic_t *nr_running = get_gcwq_nr_running(cpu); ++ struct worker *worker = kthread_data(task); ++ struct global_cwq *gcwq; ++ int cpu; + + if (worker->flags & WORKER_NOT_RUNNING) +- return NULL; ++ return; ++ ++ if (WARN_ON_ONCE(worker->sleeping)) ++ return; + +- /* this can only happen on the local cpu */ +- BUG_ON(cpu != raw_smp_processor_id()); ++ worker->sleeping = 1; + ++ cpu = smp_processor_id(); ++ gcwq = get_gcwq(cpu); ++ spin_lock_irq(&gcwq->lock); + /* + * The counterpart of the following dec_and_test, implied mb, + * worklist not empty test sequence is in insert_work(). + * Please read comment there. +- * +- * NOT_RUNNING is clear. This means that trustee is not in +- * charge and we're running on the local cpu w/ rq lock held +- * and preemption disabled, which in turn means that none else +- * could be manipulating idle_list, so dereferencing idle_list +- * without gcwq lock is safe. +- */ +- if (atomic_dec_and_test(nr_running) && !list_empty(&gcwq->worklist)) +- to_wakeup = first_worker(gcwq); +- return to_wakeup ? to_wakeup->task : NULL; ++ */ ++ if (atomic_dec_and_test(get_gcwq_nr_running(cpu)) && ++ !list_empty(&gcwq->worklist)) { ++ worker = first_worker(gcwq); ++ if (worker) ++ wake_up_process(worker->task); ++ } ++ spin_unlock_irq(&gcwq->lock); + } + + /** +@@ -1067,8 +1060,8 @@ int queue_work(struct workqueue_struct * + { + int ret; + +- ret = queue_work_on(get_cpu(), wq, work); +- put_cpu(); ++ ret = queue_work_on(get_cpu_light(), wq, work); ++ put_cpu_light(); + + return ret; + } +@@ -3484,6 +3477,25 @@ static int __devinit workqueue_cpu_callb + kthread_stop(new_trustee); + return NOTIFY_BAD; + } ++ break; ++ case CPU_POST_DEAD: ++ case CPU_UP_CANCELED: ++ case CPU_DOWN_FAILED: ++ case CPU_ONLINE: ++ break; ++ case CPU_DYING: ++ /* ++ * We access this lockless. We are on the dying CPU ++ * and called from stomp machine. ++ * ++ * Before this, the trustee and all workers except for ++ * the ones which are still executing works from ++ * before the last CPU down must be on the cpu. After ++ * this, they'll all be diasporas. ++ */ ++ gcwq->flags |= GCWQ_DISASSOCIATED; ++ default: ++ goto out; + } + + /* some are called w/ irq disabled, don't disturb irq status */ +@@ -3503,16 +3515,6 @@ static int __devinit workqueue_cpu_callb + gcwq->first_idle = new_worker; + break; + +- case CPU_DYING: +- /* +- * Before this, the trustee and all workers except for +- * the ones which are still executing works from +- * before the last CPU down must be on the cpu. After +- * this, they'll all be diasporas. +- */ +- gcwq->flags |= GCWQ_DISASSOCIATED; +- break; +- + case CPU_POST_DEAD: + gcwq->trustee_state = TRUSTEE_BUTCHER; + /* fall through */ +@@ -3546,6 +3548,7 @@ static int __devinit workqueue_cpu_callb + + spin_unlock_irqrestore(&gcwq->lock, flags); + ++out: + return notifier_from_errno(0); + } + +Index: linux-2.6/kernel/workqueue_sched.h +=================================================================== +--- linux-2.6.orig/kernel/workqueue_sched.h ++++ linux-2.6/kernel/workqueue_sched.h +@@ -4,6 +4,5 @@ + * Scheduler hooks for concurrency managed workqueue. Only to be + * included from sched.c and workqueue.c. + */ +-void wq_worker_waking_up(struct task_struct *task, unsigned int cpu); +-struct task_struct *wq_worker_sleeping(struct task_struct *task, +- unsigned int cpu); ++void wq_worker_running(struct task_struct *task); ++void wq_worker_sleeping(struct task_struct *task); +Index: linux-2.6/arch/x86/kernel/cpu/intel_cacheinfo.c +=================================================================== +--- linux-2.6.orig/arch/x86/kernel/cpu/intel_cacheinfo.c ++++ linux-2.6/arch/x86/kernel/cpu/intel_cacheinfo.c +@@ -151,28 +151,17 @@ union _cpuid4_leaf_ecx { + u32 full; + }; + +-struct amd_l3_cache { +- struct amd_northbridge *nb; +- unsigned indices; +- u8 subcaches[4]; +-}; +- +-struct _cpuid4_info { ++struct _cpuid4_info_regs { + union _cpuid4_leaf_eax eax; + union _cpuid4_leaf_ebx ebx; + union _cpuid4_leaf_ecx ecx; + unsigned long size; +- struct amd_l3_cache *l3; +- DECLARE_BITMAP(shared_cpu_map, NR_CPUS); ++ struct amd_northbridge *nb; + }; + +-/* subset of above _cpuid4_info w/o shared_cpu_map */ +-struct _cpuid4_info_regs { +- union _cpuid4_leaf_eax eax; +- union _cpuid4_leaf_ebx ebx; +- union _cpuid4_leaf_ecx ecx; +- unsigned long size; +- struct amd_l3_cache *l3; ++struct _cpuid4_info { ++ struct _cpuid4_info_regs base; ++ DECLARE_BITMAP(shared_cpu_map, NR_CPUS); + }; + + unsigned short num_cache_leaves; +@@ -314,12 +303,13 @@ struct _cache_attr { + /* + * L3 cache descriptors + */ +-static void __cpuinit amd_calc_l3_indices(struct amd_l3_cache *l3) ++static void __cpuinit amd_calc_l3_indices(struct amd_northbridge *nb) + { ++ struct amd_l3_cache *l3 = &nb->l3_cache; + unsigned int sc0, sc1, sc2, sc3; + u32 val = 0; + +- pci_read_config_dword(l3->nb->misc, 0x1C4, &val); ++ pci_read_config_dword(nb->misc, 0x1C4, &val); + + /* calculate subcache sizes */ + l3->subcaches[0] = sc0 = !(val & BIT(0)); +@@ -333,33 +323,16 @@ static void __cpuinit amd_calc_l3_indice + static void __cpuinit amd_init_l3_cache(struct _cpuid4_info_regs *this_leaf, + int index) + { +- static struct amd_l3_cache *__cpuinitdata l3_caches; + int node; + + /* only for L3, and not in virtualized environments */ +- if (index < 3 || amd_nb_num() == 0) ++ if (index < 3) + return; + +- /* +- * Strictly speaking, the amount in @size below is leaked since it is +- * never freed but this is done only on shutdown so it doesn't matter. +- */ +- if (!l3_caches) { +- int size = amd_nb_num() * sizeof(struct amd_l3_cache); +- +- l3_caches = kzalloc(size, GFP_ATOMIC); +- if (!l3_caches) +- return; +- } +- + node = amd_get_nb_id(smp_processor_id()); +- +- if (!l3_caches[node].nb) { +- l3_caches[node].nb = node_to_amd_nb(node); +- amd_calc_l3_indices(&l3_caches[node]); +- } +- +- this_leaf->l3 = &l3_caches[node]; ++ this_leaf->nb = node_to_amd_nb(node); ++ if (this_leaf->nb && !this_leaf->nb->l3_cache.indices) ++ amd_calc_l3_indices(this_leaf->nb); + } + + /* +@@ -369,11 +342,11 @@ static void __cpuinit amd_init_l3_cache( + * + * @returns: the disabled index if used or negative value if slot free. + */ +-int amd_get_l3_disable_slot(struct amd_l3_cache *l3, unsigned slot) ++int amd_get_l3_disable_slot(struct amd_northbridge *nb, unsigned slot) + { + unsigned int reg = 0; + +- pci_read_config_dword(l3->nb->misc, 0x1BC + slot * 4, ®); ++ pci_read_config_dword(nb->misc, 0x1BC + slot * 4, ®); + + /* check whether this slot is activated already */ + if (reg & (3UL << 30)) +@@ -387,11 +360,10 @@ static ssize_t show_cache_disable(struct + { + int index; + +- if (!this_leaf->l3 || +- !amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE)) ++ if (!this_leaf->base.nb || !amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE)) + return -EINVAL; + +- index = amd_get_l3_disable_slot(this_leaf->l3, slot); ++ index = amd_get_l3_disable_slot(this_leaf->base.nb, slot); + if (index >= 0) + return sprintf(buf, "%d\n", index); + +@@ -408,7 +380,7 @@ show_cache_disable_##slot(struct _cpuid4 + SHOW_CACHE_DISABLE(0) + SHOW_CACHE_DISABLE(1) + +-static void amd_l3_disable_index(struct amd_l3_cache *l3, int cpu, ++static void amd_l3_disable_index(struct amd_northbridge *nb, int cpu, + unsigned slot, unsigned long idx) + { + int i; +@@ -421,10 +393,10 @@ static void amd_l3_disable_index(struct + for (i = 0; i < 4; i++) { + u32 reg = idx | (i << 20); + +- if (!l3->subcaches[i]) ++ if (!nb->l3_cache.subcaches[i]) + continue; + +- pci_write_config_dword(l3->nb->misc, 0x1BC + slot * 4, reg); ++ pci_write_config_dword(nb->misc, 0x1BC + slot * 4, reg); + + /* + * We need to WBINVD on a core on the node containing the L3 +@@ -434,7 +406,7 @@ static void amd_l3_disable_index(struct + wbinvd_on_cpu(cpu); + + reg |= BIT(31); +- pci_write_config_dword(l3->nb->misc, 0x1BC + slot * 4, reg); ++ pci_write_config_dword(nb->misc, 0x1BC + slot * 4, reg); + } + } + +@@ -448,24 +420,24 @@ static void amd_l3_disable_index(struct + * + * @return: 0 on success, error status on failure + */ +-int amd_set_l3_disable_slot(struct amd_l3_cache *l3, int cpu, unsigned slot, ++int amd_set_l3_disable_slot(struct amd_northbridge *nb, int cpu, unsigned slot, + unsigned long index) + { + int ret = 0; + + /* check if @slot is already used or the index is already disabled */ +- ret = amd_get_l3_disable_slot(l3, slot); ++ ret = amd_get_l3_disable_slot(nb, slot); + if (ret >= 0) + return -EINVAL; + +- if (index > l3->indices) ++ if (index > nb->l3_cache.indices) + return -EINVAL; + + /* check whether the other slot has disabled the same index already */ +- if (index == amd_get_l3_disable_slot(l3, !slot)) ++ if (index == amd_get_l3_disable_slot(nb, !slot)) + return -EINVAL; + +- amd_l3_disable_index(l3, cpu, slot, index); ++ amd_l3_disable_index(nb, cpu, slot, index); + + return 0; + } +@@ -480,8 +452,7 @@ static ssize_t store_cache_disable(struc + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + +- if (!this_leaf->l3 || +- !amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE)) ++ if (!this_leaf->base.nb || !amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE)) + return -EINVAL; + + cpu = cpumask_first(to_cpumask(this_leaf->shared_cpu_map)); +@@ -489,7 +460,7 @@ static ssize_t store_cache_disable(struc + if (strict_strtoul(buf, 10, &val) < 0) + return -EINVAL; + +- err = amd_set_l3_disable_slot(this_leaf->l3, cpu, slot, val); ++ err = amd_set_l3_disable_slot(this_leaf->base.nb, cpu, slot, val); + if (err) { + if (err == -EEXIST) + printk(KERN_WARNING "L3 disable slot %d in use!\n", +@@ -518,7 +489,7 @@ static struct _cache_attr cache_disable_ + static ssize_t + show_subcaches(struct _cpuid4_info *this_leaf, char *buf, unsigned int cpu) + { +- if (!this_leaf->l3 || !amd_nb_has_feature(AMD_NB_L3_PARTITIONING)) ++ if (!this_leaf->base.nb || !amd_nb_has_feature(AMD_NB_L3_PARTITIONING)) + return -EINVAL; + + return sprintf(buf, "%x\n", amd_get_subcaches(cpu)); +@@ -533,7 +504,7 @@ store_subcaches(struct _cpuid4_info *thi + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + +- if (!this_leaf->l3 || !amd_nb_has_feature(AMD_NB_L3_PARTITIONING)) ++ if (!this_leaf->base.nb || !amd_nb_has_feature(AMD_NB_L3_PARTITIONING)) + return -EINVAL; + + if (strict_strtoul(buf, 16, &val) < 0) +@@ -769,7 +740,7 @@ static void __cpuinit cache_shared_cpu_m + return; + } + this_leaf = CPUID4_INFO_IDX(cpu, index); +- num_threads_sharing = 1 + this_leaf->eax.split.num_threads_sharing; ++ num_threads_sharing = 1 + this_leaf->base.eax.split.num_threads_sharing; + + if (num_threads_sharing == 1) + cpumask_set_cpu(cpu, to_cpumask(this_leaf->shared_cpu_map)); +@@ -820,29 +791,19 @@ static void __cpuinit free_cache_attribu + for (i = 0; i < num_cache_leaves; i++) + cache_remove_shared_cpu_map(cpu, i); + +- kfree(per_cpu(ici_cpuid4_info, cpu)->l3); + kfree(per_cpu(ici_cpuid4_info, cpu)); + per_cpu(ici_cpuid4_info, cpu) = NULL; + } + +-static int +-__cpuinit cpuid4_cache_lookup(int index, struct _cpuid4_info *this_leaf) +-{ +- struct _cpuid4_info_regs *leaf_regs = +- (struct _cpuid4_info_regs *)this_leaf; +- +- return cpuid4_cache_lookup_regs(index, leaf_regs); +-} +- + static void __cpuinit get_cpu_leaves(void *_retval) + { + int j, *retval = _retval, cpu = smp_processor_id(); + + /* Do cpuid and store the results */ + for (j = 0; j < num_cache_leaves; j++) { +- struct _cpuid4_info *this_leaf; +- this_leaf = CPUID4_INFO_IDX(cpu, j); +- *retval = cpuid4_cache_lookup(j, this_leaf); ++ struct _cpuid4_info *this_leaf = CPUID4_INFO_IDX(cpu, j); ++ ++ *retval = cpuid4_cache_lookup_regs(j, &this_leaf->base); + if (unlikely(*retval < 0)) { + int i; + +@@ -900,16 +861,16 @@ static ssize_t show_##file_name(struct _ + return sprintf(buf, "%lu\n", (unsigned long)this_leaf->object + val); \ + } + +-show_one_plus(level, eax.split.level, 0); +-show_one_plus(coherency_line_size, ebx.split.coherency_line_size, 1); +-show_one_plus(physical_line_partition, ebx.split.physical_line_partition, 1); +-show_one_plus(ways_of_associativity, ebx.split.ways_of_associativity, 1); +-show_one_plus(number_of_sets, ecx.split.number_of_sets, 1); ++show_one_plus(level, base.eax.split.level, 0); ++show_one_plus(coherency_line_size, base.ebx.split.coherency_line_size, 1); ++show_one_plus(physical_line_partition, base.ebx.split.physical_line_partition, 1); ++show_one_plus(ways_of_associativity, base.ebx.split.ways_of_associativity, 1); ++show_one_plus(number_of_sets, base.ecx.split.number_of_sets, 1); + + static ssize_t show_size(struct _cpuid4_info *this_leaf, char *buf, + unsigned int cpu) + { +- return sprintf(buf, "%luK\n", this_leaf->size / 1024); ++ return sprintf(buf, "%luK\n", this_leaf->base.size / 1024); + } + + static ssize_t show_shared_cpu_map_func(struct _cpuid4_info *this_leaf, +@@ -946,7 +907,7 @@ static inline ssize_t show_shared_cpu_li + static ssize_t show_type(struct _cpuid4_info *this_leaf, char *buf, + unsigned int cpu) + { +- switch (this_leaf->eax.split.type) { ++ switch (this_leaf->base.eax.split.type) { + case CACHE_TYPE_DATA: + return sprintf(buf, "Data\n"); + case CACHE_TYPE_INST: +@@ -1135,7 +1096,7 @@ static int __cpuinit cache_add_dev(struc + + ktype_cache.default_attrs = default_attrs; + #ifdef CONFIG_AMD_NB +- if (this_leaf->l3) ++ if (this_leaf->base.nb) + ktype_cache.default_attrs = amd_l3_attrs(); + #endif + retval = kobject_init_and_add(&(this_object->kobj), +Index: linux-2.6/arch/x86/include/asm/amd_nb.h +=================================================================== +--- linux-2.6.orig/arch/x86/include/asm/amd_nb.h ++++ linux-2.6/arch/x86/include/asm/amd_nb.h +@@ -19,9 +19,15 @@ extern int amd_numa_init(void); + extern int amd_get_subcaches(int); + extern int amd_set_subcaches(int, int); + ++struct amd_l3_cache { ++ unsigned indices; ++ u8 subcaches[4]; ++}; ++ + struct amd_northbridge { + struct pci_dev *misc; + struct pci_dev *link; ++ struct amd_l3_cache l3_cache; + }; + + struct amd_northbridge_info { +Index: linux-2.6/arch/mips/sibyte/sb1250/irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/sibyte/sb1250/irq.c ++++ linux-2.6/arch/mips/sibyte/sb1250/irq.c +@@ -178,7 +178,7 @@ static void ack_sb1250_irq(struct irq_da + + static struct irq_chip sb1250_irq_type = { + .name = "SB1250-IMR", +- .irq_mask_ack = ack_sb1250_irq, ++ .irq_mask = ack_sb1250_irq, + .irq_unmask = enable_sb1250_irq, + #ifdef CONFIG_SMP + .irq_set_affinity = sb1250_set_affinity +Index: linux-2.6/arch/mips/kernel/ftrace.c +=================================================================== +--- linux-2.6.orig/arch/mips/kernel/ftrace.c ++++ linux-2.6/arch/mips/kernel/ftrace.c +@@ -19,6 +19,26 @@ + + #include + ++#if defined(KBUILD_MCOUNT_RA_ADDRESS) && defined(CONFIG_32BIT) ++#define MCOUNT_OFFSET_INSNS 5 ++#else ++#define MCOUNT_OFFSET_INSNS 4 ++#endif ++ ++/* ++ * Check if the address is in kernel space ++ * ++ * Clone core_kernel_text() from kernel/extable.c, but doesn't call ++ * init_kernel_text() for Ftrace doesn't trace functions in init sections. ++ */ ++static inline int in_kernel_space(unsigned long ip) ++{ ++ if (ip >= (unsigned long)_stext && ++ ip <= (unsigned long)_etext) ++ return 1; ++ return 0; ++} ++ + #ifdef CONFIG_DYNAMIC_FTRACE + + #define JAL 0x0c000000 /* jump & link: ip --> ra, jump to target */ +@@ -54,20 +74,6 @@ static inline void ftrace_dyn_arch_init_ + #endif + } + +-/* +- * Check if the address is in kernel space +- * +- * Clone core_kernel_text() from kernel/extable.c, but doesn't call +- * init_kernel_text() for Ftrace doesn't trace functions in init sections. +- */ +-static inline int in_kernel_space(unsigned long ip) +-{ +- if (ip >= (unsigned long)_stext && +- ip <= (unsigned long)_etext) +- return 1; +- return 0; +-} +- + static int ftrace_modify_code(unsigned long ip, unsigned int new_code) + { + int faulted; +@@ -112,11 +118,6 @@ static int ftrace_modify_code(unsigned l + * 1: offset = 4 instructions + */ + +-#if defined(KBUILD_MCOUNT_RA_ADDRESS) && defined(CONFIG_32BIT) +-#define MCOUNT_OFFSET_INSNS 5 +-#else +-#define MCOUNT_OFFSET_INSNS 4 +-#endif + #define INSN_B_1F (0x10000000 | MCOUNT_OFFSET_INSNS) + + int ftrace_make_nop(struct module *mod, +Index: linux-2.6/arch/mips/loongson/fuloong-2e/irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/loongson/fuloong-2e/irq.c ++++ linux-2.6/arch/mips/loongson/fuloong-2e/irq.c +@@ -42,6 +42,7 @@ asmlinkage void mach_irq_dispatch(unsign + static struct irqaction cascade_irqaction = { + .handler = no_action, + .name = "cascade", ++ .flags = IRQF_NO_THREAD, + }; + + void __init mach_init_irq(void) +Index: linux-2.6/arch/mips/loongson/lemote-2f/irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/loongson/lemote-2f/irq.c ++++ linux-2.6/arch/mips/loongson/lemote-2f/irq.c +@@ -96,12 +96,13 @@ static irqreturn_t ip6_action(int cpl, v + struct irqaction ip6_irqaction = { + .handler = ip6_action, + .name = "cascade", +- .flags = IRQF_SHARED, ++ .flags = IRQF_SHARED | IRQF_NO_THREAD, + }; + + struct irqaction cascade_irqaction = { + .handler = no_action, + .name = "cascade", ++ .flags = IRQF_NO_THREAD, + }; + + void __init mach_init_irq(void) +Index: linux-2.6/arch/mips/ar7/irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/ar7/irq.c ++++ linux-2.6/arch/mips/ar7/irq.c +@@ -98,7 +98,8 @@ static struct irq_chip ar7_sec_irq_type + + static struct irqaction ar7_cascade_action = { + .handler = no_action, +- .name = "AR7 cascade interrupt" ++ .name = "AR7 cascade interrupt", ++ .flags = IRQF_NO_THREAD, + }; + + static void __init ar7_irq_init(int base) +Index: linux-2.6/arch/mips/bcm63xx/irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/bcm63xx/irq.c ++++ linux-2.6/arch/mips/bcm63xx/irq.c +@@ -222,6 +222,7 @@ static struct irq_chip bcm63xx_external_ + static struct irqaction cpu_ip2_cascade_action = { + .handler = no_action, + .name = "cascade_ip2", ++ .flags = IRQF_NO_THREAD, + }; + + void __init arch_init_irq(void) +Index: linux-2.6/arch/mips/cobalt/irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/cobalt/irq.c ++++ linux-2.6/arch/mips/cobalt/irq.c +@@ -48,6 +48,7 @@ asmlinkage void plat_irq_dispatch(void) + static struct irqaction cascade = { + .handler = no_action, + .name = "cascade", ++ .flags = IRQF_NO_THREAD, + }; + + void __init arch_init_irq(void) +Index: linux-2.6/arch/mips/dec/setup.c +=================================================================== +--- linux-2.6.orig/arch/mips/dec/setup.c ++++ linux-2.6/arch/mips/dec/setup.c +@@ -101,20 +101,24 @@ int cpu_fpu_mask = DEC_CPU_IRQ_MASK(DEC_ + static struct irqaction ioirq = { + .handler = no_action, + .name = "cascade", ++ .flags = IRQF_NO_THREAD, + }; + static struct irqaction fpuirq = { + .handler = no_action, + .name = "fpu", ++ .flags = IRQF_NO_THREAD, + }; + + static struct irqaction busirq = { + .flags = IRQF_DISABLED, + .name = "bus error", ++ .flags = IRQF_NO_THREAD, + }; + + static struct irqaction haltirq = { + .handler = dec_intr_halt, + .name = "halt", ++ .flags = IRQF_NO_THREAD, + }; + + +Index: linux-2.6/arch/mips/emma/markeins/irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/emma/markeins/irq.c ++++ linux-2.6/arch/mips/emma/markeins/irq.c +@@ -169,7 +169,7 @@ void emma2rh_gpio_irq_init(void) + + static struct irqaction irq_cascade = { + .handler = no_action, +- .flags = 0, ++ .flags = IRQF_NO_THREAD, + .name = "cascade", + .dev_id = NULL, + .next = NULL, +Index: linux-2.6/arch/mips/lasat/interrupt.c +=================================================================== +--- linux-2.6.orig/arch/mips/lasat/interrupt.c ++++ linux-2.6/arch/mips/lasat/interrupt.c +@@ -105,6 +105,7 @@ asmlinkage void plat_irq_dispatch(void) + static struct irqaction cascade = { + .handler = no_action, + .name = "cascade", ++ .flags = IRQF_NO_THREAD, + }; + + void __init arch_init_irq(void) +Index: linux-2.6/arch/mips/mti-malta/malta-int.c +=================================================================== +--- linux-2.6.orig/arch/mips/mti-malta/malta-int.c ++++ linux-2.6/arch/mips/mti-malta/malta-int.c +@@ -350,12 +350,14 @@ unsigned int plat_ipi_resched_int_xlate( + + static struct irqaction i8259irq = { + .handler = no_action, +- .name = "XT-PIC cascade" ++ .name = "XT-PIC cascade", ++ .flags = IRQF_NO_THREAD, + }; + + static struct irqaction corehi_irqaction = { + .handler = no_action, +- .name = "CoreHi" ++ .name = "CoreHi", ++ .flags = IRQF_NO_THREAD, + }; + + static msc_irqmap_t __initdata msc_irqmap[] = { +Index: linux-2.6/arch/mips/pmc-sierra/msp71xx/msp_irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/pmc-sierra/msp71xx/msp_irq.c ++++ linux-2.6/arch/mips/pmc-sierra/msp71xx/msp_irq.c +@@ -109,11 +109,13 @@ asmlinkage void plat_irq_dispatch(struct + static struct irqaction cic_cascade_msp = { + .handler = no_action, + .name = "MSP CIC cascade" ++ .flags = IRQF_NO_THREAD, + }; + + static struct irqaction per_cascade_msp = { + .handler = no_action, + .name = "MSP PER cascade" ++ .flags = IRQF_NO_THREAD, + }; + + void __init arch_init_irq(void) +Index: linux-2.6/arch/mips/pnx8550/common/int.c +=================================================================== +--- linux-2.6.orig/arch/mips/pnx8550/common/int.c ++++ linux-2.6/arch/mips/pnx8550/common/int.c +@@ -167,7 +167,7 @@ static struct irq_chip level_irq_type = + + static struct irqaction gic_action = { + .handler = no_action, +- .flags = IRQF_DISABLED, ++ .flags = IRQF_DISABLED | IRQF_NO_THREAD, + .name = "GIC", + }; + +Index: linux-2.6/arch/mips/sgi-ip22/ip22-int.c +=================================================================== +--- linux-2.6.orig/arch/mips/sgi-ip22/ip22-int.c ++++ linux-2.6/arch/mips/sgi-ip22/ip22-int.c +@@ -155,32 +155,32 @@ static void __irq_entry indy_buserror_ir + + static struct irqaction local0_cascade = { + .handler = no_action, +- .flags = IRQF_DISABLED, ++ .flags = IRQF_DISABLED | IRQF_NO_THREAD, + .name = "local0 cascade", + }; + + static struct irqaction local1_cascade = { + .handler = no_action, +- .flags = IRQF_DISABLED, ++ .flags = IRQF_DISABLED | IRQF_NO_THREAD, + .name = "local1 cascade", + }; + + static struct irqaction buserr = { + .handler = no_action, +- .flags = IRQF_DISABLED, ++ .flags = IRQF_DISABLED | IRQF_NO_THREAD, + .name = "Bus Error", + }; + + static struct irqaction map0_cascade = { + .handler = no_action, +- .flags = IRQF_DISABLED, ++ .flags = IRQF_DISABLED | IRQF_NO_THREAD, + .name = "mapable0 cascade", + }; + + #ifdef USE_LIO3_IRQ + static struct irqaction map1_cascade = { + .handler = no_action, +- .flags = IRQF_DISABLED, ++ .flags = IRQF_DISABLED | IRQF_NO_THREAD, + .name = "mapable1 cascade", + }; + #define SGI_INTERRUPTS SGINT_END +Index: linux-2.6/arch/mips/sni/rm200.c +=================================================================== +--- linux-2.6.orig/arch/mips/sni/rm200.c ++++ linux-2.6/arch/mips/sni/rm200.c +@@ -359,6 +359,7 @@ void sni_rm200_init_8259A(void) + static struct irqaction sni_rm200_irq2 = { + .handler = no_action, + .name = "cascade", ++ .flags = IRQF_NO_THREAD, + }; + + static struct resource sni_rm200_pic1_resource = { +Index: linux-2.6/arch/mips/vr41xx/common/irq.c +=================================================================== +--- linux-2.6.orig/arch/mips/vr41xx/common/irq.c ++++ linux-2.6/arch/mips/vr41xx/common/irq.c +@@ -34,6 +34,7 @@ static irq_cascade_t irq_cascade[NR_IRQS + static struct irqaction cascade_irqaction = { + .handler = no_action, + .name = "cascade", ++ .flags = IRQF_NO_THREAD, + }; + + int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int)) +Index: linux-2.6/arch/mips/Kconfig +=================================================================== +--- linux-2.6.orig/arch/mips/Kconfig ++++ linux-2.6/arch/mips/Kconfig +@@ -24,6 +24,7 @@ config MIPS + select GENERIC_IRQ_PROBE + select GENERIC_IRQ_SHOW + select HAVE_ARCH_JUMP_LABEL ++ select IRQ_FORCED_THREADING + + menu "Machine selection" + +@@ -2038,7 +2039,7 @@ config CPU_R4400_WORKAROUNDS + # + config HIGHMEM + bool "High Memory Support" +- depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM ++ depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !PREEMPT_RT_FULL + + config CPU_SUPPORTS_HIGHMEM + bool +Index: linux-2.6/arch/mips/kernel/traps.c +=================================================================== +--- linux-2.6.orig/arch/mips/kernel/traps.c ++++ linux-2.6/arch/mips/kernel/traps.c +@@ -364,7 +364,7 @@ static int regs_to_trapnr(struct pt_regs + return (regs->cp0_cause >> 2) & 0x1f; + } + +-static DEFINE_SPINLOCK(die_lock); ++static DEFINE_RAW_SPINLOCK(die_lock); + + void __noreturn die(const char *str, struct pt_regs *regs) + { +@@ -378,7 +378,7 @@ void __noreturn die(const char *str, str + sig = 0; + + console_verbose(); +- spin_lock_irq(&die_lock); ++ raw_spin_lock_irq(&die_lock); + bust_spinlocks(1); + #ifdef CONFIG_MIPS_MT_SMTC + mips_mt_regdump(dvpret); +@@ -387,7 +387,7 @@ void __noreturn die(const char *str, str + printk("%s[#%d]:\n", str, ++die_counter); + show_registers(regs); + add_taint(TAINT_DIE); +- spin_unlock_irq(&die_lock); ++ raw_spin_unlock_irq(&die_lock); + + if (in_interrupt()) + panic("Fatal exception in interrupt"); +Index: linux-2.6/arch/mips/kernel/signal.c +=================================================================== +--- linux-2.6.orig/arch/mips/kernel/signal.c ++++ linux-2.6/arch/mips/kernel/signal.c +@@ -603,6 +603,9 @@ static void do_signal(struct pt_regs *re + if (!user_mode(regs)) + return; + ++ local_irq_enable(); ++ preempt_check_resched(); ++ + if (test_thread_flag(TIF_RESTORE_SIGMASK)) + oldset = ¤t->saved_sigmask; + else +Index: linux-2.6/arch/arm/kernel/signal.c +=================================================================== +--- linux-2.6.orig/arch/arm/kernel/signal.c ++++ linux-2.6/arch/arm/kernel/signal.c +@@ -673,6 +673,9 @@ static void do_signal(struct pt_regs *re + if (!user_mode(regs)) + return; + ++ local_irq_enable(); ++ preempt_check_resched(); ++ + /* + * If we were from a system call, check for system call restarting... + */ +Index: linux-2.6/kernel/time/clocksource.c +=================================================================== +--- linux-2.6.orig/kernel/time/clocksource.c ++++ linux-2.6/kernel/time/clocksource.c +@@ -186,6 +186,7 @@ static struct timer_list watchdog_timer; + static DECLARE_WORK(watchdog_work, clocksource_watchdog_work); + static DEFINE_SPINLOCK(watchdog_lock); + static int watchdog_running; ++static atomic_t watchdog_reset_pending; + + static int clocksource_watchdog_kthread(void *data); + static void __clocksource_change_rating(struct clocksource *cs, int rating); +@@ -247,12 +248,14 @@ static void clocksource_watchdog(unsigne + struct clocksource *cs; + cycle_t csnow, wdnow; + int64_t wd_nsec, cs_nsec; +- int next_cpu; ++ int next_cpu, reset_pending; + + spin_lock(&watchdog_lock); + if (!watchdog_running) + goto out; + ++ reset_pending = atomic_read(&watchdog_reset_pending); ++ + list_for_each_entry(cs, &watchdog_list, wd_list) { + + /* Clocksource already marked unstable? */ +@@ -268,7 +271,8 @@ static void clocksource_watchdog(unsigne + local_irq_enable(); + + /* Clocksource initialized ? */ +- if (!(cs->flags & CLOCK_SOURCE_WATCHDOG)) { ++ if (!(cs->flags & CLOCK_SOURCE_WATCHDOG) || ++ atomic_read(&watchdog_reset_pending)) { + cs->flags |= CLOCK_SOURCE_WATCHDOG; + cs->wd_last = wdnow; + cs->cs_last = csnow; +@@ -283,8 +287,11 @@ static void clocksource_watchdog(unsigne + cs->cs_last = csnow; + cs->wd_last = wdnow; + ++ if (atomic_read(&watchdog_reset_pending)) ++ continue; ++ + /* Check the deviation from the watchdog clocksource. */ +- if (abs(cs_nsec - wd_nsec) > WATCHDOG_THRESHOLD) { ++ if ((abs(cs_nsec - wd_nsec) > WATCHDOG_THRESHOLD)) { + clocksource_unstable(cs, cs_nsec - wd_nsec); + continue; + } +@@ -303,6 +310,13 @@ static void clocksource_watchdog(unsigne + } + + /* ++ * We only clear the watchdog_reset_pending, when we did a ++ * full cycle through all clocksources. ++ */ ++ if (reset_pending) ++ atomic_dec(&watchdog_reset_pending); ++ ++ /* + * Cycle through CPUs to check if the CPUs stay synchronized + * to each other. + */ +@@ -344,23 +358,7 @@ static inline void clocksource_reset_wat + + static void clocksource_resume_watchdog(void) + { +- unsigned long flags; +- +- /* +- * We use trylock here to avoid a potential dead lock when +- * kgdb calls this code after the kernel has been stopped with +- * watchdog_lock held. When watchdog_lock is held we just +- * return and accept, that the watchdog might trigger and mark +- * the monitored clock source (usually TSC) unstable. +- * +- * This does not affect the other caller clocksource_resume() +- * because at this point the kernel is UP, interrupts are +- * disabled and nothing can hold watchdog_lock. +- */ +- if (!spin_trylock_irqsave(&watchdog_lock, flags)) +- return; +- clocksource_reset_watchdog(); +- spin_unlock_irqrestore(&watchdog_lock, flags); ++ atomic_inc(&watchdog_reset_pending); + } + + static void clocksource_enqueue_watchdog(struct clocksource *cs) +Index: linux-2.6/kernel/watchdog.c +=================================================================== +--- linux-2.6.orig/kernel/watchdog.c ++++ linux-2.6/kernel/watchdog.c +@@ -208,6 +208,8 @@ static struct perf_event_attr wd_hw_attr + .disabled = 1, + }; + ++static DEFINE_RAW_SPINLOCK(watchdog_output_lock); ++ + /* Callback function for perf event subsystem */ + static void watchdog_overflow_callback(struct perf_event *event, int nmi, + struct perf_sample_data *data, +@@ -234,10 +236,19 @@ static void watchdog_overflow_callback(s + if (__this_cpu_read(hard_watchdog_warn) == true) + return; + +- if (hardlockup_panic) ++ /* ++ * If early-printk is enabled then make sure we do not ++ * lock up in printk() and kill console logging: ++ */ ++ printk_kill(); ++ ++ if (hardlockup_panic) { + panic("Watchdog detected hard LOCKUP on cpu %d", this_cpu); +- else ++ } else { ++ raw_spin_lock(&watchdog_output_lock); + WARN(1, "Watchdog detected hard LOCKUP on cpu %d", this_cpu); ++ raw_spin_unlock(&watchdog_output_lock); ++ } + + __this_cpu_write(hard_watchdog_warn, true); + return; +@@ -320,7 +331,7 @@ static enum hrtimer_restart watchdog_tim + */ + static int watchdog(void *unused) + { +- static struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 }; ++ struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 }; + struct hrtimer *hrtimer = &__raw_get_cpu_var(watchdog_hrtimer); + + sched_setscheduler(current, SCHED_FIFO, ¶m); +@@ -349,7 +360,8 @@ static int watchdog(void *unused) + set_current_state(TASK_INTERRUPTIBLE); + } + __set_current_state(TASK_RUNNING); +- ++ param.sched_priority = 0; ++ sched_setscheduler(current, SCHED_NORMAL, ¶m); + return 0; + } + +@@ -422,6 +434,7 @@ static void watchdog_prepare_cpu(int cpu + WARN_ON(per_cpu(softlockup_watchdog, cpu)); + hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer->function = watchdog_timer_fn; ++ hrtimer->irqsafe = 1; + } + + static int watchdog_enable(int cpu) +Index: linux-2.6/kernel/rtmutex-debug.c +=================================================================== +--- linux-2.6.orig/kernel/rtmutex-debug.c ++++ linux-2.6/kernel/rtmutex-debug.c +@@ -29,61 +29,6 @@ + + #include "rtmutex_common.h" + +-# define TRACE_WARN_ON(x) WARN_ON(x) +-# define TRACE_BUG_ON(x) BUG_ON(x) +- +-# define TRACE_OFF() \ +-do { \ +- if (rt_trace_on) { \ +- rt_trace_on = 0; \ +- console_verbose(); \ +- if (raw_spin_is_locked(¤t->pi_lock)) \ +- raw_spin_unlock(¤t->pi_lock); \ +- } \ +-} while (0) +- +-# define TRACE_OFF_NOLOCK() \ +-do { \ +- if (rt_trace_on) { \ +- rt_trace_on = 0; \ +- console_verbose(); \ +- } \ +-} while (0) +- +-# define TRACE_BUG_LOCKED() \ +-do { \ +- TRACE_OFF(); \ +- BUG(); \ +-} while (0) +- +-# define TRACE_WARN_ON_LOCKED(c) \ +-do { \ +- if (unlikely(c)) { \ +- TRACE_OFF(); \ +- WARN_ON(1); \ +- } \ +-} while (0) +- +-# define TRACE_BUG_ON_LOCKED(c) \ +-do { \ +- if (unlikely(c)) \ +- TRACE_BUG_LOCKED(); \ +-} while (0) +- +-#ifdef CONFIG_SMP +-# define SMP_TRACE_BUG_ON_LOCKED(c) TRACE_BUG_ON_LOCKED(c) +-#else +-# define SMP_TRACE_BUG_ON_LOCKED(c) do { } while (0) +-#endif +- +-/* +- * deadlock detection flag. We turn it off when we detect +- * the first problem because we dont want to recurse back +- * into the tracing code when doing error printk or +- * executing a BUG(): +- */ +-static int rt_trace_on = 1; +- + static void printk_task(struct task_struct *p) + { + if (p) +@@ -111,8 +56,8 @@ static void printk_lock(struct rt_mutex + + void rt_mutex_debug_task_free(struct task_struct *task) + { +- WARN_ON(!plist_head_empty(&task->pi_waiters)); +- WARN_ON(task->pi_blocked_on); ++ DEBUG_LOCKS_WARN_ON(!plist_head_empty(&task->pi_waiters)); ++ DEBUG_LOCKS_WARN_ON(task->pi_blocked_on); + } + + /* +@@ -125,7 +70,7 @@ void debug_rt_mutex_deadlock(int detect, + { + struct task_struct *task; + +- if (!rt_trace_on || detect || !act_waiter) ++ if (!debug_locks || detect || !act_waiter) + return; + + task = rt_mutex_owner(act_waiter->lock); +@@ -139,7 +84,7 @@ void debug_rt_mutex_print_deadlock(struc + { + struct task_struct *task; + +- if (!waiter->deadlock_lock || !rt_trace_on) ++ if (!waiter->deadlock_lock || !debug_locks) + return; + + rcu_read_lock(); +@@ -149,7 +94,8 @@ void debug_rt_mutex_print_deadlock(struc + return; + } + +- TRACE_OFF_NOLOCK(); ++ if (!debug_locks_off()) ++ return; + + printk("\n============================================\n"); + printk( "[ BUG: circular locking deadlock detected! ]\n"); +@@ -180,7 +126,6 @@ void debug_rt_mutex_print_deadlock(struc + + printk("[ turning off deadlock detection." + "Please report this trace. ]\n\n"); +- local_irq_disable(); + } + + void debug_rt_mutex_lock(struct rt_mutex *lock) +@@ -189,7 +134,7 @@ void debug_rt_mutex_lock(struct rt_mutex + + void debug_rt_mutex_unlock(struct rt_mutex *lock) + { +- TRACE_WARN_ON_LOCKED(rt_mutex_owner(lock) != current); ++ DEBUG_LOCKS_WARN_ON(rt_mutex_owner(lock) != current); + } + + void +@@ -199,7 +144,7 @@ debug_rt_mutex_proxy_lock(struct rt_mute + + void debug_rt_mutex_proxy_unlock(struct rt_mutex *lock) + { +- TRACE_WARN_ON_LOCKED(!rt_mutex_owner(lock)); ++ DEBUG_LOCKS_WARN_ON(!rt_mutex_owner(lock)); + } + + void debug_rt_mutex_init_waiter(struct rt_mutex_waiter *waiter) +@@ -213,8 +158,8 @@ void debug_rt_mutex_init_waiter(struct r + void debug_rt_mutex_free_waiter(struct rt_mutex_waiter *waiter) + { + put_pid(waiter->deadlock_task_pid); +- TRACE_WARN_ON(!plist_node_empty(&waiter->list_entry)); +- TRACE_WARN_ON(!plist_node_empty(&waiter->pi_list_entry)); ++ DEBUG_LOCKS_WARN_ON(!plist_node_empty(&waiter->list_entry)); ++ DEBUG_LOCKS_WARN_ON(!plist_node_empty(&waiter->pi_list_entry)); + memset(waiter, 0x22, sizeof(*waiter)); + } + +Index: linux-2.6/arch/arm/kernel/perf_event.c +=================================================================== +--- linux-2.6.orig/arch/arm/kernel/perf_event.c ++++ linux-2.6/arch/arm/kernel/perf_event.c +@@ -420,7 +420,7 @@ armpmu_reserve_hardware(void) + continue; + + err = request_irq(irq, handle_irq, +- IRQF_DISABLED | IRQF_NOBALANCING, ++ IRQF_DISABLED | IRQF_NOBALANCING | IRQF_NO_THREAD, + "armpmu", NULL); + if (err) { + pr_warning("unable to request IRQ%d for ARM perf " +Index: linux-2.6/arch/arm/Kconfig +=================================================================== +--- linux-2.6.orig/arch/arm/Kconfig ++++ linux-2.6/arch/arm/Kconfig +@@ -29,6 +29,7 @@ config ARM + select HAVE_GENERIC_HARDIRQS + select HAVE_SPARSE_IRQ + select GENERIC_IRQ_SHOW ++ select IRQ_FORCED_THREADING + help + The ARM series is a line of low-power-consumption RISC chip designs + licensed by ARM Ltd and targeted at embedded applications and +@@ -1510,7 +1511,7 @@ config HAVE_ARCH_PFN_VALID + + config HIGHMEM + bool "High Memory Support" +- depends on MMU ++ depends on MMU && !PREEMPT_RT_FULL + help + The address space of ARM processors is only 4 Gigabytes large + and it has to accommodate user address space, kernel address +Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.c +=================================================================== +--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_cds.c ++++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.c +@@ -178,7 +178,7 @@ static irqreturn_t mpc85xx_8259_cascade_ + + static struct irqaction mpc85xxcds_8259_irqaction = { + .handler = mpc85xx_8259_cascade_action, +- .flags = IRQF_SHARED, ++ .flags = IRQF_SHARED | IRQF_NO_THREAD, + .name = "8259 cascade", + }; + #endif /* PPC_I8259 */ +Index: linux-2.6/arch/powerpc/Kconfig +=================================================================== +--- linux-2.6.orig/arch/powerpc/Kconfig ++++ linux-2.6/arch/powerpc/Kconfig +@@ -69,10 +69,11 @@ config LOCKDEP_SUPPORT + + config RWSEM_GENERIC_SPINLOCK + bool ++ default y if PREEMPT_RT_FULL + + config RWSEM_XCHGADD_ALGORITHM + bool +- default y ++ default y if !PREEMPT_RT_FULL + + config GENERIC_LOCKBREAK + bool +@@ -134,6 +135,7 @@ config PPC + select GENERIC_IRQ_SHOW_LEVEL + select HAVE_RCU_TABLE_FREE if SMP + select HAVE_SYSCALL_TRACEPOINTS ++ select IRQ_FORCED_THREADING + + config EARLY_PRINTK + bool +@@ -271,7 +273,7 @@ menu "Kernel options" + + config HIGHMEM + bool "High memory support" +- depends on PPC32 ++ depends on PPC32 && !PREEMPT_RT_FULL + + source kernel/time/Kconfig + source kernel/Kconfig.hz +Index: linux-2.6/include/linux/sched.h +=================================================================== +--- linux-2.6.orig/include/linux/sched.h ++++ linux-2.6/include/linux/sched.h +@@ -63,6 +63,7 @@ struct sched_param { + #include + #include + ++#include + #include + #include + #include +@@ -90,6 +91,7 @@ struct sched_param { + #include + #include + #include ++#include + + #include + +@@ -359,6 +361,7 @@ extern signed long schedule_timeout_inte + extern signed long schedule_timeout_killable(signed long timeout); + extern signed long schedule_timeout_uninterruptible(signed long timeout); + asmlinkage void schedule(void); ++extern void schedule_preempt_disabled(void); + extern int mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner); + + struct nsproxy; +@@ -510,7 +513,7 @@ struct task_cputime { + struct thread_group_cputimer { + struct task_cputime cputime; + int running; +- spinlock_t lock; ++ raw_spinlock_t lock; + }; + + #include +@@ -1070,6 +1073,7 @@ struct sched_domain; + #define WF_SYNC 0x01 /* waker goes to sleep after wakup */ + #define WF_FORK 0x02 /* child wakeup after fork */ + #define WF_MIGRATED 0x04 /* internal use, task got migrated */ ++#define WF_LOCK_SLEEPER 0x08 /* wakeup spinlock "sleeper" */ + + #define ENQUEUE_WAKEUP 1 + #define ENQUEUE_HEAD 2 +@@ -1219,6 +1223,7 @@ enum perf_event_task_context { + + struct task_struct { + volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ ++ volatile long saved_state; /* saved state for "spinlock sleepers" */ + void *stack; + atomic_t usage; + unsigned int flags; /* per process flags, defined below */ +@@ -1255,14 +1260,14 @@ struct task_struct { + #endif + + unsigned int policy; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ int migrate_disable; ++#endif + cpumask_t cpus_allowed; + + #ifdef CONFIG_PREEMPT_RCU + int rcu_read_lock_nesting; + char rcu_read_unlock_special; +-#if defined(CONFIG_RCU_BOOST) && defined(CONFIG_TREE_PREEMPT_RCU) +- int rcu_boosted; +-#endif /* #if defined(CONFIG_RCU_BOOST) && defined(CONFIG_TREE_PREEMPT_RCU) */ + struct list_head rcu_node_entry; + #endif /* #ifdef CONFIG_PREEMPT_RCU */ + #ifdef CONFIG_TREE_PREEMPT_RCU +@@ -1356,6 +1361,9 @@ struct task_struct { + + struct task_cputime cputime_expires; + struct list_head cpu_timers[3]; ++#ifdef CONFIG_PREEMPT_RT_BASE ++ struct task_struct *posix_timer_list; ++#endif + + /* process credentials */ + const struct cred __rcu *real_cred; /* objective and real subjective task +@@ -1389,6 +1397,7 @@ struct task_struct { + /* signal handlers */ + struct signal_struct *signal; + struct sighand_struct *sighand; ++ struct sigqueue *sigqueue_cache; + + sigset_t blocked, real_blocked; + sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */ +@@ -1432,6 +1441,9 @@ struct task_struct { + /* mutex deadlock detection */ + struct mutex_waiter *blocked_on; + #endif ++#ifdef CONFIG_PREEMPT_RT_FULL ++ int pagefault_disabled; ++#endif + #ifdef CONFIG_TRACE_IRQFLAGS + unsigned int irq_events; + unsigned long hardirq_enable_ip; +@@ -1558,6 +1570,12 @@ struct task_struct { + unsigned long trace; + /* bitmask and counter of trace recursion */ + unsigned long trace_recursion; ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ u64 preempt_timestamp_hist; ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ unsigned long timer_offset; ++#endif ++#endif + #endif /* CONFIG_TRACING */ + #ifdef CONFIG_CGROUP_MEM_RES_CTLR /* memcg uses this to do batch job */ + struct memcg_batch_info { +@@ -1570,10 +1588,24 @@ struct task_struct { + #ifdef CONFIG_HAVE_HW_BREAKPOINT + atomic_t ptrace_bp_refcnt; + #endif ++#ifdef CONFIG_PREEMPT_RT_BASE ++ struct rcu_head put_rcu; ++ int softirq_nestcnt; ++#endif ++#if defined CONFIG_PREEMPT_RT_FULL && defined CONFIG_HIGHMEM ++ int kmap_idx; ++ pte_t kmap_pte[KM_TYPE_NR]; ++#endif + }; + +-/* Future-safe accessor for struct task_struct's cpus_allowed. */ +-#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) ++static inline bool pagefault_disabled(void) ++{ ++ return in_atomic() ++#ifdef CONFIG_PREEMPT_RT_FULL ++ || current->pagefault_disabled ++#endif ++ ; ++} + + /* + * Priority of a process goes from 0..MAX_PRIO-1, valid RT +@@ -1743,6 +1775,15 @@ extern struct pid *cad_pid; + extern void free_task(struct task_struct *tsk); + #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0) + ++#ifdef CONFIG_PREEMPT_RT_BASE ++extern void __put_task_struct_cb(struct rcu_head *rhp); ++ ++static inline void put_task_struct(struct task_struct *t) ++{ ++ if (atomic_dec_and_test(&t->usage)) ++ call_rcu(&t->put_rcu, __put_task_struct_cb); ++} ++#else + extern void __put_task_struct(struct task_struct *t); + + static inline void put_task_struct(struct task_struct *t) +@@ -1750,6 +1791,7 @@ static inline void put_task_struct(struc + if (atomic_dec_and_test(&t->usage)) + __put_task_struct(t); + } ++#endif + + extern void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st); + extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *st); +@@ -1774,6 +1816,7 @@ extern void thread_group_times(struct ta + #define PF_FROZEN 0x00010000 /* frozen for system suspend */ + #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ + #define PF_KSWAPD 0x00040000 /* I am kswapd */ ++#define PF_STOMPER 0x00080000 /* I am a stomp machine thread */ + #define PF_LESS_THROTTLE 0x00100000 /* Throttle me less: I clean memory */ + #define PF_KTHREAD 0x00200000 /* I am a kernel thread */ + #define PF_RANDOMIZE 0x00400000 /* randomize virtual address space */ +@@ -2022,15 +2065,27 @@ static inline void sched_autogroup_exit( + #endif + + #ifdef CONFIG_RT_MUTEXES ++extern void task_setprio(struct task_struct *p, int prio); + extern int rt_mutex_getprio(struct task_struct *p); +-extern void rt_mutex_setprio(struct task_struct *p, int prio); ++static inline void rt_mutex_setprio(struct task_struct *p, int prio) ++{ ++ task_setprio(p, prio); ++} + extern void rt_mutex_adjust_pi(struct task_struct *p); ++static inline bool tsk_is_pi_blocked(struct task_struct *tsk) ++{ ++ return tsk->pi_blocked_on != NULL; ++} + #else + static inline int rt_mutex_getprio(struct task_struct *p) + { + return p->normal_prio; + } + # define rt_mutex_adjust_pi(p) do { } while (0) ++static inline bool tsk_is_pi_blocked(struct task_struct *tsk) ++{ ++ return false; ++} + #endif + + extern bool yield_to(struct task_struct *p, bool preempt); +@@ -2110,6 +2165,7 @@ extern void xtime_update(unsigned long t + + extern int wake_up_state(struct task_struct *tsk, unsigned int state); + extern int wake_up_process(struct task_struct *tsk); ++extern int wake_up_lock_sleeper(struct task_struct * tsk); + extern void wake_up_new_task(struct task_struct *tsk); + #ifdef CONFIG_SMP + extern void kick_process(struct task_struct *tsk); +@@ -2199,12 +2255,24 @@ extern struct mm_struct * mm_alloc(void) + + /* mmdrop drops the mm and the page tables */ + extern void __mmdrop(struct mm_struct *); ++ + static inline void mmdrop(struct mm_struct * mm) + { + if (unlikely(atomic_dec_and_test(&mm->mm_count))) + __mmdrop(mm); + } + ++#ifdef CONFIG_PREEMPT_RT_BASE ++extern void __mmdrop_delayed(struct rcu_head *rhp); ++static inline void mmdrop_delayed(struct mm_struct *mm) ++{ ++ if (atomic_dec_and_test(&mm->mm_count)) ++ call_rcu(&mm->delayed_drop, __mmdrop_delayed); ++} ++#else ++# define mmdrop_delayed(mm) mmdrop(mm) ++#endif ++ + /* mmput gets rid of the mappings and all user-space */ + extern void mmput(struct mm_struct *); + /* Grab a reference to a task's mm, if it is not already going away */ +@@ -2510,7 +2578,7 @@ extern int _cond_resched(void); + + extern int __cond_resched_lock(spinlock_t *lock); + +-#ifdef CONFIG_PREEMPT ++#if defined(CONFIG_PREEMPT) && !defined(CONFIG_PREEMPT_RT_FULL) + #define PREEMPT_LOCK_OFFSET PREEMPT_OFFSET + #else + #define PREEMPT_LOCK_OFFSET 0 +@@ -2521,12 +2589,16 @@ extern int __cond_resched_lock(spinlock_ + __cond_resched_lock(lock); \ + }) + ++#ifndef CONFIG_PREEMPT_RT_FULL + extern int __cond_resched_softirq(void); + + #define cond_resched_softirq() ({ \ + __might_sleep(__FILE__, __LINE__, SOFTIRQ_DISABLE_OFFSET); \ + __cond_resched_softirq(); \ + }) ++#else ++# define cond_resched_softirq() cond_resched() ++#endif + + /* + * Does a critical section need to be broken due to another +@@ -2550,7 +2622,7 @@ void thread_group_cputimer(struct task_s + + static inline void thread_group_cputime_init(struct signal_struct *sig) + { +- spin_lock_init(&sig->cputimer.lock); ++ raw_spin_lock_init(&sig->cputimer.lock); + } + + /* +@@ -2589,6 +2661,26 @@ static inline void set_task_cpu(struct t + + #endif /* CONFIG_SMP */ + ++static inline int __migrate_disabled(struct task_struct *p) ++{ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ return p->migrate_disable; ++#else ++ return 0; ++#endif ++} ++ ++/* Future-safe accessor for struct task_struct's cpus_allowed. */ ++static inline const struct cpumask *tsk_cpus_allowed(struct task_struct *p) ++{ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (p->migrate_disable) ++ return cpumask_of(task_cpu(p)); ++#endif ++ ++ return &p->cpus_allowed; ++} ++ + extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask); + extern long sched_getaffinity(pid_t pid, struct cpumask *mask); + +Index: linux-2.6/arch/arm/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/arm/kernel/process.c ++++ linux-2.6/arch/arm/kernel/process.c +@@ -209,9 +209,7 @@ void cpu_idle(void) + } + leds_event(led_idle_end); + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/avr32/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/avr32/kernel/process.c ++++ linux-2.6/arch/avr32/kernel/process.c +@@ -38,9 +38,7 @@ void cpu_idle(void) + while (!need_resched()) + cpu_idle_sleep(); + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/blackfin/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/blackfin/kernel/process.c ++++ linux-2.6/arch/blackfin/kernel/process.c +@@ -92,9 +92,7 @@ void cpu_idle(void) + while (!need_resched()) + idle(); + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/cris/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/cris/kernel/process.c ++++ linux-2.6/arch/cris/kernel/process.c +@@ -115,9 +115,7 @@ void cpu_idle (void) + idle = default_idle; + idle(); + } +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/frv/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/frv/kernel/process.c ++++ linux-2.6/arch/frv/kernel/process.c +@@ -92,9 +92,7 @@ void cpu_idle(void) + idle(); + } + +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/h8300/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/h8300/kernel/process.c ++++ linux-2.6/arch/h8300/kernel/process.c +@@ -81,9 +81,7 @@ void cpu_idle(void) + while (1) { + while (!need_resched()) + idle(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/ia64/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/ia64/kernel/process.c ++++ linux-2.6/arch/ia64/kernel/process.c +@@ -330,9 +330,7 @@ cpu_idle (void) + normal_xtp(); + #endif + } +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + check_pgt_cache(); + if (cpu_is_offline(cpu)) + play_dead(); +Index: linux-2.6/arch/m32r/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/m32r/kernel/process.c ++++ linux-2.6/arch/m32r/kernel/process.c +@@ -90,9 +90,7 @@ void cpu_idle (void) + + idle(); + } +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/m68k/kernel/process_mm.c +=================================================================== +--- linux-2.6.orig/arch/m68k/kernel/process_mm.c ++++ linux-2.6/arch/m68k/kernel/process_mm.c +@@ -94,9 +94,7 @@ void cpu_idle(void) + while (1) { + while (!need_resched()) + idle(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/m68k/kernel/process_no.c +=================================================================== +--- linux-2.6.orig/arch/m68k/kernel/process_no.c ++++ linux-2.6/arch/m68k/kernel/process_no.c +@@ -73,9 +73,7 @@ void cpu_idle(void) + /* endless idle loop with no priority at all */ + while (1) { + idle(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/microblaze/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/microblaze/kernel/process.c ++++ linux-2.6/arch/microblaze/kernel/process.c +@@ -108,9 +108,7 @@ void cpu_idle(void) + idle(); + tick_nohz_restart_sched_tick(); + +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + check_pgt_cache(); + } + } +Index: linux-2.6/arch/mips/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/mips/kernel/process.c ++++ linux-2.6/arch/mips/kernel/process.c +@@ -78,9 +78,7 @@ void __noreturn cpu_idle(void) + play_dead(); + #endif + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/mn10300/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/mn10300/kernel/process.c ++++ linux-2.6/arch/mn10300/kernel/process.c +@@ -123,9 +123,7 @@ void cpu_idle(void) + idle(); + } + +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/parisc/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/parisc/kernel/process.c ++++ linux-2.6/arch/parisc/kernel/process.c +@@ -71,9 +71,7 @@ void cpu_idle(void) + while (1) { + while (!need_resched()) + barrier(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + check_pgt_cache(); + } + } +Index: linux-2.6/arch/powerpc/kernel/idle.c +=================================================================== +--- linux-2.6.orig/arch/powerpc/kernel/idle.c ++++ linux-2.6/arch/powerpc/kernel/idle.c +@@ -94,11 +94,11 @@ void cpu_idle(void) + HMT_medium(); + ppc64_runlatch_on(); + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- if (cpu_should_die()) ++ if (cpu_should_die()) { ++ __preempt_enable_no_resched(); + cpu_die(); +- schedule(); +- preempt_disable(); ++ } ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/powerpc/platforms/iseries/setup.c +=================================================================== +--- linux-2.6.orig/arch/powerpc/platforms/iseries/setup.c ++++ linux-2.6/arch/powerpc/platforms/iseries/setup.c +@@ -581,9 +581,7 @@ static void iseries_shared_idle(void) + if (hvlpevent_is_pending()) + process_iSeries_events(); + +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +@@ -610,9 +608,7 @@ static void iseries_dedicated_idle(void) + + ppc64_runlatch_on(); + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/s390/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/s390/kernel/process.c ++++ linux-2.6/arch/s390/kernel/process.c +@@ -94,9 +94,7 @@ void cpu_idle(void) + while (!need_resched()) + default_idle(); + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/score/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/score/kernel/process.c ++++ linux-2.6/arch/score/kernel/process.c +@@ -53,9 +53,7 @@ void __noreturn cpu_idle(void) + while (!need_resched()) + barrier(); + +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/sh/kernel/idle.c +=================================================================== +--- linux-2.6.orig/arch/sh/kernel/idle.c ++++ linux-2.6/arch/sh/kernel/idle.c +@@ -110,9 +110,7 @@ void cpu_idle(void) + } + + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/sparc/kernel/process_32.c +=================================================================== +--- linux-2.6.orig/arch/sparc/kernel/process_32.c ++++ linux-2.6/arch/sparc/kernel/process_32.c +@@ -113,9 +113,7 @@ void cpu_idle(void) + while (!need_resched()) + cpu_relax(); + } +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + check_pgt_cache(); + } + } +@@ -138,9 +136,7 @@ void cpu_idle(void) + while (!need_resched()) + cpu_relax(); + } +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + check_pgt_cache(); + } + } +Index: linux-2.6/arch/sparc/kernel/process_64.c +=================================================================== +--- linux-2.6.orig/arch/sparc/kernel/process_64.c ++++ linux-2.6/arch/sparc/kernel/process_64.c +@@ -102,15 +102,13 @@ void cpu_idle(void) + + tick_nohz_restart_sched_tick(); + +- preempt_enable_no_resched(); +- + #ifdef CONFIG_HOTPLUG_CPU +- if (cpu_is_offline(cpu)) ++ if (cpu_is_offline(cpu)) { ++ __preempt_enable_no_resched(); + cpu_play_dead(); ++ } + #endif +- +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/tile/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/tile/kernel/process.c ++++ linux-2.6/arch/tile/kernel/process.c +@@ -106,9 +106,7 @@ void cpu_idle(void) + current_thread_info()->status |= TS_POLLING; + } + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/x86/kernel/process_32.c +=================================================================== +--- linux-2.6.orig/arch/x86/kernel/process_32.c ++++ linux-2.6/arch/x86/kernel/process_32.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -113,9 +114,7 @@ void cpu_idle(void) + start_critical_timings(); + } + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +@@ -348,6 +347,41 @@ __switch_to(struct task_struct *prev_p, + task_thread_info(next_p)->flags & _TIF_WORK_CTXSW_NEXT)) + __switch_to_xtra(prev_p, next_p, tss); + ++#if defined CONFIG_PREEMPT_RT_FULL && defined CONFIG_HIGHMEM ++ /* ++ * Save @prev's kmap_atomic stack ++ */ ++ prev_p->kmap_idx = __this_cpu_read(__kmap_atomic_idx); ++ if (unlikely(prev_p->kmap_idx)) { ++ int i; ++ ++ for (i = 0; i < prev_p->kmap_idx; i++) { ++ int idx = i + KM_TYPE_NR * smp_processor_id(); ++ ++ pte_t *ptep = kmap_pte - idx; ++ prev_p->kmap_pte[i] = *ptep; ++ kpte_clear_flush(ptep, __fix_to_virt(FIX_KMAP_BEGIN + idx)); ++ } ++ ++ __this_cpu_write(__kmap_atomic_idx, 0); ++ } ++ ++ /* ++ * Restore @next_p's kmap_atomic stack ++ */ ++ if (unlikely(next_p->kmap_idx)) { ++ int i; ++ ++ __this_cpu_write(__kmap_atomic_idx, next_p->kmap_idx); ++ ++ for (i = 0; i < next_p->kmap_idx; i++) { ++ int idx = i + KM_TYPE_NR * smp_processor_id(); ++ ++ set_pte(kmap_pte - idx, next_p->kmap_pte[i]); ++ } ++ } ++#endif ++ + /* If we're going to preload the fpu context, make sure clts + is run while we're batching the cpu state updates. */ + if (preload_fpu) +Index: linux-2.6/arch/x86/kernel/process_64.c +=================================================================== +--- linux-2.6.orig/arch/x86/kernel/process_64.c ++++ linux-2.6/arch/x86/kernel/process_64.c +@@ -146,9 +146,7 @@ void cpu_idle(void) + } + + tick_nohz_restart_sched_tick(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/arch/xtensa/kernel/process.c +=================================================================== +--- linux-2.6.orig/arch/xtensa/kernel/process.c ++++ linux-2.6/arch/xtensa/kernel/process.c +@@ -113,9 +113,7 @@ void cpu_idle(void) + while (1) { + while (!need_resched()) + platform_idle(); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + } + } + +Index: linux-2.6/init/main.c +=================================================================== +--- linux-2.6.orig/init/main.c ++++ linux-2.6/init/main.c +@@ -68,6 +68,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -367,9 +368,7 @@ static noinline void __init_refok rest_i + * at least once to get things moving: + */ + init_idle_bootup_task(current); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + + /* Call into cpu_idle with preempt disabled */ + cpu_idle(); +@@ -501,6 +500,7 @@ asmlinkage void __init start_kernel(void + parse_args("Booting kernel", static_command_line, __start___param, + __stop___param - __start___param, + &unknown_bootoption); ++ softirq_early_init(); + /* + * These use large bootmem allocations and must precede + * kmem_cache_init() +Index: linux-2.6/kernel/mutex.c +=================================================================== +--- linux-2.6.orig/kernel/mutex.c ++++ linux-2.6/kernel/mutex.c +@@ -240,9 +240,7 @@ __mutex_lock_common(struct mutex *lock, + + /* didn't get the lock, go to sleep: */ + spin_unlock_mutex(&lock->wait_lock, flags); +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); ++ schedule_preempt_disabled(); + spin_lock_mutex(&lock->wait_lock, flags); + } + +Index: linux-2.6/kernel/softirq.c +=================================================================== +--- linux-2.6.orig/kernel/softirq.c ++++ linux-2.6/kernel/softirq.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #define CREATE_TRACE_POINTS + #include +@@ -61,6 +62,67 @@ char *softirq_to_name[NR_SOFTIRQS] = { + "TASKLET", "SCHED", "HRTIMER", "RCU" + }; + ++#ifdef CONFIG_NO_HZ ++# ifdef CONFIG_PREEMPT_RT_FULL ++/* ++ * On preempt-rt a softirq might be blocked on a lock. There might be ++ * no other runnable task on this CPU because the lock owner runs on ++ * some other CPU. So we have to go into idle with the pending bit ++ * set. Therefor we need to check this otherwise we warn about false ++ * positives which confuses users and defeats the whole purpose of ++ * this test. ++ * ++ * This code is called with interrupts disabled. ++ */ ++void softirq_check_pending_idle(void) ++{ ++ static int rate_limit; ++ u32 warnpending = 0, pending = local_softirq_pending(); ++ ++ if (rate_limit >= 10) ++ return; ++ ++ if (pending) { ++ struct task_struct *tsk; ++ ++ tsk = __get_cpu_var(ksoftirqd); ++ /* ++ * The wakeup code in rtmutex.c wakes up the task ++ * _before_ it sets pi_blocked_on to NULL under ++ * tsk->pi_lock. So we need to check for both: state ++ * and pi_blocked_on. ++ */ ++ raw_spin_lock(&tsk->pi_lock); ++ ++ if (!tsk->pi_blocked_on && !(tsk->state == TASK_RUNNING)) ++ warnpending = 1; ++ ++ raw_spin_unlock(&tsk->pi_lock); ++ } ++ ++ if (warnpending) { ++ printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n", ++ pending); ++ rate_limit++; ++ } ++} ++# else ++/* ++ * On !PREEMPT_RT we just printk rate limited: ++ */ ++void softirq_check_pending_idle(void) ++{ ++ static int rate_limit; ++ ++ if (rate_limit < 10) { ++ printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n", ++ local_softirq_pending()); ++ rate_limit++; ++ } ++} ++# endif ++#endif ++ + /* + * we cannot loop indefinitely here to avoid userspace starvation, + * but we also don't want to introduce a worst case 1/HZ latency +@@ -76,6 +138,35 @@ static void wakeup_softirqd(void) + wake_up_process(tsk); + } + ++static void handle_pending_softirqs(u32 pending, int cpu) ++{ ++ struct softirq_action *h = softirq_vec; ++ unsigned int prev_count = preempt_count(); ++ ++ local_irq_enable(); ++ for ( ; pending; h++, pending >>= 1) { ++ unsigned int vec_nr = h - softirq_vec; ++ ++ if (!(pending & 1)) ++ continue; ++ ++ kstat_incr_softirqs_this_cpu(vec_nr); ++ trace_softirq_entry(vec_nr); ++ h->action(h); ++ trace_softirq_exit(vec_nr); ++ if (unlikely(prev_count != preempt_count())) { ++ printk(KERN_ERR ++ "huh, entered softirq %u %s %p with preempt_count %08x exited with %08x?\n", ++ vec_nr, softirq_to_name[vec_nr], h->action, ++ prev_count, (unsigned int) preempt_count()); ++ preempt_count() = prev_count; ++ } ++ rcu_bh_qs(cpu); ++ } ++ local_irq_disable(); ++} ++ ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * preempt_count and SOFTIRQ_OFFSET usage: + * - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving +@@ -206,7 +297,6 @@ EXPORT_SYMBOL(local_bh_enable_ip); + + asmlinkage void __do_softirq(void) + { +- struct softirq_action *h; + __u32 pending; + int max_restart = MAX_SOFTIRQ_RESTART; + int cpu; +@@ -215,7 +305,7 @@ asmlinkage void __do_softirq(void) + account_system_vtime(current); + + __local_bh_disable((unsigned long)__builtin_return_address(0), +- SOFTIRQ_OFFSET); ++ SOFTIRQ_OFFSET); + lockdep_softirq_enter(); + + cpu = smp_processor_id(); +@@ -223,36 +313,7 @@ asmlinkage void __do_softirq(void) + /* Reset the pending bitmask before enabling irqs */ + set_softirq_pending(0); + +- local_irq_enable(); +- +- h = softirq_vec; +- +- do { +- if (pending & 1) { +- unsigned int vec_nr = h - softirq_vec; +- int prev_count = preempt_count(); +- +- kstat_incr_softirqs_this_cpu(vec_nr); +- +- trace_softirq_entry(vec_nr); +- h->action(h); +- trace_softirq_exit(vec_nr); +- if (unlikely(prev_count != preempt_count())) { +- printk(KERN_ERR "huh, entered softirq %u %s %p" +- "with preempt_count %08x," +- " exited with %08x?\n", vec_nr, +- softirq_to_name[vec_nr], h->action, +- prev_count, preempt_count()); +- preempt_count() = prev_count; +- } +- +- rcu_bh_qs(cpu); +- } +- h++; +- pending >>= 1; +- } while (pending); +- +- local_irq_disable(); ++ handle_pending_softirqs(pending, cpu); + + pending = local_softirq_pending(); + if (pending && --max_restart) +@@ -267,6 +328,26 @@ asmlinkage void __do_softirq(void) + __local_bh_enable(SOFTIRQ_OFFSET); + } + ++/* ++ * Called with preemption disabled from run_ksoftirqd() ++ */ ++static int ksoftirqd_do_softirq(int cpu) ++{ ++ /* ++ * Preempt disable stops cpu going offline. ++ * If already offline, we'll be on wrong CPU: ++ * don't process. ++ */ ++ if (cpu_is_offline(cpu)) ++ return -1; ++ ++ local_irq_disable(); ++ if (local_softirq_pending()) ++ __do_softirq(); ++ local_irq_enable(); ++ return 0; ++} ++ + #ifndef __ARCH_HAS_DO_SOFTIRQ + + asmlinkage void do_softirq(void) +@@ -289,6 +370,178 @@ asmlinkage void do_softirq(void) + + #endif + ++static inline void local_bh_disable_nort(void) { local_bh_disable(); } ++static inline void _local_bh_enable_nort(void) { _local_bh_enable(); } ++static inline void ksoftirqd_set_sched_params(void) { } ++static inline void ksoftirqd_clr_sched_params(void) { } ++ ++#else /* !PREEMPT_RT_FULL */ ++ ++/* ++ * On RT we serialize softirq execution with a cpu local lock ++ */ ++static DEFINE_LOCAL_IRQ_LOCK(local_softirq_lock); ++static DEFINE_PER_CPU(struct task_struct *, local_softirq_runner); ++ ++static void __do_softirq(void); ++ ++void __init softirq_early_init(void) ++{ ++ local_irq_lock_init(local_softirq_lock); ++} ++ ++void local_bh_disable(void) ++{ ++ migrate_disable(); ++ current->softirq_nestcnt++; ++} ++EXPORT_SYMBOL(local_bh_disable); ++ ++void local_bh_enable(void) ++{ ++ if (WARN_ON(current->softirq_nestcnt == 0)) ++ return; ++ ++ if ((current->softirq_nestcnt == 1) && ++ local_softirq_pending() && ++ local_trylock(local_softirq_lock)) { ++ ++ local_irq_disable(); ++ if (local_softirq_pending()) ++ __do_softirq(); ++ local_unlock(local_softirq_lock); ++ local_irq_enable(); ++ WARN_ON(current->softirq_nestcnt != 1); ++ } ++ current->softirq_nestcnt--; ++ migrate_enable(); ++} ++EXPORT_SYMBOL(local_bh_enable); ++ ++void local_bh_enable_ip(unsigned long ip) ++{ ++ local_bh_enable(); ++} ++EXPORT_SYMBOL(local_bh_enable_ip); ++ ++/* For tracing */ ++int notrace __in_softirq(void) ++{ ++ if (__get_cpu_var(local_softirq_lock).owner == current) ++ return __get_cpu_var(local_softirq_lock).nestcnt; ++ return 0; ++} ++ ++int in_serving_softirq(void) ++{ ++ int res; ++ ++ preempt_disable(); ++ res = __get_cpu_var(local_softirq_runner) == current; ++ preempt_enable(); ++ return res; ++} ++ ++/* ++ * Called with bh and local interrupts disabled. For full RT cpu must ++ * be pinned. ++ */ ++static void __do_softirq(void) ++{ ++ u32 pending = local_softirq_pending(); ++ int cpu = smp_processor_id(); ++ ++ current->softirq_nestcnt++; ++ ++ /* Reset the pending bitmask before enabling irqs */ ++ set_softirq_pending(0); ++ ++ __get_cpu_var(local_softirq_runner) = current; ++ ++ lockdep_softirq_enter(); ++ ++ handle_pending_softirqs(pending, cpu); ++ ++ pending = local_softirq_pending(); ++ if (pending) ++ wakeup_softirqd(); ++ ++ lockdep_softirq_exit(); ++ __get_cpu_var(local_softirq_runner) = NULL; ++ ++ current->softirq_nestcnt--; ++} ++ ++static int __thread_do_softirq(int cpu) ++{ ++ /* ++ * Prevent the current cpu from going offline. ++ * pin_current_cpu() can reenable preemption and block on the ++ * hotplug mutex. When it returns, the current cpu is ++ * pinned. It might be the wrong one, but the offline check ++ * below catches that. ++ */ ++ pin_current_cpu(); ++ /* ++ * If called from ksoftirqd (cpu >= 0) we need to check ++ * whether we are on the wrong cpu due to cpu offlining. If ++ * called via thread_do_softirq() no action required. ++ */ ++ if (cpu >= 0 && cpu_is_offline(cpu)) { ++ unpin_current_cpu(); ++ return -1; ++ } ++ preempt_enable(); ++ local_lock(local_softirq_lock); ++ local_irq_disable(); ++ /* ++ * We cannot switch stacks on RT as we want to be able to ++ * schedule! ++ */ ++ if (local_softirq_pending()) ++ __do_softirq(); ++ local_unlock(local_softirq_lock); ++ unpin_current_cpu(); ++ preempt_disable(); ++ local_irq_enable(); ++ return 0; ++} ++ ++/* ++ * Called from netif_rx_ni(). Preemption enabled. ++ */ ++void thread_do_softirq(void) ++{ ++ if (!in_serving_softirq()) { ++ preempt_disable(); ++ __thread_do_softirq(-1); ++ preempt_enable(); ++ } ++} ++ ++static int ksoftirqd_do_softirq(int cpu) ++{ ++ return __thread_do_softirq(cpu); ++} ++ ++static inline void local_bh_disable_nort(void) { } ++static inline void _local_bh_enable_nort(void) { } ++ ++static inline void ksoftirqd_set_sched_params(void) ++{ ++ struct sched_param param = { .sched_priority = 1 }; ++ ++ sched_setscheduler(current, SCHED_FIFO, ¶m); ++} ++ ++static inline void ksoftirqd_clr_sched_params(void) ++{ ++ struct sched_param param = { .sched_priority = 0 }; ++ ++ sched_setscheduler(current, SCHED_NORMAL, ¶m); ++} ++ ++#endif /* PREEMPT_RT_FULL */ + /* + * Enter an interrupt context. + */ +@@ -302,9 +555,9 @@ void irq_enter(void) + * Prevent raise_softirq from needlessly waking up ksoftirqd + * here, as softirq will be serviced on return from interrupt. + */ +- local_bh_disable(); ++ local_bh_disable_nort(); + tick_check_idle(cpu); +- _local_bh_enable(); ++ _local_bh_enable_nort(); + } + + __irq_enter(); +@@ -313,6 +566,7 @@ void irq_enter(void) + #ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED + static inline void invoke_softirq(void) + { ++#ifndef CONFIG_PREEMPT_RT_FULL + if (!force_irqthreads) + __do_softirq(); + else { +@@ -321,10 +575,14 @@ static inline void invoke_softirq(void) + wakeup_softirqd(); + __local_bh_enable(SOFTIRQ_OFFSET); + } ++#else ++ wakeup_softirqd(); ++#endif + } + #else + static inline void invoke_softirq(void) + { ++#ifndef CONFIG_PREEMPT_RT_FULL + if (!force_irqthreads) + do_softirq(); + else { +@@ -333,6 +591,9 @@ static inline void invoke_softirq(void) + wakeup_softirqd(); + __local_bh_enable(SOFTIRQ_OFFSET); + } ++#else ++ wakeup_softirqd(); ++#endif + } + #endif + +@@ -353,7 +614,7 @@ void irq_exit(void) + if (idle_cpu(smp_processor_id()) && !in_interrupt() && !need_resched()) + tick_nohz_stop_sched_tick(0); + #endif +- preempt_enable_no_resched(); ++ __preempt_enable_no_resched(); + } + + /* +@@ -739,29 +1000,21 @@ void __init softirq_init(void) + + static int run_ksoftirqd(void * __bind_cpu) + { ++ ksoftirqd_set_sched_params(); ++ + set_current_state(TASK_INTERRUPTIBLE); + + while (!kthread_should_stop()) { + preempt_disable(); +- if (!local_softirq_pending()) { +- preempt_enable_no_resched(); +- schedule(); +- preempt_disable(); +- } ++ if (!local_softirq_pending()) ++ schedule_preempt_disabled(); + + __set_current_state(TASK_RUNNING); + + while (local_softirq_pending()) { +- /* Preempt disable stops cpu going offline. +- If already offline, we'll be on wrong CPU: +- don't process */ +- if (cpu_is_offline((long)__bind_cpu)) ++ if (ksoftirqd_do_softirq((long) __bind_cpu)) + goto wait_to_die; +- local_irq_disable(); +- if (local_softirq_pending()) +- __do_softirq(); +- local_irq_enable(); +- preempt_enable_no_resched(); ++ __preempt_enable_no_resched(); + cond_resched(); + preempt_disable(); + rcu_note_context_switch((long)__bind_cpu); +@@ -774,6 +1027,7 @@ static int run_ksoftirqd(void * __bind_c + + wait_to_die: + preempt_enable(); ++ ksoftirqd_clr_sched_params(); + /* Wait for kthread_stop */ + set_current_state(TASK_INTERRUPTIBLE); + while (!kthread_should_stop()) { +Index: linux-2.6/include/linux/kprobes.h +=================================================================== +--- linux-2.6.orig/include/linux/kprobes.h ++++ linux-2.6/include/linux/kprobes.h +@@ -181,7 +181,7 @@ struct kretprobe { + int nmissed; + size_t data_size; + struct hlist_head free_instances; +- spinlock_t lock; ++ raw_spinlock_t lock; + }; + + struct kretprobe_instance { +Index: linux-2.6/kernel/kprobes.c +=================================================================== +--- linux-2.6.orig/kernel/kprobes.c ++++ linux-2.6/kernel/kprobes.c +@@ -78,10 +78,10 @@ static bool kprobes_all_disarmed; + static DEFINE_MUTEX(kprobe_mutex); + static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL; + static struct { +- spinlock_t lock ____cacheline_aligned_in_smp; ++ raw_spinlock_t lock ____cacheline_aligned_in_smp; + } kretprobe_table_locks[KPROBE_TABLE_SIZE]; + +-static spinlock_t *kretprobe_table_lock_ptr(unsigned long hash) ++static raw_spinlock_t *kretprobe_table_lock_ptr(unsigned long hash) + { + return &(kretprobe_table_locks[hash].lock); + } +@@ -1013,9 +1013,9 @@ void __kprobes recycle_rp_inst(struct kr + hlist_del(&ri->hlist); + INIT_HLIST_NODE(&ri->hlist); + if (likely(rp)) { +- spin_lock(&rp->lock); ++ raw_spin_lock(&rp->lock); + hlist_add_head(&ri->hlist, &rp->free_instances); +- spin_unlock(&rp->lock); ++ raw_spin_unlock(&rp->lock); + } else + /* Unregistering */ + hlist_add_head(&ri->hlist, head); +@@ -1026,19 +1026,19 @@ void __kprobes kretprobe_hash_lock(struc + __acquires(hlist_lock) + { + unsigned long hash = hash_ptr(tsk, KPROBE_HASH_BITS); +- spinlock_t *hlist_lock; ++ raw_spinlock_t *hlist_lock; + + *head = &kretprobe_inst_table[hash]; + hlist_lock = kretprobe_table_lock_ptr(hash); +- spin_lock_irqsave(hlist_lock, *flags); ++ raw_spin_lock_irqsave(hlist_lock, *flags); + } + + static void __kprobes kretprobe_table_lock(unsigned long hash, + unsigned long *flags) + __acquires(hlist_lock) + { +- spinlock_t *hlist_lock = kretprobe_table_lock_ptr(hash); +- spin_lock_irqsave(hlist_lock, *flags); ++ raw_spinlock_t *hlist_lock = kretprobe_table_lock_ptr(hash); ++ raw_spin_lock_irqsave(hlist_lock, *flags); + } + + void __kprobes kretprobe_hash_unlock(struct task_struct *tsk, +@@ -1046,18 +1046,18 @@ void __kprobes kretprobe_hash_unlock(str + __releases(hlist_lock) + { + unsigned long hash = hash_ptr(tsk, KPROBE_HASH_BITS); +- spinlock_t *hlist_lock; ++ raw_spinlock_t *hlist_lock; + + hlist_lock = kretprobe_table_lock_ptr(hash); +- spin_unlock_irqrestore(hlist_lock, *flags); ++ raw_spin_unlock_irqrestore(hlist_lock, *flags); + } + + static void __kprobes kretprobe_table_unlock(unsigned long hash, + unsigned long *flags) + __releases(hlist_lock) + { +- spinlock_t *hlist_lock = kretprobe_table_lock_ptr(hash); +- spin_unlock_irqrestore(hlist_lock, *flags); ++ raw_spinlock_t *hlist_lock = kretprobe_table_lock_ptr(hash); ++ raw_spin_unlock_irqrestore(hlist_lock, *flags); + } + + /* +@@ -1650,12 +1650,12 @@ static int __kprobes pre_handler_kretpro + + /*TODO: consider to only swap the RA after the last pre_handler fired */ + hash = hash_ptr(current, KPROBE_HASH_BITS); +- spin_lock_irqsave(&rp->lock, flags); ++ raw_spin_lock_irqsave(&rp->lock, flags); + if (!hlist_empty(&rp->free_instances)) { + ri = hlist_entry(rp->free_instances.first, + struct kretprobe_instance, hlist); + hlist_del(&ri->hlist); +- spin_unlock_irqrestore(&rp->lock, flags); ++ raw_spin_unlock_irqrestore(&rp->lock, flags); + + ri->rp = rp; + ri->task = current; +@@ -1672,7 +1672,7 @@ static int __kprobes pre_handler_kretpro + kretprobe_table_unlock(hash, &flags); + } else { + rp->nmissed++; +- spin_unlock_irqrestore(&rp->lock, flags); ++ raw_spin_unlock_irqrestore(&rp->lock, flags); + } + return 0; + } +@@ -1708,7 +1708,7 @@ int __kprobes register_kretprobe(struct + rp->maxactive = num_possible_cpus(); + #endif + } +- spin_lock_init(&rp->lock); ++ raw_spin_lock_init(&rp->lock); + INIT_HLIST_HEAD(&rp->free_instances); + for (i = 0; i < rp->maxactive; i++) { + inst = kmalloc(sizeof(struct kretprobe_instance) + +@@ -1946,7 +1946,7 @@ static int __init init_kprobes(void) + for (i = 0; i < KPROBE_TABLE_SIZE; i++) { + INIT_HLIST_HEAD(&kprobe_table[i]); + INIT_HLIST_HEAD(&kretprobe_inst_table[i]); +- spin_lock_init(&(kretprobe_table_locks[i].lock)); ++ raw_spin_lock_init(&(kretprobe_table_locks[i].lock)); + } + + /* +Index: linux-2.6/include/linux/percpu_counter.h +=================================================================== +--- linux-2.6.orig/include/linux/percpu_counter.h ++++ linux-2.6/include/linux/percpu_counter.h +@@ -16,7 +16,7 @@ + #ifdef CONFIG_SMP + + struct percpu_counter { +- spinlock_t lock; ++ raw_spinlock_t lock; + s64 count; + #ifdef CONFIG_HOTPLUG_CPU + struct list_head list; /* All percpu_counters are on a list */ +Index: linux-2.6/lib/percpu_counter.c +=================================================================== +--- linux-2.6.orig/lib/percpu_counter.c ++++ linux-2.6/lib/percpu_counter.c +@@ -59,13 +59,13 @@ void percpu_counter_set(struct percpu_co + { + int cpu; + +- spin_lock(&fbc->lock); ++ raw_spin_lock(&fbc->lock); + for_each_possible_cpu(cpu) { + s32 *pcount = per_cpu_ptr(fbc->counters, cpu); + *pcount = 0; + } + fbc->count = amount; +- spin_unlock(&fbc->lock); ++ raw_spin_unlock(&fbc->lock); + } + EXPORT_SYMBOL(percpu_counter_set); + +@@ -76,10 +76,10 @@ void __percpu_counter_add(struct percpu_ + preempt_disable(); + count = __this_cpu_read(*fbc->counters) + amount; + if (count >= batch || count <= -batch) { +- spin_lock(&fbc->lock); ++ raw_spin_lock(&fbc->lock); + fbc->count += count; + __this_cpu_write(*fbc->counters, 0); +- spin_unlock(&fbc->lock); ++ raw_spin_unlock(&fbc->lock); + } else { + __this_cpu_write(*fbc->counters, count); + } +@@ -96,13 +96,13 @@ s64 __percpu_counter_sum(struct percpu_c + s64 ret; + int cpu; + +- spin_lock(&fbc->lock); ++ raw_spin_lock(&fbc->lock); + ret = fbc->count; + for_each_online_cpu(cpu) { + s32 *pcount = per_cpu_ptr(fbc->counters, cpu); + ret += *pcount; + } +- spin_unlock(&fbc->lock); ++ raw_spin_unlock(&fbc->lock); + return ret; + } + EXPORT_SYMBOL(__percpu_counter_sum); +@@ -110,7 +110,7 @@ EXPORT_SYMBOL(__percpu_counter_sum); + int __percpu_counter_init(struct percpu_counter *fbc, s64 amount, + struct lock_class_key *key) + { +- spin_lock_init(&fbc->lock); ++ raw_spin_lock_init(&fbc->lock); + lockdep_set_class(&fbc->lock, key); + fbc->count = amount; + fbc->counters = alloc_percpu(s32); +@@ -173,11 +173,11 @@ static int __cpuinit percpu_counter_hotc + s32 *pcount; + unsigned long flags; + +- spin_lock_irqsave(&fbc->lock, flags); ++ raw_spin_lock_irqsave(&fbc->lock, flags); + pcount = per_cpu_ptr(fbc->counters, cpu); + fbc->count += *pcount; + *pcount = 0; +- spin_unlock_irqrestore(&fbc->lock, flags); ++ raw_spin_unlock_irqrestore(&fbc->lock, flags); + } + mutex_unlock(&percpu_counters_lock); + #endif +Index: linux-2.6/kernel/cgroup.c +=================================================================== +--- linux-2.6.orig/kernel/cgroup.c ++++ linux-2.6/kernel/cgroup.c +@@ -263,7 +263,7 @@ list_for_each_entry(_root, &roots, root_ + /* the list of cgroups eligible for automatic release. Protected by + * release_list_lock */ + static LIST_HEAD(release_list); +-static DEFINE_SPINLOCK(release_list_lock); ++static DEFINE_RAW_SPINLOCK(release_list_lock); + static void cgroup_release_agent(struct work_struct *work); + static DECLARE_WORK(release_agent_work, cgroup_release_agent); + static void check_for_release(struct cgroup *cgrp); +@@ -4010,11 +4010,11 @@ static int cgroup_rmdir(struct inode *un + finish_wait(&cgroup_rmdir_waitq, &wait); + clear_bit(CGRP_WAIT_ON_RMDIR, &cgrp->flags); + +- spin_lock(&release_list_lock); ++ raw_spin_lock(&release_list_lock); + set_bit(CGRP_REMOVED, &cgrp->flags); + if (!list_empty(&cgrp->release_list)) + list_del_init(&cgrp->release_list); +- spin_unlock(&release_list_lock); ++ raw_spin_unlock(&release_list_lock); + + cgroup_lock_hierarchy(cgrp->root); + /* delete this cgroup from parent->children */ +@@ -4667,13 +4667,13 @@ static void check_for_release(struct cgr + * already queued for a userspace notification, queue + * it now */ + int need_schedule_work = 0; +- spin_lock(&release_list_lock); ++ raw_spin_lock(&release_list_lock); + if (!cgroup_is_removed(cgrp) && + list_empty(&cgrp->release_list)) { + list_add(&cgrp->release_list, &release_list); + need_schedule_work = 1; + } +- spin_unlock(&release_list_lock); ++ raw_spin_unlock(&release_list_lock); + if (need_schedule_work) + schedule_work(&release_agent_work); + } +@@ -4725,7 +4725,7 @@ static void cgroup_release_agent(struct + { + BUG_ON(work != &release_agent_work); + mutex_lock(&cgroup_mutex); +- spin_lock(&release_list_lock); ++ raw_spin_lock(&release_list_lock); + while (!list_empty(&release_list)) { + char *argv[3], *envp[3]; + int i; +@@ -4734,7 +4734,7 @@ static void cgroup_release_agent(struct + struct cgroup, + release_list); + list_del_init(&cgrp->release_list); +- spin_unlock(&release_list_lock); ++ raw_spin_unlock(&release_list_lock); + pathbuf = kmalloc(PAGE_SIZE, GFP_KERNEL); + if (!pathbuf) + goto continue_free; +@@ -4764,9 +4764,9 @@ static void cgroup_release_agent(struct + continue_free: + kfree(pathbuf); + kfree(agentbuf); +- spin_lock(&release_list_lock); ++ raw_spin_lock(&release_list_lock); + } +- spin_unlock(&release_list_lock); ++ raw_spin_unlock(&release_list_lock); + mutex_unlock(&cgroup_mutex); + } + +Index: linux-2.6/include/linux/proportions.h +=================================================================== +--- linux-2.6.orig/include/linux/proportions.h ++++ linux-2.6/include/linux/proportions.h +@@ -58,7 +58,7 @@ struct prop_local_percpu { + */ + int shift; + unsigned long period; +- spinlock_t lock; /* protect the snapshot state */ ++ raw_spinlock_t lock; /* protect the snapshot state */ + }; + + int prop_local_init_percpu(struct prop_local_percpu *pl); +@@ -106,11 +106,11 @@ struct prop_local_single { + */ + unsigned long period; + int shift; +- spinlock_t lock; /* protect the snapshot state */ ++ raw_spinlock_t lock; /* protect the snapshot state */ + }; + + #define INIT_PROP_LOCAL_SINGLE(name) \ +-{ .lock = __SPIN_LOCK_UNLOCKED(name.lock), \ ++{ .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \ + } + + int prop_local_init_single(struct prop_local_single *pl); +Index: linux-2.6/lib/proportions.c +=================================================================== +--- linux-2.6.orig/lib/proportions.c ++++ linux-2.6/lib/proportions.c +@@ -190,7 +190,7 @@ prop_adjust_shift(int *pl_shift, unsigne + + int prop_local_init_percpu(struct prop_local_percpu *pl) + { +- spin_lock_init(&pl->lock); ++ raw_spin_lock_init(&pl->lock); + pl->shift = 0; + pl->period = 0; + return percpu_counter_init(&pl->events, 0); +@@ -226,7 +226,7 @@ void prop_norm_percpu(struct prop_global + if (pl->period == global_period) + return; + +- spin_lock_irqsave(&pl->lock, flags); ++ raw_spin_lock_irqsave(&pl->lock, flags); + prop_adjust_shift(&pl->shift, &pl->period, pg->shift); + + /* +@@ -247,7 +247,7 @@ void prop_norm_percpu(struct prop_global + percpu_counter_set(&pl->events, 0); + + pl->period = global_period; +- spin_unlock_irqrestore(&pl->lock, flags); ++ raw_spin_unlock_irqrestore(&pl->lock, flags); + } + + /* +@@ -324,7 +324,7 @@ void prop_fraction_percpu(struct prop_de + + int prop_local_init_single(struct prop_local_single *pl) + { +- spin_lock_init(&pl->lock); ++ raw_spin_lock_init(&pl->lock); + pl->shift = 0; + pl->period = 0; + pl->events = 0; +@@ -356,7 +356,7 @@ void prop_norm_single(struct prop_global + if (pl->period == global_period) + return; + +- spin_lock_irqsave(&pl->lock, flags); ++ raw_spin_lock_irqsave(&pl->lock, flags); + prop_adjust_shift(&pl->shift, &pl->period, pg->shift); + /* + * For each missed period, we half the local counter. +@@ -367,7 +367,7 @@ void prop_norm_single(struct prop_global + else + pl->events = 0; + pl->period = global_period; +- spin_unlock_irqrestore(&pl->lock, flags); ++ raw_spin_unlock_irqrestore(&pl->lock, flags); + } + + /* +Index: linux-2.6/kernel/trace/ring_buffer.c +=================================================================== +--- linux-2.6.orig/kernel/trace/ring_buffer.c ++++ linux-2.6/kernel/trace/ring_buffer.c +@@ -478,7 +478,7 @@ struct ring_buffer_per_cpu { + int cpu; + atomic_t record_disabled; + struct ring_buffer *buffer; +- spinlock_t reader_lock; /* serialize readers */ ++ raw_spinlock_t reader_lock; /* serialize readers */ + arch_spinlock_t lock; + struct lock_class_key lock_key; + struct list_head *pages; +@@ -1055,7 +1055,7 @@ rb_allocate_cpu_buffer(struct ring_buffe + + cpu_buffer->cpu = cpu; + cpu_buffer->buffer = buffer; +- spin_lock_init(&cpu_buffer->reader_lock); ++ raw_spin_lock_init(&cpu_buffer->reader_lock); + lockdep_set_class(&cpu_buffer->reader_lock, buffer->reader_lock_key); + cpu_buffer->lock = (arch_spinlock_t)__ARCH_SPIN_LOCK_UNLOCKED; + +@@ -1252,7 +1252,7 @@ rb_remove_pages(struct ring_buffer_per_c + struct list_head *p; + unsigned i; + +- spin_lock_irq(&cpu_buffer->reader_lock); ++ raw_spin_lock_irq(&cpu_buffer->reader_lock); + rb_head_page_deactivate(cpu_buffer); + + for (i = 0; i < nr_pages; i++) { +@@ -1270,7 +1270,7 @@ rb_remove_pages(struct ring_buffer_per_c + rb_check_pages(cpu_buffer); + + out: +- spin_unlock_irq(&cpu_buffer->reader_lock); ++ raw_spin_unlock_irq(&cpu_buffer->reader_lock); + } + + static void +@@ -1281,7 +1281,7 @@ rb_insert_pages(struct ring_buffer_per_c + struct list_head *p; + unsigned i; + +- spin_lock_irq(&cpu_buffer->reader_lock); ++ raw_spin_lock_irq(&cpu_buffer->reader_lock); + rb_head_page_deactivate(cpu_buffer); + + for (i = 0; i < nr_pages; i++) { +@@ -1296,7 +1296,7 @@ rb_insert_pages(struct ring_buffer_per_c + rb_check_pages(cpu_buffer); + + out: +- spin_unlock_irq(&cpu_buffer->reader_lock); ++ raw_spin_unlock_irq(&cpu_buffer->reader_lock); + } + + /** +@@ -2790,9 +2790,9 @@ void ring_buffer_iter_reset(struct ring_ + + cpu_buffer = iter->cpu_buffer; + +- spin_lock_irqsave(&cpu_buffer->reader_lock, flags); ++ raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); + rb_iter_reset(iter); +- spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); ++ raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); + } + EXPORT_SYMBOL_GPL(ring_buffer_iter_reset); + +@@ -3251,12 +3251,12 @@ ring_buffer_peek(struct ring_buffer *buf + again: + local_irq_save(flags); + if (dolock) +- spin_lock(&cpu_buffer->reader_lock); ++ raw_spin_lock(&cpu_buffer->reader_lock); + event = rb_buffer_peek(cpu_buffer, ts, lost_events); + if (event && event->type_len == RINGBUF_TYPE_PADDING) + rb_advance_reader(cpu_buffer); + if (dolock) +- spin_unlock(&cpu_buffer->reader_lock); ++ raw_spin_unlock(&cpu_buffer->reader_lock); + local_irq_restore(flags); + + if (event && event->type_len == RINGBUF_TYPE_PADDING) +@@ -3281,9 +3281,9 @@ ring_buffer_iter_peek(struct ring_buffer + unsigned long flags; + + again: +- spin_lock_irqsave(&cpu_buffer->reader_lock, flags); ++ raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); + event = rb_iter_peek(iter, ts); +- spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); ++ raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); + + if (event && event->type_len == RINGBUF_TYPE_PADDING) + goto again; +@@ -3323,7 +3323,7 @@ ring_buffer_consume(struct ring_buffer * + cpu_buffer = buffer->buffers[cpu]; + local_irq_save(flags); + if (dolock) +- spin_lock(&cpu_buffer->reader_lock); ++ raw_spin_lock(&cpu_buffer->reader_lock); + + event = rb_buffer_peek(cpu_buffer, ts, lost_events); + if (event) { +@@ -3332,7 +3332,7 @@ ring_buffer_consume(struct ring_buffer * + } + + if (dolock) +- spin_unlock(&cpu_buffer->reader_lock); ++ raw_spin_unlock(&cpu_buffer->reader_lock); + local_irq_restore(flags); + + out: +@@ -3424,11 +3424,11 @@ ring_buffer_read_start(struct ring_buffe + + cpu_buffer = iter->cpu_buffer; + +- spin_lock_irqsave(&cpu_buffer->reader_lock, flags); ++ raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); + arch_spin_lock(&cpu_buffer->lock); + rb_iter_reset(iter); + arch_spin_unlock(&cpu_buffer->lock); +- spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); ++ raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); + } + EXPORT_SYMBOL_GPL(ring_buffer_read_start); + +@@ -3463,7 +3463,7 @@ ring_buffer_read(struct ring_buffer_iter + struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer; + unsigned long flags; + +- spin_lock_irqsave(&cpu_buffer->reader_lock, flags); ++ raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); + again: + event = rb_iter_peek(iter, ts); + if (!event) +@@ -3474,7 +3474,7 @@ ring_buffer_read(struct ring_buffer_iter + + rb_advance_iter(iter); + out: +- spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); ++ raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); + + return event; + } +@@ -3543,7 +3543,7 @@ void ring_buffer_reset_cpu(struct ring_b + + atomic_inc(&cpu_buffer->record_disabled); + +- spin_lock_irqsave(&cpu_buffer->reader_lock, flags); ++ raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); + + if (RB_WARN_ON(cpu_buffer, local_read(&cpu_buffer->committing))) + goto out; +@@ -3555,7 +3555,7 @@ void ring_buffer_reset_cpu(struct ring_b + arch_spin_unlock(&cpu_buffer->lock); + + out: +- spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); ++ raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); + + atomic_dec(&cpu_buffer->record_disabled); + } +@@ -3593,10 +3593,10 @@ int ring_buffer_empty(struct ring_buffer + cpu_buffer = buffer->buffers[cpu]; + local_irq_save(flags); + if (dolock) +- spin_lock(&cpu_buffer->reader_lock); ++ raw_spin_lock(&cpu_buffer->reader_lock); + ret = rb_per_cpu_empty(cpu_buffer); + if (dolock) +- spin_unlock(&cpu_buffer->reader_lock); ++ raw_spin_unlock(&cpu_buffer->reader_lock); + local_irq_restore(flags); + + if (!ret) +@@ -3627,10 +3627,10 @@ int ring_buffer_empty_cpu(struct ring_bu + cpu_buffer = buffer->buffers[cpu]; + local_irq_save(flags); + if (dolock) +- spin_lock(&cpu_buffer->reader_lock); ++ raw_spin_lock(&cpu_buffer->reader_lock); + ret = rb_per_cpu_empty(cpu_buffer); + if (dolock) +- spin_unlock(&cpu_buffer->reader_lock); ++ raw_spin_unlock(&cpu_buffer->reader_lock); + local_irq_restore(flags); + + return ret; +@@ -3826,7 +3826,7 @@ int ring_buffer_read_page(struct ring_bu + if (!bpage) + goto out; + +- spin_lock_irqsave(&cpu_buffer->reader_lock, flags); ++ raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); + + reader = rb_get_reader_page(cpu_buffer); + if (!reader) +@@ -3949,7 +3949,7 @@ int ring_buffer_read_page(struct ring_bu + memset(&bpage->data[commit], 0, BUF_PAGE_SIZE - commit); + + out_unlock: +- spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); ++ raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); + + out: + return ret; +Index: linux-2.6/kernel/trace/trace.c +=================================================================== +--- linux-2.6.orig/kernel/trace/trace.c ++++ linux-2.6/kernel/trace/trace.c +@@ -341,7 +341,7 @@ unsigned long trace_flags = TRACE_ITER_P + TRACE_ITER_GRAPH_TIME | TRACE_ITER_RECORD_CMD | TRACE_ITER_OVERWRITE; + + static int trace_stop_count; +-static DEFINE_SPINLOCK(tracing_start_lock); ++static DEFINE_RAW_SPINLOCK(tracing_start_lock); + + /** + * trace_wake_up - wake up tasks waiting for trace input +@@ -958,7 +958,7 @@ void tracing_start(void) + if (tracing_disabled) + return; + +- spin_lock_irqsave(&tracing_start_lock, flags); ++ raw_spin_lock_irqsave(&tracing_start_lock, flags); + if (--trace_stop_count) { + if (trace_stop_count < 0) { + /* Someone screwed up their debugging */ +@@ -983,7 +983,7 @@ void tracing_start(void) + + ftrace_start(); + out: +- spin_unlock_irqrestore(&tracing_start_lock, flags); ++ raw_spin_unlock_irqrestore(&tracing_start_lock, flags); + } + + /** +@@ -998,7 +998,7 @@ void tracing_stop(void) + unsigned long flags; + + ftrace_stop(); +- spin_lock_irqsave(&tracing_start_lock, flags); ++ raw_spin_lock_irqsave(&tracing_start_lock, flags); + if (trace_stop_count++) + goto out; + +@@ -1016,7 +1016,7 @@ void tracing_stop(void) + arch_spin_unlock(&ftrace_max_lock); + + out: +- spin_unlock_irqrestore(&tracing_start_lock, flags); ++ raw_spin_unlock_irqrestore(&tracing_start_lock, flags); + } + + void trace_stop_cmdline_recording(void); +@@ -1120,6 +1120,8 @@ tracing_generic_entry_update(struct trac + ((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) | + ((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) | + (need_resched() ? TRACE_FLAG_NEED_RESCHED : 0); ++ ++ entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0; + } + EXPORT_SYMBOL_GPL(tracing_generic_entry_update); + +@@ -1757,9 +1759,10 @@ static void print_lat_help_header(struct + seq_puts(m, "# | / _----=> need-resched \n"); + seq_puts(m, "# || / _---=> hardirq/softirq \n"); + seq_puts(m, "# ||| / _--=> preempt-depth \n"); +- seq_puts(m, "# |||| / delay \n"); +- seq_puts(m, "# cmd pid ||||| time | caller \n"); +- seq_puts(m, "# \\ / ||||| \\ | / \n"); ++ seq_puts(m, "# |||| / _--=> migrate-disable\n"); ++ seq_puts(m, "# ||||| / delay \n"); ++ seq_puts(m, "# cmd pid |||||| time | caller \n"); ++ seq_puts(m, "# \\ / ||||| \\ | / \n"); + } + + static void print_func_help_header(struct seq_file *m) +Index: linux-2.6/kernel/trace/trace_irqsoff.c +=================================================================== +--- linux-2.6.orig/kernel/trace/trace_irqsoff.c ++++ linux-2.6/kernel/trace/trace_irqsoff.c +@@ -17,13 +17,14 @@ + #include + + #include "trace.h" ++#include + + static struct trace_array *irqsoff_trace __read_mostly; + static int tracer_enabled __read_mostly; + + static DEFINE_PER_CPU(int, tracing_cpu); + +-static DEFINE_SPINLOCK(max_trace_lock); ++static DEFINE_RAW_SPINLOCK(max_trace_lock); + + enum { + TRACER_IRQS_OFF = (1 << 1), +@@ -319,7 +320,7 @@ check_critical_timing(struct trace_array + if (!report_latency(delta)) + goto out; + +- spin_lock_irqsave(&max_trace_lock, flags); ++ raw_spin_lock_irqsave(&max_trace_lock, flags); + + /* check if we are still the max latency */ + if (!report_latency(delta)) +@@ -342,7 +343,7 @@ check_critical_timing(struct trace_array + max_sequence++; + + out_unlock: +- spin_unlock_irqrestore(&max_trace_lock, flags); ++ raw_spin_unlock_irqrestore(&max_trace_lock, flags); + + out: + data->critical_sequence = max_sequence; +@@ -424,11 +425,13 @@ void start_critical_timings(void) + { + if (preempt_trace() || irq_trace()) + start_critical_timing(CALLER_ADDR0, CALLER_ADDR1); ++ trace_preemptirqsoff_hist(TRACE_START, 1); + } + EXPORT_SYMBOL_GPL(start_critical_timings); + + void stop_critical_timings(void) + { ++ trace_preemptirqsoff_hist(TRACE_STOP, 0); + if (preempt_trace() || irq_trace()) + stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1); + } +@@ -438,6 +441,7 @@ EXPORT_SYMBOL_GPL(stop_critical_timings) + #ifdef CONFIG_PROVE_LOCKING + void time_hardirqs_on(unsigned long a0, unsigned long a1) + { ++ trace_preemptirqsoff_hist(IRQS_ON, 0); + if (!preempt_trace() && irq_trace()) + stop_critical_timing(a0, a1); + } +@@ -446,6 +450,7 @@ void time_hardirqs_off(unsigned long a0, + { + if (!preempt_trace() && irq_trace()) + start_critical_timing(a0, a1); ++ trace_preemptirqsoff_hist(IRQS_OFF, 1); + } + + #else /* !CONFIG_PROVE_LOCKING */ +@@ -471,6 +476,7 @@ inline void print_irqtrace_events(struct + */ + void trace_hardirqs_on(void) + { ++ trace_preemptirqsoff_hist(IRQS_ON, 0); + if (!preempt_trace() && irq_trace()) + stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1); + } +@@ -480,11 +486,13 @@ void trace_hardirqs_off(void) + { + if (!preempt_trace() && irq_trace()) + start_critical_timing(CALLER_ADDR0, CALLER_ADDR1); ++ trace_preemptirqsoff_hist(IRQS_OFF, 1); + } + EXPORT_SYMBOL(trace_hardirqs_off); + + void trace_hardirqs_on_caller(unsigned long caller_addr) + { ++ trace_preemptirqsoff_hist(IRQS_ON, 0); + if (!preempt_trace() && irq_trace()) + stop_critical_timing(CALLER_ADDR0, caller_addr); + } +@@ -494,6 +502,7 @@ void trace_hardirqs_off_caller(unsigned + { + if (!preempt_trace() && irq_trace()) + start_critical_timing(CALLER_ADDR0, caller_addr); ++ trace_preemptirqsoff_hist(IRQS_OFF, 1); + } + EXPORT_SYMBOL(trace_hardirqs_off_caller); + +@@ -503,12 +512,14 @@ EXPORT_SYMBOL(trace_hardirqs_off_caller) + #ifdef CONFIG_PREEMPT_TRACER + void trace_preempt_on(unsigned long a0, unsigned long a1) + { ++ trace_preemptirqsoff_hist(PREEMPT_ON, 0); + if (preempt_trace()) + stop_critical_timing(a0, a1); + } + + void trace_preempt_off(unsigned long a0, unsigned long a1) + { ++ trace_preemptirqsoff_hist(PREEMPT_OFF, 1); + if (preempt_trace()) + start_critical_timing(a0, a1); + } +Index: linux-2.6/include/linux/ratelimit.h +=================================================================== +--- linux-2.6.orig/include/linux/ratelimit.h ++++ linux-2.6/include/linux/ratelimit.h +@@ -8,7 +8,7 @@ + #define DEFAULT_RATELIMIT_BURST 10 + + struct ratelimit_state { +- spinlock_t lock; /* protect the state */ ++ raw_spinlock_t lock; /* protect the state */ + + int interval; + int burst; +@@ -20,7 +20,7 @@ struct ratelimit_state { + #define DEFINE_RATELIMIT_STATE(name, interval_init, burst_init) \ + \ + struct ratelimit_state name = { \ +- .lock = __SPIN_LOCK_UNLOCKED(name.lock), \ ++ .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \ + .interval = interval_init, \ + .burst = burst_init, \ + } +@@ -28,7 +28,7 @@ struct ratelimit_state { + static inline void ratelimit_state_init(struct ratelimit_state *rs, + int interval, int burst) + { +- spin_lock_init(&rs->lock); ++ raw_spin_lock_init(&rs->lock); + rs->interval = interval; + rs->burst = burst; + rs->printed = 0; +Index: linux-2.6/kernel/printk.c +=================================================================== +--- linux-2.6.orig/kernel/printk.c ++++ linux-2.6/kernel/printk.c +@@ -44,13 +44,6 @@ + + #include + +-/* +- * Architectures can override it: +- */ +-void asmlinkage __attribute__((weak)) early_printk(const char *fmt, ...) +-{ +-} +- + #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT) + + /* printk's without a loglevel use this.. */ +@@ -100,7 +93,7 @@ static int console_locked, console_suspe + * It is also used in interesting ways to provide interlocking in + * console_unlock();. + */ +-static DEFINE_SPINLOCK(logbuf_lock); ++static DEFINE_RAW_SPINLOCK(logbuf_lock); + + #define LOG_BUF_MASK (log_buf_len-1) + #define LOG_BUF(idx) (log_buf[(idx) & LOG_BUF_MASK]) +@@ -212,7 +205,7 @@ void __init setup_log_buf(int early) + return; + } + +- spin_lock_irqsave(&logbuf_lock, flags); ++ raw_spin_lock_irqsave(&logbuf_lock, flags); + log_buf_len = new_log_buf_len; + log_buf = new_log_buf; + new_log_buf_len = 0; +@@ -230,7 +223,7 @@ void __init setup_log_buf(int early) + log_start -= offset; + con_start -= offset; + log_end -= offset; +- spin_unlock_irqrestore(&logbuf_lock, flags); ++ raw_spin_unlock_irqrestore(&logbuf_lock, flags); + + pr_info("log_buf_len: %d\n", log_buf_len); + pr_info("early log buf free: %d(%d%%)\n", +@@ -363,18 +356,18 @@ int do_syslog(int type, char __user *buf + if (error) + goto out; + i = 0; +- spin_lock_irq(&logbuf_lock); ++ raw_spin_lock_irq(&logbuf_lock); + while (!error && (log_start != log_end) && i < len) { + c = LOG_BUF(log_start); + log_start++; +- spin_unlock_irq(&logbuf_lock); ++ raw_spin_unlock_irq(&logbuf_lock); + error = __put_user(c,buf); + buf++; + i++; + cond_resched(); +- spin_lock_irq(&logbuf_lock); ++ raw_spin_lock_irq(&logbuf_lock); + } +- spin_unlock_irq(&logbuf_lock); ++ raw_spin_unlock_irq(&logbuf_lock); + if (!error) + error = i; + break; +@@ -397,7 +390,7 @@ int do_syslog(int type, char __user *buf + count = len; + if (count > log_buf_len) + count = log_buf_len; +- spin_lock_irq(&logbuf_lock); ++ raw_spin_lock_irq(&logbuf_lock); + if (count > logged_chars) + count = logged_chars; + if (do_clear) +@@ -414,12 +407,12 @@ int do_syslog(int type, char __user *buf + if (j + log_buf_len < log_end) + break; + c = LOG_BUF(j); +- spin_unlock_irq(&logbuf_lock); ++ raw_spin_unlock_irq(&logbuf_lock); + error = __put_user(c,&buf[count-1-i]); + cond_resched(); +- spin_lock_irq(&logbuf_lock); ++ raw_spin_lock_irq(&logbuf_lock); + } +- spin_unlock_irq(&logbuf_lock); ++ raw_spin_unlock_irq(&logbuf_lock); + if (error) + break; + error = i; +@@ -509,6 +502,7 @@ static void __call_console_drivers(unsig + { + struct console *con; + ++ migrate_disable(); + for_each_console(con) { + if (exclusive_console && con != exclusive_console) + continue; +@@ -517,7 +511,54 @@ static void __call_console_drivers(unsig + (con->flags & CON_ANYTIME))) + con->write(con, &LOG_BUF(start), end - start); + } ++ migrate_enable(); ++} ++ ++#ifdef CONFIG_EARLY_PRINTK ++struct console *early_console; ++ ++static void early_vprintk(const char *fmt, va_list ap) ++{ ++ char buf[512]; ++ int n = vscnprintf(buf, sizeof(buf), fmt, ap); ++ if (early_console) ++ early_console->write(early_console, buf, n); ++} ++ ++asmlinkage void early_printk(const char *fmt, ...) ++{ ++ va_list ap; ++ va_start(ap, fmt); ++ early_vprintk(fmt, ap); ++ va_end(ap); ++} ++ ++/* ++ * This is independent of any log levels - a global ++ * kill switch that turns off all of printk. ++ * ++ * Used by the NMI watchdog if early-printk is enabled. ++ */ ++static int __read_mostly printk_killswitch; ++ ++void printk_kill(void) ++{ ++ printk_killswitch = 1; ++} ++ ++static int forced_early_printk(const char *fmt, va_list ap) ++{ ++ if (!printk_killswitch) ++ return 0; ++ early_vprintk(fmt, ap); ++ return 1; + } ++#else ++static inline int forced_early_printk(const char *fmt, va_list ap) ++{ ++ return 0; ++} ++#endif + + static int __read_mostly ignore_loglevel; + +@@ -687,7 +728,7 @@ static void zap_locks(void) + oops_timestamp = jiffies; + + /* If a crash is occurring, make sure we can't deadlock */ +- spin_lock_init(&logbuf_lock); ++ raw_spin_lock_init(&logbuf_lock); + /* And make sure that we print immediately */ + sema_init(&console_sem, 1); + } +@@ -779,12 +820,18 @@ static inline int can_use_console(unsign + * interrupts disabled. It should return with 'lockbuf_lock' + * released but interrupts still disabled. + */ +-static int console_trylock_for_printk(unsigned int cpu) ++static int console_trylock_for_printk(unsigned int cpu, unsigned long flags) + __releases(&logbuf_lock) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ int lock = !early_boot_irqs_disabled && !irqs_disabled_flags(flags) && ++ !preempt_count(); ++#else ++ int lock = 1; ++#endif + int retval = 0; + +- if (console_trylock()) { ++ if (lock && console_trylock()) { + retval = 1; + + /* +@@ -800,7 +847,7 @@ static int console_trylock_for_printk(un + } + } + printk_cpu = UINT_MAX; +- spin_unlock(&logbuf_lock); ++ raw_spin_unlock(&logbuf_lock); + return retval; + } + static const char recursion_bug_msg [] = +@@ -833,6 +880,13 @@ asmlinkage int vprintk(const char *fmt, + size_t plen; + char special; + ++ /* ++ * Fall back to early_printk if a debugging subsystem has ++ * killed printk output ++ */ ++ if (unlikely(forced_early_printk(fmt, args))) ++ return 1; ++ + boot_delay_msec(); + printk_delay(); + +@@ -860,7 +914,7 @@ asmlinkage int vprintk(const char *fmt, + } + + lockdep_off(); +- spin_lock(&logbuf_lock); ++ raw_spin_lock(&logbuf_lock); + printk_cpu = this_cpu; + + if (recursion_bug) { +@@ -953,8 +1007,15 @@ asmlinkage int vprintk(const char *fmt, + * will release 'logbuf_lock' regardless of whether it + * actually gets the semaphore or not. + */ +- if (console_trylock_for_printk(this_cpu)) ++ if (console_trylock_for_printk(this_cpu, flags)) { ++#ifndef CONFIG_PREEMPT_RT_FULL ++ console_unlock(); ++#else ++ raw_local_irq_restore(flags); + console_unlock(); ++ raw_local_irq_save(flags); ++#endif ++ } + + lockdep_on(); + out_restore_irqs: +@@ -1252,18 +1313,23 @@ void console_unlock(void) + console_may_schedule = 0; + + for ( ; ; ) { +- spin_lock_irqsave(&logbuf_lock, flags); ++ raw_spin_lock_irqsave(&logbuf_lock, flags); + wake_klogd |= log_start - log_end; + if (con_start == log_end) + break; /* Nothing to print */ + _con_start = con_start; + _log_end = log_end; + con_start = log_end; /* Flush */ +- spin_unlock(&logbuf_lock); ++#ifndef CONFIG_PREEMPT_RT_FULL ++ raw_spin_unlock(&logbuf_lock); + stop_critical_timings(); /* don't trace print latency */ + call_console_drivers(_con_start, _log_end); + start_critical_timings(); + local_irq_restore(flags); ++#else ++ raw_spin_unlock_irqrestore(&logbuf_lock, flags); ++ call_console_drivers(_con_start, _log_end); ++#endif + } + console_locked = 0; + +@@ -1272,7 +1338,7 @@ void console_unlock(void) + exclusive_console = NULL; + + up(&console_sem); +- spin_unlock_irqrestore(&logbuf_lock, flags); ++ raw_spin_unlock_irqrestore(&logbuf_lock, flags); + if (wake_klogd) + wake_up_klogd(); + } +@@ -1502,9 +1568,9 @@ void register_console(struct console *ne + * console_unlock(); will print out the buffered messages + * for us. + */ +- spin_lock_irqsave(&logbuf_lock, flags); ++ raw_spin_lock_irqsave(&logbuf_lock, flags); + con_start = log_start; +- spin_unlock_irqrestore(&logbuf_lock, flags); ++ raw_spin_unlock_irqrestore(&logbuf_lock, flags); + /* + * We're about to replay the log buffer. Only do this to the + * just-registered console to avoid excessive message spam to +@@ -1711,10 +1777,10 @@ void kmsg_dump(enum kmsg_dump_reason rea + /* Theoretically, the log could move on after we do this, but + there's not a lot we can do about that. The new messages + will overwrite the start of what we dump. */ +- spin_lock_irqsave(&logbuf_lock, flags); ++ raw_spin_lock_irqsave(&logbuf_lock, flags); + end = log_end & LOG_BUF_MASK; + chars = logged_chars; +- spin_unlock_irqrestore(&logbuf_lock, flags); ++ raw_spin_unlock_irqrestore(&logbuf_lock, flags); + + if (chars > end) { + s1 = log_buf + log_buf_len - chars + end; +Index: linux-2.6/lib/ratelimit.c +=================================================================== +--- linux-2.6.orig/lib/ratelimit.c ++++ linux-2.6/lib/ratelimit.c +@@ -39,7 +39,7 @@ int ___ratelimit(struct ratelimit_state + * in addition to the one that will be printed by + * the entity that is holding the lock already: + */ +- if (!spin_trylock_irqsave(&rs->lock, flags)) ++ if (!raw_spin_trylock_irqsave(&rs->lock, flags)) + return 0; + + if (!rs->begin) +@@ -60,7 +60,7 @@ int ___ratelimit(struct ratelimit_state + rs->missed++; + ret = 0; + } +- spin_unlock_irqrestore(&rs->lock, flags); ++ raw_spin_unlock_irqrestore(&rs->lock, flags); + + return ret; + } +Index: linux-2.6/include/linux/init_task.h +=================================================================== +--- linux-2.6.orig/include/linux/init_task.h ++++ linux-2.6/include/linux/init_task.h +@@ -42,7 +42,7 @@ extern struct fs_struct init_fs; + .cputimer = { \ + .cputime = INIT_CPUTIME, \ + .running = 0, \ +- .lock = __SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \ ++ .lock = __RAW_SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \ + }, \ + .cred_guard_mutex = \ + __MUTEX_INITIALIZER(sig.cred_guard_mutex), \ +@@ -126,6 +126,12 @@ extern struct cred init_cred; + # define INIT_PERF_EVENTS(tsk) + #endif + ++#ifdef CONFIG_PREEMPT_RT_BASE ++# define INIT_TIMER_LIST .posix_timer_list = NULL, ++#else ++# define INIT_TIMER_LIST ++#endif ++ + /* + * INIT_TASK is used to set up the first task table, touch at + * your own risk!. Base=0, limit=0x1fffff (=2MB) +@@ -179,6 +185,7 @@ extern struct cred init_cred; + .fs_excl = ATOMIC_INIT(0), \ + .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock), \ + .timer_slack_ns = 50000, /* 50 usec default slack */ \ ++ INIT_TIMER_LIST \ + .pids = { \ + [PIDTYPE_PID] = INIT_PID_LINK(PIDTYPE_PID), \ + [PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID), \ +Index: linux-2.6/kernel/posix-cpu-timers.c +=================================================================== +--- linux-2.6.orig/kernel/posix-cpu-timers.c ++++ linux-2.6/kernel/posix-cpu-timers.c +@@ -274,7 +274,7 @@ void thread_group_cputimer(struct task_s + struct task_cputime sum; + unsigned long flags; + +- spin_lock_irqsave(&cputimer->lock, flags); ++ raw_spin_lock_irqsave(&cputimer->lock, flags); + if (!cputimer->running) { + cputimer->running = 1; + /* +@@ -287,7 +287,7 @@ void thread_group_cputimer(struct task_s + update_gt_cputime(&cputimer->cputime, &sum); + } + *times = cputimer->cputime; +- spin_unlock_irqrestore(&cputimer->lock, flags); ++ raw_spin_unlock_irqrestore(&cputimer->lock, flags); + } + + /* +@@ -699,7 +699,7 @@ static int posix_cpu_timer_set(struct k_ + /* + * Disarm any old timer after extracting its expiry time. + */ +- BUG_ON(!irqs_disabled()); ++ BUG_ON_NONRT(!irqs_disabled()); + + ret = 0; + old_incr = timer->it.cpu.incr; +@@ -997,9 +997,9 @@ static void stop_process_timers(struct s + struct thread_group_cputimer *cputimer = &sig->cputimer; + unsigned long flags; + +- spin_lock_irqsave(&cputimer->lock, flags); ++ raw_spin_lock_irqsave(&cputimer->lock, flags); + cputimer->running = 0; +- spin_unlock_irqrestore(&cputimer->lock, flags); ++ raw_spin_unlock_irqrestore(&cputimer->lock, flags); + } + + static u32 onecputick; +@@ -1221,7 +1221,7 @@ void posix_cpu_timer_schedule(struct k_i + /* + * Now re-arm for the new expiry time. + */ +- BUG_ON(!irqs_disabled()); ++ BUG_ON_NONRT(!irqs_disabled()); + arm_timer(timer); + spin_unlock(&p->sighand->siglock); + +@@ -1288,10 +1288,11 @@ static inline int fastpath_timer_check(s + sig = tsk->signal; + if (sig->cputimer.running) { + struct task_cputime group_sample; ++ unsigned long flags; + +- spin_lock(&sig->cputimer.lock); ++ raw_spin_lock_irqsave(&sig->cputimer.lock, flags); + group_sample = sig->cputimer.cputime; +- spin_unlock(&sig->cputimer.lock); ++ raw_spin_unlock_irqrestore(&sig->cputimer.lock, flags); + + if (task_cputime_expired(&group_sample, &sig->cputime_expires)) + return 1; +@@ -1305,13 +1306,13 @@ static inline int fastpath_timer_check(s + * already updated our counts. We need to check if any timers fire now. + * Interrupts are disabled. + */ +-void run_posix_cpu_timers(struct task_struct *tsk) ++static void __run_posix_cpu_timers(struct task_struct *tsk) + { + LIST_HEAD(firing); + struct k_itimer *timer, *next; + unsigned long flags; + +- BUG_ON(!irqs_disabled()); ++ BUG_ON_NONRT(!irqs_disabled()); + + /* + * The fast path checks that there are no expired thread or thread +@@ -1369,6 +1370,190 @@ void run_posix_cpu_timers(struct task_st + } + } + ++#ifdef CONFIG_PREEMPT_RT_BASE ++#include ++#include ++DEFINE_PER_CPU(struct task_struct *, posix_timer_task); ++DEFINE_PER_CPU(struct task_struct *, posix_timer_tasklist); ++ ++static int posix_cpu_timers_thread(void *data) ++{ ++ int cpu = (long)data; ++ ++ BUG_ON(per_cpu(posix_timer_task,cpu) != current); ++ ++ while (!kthread_should_stop()) { ++ struct task_struct *tsk = NULL; ++ struct task_struct *next = NULL; ++ ++ if (cpu_is_offline(cpu)) ++ goto wait_to_die; ++ ++ /* grab task list */ ++ raw_local_irq_disable(); ++ tsk = per_cpu(posix_timer_tasklist, cpu); ++ per_cpu(posix_timer_tasklist, cpu) = NULL; ++ raw_local_irq_enable(); ++ ++ /* its possible the list is empty, just return */ ++ if (!tsk) { ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule(); ++ __set_current_state(TASK_RUNNING); ++ continue; ++ } ++ ++ /* Process task list */ ++ while (1) { ++ /* save next */ ++ next = tsk->posix_timer_list; ++ ++ /* run the task timers, clear its ptr and ++ * unreference it ++ */ ++ __run_posix_cpu_timers(tsk); ++ tsk->posix_timer_list = NULL; ++ put_task_struct(tsk); ++ ++ /* check if this is the last on the list */ ++ if (next == tsk) ++ break; ++ tsk = next; ++ } ++ } ++ return 0; ++ ++wait_to_die: ++ /* Wait for kthread_stop */ ++ set_current_state(TASK_INTERRUPTIBLE); ++ while (!kthread_should_stop()) { ++ schedule(); ++ set_current_state(TASK_INTERRUPTIBLE); ++ } ++ __set_current_state(TASK_RUNNING); ++ return 0; ++} ++ ++static inline int __fastpath_timer_check(struct task_struct *tsk) ++{ ++ /* tsk == current, ensure it is safe to use ->signal/sighand */ ++ if (unlikely(tsk->exit_state)) ++ return 0; ++ ++ if (!task_cputime_zero(&tsk->cputime_expires)) ++ return 1; ++ ++ if (!task_cputime_zero(&tsk->signal->cputime_expires)) ++ return 1; ++ ++ return 0; ++} ++ ++void run_posix_cpu_timers(struct task_struct *tsk) ++{ ++ unsigned long cpu = smp_processor_id(); ++ struct task_struct *tasklist; ++ ++ BUG_ON(!irqs_disabled()); ++ if(!per_cpu(posix_timer_task, cpu)) ++ return; ++ /* get per-cpu references */ ++ tasklist = per_cpu(posix_timer_tasklist, cpu); ++ ++ /* check to see if we're already queued */ ++ if (!tsk->posix_timer_list && __fastpath_timer_check(tsk)) { ++ get_task_struct(tsk); ++ if (tasklist) { ++ tsk->posix_timer_list = tasklist; ++ } else { ++ /* ++ * The list is terminated by a self-pointing ++ * task_struct ++ */ ++ tsk->posix_timer_list = tsk; ++ } ++ per_cpu(posix_timer_tasklist, cpu) = tsk; ++ ++ wake_up_process(per_cpu(posix_timer_task, cpu)); ++ } ++} ++ ++/* ++ * posix_cpu_thread_call - callback that gets triggered when a CPU is added. ++ * Here we can start up the necessary migration thread for the new CPU. ++ */ ++static int posix_cpu_thread_call(struct notifier_block *nfb, ++ unsigned long action, void *hcpu) ++{ ++ int cpu = (long)hcpu; ++ struct task_struct *p; ++ struct sched_param param; ++ ++ switch (action) { ++ case CPU_UP_PREPARE: ++ p = kthread_create(posix_cpu_timers_thread, hcpu, ++ "posixcputmr/%d",cpu); ++ if (IS_ERR(p)) ++ return NOTIFY_BAD; ++ p->flags |= PF_NOFREEZE; ++ kthread_bind(p, cpu); ++ /* Must be high prio to avoid getting starved */ ++ param.sched_priority = MAX_RT_PRIO-1; ++ sched_setscheduler(p, SCHED_FIFO, ¶m); ++ per_cpu(posix_timer_task,cpu) = p; ++ break; ++ case CPU_ONLINE: ++ /* Strictly unneccessary, as first user will wake it. */ ++ wake_up_process(per_cpu(posix_timer_task,cpu)); ++ break; ++#ifdef CONFIG_HOTPLUG_CPU ++ case CPU_UP_CANCELED: ++ /* Unbind it from offline cpu so it can run. Fall thru. */ ++ kthread_bind(per_cpu(posix_timer_task,cpu), ++ any_online_cpu(cpu_online_map)); ++ kthread_stop(per_cpu(posix_timer_task,cpu)); ++ per_cpu(posix_timer_task,cpu) = NULL; ++ break; ++ case CPU_DEAD: ++ kthread_stop(per_cpu(posix_timer_task,cpu)); ++ per_cpu(posix_timer_task,cpu) = NULL; ++ break; ++#endif ++ } ++ return NOTIFY_OK; ++} ++ ++/* Register at highest priority so that task migration (migrate_all_tasks) ++ * happens before everything else. ++ */ ++static struct notifier_block __devinitdata posix_cpu_thread_notifier = { ++ .notifier_call = posix_cpu_thread_call, ++ .priority = 10 ++}; ++ ++static int __init posix_cpu_thread_init(void) ++{ ++ void *hcpu = (void *)(long)smp_processor_id(); ++ /* Start one for boot CPU. */ ++ unsigned long cpu; ++ ++ /* init the per-cpu posix_timer_tasklets */ ++ for_each_cpu_mask(cpu, cpu_possible_map) ++ per_cpu(posix_timer_tasklist, cpu) = NULL; ++ ++ posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_UP_PREPARE, hcpu); ++ posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_ONLINE, hcpu); ++ register_cpu_notifier(&posix_cpu_thread_notifier); ++ return 0; ++} ++early_initcall(posix_cpu_thread_init); ++#else /* CONFIG_PREEMPT_RT_BASE */ ++void run_posix_cpu_timers(struct task_struct *tsk) ++{ ++ __run_posix_cpu_timers(tsk); ++} ++#endif /* CONFIG_PREEMPT_RT_BASE */ ++ + /* + * Set one of the process-wide special case CPU timers or RLIMIT_CPU. + * The tsk->sighand->siglock must be held by the caller. +Index: linux-2.6/kernel/sched_stats.h +=================================================================== +--- linux-2.6.orig/kernel/sched_stats.h ++++ linux-2.6/kernel/sched_stats.h +@@ -282,10 +282,10 @@ static inline void account_group_user_ti + if (!cputimer->running) + return; + +- spin_lock(&cputimer->lock); ++ raw_spin_lock(&cputimer->lock); + cputimer->cputime.utime = + cputime_add(cputimer->cputime.utime, cputime); +- spin_unlock(&cputimer->lock); ++ raw_spin_unlock(&cputimer->lock); + } + + /** +@@ -306,10 +306,10 @@ static inline void account_group_system_ + if (!cputimer->running) + return; + +- spin_lock(&cputimer->lock); ++ raw_spin_lock(&cputimer->lock); + cputimer->cputime.stime = + cputime_add(cputimer->cputime.stime, cputime); +- spin_unlock(&cputimer->lock); ++ raw_spin_unlock(&cputimer->lock); + } + + /** +@@ -330,7 +330,7 @@ static inline void account_group_exec_ru + if (!cputimer->running) + return; + +- spin_lock(&cputimer->lock); ++ raw_spin_lock(&cputimer->lock); + cputimer->cputime.sum_exec_runtime += ns; +- spin_unlock(&cputimer->lock); ++ raw_spin_unlock(&cputimer->lock); + } +Index: linux-2.6/include/linux/semaphore.h +=================================================================== +--- linux-2.6.orig/include/linux/semaphore.h ++++ linux-2.6/include/linux/semaphore.h +@@ -14,14 +14,14 @@ + + /* Please don't access any members of this structure directly */ + struct semaphore { +- spinlock_t lock; ++ raw_spinlock_t lock; + unsigned int count; + struct list_head wait_list; + }; + + #define __SEMAPHORE_INITIALIZER(name, n) \ + { \ +- .lock = __SPIN_LOCK_UNLOCKED((name).lock), \ ++ .lock = __RAW_SPIN_LOCK_UNLOCKED((name).lock), \ + .count = n, \ + .wait_list = LIST_HEAD_INIT((name).wait_list), \ + } +Index: linux-2.6/kernel/semaphore.c +=================================================================== +--- linux-2.6.orig/kernel/semaphore.c ++++ linux-2.6/kernel/semaphore.c +@@ -54,12 +54,12 @@ void down(struct semaphore *sem) + { + unsigned long flags; + +- spin_lock_irqsave(&sem->lock, flags); ++ raw_spin_lock_irqsave(&sem->lock, flags); + if (likely(sem->count > 0)) + sem->count--; + else + __down(sem); +- spin_unlock_irqrestore(&sem->lock, flags); ++ raw_spin_unlock_irqrestore(&sem->lock, flags); + } + EXPORT_SYMBOL(down); + +@@ -77,12 +77,12 @@ int down_interruptible(struct semaphore + unsigned long flags; + int result = 0; + +- spin_lock_irqsave(&sem->lock, flags); ++ raw_spin_lock_irqsave(&sem->lock, flags); + if (likely(sem->count > 0)) + sem->count--; + else + result = __down_interruptible(sem); +- spin_unlock_irqrestore(&sem->lock, flags); ++ raw_spin_unlock_irqrestore(&sem->lock, flags); + + return result; + } +@@ -103,12 +103,12 @@ int down_killable(struct semaphore *sem) + unsigned long flags; + int result = 0; + +- spin_lock_irqsave(&sem->lock, flags); ++ raw_spin_lock_irqsave(&sem->lock, flags); + if (likely(sem->count > 0)) + sem->count--; + else + result = __down_killable(sem); +- spin_unlock_irqrestore(&sem->lock, flags); ++ raw_spin_unlock_irqrestore(&sem->lock, flags); + + return result; + } +@@ -132,11 +132,11 @@ int down_trylock(struct semaphore *sem) + unsigned long flags; + int count; + +- spin_lock_irqsave(&sem->lock, flags); ++ raw_spin_lock_irqsave(&sem->lock, flags); + count = sem->count - 1; + if (likely(count >= 0)) + sem->count = count; +- spin_unlock_irqrestore(&sem->lock, flags); ++ raw_spin_unlock_irqrestore(&sem->lock, flags); + + return (count < 0); + } +@@ -157,12 +157,12 @@ int down_timeout(struct semaphore *sem, + unsigned long flags; + int result = 0; + +- spin_lock_irqsave(&sem->lock, flags); ++ raw_spin_lock_irqsave(&sem->lock, flags); + if (likely(sem->count > 0)) + sem->count--; + else + result = __down_timeout(sem, jiffies); +- spin_unlock_irqrestore(&sem->lock, flags); ++ raw_spin_unlock_irqrestore(&sem->lock, flags); + + return result; + } +@@ -179,12 +179,12 @@ void up(struct semaphore *sem) + { + unsigned long flags; + +- spin_lock_irqsave(&sem->lock, flags); ++ raw_spin_lock_irqsave(&sem->lock, flags); + if (likely(list_empty(&sem->wait_list))) + sem->count++; + else + __up(sem); +- spin_unlock_irqrestore(&sem->lock, flags); ++ raw_spin_unlock_irqrestore(&sem->lock, flags); + } + EXPORT_SYMBOL(up); + +@@ -217,9 +217,9 @@ static inline int __sched __down_common( + if (timeout <= 0) + goto timed_out; + __set_task_state(task, state); +- spin_unlock_irq(&sem->lock); ++ raw_spin_unlock_irq(&sem->lock); + timeout = schedule_timeout(timeout); +- spin_lock_irq(&sem->lock); ++ raw_spin_lock_irq(&sem->lock); + if (waiter.up) + return 0; + } +Index: linux-2.6/include/linux/rwsem-spinlock.h +=================================================================== +--- linux-2.6.orig/include/linux/rwsem-spinlock.h ++++ linux-2.6/include/linux/rwsem-spinlock.h +@@ -20,26 +20,42 @@ + * - if activity is -1 then there is one active writer + * - if wait_list is not empty, then there are processes waiting for the semaphore + */ ++struct rw_anon_semaphore { ++ __s32 activity; ++ raw_spinlock_t wait_lock; ++ struct list_head wait_list; ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ struct lockdep_map dep_map; ++#endif ++}; ++ ++#ifndef CONFIG_PREEMPT_RT_FULL ++/* ++ * Non preempt-rt implementation of rw_semaphore. Same as above, but ++ * restricted vs. ownership. i.e. ownerless locked state and non owner ++ * release not allowed. ++ */ + struct rw_semaphore { + __s32 activity; +- spinlock_t wait_lock; ++ raw_spinlock_t wait_lock; + struct list_head wait_list; + #ifdef CONFIG_DEBUG_LOCK_ALLOC + struct lockdep_map dep_map; + #endif + }; ++#endif /* PREEMPT_RT_FULL */ + + #define RWSEM_UNLOCKED_VALUE 0x00000000 + +-extern void __down_read(struct rw_semaphore *sem); +-extern int __down_read_trylock(struct rw_semaphore *sem); +-extern void __down_write(struct rw_semaphore *sem); +-extern void __down_write_nested(struct rw_semaphore *sem, int subclass); +-extern int __down_write_trylock(struct rw_semaphore *sem); +-extern void __up_read(struct rw_semaphore *sem); +-extern void __up_write(struct rw_semaphore *sem); +-extern void __downgrade_write(struct rw_semaphore *sem); +-extern int rwsem_is_locked(struct rw_semaphore *sem); ++extern void __down_read(struct rw_anon_semaphore *sem); ++extern int __down_read_trylock(struct rw_anon_semaphore *sem); ++extern void __down_write(struct rw_anon_semaphore *sem); ++extern void __down_write_nested(struct rw_anon_semaphore *sem, int subclass); ++extern int __down_write_trylock(struct rw_anon_semaphore *sem); ++extern void __up_read(struct rw_anon_semaphore *sem); ++extern void __up_write(struct rw_anon_semaphore *sem); ++extern void __downgrade_write(struct rw_anon_semaphore *sem); ++extern int anon_rwsem_is_locked(struct rw_anon_semaphore *sem); + + #endif /* __KERNEL__ */ + #endif /* _LINUX_RWSEM_SPINLOCK_H */ +Index: linux-2.6/include/linux/rwsem.h +=================================================================== +--- linux-2.6.orig/include/linux/rwsem.h ++++ linux-2.6/include/linux/rwsem.h +@@ -17,37 +17,50 @@ + #include + #include + ++struct rw_anon_semaphore; + struct rw_semaphore; + + #ifdef CONFIG_RWSEM_GENERIC_SPINLOCK + #include /* use a generic implementation */ +-#else ++#else /* RWSEM_GENERIC_SPINLOCK */ ++ + /* All arch specific implementations share the same struct */ +-struct rw_semaphore { ++struct rw_anon_semaphore { + long count; +- spinlock_t wait_lock; ++ raw_spinlock_t wait_lock; + struct list_head wait_list; + #ifdef CONFIG_DEBUG_LOCK_ALLOC + struct lockdep_map dep_map; + #endif + }; + +-extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem); +-extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem); +-extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *); +-extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem); ++extern struct rw_anon_semaphore *rwsem_down_read_failed(struct rw_anon_semaphore *sem); ++extern struct rw_anon_semaphore *rwsem_down_write_failed(struct rw_anon_semaphore *sem); ++extern struct rw_anon_semaphore *rwsem_wake(struct rw_anon_semaphore *); ++extern struct rw_anon_semaphore *rwsem_downgrade_wake(struct rw_anon_semaphore *sem); + + /* Include the arch specific part */ + #include + + /* In all implementations count != 0 means locked */ +-static inline int rwsem_is_locked(struct rw_semaphore *sem) ++static inline int anon_rwsem_is_locked(struct rw_anon_semaphore *sem) + { + return sem->count != 0; + } + ++#ifndef CONFIG_PREEMPT_RT_FULL ++struct rw_semaphore { ++ long count; ++ raw_spinlock_t wait_lock; ++ struct list_head wait_list; ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ struct lockdep_map dep_map; ++#endif ++}; + #endif + ++#endif /* !RWSEM_GENERIC_SPINLOCK */ ++ + /* Common initializer macros and functions */ + + #ifdef CONFIG_DEBUG_LOCK_ALLOC +@@ -56,57 +69,59 @@ static inline int rwsem_is_locked(struct + # define __RWSEM_DEP_MAP_INIT(lockname) + #endif + +-#define __RWSEM_INITIALIZER(name) \ +- { RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED(name.wait_lock), \ +- LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) } ++#define __RWSEM_ANON_INITIALIZER(name) \ ++ { RWSEM_UNLOCKED_VALUE, \ ++ __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \ ++ LIST_HEAD_INIT((name).wait_list) \ ++ __RWSEM_DEP_MAP_INIT(name) } + +-#define DECLARE_RWSEM(name) \ +- struct rw_semaphore name = __RWSEM_INITIALIZER(name) ++#define DECLARE_ANON_RWSEM(name) \ ++ struct rw_anon_semaphore name = __RWSEM_INITIALIZER(name) + +-extern void __init_rwsem(struct rw_semaphore *sem, const char *name, +- struct lock_class_key *key); ++extern void __init_anon_rwsem(struct rw_anon_semaphore *sem, const char *name, ++ struct lock_class_key *key); + +-#define init_rwsem(sem) \ ++#define init_anon_rwsem(sem) \ + do { \ + static struct lock_class_key __key; \ + \ +- __init_rwsem((sem), #sem, &__key); \ ++ __init_anon_rwsem((sem), #sem, &__key); \ + } while (0) + + /* + * lock for reading + */ +-extern void down_read(struct rw_semaphore *sem); ++extern void anon_down_read(struct rw_anon_semaphore *sem); + + /* + * trylock for reading -- returns 1 if successful, 0 if contention + */ +-extern int down_read_trylock(struct rw_semaphore *sem); ++extern int anon_down_read_trylock(struct rw_anon_semaphore *sem); + + /* + * lock for writing + */ +-extern void down_write(struct rw_semaphore *sem); ++extern void anon_down_write(struct rw_anon_semaphore *sem); + + /* + * trylock for writing -- returns 1 if successful, 0 if contention + */ +-extern int down_write_trylock(struct rw_semaphore *sem); ++extern int anon_down_write_trylock(struct rw_anon_semaphore *sem); + + /* + * release a read lock + */ +-extern void up_read(struct rw_semaphore *sem); ++extern void anon_up_read(struct rw_anon_semaphore *sem); + + /* + * release a write lock + */ +-extern void up_write(struct rw_semaphore *sem); ++extern void anon_up_write(struct rw_anon_semaphore *sem); + + /* + * downgrade write lock to read lock + */ +-extern void downgrade_write(struct rw_semaphore *sem); ++extern void anon_downgrade_write(struct rw_anon_semaphore *sem); + + #ifdef CONFIG_DEBUG_LOCK_ALLOC + /* +@@ -122,21 +137,101 @@ extern void downgrade_write(struct rw_se + * lockdep_set_class() at lock initialization time. + * See Documentation/lockdep-design.txt for more details.) + */ +-extern void down_read_nested(struct rw_semaphore *sem, int subclass); +-extern void down_write_nested(struct rw_semaphore *sem, int subclass); ++extern void anon_down_read_nested(struct rw_anon_semaphore *sem, int subclass); ++extern void anon_down_write_nested(struct rw_anon_semaphore *sem, int subclass); + /* + * Take/release a lock when not the owner will release it. + * + * [ This API should be avoided as much as possible - the + * proper abstraction for this case is completions. ] + */ +-extern void down_read_non_owner(struct rw_semaphore *sem); +-extern void up_read_non_owner(struct rw_semaphore *sem); ++extern void anon_down_read_non_owner(struct rw_anon_semaphore *sem); ++extern void anon_up_read_non_owner(struct rw_anon_semaphore *sem); + #else +-# define down_read_nested(sem, subclass) down_read(sem) +-# define down_write_nested(sem, subclass) down_write(sem) +-# define down_read_non_owner(sem) down_read(sem) +-# define up_read_non_owner(sem) up_read(sem) ++# define anon_down_read_nested(sem, subclass) anon_down_read(sem) ++# define anon_down_write_nested(sem, subclass) anon_down_write(sem) ++# define anon_down_read_non_owner(sem) anon_down_read(sem) ++# define anon_up_read_non_owner(sem) anon_up_read(sem) + #endif + ++#ifdef CONFIG_PREEMPT_RT_FULL ++#include ++#else /* PREEMPT_RT_FULL */ ++/* ++ * Non preempt-rt implementations ++ */ ++#define __RWSEM_INITIALIZER(name) \ ++ { RWSEM_UNLOCKED_VALUE, \ ++ __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \ ++ LIST_HEAD_INIT((name).wait_list) \ ++ __RWSEM_DEP_MAP_INIT(name) } ++ ++#define DECLARE_RWSEM(name) \ ++ struct rw_semaphore name = __RWSEM_INITIALIZER(name) ++ ++static inline void __init_rwsem(struct rw_semaphore *sem, const char *name, ++ struct lock_class_key *key) ++{ ++ __init_anon_rwsem((struct rw_anon_semaphore *)sem, name, key); ++} ++ ++#define init_rwsem(sem) \ ++do { \ ++ static struct lock_class_key __key; \ ++ \ ++ __init_rwsem((sem), #sem, &__key); \ ++} while (0) ++ ++static inline void down_read(struct rw_semaphore *sem) ++{ ++ anon_down_read((struct rw_anon_semaphore *)sem); ++} ++ ++static inline int down_read_trylock(struct rw_semaphore *sem) ++{ ++ return anon_down_read_trylock((struct rw_anon_semaphore *)sem); ++} ++ ++static inline void down_write(struct rw_semaphore *sem) ++{ ++ anon_down_write((struct rw_anon_semaphore *)sem); ++} ++ ++static inline int down_write_trylock(struct rw_semaphore *sem) ++{ ++ return anon_down_write_trylock((struct rw_anon_semaphore *)sem); ++} ++ ++static inline void up_read(struct rw_semaphore *sem) ++{ ++ anon_up_read((struct rw_anon_semaphore *)sem); ++} ++ ++static inline void up_write(struct rw_semaphore *sem) ++{ ++ anon_up_write((struct rw_anon_semaphore *)sem); ++} ++ ++static inline void downgrade_write(struct rw_semaphore *sem) ++{ ++ anon_downgrade_write((struct rw_anon_semaphore *)sem); ++} ++ ++static inline void down_read_nested(struct rw_semaphore *sem, int subclass) ++{ ++ return anon_down_read_nested((struct rw_anon_semaphore *)sem, subclass); ++} ++ ++static inline void down_write_nested(struct rw_semaphore *sem, int subclass) ++{ ++ anon_down_write_nested((struct rw_anon_semaphore *)sem, subclass); ++} ++ ++static inline int rwsem_is_locked(struct rw_semaphore *sem) ++{ ++ return anon_rwsem_is_locked((struct rw_anon_semaphore *)sem); ++} ++#endif /* !PREEMPT_RT_FULL */ ++ + #endif /* _LINUX_RWSEM_H */ ++ +Index: linux-2.6/lib/rwsem-spinlock.c +=================================================================== +--- linux-2.6.orig/lib/rwsem-spinlock.c ++++ linux-2.6/lib/rwsem-spinlock.c +@@ -17,24 +17,24 @@ struct rwsem_waiter { + #define RWSEM_WAITING_FOR_WRITE 0x00000002 + }; + +-int rwsem_is_locked(struct rw_semaphore *sem) ++int anon_rwsem_is_locked(struct rw_anon_semaphore *sem) + { + int ret = 1; + unsigned long flags; + +- if (spin_trylock_irqsave(&sem->wait_lock, flags)) { ++ if (raw_spin_trylock_irqsave(&sem->wait_lock, flags)) { + ret = (sem->activity != 0); +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + } + return ret; + } +-EXPORT_SYMBOL(rwsem_is_locked); ++EXPORT_SYMBOL(anon_rwsem_is_locked); + + /* + * initialise the semaphore + */ +-void __init_rwsem(struct rw_semaphore *sem, const char *name, +- struct lock_class_key *key) ++void __init_anon_rwsem(struct rw_anon_semaphore *sem, const char *name, ++ struct lock_class_key *key) + { + #ifdef CONFIG_DEBUG_LOCK_ALLOC + /* +@@ -44,10 +44,10 @@ void __init_rwsem(struct rw_semaphore *s + lockdep_init_map(&sem->dep_map, name, key, 0); + #endif + sem->activity = 0; +- spin_lock_init(&sem->wait_lock); ++ raw_spin_lock_init(&sem->wait_lock); + INIT_LIST_HEAD(&sem->wait_list); + } +-EXPORT_SYMBOL(__init_rwsem); ++EXPORT_SYMBOL(__init_anon_rwsem); + + /* + * handle the lock release when processes blocked on it that can now run +@@ -58,8 +58,8 @@ EXPORT_SYMBOL(__init_rwsem); + * - woken process blocks are discarded from the list after having task zeroed + * - writers are only woken if wakewrite is non-zero + */ +-static inline struct rw_semaphore * +-__rwsem_do_wake(struct rw_semaphore *sem, int wakewrite) ++static inline struct rw_anon_semaphore * ++__rwsem_do_wake(struct rw_anon_semaphore *sem, int wakewrite) + { + struct rwsem_waiter *waiter; + struct task_struct *tsk; +@@ -117,8 +117,8 @@ __rwsem_do_wake(struct rw_semaphore *sem + /* + * wake a single writer + */ +-static inline struct rw_semaphore * +-__rwsem_wake_one_writer(struct rw_semaphore *sem) ++static inline struct rw_anon_semaphore * ++__rwsem_wake_one_writer(struct rw_anon_semaphore *sem) + { + struct rwsem_waiter *waiter; + struct task_struct *tsk; +@@ -139,18 +139,18 @@ __rwsem_wake_one_writer(struct rw_semaph + /* + * get a read lock on the semaphore + */ +-void __sched __down_read(struct rw_semaphore *sem) ++void __sched __down_read(struct rw_anon_semaphore *sem) + { + struct rwsem_waiter waiter; + struct task_struct *tsk; + unsigned long flags; + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + if (sem->activity >= 0 && list_empty(&sem->wait_list)) { + /* granted */ + sem->activity++; +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + goto out; + } + +@@ -165,7 +165,7 @@ void __sched __down_read(struct rw_semap + list_add_tail(&waiter.list, &sem->wait_list); + + /* we don't need to touch the semaphore struct anymore */ +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + + /* wait to be given the lock */ + for (;;) { +@@ -183,13 +183,13 @@ void __sched __down_read(struct rw_semap + /* + * trylock for reading -- returns 1 if successful, 0 if contention + */ +-int __down_read_trylock(struct rw_semaphore *sem) ++int __down_read_trylock(struct rw_anon_semaphore *sem) + { + unsigned long flags; + int ret = 0; + + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + if (sem->activity >= 0 && list_empty(&sem->wait_list)) { + /* granted */ +@@ -197,7 +197,7 @@ int __down_read_trylock(struct rw_semaph + ret = 1; + } + +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + + return ret; + } +@@ -206,18 +206,18 @@ int __down_read_trylock(struct rw_semaph + * get a write lock on the semaphore + * - we increment the waiting count anyway to indicate an exclusive lock + */ +-void __sched __down_write_nested(struct rw_semaphore *sem, int subclass) ++void __sched __down_write_nested(struct rw_anon_semaphore *sem, int subclass) + { + struct rwsem_waiter waiter; + struct task_struct *tsk; + unsigned long flags; + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + if (sem->activity == 0 && list_empty(&sem->wait_list)) { + /* granted */ + sem->activity = -1; +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + goto out; + } + +@@ -232,7 +232,7 @@ void __sched __down_write_nested(struct + list_add_tail(&waiter.list, &sem->wait_list); + + /* we don't need to touch the semaphore struct anymore */ +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + + /* wait to be given the lock */ + for (;;) { +@@ -247,7 +247,7 @@ void __sched __down_write_nested(struct + ; + } + +-void __sched __down_write(struct rw_semaphore *sem) ++void __sched __down_write(struct rw_anon_semaphore *sem) + { + __down_write_nested(sem, 0); + } +@@ -255,12 +255,12 @@ void __sched __down_write(struct rw_sema + /* + * trylock for writing -- returns 1 if successful, 0 if contention + */ +-int __down_write_trylock(struct rw_semaphore *sem) ++int __down_write_trylock(struct rw_anon_semaphore *sem) + { + unsigned long flags; + int ret = 0; + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + if (sem->activity == 0 && list_empty(&sem->wait_list)) { + /* granted */ +@@ -268,7 +268,7 @@ int __down_write_trylock(struct rw_semap + ret = 1; + } + +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + + return ret; + } +@@ -276,48 +276,48 @@ int __down_write_trylock(struct rw_semap + /* + * release a read lock on the semaphore + */ +-void __up_read(struct rw_semaphore *sem) ++void __up_read(struct rw_anon_semaphore *sem) + { + unsigned long flags; + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + if (--sem->activity == 0 && !list_empty(&sem->wait_list)) + sem = __rwsem_wake_one_writer(sem); + +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + } + + /* + * release a write lock on the semaphore + */ +-void __up_write(struct rw_semaphore *sem) ++void __up_write(struct rw_anon_semaphore *sem) + { + unsigned long flags; + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + sem->activity = 0; + if (!list_empty(&sem->wait_list)) + sem = __rwsem_do_wake(sem, 1); + +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + } + + /* + * downgrade a write lock into a read lock + * - just wake up any readers at the front of the queue + */ +-void __downgrade_write(struct rw_semaphore *sem) ++void __downgrade_write(struct rw_anon_semaphore *sem) + { + unsigned long flags; + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + sem->activity = 1; + if (!list_empty(&sem->wait_list)) + sem = __rwsem_do_wake(sem, 0); + +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + } + +Index: linux-2.6/lib/rwsem.c +=================================================================== +--- linux-2.6.orig/lib/rwsem.c ++++ linux-2.6/lib/rwsem.c +@@ -11,8 +11,8 @@ + /* + * Initialize an rwsem: + */ +-void __init_rwsem(struct rw_semaphore *sem, const char *name, +- struct lock_class_key *key) ++void __init_anon_rwsem(struct rw_anon_semaphore *sem, const char *name, ++ struct lock_class_key *key) + { + #ifdef CONFIG_DEBUG_LOCK_ALLOC + /* +@@ -22,11 +22,11 @@ void __init_rwsem(struct rw_semaphore *s + lockdep_init_map(&sem->dep_map, name, key, 0); + #endif + sem->count = RWSEM_UNLOCKED_VALUE; +- spin_lock_init(&sem->wait_lock); ++ raw_spin_lock_init(&sem->wait_lock); + INIT_LIST_HEAD(&sem->wait_list); + } + +-EXPORT_SYMBOL(__init_rwsem); ++EXPORT_SYMBOL(__init_anon_rwsem); + + struct rwsem_waiter { + struct list_head list; +@@ -54,8 +54,8 @@ struct rwsem_waiter { + * - woken process blocks are discarded from the list after having task zeroed + * - writers are only woken if downgrading is false + */ +-static struct rw_semaphore * +-__rwsem_do_wake(struct rw_semaphore *sem, int wake_type) ++static struct rw_anon_semaphore * ++__rwsem_do_wake(struct rw_anon_semaphore *sem, int wake_type) + { + struct rwsem_waiter *waiter; + struct task_struct *tsk; +@@ -169,8 +169,8 @@ __rwsem_do_wake(struct rw_semaphore *sem + /* + * wait for a lock to be granted + */ +-static struct rw_semaphore __sched * +-rwsem_down_failed_common(struct rw_semaphore *sem, ++static struct rw_anon_semaphore __sched * ++rwsem_down_failed_common(struct rw_anon_semaphore *sem, + unsigned int flags, signed long adjustment) + { + struct rwsem_waiter waiter; +@@ -180,7 +180,7 @@ rwsem_down_failed_common(struct rw_semap + set_task_state(tsk, TASK_UNINTERRUPTIBLE); + + /* set up my own style of waitqueue */ +- spin_lock_irq(&sem->wait_lock); ++ raw_spin_lock_irq(&sem->wait_lock); + waiter.task = tsk; + waiter.flags = flags; + get_task_struct(tsk); +@@ -204,7 +204,7 @@ rwsem_down_failed_common(struct rw_semap + adjustment == -RWSEM_ACTIVE_WRITE_BIAS) + sem = __rwsem_do_wake(sem, RWSEM_WAKE_READ_OWNED); + +- spin_unlock_irq(&sem->wait_lock); ++ raw_spin_unlock_irq(&sem->wait_lock); + + /* wait to be given the lock */ + for (;;) { +@@ -222,7 +222,8 @@ rwsem_down_failed_common(struct rw_semap + /* + * wait for the read lock to be granted + */ +-struct rw_semaphore __sched *rwsem_down_read_failed(struct rw_semaphore *sem) ++struct rw_anon_semaphore __sched * ++rwsem_down_read_failed(struct rw_anon_semaphore *sem) + { + return rwsem_down_failed_common(sem, RWSEM_WAITING_FOR_READ, + -RWSEM_ACTIVE_READ_BIAS); +@@ -231,7 +232,8 @@ struct rw_semaphore __sched *rwsem_down_ + /* + * wait for the write lock to be granted + */ +-struct rw_semaphore __sched *rwsem_down_write_failed(struct rw_semaphore *sem) ++struct rw_anon_semaphore __sched * ++rwsem_down_write_failed(struct rw_anon_semaphore *sem) + { + return rwsem_down_failed_common(sem, RWSEM_WAITING_FOR_WRITE, + -RWSEM_ACTIVE_WRITE_BIAS); +@@ -241,17 +243,17 @@ struct rw_semaphore __sched *rwsem_down_ + * handle waking up a waiter on the semaphore + * - up_read/up_write has decremented the active part of count if we come here + */ +-struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem) ++struct rw_anon_semaphore *rwsem_wake(struct rw_anon_semaphore *sem) + { + unsigned long flags; + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + /* do nothing if list empty */ + if (!list_empty(&sem->wait_list)) + sem = __rwsem_do_wake(sem, RWSEM_WAKE_ANY); + +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + + return sem; + } +@@ -261,17 +263,17 @@ struct rw_semaphore *rwsem_wake(struct r + * - caller incremented waiting part of count and discovered it still negative + * - just wake up any readers at the front of the queue + */ +-struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem) ++struct rw_anon_semaphore *rwsem_downgrade_wake(struct rw_anon_semaphore *sem) + { + unsigned long flags; + +- spin_lock_irqsave(&sem->wait_lock, flags); ++ raw_spin_lock_irqsave(&sem->wait_lock, flags); + + /* do nothing if list empty */ + if (!list_empty(&sem->wait_list)) + sem = __rwsem_do_wake(sem, RWSEM_WAKE_READ_OWNED); + +- spin_unlock_irqrestore(&sem->wait_lock, flags); ++ raw_spin_unlock_irqrestore(&sem->wait_lock, flags); + + return sem; + } +Index: linux-2.6/kernel/time/timer_stats.c +=================================================================== +--- linux-2.6.orig/kernel/time/timer_stats.c ++++ linux-2.6/kernel/time/timer_stats.c +@@ -81,7 +81,7 @@ struct entry { + /* + * Spinlock protecting the tables - not taken during lookup: + */ +-static DEFINE_SPINLOCK(table_lock); ++static DEFINE_RAW_SPINLOCK(table_lock); + + /* + * Per-CPU lookup locks for fast hash lookup: +@@ -188,7 +188,7 @@ static struct entry *tstat_lookup(struct + prev = NULL; + curr = *head; + +- spin_lock(&table_lock); ++ raw_spin_lock(&table_lock); + /* + * Make sure we have not raced with another CPU: + */ +@@ -215,7 +215,7 @@ static struct entry *tstat_lookup(struct + *head = curr; + } + out_unlock: +- spin_unlock(&table_lock); ++ raw_spin_unlock(&table_lock); + + return curr; + } +Index: linux-2.6/kernel/latencytop.c +=================================================================== +--- linux-2.6.orig/kernel/latencytop.c ++++ linux-2.6/kernel/latencytop.c +@@ -58,7 +58,7 @@ + #include + #include + +-static DEFINE_SPINLOCK(latency_lock); ++static DEFINE_RAW_SPINLOCK(latency_lock); + + #define MAXLR 128 + static struct latency_record latency_record[MAXLR]; +@@ -72,19 +72,19 @@ void clear_all_latency_tracing(struct ta + if (!latencytop_enabled) + return; + +- spin_lock_irqsave(&latency_lock, flags); ++ raw_spin_lock_irqsave(&latency_lock, flags); + memset(&p->latency_record, 0, sizeof(p->latency_record)); + p->latency_record_count = 0; +- spin_unlock_irqrestore(&latency_lock, flags); ++ raw_spin_unlock_irqrestore(&latency_lock, flags); + } + + static void clear_global_latency_tracing(void) + { + unsigned long flags; + +- spin_lock_irqsave(&latency_lock, flags); ++ raw_spin_lock_irqsave(&latency_lock, flags); + memset(&latency_record, 0, sizeof(latency_record)); +- spin_unlock_irqrestore(&latency_lock, flags); ++ raw_spin_unlock_irqrestore(&latency_lock, flags); + } + + static void __sched +@@ -190,7 +190,7 @@ __account_scheduler_latency(struct task_ + lat.max = usecs; + store_stacktrace(tsk, &lat); + +- spin_lock_irqsave(&latency_lock, flags); ++ raw_spin_lock_irqsave(&latency_lock, flags); + + account_global_scheduler_latency(tsk, &lat); + +@@ -231,7 +231,7 @@ __account_scheduler_latency(struct task_ + memcpy(&tsk->latency_record[i], &lat, sizeof(struct latency_record)); + + out_unlock: +- spin_unlock_irqrestore(&latency_lock, flags); ++ raw_spin_unlock_irqrestore(&latency_lock, flags); + } + + static int lstats_show(struct seq_file *m, void *v) +Index: linux-2.6/drivers/video/console/vgacon.c +=================================================================== +--- linux-2.6.orig/drivers/video/console/vgacon.c ++++ linux-2.6/drivers/video/console/vgacon.c +@@ -50,7 +50,7 @@ + #include