* Re: 2.6.10-rc2-mm4 @ 2004-12-03 21:59 Terence Ripperda 2004-12-05 19:46 ` 2.6.10-rc2-mm4 Alan Cox 0 siblings, 1 reply; 38+ messages in thread From: Terence Ripperda @ 2004-12-03 21:59 UTC (permalink / raw) To: Linux Kernel Mailing List; +Cc: tripperda (sorry for breaking the email thread, I tried to grab the mbox archive for responding, but ftp.uwsg.iu.edu seems to be having problems with the mail archive). in response to Alan Cox' voiced concerns from Tue Nov 30: > That would also be a proprietary hook wouldn't it 8) nvidia really isn't interested in proprietary hooks; such a hook really wouldn't be good for nvidia or the linux kernel. but we don't feel that a 32-bit zone is such a hook. > beyond the supported open source hardware PCI-Express is the > non-AGPGART user and that is 64bit. I assume you mean traditional pci in this case, but I remain confused. the pci spec calls for 32-bits of addressing, although there is an optional extension for 64-bit bus extension pins. I can't speak for other pci devices, but all of our pci devices are 32-bit. additionally, the pci-express spec defines legacy and non-legacy devices. legacy devices are only required to address 32-bits, whereas non-legacy devices are required to handle 64-bit addresses. > In the video space it's even stranger because DRI doesn't need it I'm unclear how traditional pci video cards function without being able to allocate < 32-bit addresses for dma purposes. are the video cards you've tested 64-bit capable or is dma disabled? what about 32-bit cards? I'm afraid I don't understand how this isn't an issue. > it seems a risky path because of the past problems trying to get > zone balancing working. I certainly understand the concerns with this, although I was led to believe that recent 2.6 work made the zone balancing much less expensive. is that not the case? > I can find users for a 512Mb or 1Gb DMA region there was some brief discussion of this when we originally discussed 32-bit addressing issues, but I don't know if a satisfactory solution was reached. If a 1Gb region was prefered for this reason, that should satisfy nvidia's needs for 32-bit addressing, but I couldn't speak for any other device drivers. for reference, the previous discussion was here: http://www.uwsg.indiana.edu/hypermail/linux/kernel/0406.2/2093.html Thanks, Terence ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-03 21:59 2.6.10-rc2-mm4 Terence Ripperda @ 2004-12-05 19:46 ` Alan Cox 0 siblings, 0 replies; 38+ messages in thread From: Alan Cox @ 2004-12-05 19:46 UTC (permalink / raw) To: Terence Ripperda; +Cc: Linux Kernel Mailing List On Gwe, 2004-12-03 at 21:59, Terence Ripperda wrote: > I assume you mean traditional pci in this case, but I remain confused. > the pci spec calls for 32-bits of addressing, although there is an > optional extension for 64-bit bus extension pins. I can't speak for other > pci devices, but all of our pci devices are 32-bit. The current DRI drivers don't really deal much with PCI devices. A pure PCI video card on 64bit boxes might be problematic although I'd question the sanity of anyone doing this 8) > > additionally, the pci-express spec defines legacy and non-legacy > devices. legacy devices are only required to address 32-bits, whereas > non-legacy devices are required to handle 64-bit addresses. I'd assumed video card vendors were non-legacy but ok > I certainly understand the concerns with this, although I was led to > believe that recent 2.6 work made the zone balancing much less > expensive. is that not the case? Andrew certainly believes this is. Certainly in 2.4 it was not. > > I can find users for a 512Mb or 1Gb DMA region > > there was some brief discussion of this when we originally discussed > 32-bit addressing issues, but I don't know if a satisfactory solution was > reached. If a 1Gb region was prefered for this reason, that should satisfy > nvidia's needs for 32-bit addressing, but I couldn't speak for any other device > drivers. If the VM can take it and get it right I am all for a 512Mb or 1Gb DMA region to fix the various devices that have 29-31bit DMA issues. If it fixes Nvidia's needs to then fine. Alan ^ permalink raw reply [flat|nested] 38+ messages in thread
[parent not found: <41BF2332.mailL911D9Q6T@suse.de.suse.lists.linux.kernel>]
* Re: 2.6.10-rc2-mm4 [not found] <41BF2332.mailL911D9Q6T@suse.de.suse.lists.linux.kernel> @ 2004-12-14 19:00 ` Andi Kleen 0 siblings, 0 replies; 38+ messages in thread From: Andi Kleen @ 2004-12-14 19:00 UTC (permalink / raw) To: Arjan van de Ven; +Cc: alan, akpm, linux-kernel "Andi Kleen" <ak@suse.de> writes: [again with subject. sorry for the screwup] Arjan van de Ven <arjan@infradead.org> writes: [sorry for late answer] > On Tue, 2004-11-30 at 10:32 -0800, Andrew Morton wrote: > > "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 :) No, that's wrong. It's a new API for any driver that needs it, which are quite a lot. Please don't assume that all word rotates about binary drivers. It would have helped if you had read the description fully before flaming. I wouldn't have done it only for some binary only driver. Nvidia can use it and it will probably be useful for themw, but the free DRI ATI drivers have exactly the same problems (ATI hardware has the same problem). I plan to change them to use this new interface. From what I gathered from various people the problem exists in a lot more hardware. I suspect it will be used e.g. by video frame grabber drivers and sound devices and some others. It also has nothing directly to do with Intel chipsets and lack of IOMMUs. The problem happens even on AMD because the IOMMU area there is too small (often only 64-128MB because it is shared with the AGP aperture). Together with 16MB GFP_DMA you get 96MB, which is very tiny for today's standards. And 96MB is just not enough for various people and requiring the users to change obscure command line options or the BIOS to enlarge the buffer is just not a nice interface. The main problem we have is that windows seems to make it very easy to allocate memory below a specific range, so a lot of hardware assumes this works :( There were actually plans in the beginning of the x86-64 port for such an additional zone, but back then we were worried about the impact on the fragile 2.4 VM of the additional zone. That doesn't seem to be a big issue anymore though and NUMA has proven that the VM can cope with a lot of zones. -Andi P.S.: I'm surprised none of you found the main issue in the current patch - that it makes GFP_DMA and GFP_DMA incompatible between x86-64 and IA64. I plan to address that. Also there will be followon patches to convert some drivers and make it used by dma_alloc_coherent() ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4
@ 2004-11-30 18:29 Petr Vandrovec
2004-11-30 18:38 ` 2.6.10-rc2-mm4 Alan Cox
0 siblings, 1 reply; 38+ messages in thread
From: Petr Vandrovec @ 2004-11-30 18:29 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: linux-kernel, akpm
On 30 Nov 04 at 19:25, Arjan van de Ven wrote:
> On Tue, 2004-11-30 at 10:21 -0800, Andrew Morton wrote:
> > Arjan van de Ven <arjan@infradead.org> wrote:
> > > On Tue, 2004-11-30 at 09:50 -0800, Andrew Morton wrote:
> > > > http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/
> > > >
> > > > - 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 ??
If this is going to stay, I have one possible user. VMware's vmmon needs
to allocate two pages from memory below 4GB so it can use these pages
for code and page table root while switching from long mode to legacy
mode and back. After switch code can use PAE mode and access any memory
it wants, but as CR3 is 32bit only in legacy mode, and paging has to be
disabled while switching between modes, these two pages needs to be in
low 4GB.
Currently vmmon uses GFP_DMA for this allocation - which unnecessarily
limits memory available for this operation to 16MB, although any page
from low 4GB suffices.
Best regards,
Petr Vandrovec
^ permalink raw reply [flat|nested] 38+ messages in thread* Re: 2.6.10-rc2-mm4 2004-11-30 18:29 2.6.10-rc2-mm4 Petr Vandrovec @ 2004-11-30 18:38 ` Alan Cox 0 siblings, 0 replies; 38+ messages in thread From: Alan Cox @ 2004-11-30 18:38 UTC (permalink / raw) To: Petr Vandrovec; +Cc: Arjan van de Ven, Linux Kernel Mailing List, akpm On Maw, 2004-11-30 at 18:29, Petr Vandrovec wrote: > If this is going to stay, I have one possible user. VMware's vmmon needs > to allocate two pages from memory below 4GB so it can use these pages > for code and page table root while switching from long mode to legacy That would also be a proprietary hook wouldn't it 8) So far I can find none although I can find users for a 512Mb or 1Gb DMA region. Several sound cards would benefit from this as would b44 and to a small extent aacraid but no users who benefit for 32bit DMA. In the video space it's even stranger because DRI doesn't need it, fbcon doesn't need it and even beyond the supported open source hardware PCI-Express is the non-AGPGART user and that is 64bit. Even for the users I can find it seems a risky path because of the past problems trying to get zone balancing working. Or do we have someone whose driver is not only proprietary but has crap hardware ? Alan ^ permalink raw reply [flat|nested] 38+ messages in thread
* 2.6.10-rc2-mm4
@ 2004-11-30 17:50 Andrew Morton
2004-11-30 18:06 ` 2.6.10-rc2-mm4 Arjan van de Ven
` (5 more replies)
0 siblings, 6 replies; 38+ messages in thread
From: Andrew Morton @ 2004-11-30 17:50 UTC (permalink / raw)
To: linux-kernel
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
^ permalink raw reply [flat|nested] 38+ messages in thread* Re: 2.6.10-rc2-mm4 2004-11-30 17:50 2.6.10-rc2-mm4 Andrew Morton @ 2004-11-30 18:06 ` Arjan van de Ven 2004-11-30 18:21 ` 2.6.10-rc2-mm4 Andrew Morton 2004-11-30 18:31 ` 2.6.10-rc2-mm4 Christoph Hellwig 2004-11-30 18:30 ` 2.6.10-rc2-mm4 Christoph Hellwig ` (4 subsequent siblings) 5 siblings, 2 replies; 38+ messages in thread From: Arjan van de Ven @ 2004-11-30 18:06 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel On Tue, 2004-11-30 at 09:50 -0800, Andrew Morton wrote: > 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. what is the purpose of such a zone ?? ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:06 ` 2.6.10-rc2-mm4 Arjan van de Ven @ 2004-11-30 18:21 ` Andrew Morton 2004-11-30 18:25 ` 2.6.10-rc2-mm4 Arjan van de Ven 2004-12-02 8:01 ` 2.6.10-rc2-mm4 Jes Sorensen 2004-11-30 18:31 ` 2.6.10-rc2-mm4 Christoph Hellwig 1 sibling, 2 replies; 38+ messages in thread From: Andrew Morton @ 2004-11-30 18:21 UTC (permalink / raw) To: Arjan van de Ven; +Cc: linux-kernel Arjan van de Ven <arjan@infradead.org> wrote: > > On Tue, 2004-11-30 at 09:50 -0800, Andrew Morton wrote: > > 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. > > > 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? ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:21 ` 2.6.10-rc2-mm4 Andrew Morton @ 2004-11-30 18:25 ` Arjan van de Ven 2004-11-30 18:32 ` 2.6.10-rc2-mm4 Andrew Morton 2004-11-30 18:48 ` 2.6.10-rc2-mm4 William Lee Irwin III 2004-12-02 8:01 ` 2.6.10-rc2-mm4 Jes Sorensen 1 sibling, 2 replies; 38+ messages in thread From: Arjan van de Ven @ 2004-11-30 18:25 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel On Tue, 2004-11-30 at 10:21 -0800, Andrew Morton wrote: > Arjan van de Ven <arjan@infradead.org> wrote: > > > > On Tue, 2004-11-30 at 09:50 -0800, Andrew Morton wrote: > > > 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. > > > > > > 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 ?? ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:25 ` 2.6.10-rc2-mm4 Arjan van de Ven @ 2004-11-30 18:32 ` Andrew Morton 2004-11-30 17:44 ` 2.6.10-rc2-mm4 Alan Cox 2004-11-30 19:36 ` 2.6.10-rc2-mm4 Arjan van de Ven 2004-11-30 18:48 ` 2.6.10-rc2-mm4 William Lee Irwin III 1 sibling, 2 replies; 38+ messages in thread From: Andrew Morton @ 2004-11-30 18:32 UTC (permalink / raw) To: Arjan van de Ven; +Cc: linux-kernel Arjan van de Ven <arjan@infradead.org> wrote: > > > > > - 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.... "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." > Is there code using the zone GFP mask yet ?? Nope. ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:32 ` 2.6.10-rc2-mm4 Andrew Morton @ 2004-11-30 17:44 ` Alan Cox 2004-11-30 19:46 ` 2.6.10-rc2-mm4 Andrew Morton 2004-11-30 19:36 ` 2.6.10-rc2-mm4 Arjan van de Ven 1 sibling, 1 reply; 38+ messages in thread From: Alan Cox @ 2004-11-30 17:44 UTC (permalink / raw) To: Andrew Morton; +Cc: Arjan van de Ven, Linux Kernel Mailing List On Maw, 2004-11-30 at 18:32, Andrew Morton wrote: > "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." > > > 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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 17:44 ` 2.6.10-rc2-mm4 Alan Cox @ 2004-11-30 19:46 ` Andrew Morton 0 siblings, 0 replies; 38+ messages in thread From: Andrew Morton @ 2004-11-30 19:46 UTC (permalink / raw) To: Alan Cox; +Cc: arjan, linux-kernel Alan Cox <alan@lxorguk.ukuu.org.uk> wrote: > > On Maw, 2004-11-30 at 18:32, Andrew Morton wrote: > > "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." > > > > > 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. > 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. ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:32 ` 2.6.10-rc2-mm4 Andrew Morton 2004-11-30 17:44 ` 2.6.10-rc2-mm4 Alan Cox @ 2004-11-30 19:36 ` Arjan van de Ven 1 sibling, 0 replies; 38+ messages in thread From: Arjan van de Ven @ 2004-11-30 19:36 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel On Tue, 2004-11-30 at 10:32 -0800, Andrew Morton wrote: > "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 :) ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:25 ` 2.6.10-rc2-mm4 Arjan van de Ven 2004-11-30 18:32 ` 2.6.10-rc2-mm4 Andrew Morton @ 2004-11-30 18:48 ` William Lee Irwin III 2004-12-02 8:03 ` 2.6.10-rc2-mm4 Jes Sorensen 1 sibling, 1 reply; 38+ messages in thread From: William Lee Irwin III @ 2004-11-30 18:48 UTC (permalink / raw) To: Arjan van de Ven; +Cc: Andrew Morton, linux-kernel On Tue, 2004-11-30 at 10:21 -0800, Andrew Morton wrote: >> For pages which have a physical address <4G. I assume this was motivated >> by the lack of an IOMMU on ia32e? On Tue, Nov 30, 2004 at 07:25:10PM +0100, Arjan van de Ven wrote: > 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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:48 ` 2.6.10-rc2-mm4 William Lee Irwin III @ 2004-12-02 8:03 ` Jes Sorensen 0 siblings, 0 replies; 38+ messages in thread From: Jes Sorensen @ 2004-12-02 8:03 UTC (permalink / raw) To: William Lee Irwin III; +Cc: Arjan van de Ven, Andrew Morton, linux-kernel >>>>> "William" == William Lee Irwin <wli@holomorphy.com> writes: William> On Tue, 2004-11-30 at 10:21 -0800, Andrew Morton wrote: >>> 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 William> wrote: >> 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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:21 ` 2.6.10-rc2-mm4 Andrew Morton 2004-11-30 18:25 ` 2.6.10-rc2-mm4 Arjan van de Ven @ 2004-12-02 8:01 ` Jes Sorensen 1 sibling, 0 replies; 38+ messages in thread From: Jes Sorensen @ 2004-12-02 8:01 UTC (permalink / raw) To: Andrew Morton; +Cc: Arjan van de Ven, linux-kernel >>>>> "Andrew" == Andrew Morton <akpm@osdl.org> writes: Andrew> Arjan van de Ven <arjan@infradead.org> wrote: >> >> On Tue, 2004-11-30 at 09:50 -0800, Andrew Morton wrote: >> > >> 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. >> >> >> 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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:06 ` 2.6.10-rc2-mm4 Arjan van de Ven 2004-11-30 18:21 ` 2.6.10-rc2-mm4 Andrew Morton @ 2004-11-30 18:31 ` Christoph Hellwig 2004-11-30 18:38 ` 2.6.10-rc2-mm4 Alan Cox 1 sibling, 1 reply; 38+ messages in thread From: Christoph Hellwig @ 2004-11-30 18:31 UTC (permalink / raw) To: Arjan van de Ven; +Cc: Andrew Morton, linux-kernel On Tue, Nov 30, 2004 at 07:06:34PM +0100, Arjan van de Ven wrote: > On Tue, 2004-11-30 at 09:50 -0800, Andrew Morton wrote: > > 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. > > > 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. ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 18:31 ` 2.6.10-rc2-mm4 Christoph Hellwig @ 2004-11-30 18:38 ` Alan Cox 0 siblings, 0 replies; 38+ messages in thread From: Alan Cox @ 2004-11-30 18:38 UTC (permalink / raw) To: Christoph Hellwig Cc: Arjan van de Ven, Andrew Morton, Linux Kernel Mailing List On Maw, 2004-11-30 at 18:31, Christoph Hellwig wrote: > 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. ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 17:50 2.6.10-rc2-mm4 Andrew Morton 2004-11-30 18:06 ` 2.6.10-rc2-mm4 Arjan van de Ven @ 2004-11-30 18:30 ` Christoph Hellwig 2004-11-30 19:18 ` 2.6.10-rc2-mm4 Stephen Smalley ` (3 subsequent siblings) 5 siblings, 0 replies; 38+ messages in thread From: Christoph Hellwig @ 2004-11-30 18:30 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel > +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. ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 17:50 2.6.10-rc2-mm4 Andrew Morton 2004-11-30 18:06 ` 2.6.10-rc2-mm4 Arjan van de Ven 2004-11-30 18:30 ` 2.6.10-rc2-mm4 Christoph Hellwig @ 2004-11-30 19:18 ` Stephen Smalley 2004-11-30 19:29 ` 2.6.10-rc2-mm4 Chris Wright 2004-12-01 1:37 ` 2.6.10-rc2-mm4 Matthew Dobson ` (2 subsequent siblings) 5 siblings, 1 reply; 38+ messages in thread From: Stephen Smalley @ 2004-11-30 19:18 UTC (permalink / raw) To: Andrew Morton; +Cc: lkml, Jeff Mahoney, James Morris, Chris Wright On Tue, 2004-11-30 at 12:50, Andrew Morton wrote: > http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/ <snip> > 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. Signed-off-by: Stephen Smalley <sds@epoch.ncsc.mil> security/selinux/hooks.c | 27 ++++++++++++++++----------- security/selinux/include/objsec.h | 2 +- 2 files changed, 17 insertions(+), 12 deletions(-) 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 --- linux-2.6.10-rc2-mm4/security/selinux/hooks.c 2004-11-30 13:36:45.525519696 -0500 +++ linux-2.6.10-rc2-mm4-work/security/selinux/hooks.c 2004-11-30 13:52:30.550854008 -0500 @@ -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 */ 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 --- linux-2.6.10-rc2-mm4/security/selinux/include/objsec.h 2004-11-30 13:36:45.526519544 -0500 +++ linux-2.6.10-rc2-mm4-work/security/selinux/include/objsec.h 2004-11-30 13:52:30.551853856 -0500 @@ -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 { -- Stephen Smalley <sds@epoch.ncsc.mil> National Security Agency ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 19:18 ` 2.6.10-rc2-mm4 Stephen Smalley @ 2004-11-30 19:29 ` Chris Wright 2004-11-30 19:43 ` 2.6.10-rc2-mm4 Christoph Hellwig 0 siblings, 1 reply; 38+ messages in thread From: Chris Wright @ 2004-11-30 19:29 UTC (permalink / raw) To: Stephen Smalley Cc: Andrew Morton, lkml, Jeff Mahoney, James Morris, Chris Wright * Stephen Smalley (sds@epoch.ncsc.mil) wrote: > On Tue, 2004-11-30 at 12:50, Andrew Morton wrote: > > http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc2/2.6.10-rc2-mm4/ > <snip> > > 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. 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 -- Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 19:29 ` 2.6.10-rc2-mm4 Chris Wright @ 2004-11-30 19:43 ` Christoph Hellwig 2004-11-30 19:55 ` 2.6.10-rc2-mm4 Jeff Mahoney 2004-12-01 23:32 ` 2.6.10-rc2-mm4 Jeffrey Mahoney 0 siblings, 2 replies; 38+ messages in thread From: Christoph Hellwig @ 2004-11-30 19:43 UTC (permalink / raw) To: Chris Wright Cc: Stephen Smalley, Andrew Morton, lkml, Jeff Mahoney, James Morris 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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 19:43 ` 2.6.10-rc2-mm4 Christoph Hellwig @ 2004-11-30 19:55 ` Jeff Mahoney 2004-12-01 23:32 ` 2.6.10-rc2-mm4 Jeffrey Mahoney 1 sibling, 0 replies; 38+ messages in thread From: Jeff Mahoney @ 2004-11-30 19:55 UTC (permalink / raw) To: Christoph Hellwig Cc: Chris Wright, Stephen Smalley, Andrew Morton, lkml, James Morris -----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----- ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 19:43 ` 2.6.10-rc2-mm4 Christoph Hellwig 2004-11-30 19:55 ` 2.6.10-rc2-mm4 Jeff Mahoney @ 2004-12-01 23:32 ` Jeffrey Mahoney 2004-12-02 1:01 ` 2.6.10-rc2-mm4 Chris Wright 2004-12-02 13:15 ` 2.6.10-rc2-mm4 Stephen Smalley 1 sibling, 2 replies; 38+ messages in thread From: Jeffrey Mahoney @ 2004-12-01 23:32 UTC (permalink / raw) To: Christoph Hellwig, Chris Wright, Stephen Smalley, Andrew Morton, lkml, James Morris Cc: mason [-- Attachment #1: Type: text/plain, Size: 11112 bytes --] On Tue, Nov 30, 2004 at 07:43:28PM +0000, 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 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. Signed-off-by: Jeffrey Mahoney <jeffm@suse.com> diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/inode.c linux-2.6.9.noxattr/fs/reiserfs/inode.c --- linux-2.6.9/fs/reiserfs/inode.c 2004-11-19 14:40:53.000000000 -0500 +++ linux-2.6.9.noxattr/fs/reiserfs/inode.c 2004-12-01 17:31:51.000000000 -0500 @@ -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); diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/namei.c linux-2.6.9.noxattr/fs/reiserfs/namei.c --- linux-2.6.9/fs/reiserfs/namei.c 2004-08-14 01:37:14.000000000 -0400 +++ linux-2.6.9.noxattr/fs/reiserfs/namei.c 2004-12-01 17:52:32.000000000 -0500 @@ -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); diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/xattr_acl.c linux-2.6.9.noxattr/fs/reiserfs/xattr_acl.c --- linux-2.6.9/fs/reiserfs/xattr_acl.c 2004-11-19 14:40:53.000000000 -0500 +++ linux-2.6.9.noxattr/fs/reiserfs/xattr_acl.c 2004-12-01 17:03:55.000000000 -0500 @@ -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; } diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/xattr.c linux-2.6.9.noxattr/fs/reiserfs/xattr.c --- linux-2.6.9/fs/reiserfs/xattr.c 2004-11-19 14:40:53.000000000 -0500 +++ linux-2.6.9.noxattr/fs/reiserfs/xattr.c 2004-12-01 17:11:35.000000000 -0500 @@ -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 diff -ruNpX dontdiff linux-2.6.9/include/linux/reiserfs_xattr.h linux-2.6.9.noxattr/include/linux/reiserfs_xattr.h --- linux-2.6.9/include/linux/reiserfs_xattr.h 2004-08-14 01:38:11.000000000 -0400 +++ linux-2.6.9.noxattr/include/linux/reiserfs_xattr.h 2004-12-01 16:37:06.000000000 -0500 @@ -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 -- Jeff Mahoney SuSE Labs [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-01 23:32 ` 2.6.10-rc2-mm4 Jeffrey Mahoney @ 2004-12-02 1:01 ` Chris Wright 2004-12-02 1:11 ` 2.6.10-rc2-mm4 Jeff Mahoney 2004-12-02 13:32 ` 2.6.10-rc2-mm4 Stephen Smalley 2004-12-02 13:15 ` 2.6.10-rc2-mm4 Stephen Smalley 1 sibling, 2 replies; 38+ messages in thread From: Chris Wright @ 2004-12-02 1:01 UTC (permalink / raw) To: Jeffrey Mahoney Cc: Christoph Hellwig, Chris Wright, Stephen Smalley, Andrew Morton, lkml, James Morris, mason * Jeffrey Mahoney (jeffm@suse.com) 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> > 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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-02 1:01 ` 2.6.10-rc2-mm4 Chris Wright @ 2004-12-02 1:11 ` Jeff Mahoney 2004-12-02 13:32 ` 2.6.10-rc2-mm4 Stephen Smalley 1 sibling, 0 replies; 38+ messages in thread From: Jeff Mahoney @ 2004-12-02 1:11 UTC (permalink / raw) To: Chris Wright Cc: Christoph Hellwig, Stephen Smalley, Andrew Morton, lkml, James Morris, mason -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chris Wright wrote: | * Jeffrey Mahoney (jeffm@suse.com) 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----- ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-02 1:01 ` 2.6.10-rc2-mm4 Chris Wright 2004-12-02 1:11 ` 2.6.10-rc2-mm4 Jeff Mahoney @ 2004-12-02 13:32 ` Stephen Smalley 1 sibling, 0 replies; 38+ messages in thread From: Stephen Smalley @ 2004-12-02 13:32 UTC (permalink / raw) To: Chris Wright Cc: Jeff Mahoney, Christoph Hellwig, Andrew Morton, lkml, James Morris, Chris Mason On Wed, 2004-12-01 at 20:01, Chris Wright wrote: > 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. -- Stephen Smalley <sds@epoch.ncsc.mil> National Security Agency ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-01 23:32 ` 2.6.10-rc2-mm4 Jeffrey Mahoney 2004-12-02 1:01 ` 2.6.10-rc2-mm4 Chris Wright @ 2004-12-02 13:15 ` Stephen Smalley 2004-12-07 19:57 ` 2.6.10-rc2-mm4 Jeff Mahoney 1 sibling, 1 reply; 38+ messages in thread From: Stephen Smalley @ 2004-12-02 13:15 UTC (permalink / raw) To: Jeff Mahoney Cc: Christoph Hellwig, Chris Wright, Andrew Morton, lkml, James Morris, Chris Mason 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). -- Stephen Smalley <sds@epoch.ncsc.mil> National Security Agency ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-02 13:15 ` 2.6.10-rc2-mm4 Stephen Smalley @ 2004-12-07 19:57 ` Jeff Mahoney 2004-12-07 20:28 ` 2.6.10-rc2-mm4 Stephen Smalley 0 siblings, 1 reply; 38+ messages in thread From: Jeff Mahoney @ 2004-12-07 19:57 UTC (permalink / raw) To: Stephen Smalley Cc: Christoph Hellwig, Chris Wright, Andrew Morton, lkml, James Morris, Chris Mason [-- Attachment #1: Type: text/plain, Size: 2492 bytes --] -----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----- [-- Attachment #2: 02-vfs-private-selinux.diff --] [-- Type: text/x-patch, Size: 749 bytes --] From: Jeff Mahoney <jeffm@suse.com> 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. Signed-off-by: Jeff Mahoney <jeffm@suse.com> diff -ruNpX dontdiff linux-2.6.9.base/security/selinux/hooks.c linux-2.6.9.private/security/selinux/hooks.c --- linux-2.6.9.base/security/selinux/hooks.c 2004-11-19 14:40:58.000000000 -0500 +++ linux-2.6.9.private/security/selinux/hooks.c 2004-12-01 14:38:50.000000000 -0500 @@ -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); [-- Attachment #3: 01-vfs-private-flag.diff --] [-- Type: text/x-patch, Size: 9102 bytes --] From: Jeff Mahoney <jeffm@suse.com> 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. Signed-off-by: Jeff Mahoney <jeffm@suse.com> diff -ruNpX dontdiff linux-2.6.9.base/include/linux/fs.h linux-2.6.9.private/include/linux/fs.h --- linux-2.6.9.base/include/linux/fs.h 2004-11-19 14:40:56.000000000 -0500 +++ linux-2.6.9.private/include/linux/fs.h 2004-11-30 15:04:24.000000000 -0500 @@ -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. */ diff -ruNpX dontdiff linux-2.6.9.base/include/linux/security.h linux-2.6.9.private/include/linux/security.h --- linux-2.6.9.base/include/linux/security.h 2004-08-14 01:37:30.000000000 -0400 +++ linux-2.6.9.private/include/linux/security.h 2004-12-01 14:14:07.000000000 -0500 @@ -1406,11 +1406,15 @@ static inline void security_sb_post_pivo static inline int security_inode_alloc (struct inode *inode) { + if (unlikely (IS_PRIVATE (inode))) + return 0; return security_ops->inode_alloc_security (inode); } static inline void security_inode_free (struct inode *inode) { + if (unlikely (IS_PRIVATE (inode))) + return; security_ops->inode_free_security (inode); } @@ -1418,6 +1422,8 @@ static inline int security_inode_create struct dentry *dentry, int mode) { + if (unlikely (IS_PRIVATE (dir))) + return 0; return security_ops->inode_create (dir, dentry, mode); } @@ -1425,6 +1431,8 @@ static inline void security_inode_post_c struct dentry *dentry, int mode) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return; security_ops->inode_post_create (dir, dentry, mode); } @@ -1432,6 +1440,8 @@ static inline int security_inode_link (s struct inode *dir, struct dentry *new_dentry) { + if (unlikely (IS_PRIVATE (old_dentry->d_inode))) + return 0; return security_ops->inode_link (old_dentry, dir, new_dentry); } @@ -1439,12 +1449,16 @@ static inline void security_inode_post_l struct inode *dir, struct dentry *new_dentry) { + if (unlikely (IS_PRIVATE (new_dentry->d_inode))) + return; security_ops->inode_post_link (old_dentry, dir, new_dentry); } static inline int security_inode_unlink (struct inode *dir, struct dentry *dentry) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_unlink (dir, dentry); } @@ -1452,6 +1466,8 @@ static inline int security_inode_symlink struct dentry *dentry, const char *old_name) { + if (unlikely (IS_PRIVATE (dir))) + return 0; return security_ops->inode_symlink (dir, dentry, old_name); } @@ -1459,6 +1475,8 @@ static inline void security_inode_post_s struct dentry *dentry, const char *old_name) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return; security_ops->inode_post_symlink (dir, dentry, old_name); } @@ -1466,6 +1484,8 @@ static inline int security_inode_mkdir ( struct dentry *dentry, int mode) { + if (unlikely (IS_PRIVATE (dir))) + return 0; return security_ops->inode_mkdir (dir, dentry, mode); } @@ -1473,12 +1493,16 @@ static inline void security_inode_post_m struct dentry *dentry, int mode) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return; security_ops->inode_post_mkdir (dir, dentry, mode); } static inline int security_inode_rmdir (struct inode *dir, struct dentry *dentry) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_rmdir (dir, dentry); } @@ -1486,6 +1510,8 @@ static inline int security_inode_mknod ( struct dentry *dentry, int mode, dev_t dev) { + if (unlikely (IS_PRIVATE (dir))) + return 0; return security_ops->inode_mknod (dir, dentry, mode, dev); } @@ -1493,6 +1519,8 @@ static inline void security_inode_post_m struct dentry *dentry, int mode, dev_t dev) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return; security_ops->inode_post_mknod (dir, dentry, mode, dev); } @@ -1501,6 +1529,9 @@ static inline int security_inode_rename struct inode *new_dir, struct dentry *new_dentry) { + if (unlikely (IS_PRIVATE (old_dentry->d_inode) || + (new_dentry->d_inode && IS_PRIVATE (new_dentry->d_inode)))) + return 0; return security_ops->inode_rename (old_dir, old_dentry, new_dir, new_dentry); } @@ -1510,83 +1541,114 @@ static inline void security_inode_post_r struct inode *new_dir, struct dentry *new_dentry) { + if (unlikely (IS_PRIVATE (old_dentry->d_inode) || + (new_dentry->d_inode && IS_PRIVATE (new_dentry->d_inode)))) + return; security_ops->inode_post_rename (old_dir, old_dentry, new_dir, new_dentry); } static inline int security_inode_readlink (struct dentry *dentry) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_readlink (dentry); } static inline int security_inode_follow_link (struct dentry *dentry, struct nameidata *nd) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_follow_link (dentry, nd); } static inline int security_inode_permission (struct inode *inode, int mask, struct nameidata *nd) { + if (unlikely (IS_PRIVATE (inode))) + return 0; return security_ops->inode_permission (inode, mask, nd); } static inline int security_inode_setattr (struct dentry *dentry, struct iattr *attr) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_setattr (dentry, attr); } static inline int security_inode_getattr (struct vfsmount *mnt, struct dentry *dentry) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_getattr (mnt, dentry); } static inline void security_inode_delete (struct inode *inode) { + if (unlikely (IS_PRIVATE (inode))) + return; security_ops->inode_delete (inode); } static inline int security_inode_setxattr (struct dentry *dentry, char *name, void *value, size_t size, int flags) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_setxattr (dentry, name, value, size, flags); } static inline void security_inode_post_setxattr (struct dentry *dentry, char *name, void *value, size_t size, int flags) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return; security_ops->inode_post_setxattr (dentry, name, value, size, flags); } static inline int security_inode_getxattr (struct dentry *dentry, char *name) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_getxattr (dentry, name); } static inline int security_inode_listxattr (struct dentry *dentry) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_listxattr (dentry); } static inline int security_inode_removexattr (struct dentry *dentry, char *name) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_removexattr (dentry, name); } static inline int security_inode_getsecurity(struct dentry *dentry, const char *name, void *buffer, size_t size) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_getsecurity(dentry, name, buffer, size); } static inline int security_inode_setsecurity(struct dentry *dentry, const char *name, const void *value, size_t size, int flags) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_setsecurity(dentry, name, value, size, flags); } static inline int security_inode_listsecurity(struct dentry *dentry, char *buffer) { + if (unlikely (IS_PRIVATE (dentry->d_inode))) + return 0; return security_ops->inode_listsecurity(dentry, buffer); } @@ -1863,6 +1925,8 @@ static inline int security_sem_semop (st static inline void security_d_instantiate (struct dentry *dentry, struct inode *inode) { + if (unlikely (inode && IS_PRIVATE (inode))) + return; security_ops->d_instantiate (dentry, inode); } [-- Attachment #4: 03-reiserfs-priv-abstract.diff --] [-- Type: text/x-patch, Size: 3903 bytes --] From: Jeff Mahoney <jeffm@suse.com> 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. Signed-off-by: Jeff Mahoney <jeffm@suse.com> diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/inode.c linux-2.6.9.base/fs/reiserfs/inode.c --- linux-2.6.9/fs/reiserfs/inode.c 2004-11-19 14:40:53.000000000 -0500 +++ linux-2.6.9.base/fs/reiserfs/inode.c 2004-11-30 16:03:42.000000000 -0500 @@ -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); diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/namei.c linux-2.6.9.base/fs/reiserfs/namei.c --- linux-2.6.9/fs/reiserfs/namei.c 2004-08-14 01:37:14.000000000 -0400 +++ linux-2.6.9.base/fs/reiserfs/namei.c 2004-11-30 16:03:42.000000000 -0500 @@ -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 ) { diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/xattr_acl.c linux-2.6.9.base/fs/reiserfs/xattr_acl.c --- linux-2.6.9/fs/reiserfs/xattr_acl.c 2004-11-19 14:40:53.000000000 -0500 +++ linux-2.6.9.base/fs/reiserfs/xattr_acl.c 2004-11-30 16:03:42.000000000 -0500 @@ -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; } diff -ruNpX dontdiff linux-2.6.9/fs/reiserfs/xattr.c linux-2.6.9.base/fs/reiserfs/xattr.c --- linux-2.6.9/fs/reiserfs/xattr.c 2004-11-19 14:40:53.000000000 -0500 +++ linux-2.6.9.base/fs/reiserfs/xattr.c 2004-12-07 13:54:17.336459088 -0500 @@ -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 diff -ruNpX dontdiff linux-2.6.9/include/linux/reiserfs_xattr.h linux-2.6.9.base/include/linux/reiserfs_xattr.h --- linux-2.6.9/include/linux/reiserfs_xattr.h 2004-08-14 01:38:11.000000000 -0400 +++ linux-2.6.9.base/include/linux/reiserfs_xattr.h 2004-11-30 16:03:42.000000000 -0500 @@ -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 [-- Attachment #5: 04-vfs-private-reiserfs.diff --] [-- Type: text/x-patch, Size: 1928 bytes --] From: Jeff Mahoney <jeffm@suse.com> 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. Signed-off-by: Jeff Mahoney <jeffm@suse.com> diff -ruNpX dontdiff linux-2.6.9.base/include/linux/reiserfs_xattr.h linux-2.6.9.private/include/linux/reiserfs_xattr.h --- linux-2.6.9.base/include/linux/reiserfs_xattr.h 2004-11-30 16:03:42.000000000 -0500 +++ linux-2.6.9.private/include/linux/reiserfs_xattr.h 2004-12-07 14:23:43.266996840 -0500 @@ -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 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 --- linux-2.6.9.base/include/linux/reiserfs_fs_i.h 2004-11-19 14:40:57.000000000 -0500 +++ linux-2.6.9.private/include/linux/reiserfs_fs_i.h 2004-12-07 14:25:40.259211320 -0500 @@ -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; ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-07 19:57 ` 2.6.10-rc2-mm4 Jeff Mahoney @ 2004-12-07 20:28 ` Stephen Smalley 2004-12-07 22:46 ` 2.6.10-rc2-mm4 Jeff Mahoney 0 siblings, 1 reply; 38+ messages in thread From: Stephen Smalley @ 2004-12-07 20:28 UTC (permalink / raw) To: Jeff Mahoney Cc: Christoph Hellwig, Chris Wright, Andrew Morton, lkml, James Morris, Chris Mason 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? -- Stephen Smalley <sds@epoch.ncsc.mil> National Security Agency ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-07 20:28 ` 2.6.10-rc2-mm4 Stephen Smalley @ 2004-12-07 22:46 ` Jeff Mahoney 2004-12-08 13:28 ` 2.6.10-rc2-mm4 Stephen Smalley 0 siblings, 1 reply; 38+ messages in thread From: Jeff Mahoney @ 2004-12-07 22:46 UTC (permalink / raw) To: Stephen Smalley Cc: Christoph Hellwig, Chris Wright, Andrew Morton, lkml, James Morris, Chris Mason -----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----- ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-07 22:46 ` 2.6.10-rc2-mm4 Jeff Mahoney @ 2004-12-08 13:28 ` Stephen Smalley 0 siblings, 0 replies; 38+ messages in thread From: Stephen Smalley @ 2004-12-08 13:28 UTC (permalink / raw) To: Jeff Mahoney Cc: Christoph Hellwig, Chris Wright, Andrew Morton, lkml, James Morris, Chris Mason On Tue, 2004-12-07 at 17:46, Jeff Mahoney wrote: > 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. -- Stephen Smalley <sds@epoch.ncsc.mil> National Security Agency ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 17:50 2.6.10-rc2-mm4 Andrew Morton ` (2 preceding siblings ...) 2004-11-30 19:18 ` 2.6.10-rc2-mm4 Stephen Smalley @ 2004-12-01 1:37 ` Matthew Dobson 2004-12-03 9:23 ` 2.6.10-rc2-mm4 Andi Kleen 2004-12-01 21:10 ` 2.6.10-rc2-mm4 Adrian Bunk 2004-12-09 11:07 ` 2.6.10-rc2-mm4 William Lee Irwin III 5 siblings, 1 reply; 38+ messages in thread From: Matthew Dobson @ 2004-12-01 1:37 UTC (permalink / raw) To: Andrew Morton, Andi Kleen; +Cc: LKML On Tue, 2004-11-30 at 09:50, Andrew Morton wrote: > +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 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 --- linux-2.6.10-rc2-mm4/arch/i386/kernel/srat.c 2004-11-30 15:04:38.000000000 -0800 +++ linux-2.6.10-rc2-mm4-MAX_NR_ZONES-fixlet/arch/i386/kernel/srat.c 2004-11-30 17:23:56.000000000 -0800 @@ -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[]. 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 --- linux-2.6.10-rc2-mm4/include/linux/mmzone.h 2004-11-30 15:05:21.000000000 -0800 +++ linux-2.6.10-rc2-mm4-MAX_NR_ZONES-fixlet/include/linux/mmzone.h 2004-11-30 17:23:36.000000000 -0800 @@ -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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-01 1:37 ` 2.6.10-rc2-mm4 Matthew Dobson @ 2004-12-03 9:23 ` Andi Kleen 0 siblings, 0 replies; 38+ messages in thread From: Andi Kleen @ 2004-12-03 9:23 UTC (permalink / raw) To: Matthew Dobson; +Cc: Andrew Morton, Andi Kleen, LKML On Tue, Nov 30, 2004 at 05:37:53PM -0800, Matthew Dobson wrote: > On Tue, 2004-11-30 at 09:50, Andrew Morton wrote: > > +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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 17:50 2.6.10-rc2-mm4 Andrew Morton ` (3 preceding siblings ...) 2004-12-01 1:37 ` 2.6.10-rc2-mm4 Matthew Dobson @ 2004-12-01 21:10 ` Adrian Bunk 2004-12-01 22:26 ` 2.6.10-rc2-mm4 Bill Davidsen 2004-12-02 0:18 ` 2.6.10-rc2-mm4 Bjorn Helgaas 2004-12-09 11:07 ` 2.6.10-rc2-mm4 William Lee Irwin III 5 siblings, 2 replies; 38+ messages in thread From: Adrian Bunk @ 2004-12-01 21:10 UTC (permalink / raw) To: Andrew Morton, Bjorn Helgaas, Linus Torvalds; +Cc: linux-kernel >... > 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 -- "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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-01 21:10 ` 2.6.10-rc2-mm4 Adrian Bunk @ 2004-12-01 22:26 ` Bill Davidsen 2004-12-02 0:18 ` 2.6.10-rc2-mm4 Bjorn Helgaas 1 sibling, 0 replies; 38+ messages in thread From: Bill Davidsen @ 2004-12-01 22:26 UTC (permalink / raw) To: Adrian Bunk; +Cc: Andrew Morton, Linus Torvalds, linux-kernel Adrian Bunk wrote: >>... >>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? -- -bill davidsen (davidsen@tmr.com) "The secret to procrastination is to put things off until the last possible moment - but no longer" -me ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-12-01 21:10 ` 2.6.10-rc2-mm4 Adrian Bunk 2004-12-01 22:26 ` 2.6.10-rc2-mm4 Bill Davidsen @ 2004-12-02 0:18 ` Bjorn Helgaas 1 sibling, 0 replies; 38+ messages in thread From: Bjorn Helgaas @ 2004-12-02 0:18 UTC (permalink / raw) To: Adrian Bunk; +Cc: Andrew Morton, Linus Torvalds, linux-kernel, Len Brown On Wednesday 01 December 2004 2:10 pm, Adrian Bunk wrote: > > 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 ^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 2.6.10-rc2-mm4 2004-11-30 17:50 2.6.10-rc2-mm4 Andrew Morton ` (4 preceding siblings ...) 2004-12-01 21:10 ` 2.6.10-rc2-mm4 Adrian Bunk @ 2004-12-09 11:07 ` William Lee Irwin III 5 siblings, 0 replies; 38+ messages in thread From: William Lee Irwin III @ 2004-12-09 11:07 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, jbarnes On Tue, Nov 30, 2004 at 09:50:45AM -0800, Andrew Morton wrote: > 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. > +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 Index: mm4-2.6.10-rc2/include/asm-ia64/unistd.h =================================================================== --- mm4-2.6.10-rc2.orig/include/asm-ia64/unistd.h 2004-12-09 02:17:11.460765881 -0800 +++ mm4-2.6.10-rc2/include/asm-ia64/unistd.h 2004-12-09 02:51:03.990037857 -0800 @@ -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) ^ permalink raw reply [flat|nested] 38+ messages in thread
end of thread, other threads:[~2004-12-14 19:02 UTC | newest]
Thread overview: 38+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-03 21:59 2.6.10-rc2-mm4 Terence Ripperda
2004-12-05 19:46 ` 2.6.10-rc2-mm4 Alan Cox
[not found] <41BF2332.mailL911D9Q6T@suse.de.suse.lists.linux.kernel>
2004-12-14 19:00 ` 2.6.10-rc2-mm4 Andi Kleen
-- strict thread matches above, loose matches on Subject: below --
2004-11-30 18:29 2.6.10-rc2-mm4 Petr Vandrovec
2004-11-30 18:38 ` 2.6.10-rc2-mm4 Alan Cox
2004-11-30 17:50 2.6.10-rc2-mm4 Andrew Morton
2004-11-30 18:06 ` 2.6.10-rc2-mm4 Arjan van de Ven
2004-11-30 18:21 ` 2.6.10-rc2-mm4 Andrew Morton
2004-11-30 18:25 ` 2.6.10-rc2-mm4 Arjan van de Ven
2004-11-30 18:32 ` 2.6.10-rc2-mm4 Andrew Morton
2004-11-30 17:44 ` 2.6.10-rc2-mm4 Alan Cox
2004-11-30 19:46 ` 2.6.10-rc2-mm4 Andrew Morton
2004-11-30 19:36 ` 2.6.10-rc2-mm4 Arjan van de Ven
2004-11-30 18:48 ` 2.6.10-rc2-mm4 William Lee Irwin III
2004-12-02 8:03 ` 2.6.10-rc2-mm4 Jes Sorensen
2004-12-02 8:01 ` 2.6.10-rc2-mm4 Jes Sorensen
2004-11-30 18:31 ` 2.6.10-rc2-mm4 Christoph Hellwig
2004-11-30 18:38 ` 2.6.10-rc2-mm4 Alan Cox
2004-11-30 18:30 ` 2.6.10-rc2-mm4 Christoph Hellwig
2004-11-30 19:18 ` 2.6.10-rc2-mm4 Stephen Smalley
2004-11-30 19:29 ` 2.6.10-rc2-mm4 Chris Wright
2004-11-30 19:43 ` 2.6.10-rc2-mm4 Christoph Hellwig
2004-11-30 19:55 ` 2.6.10-rc2-mm4 Jeff Mahoney
2004-12-01 23:32 ` 2.6.10-rc2-mm4 Jeffrey Mahoney
2004-12-02 1:01 ` 2.6.10-rc2-mm4 Chris Wright
2004-12-02 1:11 ` 2.6.10-rc2-mm4 Jeff Mahoney
2004-12-02 13:32 ` 2.6.10-rc2-mm4 Stephen Smalley
2004-12-02 13:15 ` 2.6.10-rc2-mm4 Stephen Smalley
2004-12-07 19:57 ` 2.6.10-rc2-mm4 Jeff Mahoney
2004-12-07 20:28 ` 2.6.10-rc2-mm4 Stephen Smalley
2004-12-07 22:46 ` 2.6.10-rc2-mm4 Jeff Mahoney
2004-12-08 13:28 ` 2.6.10-rc2-mm4 Stephen Smalley
2004-12-01 1:37 ` 2.6.10-rc2-mm4 Matthew Dobson
2004-12-03 9:23 ` 2.6.10-rc2-mm4 Andi Kleen
2004-12-01 21:10 ` 2.6.10-rc2-mm4 Adrian Bunk
2004-12-01 22:26 ` 2.6.10-rc2-mm4 Bill Davidsen
2004-12-02 0:18 ` 2.6.10-rc2-mm4 Bjorn Helgaas
2004-12-09 11:07 ` 2.6.10-rc2-mm4 William Lee Irwin III
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox