Skip to contentSkip to conversation

2.6.10-rc2-mm4

PATCH In review Andrew Morton 22 participants 45 messages Nov 30, 2004 – Dec 9, 2004

Subsystems (7)
lore
Share & tools
lore
#0 lore raw

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

- Various fixes and cleanups

- A decent-sized x86_64 update.

- x86_64 supports a fourth VM zone: ZONE_DMA32. This may affect memory reclaim, but shouldn't.

Changes since 2.6.10-rc2-mm3:

linus.patch
bk-acpi.patch
bk-agpgart.patch
bk-alsa.patch
bk-cifs.patch
bk-driver-core.patch
bk-drm.patch
bk-i2c.patch
bk-ide-dev.patch
bk-input.patch
bk-dtor-input.patch
bk-jfs.patch
bk-libata.patch
bk-mtd.patch
bk-netdev.patch
bk-ntfs.patch
bk-pci.patch
bk-scsi.patch
bk-serial.patch
bk-usb.patch
bk-watchdog.patch

Latest versions of external trees.

-map-unix-seqpacket-sockets-to-appropriate.patch -serial-add-support-for-dell-remote-access-card-4.patch -proc-cmdline-missing-mmput.patch -smc91c92_cs-silly.patch
-fix-typo-in-init-kconfig.patch -mtd_xip-dependencies-fix.patch -m68k-hp300-dio-bus-fix-typo-in-dio_resource_len.patch -m68k-hp-lance-ethernet-fix-leaks-on-probe-removal.patch -m68k-update-hp300-defconfig-enable-dio-and-hp-lance-ethernet.patch -m68k-update-atari-defconfig-enable-ethernet-and-mii.patch -make-ibmveth-link-always-up.patch -tulip-make-tulip_stop_rxtx-wait-for-dma-to-fully-stop.patch -ppc32-have-the-8260-board-hook-happen-a-bit-later.patch -ppc32-fix-__iomem-warnings-in-todc-code.patch -ppc32-fix-an-irq-issue-with-cpufreq.patch -ppc64-fix-compilation-with-recent-toolchains.patch -ppc64-linuxrtas-fixes.patch -ppc64-reserve-kernel-memory-in-kernel-instead-of-wrapper.patch -ppc64-linuxtce-changes.patch -ppc64-make-early-processor-spinup-based-on-physical-ids.patch -ppc64-remove-the-volatile-from-cpus_in_xmon.patch -ptrace-locked-accesss-to-ptrace-last_siginfo.patch -mc146818rtch-include-fix.patch -video-buf-oops-crash-fixes.patch -v4l-disable-unused-function.patch -v4l-more-modparam.patch
-tuner-update.patch -mm-only-fixed-pmd_order-for-mips.patch

Merged

+raid10-overwrites-partition-tables.patch

RAID10 fix

+3c59x-add-eeprom_reset-for-3c900-boomerang.patch

3com net driver fix

+mips-updates.patch

Huge mips arch update

+cfq-iosched-kill-show_status-sysfs-entry.patch

Kill a buggy debugging function in cfq-iosched.

+buffer-overrun-in-arch-x86_64-sys_ia32csys32_ni_syscall.patch

x86_64's not-implemented syscall is incorrectly implemented.

+register_disk-hack.patch
+register_disk-hack-warnings.patch

Might prevent some crash related to usb-storage.

+x86-fix-reboot-hang--apic-errors.patch

Fix dodgy APIC shutdown sequencing in bk-acpi.patch

+ixgb-lr-card-support.patch

Additional device support.

+vmlib-wrapped-executable-brk.patch
+vmlib-wrapped-mprotect-flags.patch

Fix /proc/meminfo:VmLib

-net-socketcsys_bind-cleanup.patch

Dropped - it made slight functional changes (looked OK to me though).

+net-netconsole-poll-support-for-3c509.patch

netconsole-via-3c509.

+avoid-deadlock-in-smc91x-driver.patch

Fix a deadlock in this net driver

+ppc32-marvell-host-bridge-support-mv64x60-review-fixes.patch

Fix things in ppc32-marvell-host-bridge-support-mv64x60.patch

+ppc32-ppc4xx-pic-rewrite-cleanup.patch

ppc32 fixups

+ppc64-tweaks-to-cpu-sysfs-information.patch

ppc64 susfs updates

+frv-pci-dma-fixes.patch
+fix-frv-pci-config-space-write.patch

FRV architecture fixes

+assign-pkmap_base-dynamically.patch

x86 pkmap layout fix

+x86_64-do_general_protection-retval-check.patch +x86_64-add-a-real-pfn_valid.patch +x86_64-make-irda-devices-are-not-really-isa-devices-not.patch +x86_64-fix-bugs-in-the-amd-k8-cmp-support-code.patch +x86_64-reenable-mga-dri-on-x86-64.patch +x86_64-remove-duplicated-fake_stack_frame-macro.patch +x86_64-remove-bios-reboot-code.patch +x86_64-add-reboot=force.patch +x86_64-collected-ioremap-fixes.patch +x86_64-handle-nx-correctly-in-pageattr.patch +x86_64-split-acpi-boot-table-parsing.patch +x86_64-add-srat-numa-discovery-to-x86-64.patch +x86_64-update-uptime-after-suspend.patch +x86_64-cleanups-preparing-for-memory-hotplug.patch +x86_64-allow-a-kernel-debugger-to-hide-single-steps-in.patch +x86_64-remove-debug-information-for-vsyscalls.patch +x86_64-rename-htvalid-to-cmp_legacy.patch +x86_64-scheduler-support-for-amd-cmp.patch +x86_64-add-a-missing-__iomem-pointed-out-by-linus.patch +x86_64-add-a-missing-newline-in-proc-cpuinfo.patch +x86_64-add-sysfs-file-to-map-pci-busses-to-cpus-warning-fix.patch +x86_64-always-print-segfaults-for-init.patch +x86_64-export-phys_proc_id.patch +x86_64-allow-to-configure-more-cpus-and-nodes.patch +x86_64-allow-to-configure-more-cpus-and-nodes-fix.patch +x86_64-fix-a-warning-in-the-cmp-support-code-for.patch +x86_64-fix-some-outdated-assumptions-that-cpu-numbers.patch +x86_64-fix-em64t-config-description.patch +x86_64-remove-unneeded-ifdef-in-hardirqh.patch +x86_64-add-slit-inter-node-distance-information-to.patch +x86_64-add-x86_64-support-for-jack-steiners-slit-sysfs.patch +x86_64-eliminate-some-useless-printks-in-acpi-numac.patch

x86_64 updates

+x86_64-experimental-4gb-dma-zone.patch

Add a fourth memory zone on x86_64: ZONE_DMA32

+swsusp-kconfig-change-in-wording-fwd.patch
+typeofdev-powersaved_state.patch

power management tweaks

+uml-fix-some-ptrace-functions-returns-values.patch +uml-redo-the-signal-delivery-mechanism.patch +uml-make-restorer-match-i386.patch +uml-unistdh-cleanup.patch +uml-remove-a-quilt-induced-duplicity.patch +uml-fix-sigreturn-to-not-copy_user-under-a-spinlock.patch +uml-close-host-file-descriptors-properly.patch +uml-free-host-resources-associated-with-freed-irqs.patch +uml-unregister-signal-handlers-at-reboot.patch +uml-terminal-cleanup.patch

UML udpates

+s390-remove-compat-setup_arg_pages32.patch

Remove unneeded function

+time-run-too-fast-after-s3.patch

Fix timekeeping after resume

+fork-total_forks-not-counted-under-tasklist_lock.patch

Small locking fix

+suppress-might_sleep-if-oopsing.patch

Don't emit might_sleep warnings after the kernel has oopsed

+i4l-fix-deadlock-in-capi-code-reenable-smp.patch

ISDN deadlock fix

+cont_prepare_write-fix.patch

Fix data loss via cont_prepare_write()

+fix-an-xfs-direct-i-o-deadlock.patch

XFS direct-io deadlock fix

+file-sync-no-i_sem.patch

Reduce i_sem coverage during sync operations

+generic_make_request-stack-savings.patch

Save some stack space in the disk I/O submission path

+sys_stime-needs-a-compat-function.patch
+sys_stime-needs-a-compat-function-fix.patch
+sys_stime-needs-a-compat-function-fix-fix.patch

Add compat wrapper for sys_stime(). Clean up (and break) several other things.

+sync-in-core-time-granuality-with-filesystems.patch +sync-in-core-time-granuality-with-filesystems-sonypi-fix.patch

Fix up the mtime-went-backwards-because-the-inode-was-reclaimed problem.

+use-pid_alive-in-proc_pid_status.patch

Might fix a /proc oops

+fix-parameter-handling-in-ibm_acpic.patch

Fix this driver

+remove-ip2-programs.patch

Remove not-working userspace code from the kernel

+rcu-eliminate-rcu_ctrlblklock.patch
+rcu-eliminate-rcu_datalast_qsctr.patch

RCU cleanups

+smb_file_open-retval-fix.patch

Fix smb_file_open() return value.

+shmctl-shm_lock-perms.patch

Fix locking permissions in shared memory.

+sys_sched_setaffinity-on-up-should-fail-for-non-zero.patch

setaffinity() bounds checking fix

+fix-occasional-stop_machine-lockup-with-2-cpus.patch

Fix rare CPU hotplug lockup

+Add-PCI-quirks-for-ASUS-M6Ne-notebook.patch

Add a quirk for this notebook's smbus

+vfs_quota_off-oops-fix.patch
+quota-umount-race-fix.patch

Fixes to the quota code in -mm

-oprofile-i386-support-for-stack-trace-sampling-tidy.patch

Drop this - it could cause weird false positives with spinlock debugging enabled.

+oprofile-minor-cleanups.patch

oprofile cleanup

+pcmcia-add-disable_clkrun-option.patch

Add a disable_clkrun option to the yenta driver to work around some hardware bugs.

+dvb-follow-changes-in-dvb-ttpci-and-budget-drivers-linkage-fix.patch

Fix a -mm-only DVB patch.

+perfctr-x86-update-2.patch
+perfctr-ppc32-update-2.patch
+perfctr-virtual-update.patch

perfctr updates

+oprofile-preempt-warning-fixes.patch

Fix false positives in the preempt debugging code

+add-page-becoming-writable-notification-fix.patch

Fix add-page-becoming-writable-notification.patch for other changes in -mm.

+kexec-apic-virt-wire-fix.patch

Fix kexec APIC handling

+kexec-ppc-support.patch

Restore kexec-for-ppc32

+reiser4-fix-a-use-after-free-bug-in-reiser4_parse_options.patch

Reiser4 fix

+fbdev-sis-framebuffer-driver-update-1717.patch

Update the SiS framebuffer driver

+remove-export_symbol_novers.patch

Remove EXPORT_SYMBOL_NOVERS

+documentation-for-ide-and-cdrom-ioctls.patch

Documentation

-bad-ipc-shared-memory-defaults.patch

This wasn't obviously the right thing to do.

+remove-early_param-tests.patch
+MODULE_PARM-allmod.patch
+MODULE_PARM-allyes.patch

Lots of MODULE_PARM conversions

+fix-typo-in-cdromc.patch

Small fix for the cdrom driver.

+lockd-fix-two-struct-definitions.patch
+small-mca-cleanups-fwd.patch
+small-drivers-media-radio-cleanups-fwd.patch

Small cleanups

+make-number-of-ramdisks-kconfigurable.patch
+make-number-of-ramdisks-kconfigurable-tidy.patch

Allow build-time configuration of the maximum number of ramdisks.

number of patches in -mm: 618
number of changesets in external trees: 745
number of patches in -mm only: 598
total patches: 1343

All 618 patches:

linus.patch

raid10-overwrites-partition-tables.patch
RAID10 overwrites partition tables

3c59x-reload-eeprom-values-at-rmmod-for-needy-cards.patch
3c59x: reload EEPROM values at rmmod for needy cards

3c59x-remove-eeprom_reset-for-3c905b.patch
3c59x: remove EEPROM_RESET for 3c905B

3c59x-add-eeprom_reset-for-3c900-boomerang.patch
3c59x: Add EEPROM_RESET for 3c900 Boomerang

mips-updates.patch
MIPS updates

cfq-iosched-kill-show_status-sysfs-entry.patch
cfq-iosched: kill show_status sysfs entry

buffer-overrun-in-arch-x86_64-sys_ia32csys32_ni_syscall.patch
Buffer overrun in arch/x86_64/sys_ia32.c:sys32_ni_syscall()

register_disk-hack.patch
register_disk hack

register_disk-hack-warnings.patch
register_disk-hack-warnings

4level-core-patch.patch
4level core patch

4level-bogus-bug_on.patch
4level: remove bogus BUG_ON()

4level-fix-vmalloc-overflow.patch
4level: fix vmalloc overflow

4level-core-tweaks.patch
4level core tweaks

4level-highpte-fix.patch
4level highpte fix

4level-architecture-changes-for-alpha.patch
4level: Architecture changes for alpha

4level-architecture-changes-for-arm.patch
4level: Architecture changes for arm

4level-fixes-arm.patch
4level fixes (ARM)

4level-architecture-changes-for-cris.patch
4level: Architecture changes for cris

4level-convert-drm-to-4levels.patch
4level: convert DRM to 4levels.

4level-add-asm-generic-support-for-emulating.patch
4level: Add asm-generic support for emulating 2/3level tables.

4level-make-3level-fallback-more-type-safe.patch
4level: make 3level fallback more type safe

4level-ia64-support.patch
4level: ia64 support

4level-ia64-support-fix.patch
4level-ia64-support fix

pml4-ia64-build-fix.patch
Fix ia64 pml4 build problem

4level-architecture-changes-for-i386.patch
4level: Architecture changes for i386

4level-architecture-changes-for-i386-fix.patch
4level build fix

4level-architecture-changes-for-m32r.patch
4level: Architecture changes for m32r

4level-architecture-changes-for-ppc.patch
4level: Architecture changes for ppc

4level-architecture-changes-for-ppc64.patch
4level: Architecture changes for ppc64

4level-architecture-changes-for-s390.patch
4level: Architecture changes for s390

4level-architecture-changes-for-s390-fix.patch
4level-architecture-changes-for-s390 fix

4level-architecture-changes-for-sh.patch
4level: Architecture changes for sh

4level-architecture-changes-for-sh64.patch
4level: Architecture changes for sh64

4level-architecture-changes-for-sparc.patch
4level: Architecture changes for sparc

4level-architecture-changes-for-sparc64.patch
4level: Architecture changes for sparc64

4level-architecture-changes-for-x86_64.patch
4level: Architecture changes for x86_64

uml-pml4-support.patch
uml: pml4 support

uml-config_highmem-atomicity-fix.patch
uml: CONFIG_HIGHMEM atomicity fix

bk-acpi.patch

x86-fix-reboot-hang--apic-errors.patch
x86: fix reboot hang / APIC errors

acpi-report-errors-in-fanc.patch
ACPI: report errors in fan.c

acpi-flush-tlb-when-pagetable-changed.patch
acpi: flush TLB when pagetable changed

bk-agpgart.patch

bk-alsa.patch

bk-cifs.patch

bk-driver-core.patch

bk-drm.patch

bk-i2c.patch

bk-ide-dev.patch

bk-input.patch

bk-dtor-input.patch

bk-jfs.patch

bk-libata.patch

bk-mtd.patch

bk-netdev.patch

ixgb-lr-card-support.patch
ixgb LR card support

bk-ntfs.patch

bk-pci.patch

bk-scsi.patch

bk-serial.patch

bk-usb.patch

bk-watchdog.patch

mm.patch
add -mmN to EXTRAVERSION

fix-smm-failures-on-e750x-systems.patch
fix SMM failures on E750x systems

mm-keep-count-of-free-areas.patch
mm: keep count of free areas

mm-higher-order-watermarks.patch
mm: higher order watermarks

mm-higher-order-watermarks-fix.patch
higher order watermarks fix

mm-teach-kswapd-about-higher-order-areas.patch
mm: teach kswapd about higher order areas

numa-policies-for-file-mappings-mpol_mf_move.patch
NUMA policies for file mappings + MPOL_MF_MOVE

make-tree_lock-an-rwlock.patch
make mapping->tree_lock an rwlock

mempolicy-optimization.patch
mempolicy optimisation

mm-overcommit-updates.patch
mm: overcommit updates

kill-off-highmem_start_page.patch
kill off highmem_start_page

make-sure-ioremap-only-tests-valid-addresses.patch
make sure ioremap only tests valid addresses

vmlib-wrapped-executable-brk.patch
VmLib wrapped: executable brk

vmlib-wrapped-mprotect-flags.patch
VmLib wrapped: mprotect flags

must-fix.patch
must fix lists update
must fix list update
mustfix update
must-fix update
mustfix lists

arcnet-fixes.patch
arcnet fixes

x25-when-receiving-a-call-check-listening-sockets-for-matching-call-user-data.patch
X.25: When receiving a call, check listening sockets for matching call user data.

x25-remove-unused-header-files.patch
X.25: Remove unused header files

xircom_tulip_cb-build-fix.patch
xircom_tulip_cb.c build fix

m68k-ethernet-drivers-depend-on-net_ethernet.patch
M68k Ethernet drivers depend on NET_ETHERNET

m68k-hp-lance-ethernet-depends-on-dio-bus-support.patch
M68k HP Lance Ethernet depends on DIO bus support

net-socketc__sock_create-cleanup.patch
net/socket.c::__sock_create() cleanup.

net-netconsole-poll-support-for-3c509.patch
net: Netconsole poll support for 3c509

avoid-deadlock-in-smc91x-driver.patch
Avoid deadlock in smc91x driver

ppc32-freescale-book-e-mmu-cleanup.patch
ppc32: freescale Book-E MMU cleanup

ppc32-refactor-common-book-e-exception-code.patch
ppc32: refactor common book-e exception code

ppc32-switch-to-kbuild_defconfig.patch
ppc32: Switch to KBUILD_DEFCONFIG

ppc32-marvell-host-bridge-support-mv64x60.patch
ppc32: Marvell host bridge support (mv64x60)

ppc32-marvell-host-bridge-support-mv64x60-review-fixes.patch
ppc32-marvell-host-bridge-support-mv64x60 review fixes

ppc32-support-for-marvell-ev-64260-bp-eval-platform.patch
ppc32: support for Marvell EV-64260[ab]-BP eval platform

ppc32-support-for-artesyn-katana-cpci-boards.patch
ppc32: support for Artesyn Katana cPCI boards

ppc32-ppc4xx-pic-rewrite-cleanup.patch
ppc32: PPC4xx PIC rewrite/cleanup

ppc64-kprobes-implementation.patch
ppc64: kprobes implementation

ppc64-tweaks-to-cpu-sysfs-information.patch
ppc64: tweaks to ppc64 cpu sysfs information

ppc64-fix-signal-mask-on-delivery-error.patch
ppc64: fix signal mask on delivery error

ppc64-reloc_hide.patch

kprobes-wrapper-to-define-jprobeentry.patch
Kprobes: wrapper to define jprobe.entry

remove-unnecessary-inclusions-of-asm-aouth.patch
Remove unnecessary inclusions of asm/a.out.h

termio-userspace-access-error-handling.patch
Termio userspace access error handling

ide_arch_obsolete_init-fix.patch
IDE_ARCH_OBSOLETE_INIT fix

out-of-line-implementation-of-find_next_bit.patch
out-of-line implementation of find_next_bit()

gp-rel-data-support.patch
GP-REL data support

vm-routine-fixes.patch
VM routine fixes

vm-routine-fixes-CONFIG_SHMEM-fix.patch
vm-routine-fixes CONFIG_SHMEM fix

frv-fujitsu-fr-v-cpu-arch-maintainer-record.patch
FRV: Fujitsu FR-V CPU arch maintainer record

frv-fujitsu-fr-v-arch-documentation.patch
FRV: Fujitsu FR-V arch documentation

frv-fujitsu-fr-v-cpu-arch-implementation-part-1.patch
FRV: Fujitsu FR-V CPU arch implementation part 1

frv-fujitsu-fr-v-cpu-arch-implementation-part-2.patch
FRV: Fujitsu FR-V CPU arch implementation part 2

frv-fujitsu-fr-v-cpu-arch-implementation-part-3.patch
FRV: Fujitsu FR-V CPU arch implementation part 3

frv-fujitsu-fr-v-cpu-arch-implementation-part-4.patch
FRV: Fujitsu FR-V CPU arch implementation part 4

frv-fujitsu-fr-v-cpu-arch-implementation-part-5.patch
FRV: Fujitsu FR-V CPU arch implementation part 5

frv-fujitsu-fr-v-cpu-arch-implementation-part-6.patch
FRV: Fujitsu FR-V CPU arch implementation part 6

frv-fujitsu-fr-v-cpu-arch-implementation-part-7.patch
FRV: Fujitsu FR-V CPU arch implementation part 7

frv-fujitsu-fr-v-cpu-arch-implementation-part-8.patch
FRV: Fujitsu FR-V CPU arch implementation part 8

frv-fujitsu-fr-v-cpu-arch-implementation-part-9.patch
FRV: Fujitsu FR-V CPU arch implementation part 9

frv-kill-off-highmem_start_page.patch
kill off highmem_start_page

frv-first-batch-of-fujitsu-fr-v-arch-include-files.patch
FRV: First batch of Fujitsu FR-V arch include files

frv-remove-obsolete-hardirq-stuff-from-includes.patch
frv: emove obsolete hardirq stuff from includes

frv-pci-dma-fixes.patch
frv: PCI DMA fixes

fix-frv-pci-config-space-write.patch
frv: Fix PCI config space write

frv-more-fujitsu-fr-v-arch-include-files.patch
FRV: More Fujitsu FR-V arch include files

convert-frv-to-use-remap_pfn_range.patch
convert FRV to use remap_pfn_range

frv-yet-more-fujitsu-fr-v-arch-include-files.patch
FRV: Yet more Fujitsu FR-V arch include files

frv-remaining-fujitsu-fr-v-arch-include-files.patch
FRV: Remaining Fujitsu FR-V arch include files

frv-make-calibrate_delay-optional.patch
FRV: Make calibrate_delay() optional

frv-better-mmap-support-in-uclinux.patch
FRV: Better mmap support in uClinux

frv-procfs-changes-for-nommu-changes.patch
FRV: procfs changes for nommu changes

frv-change-setup_arg_pages-to-take-stack-pointer.patch
FRV: change setup_arg_pages() to take stack pointer

frv-change-setup_arg_pages-to-take-stack-pointer-fixes.patch
Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64

frv-add-fdpic-elf-binary-format-driver.patch
FRV: Add FDPIC ELF binary format driver

further-nommu-changes.patch
Further nommu changes

further-nommu-proc-changes.patch
Further nommu /proc changes

frv-arch-nommu-changes.patch
frv: nommu changes

superhyway-bus-support.patch
SuperHyway bus support

assign-pkmap_base-dynamically.patch
Assign PKMAP_BASE dynamically

x86-remove-data-header-and-code-overlap-in-boot-setups.patch
x86: remove data-header and code overlap in boot/setup.S

intel-thermal-monitor-for-x86_64.patch
Intel thermal monitor for x86_64

x86_64-do_general_protection-retval-check.patch
x86_64: do_general_protection() retval check

x86_64-add-a-real-pfn_valid.patch
x86_64: Add a real pfn_valid

x86_64-make-irda-devices-are-not-really-isa-devices-not.patch
x86_64: Make IRDA devices are not really ISA devices not depend on CONFIG_ISA.

x86_64-fix-bugs-in-the-amd-k8-cmp-support-code.patch
x86_64: Fix bugs in the AMD K8 CMP support code.

x86_64-reenable-mga-dri-on-x86-64.patch
x86_64: Reenable MGA DRI on x86-64

x86_64-remove-duplicated-fake_stack_frame-macro.patch
x86_64: Remove duplicated FAKE_STACK_FRAME macro.

x86_64-remove-bios-reboot-code.patch
x86_64: Remove BIOS reboot code

x86_64-add-reboot=force.patch
x86_64: Add reboot=force

x86_64-collected-ioremap-fixes.patch
x86_64: Collected ioremap fixes

x86_64-handle-nx-correctly-in-pageattr.patch
x86_64: Handle NX correctly in pageattr

x86_64-split-acpi-boot-table-parsing.patch
x86_64: Split ACPI boot table parsing

x86_64-add-srat-numa-discovery-to-x86-64.patch
x86_64: Add SRAT NUMA discovery to x86-64.

x86_64-update-uptime-after-suspend.patch
x86_64: Update uptime after suspend

x86_64-cleanups-preparing-for-memory-hotplug.patch
x86_64: Cleanups preparing for memory hotplug

x86_64-allow-a-kernel-debugger-to-hide-single-steps-in.patch
x86_64: Allow a kernel debugger to hide single steps in more cases.

x86_64-remove-debug-information-for-vsyscalls.patch
x86_64: Remove debug information for vsyscalls

x86_64-rename-htvalid-to-cmp_legacy.patch
x86_64: Rename HTVALID to CMP_LEGACY

x86_64-scheduler-support-for-amd-cmp.patch
x86_64: Scheduler support for AMD CMP

x86_64-add-a-missing-__iomem-pointed-out-by-linus.patch
x86_64: Add a missing __iomem pointed out by Linus.

x86_64-add-a-missing-newline-in-proc-cpuinfo.patch
x86_64: Add a missing newline in /proc/cpuinfo

x86_64-add-sysfs-file-to-map-pci-busses-to-cpus-warning-fix.patch
x86_64-add-sysfs-file-to-map-pci-busses-to-cpus-warning-fix

x86_64-always-print-segfaults-for-init.patch
x86_64: Always print segfaults for init.

x86_64-export-phys_proc_id.patch
x86_64: Export phys_proc_id

x86_64-allow-to-configure-more-cpus-and-nodes.patch
x86_64: Allow to configure more CPUs and nodes.

x86_64-allow-to-configure-more-cpus-and-nodes-fix.patch
x86_64-allow-to-configure-more-cpus-and-nodes fix

x86_64-fix-a-warning-in-the-cmp-support-code-for.patch
x86_64: Fix a warning in the CMP support code for !CONFIG_NUMA

x86_64-fix-some-outdated-assumptions-that-cpu-numbers.patch
x86_64: Fix some outdated assumptions that CPU numbers are equal numbers.

x86_64-fix-em64t-config-description.patch
x86_64: Fix EM64T config description

x86_64-remove-unneeded-ifdef-in-hardirqh.patch
x86_64: Remove unneeded ifdef in hardirq.h

x86_64-add-slit-inter-node-distance-information-to.patch
x86_64: Add SLIT (inter node distance) information to sysfs.

x86_64-add-x86_64-support-for-jack-steiners-slit-sysfs.patch
x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch

x86_64-eliminate-some-useless-printks-in-acpi-numac.patch
x86_64: Eliminate some useless printks in ACPI numa.c

x86_64-experimental-4gb-dma-zone.patch
x86_64: EXPERIMENTAL: 4GB DMA zone

swsusp-kconfig-change-in-wording-fwd.patch
swsusp kconfig: Change in wording

typeofdev-powersaved_state.patch
typeof(dev->power.saved_state)

media-update-drivers-media-video-arvc.patch
media: Update drivers/media/video/arv.c

uml-remove-most-devfs_mk_symlink-calls.patch
uml: remove most devfs_mk_symlink calls

uml-fix-__wrap_free-comment.patch
uml: fix __wrap_free comment

uml-fix-some-ptrace-functions-returns-values.patch
uml: fix some ptrace functions returns values

uml-redo-the-signal-delivery-mechanism.patch
uml: redo the signal delivery mechanism

uml-make-restorer-match-i386.patch
uml: make restorer match i386

uml-unistdh-cleanup.patch
uml: unistd.h cleanup

uml-remove-a-quilt-induced-duplicity.patch
uml: remove a quilt-induced duplicity

uml-fix-sigreturn-to-not-copy_user-under-a-spinlock.patch
uml: fix sigreturn to not copy_user under a spinlock

uml-close-host-file-descriptors-properly.patch
uml: close host file descriptors properly

uml-free-host-resources-associated-with-freed-irqs.patch
uml: free host resources associated with freed IRQs

uml-unregister-signal-handlers-at-reboot.patch
uml: unregister signal handlers at reboot

hostfs-uml-set-sendfile-to-generic_file_sendfile.patch
hostfs: uml: set .sendfile to generic_file_sendfile

hostfs-uml-add-some-other-pagecache-methods.patch
hostfs: uml: add some other pagecache methods

uml-terminal-cleanup.patch
uml: terminal cleanup

s390-network-driver.patch
s390: network driver

s390-remove-compat-setup_arg_pages32.patch
s390: remove compat setup_arg_pages32

enhanced-i-o-accounting-data-patch.patch
enhanced I/O accounting data patch

enhanced-memory-accounting-data-collection.patch
enhanced Memory accounting data collection

enhanced-memory-accounting-data-collection-tidy.patch
enhanced-memory-accounting-data-collection-tidy

wacom-tablet-driver.patch
wacom tablet driver

force-feedback-support-for-uinput.patch
Force feedback support for uinput

kmap_atomic-takes-char.patch
kmap_atomic takes char*

kmap_atomic-takes-char-fix.patch
kmap_atomic-takes-char-fix

kmap_atomic-fallout.patch
kmap_atomic fallout

kunmap-fallout-more-fixes.patch
kunmap-fallout-more-fixes

4-4gb-incorrect-bound-check-in-do_getname.patch
4/4GB: Incorrect bound check in do_getname()

handle-quoted-module-parameters.patch
handle quoted module parameters

CONFIG_SOUND_VIA82CXXX_PROCFS.patch
Add CONFIG_SOUND_VIA82CXXX_PROCFS

make-sysrq-f-call-oom_kill.patch
make sysrq-F call oom_kill()

allow-admin-to-enable-only-some-of-the-magic-sysrq-functions.patch
Allow admin to enable only some of the Magic-Sysrq functions

gen_init_cpio-symlink-pipe-socket-support.patch
gen_init_cpio symlink, pipe and socket support

gen_init_cpio-slink_pipe_sock_2.patch
gen_init_cpio-slink_pipe_sock_2

move-irq_enter-and-irq_exit-to-common-code.patch
move irq_enter and irq_exit to common code

remove-unused-irq_cpustat-fields.patch
remove unused irq_cpustat fields

reduce-false-timer_softirq-calls.patch
reduce false TIMER_SOFTIRQ calls

reduce-false-timer_softirq-calls-tweaks.patch
reduce-false-timer_softirq-calls-tweaks

hold-bkl-for-shorter-period-in-generic_shutdown_super.patch
Hold BKL for shorter period in generic_shutdown_super().

cleanups-for-the-ipmi-driver.patch
Cleanups for the IPMI driver

htree-telldir-fix.patch
ext3 htree telldir() fix

kill-blkh.patch
kill blk.h

ext3-cleanup-handling-of-aborted-transactions.patch
ext3: cleanup handling of aborted transactions.

ext3-handle-attempted-delete-of-bitmap-blocks.patch
ext3: handle attempted delete of bitmap blocks.

ext3-handle-attempted-double-delete-of-metadata.patch
ext3: handle attempted double-delete of metadata.

cpumask_t-initializers.patch
cpumask_t initializers

time-run-too-fast-after-s3.patch
time runx too fast after S3

fork-total_forks-not-counted-under-tasklist_lock.patch
fork: total_forks not counted under tasklist_lock

suppress-might_sleep-if-oopsing.patch
suppress might_sleep() if oopsing

i4l-fix-deadlock-in-capi-code-reenable-smp.patch
i4l: fix deadlock in CAPI code, reenable SMP

cont_prepare_write-fix.patch
cont_prepare_write() fix

fix-an-xfs-direct-i-o-deadlock.patch
Fix an XFS direct I/O deadlock

file-sync-no-i_sem.patch
Reduce i_sem usage during file sync operations

generic_make_request-stack-savings.patch
generic_make_request stack savings

sys_stime-needs-a-compat-function.patch
sys_stime needs a compat function

sys_stime-needs-a-compat-function-fix.patch
sys_stime-needs-a-compat-function-fix

sys_stime-needs-a-compat-function-fix-fix.patch
sys_stime-needs-a-compat-function-fix-fix

sync-in-core-time-granuality-with-filesystems.patch
Sync in core time granuality with filesystems

sync-in-core-time-granuality-with-filesystems-sonypi-fix.patch
sync-in-core-time-granuality-with-filesystems-sonypi-fix

use-pid_alive-in-proc_pid_status.patch
use pid_alive in proc_pid_status

fix-parameter-handling-in-ibm_acpic.patch
Fix Parameter Handling in ibm_acpi.c

remove-ip2-programs.patch
remove ip2 programs

rcu-eliminate-rcu_ctrlblklock.patch
rcu: eliminate rcu_ctrlblk.lock

rcu-eliminate-rcu_datalast_qsctr.patch
rcu: eliminate rcu_data.last_qsctr

smb_file_open-retval-fix.patch
smb_file_open() retval fix

shmctl-shm_lock-perms.patch
shmctl SHM_LOCK perms

sys_sched_setaffinity-on-up-should-fail-for-non-zero.patch
sys_sched_setaffinity() on UP should fail for non-zero CPUs.

fix-occasional-stop_machine-lockup-with-2-cpus.patch
Fix occasional stop_machine() lockup with > 2 CPUs

Add-PCI-quirks-for-ASUS-M6Ne-notebook.patch
Add PCI-quirks for ASUS M6Ne notebook

expose-reiserfs_sync_fs.patch
Expose reiserfs_sync_fs()

fix-reiserfs-quota-debug-messages.patch
Fix reiserfs quota debug messages

fix-of-quota-deadlock-on-pagelock-quota-core.patch
Fix of quota deadlock on pagelock: quota core

vfs_quota_off-oops-fix.patch
vfs_quota_off-oops-fix

quota-umount-race-fix.patch
quota umount race fix

fix-of-quota-deadlock-on-pagelock-ext2.patch
Fix of quota deadlock on pagelock: ext2

fix-of-quota-deadlock-on-pagelock-ext2-tweaks.patch
fix-of-quota-deadlock-on-pagelock-ext2-tweaks

fix-of-quota-deadlock-on-pagelock-ext3.patch
Fix of quota deadlock on pagelock: ext3

fix-of-quota-deadlock-on-pagelock-ext3-tweaks.patch
fix-of-quota-deadlock-on-pagelock-ext3-tweaks

fix-of-quota-deadlock-on-pagelock-reiserfs.patch
Fix of quota deadlock on pagelock: reiserfs

fix-of-quota-deadlock-on-pagelock-reiserfs-fix.patch
fix-of-quota-deadlock-on-pagelock-reiserfs-fix

allow-disabling-quota-messages-to-console.patch
Allow disabling quota messages to console

selinux-scalability-add-spin_trylock_irq-and.patch
SELinux scalability: add spin_trylock_irq and spin_trylock_irqsave

selinux-scalability-convert-avc-to-rcu.patch
SELinux scalability: convert AVC to RCU

selinux-atomic_dec_and_test-bug.patch
SELinux: atomic_dec_and_test() bug

selinux-scalability-avc-statistics-and-tuning.patch
SELinux scalability: AVC statistics and tuning

oprofile-add-check_user_page_readable.patch
oprofile: add check_user_page_readable()

oprofile-arch-independent-code-for-stack-trace.patch
oprofile: arch-independent code for stack trace sampling

oprofile-arch-independent-code-for-stack-trace-rename-timer_init.patch
oprofile-arch-independent-code-for-stack-trace: rename timer_init

oprofile-i386-support-for-stack-trace-sampling.patch
oprofile: i386 support for stack trace sampling

oprofile-i386-support-for-stack-trace-sampling-cleanup.patch
oprofile-i386-support-for-stack-trace-sampling-cleanup

oprofile-i386-support-for-stack-trace-sampling-fix.patch
oprofile-i386-support-for-stack-trace-sampling x86_64 fix

oprofile-ia64-support-for-oprofile-stack-trace.patch
oprofile: ia64 support for oprofile stack trace sampling

oprofile-update-alpha-for-api-changes.patch
oprofile: update alpha for api changes

oprofile-update-arm-for-api-changes.patch
oprofile: update arm for api changes

oprofile-update-ppc-for-api-changes.patch
oprofile: update ppc for api changes

oprofile-update-parisc-for-api-changes.patch
oprofile: update parisc for api changes

oprofile-update-s390-for-api-changes.patch
oprofile: update s390 for api changes

oprofile-update-sh-for-api-changes.patch
oprofile: update sh for api changes

oprofile-update-sparc64-for-api-changes.patch
oprofile: update sparc64 for api changes

oprofile-minor-cleanups.patch
oprofile: minor cleanups

pcmcia-add-disable_clkrun-option.patch
pcmcia: Add disable_clkrun option

pcmcia-b17-device-model-integration.patch

pcmcia-b18a-client_t-and-pcmcia_device-integration.patch

pcmcia-b18b-error-on-leftover-devices.patch

pcmcia-b19-netdevice-integration.patch

dvb-documentation-update.patch
dvb: documentation update

dvb-collateral-frontend-changes.patch
dvb: collateral frontend changes

dvb-collateral-frontend-changes-kconfig-fix.patch
dvb-collateral-frontend-changes kconfig fix

saa7146-changes.patch
dvb: saa7146 changes

dvb-frontend-driver-refactoring.patch
dvb: frontend driver refactoring

dvb-follow-frontend-changes-in-drivers.patch
dvb: follow frontend changes in drivers

dvb-cinergy-t2-update.patch
dvb: Cinergy T2 update

dvb-dibusb-driver-update.patch
dvb: dibusb driver update

dvb-core-changes.patch
dvb: core changes

dvb-remove-dead-files.patch
dvb: remove dead files

dvb-follow-changes-in-dvb-ttpci-and-budget-drivers.patch
dvb: follow changes in dvb-ttpci and budget drivers

dvb-follow-changes-in-dvb-ttpci-and-budget-drivers-linkage-fix.patch
dvb-follow-changes-in-dvb-ttpci-and-budget-drivers linkage fix

knfsd-nfsd_translate_wouldblocks.patch
knfsd: nfsd_translate_wouldblocks

knfsd-svcrpc-auth_null-fixes.patch
knfsd: svcrpc: auth_null fixes

knfsd-svcrpc-share-code-duplicated-between-auth_unix-and-auth_null.patch
knfsd: svcrpc: share code duplicated between auth_unix and auth_null

knfsd-nfsd4-fix-open_downgrade-decode-error.patch
knfsd: nfsd4: fix open_downgrade decode error.

knfsd-rpcsec_gss-comparing-pointer-to-0-instead-of-null.patch
knfsd: rpcsec_gss: comparing pointer to 0 instead of NULL

knfsd-nfsd4-fix-fileid-in-readdir-responses.patch
knfsd: nfsd4: fix fileid in readdir responses

knfsd-nfsd4-use-the-fsid-export-option-when-returning-the-fsid-attribute.patch
knfsd: nfsd4: use the fsid export option when returning the fsid attribute

knfsd-nfsd4-encode_dirent-cleanup.patch
knfsd: nfsd4 encode_dirent cleanup

knfsd-nfsd4-encode_dirent-superfluous-assignment.patch
knfsd: nfsd4: encode_dirent: superfluous assignment

knfsd-nfsd4-encode_dirent-superfluous-local-variables.patch
knfsd: nfsd4: encode_dirent: superfluous local variables

knfsd-nfsd4-encode_dirent-more-readdir-attribute-encoding-to-new-function.patch
knfsd: nfsd4: encode_dirent: more readdir attribute encoding to new function

knfsd-nfsd4-encode_dirent-simplify-nfs4_encode_dirent_fattr.patch
knfsd: nfsd4: encode_dirent: simplify nfs4_encode_dirent_fattr

knfsd-nfsd4-encode_dirent-move-rdattr_error-code-to-new-function.patch
knfsd: nfsd4: encode_dirent: move rdattr_error code to new function

knfsd-nfsd4-encode_dirent-simplify-error-handling.patch
knfsd: nfsd4: encode_dirent: simplify error handling

knfsd-nfsd4-encode_dirent-simplify-control-flow.patch
knfsd: nfsd4: encode_dirent: simplify control flow

knfsd-nfsd4-encode_dirent-fix-dropit-return.patch
knfsd: nfsd4: encode_dirent: fix dropit return

knfsd-nfsd4-encode_dirent-trivial-cleanup.patch
knfsd: nfsd4: encode_dirent: trivial cleanup

kgdb-ga.patch
kgdb stub for ia32 (George Anzinger's one)
kgdbL warning fix
kgdb buffer overflow fix
kgdbL warning fix
kgdb: CONFIG_DEBUG_INFO fix
x86_64 fixes
correct kgdb.txt Documentation link (against 2.6.1-rc1-mm2)
kgdb: fix for recent gcc
kgdb warning fixes
THREAD_SIZE fixes for kgdb
Fix stack overflow test for non-8k stacks kgdb-ga.patch fix for i386 single-step into sysenter fix TRAP_BAD_SYSCALL_EXITS on i386
add TRAP_BAD_SYSCALL_EXITS config for i386 kgdb-is-incompatible-with-kprobes kgdb-ga-build-fix
kgdb-ga-fixes

kgdb-kill-off-highmem_start_page.patch
kgdb: kill off highmem_start_page

kgdboe-netpoll.patch
kgdb-over-ethernet via netpoll
kgdboe: fix configuration of MAC address

kgdb-x86_64-support.patch
kgdb-x86_64-support.patch for 2.6.2-rc1-mm3
kgdb-x86_64-warning-fixes
kgdb-x86_64-fix
kgdb-x86_64-serial-fix
kprobes exception notifier fix

invalidate_inodes-speedup.patch
invalidate_inodes speedup
more invalidate_inodes speedup fixes

dev-mem-restriction-patch.patch
/dev/mem restriction patch

dev-mem-restriction-patch-allow-reads.patch
dev-mem-restriction-patch: allow reads

jbd-remove-livelock-avoidance.patch
JBD: remove livelock avoidance code in journal_dirty_data()

journal_add_journal_head-debug.patch
journal_add_journal_head-debug

list_del-debug.patch
list_del debug check

unplug-can-sleep.patch
unplug functions can sleep

firestream-warnings.patch
firestream warnings

perfctr-core.patch
perfctr: core

perfctr-i386.patch
perfctr: i386

perfctr-x86-core-updates.patch
perfctr x86 core updates

perfctr-x86-driver-updates.patch
perfctr x86 driver updates

perfctr-x86-driver-cleanup.patch
perfctr: x86 driver cleanup

perfctr-prescott-fix.patch
Prescott fix for perfctr

perfctr-x86-update-2.patch
perfctr x86 update 2

perfctr-x86_64.patch
perfctr: x86_64

perfctr-x86_64-core-updates.patch
perfctr x86_64 core updates

perfctr-ppc.patch
perfctr: PowerPC

perfctr-ppc32-driver-update.patch
perfctr: ppc32 driver update

perfctr-ppc32-mmcr0-handling-fixes.patch
perfctr ppc32 MMCR0 handling fixes

perfctr-ppc32-update.patch
perfctr ppc32 update

perfctr-ppc32-update-2.patch
perfctr ppc32 update

perfctr-virtualised-counters.patch
perfctr: virtualised counters

perfctr-remap_page_range-fix.patch

virtual-perfctr-illegal-sleep.patch
virtual perfctr illegal sleep

make-perfctr_virtual-default-in-kconfig-match-recommendation.patch
Make PERFCTR_VIRTUAL default in Kconfig match recommendation in help text

perfctr-ifdef-cleanup.patch
perfctr ifdef cleanup

perfctr-update-2-6-kconfig-related-updates.patch
perfctr: Kconfig-related updates

perfctr-virtual-updates.patch
perfctr virtual updates

perfctr-virtual-cleanup.patch
perfctr: virtual cleanup

perfctr-ppc32-preliminary-interrupt-support.patch
perfctr ppc32 preliminary interrupt support

perfctr-update-5-6-reduce-stack-usage.patch
perfctr: reduce stack usage

perfctr-interrupt-support-kconfig-fix.patch
perfctr interrupt_support Kconfig fix

perfctr-low-level-documentation.patch
perfctr low-level documentation

perfctr-inheritance-1-3-driver-updates.patch
perfctr inheritance: driver updates

perfctr-inheritance-2-3-kernel-updates.patch
perfctr inheritance: kernel updates

perfctr-inheritance-3-3-documentation-updates.patch
perfctr inheritance: documentation updates

perfctr-inheritance-locking-fix.patch
perfctr inheritance locking fix

perfctr-api-changes-first-step.patch
perfctr API changes: first step

perfctr-virtual-update.patch
perfctr virtual update

perfctr-x86-64-ia32-emulation-fix.patch
perfctr x86-64 ia32 emulation fix

sched-more-agressive-wake_idle.patch
sched: more agressive wake_idle()

sched-can_migrate-exception-for-idle-cpus.patch
sched: can_migrate exception for idle cpus

sched-newidle-fix.patch
sched: newidle fix

sched-active_load_balance-fixlet.patch
sched: active_load_balance() fixlet

sched-reset-cache_hot_time.patch
sched: reset cache_hot_time

schedc-whitespace-mangler.patch
sched.c whitespace mangler

sched-alter_kthread_prio.patch
sched: alter_kthread_prio

sched-adjust_timeslice_granularity.patch
sched: adjust_timeslice_granularity

sched-add_requeue_task.patch
sched: add_requeue_task

requeue_granularity.patch
sched: requeue_granularity

sched-remove_interactive_credit.patch
sched: remove_interactive_credit

sched-use-cached-current-value.patch
sched: use cached current value

dont-hide-thread_group_leader-from-grep.patch
don't hide thread_group_leader() from grep

sched-no-need-to-recalculate-rq.patch
sched: no need to recalculate rq

add-do_proc_doulonglongvec_minmax-to-sysctl-functions.patch
Add do_proc_doulonglongvec_minmax to sysctl functions add-do_proc_doulonglongvec_minmax-to-sysctl-functions-fix add-do_proc_doulonglongvec_minmax-to-sysctl-functions fix 2

add-sysctl-interface-to-sched_domain-parameters.patch
Add sysctl interface to sched_domain parameters

preempt-smp.patch
improve preemption on SMP

preempt-smp-_raw_read_trylock-bias-fix.patch
preempt-smp _raw_read_trylock bias fix

preempt-cleanup.patch
preempt cleanup

preempt-cleanup-fix.patch
preempt-cleanup-fix

add-lock_need_resched.patch
add lock_need_resched()

sched-add-cond_resched_softirq.patch
sched: add cond_resched_softirq()

sched-ext3-fix-scheduling-latencies-in-ext3.patch
sched: ext3: fix scheduling latencies in ext3

break-latency-in-invalidate_list.patch
break latency in invalidate_list()

sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent.patch
sched: vfs: fix scheduling latencies in prune_dcache() and select_parent()

sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent-fix.patch
sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent fix

sched-net-fix-scheduling-latencies-in-netstat.patch
sched: net: fix scheduling latencies in netstat

sched-net-fix-scheduling-latencies-in-__release_sock.patch
sched: net: fix scheduling latencies in __release_sock

sched-mm-fix-scheduling-latencies-in-unmap_vmas.patch
sched: mm: fix scheduling latencies in unmap_vmas()

sched-mm-fix-scheduling-latencies-in-get_user_pages.patch
sched: mm: fix scheduling latencies in get_user_pages()

sched-mm-fix-scheduling-latencies-in-filemap_sync.patch
sched: mm: fix scheduling latencies in filemap_sync()

fix-keventd-execution-dependency.patch
fix keventd execution dependency

sched-fix-scheduling-latencies-in-mttrc.patch
sched: fix scheduling latencies in mttr.c

sched-fix-scheduling-latencies-in-vgaconc.patch
sched: fix scheduling latencies in vgacon.c

sched-fix-scheduling-latencies-for-preempt-kernels.patch
sched: fix scheduling latencies for !PREEMPT kernels

idle-thread-preemption-fix.patch
idle thread preemption fix

oprofile-smp_processor_id-fixes.patch
oprofile smp_processor_id() fixes

fix-smp_processor_id-warning-in-numa_node_id.patch
Fix smp_processor_id() warning in numa_node_id()

vmtrunc-truncate_count-not-atomic.patch
vmtrunc: truncate_count not atomic

vmtrunc-restore-unmap_vmas-zap_bytes.patch
vmtrunc: restore unmap_vmas zap_bytes

vmtrunc-unmap_mapping_range_tree.patch
vmtrunc: unmap_mapping_range_tree

vmtrunc-unmap_mapping-dropping-i_mmap_lock.patch
vmtrunc: unmap_mapping dropping i_mmap_lock

vmtrunc-vm_truncate_count-race-caution.patch
vmtrunc: vm_truncate_count race caution

vmtrunc-bug-if-page_mapped.patch
vmtrunc: bug if page_mapped

vmtrunc-restart_addr-in-truncate_count.patch
vmtrunc: restart_addr in truncate_count

remove-the-bkl-by-turning-it-into-a-semaphore.patch
remove the BKL by turning it into a semaphore

oprofile-preempt-warning-fixes.patch
oprofile preempt warning fixes

smp_processor_id-commentary.patch
smp_processor_id() commentary

cpu_down-warning-fix.patch
cpu_down() warning fix

linux-2.6.8.1-49-rpc_workqueue.patch
nfs: RPC: Convert rpciod into a work queue for greater flexibility

linux-2.6.8.1-50-rpc_queue_lock.patch
nfs: RPC: Remove the rpc_queue_lock global spinlock

allow-modular-ide-pnp.patch
allow modular ide-pnp

allow-x86_64-to-reenable-interrupts-on-contention.patch
Allow x86_64 to reenable interrupts on contention

i386-cpu-hotplug-updated-for-mm.patch
i386 CPU hotplug updated for -mm

serialize-access-to-ide-devices.patch
serialize access to ide devices

disable-atykb-warning.patch
disable atykb "too many keys pressed" warning

export-file_ra_state_init-again.patch
Export file_ra_state_init() again

cachefs-filesystem.patch
CacheFS filesystem

numa-policies-for-file-mappings-mpol_mf_move-cachefs.patch
numa-policies-for-file-mappings-mpol_mf_move for cachefs

cachefs-release-search-records-lest-they-return-to-haunt-us.patch
CacheFS: release search records lest they return to haunt us

fix-64-bit-problems-in-cachefs.patch
Fix 64-bit problems in cachefs

cachefs-fixed-typos-that-cause-wrong-pointer-to-be-kunmapped.patch
cachefs: fixed typos that cause wrong pointer to be kunmapped

cachefs-return-the-right-error-upon-invalid-mount.patch
CacheFS: return the right error upon invalid mount

fix-cachefs-barrier-handling-and-other-kernel-discrepancies.patch
Fix CacheFS barrier handling and other kernel discrepancies

remove-error-from-linux-cachefsh.patch
Remove #error from linux/cachefs.h

cachefs-warning-fix-2.patch
cachefs warning fix 2

cachefs-linkage-fix-2.patch
cachefs linkage fix

cachefs-build-fix.patch
cachefs build fix

cachefs-documentation.patch
CacheFS documentation

add-page-becoming-writable-notification.patch
Add page becoming writable notification

add-page-becoming-writable-notification-fix.patch
do_wp_page_mk_pte_writable() fix

provide-a-filesystem-specific-syncable-page-bit.patch
Provide a filesystem-specific sync'able page bit

provide-a-filesystem-specific-syncable-page-bit-fix.patch
provide-a-filesystem-specific-syncable-page-bit-fix

provide-a-filesystem-specific-syncable-page-bit-fix-2.patch
provide-a-filesystem-specific-syncable-page-bit-fix-2

make-afs-use-cachefs.patch
Make AFS use CacheFS

afs-cachefs-dependency-fix.patch
afs-cachefs-dependency-fix

split-general-cache-manager-from-cachefs.patch
Split general cache manager from CacheFS

turn-cachefs-into-a-cache-backend.patch
Turn CacheFS into a cache backend

rework-the-cachefs-documentation-to-reflect-fs-cache-split.patch
Rework the CacheFS documentation to reflect FS-Cache split

update-afs-client-to-reflect-cachefs-split.patch
Update AFS client to reflect CacheFS split

assign_irq_vector-section-fix.patch
assign_irq_vector __init section fix

kexec-i8259-shutdowni386.patch
kexec: i8259-shutdown.i386

kexec-i8259-shutdown-x86_64.patch
kexec: x86_64 i8259 shutdown

kexec-apic-virtwire-on-shutdowni386patch.patch
kexec: apic-virtwire-on-shutdown.i386.patch

kexec-apic-virtwire-on-shutdownx86_64.patch
kexec: apic-virtwire-on-shutdown.x86_64

kexec-ioapic-virtwire-on-shutdowni386.patch
kexec: ioapic-virtwire-on-shutdown.i386

kexec-apic-virt-wire-fix.patch
kexec: apic-virt-wire fix

kexec-ioapic-virtwire-on-shutdownx86_64.patch
kexec: ioapic-virtwire-on-shutdown.x86_64

kexec-e820-64bit.patch
kexec: e820-64bit

kexec-kexec-generic.patch
kexec: kexec-generic

kexec-ide-spindown-fix.patch
kexec-ide-spindown-fix

kexec-ifdef-cleanup.patch
kexec ifdef cleanup

kexec-machine_shutdownx86_64.patch
kexec: machine_shutdown.x86_64

kexec-kexecx86_64.patch
kexec: kexec.x86_64

kexec-kexecx86_64-4level-fix.patch
kexec-kexecx86_64-4level-fix

kexec-machine_shutdowni386.patch
kexec: machine_shutdown.i386

kexec-kexeci386.patch
kexec: kexec.i386

kexec-use_mm.patch
kexec: use_mm

kexec-loading-kernel-from-non-default-offset.patch
kexec: loading kernel from non-default offset

kexec-loading-kernel-from-non-default-offset-fix.patch
kdump: fix bss compile error

kexec-enabling-co-existence-of-normal-kexec-kernel-and-panic-kernel.patch
kexec: nabling co-existence of normal kexec kernel and panic kernel

kexec-ppc-support.patch
kexec: ppc support

crashdump-documentation.patch
crashdump: documentation

crashdump-memory-preserving-reboot-using-kexec.patch
crashdump: memory preserving reboot using kexec

crashdump-memory-preserving-reboot-using-kexec-fix.patch
kdump: Fix for boot problems on SMP

kdump-config_discontigmem-fix.patch
kdump: CONFIG_DISCONTIGMEM fix

crashdump-routines-for-copying-dump-pages.patch
crashdump: routines for copying dump pages

crashdump-routines-for-copying-dump-pages-kmap-fiddle.patch
crashdump-routines-for-copying-dump-pages-kmap-fiddle

crashdump-kmap-build-fix.patch
crashdump kmap build fix

crashdump-register-snapshotting-before-kexec-boot.patch
crashdump: register snapshotting before kexec boot

crashdump-elf-format-dump-file-access.patch
crashdump: ELF format dump file access

crashdump-linear-raw-format-dump-file-access.patch
crashdump: linear/raw format dump file access

crashdump-minor-bug-fixes-to-kexec-crashdump-code.patch
crashdump: minor bug fixes to kexec crashdump code

crashdump-cleanups-to-the-kexec-based-crashdump-code.patch
crashdump: cleanups to the kexec based crashdump code

x86-rename-apic_mode_exint.patch
x86: rename APIC_MODE_EXINT

x86-local-apic-fix.patch
x86: local apic fix

new-bitmap-list-format-for-cpusets.patch
new bitmap list format (for cpusets)

cpusets-big-numa-cpu-and-memory-placement.patch
cpusets - big numa cpu and memory placement

cpusets-fix-cpuset_get_dentry.patch
cpusets : fix cpuset_get_dentry()

cpusets-fix-race-in-cpuset_add_file.patch
cpusets: fix race in cpuset_add_file()

cpusets-remove-more-casts.patch
cpusets: remove more casts

cpusets-make-config_cpusets-the-default-in-sn2_defconfig.patch
cpusets: make CONFIG_CPUSETS the default in sn2_defconfig

cpusets-document-proc-status-allowed-fields.patch
cpusets: document proc status allowed fields

cpusets-dont-export-proc_cpuset_operations.patch
Cpusets - Dont export proc_cpuset_operations

cpusets-display-allowed-masks-in-proc-status.patch
cpusets: display allowed masks in proc status

cpusets-simplify-cpus_allowed-setting-in-attach.patch
cpusets: simplify cpus_allowed setting in attach

cpusets-remove-useless-validation-check.patch
cpusets: remove useless validation check

cpusets-config_cpusets-depends-on-smp.patch
Cpusets: CONFIG_CPUSETS depends on SMP

cpusets-tasks-file-simplify-format-fixes.patch
Cpusets tasks file: simplify format, fixes

cpusets-simplify-memory-generation.patch
Cpusets: simplify memory generation

cpusets-interoperate-with-hotplug-online-maps.patch
cpusets: interoperate with hotplug online maps

cpusets-alternative-fix-for-possible-race-in.patch
cpusets: alternative fix for possible race in cpuset_tasks_read()

cpusets-remove-casts.patch
cpusets: remove void* typecasts

reiser4-sb_sync_inodes.patch
reiser4: vfs: add super_operations.sync_inodes()

reiser4-allow-drop_inode-implementation.patch
reiser4: export vfs inode.c symbols

reiser4-truncate_inode_pages_range.patch
reiser4: vfs: add truncate_inode_pages_range()

reiser4-export-remove_from_page_cache.patch
reiser4: export pagecache add/remove functions to modules

reiser4-export-page_cache_readahead.patch
reiser4: export page_cache_readahead to modules

reiser4-reget-page-mapping.patch
reiser4: vfs: re-check page->mapping after calling try_to_release_page()

reiser4-rcu-barrier.patch
reiser4: add rcu_barrier() synchronization point

reiser4-export-inode_lock.patch
reiser4: export inode_lock to modules

reiser4-export-pagevec-funcs.patch
reiser4: export pagevec functions to modules

reiser4-export-radix_tree_preload.patch
reiser4: export radix_tree_preload() to modules

reiser4-radix-tree-tag.patch
reiser4: add new radix tree tag

reiser4-radix_tree_lookup_slot.patch
reiser4: add radix_tree_lookup_slot()

reiser4-aliased-dir.patch
reiser4: vfs: handle aliased directories

reiser4-kobject-umount-race.patch
reiser4: introduce filesystem kobjects

reiser4-kobject-umount-race-cleanup.patch
reiser4-kobject-umount-race-cleanup

reiser4-perthread-pages.patch
reiser4: per-thread page pools

reiser4-unstatic-kswapd.patch
reiser4: make kswapd() unstatic for debug

reiser4-include-reiser4.patch
reiser4: add to build system

reiser4-doc.patch
reiser4: documentation

reiser4-only.patch
reiser4: main fs

reiser4-fix-a-use-after-free-bug-in-reiser4_parse_options.patch
reiser4: fix a use after free bug in reiser4_parse_options

reiser4-missing-context-creation-is-added.patch
reiser4: missing context creation is added

reiser4-crypto-update.patch
reiser4-crypto-update

reiser4-max_cbk_iteration-fix.patch
reiser4-max_cbk_iteration-fix

reiser4-reduce-stack-usage.patch
reiser4-reduce-stack-usage

reiser4-fix-deadlock.patch
reiser4-fix-deadlock

reiser4-dont-use-shrink_dcache_anon.patch
reiser4-dont-use-shrink_dcache_anon

reiser4-kmap-atomic-fixes.patch
reiser4 kmap_atomic fixes

add-acpi-based-floppy-controller-enumeration.patch
Add ACPI-based floppy controller enumeration.

possible-dcache-bug-debugging-patch.patch
Possible dcache BUG: debugging patch

3c59x-pm-fix.patch
3c59x: enable power management unconditionally

3c59x-missing-pci_disable_device.patch
3c59x: missing pci_disable_device

3c59x-use-netdev_priv.patch
3c59x: use netdev_priv

3c59x-make-use-of-generic_mii_ioctl.patch
3c59x: Make use of generic_mii_ioctl

3c59x-vortex-select-mii.patch
3c59x: VORTEX select MII

3c59x-support-more-ethtool_ops.patch
3c59x: support more ethtool_ops

serial-add-support-for-non-standard-xtals-to-16c950-driver.patch
serial: add support for non-standard XTALs to 16c950 driver

add-support-for-possio-gcc-aka-pcmcia-siemens-mc45.patch
Add support for Possio GCC AKA PCMCIA Siemens MC45

new-serial-flow-control.patch
new serial flow control

mpsc-driver-patch.patch
serial: MPSC driver

vm-pageout-throttling.patch
vm: pageout throttling

revert-allow-oem-written-modules-to-make-calls-to-ia64-oem-sal-functions.patch
revert "allow OEM written modules to make calls to ia64 OEM SAL functions"

md-improve-hash-code-in-linearc.patch
md: improve 'hash' code in linear.c

md-add-interface-for-userspace-monitoring-of-events.patch
md: add interface for userspace monitoring of events.

make-acpi_bus_register_driver-consistent-with-pci_register_driver-again.patch
make acpi_bus_register_driver() consistent with pci_register_driver()

enforce-a-gap-between-heap-and-stack.patch
Enforce a gap between heap and stack

remove-lock_section-from-x86_64-spin_lock-asm.patch
remove LOCK_SECTION from x86_64 spin_lock asm

kfree_skb-dump_stack.patch
kfree_skb-dump_stack

for-mm-only-remove-remap_page_range-completely.patch
vm: for -mm only: remove remap_page_range() completely

cancel_rearming_delayed_work.patch
cancel_rearming_delayed_work()

make-cancel_rearming_delayed_workqueue-static.patch
make cancel_rearming_delayed_workqueue static

ipvs-deadlock-fix.patch
ipvs deadlock fix

minimal-ide-disk-updates.patch
Minimal ide-disk updates

no-buddy-bitmap-patch-revist-intro-and-includes.patch
no buddy bitmap patch revist: intro and includes

no-buddy-bitmap-patch-revisit-for-mm-page_allocc.patch
no buddy bitmap patch revisit: for mm/page_alloc.c

no-buddy-bitmap-patch-revisit-for-mm-page_allocc-fix.patch
no-buddy-bitmap-patch-revisit-for-mm-page_allocc fix

no-buddy-bitmap-patch-revist-for-ia64.patch
no buddy bitmap patch revist: for ia64

no-buddy-bitmap-patch-revist-for-ia64-fix.patch
no-buddy-bitmap-patch-revist-for-ia64 fix

use-find_trylock_page-in-free_swap_and_cache-instead-of-hand-coding.patch
use find_trylock_page in free_swap_and_cache instead of hand coding

selinux-adds-a-private-inode-operation.patch
selinux: adds a private inode operation

reiserfs-private-inode-abstracted-to-static-inline.patch
reiserfs: private inode abstracted to static inline

reiserfs-fixes-to-allow-reiserfs-to-use-selinux-attributes.patch
reiserfs: fixes to allow reiserfs to use selinux attributes

reiserfs-cleaning-up-const-checks.patch
reiserfs: cleaning up const checks

fbdev-sis-framebuffer-driver-update-1717.patch
fbdev: SiS framebuffer driver update 1.7.17

raid6-altivec-support.patch
raid6: altivec support

remove-export_symbol_novers.patch
Remove EXPORT_SYMBOL_NOVERS

figure-out-who-is-inserting-bogus-modules.patch
Figure out who is inserting bogus modules

use-mmiowb-in-qla1280c.patch
use mmiowb in qla1280.c

readpage-vs-invalidate-fix.patch
readpage-vs-invalidate fix

invalidate_inode_pages-mmap-coherency-fix.patch
invalidate_inode_pages2() mmap coherency fix

yenta_socketc-fix-missing-pci_disable_dev.patch
yenta_socket.c: Fix missing pci_disable_dev

yenta-dont-enable-read-prefetch-on-older-o2-bridges.patch
yenta: don't enable read prefetch on older o2 bridges.

cputime-introduce-cputime.patch
cputime: introduce cputime

cputime-fix-do_setitimer.patch
cputime: fix do_setitimer.

cputime-missing-pieces.patch
cputime: missing pieces.

mm-check_rlimit-oops-on-p-signal.patch
check_rlimit oops on p->signal

cputime-microsecond-based-cputime-for-s390.patch
cputime: microsecond based cputime for s390

detect-atomic-counter-underflows.patch
detect atomic counter underflows

lock-initializer-unifying-batch-2-alpha.patch
Lock initializer unifying: ALPHA

lock-initializer-unifying-batch-2-ia64.patch
Lock initializer unifying: IA64

lock-initializer-unifying-batch-2-m32r.patch
Lock initializer unifying: M32R

lock-initializer-unifying-batch-2-mips.patch
Lock initializer unifying: MIPS

lock-initializer-unifying-batch-2-misc-drivers.patch
Lock initializer unifying: Misc drivers

lock-initializer-unifying-batch-2-block-devices.patch
Lock initializer unifying: Block devices

lock-initializer-unifying-batch-2-drm.patch
Lock initializer unifying: DRM

lock-initializer-unifying-batch-2-character-devices.patch
Lock initializer unifying: character devices

lock-initializer-unifying-batch-2-rio.patch
Lock initializer unifying: RIO

lock-initializer-unifying-batch-2-firewire.patch
Lock initializer unifying: Firewire

lock-initializer-unifying-batch-2-isdn.patch
Lock initializer unifying: ISDN

lock-initializer-unifying-batch-2-raid.patch
Lock initializer unifying: Raid

lock-initializer-unifying-batch-2-media-drivers.patch
Lock initializer unifying: media drivers

lock-initializer-unifying-batch-2-drivers-serial.patch
Lock initializer unifying: drivers/serial

lock-initializer-unifying-batch-2-filesystems.patch
Lock initializer unifying: Filesystems

lock-initializer-unifying-batch-2-video.patch
Lock initializer unifying: Video

lock-initializer-unifying-batch-2-sound.patch
Lock initializer unifying: sound

lock-initializer-cleanup-common-headers.patch
Lock initializer cleanup (common headers)

lock-initializer-cleanup-character-devices.patch
Lock initializer cleanup (character devices)

lock-initializer-cleanup-core.patch
Lock initializer cleanup (Core)

documentation-for-ide-and-cdrom-ioctls.patch
Documentation for IDE and CDROM ioctls

eth1394-module_parm-conversion.patch
eth1394 MODULE_PARM conversion

isapnp-module_param-conversion.patch
isapnp module_param conversion

sr-module_param-conversion.patch
sr module_param conversion

media-video-module_param-conversion.patch
media/video module_param conversion

btaudio-module_param-conversion.patch
btaudio module_param conversion

small-drivers-char-rio-cleanups-fwd.patch
small drivers/char/rio/ cleanups

small-char-generic_serialc-cleanup-fwd.patch
small char/generic_serial.c cleanup

debug_bugverbose-for-i386-fwd.patch
DEBUG_BUGVERBOSE for i386

telephony-ixjc-cleanup-fwd.patch
telephony/ixj.c cleanup

char-cycladesc-remove-unused-code-fwd.patch
char/cyclades.c: remove unused code

oss-ac97-quirk-facility.patch
oss: AC97 quirk facility

oss-ac97-quirk-facility-fix.patch
oss-ac97-quirk-facility fix

ext3-use-generic_open_file-to-fix-possible-preemption-bugs.patch
ext3: use generic_open_file to fix possible preemption bugs

bttv-i2cc-make-two-functions-static.patch
bttv-i2c.c: make two functions static

bttv-riscc-make-some-functions-static.patch
bttv-risc.c: make some functions static

bttv-help-fix.patch
bttv help fix

zoran_driverc-make-zoran_num_formats-static.patch
zoran_driver.c: make zoran_num_formats static

media-video-msp3400c-remove-unused-struct-d1.patch
media/video/msp3400.c: remove unused struct d1

zoran_devicec-make-zr36057_init_vfe-static.patch
zoran_device.c: make zr36057_init_vfe static

drivers-media-video-the-easy-cleanups.patch
drivers/media/video: the easy cleanups

small-ftape-cleanups-fwd.patch
small ftape cleanups

reiser3-cleanups.patch
reiser3 cleanups

cdromc-make-several-functions-static.patch
cdrom.c: make several functions static (fwd)

fs-coda-psdevc-shouldnt-include-lph.patch
fs/coda/psdev.c shouldn't include lp.h

remove-early_param-tests.patch
remove early_param test code

MODULE_PARM-allmod.patch
MODULE_PARM conversions

MODULE_PARM-allyes.patch
MODULE_PARM conversions

fix-typo-in-cdromc.patch
fix typo in cdrom.c

lockd-fix-two-struct-definitions.patch
lockd: fix two struct definitions

small-mca-cleanups-fwd.patch
small MCA cleanups

small-drivers-media-radio-cleanups-fwd.patch
small drivers/media/radio/ cleanups

make-number-of-ramdisks-kconfigurable.patch
make number of ramdisks Kconfigurable

make-number-of-ramdisks-kconfigurable-tidy.patch
make-number-of-ramdisks-kconfigurable-tidy

#2 lore raw
Quoted 6 lines · Arjan van de Ven
Quoted 4 lines · Andrew Morton

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

- Various fixes and cleanups

Quoted 7 lines
Quoted 4 lines

- A decent-sized x86_64 update.

- x86_64 supports a fourth VM zone: ZONE_DMA32. This may affect memory reclaim, but shouldn't.

what is the purpose of such a zone ??

For pages which have a physical address <4G. I assume this was motivated by the lack of an IOMMU on ia32e?

#3 lore raw
Quoted 9 lines · Andrew Morton
Quoted 8 lines · Arjan van de Ven
Quoted 6 lines · Andrew Morton

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

- Various fixes and cleanups

- A decent-sized x86_64 update.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

- x86_64 supports a fourth VM zone: ZONE_DMA32. This may affect memory reclaim, but shouldn't.

what is the purpose of such a zone ??

For pages which have a physical address <4G. I assume this was motivated by the lack of an IOMMU on ia32e?

but there's the swiommu for those... so that can't be it realistically....

Is there code using the zone GFP mask yet ??

#4 lore raw
Quoted 5 lines · Arjan van de Ven
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines

- x86_64 supports a fourth VM zone: ZONE_DMA32. This may affect memory reclaim, but shouldn't.

Quoted 7 lines
Quoted 4 lines
Quoted 1 line

what is the purpose of such a zone ??

For pages which have a physical address <4G. I assume this was motivated by the lack of an IOMMU on ia32e?

but there's the swiommu for those... so that can't be it realistically....

"This helps mainly graphic drivers who really need a lot of memory below the 4GB area. Previous they could only use IOMMU+16MB GFP_DMA, which was not enough memory."

Quoted 1 line

Is there code using the zone GFP mask yet ??

Nope.

#5 lore raw
Quoted 7 lines · Andrew Morton

"This helps mainly graphic drivers who really need a lot of memory below the 4GB area. Previous they could only use IOMMU+16MB GFP_DMA, which was not enough memory."

Quoted 1 line

Is there code using the zone GFP mask yet ??

Nope.

You mean its a private hook for a proprietary graphics driver, which because it is that can't use it anyway ? That sounds dubious to me as policy has always been to avoid such hooks. What other drivers need this
- I've seen people claim aacraid does which is untrue but no others.

Alan

#6 lore raw
Quoted 6 lines · Alan Cox
Quoted 4 lines · Andrew Morton

"This helps mainly graphic drivers who really need a lot of memory below the 4GB area. Previous they could only use IOMMU+16MB GFP_DMA, which was not enough memory."

Quoted 6 lines
Quoted 3 lines
Quoted 1 line

Is there code using the zone GFP mask yet ??

Nope.

You mean its a private hook for a proprietary graphics driver, which because it is that can't use it anyway ?

I wasn't aware that this is what I meant. I dunno what graphics drivers Andi needs it for, and he is away for a couple of weeks. It's an experimental patch, in there for testing.

Quoted 1 line

That sounds dubious to me as policy has always been to avoid such hooks.

I don't know why you're assuming that it is "such a hook". Sticking "gfp_dma32" into google indicates that the applications are quite different.

#7 lore raw
In reply to Andrew Morton
Quoted 2 lines · Andrew Morton

"This helps mainly graphic drivers who really need a lot of memory below the 4GB area.

oh.. it's a hook for the binary nvidia module....
might as well call the patch that then :)

#8 lore raw
In reply to Arjan van de Ven
Quoted 2 lines · Andrew Morton
Quoted 2 lines

For pages which have a physical address <4G. I assume this was motivated by the lack of an IOMMU on ia32e?

Quoted 3 lines · Arjan van de Ven

but there's the swiommu for those... so that can't be it realistically....
Is there code using the zone GFP mask yet ??

ZONE_NORMAL and ZONE_DMA are both too overloaded to handle the 4GB boundary. And it makes a lot of sense on more machine types than x86-64 (e.g. ia64, ia32 and others with 32-bit PCI but no zone representing it).

-- wli

#9 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"William" == William Lee Irwin <[email protected]> writes:

Quoted 2 lines · Andrew Morton
Quoted 2 lines
Quoted 2 lines

For pages which have a physical address <4G. I assume this was motivated by the lack of an IOMMU on ia32e?

William> On Tue, Nov 30, 2004 at 07:25:10PM +0100, Arjan van de Ven

Quoted 2 lines · William> wrote:
Quoted 2 lines

but there's the swiommu for those... so that can't be it realistically.... Is there code using the zone GFP mask yet ??

William> ZONE_NORMAL and ZONE_DMA are both too overloaded to handle William> the 4GB boundary. And it makes a lot of sense on more machine William> types than x86-64 (e.g. ia64, ia32 and others with 32-bit PCI William> but no zone representing it).

Hardware that doesn't require the broken 24 bit ISA zone already uses ZONE_DMA for all 32 bit memory - ie. ia64 does this. It works even on the broken-beyond-repair Intel boxes without an IOMMU.

Cheers,
Jes

#10 lore raw
In reply to Andrew Morton
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Andrew" == Andrew Morton <[email protected]> writes:

Quoted 7 lines · Andrew> Arjan van de Ven <[email protected]> wrote:
Quoted 7 lines · Andrew Morton
Quoted 1 line

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

Quoted 3 lines

- Various fixes and cleanups

Quoted 7 lines
Quoted 7 lines
Quoted 3 lines

- A decent-sized x86_64 update.

- x86_64 supports a fourth VM zone: ZONE_DMA32. This may affect

memory > reclaim, but shouldn't.

what is the purpose of such a zone ??

Andrew> For pages which have a physical address <4G. I assume this Andrew> was motivated by the lack of an IOMMU on ia32e?

If we really need such a special case, wouldn't it be about time we introduced a mask based allocation API instead? There's hardware out there with 31 bit and 40 bit restrictions.

Doing this solely for the sake of nvidia is certainly questionable.

Regards,
Jes

#11 lore raw
In reply to Arjan van de Ven
Quoted 5 lines · Arjan van de Ven
Quoted 4 lines · Andrew Morton

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

- Various fixes and cleanups

Quoted 7 lines
Quoted 4 lines

- A decent-sized x86_64 update.

- x86_64 supports a fourth VM zone: ZONE_DMA32. This may affect memory reclaim, but shouldn't.

what is the purpose of such a zone ??

The purpose is probably to work around 32bit DMA limited devices on the broken iAMD64 systems.

But I think it's a bad idea, x86_64 doesn't use CONFIG_HIGHMEM at all currenly, and it could easily use it for that purpose like in the patch in older RH kernels for ia64.

#12 lore raw
Quoted 6 lines · Christoph Hellwig

The purpose is probably to work around 32bit DMA limited devices on the broken iAMD64 systems.

But I think it's a bad idea, x86_64 doesn't use CONFIG_HIGHMEM at all currenly, and it could easily use it for that purpose like in the patch in older RH kernels for ia64.

We had very bad experiences with zone balancing that configuration and I'm concerned we'd see the same again with such a zone on systems. Particulary since nothing I can find needs such a zone but can use swiommu and the I/O MMU on some AMD boxes.

#13 lore raw
In reply to Andrew Morton
Quoted 1 line

+x86_64-make-irda-devices-are-not-really-isa-devices-not.patch

This one is still as bogus as it was when discussed last time. The irda devices do need ISA DMA, which isn't supported by most architectures that don't have CONFIG_ISA. So we'll allow selecting a driver that's not compilable for the non-PeCee users in the world.

#14 lore raw
In reply to Andrew Morton
Quoted 1 line · Andrew Morton

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

<snip>

Quoted 2 lines

selinux-adds-a-private-inode-operation.patch
selinux: adds a private inode operation

Below is a re-base to 2.6.10-rc2-mm4 of a patch I posted earlier during the original discussion of the above referenced patch. This patch removes the unnecessary code in inode_doinit_with_dentry, replaces the unused inherits flag field (legacy from earlier code) with a private flag field, does not set the SID in selinux_inode_mark_private (leaving it with the unlabeled SID, which will ensure that we notice it if it ever reaches a SELinux permission check), and modifies SELinux permission checking functions and post_create() to test for the private flag and skip SELinux processing in that case. Please include if/when the reiserfs/selinux patchset goes upstream. I know that Chris Wright had raised the question of whether we should be using i_flags to convey the "private" nature of the inode rather than using a security hook, but didn't see any resolution of that issue.

 security/selinux/hooks.c          |   27 ++++++++++++++++-----------
 security/selinux/include/objsec.h |    2 +-
 2 files changed, 17 insertions(+), 12 deletions(-)
security/selinux/hooks.c +16 -11
diff -X /home/sds/dontdiff -rup linux-2.6.10-rc2-mm4/security/selinux/hooks.c linux-2.6.10-rc2-mm4-work/security/selinux/hooks.c
@@ -737,15 +737,6 @@ static int inode_doinit_with_dentry(stru
 	if (isec->initialized)
 		goto out;
 
-	if (opt_dentry && opt_dentry->d_parent && opt_dentry->d_parent->d_inode) {
-		struct inode_security_struct *pisec = opt_dentry->d_parent->d_inode->i_security;
-		if (pisec->inherit) {
-			isec->sid = pisec->sid;
-			isec->initialized = 1;
-			goto out;
-		}
-	}
-
 	down(&isec->sem);
 	hold_sem = 1;
 	if (isec->initialized)
@@ -983,6 +974,9 @@ int inode_has_perm(struct task_struct *t
 	tsec = tsk->security;
 	isec = inode->i_security;
 
+	if (isec->private)
+		return 0;
+
 	if (!adp) {
 		adp = &ad;
 		AVC_AUDIT_DATA_INIT(&ad, FS);
@@ -1064,6 +1058,9 @@ static int may_create(struct inode *dir,
 	dsec = dir->i_security;
 	sbsec = dir->i_sb->s_security;
 
+	if (dsec->private)
+		return 0;
+
 	AVC_AUDIT_DATA_INIT(&ad, FS);
 	ad.u.fs.dentry = dentry;
 
@@ -1111,6 +1108,9 @@ static int may_link(struct inode *dir,
 	dsec = dir->i_security;
 	isec = dentry->d_inode->i_security;
 
+	if (dsec->private)
+		return 0;
+
 	AVC_AUDIT_DATA_INIT(&ad, FS);
 	ad.u.fs.dentry = dentry;
 
@@ -1157,6 +1157,9 @@ static inline int may_rename(struct inod
 	old_is_dir = S_ISDIR(old_dentry->d_inode->i_mode);
 	new_dsec = new_dir->i_security;
 
+	if (old_dsec->private)
+		return 0;
+
 	AVC_AUDIT_DATA_INIT(&ad, FS);
 
 	ad.u.fs.dentry = old_dentry;
@@ -1292,6 +1295,9 @@ static int post_create(struct inode *dir
 	dsec = dir->i_security;
 	sbsec = dir->i_sb->s_security;
 
+	if (dsec->private)
+		return 0;
+
 	inode = dentry->d_inode;
 	if (!inode) {
 		/* Some file system types (e.g. NFS) may not instantiate
@@ -2379,9 +2385,8 @@ static void selinux_inode_mark_private(s
 {
 	struct inode_security_struct *isec = inode->i_security;
 
-	isec->sid = SECINITSID_KERNEL;
+	isec->private = 1;
 	isec->initialized = 1;
-	isec->inherit = 1;
 }
 
 /* file security operations */
security/selinux/include/objsec.h +1 -1
diff -X /home/sds/dontdiff -rup linux-2.6.10-rc2-mm4/security/selinux/include/objsec.h linux-2.6.10-rc2-mm4-work/security/selinux/include/objsec.h
@@ -45,7 +45,7 @@ struct inode_security_struct {
 	u16 sclass;       /* security class of this object */
 	unsigned char initialized;     /* initialization flag */
 	struct semaphore sem;
-	unsigned char inherit;         /* inherit SID from parent entry */
+       unsigned char private;         /* private file, skip checks */
 };
 
 struct file_security_struct {
Signature · 2 lines
Stephen Smalley <[email protected]>
National Security Agency
#15 lore raw
Quoted 6 lines · * Stephen Smalley ([email protected]) wrote:
Quoted 1 line · Andrew Morton

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

<snip>

Quoted 2 lines

selinux-adds-a-private-inode-operation.patch
selinux: adds a private inode operation

Quoted 13 lines

Below is a re-base to 2.6.10-rc2-mm4 of a patch I posted earlier during the original discussion of the above referenced patch. This patch removes the unnecessary code in inode_doinit_with_dentry, replaces the unused inherits flag field (legacy from earlier code) with a private flag field, does not set the SID in selinux_inode_mark_private (leaving it with the unlabeled SID, which will ensure that we notice it if it ever reaches a SELinux permission check), and modifies SELinux permission checking functions and post_create() to test for the private flag and skip SELinux processing in that case. Please include if/when the reiserfs/selinux patchset goes upstream. I know that Chris Wright had raised the question of whether we should be using i_flags to convey the "private" nature of the inode rather than using a security hook, but didn't see any resolution of that issue.

My concerns are that the check has to be duplicated in any module, and that thus far we've tried to keep out fs -> module communication, letting vfs do it. This could at least be fs -> vfs communication, and then either vfs or security framework could check flags and never call into module on fs private objects.

thanks,
-chris

Signature · 1 line
Linux Security Modules     http://lsm.immunix.org     http://lsm.bkbits.net
#16 lore raw
Quoted 5 lines · Chris Wright

My concerns are that the check has to be duplicated in any module, and that thus far we've tried to keep out fs -> module communication, letting vfs do it. This could at least be fs -> vfs communication, and then either vfs or security framework could check flags and never call into module on fs private objects.

(1) an inode beeing private could have much more uses even outside LSM
(2) it's an awfull lot of code where having a flag is really little code
(3) there 's lots of room in the inode flags

I can't find anything that speaks for the messy current implementation

#17 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Christoph Hellwig wrote:

| On Tue, Nov 30, 2004 at 11:29:03AM -0800, Chris Wright wrote:
|
|>My concerns are that the check has to be duplicated in any module,
|>and that thus far we've tried to keep out fs -> module communication,
|>letting vfs do it.  This could at least be fs -> vfs communication,
|>and then either vfs or security framework could check flags and never
|>call into module on fs private objects.
|
|
| (1) an inode beeing private could have much more uses even outside LSM
| (2) it's an awfull lot of code where having a flag is really little code
| (3) there 's lots of room in the inode flags
|
| I can't find anything that speaks for the messy current implementation

I'd agree with this assessment. The original purpose of the private flag was reiserfs-internal to avoid locking issues with xattrs-on-xattrs. SELinux just happened to try to use xattrs-on-xattrs from outside the filesystem. Without being too familiar with selinux, I used the patch because it "just worked."

Such a VFS-level flag could provide the same functionality while allowing me to remove the private flag from reiserfs.

- -Jeff

- --
Jeff Mahoney
SuSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBrNAjLPWxlyuTD7IRAj/lAJ4yZ0zfrDqm+LC4ue8Ph7eA9cQHcgCgpNwX 4q3nWWsm0HOsNvQO9exXvwc=
=1nSR
-----END PGP SIGNATURE-----

#18 lore raw
In reply to Christoph Hellwig
Quoted 7 lines · Christoph Hellwig
Quoted 5 lines · Chris Wright

My concerns are that the check has to be duplicated in any module, and that thus far we've tried to keep out fs -> module communication, letting vfs do it. This could at least be fs -> vfs communication, and then either vfs or security framework could check flags and never call into module on fs private objects.

Quoted 5 lines

(1) an inode beeing private could have much more uses even outside LSM
(2) it's an awfull lot of code where having a flag is really little code
(3) there 's lots of room in the inode flags

I can't find anything that speaks for the messy current implementation

I took some more time to find a more optimal solution. Since ReiserFS is currently the only filesystem that cares about this, it's far easier to keep the whole mess internal to ReiserFS. The issue isn't about the treating of "private" files in reiserfs, but rather just to avoid the looping of xattr calls that selinux would create.

Here's a new patch that replaces the ones being debated.

Since I'm not that familiar with the inner workings of selinux, might someone more familiar verify that the behavior won't break anything? I've done some preliminary testing (creating a filesystem, creating a directory tree, verifying that the appropriate security attributes were created)

-Jeff

-----------------------------------------------------------------------------

Since selinux will call xattr operations on any file accessed, it will attempt to call into the xattr subsystem while accessing the xattr files. This causes a locking loop which will lock the filesystem.

As part of the reiserfs xattr subsystem initialization process, this patch copies the existing inode_operations structs and NULLs out the xattr operations.

When selinux tries to access an internal file, it will see the ->{get,set}xattr operation is NULL and assign a default SID rather than calling into the filesystem again.

reiserfs_mark_inode_private is responsible for the assignment. This happens as part of reiserfs_new_inode, as part of reiserfs_inherit_default_acl or explicitly. As such the assignments of the inode_operations for various types have been moved into reiserfs_new_inode, rather than the create,mknod,mkdir,etc functions. The effective assignment order is unchanged.

fs/reiserfs/inode.c +22 -3
diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/inode.c linux-2.6.9.noxattr/fs/reiserfs/inode.c
@@ -1792,6 +1792,21 @@ int reiserfs_new_inode (struct reiserfs_
 	goto out_inserted_sd;
     }
 
+    if (S_ISREG (inode->i_mode)) {
+	inode->i_op = &reiserfs_file_inode_operations;
+	inode->i_fop = &reiserfs_file_operations;
+	inode->i_mapping->a_ops = &reiserfs_address_space_operations ;
+    } else if (S_ISDIR (inode->i_mode)) {
+	inode->i_op = &reiserfs_dir_inode_operations;
+	inode->i_fop = &reiserfs_dir_operations;
+    } else if (S_ISLNK (inode->i_mode)) {
+	inode->i_op = &reiserfs_symlink_inode_operations;
+	inode->i_mapping->a_ops = &reiserfs_address_space_operations;
+    } else {
+	inode->i_blocks = 0;
+	inode->i_op = &reiserfs_special_inode_operations;
+    }
+
     /* XXX CHECK THIS */
     if (reiserfs_posixacl (inode->i_sb)) {
         retval = reiserfs_inherit_default_acl (dir, dentry, inode);
@@ -1801,9 +1816,13 @@ int reiserfs_new_inode (struct reiserfs_
             journal_end(th, th->t_super, th->t_blocks_allocated);
             goto out_inserted_sd;
         }
-    } else if (inode->i_sb->s_flags & MS_POSIXACL) {
-	reiserfs_warning (inode->i_sb, "ACLs aren't enabled in the fs, "
-			  "but vfs thinks they are!");
+    } else {
+        if (inode->i_sb->s_flags & MS_POSIXACL) {
+	    reiserfs_warning (inode->i_sb, "ACLs aren't enabled in the fs, "
+			      "but vfs thinks they are!");
+        }
+	if (is_reiserfs_priv_object (dir))
+	    reiserfs_mark_inode_private (inode);
     }
 
     insert_inode_hash (inode);
fs/reiserfs/namei.c +1 -12
diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/namei.c linux-2.6.9.noxattr/fs/reiserfs/namei.c
@@ -352,7 +352,7 @@ static struct dentry * reiserfs_lookup (
 
 	/* Propogate the priv_object flag so we know we're in the priv tree */
 	if (is_reiserfs_priv_object (dir))
-	    REISERFS_I(inode)->i_flags |= i_priv_object;
+	    reiserfs_mark_inode_private (inode);
     }
     reiserfs_write_unlock(dir->i_sb);
     if ( retval == IO_ERROR ) {
@@ -616,10 +616,6 @@ static int reiserfs_create (struct inode
         goto out_failed;
     }
 	
-    inode->i_op = &reiserfs_file_inode_operations;
-    inode->i_fop = &reiserfs_file_operations;
-    inode->i_mapping->a_ops = &reiserfs_address_space_operations ;
-
     retval = reiserfs_add_entry (&th, dir, dentry->d_name.name, dentry->d_name.len, 
 				inode, 1/*visible*/);
     if (retval) {
@@ -677,7 +673,6 @@ static int reiserfs_mknod (struct inode 
         goto out_failed;
     }
 
-    inode->i_op = &reiserfs_special_inode_operations;
     init_special_inode(inode, inode->i_mode, rdev) ;
 
     //FIXME: needed for block and char devices only
@@ -751,9 +746,6 @@ static int reiserfs_mkdir (struct inode 
     reiserfs_update_inode_transaction(inode) ;
     reiserfs_update_inode_transaction(dir) ;
 
-    inode->i_op = &reiserfs_dir_inode_operations;
-    inode->i_fop = &reiserfs_dir_operations;
-
     // note, _this_ add_entry will not update dir's stat data
     retval = reiserfs_add_entry (&th, dir, dentry->d_name.name, dentry->d_name.len, 
 				inode, 1/*visible*/);
@@ -1001,9 +993,6 @@ static int reiserfs_symlink (struct inod
     reiserfs_update_inode_transaction(inode) ;
     reiserfs_update_inode_transaction(parent_dir) ;
 
-    inode->i_op = &reiserfs_symlink_inode_operations;
-    inode->i_mapping->a_ops = &reiserfs_address_space_operations;
-
     // must be sure this inode is written with this transaction
     //
     //reiserfs_update_sd (&th, inode, READ_BLOCKS);
fs/reiserfs/xattr_acl.c +1 -1
diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/xattr_acl.c linux-2.6.9.noxattr/fs/reiserfs/xattr_acl.c
@@ -337,7 +337,7 @@ reiserfs_inherit_default_acl (struct ino
      * would be useless since permissions are ignored, and a pain because
      * it introduces locking cycles */
     if (is_reiserfs_priv_object (dir)) {
-        REISERFS_I(inode)->i_flags |= i_priv_object;
+        reiserfs_mark_inode_private (inode);
         goto apply_umask;
     }
 
fs/reiserfs/xattr.c +28 -5
diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/xattr.c linux-2.6.9.noxattr/fs/reiserfs/xattr.c
@@ -181,8 +181,6 @@ open_xa_dir (const struct inode *inode, 
             dput (xadir);
             return ERR_PTR (-ENODATA);
         }
-        /* Newly created object.. Need to mark it private */
-        REISERFS_I(xadir->d_inode)->i_flags |= i_priv_object;
     }
 
     dput (xaroot);
@@ -230,8 +228,6 @@ get_xa_file_dentry (const struct inode *
             dput (xafile);
             goto out;
         }
-        /* Newly created object.. Need to mark it private */
-        REISERFS_I(xafile->d_inode)->i_flags |= i_priv_object;
     }
 
 out:
@@ -1261,6 +1257,32 @@ static struct dentry_operations xattr_lo
     .d_compare = xattr_lookup_poison,
 };
 
+struct inode_operations reiserfs_priv_file_inode_operations;
+struct inode_operations reiserfs_priv_dir_inode_operations;
+struct inode_operations reiserfs_priv_symlink_inode_operations;
+struct inode_operations reiserfs_priv_special_inode_operations;
+
+#define __init_priv_operation(op) 					\
+do {									\
+	memcpy (&reiserfs_priv_##op##_inode_operations,			\
+		&reiserfs_##op##_inode_operations,			\
+                sizeof (struct inode_operations));			\
+        reiserfs_priv_##op##_inode_operations.getxattr = NULL;		\
+        reiserfs_priv_##op##_inode_operations.setxattr = NULL;		\
+        reiserfs_priv_##op##_inode_operations.listxattr = NULL;		\
+        reiserfs_priv_##op##_inode_operations.removexattr = NULL;	\
+} while (0)
+
+static void
+init_priv_operations (void)
+{
+    __init_priv_operation(file);
+    __init_priv_operation(dir);
+
+    /* Technically these never get used, but no harm done */
+    __init_priv_operation(symlink);
+    __init_priv_operation(special);
+}
 
 /* We need to take a copy of the mount flags since things like
  * MS_RDONLY don't get set until *after* we're called.
@@ -1315,8 +1337,9 @@ reiserfs_xattr_init (struct super_block 
         err = PTR_ERR (dentry);
 
       if (!err && dentry) {
+          init_priv_operations();
           s->s_root->d_op = &xattr_lookup_poison_ops;
-          REISERFS_I(dentry->d_inode)->i_flags |= i_priv_object;
+          reiserfs_mark_inode_private (dentry->d_inode);
           REISERFS_SB(s)->priv_root = dentry;
       } else if (!(mount_flags & MS_RDONLY)) { /* xattrs are unavailable */
           /* If we're read-only it just means that the dir hasn't been
include/linux/reiserfs_xattr.h +21 -0
diff -ruNpX dontdiff linux-2.6.9/include/linux/reiserfs_xattr.h linux-2.6.9.noxattr/include/linux/reiserfs_xattr.h
@@ -103,9 +103,30 @@ reiserfs_read_unlock_xattr_i(struct inod
     up_read (&REISERFS_I(inode)->xattr_sem);
 }
 
+extern struct inode_operations reiserfs_priv_file_inode_operations;
+extern struct inode_operations reiserfs_priv_dir_inode_operations;
+extern struct inode_operations reiserfs_priv_symlink_inode_operations;
+extern struct inode_operations reiserfs_priv_special_inode_operations;
+
+static inline void
+reiserfs_mark_inode_private(struct inode *inode)
+{
+    if (S_ISREG (inode->i_mode))
+        inode->i_op = &reiserfs_priv_file_inode_operations;
+    else if (S_ISDIR (inode->i_mode))
+        inode->i_op = &reiserfs_priv_dir_inode_operations;
+    else if (S_ISLNK (inode->i_mode))
+        inode->i_op = &reiserfs_priv_symlink_inode_operations;
+    else
+        inode->i_op = &reiserfs_priv_special_inode_operations;
+
+    REISERFS_I(inode)->i_flags |= i_priv_object;
+}
+
 #else
 
 #define is_reiserfs_priv_object(inode) 0
+#define reiserfs_mark_inode_private(inode)
 #define reiserfs_getxattr NULL
 #define reiserfs_setxattr NULL
 #define reiserfs_listxattr NULL
Signature · 2 lines
Jeff Mahoney
SuSE Labs
#19 lore raw
Quoted 5 lines · * Jeffrey Mahoney ([email protected]) wrote:

I took some more time to find a more optimal solution. Since ReiserFS is currently the only filesystem that cares about this, it's far easier to keep the whole mess internal to ReiserFS. The issue isn't about the treating of "private" files in reiserfs, but rather just to avoid the looping of xattr calls that selinux would create.

This sounds a bit better. BTW, which is the call chain that locks? smth like open->permission->selinux_hook_does_getxattr->reiser_getxattr->open->permission?

<snip>

Quoted 3 lines

As part of the reiserfs xattr subsystem initialization process, this patch copies the existing inode_operations structs and NULLs out the xattr operations.

This seems unecessary, just define the reiserfs_priv_foo structures statically, like other inode ops. As it is, looks like it will get re-run once for each mounted superblock.

thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net

#20 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Chris Wright wrote:

| * Jeffrey Mahoney ([email protected]) wrote:
|
|>I took some more time to find a more optimal solution. Since ReiserFS is
|>currently the only filesystem that cares about this, it's far easier
to keep
|>the whole mess internal to ReiserFS. The issue isn't about the treating of
|>"private" files in reiserfs, but rather just to avoid the looping of xattr
|>calls that selinux would create.
|
|
| This sounds a bit better.  BTW, which is the call chain that locks?

smth like
| open->permission->selinux_hook_does_getxattr->reiser_getxattr->open->permission?

For the most part yes. The locking stops at reiserfs_getxattr when it tries to lock the xattr dir.

|>As part of the reiserfs xattr subsystem initialization process, this patch
|>copies the existing inode_operations structs and NULLs out the xattr
|>operations.
|
|
| This seems unecessary, just define the reiserfs_priv_foo structures
| statically, like other inode ops.  As it is, looks like it will get
| re-run once for each mounted superblock.

Yes, you're absolutely right. The copies would be better placed in reiserfs_xattr_register_handlers, which gets run on module load. I'm ambivalent with respect to copying them at runtime or in the source. The advantage to copying them is that they automatically inherit any changes made and don't need to be considered separately.

- -Jeff

- --
Jeff Mahoney
SuSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBrmusLPWxlyuTD7IRAoPjAJ0d9+QXKmcYg9rM3sCwrgRV2qx8cACeOARi QkHEpWCCcA7DBjvadyXsD30=
=q/Rh
-----END PGP SIGNATURE-----

#21 lore raw
In reply to Chris Wright
Quoted 2 lines · Chris Wright

This sounds a bit better. BTW, which is the call chain that locks? smth like open->permission->selinux_hook_does_getxattr->reiser_getxattr->open->permission?

IIRC, the original deadlock call chain was when SELinux tried to set the security attribute on a newly created file from the post_create hooks. Looked something like (SELinux) post_create -> reiser_setxattr -> ... -> open_xa_dir -> reiserfs_mkdir -> d_instantiate -> selinux_d_instantiate() -> inode_doinit_with_dentry() -> reiser_getxattr. First reported in
http://marc.theaimsgroup.com/?l=linux-kernel&m=108625196416654&w=2, but that only addressed the deadlock issue, not the permission checking problem.

Signature · 2 lines
Stephen Smalley <[email protected]>
National Security Agency
#22 lore raw
In reply to Jeffrey Mahoney
Quoted 5 lines · Jeffrey Mahoney

I took some more time to find a more optimal solution. Since ReiserFS is currently the only filesystem that cares about this, it's far easier to keep the whole mess internal to ReiserFS. The issue isn't about the treating of "private" files in reiserfs, but rather just to avoid the looping of xattr calls that selinux would create.

No. It is also about avoiding applying permission checks to these "private" inodes when reiserfs performs operations on them, e.g. when __get_xa_root() does a lookup_one_len(), there is ultimately a call to permission(inode, MAY_EXEC, nd), which triggers a security hook call, and SELinux will view this as an attempt by the current process to access the private directory. Simply disabling getxattr/setxattr for the private inodes won't change this, and you can't assume that most processes have permission to access the default file context (in fact, in a strict policy, that won't be the case).

Chris' suggestion of exporting this private flag via i_flags and having the VFS and/or security framework skip the security hook calls for such inodes is more reasonable, and should yield the same behavior as that current patchset (just without the extra security hook and the filesystem and SELinux-specific private flags).

Signature · 2 lines
Stephen Smalley <[email protected]>
National Security Agency
#23 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Stephen Smalley wrote:

| On Wed, 2004-12-01 at 18:32, Jeffrey Mahoney wrote:
|
|>I took some more time to find a more optimal solution. Since ReiserFS is
|>currently the only filesystem that cares about this, it's far easier
to keep
|>the whole mess internal to ReiserFS. The issue isn't about the treating of
|>"private" files in reiserfs, but rather just to avoid the looping of xattr
|>calls that selinux would create.
|
|
| No.  It is also about avoiding applying permission checks to these
| "private" inodes when reiserfs performs operations on them, e.g. when
| __get_xa_root() does a lookup_one_len(), there is ultimately a call to
| permission(inode, MAY_EXEC, nd), which triggers a security hook call,
| and SELinux will view this as an attempt by the current process to
| access the private directory.  Simply disabling getxattr/setxattr for
| the private inodes won't change this, and you can't assume that most
| processes have permission to access the default file context (in fact,
| in a strict policy, that won't be the case).
|
| Chris' suggestion of exporting this private flag via i_flags and having
| the VFS and/or security framework skip the security hook calls for such
| inodes is more reasonable, and should yield the same behavior as that
| current patchset (just without the extra security hook and the
| filesystem and SELinux-specific private flags).

Ok, well I have a test version of this up and running. It's ugly, but I don't think any solution to this problem will be pretty. It just hooks into include/linux/security.h so that all the individual callers don't need to be special cased.

However, selinux itself accesses inode lists internally that circumvent this. I believe I caught the major case that causes this, but I'd prefer someone with more intimate knowledge of selinux verify.

Attached are four patches:
01-vfs-private-flag.diff
~ - adds the S_PRIVATE flag and adds use to security 02-vfs-private-selinux.diff
~ -internal inode loop needs IS_PRIVATE test 03-reiserfs-priv-abstract.diff
~ - private inode abstracted to static inline 04-vfs-private-reiserfs.diff
~ - change reiserfs to use S_PRIVATE

- -Jeff

- --
Jeff Mahoney
SuSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBtgsPLPWxlyuTD7IRAm3PAJ9K5lOebus6pY/nkpVQabv9AlXOKwCbBXZw P94N38RrkdOGuWs19Erbj7I=
=VpuN
-----END PGP SIGNATURE-----

From: Jeff Mahoney <[email protected]>
Subject: [PATCH 2/4] selinux: internal inode loop needs IS_PRIVATE test

This patch applies the IS_PRIVATE test to the selinux internal inode loop.

security/selinux/hooks.c +2 -1
diff -ruNpX dontdiff linux-2.6.9.base/security/selinux/hooks.c linux-2.6.9.private/security/selinux/hooks.c
@@ -595,7 +595,8 @@ next_inode:
 		spin_unlock(&sbsec->isec_lock);
 		inode = igrab(inode);
 		if (inode) {
-			inode_doinit(inode);
+			if (!IS_PRIVATE (inode))
+				inode_doinit(inode);
 			iput(inode);
 		}
 		spin_lock(&sbsec->isec_lock);

From: Jeff Mahoney <[email protected]>
Subject: [PATCH 1/4] vfs: adds the S_PRIVATE flag and adds use to security

This patch adds an S_PRIVATE flag to inode->i_flags to mark an inode as filesystem-internal. As such, it should be excepted from the security infrastructure to allow the filesystem to perform its own access control.

include/linux/fs.h +2 -0
diff -ruNpX dontdiff linux-2.6.9.base/include/linux/fs.h linux-2.6.9.private/include/linux/fs.h
@@ -146,6 +146,7 @@ extern int leases_enable, dir_notify_ena
 #define S_DIRSYNC	64	/* Directory modifications are synchronous */
 #define S_NOCMTIME	128	/* Do not update file c/mtime */
 #define S_SWAPFILE	256	/* Do not truncate: swapon got its bmaps */
+#define S_PRIVATE	512	/* Inode is fs-internal */
 
 /*
  * Note that nosuid etc flags are inode-specific: setting some file-system
@@ -180,6 +181,7 @@ extern int leases_enable, dir_notify_ena
 #define IS_DEADDIR(inode)	((inode)->i_flags & S_DEAD)
 #define IS_NOCMTIME(inode)	((inode)->i_flags & S_NOCMTIME)
 #define IS_SWAPFILE(inode)	((inode)->i_flags & S_SWAPFILE)
+#define IS_PRIVATE(inode)	((inode)->i_flags & S_PRIVATE)
 
 /* the read-only stuff doesn't really belong here, but any other place is
    probably as bad and I don't want to create yet another include file. */
include/linux/security.h +64 -0

242 lines not on this page · raw message

From: Jeff Mahoney <[email protected]>
Subject: [PATCH 3/4] reiserfs: private inode abstracted to static inline

This patch moves the assignment of i_priv_object to a static inline. This is in preparation for selinux support in reiserfs.

fs/reiserfs/inode.c +2 -0
diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/inode.c linux-2.6.9.base/fs/reiserfs/inode.c
@@ -1804,6 +1804,8 @@ int reiserfs_new_inode (struct reiserfs_
     } else if (inode->i_sb->s_flags & MS_POSIXACL) {
 	reiserfs_warning (inode->i_sb, "ACLs aren't enabled in the fs, "
 			  "but vfs thinks they are!");
+    } else if (is_reiserfs_priv_object (dir)) {
+	reiserfs_mark_inode_private (inode);
     }
 
     insert_inode_hash (inode);
fs/reiserfs/namei.c +1 -1
diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/namei.c linux-2.6.9.base/fs/reiserfs/namei.c
@@ -352,7 +352,7 @@ static struct dentry * reiserfs_lookup (
 
 	/* Propogate the priv_object flag so we know we're in the priv tree */
 	if (is_reiserfs_priv_object (dir))
-	    REISERFS_I(inode)->i_flags |= i_priv_object;
+	    reiserfs_mark_inode_private (inode);
     }
     reiserfs_write_unlock(dir->i_sb);
     if ( retval == IO_ERROR ) {
fs/reiserfs/xattr_acl.c +1 -1
diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/xattr_acl.c linux-2.6.9.base/fs/reiserfs/xattr_acl.c
@@ -337,7 +337,7 @@ reiserfs_inherit_default_acl (struct ino
      * would be useless since permissions are ignored, and a pain because
      * it introduces locking cycles */
     if (is_reiserfs_priv_object (dir)) {
-        REISERFS_I(inode)->i_flags |= i_priv_object;
+        reiserfs_mark_inode_private (inode);
         goto apply_umask;
     }
 
fs/reiserfs/xattr.c +1 -5
diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/xattr.c linux-2.6.9.base/fs/reiserfs/xattr.c
@@ -181,8 +181,6 @@ open_xa_dir (const struct inode *inode, 
             dput (xadir);
             return ERR_PTR (-ENODATA);
         }
-        /* Newly created object.. Need to mark it private */
-        REISERFS_I(xadir->d_inode)->i_flags |= i_priv_object;
     }
 
     dput (xaroot);
@@ -230,8 +228,6 @@ get_xa_file_dentry (const struct inode *
             dput (xafile);
             goto out;
         }
-        /* Newly created object.. Need to mark it private */
-        REISERFS_I(xafile->d_inode)->i_flags |= i_priv_object;
     }
 
 out:
@@ -1316,7 +1312,7 @@ reiserfs_xattr_init (struct super_block 
 
       if (!err && dentry) {
           s->s_root->d_op = &xattr_lookup_poison_ops;
-          REISERFS_I(dentry->d_inode)->i_flags |= i_priv_object;
+          reiserfs_mark_inode_private (dentry->d_inode);
           REISERFS_SB(s)->priv_root = dentry;
       } else if (!(mount_flags & MS_RDONLY)) { /* xattrs are unavailable */
           /* If we're read-only it just means that the dir hasn't been
include/linux/reiserfs_xattr.h +6 -0
diff -ruNpX dontdiff linux-2.6.9/include/linux/reiserfs_xattr.h linux-2.6.9.base/include/linux/reiserfs_xattr.h
@@ -103,6 +103,12 @@ reiserfs_read_unlock_xattr_i(struct inod
     up_read (&REISERFS_I(inode)->xattr_sem);
 }
 
+static inline void
+reiserfs_mark_inode_private(struct inode *inode)
+{
+    REISERFS_I(inode)->i_flags |= i_priv_object;
+}
+
 #else
 
 #define is_reiserfs_priv_object(inode) 0

From: Jeff Mahoney <[email protected]>
Subject: [PATCH 4/4] reiserfs: change reiserfs to use S_PRIVATE

This patch changes reiserfs to use the VFS level private inode flags, and eliminates the old reiserfs private inode flag.

include/linux/reiserfs_xattr.h +2 -2
diff -ruNpX dontdiff linux-2.6.9.base/include/linux/reiserfs_xattr.h linux-2.6.9.private/include/linux/reiserfs_xattr.h
@@ -31,7 +31,7 @@ struct reiserfs_xattr_handler {
 
 
 #ifdef CONFIG_REISERFS_FS_XATTR
-#define is_reiserfs_priv_object(inode) (REISERFS_I(inode)->i_flags & i_priv_object)
+#define is_reiserfs_priv_object(inode) IS_PRIVATE(inode)
 #define has_xattr_dir(inode) (REISERFS_I(inode)->i_flags & i_has_xattr_dir)
 ssize_t reiserfs_getxattr (struct dentry *dentry, const char *name,
 			   void *buffer, size_t size);
@@ -106,7 +106,7 @@ reiserfs_read_unlock_xattr_i(struct inod
 static inline void
 reiserfs_mark_inode_private(struct inode *inode)
 {
-    REISERFS_I(inode)->i_flags |= i_priv_object;
+    inode->i_flags |= S_PRIVATE;
 }
 
 #else
include/linux/reiserfs_fs_i.h +2 -3
diff -ruNpX dontdiff linux-2.6.9.base/include/linux/reiserfs_fs_i.h linux-2.6.9.private/include/linux/reiserfs_fs_i.h
@@ -23,9 +23,8 @@ typedef enum {
       space on crash with some files open, but unlinked. */
     i_link_saved_unlink_mask   =  0x0010,
     i_link_saved_truncate_mask =  0x0020,
-    i_priv_object              =  0x0080,
-    i_has_xattr_dir            =  0x0100,
-    i_data_log	               =  0x0200,
+    i_has_xattr_dir            =  0x0040,
+    i_data_log	               =  0x0080,
 } reiserfs_inode_flags;
 
 
#24 lore raw
Quoted 3 lines · Jeff Mahoney

However, selinux itself accesses inode lists internally that circumvent this. I believe I caught the major case that causes this, but I'd prefer someone with more intimate knowledge of selinux verify.

inodes are only added to the list (prior to superblock security initialization, e.g. before initial policy load or during get_sb) by inode_doinit_with_dentry, which in turn is called from selinux_d_instantiate. So if you've marked the inode private prior to the d_instantiate call on it, and changed security_d_instantiate to not call the security module for private inodes, how would a private inode ever get into that list?

Signature · 2 lines
Stephen Smalley <[email protected]>
National Security Agency
#25 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Stephen Smalley wrote:

| On Tue, 2004-12-07 at 14:57, Jeff Mahoney wrote:
|
|>However, selinux itself accesses inode lists internally that circumvent
|>this. I believe I caught the major case that causes this, but I'd prefer
|>someone with more intimate knowledge of selinux verify.
|
|
| inodes are only added to the list (prior to superblock security
| initialization, e.g. before initial policy load or during get_sb) by
| inode_doinit_with_dentry, which in turn is called from
| selinux_d_instantiate.  So if you've marked the inode private prior to
| the d_instantiate call on it, and changed security_d_instantiate to not
| call the security module for private inodes, how would a private inode
| ever get into that list?

In general, this is true. However, there's a case where it's not. During the initial filesystem mount, the .reiserfs_priv directory is created by reiserfs_xattr_init(). This directory becomes the root of the private inode tree, but there is no way to mark it as private until after mkdir returns. After it returns, d_instantiate has already been called.

Therefore, on the first read-write mount, the inode associated with .reiserfs_priv will always be on that list. There are a few methods that could be added to set the inode private before the d_instantiate, but they're all pretty gross. Basically, of all the potential solutions, checking IS_PRIVATE in that loop is the simplest.

- -Jeff

- --
Jeff Mahoney
SuSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBtjLdLPWxlyuTD7IRAp+MAJ9bJy32bIcE/uVVdo+T0bNYIWJoLgCfQNyh pKnLBMAwi3yIeQE2JXlHIKA=
=0Yc7
-----END PGP SIGNATURE-----

#26 lore raw
Quoted 11 lines · Jeff Mahoney

In general, this is true. However, there's a case where it's not. During the initial filesystem mount, the .reiserfs_priv directory is created by reiserfs_xattr_init(). This directory becomes the root of the private inode tree, but there is no way to mark it as private until after mkdir returns. After it returns, d_instantiate has already been called.

Therefore, on the first read-write mount, the inode associated with .reiserfs_priv will always be on that list. There are a few methods that could be added to set the inode private before the d_instantiate, but they're all pretty gross. Basically, of all the potential solutions, checking IS_PRIVATE in that loop is the simplest.

Ok, thanks for clarifying. No objection to the patch.

Signature · 2 lines
Stephen Smalley <[email protected]>
National Security Agency
#27 lore raw

Re: 2.6.10-rc2-mm4 - cifs.ko needs unknown symbol CIFSSMBSetPosixACL

In reply to Andrew Morton

WARNING: /lib/modules/2.6.10-rc2-mm4/kernel/fs/cifs/cifs.ko needs unknown symbol CIFSSMBSetPosixACL

Either it is really missing or a dependecy is not declared somewhere.

I also get the following from the nvidia binary module,I should try the latest though.

WARNING: /lib/modules/2.6.10-rc2-mm4/kernel/drivers/video/nvidia.ko needs unknown symbol pgd_offset_k_is_obsolete
WARNING: /lib/modules/2.6.10-rc2-mm4/kernel/drivers/video/nvidia.ko needs unknown symbol pgd_offset_is_obsolete
WARNING: /lib/modules/2.6.10-rc2-mm4/kernel/drivers/video/nvidia.ko needs unknown symbol remap_page_range

Signature · 2 lines
Eyal Lebedinsky ([email protected]) <http://samba.org/eyal/>
	If attaching .zip rename to .dat
#28 lore raw

Re: 2.6.10-rc2-mm4 - cifs.ko needs unknown symbol CIFSSMBSetPosixACL

Quoted 4 lines · Eyal Lebedinsky

WARNING: /lib/modules/2.6.10-rc2-mm4/kernel/fs/cifs/cifs.ko needs unknown symbol CIFSSMBSetPosixACL

Either it is really missing or a dependecy is not declared somewhere.

It looks like there's a slipup in bk-cifs.patch. If you enable CONFIG_CIFS_POSIX it'll probably link OK.

Quoted 4 lines

I also get the following from the nvidia binary module,I should try the latest though.

WARNING: /lib/modules/2.6.10-rc2-mm4/kernel/drivers/video/nvidia.ko needs unknown symbol pgd_offset_k_is_obsolete
WARNING: /lib/modules/2.6.10-rc2-mm4/kernel/drivers/video/nvidia.ko needs unknown symbol pgd_offset_is_obsolete

Looks like the nvidia wrapper will need updating if/when we merge Andi's 4-level pagetable implementation.

Quoted 1 line

WARNING: /lib/modules/2.6.10-rc2-mm4/kernel/drivers/video/nvidia.ko needs unknown symbol remap_page_range

remap_page_range() doesn't exist in -mm. It does (and shall continue to) exist in Linus's tree. Reverting for-mm-only-remove-remap_page_range-completely.patch will fix this one up.

#29 lore raw
In reply to Andrew Morton
Quoted 3 lines · Andrew Morton

+x86_64-experimental-4gb-dma-zone.patch

Add a fourth memory zone on x86_64: ZONE_DMA32

Andi,
I think you made a small mistake in this patch. There should be no
need to modify ZONES_SHIFT or MAX_ZONES_SHIFT for the change you wish to make, since 4 zones (0..3) still fit into 2 bits.

Also, while building a kernel, I hit an error due to this patch:
arch/i386/kernel/srat.c:line #142.

The function looks ok to my untrained eyes, but I'm not sure. I'm building a test kernel with the attached patch applied and I'll let you know if it barfs.

-Matt

arch/i386/kernel/srat.c +1 -1
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.10-rc2-mm4/arch/i386/kernel/srat.c linux-2.6.10-rc2-mm4-MAX_NR_ZONES-fixlet/arch/i386/kernel/srat.c
@@ -139,7 +139,7 @@ static void __init parse_memory_affinity
 }
 
 #if MAX_NR_ZONES != 3
-#error "MAX_NR_ZONES != 3, chunk_to_zone requires review"
+#warning "MAX_NR_ZONES != 3, chunk_to_zone requires review"
 #endif
 /* Take a chunk of pages from page frame cstart to cend and count the number
  * of pages in each zone, returned via zones[].
include/linux/mmzone.h +5 -5
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.10-rc2-mm4/include/linux/mmzone.h linux-2.6.10-rc2-mm4-MAX_NR_ZONES-fixlet/include/linux/mmzone.h
@@ -68,7 +68,7 @@ struct per_cpu_pageset {
 #define ZONE_HIGHMEM		3
 
 #define MAX_NR_ZONES		4	/* Sync this with ZONES_SHIFT */
-#define ZONES_SHIFT		3	/* ceil(log2(MAX_NR_ZONES)) */
+#define ZONES_SHIFT		2	/* ceil(log2(MAX_NR_ZONES)) */
 
 
 /*
@@ -101,7 +101,7 @@ struct per_cpu_pageset {
 
 /*
  * On machines where it is needed (eg PCs) we divide physical memory
- * into multiple physical zones. On a PC we have 3 zones:
+ * into multiple physical zones. On a PC we have 4 zones:
  *
  * ZONE_DMA	  < 16 MB	ISA DMA capable memory
  * ZONE_DMA32	     0 MB 	Empty
@@ -393,7 +393,7 @@ extern struct pglist_data contig_page_da
 #if BITS_PER_LONG == 32 || defined(ARCH_HAS_ATOMIC_UNSIGNED)
 /*
  * with 32 bit page->flags field, we reserve 8 bits for node/zone info.
- * there are 3 zones (2 bits) and this leaves 8-2=6 bits for nodes.
+ * there are 4 zones (2 bits) and this leaves 8-2=6 bits for nodes.
  */
 #define MAX_NODES_SHIFT		6
 #elif BITS_PER_LONG == 64
@@ -409,8 +409,8 @@ extern struct pglist_data contig_page_da
 #error NODES_SHIFT > MAX_NODES_SHIFT
 #endif
 
-/* There are currently 3 zones: DMA, Normal & Highmem, thus we need 2 bits */
-#define MAX_ZONES_SHIFT		3
+/* There are currently 4 zones: DMA, DMA32, Normal & Highmem, thus we need 2 bits */
+#define MAX_ZONES_SHIFT		2
 
 #if ZONES_SHIFT > MAX_ZONES_SHIFT
 #error ZONES_SHIFT > MAX_ZONES_SHIFT
#30 lore raw
Quoted 9 lines · Matthew Dobson
Quoted 3 lines · Andrew Morton

+x86_64-experimental-4gb-dma-zone.patch

Add a fourth memory zone on x86_64: ZONE_DMA32

Andi,
I think you made a small mistake in this patch. There should be no
need to modify ZONES_SHIFT or MAX_ZONES_SHIFT for the change you wish to make, since 4 zones (0..3) still fit into 2 bits.

Right yes. Thanks.

-Andi

#31 lore raw

Re: 2.6.10-rc2-mm4 - cifs.ko needs unknown symbol CIFSSMBSetPosixACL

In reply to Andrew Morton

Forgot to say that I have:

CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
CONFIG_CIFS_XATTR=y
# CONFIG_CIFS_POSIX is not set

Signature · 2 lines
Eyal Lebedinsky ([email protected]) <http://samba.org/eyal/>
	If attaching .zip rename to .dat
#32 lore raw
In reply to Andrew Morton
Quoted 6 lines

...
All 618 patches:
...
add-acpi-based-floppy-controller-enumeration.patch
Add ACPI-based floppy controller enumeration.
...

As far as I understood the discussion, this patch should be dropped.

cu
Adrian

Signature · 4 lines
       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed
#33 lore raw
Quoted 9 lines · Adrian Bunk
Quoted 6 lines

...
All 618 patches:
...
add-acpi-based-floppy-controller-enumeration.patch
Add ACPI-based floppy controller enumeration.
...

As far as I understood the discussion, this patch should be dropped.

Does this patch help or hinder operation on laptops with external pluggable floppies? And why wouldn't ACPI be a good thing here?

Signature · 3 lines
   -bill davidsen ([email protected])
"The secret to procrastination is to put things off until the
 last possible moment - but no longer"  -me
#34 lore raw
In reply to Adrian Bunk
Quoted 4 lines · Adrian Bunk
Quoted 2 lines

add-acpi-based-floppy-controller-enumeration.patch
Add ACPI-based floppy controller enumeration.

As far as I understood the discussion, this patch should be dropped.

As I understand it, Len & Linus have figured out how to fiddle with ELCR[1] in such a way that when ACPI disables a PCI link device that happens to be on IRQ6, the ELCR polarity doesn't get screwed up. So the floppy driver can still blindly probe for its device without getting an interrupt storm.

But the BIOS is still telling the OS that there's no floppy controller, and Linux still isn't listening. In the case of floppy, maybe that's OK, because all arches that support floppy seem to make it safe to do blind probing.

But in the case of i8042, IDE, and IPMI, I think we definitely *should* do either ACPI or PNP-ACPI enumeration. These devices are all optional on ia64, and at least on HP hardware, the only reason we configure the box to allow blind probing is so these deaf drivers continue to work.

[1] http://linux.bkbits.net:8080/linux-2.5/cset%4041a2c479tEbbKs1AxXHrR-LgHzPXzA

#35 lore raw

Re: 2.6.10-rc2-mm4: NUMA-related oops on dual-Opteron

In reply to Andrew Morton
Quoted 2 lines · Andrew Morton

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

Quoted 4 lines

- Various fixes and cleanups

- A decent-sized x86_64 update.

It oopses for me at startup on a dual-Opteron box w/ NUMA (Tyan Thunder K8W):

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU 0(1) -> Node 0

Unable to handle kernel paging request at ffffffffd595d4ce RIP:
<ffffffff8052ae37>{numa_add_cpu+7}
PML4 103027 PGD 2070b067 PMD 0
Oops: 0000 [1] SMP
CPU 0
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.10-rc2-mm4
RIP: 0010:[<ffffffff8052ae37>] <ffffffff8052ae37>{numa_add_cpu+7}
RSP: 0018:ffffffff8051bf68  EFLAGS: 00010206
RAX: 0000000055554f12 RBX: 0000000000000000 RCX: 0000000000000411
RDX: 0000000000000000 RSI: 0000000000000410 RDI: 0000000055554f12
RBP: 5555555555554f12 R08: 0000000000000000 R09: 0000000000000005
R10: 0000000000000000 R11: 0000000000000010 R12: ffffffff80100150
R13: 00000000ffffffff R14: 0000ffffffff8010 R15: ffffffff8051bfb0
FS:  0000000000000000(0000) GS:ffffffff80514100(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: ffffffffd595d4ce CR3: 0000000000101000 CR4: 00000000000006e0
Process swapper (pid: 0, threadinfo ffffffff8051a000, task ffffffff80401e40)
Stack: ffffffff80521b63 0000000000000881 0000000000000881 ffffffff80401e40
       ffffffff8051c74b ffffffff804c93e0 ffffffff8051c288 0000000000000000
       0000000000090000 80108e0000100150
Call Trace:<ffffffff80521b63>{ide

That's all I could get from the serial console.

The .config is available at:
http://www.sisk.pl/kernel/041201/2.6.10-rc2-mm4-AMD64-NUMA.config

Please let me know if you need more information.

Greets,
RJW

Signature · 3 lines
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"
#36 lore raw

PATCH 1/1 make gconfig work with gtk-2.4

In reply to Andrew Morton

Hi,

I need this to make gconfig work under gtk-2.4. Without this, it just coredumps. There is some problem with pixmap creation/usage from XPM in the way it is done in gconf, so I just added some stock icons. It is even prettier..;)

Could someone test this still works on gtk-2.0 or 2.2 ?

Changes:

- change the wiget class 'button' in glade files to something known to glade (GtkToolButton)
- use 'stock-id' property for toolbar buttons instead of "stock_pixmap"
- change unknown signal "pressed" to "clicked"
- removed unused xpms
- remove manual setting of icons in gconf.c

Here it goes:

scripts/kconfig/gconf.glade renamed from scripts/kconfig/gconf.glade.orig +21 -19
@@ -310,13 +310,13 @@
 	      <property name="tooltips">True</property>
 
 	      <child>
-		<widget class="button" id="button1">
+		<widget class="GtkToolButton" id="button1">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Goes up of one level (single view)</property>
 		  <property name="label" translatable="yes">Back</property>
 		  <property name="use_underline">True</property>
-		  <property name="stock_pixmap">gtk-undo</property>
-		  <signal name="pressed" handler="on_back_pressed"/>
+		  <property name="stock-id">gtk-undo</property>
+		  <signal name="clicked" handler="on_back_pressed"/>
 		</widget>
 	      </child>
 
@@ -327,24 +327,24 @@
 	      </child>
 
 	      <child>
-		<widget class="button" id="button2">
+		<widget class="GtkToolButton" id="button2">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Load a config file</property>
 		  <property name="label" translatable="yes">Load</property>
 		  <property name="use_underline">True</property>
-		  <property name="stock_pixmap">gtk-open</property>
-		  <signal name="pressed" handler="on_load_pressed"/>
+		  <property name="stock-id">gtk-open</property>
+		  <signal name="clicked" handler="on_load_pressed"/>
 		</widget>
 	      </child>
 
 	      <child>
-		<widget class="button" id="button3">
+		<widget class="GtkToolButton" id="button3">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Save a config file</property>
 		  <property name="label" translatable="yes">Save</property>
 		  <property name="use_underline">True</property>
-		  <property name="stock_pixmap">gtk-save</property>
-		  <signal name="pressed" handler="on_save_pressed"/>
+		  <property name="stock-id">gtk-save</property>
+		  <signal name="clicked" handler="on_save_pressed"/>
 		</widget>
 	      </child>
 
@@ -355,34 +355,34 @@
 	      </child>
 
 	      <child>
-		<widget class="button" id="button4">
+		<widget class="GtkToolButton" id="button4">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Single view</property>
 		  <property name="label" translatable="yes">Single</property>
 		  <property name="use_underline">True</property>
-		  <property name="stock_pixmap">gtk-missing-image</property>
+		  <property name="stock-id">gtk-indent</property>
 		  <signal name="clicked" handler="on_single_clicked" last_modification_time="Sun, 12 Jan 2003 14:28:39 GMT"/>
 		</widget>
 	      </child>
 
 	      <child>
-		<widget class="button" id="button5">
+		<widget class="GtkToolButton" id="button5">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Split view</property>
 		  <property name="label" translatable="yes">Split</property>
 		  <property name="use_underline">True</property>
-		  <property name="stock_pixmap">gtk-missing-image</property>
+		  <property name="stock-id">gtk-copy</property>
 		  <signal name="clicked" handler="on_split_clicked" last_modification_time="Sun, 12 Jan 2003 14:28:45 GMT"/>
 		</widget>
 	      </child>
 
 	      <child>
-		<widget class="button" id="button6">
+		<widget class="GtkToolButton" id="button6">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Full view</property>
 		  <property name="label" translatable="yes">Full</property>
 		  <property name="use_underline">True</property>
-		  <property name="stock_pixmap">gtk-missing-image</property>
+		  <property name="stock-id">gtk-justify-left</property>
 		  <signal name="clicked" handler="on_full_clicked" last_modification_time="Sun, 12 Jan 2003 14:28:50 GMT"/>
 		</widget>
 	      </child>
@@ -394,22 +394,24 @@
 	      </child>
 
 	      <child>
-		<widget class="button" id="button7">
+		<widget class="GtkToolButton" id="button7">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Collapse the whole tree in the right frame</property>
 		  <property name="label" translatable="yes">Collapse</property>
 		  <property name="use_underline">True</property>
-		  <signal name="pressed" handler="on_collapse_pressed"/>
+		  <property name="stock-id">gtk-zoom-out</property>
+		  <signal name="clicked" handler="on_collapse_pressed"/>
 		</widget>
 	      </child>
 
 	      <child>
-		<widget class="button" id="button8">
+		<widget class="GtkToolButton" id="button8">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Expand the whole tree in the right frame</property>
 		  <property name="label" translatable="yes">Expand</property>
 		  <property name="use_underline">True</property>
-		  <signal name="pressed" handler="on_expand_pressed"/>
+		  <property name="stock-id">gtk-zoom-in</property>
+		  <signal name="clicked" handler="on_expand_pressed"/>
 		</widget>
 	      </child>
 	    </widget>
scripts/kconfig/images.c renamed from scripts/kconfig/images.c.orig +0 -288

300 lines not on this page · raw message

scripts/kconfig/gconf.c renamed from scripts/kconfig/gconf.c.orig +0 -32
@@ -187,8 +187,6 @@
 	GtkWidget *widget;
 	GtkTextBuffer *txtbuf;
 	char title[256];
-	GdkPixmap *pixmap;
-	GdkBitmap *mask;
 	GtkStyle *style;
 
 	xml = glade_xml_new(glade_file, "window1", NULL);
@@ -221,36 +219,6 @@
 	style = gtk_widget_get_style(main_wnd);
 	widget = glade_xml_get_widget(xml, "toolbar1");
 
-	pixmap = gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-					      &style->bg[GTK_STATE_NORMAL],
-					      (gchar **) xpm_single_view);
-	gtk_image_set_from_pixmap(GTK_IMAGE
-				  (((GtkToolbarChild
-				     *) (g_list_nth(GTK_TOOLBAR(widget)->
-						    children,
-						    5)->data))->icon),
-				  pixmap, mask);
-	pixmap =
-	    gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-					 &style->bg[GTK_STATE_NORMAL],
-					 (gchar **) xpm_split_view);
-	gtk_image_set_from_pixmap(GTK_IMAGE
-				  (((GtkToolbarChild
-				     *) (g_list_nth(GTK_TOOLBAR(widget)->
-						    children,
-						    6)->data))->icon),
-				  pixmap, mask);
-	pixmap =
-	    gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-					 &style->bg[GTK_STATE_NORMAL],
-					 (gchar **) xpm_tree_view);
-	gtk_image_set_from_pixmap(GTK_IMAGE
-				  (((GtkToolbarChild
-				     *) (g_list_nth(GTK_TOOLBAR(widget)->
-						    children,
-						    7)->data))->icon),
-				  pixmap, mask);
-
 	switch (view_mode) {
 	case SINGLE_VIEW:
 		widget = glade_xml_get_widget(xml, "button4");

--
J.A. Magallon <jamagallon()able!es> \ Software is like sex:
werewolf!able!es \ It's better when it's free
Mandrakelinux release 10.2 (Cooker) for i586
Linux 2.6.10-rc2-jam4 (gcc 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk)) #2

#37 lore raw

Re: [PATCH] make gconfig work with gtk-2.4

Quoted 6 lines · J.A. Magallon

I need this to make gconfig work under gtk-2.4. Without this, it just
coredumps. There is some problem with pixmap creation/usage from XPM in the way it is done in gconf, so I just added some stock icons. It is even prettier..;)

Could someone test this still works on gtk-2.0 or 2.2 ?

Seems to work OK here with gtk-1.2 and gtk-2.0.

1.2 spews lots of:

(gconf:27745): GLib-GObject-WARNING **: gobject.c:1002:g_object_set_property(): object class GtkCellRendererToggle' has no property named inconsistent'

(gconf:27745): GLib-GObject-WARNING **: gobject.c:1002:g_object_set_property(): object class GtkCellRendererToggle' has no property named inconsistent'

(gconf:27745): GLib-GObject-WARNING **: gobject.c:1002:g_object_set_property(): object class GtkCellRendererToggle' has no property named inconsistent'

and 2.0 whines a bit:

(gconf:1484): libglade-WARNING **: unknown widget class 'GtkToolButton'

(gconf:1484): libglade-WARNING **: unknown widget class 'GtkToolButton'

(gconf:1484): libglade-WARNING **: unknown widget class 'GtkToolButton'

(gconf:1484): libglade-WARNING **: unknown widget class 'GtkToolButton'

(gconf:1484): libglade-WARNING **: unknown widget class 'GtkToolButton'

(gconf:1484): libglade-WARNING **: unknown widget class 'GtkToolButton'

(gconf:1484): libglade-WARNING **: unknown widget class 'GtkToolButton'

(gconf:1484): libglade-WARNING **: unknown widget class 'GtkToolButton'

(gconf:1484): GLib-GObject-WARNING **: gsignal.c:1893: signal clicked' is invalid for instance 0x80be3f8'

(gconf:1484): GLib-GObject-WARNING **: gsignal.c:1893: signal clicked' is invalid for instance 0x80be238'

(gconf:1484): GLib-GObject-WARNING **: gsignal.c:1893: signal clicked' is invalid for instance 0x80be388'

(gconf:1484): GLib-GObject-WARNING **: gsignal.c:1893: signal clicked' is invalid for instance 0x80be468'

(gconf:1484): GLib-GObject-WARNING **: gsignal.c:1893: signal clicked' is invalid for instance 0x80be4d8'

(gconf:1484): GLib-GObject-WARNING **: gsignal.c:1893: signal clicked' is invalid for instance 0x80be2a8'

(gconf:1484): GLib-GObject-WARNING **: gsignal.c:1893: signal clicked' is invalid for instance 0x80be318'

(gconf:1484): GLib-GObject-WARNING **: gsignal.c:1893: signal clicked' is invalid for instance 0x80be1c8'

(gconf:1484): GLib-GObject-WARNING **: invalid cast from GtkLabel' to GtkButton'

(gconf:1484): Gtk-CRITICAL **: file gtkbutton.c: line 553 (gtk_button_clicked): assertion `GTK_IS_BUTTON (button)' failed

#39 lore raw

Re: [PATCH] make gconfig work with gtk-2.4

Quoted 8 lines · Roman Zippel

Hi,

Quoted 1 line · J.A. Magallon

- removed unused xpms

Did you test xconfig?

Err, no, i don't have qt.
A quick grep says 'forget that part of the patch'.

Sorry.

--
J.A. Magallon <jamagallon()able!es> \ Software is like sex:
werewolf!able!es \ It's better when it's free
Mandrakelinux release 10.2 (Cooker) for i586
Linux 2.6.10-rc2-jam4 (gcc 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk)) #2

#40 lore raw

PATCH 1/1 fix Kconfig typos and missing select CRYPTO (was: 2.6.10-rc2-mm4)

In reply to Andrew Morton
Quoted 1 line · Andrew Morton

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

CC [M] drivers/net/wireless/hostap/hostap_crypt_wep.o
drivers/net/wireless/hostap/hostap_crypt_wep.c:24:2: #error CONFIG_CRYPTO is required to build this module. make[4]: *** [drivers/net/wireless/hostap/hostap_crypt_wep.o] Error 1
make[3]: *** [drivers/net/wireless/hostap] Error 2
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2

Here's a patchlet that fixes some Kconfig typos and adds missing select CRYPTO for each hostap_crypt_* option.

Signature · 1 line
Joshua Kwan
drivers/net/wireless/hostap/Kconfig renamed from drivers/net/wireless/hostap/Kconfig~ +6 -3
@@ -25,29 +25,32 @@
 config HOSTAP_WEP
 	tristate "IEEE 802.11 WEP encryption"
 	depends on HOSTAP
+	select CRYPTO
 	---help---
 	Software implementation of IEEE 802.11 WEP encryption.
 
 	This can be compiled as a modules and it will be called
-	"hostap_cryp_wep.ko".
+	"hostap_crypt_wep.ko".
 
 config HOSTAP_TKIP
 	tristate "IEEE 802.11 TKIP encryption"
 	depends on HOSTAP
+	select CRYPTO
 	---help---
 	Software implementation of IEEE 802.11 TKIP encryption.
 
 	This can be compiled as a modules and it will be called
-	"hostap_cryp_tkip.ko".
+	"hostap_crypt_tkip.ko".
 
 config HOSTAP_CCMP
 	tristate "IEEE 802.11 CCMP encryption"
 	depends on HOSTAP
+	select CRYPTO
 	---help---
 	Software implementation of IEEE 802.11 CCMP encryption.
 
 	This can be compiled as a modules and it will be called
-	"hostap_cryp_ccmp.ko".
+	"hostap_crypt_ccmp.ko".
 
 config HOSTAP_FIRMWARE
 	bool "Support downloading firmware images with Host AP driver"
#41 lore raw

oom goodness Re: 2.6.10-rc2-mm4

In reply to Andrew Morton

Andrew Morton escreveu:

Quoted 1 line

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

I hope I'm not tempting providence by reporting that this is the first unpatched kernel in a while that seems free of the oom killer problems I've been seeing. It's successfully handled all the usual trouble spots (compiling umlsim, cron.daily etc.) on my 64MB machine without killing off a single random process.

Regards,
Chris R.

#42 lore raw

Re: oom goodness Re: 2.6.10-rc2-mm4

Quoted 8 lines · Chris Ross

Andrew Morton escreveu:

Quoted 2 lines

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

I hope I'm not tempting providence by reporting that this is the first unpatched kernel in a while that seems free of the oom killer problems I've been seeing. It's successfully handled all the usual trouble spots (compiling umlsim, cron.daily etc.) on my 64MB machine without killing off a single random process.

for some definition of "unpatched"... :)

Signature · 1 line
~Randy
#43 lore raw

Re: oom goodness Re: 2.6.10-rc2-mm4

In reply to Chris Ross
Quoted 8 lines · Chris Ross

Andrew Morton escreveu:

Quoted 1 line

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/

I hope I'm not tempting providence by reporting that this is the first unpatched kernel in a while that seems free of the oom killer problems I've been seeing. It's successfully handled all the usual trouble spots (compiling umlsim, cron.daily etc.) on my 64MB machine without killing off a single random process.

I can still see the problems I described detailed a couple of times :(

tglx

#44 lore raw
In reply to Andrew Morton

Review

Quoted 10 lines · Andrew Morton

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/
- Various fixes and cleanups
- A decent-sized x86_64 update.
- x86_64 supports a fourth VM zone: ZONE_DMA32. This may affect memory reclaim, but shouldn't.

(quoted diff) +3 -0
+sys_stime-needs-a-compat-function.patch
+sys_stime-needs-a-compat-function-fix.patch
+sys_stime-needs-a-compat-function-fix-fix.patch
 Add compat wrapper for sys_stime().  Clean up (and break) several other
 things.

One of which is apparently ia64. The following adds the necessary define for ia64 to actually use the compat sys_time() function.

and I seem to need a new SAL version again...
SGI SAL version 3.40
This kernel needs SGI SAL version >= 4.00

Kernel panic - not syncing: PROM version too old

-- wli

include/asm-ia64/unistd.h +1 -0
Index: mm4-2.6.10-rc2/include/asm-ia64/unistd.h
===================================================================
@@ -281,6 +281,7 @@
 # define __ARCH_WANT_SYS_OLDUMOUNT
 # define __ARCH_WANT_SYS_SIGPENDING
 # define __ARCH_WANT_SYS_SIGPROCMASK
+# define __ARCH_WANT_COMPAT_SYS_TIME
 #endif
 
 #if !defined(__ASSEMBLY__) && !defined(ASSEMBLER)