Skip to contentSkip to conversation

2.6.8-rc3-mm1

DISCUSSION Andrew Morton 13 participants 35 messages Aug 5, 2004 – Aug 9, 2004 1 message not in the archive

Subsystems (13)
Documentation MIPS MM core Scheduler +9 more subsystems
lore
Share & tools
lore
#0 lore raw

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc3/2.6.8-rc3-mm1/

- Added David Woodhouse's MTD tree to the "external trees" list

- Dropped the staircase scheduler, mainly because the schedstats patch broke it.

We learned quite a lot from having staircase in there. Now it's time for a new scheduler anyway.

Changes since 2.6.8-rc2-mm2:

bk-acpi.patch
bk-agpgart.patch
bk-alsa.patch
bk-dma-declare-coherent-memory.patch
bk-cpufreq.patch
bk-driver-core.patch
bk-drm.patch
bk-ieee1394.patch
bk-input.patch
bk-libata.patch
bk-mtd.patch
bk-netdev.patch
bk-ntfs.patch
bk-pci.patch
bk-pnp.patch
bk-power.patch
bk-scsi.patch
bk-usb.patch

External trees

-longhaul-fix.patch -bk-power-x86_64-fix.patch -ppc64-__make_room-warning-fix.patch -ppc64-fix-off-by-one-in-mem_init.patch -ppc64-struct-pci_controller-cleanup.patch -ppc64-isa-device-tree-node-refcount-fix.patch -ppc64-fix-ras-irq-handlers.patch -ppc64-fix-hotplug-irq-migration-code.patch -ppc64-fix-cpu_up-race.patch -ppc64-improve-slb-reload.patch -ppc64-remove-include-processorh-from-div64s.patch -ppc32-support-for-mpc8560-cpu-and-boards.patch -ppc32-support-for-mpc8555-cpu-and-board.patch -bio_copy_user-cleanups.patch -oom-show_free_areas.patch -fix-menuconfig-partial-inability-to-show-help-texts.patch -quiet-down-per-zone-memory-stats.patch -fat-kill-nls-default.patch -msi-stop-using-dev-bus-ops-directly-in-msic.patch -msi-msi-msi-x-api-updates.patch -rename-config_pci_use_vector-to-config_pci_msi.patch -intel8x0c-to-include-ck804-audio-support.patch -d_unhash-consolidation.patch -activate-smbus-device-on-hp-d300l.patch -add-support-for-innovision-dm-8401h.patch -maintainers-update.patch
-fdomain-isa-fixup.patch
-modular-swim3.patch
-modular-anscd.patch
-jffs2_compression_options-fix.patch -ppc8xx-maintainer-patch.patch -ext2_readdir-filp-f_pos-fix.patch -netfilter-ip_nat_snmp_basicc-fix-inlines-fwd.patch -nfs4-oops-fixes.patch
-dvb-errno-removal.patch -documentation-fix-for-nmi-watchdog.patch -hpet-copyrights-cleanup.patch -remove-outdated-reference-to-documentation-arm-sa1100-pcmcia-fwd.patch -canonically-reference-files-in-documentation-code-comments-part.patch -remove-symbol_is.patch -fix-pci-access-mode-dependences-in-arch-i386-kconfig.patch -fix-inlining-errors-in-drivers-scsi-aic7xxx-aic79xx_osmc.patch -fix-inline-related-gcc-34-build-failures-in.patch -bridge-build-fix.patch

Merged

+2-2-md-multipathing-fixes.patch

MD multipath fix

+fix-reading-string-module-parameters-in-sysfs.patch

module_param presentation fix

+sound-control-build-fix.patch

Alsa build fix

+pci-quirks-warning-fix.patch

bk-pci warning fix

-radix_tree_tag_set-atomic.patch
-radix_tree_tag_set-only-needs-read_lock.patch

These were wrong - dropped.

+ppc64-fix-free_irq.patch
+ppc64-pci_dn-cleanups.patch +ppc64-32-bit-ptrace-geteventmsg-fix.patch +ppc64-various-xics-fixes.patch +ppc64-fix-pci-allocation-warning.patch +ppc64-avoid-speculative-execution-after-rfid.patch +ppc64-set-smt-thread-priority-to-medium-for-all-exceptions.patch +ppc64-fix-chrp_progress-mismerge.patch +ppc64-suppress-store_purr-unused-warning.patch +ppc64-move-spinline-out-of-global-menu.patch +ppc64-suppress-unused-var-warning-in-get_irq_server.patch

ppc64 updates

+ppc32-fix-mktree-on-64bit-hosts.patch

ppc32 update

-hugetlb_shm_group-sysctl-gid-0-fix.patch

Dropped - it got int he way of other things.

+barrier-md-fix.patch

Fix the last bug in the IDE barrier code.

+sched-timeslice-fix.patch
+sched-consolidate-sched-domains-ppc64-fix.patch

CPU scheduler fixes

+schedstats-2.patch
+schedstats-2-namespace-fix.patch
+schedstats-2-up-build-fix.patch

CPU scheduler statitics

+flex-mmap-for-s390x.patch

Reworked userspace mmap layout for s390.

-pkt_lock_door-warning-fix.patch

Was not needed.

+even-more-might_sleep-checks.patch

Additional might_sleep() fixes

+imm-oops-fix.patch

Fix an oops in imm.c

+tmpfs-atomicity-fix.patch

Fix scheduling-in-atomic in shmem.c

+268-rc2-mm2-warning-on-numa-q.patch

Warning fix

+some-random-nodemask-fix.patch
+nodemask-build-fix.patch

Fixes against the nodemask patch.

+i2o-devfs-fix.patch

Fix the i2o patch

+fbdev-find-correct-logo-for-directcolor-24bpp.patch

fbdev fix

+fix-inlining-errors-in-drivers-scsi-aic7xxx-aic79xx_osmc.patch +fix-inline-related-gcc-34-build-failures-in.patch +igxb_main-gcc-34-build-fix.patch

More gcc-3.4/3.5 fixes

+ext2_readdir-filp-f_pos-fix.patch

Fix f_pos handling in ext2_readdir.

+x86-64-merge-for-268rc2-mm1-fix.patch +x86-64-merge-for-268rc2-mm1-fix2.patch +fix-compilation-without-config_gart_iommu-on-x86-64.patch

Fixes against x86-64-merge-for-268rc2-mm1.patch

+ia64-swiotlb-fixes-fix.patch

Fix for ia64-swiotlb-fixes.patch

+more-altix-system-controller-changes.patch

Fixes for the Altix driver in -mm.

-staircase-cpu-scheduler-268-rc2-mm1.patch

Dropped.

+token-based-load-control-no-swap-build-fix.patch

Build fix for the VM load control patch.

+cdrom-event-notification-fixes.patch

A few fixes related to cdrom media event notification

+new-device-driver-to-enable-the-ibm-multiport-serial-adapter.patch

New serial driver

+iteraid.patch
+iteraid-cleanup.patch

New ITE IT8212 RAID controller driver. Still needs a bit of work before handoff to the scsi guys to look at.

+kill-udf-registration-unregistration-messages.patch

Remove noisy printk

+sparc-remove-undefined-symbol.patch

sparc32 build fix

+nbd-fix-struct-request-race-condition.patch

nbd fix.

+consolidate-prof_cpu_mask.patch
+profile_pc.patch
+profile_tick.patch
+profile-tick-fix.patch
+move-profile-operations.patch
+make-private-profile-state-static.patch
+make-prof_buffer-atomic_t.patch

Consolidate a lot of the kernel profiling code.

+ipmi-watchdog-patch.patch

Make the IPMI driver look more like a real watchdog driver

+dio-bio-sizing-fix.patch

Optimise sizing of direct-io BIOs

+is_err-is-unlikely.patch
+is_err-unlikeliness-cleanup.patch

Stick an unlikely() in IS_ERR()

+igxb-speedup.patch

Fixup/speedup this net driver

+boolean-typo-in-dvb.patch

Fix logic expression.

+fix-netpoll-cleanup-on-abort-without-dev.patch

Fix netpoll oops

+add-missing-watchdog-compatible_ioctls.patch

More compat ioctl handling

+idt77252c-add-missing-pci_enable_device.patch

Fix driver PCI handling.

+aioc-rename-struct-timeout-to-struct-aio_timeout.patch

Rename timeout to aio_timeout.

+fix-compiling-oldconfig-with-gcc-35.patch

Build fix

+might-sleep-in-atomic-while-dumping-elf.patch

Fix possible deadlock in elf dumping code.

+awe_wave-oss-too-much-__exit.patch

section fix in OSS driver

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

Fix xoncurrent access to IDE controllers

+mark-loop_change_fd-as-an-ulong-compat-ioctl.patch

compat ioctl fix

+readahead-simplification.patch

Clean up recent readahead changes

+mlock-as-user-for-268-rc2-mm2.patch
+mlock-as-user-fixes.patch
+increase-mlock-limit-to-32k.patch

Allow unprivileged users to do mlock, subject to rlimits

+pirq_enable_irq-cleanup.patch

clean up pirq_enable_irq()

+ip2mainc-add-missing-pci_enable_device.patch
+tpam_mainc-add-missing-pci_enable_device.patch
+ibmasm-add-missing-pci_enable_device.patch
+hp100c-add-missing-pci_enable_device.patch
+ioc3-ethc-add-missing-pci_enable_device.patch
+de4x5c-add-missing-pci_enable_device.patch
+cpqfc-add-missing-pci_enable_device.patch
+document-pci_disable_device.patch

Fix PCI handling in various drivers

+fix-gcc-35-compile-issue-in-mm-mempolicyc.patch

gcc-3.5 again

+eata_pio-warning-fix.patch

Fix a warning

+via-agpc-resume-suspend-support.patch

suspend/resume support for the VIA AGP driver

+rpaphp-build-break-remove-eeh-register.patch

build fix

+disable-atykb-warning.patch

Kill pestiferous printk

+collected-aio-retry-fixes-and-enhancements.patch +collected-aio-retry-fixes-and-enhancements-cleanup.patch +aio-splice-runlist-for-fairness-across-io-contexts.patch +aio-workqueue-context-switch-reduction.patch

AIO fixes

+x86_64-numa-emulation.patch

Permit a non-numa x86_64 box to be treated as NUMA.

+make-max_init_args-25.patch

Pass more arguments to init

+sparc32-turbosparc-flush-warnings.patch +sparc32-init_idle.patch +sparc32-sun4d-cpu_present_map-is-a-cpumask_t.patch +sparc32-smp_processor_id-bitfixup-fixes.patch +sparc32-reinstate-smp_reschedule_irq.patch +sparc32-remove-references-to-start_secondary.patch +sparc32-define-cache_decay_ticks.patch +sparc32-remove-unused-variable-in-dvmac.patch +sparc32-sun4-does-not-support-smp.patch +sparc32-make-config_smp-depend-on-config_broken.patch +sparc32-gcc-33-macro-parenthesization-fix-for-memcpys.patch +sparc32-ignore-undefined-symbols-with-3-or-more-leading-underscores.patch

sparc32 udpates

+wireless-extension-v17-for-linus.patch
+wireless-drivers-update-for-we-17.patch

Upgrade wirless extensions API

+request_region-for-winbond-and-smsc-parport-drivers.patch

request_region() fixes

+add-bus-dependencies-to-two-scsi-drivers.patch

Kconfig fixes

+knfsd-server-permissions-fix.patch

Fix handling of device nodes which reside on an ro-exported NFS server.

All 450 patches

2-2-md-multipathing-fixes.patch
md: fix multipath for readhead requests

fix-reading-string-module-parameters-in-sysfs.patch
fix reading string module parameters in sysfs

sysfs-backing-store-add-sysfs_dirent-to-sysfs-dentry.patch
sysfs backing store: add sysfs_dirent to sysfs dentry

sysfs-backing-store-use-sysfs_dirent-tree-for-readdir-etc.patch
sysfs backing store: use sysfs_dirent tree for ->readdir etc.

sysfs-backing-store-free-sysfs_dirent-on-file-removal.patch
sysfs backing store: free sysfs_dirent on file removal

sysfs-backing-store-change-sysfs_file_operations.patch
sysfs backing store: change sysfs_file_operations

sysfs-backing-store-stop-pinning-dentries-inodes-for-leaves.patch
sysfs backing store: stop pinning dentries & inodes for leaves

bk-acpi.patch

bk-agpgart.patch

bk-alsa.patch

bk-dma-declare-coherent-memory.patch

bk-cpufreq.patch

bk-driver-core.patch

bk-drm.patch

bk-ieee1394.patch

bk-input.patch

bk-libata.patch

bk-mtd.patch

bk-netdev.patch

bk-ntfs.patch

bk-pci.patch

bk-pnp.patch

bk-power.patch

bk-scsi.patch

bk-usb.patch

mm.patch
add -mmN to EXTRAVERSION

bk-netdev-axnet_cs-fix.patch
bk-netdev-axnet_cs-fix

bk-netdev-hp-plus-fix.patch
bk-netdev-hp-plus-fix

mm-swsusp-make-sure-we-do-not-return-to-userspace-where-image-is-on-disk.patch
-mm swsusp: make sure we do not return to userspace where image is on disk

mm-swsusp-copy_page-is-harmfull.patch
-mm swsusp: copy_page is harmfull

sound-control-build-fix.patch
sound/core/control.c build fix

pci-quirks-warning-fix.patch
pci/quirks.c warning fix

nmi-trigger-switch-support-for-debuggingupdated.patch
NMI trigger switch support for debugging(updated)

nmi-trigger-switch-support-for-debuggingupdated-fix.patch
nmi-trigger-switch-support-for-debuggingupdated-fix

make-i386-die-more-resilient-against-recursive-errors.patch
Make i386 die() more resilient against recursive errors

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

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-ia64-support.patch
IA64 kgdb support
ia64 kgdb repair and cleanup
ia64 kgdb fix

kgdb-ia64-fixes.patch
kgdb: ia64 fixes

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

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

must-fix-update-5.patch
must-fix update

mustfix-lists.patch
mustfix lists

ppc64-fix-free_irq.patch
ppc64: fix free_irq()

ppc64-pci_dn-cleanups.patch
ppc64: pci_dn cleanups

ppc64-32-bit-ptrace-geteventmsg-fix.patch
ppc64: 32-bit ptrace geteventmsg fix

ppc64-various-xics-fixes.patch
ppc64: various XICS fixes

ppc64-fix-pci-allocation-warning.patch
ppc64: fix PCI allocation warning

ppc64-avoid-speculative-execution-after-rfid.patch
ppc64: avoid speculative execution after rfid

ppc64-set-smt-thread-priority-to-medium-for-all-exceptions.patch
ppc64: set SMT thread priority to medium for all exceptions

ppc64-fix-chrp_progress-mismerge.patch
ppc64: fix chrp_progress mismerge

ppc64-suppress-store_purr-unused-warning.patch
ppc64: suppress 'store_purr' unused warning

ppc64-move-spinline-out-of-global-menu.patch
ppc64: move SPINLINE out of global menu

ppc64-suppress-unused-var-warning-in-get_irq_server.patch
ppc64: suppress unused var warning in get_irq_server()

ppc32-fix-mktree-on-64bit-hosts.patch
ppc32: Fix 'mktree' on 64bit hosts

ppc64-reloc_hide.patch

invalidate_inodes-speedup.patch
invalidate_inodes speedup
more invalidate_inodes speedup fixes

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

get_user_pages-handle-VM_IO.patch
fix get_user_pages() against mappings of /dev/mem

fa311-mac-address-fix.patch
wrong mac address with netgear FA311 ethernet card

pid_max-fix.patch
Bug when setting pid_max > 32k

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

oops-dump-preceding-code.patch
i386 oops output: dump preceding code

lockmeter.patch
lockmeter
ia64 CONFIG_LOCKMETER fix

unplug-can-sleep.patch
unplug functions can sleep

firestream-warnings.patch
firestream warnings

ext3_rsv_cleanup.patch
ext3 block reservation patch set -- ext3 preallocation cleanup

ext3_rsv_base.patch
ext3 block reservation patch set -- ext3 block reservation
ext3 reservations: fix performance regression
ext3 block reservation patch set -- mount and ioctl feature ext3 block reservation patch set -- dynamically increase reservation window ext3 reservation ifdef cleanup patch
ext3 reservation max window size check patch
ext3 reservation file ioctl fix

ext3-reservation-default-on.patch
ext3 reservation: default to on

ext3-lazy-discard-reservation-window-patch.patch
ext3 lazy discard reservation window patch
ext3 discard reservation in last iput fix patch
Fix lazy reservation discard
ext3 reservations: bad_inode fix
ext3 reservation discard race fix

really-ptrace-single-step-2.patch
ptrace single-stepping fix

ipr-ppc64-depends.patch
Make ipr.c require ppc

disk-barrier-core.patch
disk barriers: core
disk-barrier-core-tweaks

disk-barrier-ide.patch
disk barriers: IDE
disk-barrier-ide-symbol-expoprt
disk-barrier ide warning fix

barrier-update.patch
barrier update

barrier-flushing-fix.patch
barrier flushing fix

disk-barrier-scsi.patch
disk barriers: scsi

disk-barrier-dm.patch
disk barriers: devicemapper

disk-barrier-md.patch
disk barriers: MD

barrier-md-fix.patch
barriers: md fix

reiserfs-v3-barrier-support.patch
reiserfs v3 barrier support
reiserfs-v3-barrier-support-tweak

sync_dirty_buffer-retval.patch
make sync_dirty_buffer() return something useful

ext3-barrier-support.patch
ext3 barrier support

jbd-barrier-fallback-on-failure.patch
jbd: barrier fallback on failure

ide-print-failed-opcode.patch
ide: print failed opcode on IO errors
From: Jens Axboe <[email protected]>
Subject: Re: ide errors in 7-rc1-mm1 and later

add-bh_eopnotsupp-for-testing.patch
add BH_Eopnotsupp for testing async barrier failures

handle-async-barrier-failures.patch
Handle async barrier failures

tty_io-hangup-locking.patch
tty_io.c hangup locking

perfctr-core.patch
From: Mikael Pettersson <[email protected]>
Subject: [PATCH][1/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: core CONFIG_PERFCTR=n build fix
From: Mikael Pettersson <[email protected]>
Subject: [PATCH][6/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: misc

perfctr-i386.patch
From: Mikael Pettersson <[email protected]>
Subject: [PATCH][2/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: i386 perfctr #if/#ifdef cleanup
perfctr Dothan support
perfctr x86_tests build fix

perfctr-x86-init-bug.patch
perfctr x86 init bug

perfctr-k8-fix-for-internal-benchmarking-code.patch
perfctr: K8 fix for internal benchmarking code

perfctr-x86_64.patch
From: Mikael Pettersson <[email protected]>
Subject: [PATCH][3/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: x86_64

perfctr-ppc.patch
From: Mikael Pettersson <[email protected]>
Subject: [PATCH][4/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: PowerPC perfctr ppc32 update
perfctr update 4/6: PPC32 cleanups

perfctr-ppc32-buglet-fix.patch
perfctr ppc32 buglet fix

perfctr-virtualised-counters.patch
From: Mikael Pettersson <[email protected]>
Subject: [PATCH][5/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: virtualised counters perfctr update 6/6: misc minor cleanups
perfctr update 3/6: __user annotations perfctr-cpus_complement-fix
perfctr cpumask cleanup

perfctr-ifdef-cleanup.patch
perfctr ifdef cleanup

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

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

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

perfctr-documentation-update.patch
perfctr documentation update

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

perfctr-inheritance-illegal-sleep-bug.patch
perfctr inheritance illegal sleep bug

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

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

ext3-online-resize-patch.patch
ext3: online resizing

ext3-online-resize-warning-fix.patch
ext3-online-resize-warning-fix

sched-timeslice-fix.patch
sched: fix timeslice calculations for HZ=1000.

sched-clean-init-idle.patch
sched: cleanup init_idle()

sched-clean-fork.patch
sched: cleanup, improve sched <=> fork APIs

sched-clean-fork-rename-wake_up_new_process-wake_up_new_task.patch
sched: rename wake_up_new_process -> wake_up_new_task

kernelthread-idle-fix-2.patch
kernel thread idle fix

sched-misc-cleanups-2.patch
sched: misc cleanups #2

sched-unlikely-rt_task.patch
sched: make rt_task unlikely

sched-misc.patch
sched: sched misc changes

sched-misc-fix-rt.patch
sched: fix RT scheduling & interactivity estimator

sched-no-balance-clone.patch
sched: disable balance on clone

sched-remove-balance-clone.patch
sched: remove balance on clone

sched-fork-hotplug-cleanuppatch.patch
sched: fork hotplug hanling cleanup

sched-consolidate-sched-domains.patch
sched: consolidate sched domains

sched-consolidate-sched-domains-ppc64-fix.patch
sched-consolidate-sched-domains ppc64 fix

sched-consolidate-domains-fix.patch
sched: fix for sched-consolidate-domains

sched-consolidate-domains-fix-2.patch
another sched consolidate domains fix

sched-domain-node-span-4.patch
sched: limit cpuspan of node scheduler domains

sched-merge-fix.patch
sched: merge fix

sched-domain-node-span-4-warning-fix.patch
sched-domain-node-span-4-warning-fix

sched-isolated-sched-domains.patch
sched: isolated sched domains

sched-isolated-sched-domains-fix.patch
sched-isolated-sched-domains-fix

create-cpu_sibling_map-for-ppc64.patch
Create cpu_sibling_map for PPC64

create-cpu_sibling_map-for-ppc64-fix.patch
create-cpu_sibling_map-for-ppc64-fix

sched-adjust-p4-per-cpu-gain.patch
sched: adjust p4 per-cpu gain

schedstats-2.patch
scheduler stats

schedstats-2-namespace-fix.patch
schedstats-2-namespace-fix

schedstats-2-up-build-fix.patch
schedstats-2-up-build-fix

memory-backed-inodes-fix.patch
memory-backed inodes fix

ext3_bread-cleanup.patch
ext3_bread() cleanup

flexible-mmap-2.6.7-mm3-A8.patch
i386 virtual memory layout rework

flexible-mmap-bug-fix.patch
flexible-mmap BUG fix

flexible-mmap-updatepatch-267-mm5.patch
flexible-mmap update

sysctl-tunable-for-flexmmap.patch
sysctl tunable for flexmmap

legacy_va_layout-docs.patch
legacy_va_layout docs

flex-mmap-for-s390x.patch
flex mmap for s390(x)

driver-model-and-sysfs-support-for-pcmcia-1-3.patch
driver model and sysfs support for PCMCIA (1/3)

driver-model-and-sysfs-support-for-pcmcia-update.patch
driver model and sysfs support for PCMCIA update

update-drivers-net-pcmcia-2-3.patch
update drivers/net/pcmcia (2/3)

update-drivers-net-wireless-3-3.patch
update drivers/net/wireless (3/3)

posix-locking-fix-to-posix_same_owner.patch
posix locking: Minimal fix to posix_same_owner()

posix-locking-fix-to-locking-code.patch
posix locking: more locking code fixes

posix-locking-fix-up-nfs4statec.patch
posix locking: Fix up nfs4state.c

posix-locking-fix-up-lockd.patch
posix locking: Fix up lockd to make use of the new interface

posix-locking-fl_owner_t-to-pid-mapping.patch
posix locking: mapping between fl_owner_t and client-side "pid"

dvdrw-support-for-267-bk13.patch
DVD+RW support for 2.6.7-bk13

cdrw-packet-writing-support-for-267-bk13.patch
CDRW packet writing support

packet-remove-warning.patch
packet: remove #warning

packet-door-unlock.patch
packet writing: door unlocking fix
pkt_lock_door() warning fix

dvd-rw-packet-writing-update.patch
Packet writing support for DVD-RW and DVD+RW discs.

fix-race-in-pktcdvd-kernel-thread-handling.patch
Fix race in pktcdvd kernel thread handling

fix-open-close-races-in-pktcdvd.patch
Fix open/close races in pktcdvd

packet-writing-review-fixups.patch
packet writing: review fixups

remove-pkt_dev-from-struct-pktcdvd_device.patch
Remove pkt_dev from struct pktcdvd_device

packet-writing-docco.patch
packet writing documentation

trivial-cdrw-packet-writing-doc-update.patch
Trivial CDRW packet writing doc update

convert-packet-writing-to-seq_file.patch
packet writing: convert to seq_file

control-pktcdvd-with-an-auxiliary-character-device.patch
Control pktcdvd with an auxiliary character device
Subject: Re: 2.6.8-rc2-mm2

control-pktcdvd-with-an-auxiliary-character-device-fix.patch
control-pktcdvd-with-an-auxiliary-character-device-fix

simplified-request-size-handling-in-cdrw-packet-writing.patch
Simplified request size handling in CDRW packet writing

fix-setting-of-maximum-read-speed-in-cdrw-packet-writing.patch
Fix setting of maximum read speed in CDRW packet writing

r8169_napi-help-text-2.patch
R8169_NAPI help text

no-sysgood-for-ptrace-singlestep.patch
Don't use SYSGOOD for ptrace singlestep

err2-6-hashbin_remove_this-locking-fix.patch
err2-6: hashbin_remove_this() locking fix

dm-use-idr.patch
devicemapper: use an IDR tree for tracking minors

ipc-1-3-add-refcount-to-ipc_rcu_alloc.patch
ipc: Add refcount to ipc_rcu_alloc

ipc-2-3-remove-sem_revalidate.patch
ipc: remove sem_revalidate

ipc-3-3-enforce-semvmx-limit-for-undo.patch
ipc: enforce SEMVMX limit for undo

cleanup-of-ipc-msgc.patch
cleanup of ipc/msg.c

sk98lin-procfs-fix.patch
sk98lin procfs fix

cpufreq-driver-for-nforce2-kernel-267.patch
cpufreq driver for nForce2

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

uml-base-patch.patch
uml: Uml base patch

rename-uml-console-device.patch
uml: rename console_device

uml-readds-just-for-now-ghashh-for-uml.patch
uml: Readds (just for now) ghash.h for UML

uml-avoid-that-gcc-breaks-uml-with-unit-at-a-time-compilation-mode.patch
uml: Avoid that gcc breaks UML with "unit at a time" compilation mode.

uml-fixes-an-host-fd-leak-caused-by-hostfs.patch
uml: Fixes an host fd leak caused by hostfs.

uml-adds-legacy_pty-config-option.patch
uml: Adds LEGACY_PTY config option

uml-makes-make-help-arch=um-work.patch
uml: Makes "make help ARCH=um" work.

uml-fixes-fixdepc-to-support-arch-um-include-uml-configh.patch
uml: Fixes "fixdep.c" to support arch/um/include/uml-config.h.

uml-kill-useless-warnings.patch
uml: Kill useless warnings

uml-avoids-compile-failure-when-host-misses-tkill.patch
uml: Avoids compile failure when host misses tkill().

uml-reduces-code-in-_user-files-by-moving-it-in-_kern-files-if-already-possible.patch
uml: Reduces code in *_user files, by moving it in _kern files if already possible.

uml-fixes-raw-and-uses-it-in-check_one_sigio-also-fixes-a-silly-panic-eintr-returned-by-call.patch
uml: Fixes raw() and uses it in check_one_sigio; also fixes a silly panic (EINTR returned by call).

uml-folds-hostaudio_userc-into-hostaudio_kernc.patch
uml: Folds hostaudio_user.c into hostaudio_kern.c.

uml-use-ptrace_scemu-the-so-called-sysemu-to-reduce-syscall-cost.patch
uml: Use PTRACE_SCEMU (the so-called SYSEMU) to reduce syscall cost.

uml-adds-the-nosysemu-command-line-parameter-to-disable-sysemu.patch
uml: Adds the "nosysemu" command line parameter to disable SYSEMU

uml-adds-proc-sysemu-to-toggle-sysemu-usage.patch
uml: Adds /proc/sysemu to toggle SYSEMU usage.

uml-fix-for-sysemu-patches.patch
uml: Fix for sysemu patches

uml-handles-correctly-errno-==-eintr-in-lots-of-places.patch
uml: Handles correctly errno == EINTR in lots of places.

uml-adds-some-exports.patch
uml: Adds some exports

uml-avoids-a-panic-for-a-legal-situation.patch
uml: Avoids a panic for a legal situation

uml-removes-dead-code-in-trap_kernc.patch
uml: Removes dead code in trap_kern.c

uml-make-malloc-call-vmalloc-if-needed-needed-for-hostfs-on-26-host.patch
uml: Make malloc() call vmalloc if needed. Needed for hostfs on 2.6 host.

uml-little-kmalloc.patch
uml: little-kmalloc

uml-fix-os_process_pc-and-os_process_parent-for-corner-cases.patch
uml: Fix os_process_pc and os_process_parent for corner cases.

uml-remove-a-group-of-unused-bh-functions.patch
uml: remove a group of unused bh functions

fix-warnings-in-net-irda.patch
sparse: fix warnings in net/irda/*

i810_audio-fix-the-error-path-of-resource-management.patch
i810_audio: Fix the error path of resource management

fix-drivers-isdn-hisax-avm_pcic-build-warning-when.patch
Fix drivers/isdn/hisax/avm_pci.c build warning when !CONFIG_ISAPNP

idr-stale-comment.patch
idr.c: remove stale comment

idr-comments-updates.patch
idr comments updates

schedule-profiling.patch
schedule() profiling
From: Arjan van de Ven <[email protected]>
Subject: Re: schedule profileing

add-a-few-might_sleep-checks.patch
Add a few might_sleep() checks

add-a-few-might_sleep-checks-fix.patch
add-a-few-might_sleep-checks fix

even-more-might_sleep-checks.patch
even more might_sleep() checks

imm-oops-fix.patch
imm.c oops fix

tmpfs-atomicity-fix.patch
tmpfs atomicity fix

release_task-may-sleep.patch
permit sleeping in release_task()

crc16-renaming-in-via-velocity-ethernet-driver.patch
CRC16 renaming in VIA Velocity ethernet driver

per_cpu-per_cpu-cpu_gdt_table.patch
percpu: cpu_gdt_table

per_cpu-per_cpu-cpu_gdt_table-fix.patch
per_cpu-per_cpu-cpu_gdt_table-fix

per_cpu-per_cpu-init_tss.patch
percpu: init_tss

per_cpu-per_cpu-cpu_tlbstate.patch
percpu: cpu_tlbstate

gcc35-alps_tdlb7.c.patch
gcc-3.5 fixes

gcc35-always-inline.patch
gcc-3.5 fixes

gcc35-auerswald.c.patch
gcc-3.5 fixes

gcc35-dabusb.c.patch
gcc-3.5 fixes

gcc35-ds.c.patch
gcc-3.5 fixes

gcc35-fixmap.h.patch
gcc-3.5: fixmap.h fix

gcc35-mtrr.h.patch
gcc-3.5 fixes

gcc35-sonypi.patch
gcc-3.5 fixes

gcc35-sp887x.c.patch
gcc-3.5 fixes

gcc35-tda1004x.c.patch
gcc-3.5 fixes

gcc35-transport.h.patch
gcc-3.5 fixes

gcc35-ufs_fs.h.patch
gcc-3.5 fixes

gcc35-videodev.c.patch
gcc-3.5 fixes

gcc35-wavefront_fx.c.patch
gcc-3.5 fixes

dev-zero-vs-hugetlb-mappings.patch
/dev/zero vs hugetlb mappings.

hugetlbfs-private-mappings.patch
hugetlbfs private mappings

net-kconfig-crc16-fix.patch
net/Kconfig crc16 warning fix

preset-loops_per_jiffy-for-faster-booting.patch
preset loops_per_jiffy for faster booting

define-inline-as-__attribute__always_inline-also-for-gcc-=-34.patch
#define inline as __attribute__((always_inline)) also for gcc >= 3.4

gcc-34-and-broken-inlining.patch
clean up __always_inline__ usage

handle-undefined-symbols.patch
Fail if vmlinux contains undefined symbols

268-rc2-mm1-link-errors.patch
put irq stacks back into bss

split-generic_file_aio_write-into-buffered-and-direct-i-o-parts.patch
split generic_file_aio_write into buffered and direct I/O parts

making-i-dhash_entries-cmdline-work-as-it-use-to.patch
Make i/dhash_entries cmdline work as it use to.

making-i-dhash_entries-cmdline-work-as-it-use-to-fix.patch
making-i-dhash_entries-cmdline-work-as-it-use-to-fix

jbd-recovery-latency-fix.patch
jbd recovery latency fix

truncate_inode_pages-latency-fix.patch
truncate_inode_pages-latency-fix

journal_clean_checkpoint_list-latency-fix.patch
journal_clean_checkpoint_list latency fix

journal_clean_checkpoint_list-latency-fix-fix.patch
journal_clean_checkpoint_list-latency-fix-fix

kjournald-smp-latency-fix.patch
kjournald-smp-latency-fix

unmap_vmas-smp-latency-fix.patch
unmap_vmas-smp-latency-fix

__cleanup_transaction-latency-fix.patch
__cleanup_transaction-latency-fix

prune_dcache-latency-fix.patch
prune_dcache-latency-fix

filemap_sync-latency-fix.patch
filemap_sync-latency-fix

slab-latency-fix.patch
slab-latency-fix

get_user_pages-latency-fix.patch
get_user_pages-latency-fix

send_IPI_mask_bitmask-build-fix.patch
send_IPI_mask_bitmask() build fix

e1000-build-fix.patch
e1000 build fix

e1000-inlining-fix.patch
e1000 inlining fix

pty_write-latency-fix.patch
pty_write-latency-fix

enable-all-events-for-initramfs.patch
Enable all events for initramfs

arch-i386-kernel-smpc-gcc341-inlining-fix.patch
arch/i386/kernel/smp.c gcc341 inlining fix

268-rc2-mm2-warning-on-numa-q.patch
warning on NUMA-Q

was-removal-of-sync-in-panic.patch
remove sync() from panic

move-cache_reap-out-of-timer-context.patch
Move cache_reap out of timer context

move-cache_reap-out-of-timer-context-fix.patch
move-cache_reap-out-of-timer-context-fix

gettimeofday-nanoseconds-patch-makes-it-possible-for-the-posix-timer.patch
gettimeofday nanoseconds patch

x86-64-singlestep-through-sigreturn-system-call-2.patch
Fix x86-64 singlestep through sigreturn system call

create-nodemask_t.patch
Create nodemask_t

some-random-nodemask-fix.patch
nodemask fix

nodemask-build-fix.patch
nodemask build fix

add-ixdp2x01-board-support-to-cs89x0-driver.patch
Add IXDP2x01 board support to CS89x0 driver

remove-dead-prototypes.patch
remove dead prototypes

s390-use-include-asm-generic-dma-mapping-brokenh.patch
s390: Use include/asm-generic/dma-mapping-broken.h

cdrom-get_last_written-fix.patch
Subject: cdrom.c get_last_written fixup

get_random_bytes-returns-the-same-on-every-boot.patch
get_random_bytes() returns the same on every boot

locking-optimization-for-cache_reap.patch
slab: locking optimization for cache_reap

b44-add-47xx-support.patch
b44: add 47xx support

signal-race-fix.patch
signal handling race fix

signal-race-fix-ia64.patch
signal-race-fix: ia64

signal-race-fix-s390.patch
signal-race fixes for s390

signal-race-fix-s390-fix.patch
s390 signal handling fixes

signal-race-fix-x86_64.patch
signal-race-fixes: x86-64 support

signal-race-fix-x86_64-fix.patch
x86_64 signal handling fix

ppc-signal-handling-fixes.patch
ppc signal handling fixes

signal-race-fixes-sparc-sparc64.patch
signal handling race fixes: sparc and sparc64

signal-race-fixes-ppc64.patch
pPC64 signal race fix patch

process-aggregates.patch
Process Aggregates (PAGG)

process-aggregates-warning-fix.patch
process-aggregates warning fix

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

move-pit-code-to-timer_pit.patch
x86: move PIT code to timer_pit

move-pit-code-to-timer_pit-warning-fix.patch
move-pit-code-to-timer_pit-warning-fix

i2o-build_99.patch
i20 rewrite

i2o-build_99-gcc295-fixes.patch
i2o-build_99-gcc295-fixes

i2o-resync-with-post-266-changes.patch
i2o: resync with post-2.6.6 changes

i2o-resync-with-post-266-changes-2.patch
i2o: more resyncing with post-2.6.6 changes

i2o-devfs-fix.patch
i2o devfs fix

apic-output-reduction.patch
IO-APIC debug message reduction

fix-ide-probe-double-detection.patch
Fix ide probe double detection

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

serial-cs-and-unusable-port-size-ranges.patch
serial-cs and unusable port size ranges

make-shrinker_sem-an-rwsem.patch
make shrinker_sem an rwsem

vlan-support-for-3c59x-3c90x.patch
VLAN support for 3c59x/3c90x

break-out-zone-free-list-initialization.patch
break out zone free list initialization

radeonfb-cleanup-and-little-fixes.patch
radeonfb: cleanup and little fixes

rivafb-i2c-fixes.patch
Rivafb I2C fixes

fbmon-edd-blacklist.patch
fbcom: EDD-based blacklisting

fbcon-differentiate-bits_per_pixel-from-color-depth.patch
fbcon: ifferentiate bits_per_pixel from color depth

fbcon-differentiate-bits_per_pixel-from-color-depth-fixup.patch
fbcon-differentiate-bits_per_pixel-from-color-depth-fixup

fbcon-differentiate-bits_per_pixel-from-color-depth-export.patch
fbcon-differentiate-bits_per_pixel-from-color-depth-export

fbdev-set-color-fields-correctly.patch
fbdev: set color fields correctly

fbdev-attn-maintainers-set-correct-hardware-capabilities.patch
fbdev: ATTN: Maintainers - Set correct hardware capabilities

rivafb-do-not-tap-vga-ports-if-not-x86.patch
rivafb: Do not tap VGA ports if not X86

i810fb-fixes.patch
i810fb fixes

i810fb-fixes-2.patch
i810fb fixes #2

fbdev-find-correct-logo-for-directcolor-24bpp.patch
fbdev: find correct logo for directcolor < 24bpp

drm-optimisation.patch
drm optimisation

net-smc9194c-fix-inline-compile-errors-fwd.patch
net/smc9194.c: fix gcc-3.5 inline compile errors

net-hamachic-remove-bogus-inline-at-function-prototype.patch
net/hamachi.c: gcc-3.5 build fixes

scsi-qla2xxx-fix-inline-compile-errors.patch
qla2xxx gcc-3.5 fixes

net-rrunnerc-fix-inline-compile-error.patch
net/rrunner.c: gcc-3.5 fixes

istallion-remove-inlines.patch
istallion: gcc-3.5 fixes

mxserc-fix-inlines-fwd.patch
mxser.c: gcc-3.5 fixes

radio-maestroc-remove-an-inline-fwd.patch
radio-maestro.c: gcc-3.5 fixes

net-tulip-dmfec-fix-inline-compile-errors-fwd.patch
net/tulip/dmfe.c: gcc-3.5 fixes

fix-inlining-errors-in-drivers-scsi-aic7xxx-aic79xx_osmc.patch
inlining errors in drivers/scsi/aic7xxx/aic79xx_osm.c

fix-inline-related-gcc-34-build-failures-in.patch
fix inline related gcc 3.4 build failures in drivers/net/wan/dscc4.c

igxb_main-gcc-34-build-fix.patch
ixgb_main.c: fix inline compile errors

ext2_readdir-filp-f_pos-fix.patch
ext2_readdir() filp->f_pos fix

do_general_protection-doesnt-disable-irq.patch
do_general_protection doesn't disable irq

jbd-jh-unmapping-race-fix.patch
jbd-jh-unmapping-race-fix

proc_pid_cmdline-race-fix.patch
proc_pid_cmdline() race fix

support-for-exar-xr17c158-octal-uart.patch
Support for Exar XR17C158 Octal UART

x86-64-merge-for-268rc2-mm1.patch
x86-64 merge for 2.6.8rc2-mm1

x86-64-merge-for-268rc2-mm1-fix.patch
x86-64-merge-for-268rc2-mm1-fix

x86-64-merge-for-268rc2-mm1-fix2.patch
x86-64-merge-for-268rc2-mm1 fix2

fix-compilation-without-config_gart_iommu-on-x86-64.patch
Fix compilation without CONFIG_GART_IOMMU on x86-64

ia64-swiotlb-fixes.patch
ia64: Various swiotlb fixes

ia64-swiotlb-fixes-fix.patch
ia64: more swiotlb fixes

altix-system-controller-communication-driver.patch
Altix system controller communication driver

snsc-build-fix.patch
snsc-build-fix

more-altix-system-controller-changes.patch
More Altix system controller changes

move-duplicate-bug-and-warn_on-bits-to-asm-generic.patch
move duplicate BUG and WARN_ON bits to asm-generic

fix-con_buf_size-usage.patch
Fix CON_BUF_SIZE usage

vprintk-support.patch
vprintk support

vprintk-for-ext2-errors.patch
vprintk for ext2 errors

vprintk-for-ext3-errors.patch
vprintk for ext3 errors

prio_tree-kill-vma_prio_tree_init.patch
prio_tree: kill vma_prio_tree_init()

prio_tree-iterator-vma_prio_tree_next-cleanup.patch
prio_tree: iterator + vma_prio_tree_next cleanup

rcu-cpu-offline-cleanup.patch
RCU - cpu-offline-cleanup

rcu-rcu-cpu-offline-fix.patch
RCU - cpu offline fix

rcu-low-latency-rcu.patch
RCU: low latency rcu

alpha-print-the-symbol-of-pc-and-ra-during-oops.patch
alpha: print the symbol of pc and ra during Oops

first-next_cpu-returns-values-nr_cpus.patch
first/next_cpu returns values > NR_CPUS

first-next_cpu-returns-values-nr_cpus-fix.patch
first-next_cpu-returns-values-nr_cpus fix

add-support-for-it8212-ide-controllers.patch
Add support for IT8212 IDE controllers

drivers-net-wan-cycx_x25c189-warning-conflicting-types.patch
drivers/net/wan/cycx_x25.c:189: warning: conflicting types for built-in function 'log2'

watchdog-fix-warning-defined-but-not-used.patch
watchdog: fix warning "defined but not used"

drivers-block-ubc-6.patch
drivers/block/ub.c #6

ub-warning-fixes.patch
ub warning fixes

i386-hotplug-cpu.patch
i386 Hotplug CPU

token-based-thrashing-control.patch
token based thrashing control

token-based-thrashing-control-remove-debug.patch
token-based-thrashing-control-remove-debug

token-based-load-control-no-swap-build-fix.patch
laod control: fix the build with CONFIG_SWAP=n

writeback-page-range-hint.patch
Writeback page range hint

fix-writeback-page-range-to-use-exact-limits.patch
Fix writeback page range to use exact limits

mpage-writepages-range-limit-fix.patch
mpage writepages range limit fix

filemap_fdatawrite-range-interface.patch
filemap_fdatawrite range interface

concurrent-o_sync-write-support.patch
Concurrent O_SYNC write support

nfsd-force-server-side-tcp-when-nfsv4-enabled.patch
nfsd: force server-side TCP when NFSv4 enabled

nfsd-nfsd-is-missing-a-put_group_info-in-the-auth_null.patch
nfsd: nfsd is missing a put_group_info in the auth_null

nfsd-make-cache_init-initialize-reference-count-to-1.patch
nfsd: make cache_init initialize reference count to 1

nfsd-simplify-auth_domain_lookup.patch
nfsd: simplify auth_domain_lookup

nfsd-fix-ip_map-cache-reference-count-leak.patch
nfsd: fix ip_map cache reference count leak.

nfsd-basic-v4-acl-definitions.patch
nfsd: basic v4 ACL definitions

nfsd-posix-nfsv4-acl-translation-for-nfsd.patch
nfsd: POSIX<->NFSv4 acl translation for nfsd

nfsd-acl-support-for-the-nfsv4-server.patch
nfsd: ACL support for the NFSv4 server

cdrom-event-notification-fixes.patch
cdrom event notification fixes

new-device-driver-to-enable-the-ibm-multiport-serial-adapter.patch
new device driver to enable the IBM Multiport Serial Adapter

iteraid.patch
ITE RAID driver

iteraid-cleanup.patch
iteraid cleanup

kill-udf-registration-unregistration-messages.patch
kill UDF registration/unregistration messages

sparc-remove-undefined-symbol.patch
sparc: remove undefined symbol

nbd-fix-struct-request-race-condition.patch
nbd: fix struct request race condition

consolidate-prof_cpu_mask.patch
consolidate prof_cpu_mask

profile_pc.patch
profile_pc()

profile_tick.patch
profile_tick()

profile-tick-fix.patch
profile-tick-fix

move-profile-operations.patch
move profile operations

make-private-profile-state-static.patch
make private profile state static

make-prof_buffer-atomic_t.patch
make prof_buffer atomic_t

ipmi-watchdog-patch.patch
IPMI Watchdog handling updates

dio-bio-sizing-fix.patch
direct-io: size the BIOs more accurately

is_err-is-unlikely.patch
mark IS_ERR as unlikely()

is_err-unlikeliness-cleanup.patch
IS_ERR() unlikeliness cleanup

igxb-speedup.patch
igxb-speedup

boolean-typo-in-dvb.patch
boolean typo in DVB

fix-netpoll-cleanup-on-abort-without-dev.patch
Fix netpoll cleanup on abort without dev

add-missing-watchdog-compatible_ioctls.patch
add missing watchdog COMPATIBLE_IOCTLs

idt77252c-add-missing-pci_enable_device.patch
idt77252.c: add missing pci_enable_device()

aioc-rename-struct-timeout-to-struct-aio_timeout.patch
aio.c: rename 'struct timeout' to 'struct aio_timeout'

fix-compiling-oldconfig-with-gcc-35.patch
fix compiling oldconfig with gcc-3.5

might-sleep-in-atomic-while-dumping-elf.patch
fix might-sleep-in-atomic while dumping elf

awe_wave-oss-too-much-__exit.patch
awe_wave (OSS): too much __exit

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

mark-loop_change_fd-as-an-ulong-compat-ioctl.patch
mark LOOP_CHANGE_FD as an ULONG compat ioctl

readahead-simplification.patch
readahead: simplify recent fixes

mlock-as-user-for-268-rc2-mm2.patch
rlimit-based mlocks for unprivileged users

mlock-as-user-fixes.patch
mlock-as-user fixes

increase-mlock-limit-to-32k.patch
increase per-user mlock limit default to 32k

pirq_enable_irq-cleanup.patch
pirq_enable_irq cleanup

ip2mainc-add-missing-pci_enable_device.patch
ip2main.c: add missing pci_enable_device()

tpam_mainc-add-missing-pci_enable_device.patch
tpam_main.c: add missing pci_enable_device()

ibmasm-add-missing-pci_enable_device.patch
ibmasm: add missing pci_enable_device()

hp100c-add-missing-pci_enable_device.patch
hp100.c: add missing pci_enable_device()

ioc3-ethc-add-missing-pci_enable_device.patch
ioc3-eth.c: add missing pci_enable_device()

de4x5c-add-missing-pci_enable_device.patch
de4x5.c: add missing pci_enable_device()

cpqfc-add-missing-pci_enable_device.patch
cpqfc: add missing pci_enable_device()

fix-gcc-35-compile-issue-in-mm-mempolicyc.patch
Fix gcc 3.5 compile issue in mm/mempolicy.c

eata_pio-warning-fix.patch
eata_pio.c warning fix

via-agpc-resume-suspend-support.patch
via-agp.c resume/suspend support

rpaphp-build-break-remove-eeh-register.patch
rpaphp build break - remove eeh register

document-pci_disable_device.patch
Document pci_disable_device()

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

collected-aio-retry-fixes-and-enhancements.patch
AIO: retry infrastructure fixes and enhancements

collected-aio-retry-fixes-and-enhancements-cleanup.patch
collected-aio-retry-fixes-and-enhancements-cleanup

aio-splice-runlist-for-fairness-across-io-contexts.patch
AIO: Splice runlist for fairness across io contexts

aio-workqueue-context-switch-reduction.patch
AIO: workqueue context switch reduction

x86_64-numa-emulation.patch
x86_64: emulate NUMA on non-NUMA hardware

make-max_init_args-25.patch
Make MAX_INIT_ARGS 25

sparc32-turbosparc-flush-warnings.patch
sparc32: turbosparc flush warnings

sparc32-init_idle.patch
sparc32: sparc32 init_idle()

sparc32-sun4d-cpu_present_map-is-a-cpumask_t.patch
sparc32: sun4d cpu_present_map is a cpumask_t

sparc32-smp_processor_id-bitfixup-fixes.patch
sparc32: smp_processor_id() BITFIXUP fixes

sparc32-reinstate-smp_reschedule_irq.patch
sparc32: reinstate smp_reschedule_irq()

sparc32-remove-references-to-start_secondary.patch
sparc32: remove references to start_secondary()

sparc32-define-cache_decay_ticks.patch
sparc32: define cache_decay_ticks

sparc32-remove-unused-variable-in-dvmac.patch
sparc32: remove unused variable in dvma.c

sparc32-sun4-does-not-support-smp.patch
sparc32: sun4 does not support SMP

sparc32-make-config_smp-depend-on-config_broken.patch
sparc32: make CONFIG_SMP depend on CONFIG_BROKEN

sparc32-gcc-33-macro-parenthesization-fix-for-memcpys.patch
sparc32: gcc-3.3 macro parenthesization fix for memcpy.S

sparc32-ignore-undefined-symbols-with-3-or-more-leading-underscores.patch
sparc32: ignore undefined symbols with 3 or more leading underscores

wireless-extension-v17-for-linus.patch
Wireless Extension v17 for Linus

wireless-drivers-update-for-we-17.patch
Wireless drivers update for WE-17

request_region-for-winbond-and-smsc-parport-drivers.patch
request_region for winbond and smsc parport drivers

add-bus-dependencies-to-two-scsi-drivers.patch
Add bus dependencies to two scsi drivers

knfsd-server-permissions-fix.patch
knfsd: fix server permission handling

#1 lore raw

2.6.8-rc3-mm1: SCHEDSTATS compile error

Quoted 7 lines · Andrew Morton

...
Changes since 2.6.8-rc2-mm2:
...
+schedstats-2.patch
...
CPU scheduler statitics
...

<-- snip -->

...
CC kernel/sched.o
kernel/sched.c: In function `show_schedstat':
kernel/sched.c:372: error: structure has no member named `sd' kernel/sched.c:372: error: dereferencing pointer to incomplete type kernel/sched.c:375: error: dereferencing pointer to incomplete type kernel/sched.c:380: error: dereferencing pointer to incomplete type kernel/sched.c:381: error: dereferencing pointer to incomplete type kernel/sched.c:382: error: dereferencing pointer to incomplete type kernel/sched.c:383: error: dereferencing pointer to incomplete type kernel/sched.c:384: error: dereferencing pointer to incomplete type kernel/sched.c:387: error: dereferencing pointer to incomplete type kernel/sched.c:387: error: dereferencing pointer to incomplete type kernel/sched.c:388: error: dereferencing pointer to incomplete type kernel/sched.c:388: error: dereferencing pointer to incomplete type make[1]: *** [kernel/sched.o] Error 1

<-- snip -->

cu
Adrian

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

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

--Adrian Bunk <[email protected]> wrote (on Thursday, August 05, 2004 13:18:35 +0200):

Quoted 11 lines · Andrew Morton
Quoted 7 lines

...
Changes since 2.6.8-rc2-mm2:
...
+schedstats-2.patch
...
CPU scheduler statitics
...

<-- snip -->

Quoted 16 lines

...
CC kernel/sched.o
kernel/sched.c: In function `show_schedstat':
kernel/sched.c:372: error: structure has no member named `sd' kernel/sched.c:372: error: dereferencing pointer to incomplete type kernel/sched.c:375: error: dereferencing pointer to incomplete type kernel/sched.c:380: error: dereferencing pointer to incomplete type kernel/sched.c:381: error: dereferencing pointer to incomplete type kernel/sched.c:382: error: dereferencing pointer to incomplete type kernel/sched.c:383: error: dereferencing pointer to incomplete type kernel/sched.c:384: error: dereferencing pointer to incomplete type kernel/sched.c:387: error: dereferencing pointer to incomplete type kernel/sched.c:387: error: dereferencing pointer to incomplete type kernel/sched.c:388: error: dereferencing pointer to incomplete type kernel/sched.c:388: error: dereferencing pointer to incomplete type make[1]: *** [kernel/sched.o] Error 1

Any chance you could try the version Ingo just posted instead?

M.

#3 lore raw

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

Quoted 30 lines · Martin J. Bligh

--Adrian Bunk <[email protected]> wrote (on Thursday, August 05, 2004 13:18:35 +0200):

Quoted 11 lines · Andrew Morton
Quoted 7 lines

...
Changes since 2.6.8-rc2-mm2:
...
+schedstats-2.patch
...
CPU scheduler statitics
...

<-- snip -->

Quoted 16 lines

...
CC kernel/sched.o
kernel/sched.c: In function `show_schedstat':
kernel/sched.c:372: error: structure has no member named `sd' kernel/sched.c:372: error: dereferencing pointer to incomplete type kernel/sched.c:375: error: dereferencing pointer to incomplete type kernel/sched.c:380: error: dereferencing pointer to incomplete type kernel/sched.c:381: error: dereferencing pointer to incomplete type kernel/sched.c:382: error: dereferencing pointer to incomplete type kernel/sched.c:383: error: dereferencing pointer to incomplete type kernel/sched.c:384: error: dereferencing pointer to incomplete type kernel/sched.c:387: error: dereferencing pointer to incomplete type kernel/sched.c:387: error: dereferencing pointer to incomplete type kernel/sched.c:388: error: dereferencing pointer to incomplete type kernel/sched.c:388: error: dereferencing pointer to incomplete type make[1]: *** [kernel/sched.o] Error 1

Quoted 1 line

Any chance you could try the version Ingo just posted instead?

I tried reverting the patch in -mm, but it was non-trivial.

I'll simply wait until -mm2 and report if the problem will still be present.

Quoted 1 line

M.

cu
Adrian

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

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

This looks like it could happen if you compile without CONFIG_SMP ... which admittedly I have not tried since the sched-domain code was introduced. Adrian, was this the situation in your case?

Rick

#5 lore raw

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

Quoted 3 lines · Rick Lindsley

This looks like it could happen if you compile without CONFIG_SMP ... which admittedly I have not tried since the sched-domain code was introduced. Adrian, was this the situation in your case?

Yes.

Quoted 1 line

Rick

cu
Adrian

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

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

Quoted 3 lines

This looks like it could happen if you compile without CONFIG_SMP ... which admittedly I have not tried since the sched-domain code was introduced. Adrian, was this the situation in your case?

Yes.

Ok. Please try this patch (applied to rc3-mm1).

Rick

Documentation/sched-stats.txt +6 -2
diff -rup linux-2.6.8-rc3-mm1/Documentation/sched-stats.txt linux-2.6.8-rc3-mm1-ss/Documentation/sched-stats.txt
@@ -1,6 +1,8 @@
 Version 9 of schedstats introduces support for sched_domains, which
 hit the mainline kernel in 2.6.7.  Some counters make more sense to be
-per-runqueue; other to be per-domain.
+per-runqueue; other to be per-domain.  Note that domains (and their associated
+information) will only be pertinent and available on machines utilizing
+CONFIG_SMP.
 
 In version 9 of schedstat, there is at least one level of domain
 statistics for each cpu listed, and there may well be more than one
@@ -83,7 +85,9 @@ The last six are statistics dealing with
 
 Domain statistics
 -----------------
-One of these is produced per domain for each cpu described.
+One of these is produced per domain for each cpu described. (Note that if
+CONFIG_SMP is not defined, *no* domains are utilized and these lines
+will not appear in the output.)
 
 domain<N> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
 
kernel/sched.c +5 -2
diff -rup linux-2.6.8-rc3-mm1/kernel/sched.c linux-2.6.8-rc3-mm1-ss/kernel/sched.c
@@ -342,10 +342,11 @@ static int show_schedstat(struct seq_fil
 	seq_printf(seq, "timestamp %lu\n", jiffies);
 	for_each_online_cpu (cpu) {
 
-		int dcnt = 0;
-
 		runqueue_t *rq = cpu_rq(cpu);
+#ifdef CONFIG_SMP
+		int dcnt = 0;
 		struct sched_domain *sd;
+#endif
 
 		/* runqueue-specific stats */
 		seq_printf(seq,
@@ -368,6 +369,7 @@ static int show_schedstat(struct seq_fil
 
 		seq_printf(seq, "\n");
 
+#ifdef CONFIG_SMP
 		/* domain-specific stats */
 		for_each_domain(cpu, sd) {
 			char mask_str[NR_CPUS];
@@ -387,6 +389,7 @@ static int show_schedstat(struct seq_fil
 			    sd->sbe_pushed, sd->sbe_attempts,
 			    sd->ttwu_wake_affine, sd->ttwu_wake_balance);
 		}
+#endif
 	}
 	return 0;
 }
#7 lore raw

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

Em Thu, Aug 05, 2004 at 12:15:23PM -0700, Rick Lindsley escreveu:

|     > This looks like it could happen if you compile without CONFIG_SMP ...
|     > which admittedly I have not tried since the sched-domain code was
|     > introduced.  Adrian, was this the situation in your case?
|     
|     Yes.
| 
| Ok.  Please try this patch (applied to rc3-mm1).

Worked, I had the same problem.

(yes, same SMP structures were in use).

Signature · 2 lines
Luiz Fernando N. Capitulino
<http://www.telecentros.sp.gov.br>
#8 lore raw

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

In reply to Rick Lindsley
Quoted 7 lines · Rick Lindsley
Quoted 3 lines

This looks like it could happen if you compile without CONFIG_SMP ... which admittedly I have not tried since the sched-domain code was introduced. Adrian, was this the situation in your case?

Yes.

Ok. Please try this patch (applied to rc3-mm1).

Thanks, it fixes compilation for me.

Quoted 1 line

Rick

cu
Adrian

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

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

In reply to Rick Lindsley
Quoted 3 lines · Rick Lindsley

This looks like it could happen if you compile without CONFIG_SMP ... which admittedly I have not tried since the sched-domain code was introduced. Adrian, was this the situation in your case?

Solved it for me, although running SMP on a old slow PentiumII feels a tad odd. Other than that the system is running very well, I have to try a response test and see how it feels then.

Signature · 3 lines
   -bill davidsen ([email protected])
"The secret to procrastination is to put things off until the
 last possible moment - but no longer"  -me
#10 lore raw

Re: 2.6.8-rc3-mm1: SCHEDSTATS compile error

Solved it for me, although running SMP on a old slow PentiumII feels a tad odd. Other than that the system is running very well, I have to try a response test and see how it feels then.

Oh I agree, the right patch is not to run SMP, but it *is* a workaround. This patch against rc3-mm1 should let you run it UP:

Documentation/sched-stats.txt +6 -2
diff -rup linux-2.6.8-rc3-mm1/Documentation/sched-stats.txt linux-2.6.8-rc3-mm1-ss/Documentation/sched-stats.txt
@@ -1,6 +1,8 @@
 Version 9 of schedstats introduces support for sched_domains, which
 hit the mainline kernel in 2.6.7.  Some counters make more sense to be
-per-runqueue; other to be per-domain.
+per-runqueue; other to be per-domain.  Note that domains (and their associated
+information) will only be pertinent and available on machines utilizing
+CONFIG_SMP.
 
 In version 9 of schedstat, there is at least one level of domain
 statistics for each cpu listed, and there may well be more than one
@@ -83,7 +85,9 @@ The last six are statistics dealing with
 
 Domain statistics
 -----------------
-One of these is produced per domain for each cpu described.
+One of these is produced per domain for each cpu described. (Note that if
+CONFIG_SMP is not defined, *no* domains are utilized and these lines
+will not appear in the output.)
 
 domain<N> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
 
kernel/sched.c +5 -2
diff -rup linux-2.6.8-rc3-mm1/kernel/sched.c linux-2.6.8-rc3-mm1-ss/kernel/sched.c
@@ -342,10 +342,11 @@ static int show_schedstat(struct seq_fil
 	seq_printf(seq, "timestamp %lu\n", jiffies);
 	for_each_online_cpu (cpu) {
 
-		int dcnt = 0;
-
 		runqueue_t *rq = cpu_rq(cpu);
+#ifdef CONFIG_SMP
+		int dcnt = 0;
 		struct sched_domain *sd;
+#endif
 
 		/* runqueue-specific stats */
 		seq_printf(seq,
@@ -368,6 +369,7 @@ static int show_schedstat(struct seq_fil
 
 		seq_printf(seq, "\n");
 
+#ifdef CONFIG_SMP
 		/* domain-specific stats */
 		for_each_domain(cpu, sd) {
 			char mask_str[NR_CPUS];
@@ -387,6 +389,7 @@ static int show_schedstat(struct seq_fil
 			    sd->sbe_pushed, sd->sbe_attempts,
 			    sd->ttwu_wake_affine, sd->ttwu_wake_balance);
 		}
+#endif
 	}
 	return 0;
 }
#11 lore raw
In reply to Andrew Morton

Built successfully with SMP=y, but with SMP=n I got the following:

CC kernel/sched.o
kernel/sched.c: In function `show_schedstat':
kernel/sched.c:372: error: structure has no member named `sd' kernel/sched.c:372: error: dereferencing pointer to incomplete type kernel/sched.c:375: error: dereferencing pointer to incomplete type kernel/sched.c:380: error: dereferencing pointer to incomplete type kernel/sched.c:381: error: dereferencing pointer to incomplete type kernel/sched.c:382: error: dereferencing pointer to incomplete type kernel/sched.c:383: error: dereferencing pointer to incomplete type kernel/sched.c:384: error: dereferencing pointer to incomplete type kernel/sched.c:387: error: dereferencing pointer to incomplete type kernel/sched.c:387: error: dereferencing pointer to incomplete type kernel/sched.c:388: error: dereferencing pointer to incomplete type kernel/sched.c:388: error: dereferencing pointer to incomplete type make[1]: *** [kernel/sched.o] Error 1
make: *** [kernel] Error 2

#12 lore raw

2.6.8-rc3-mm1: ALSA: vortex_asXtalkGainsAllChan multiple definitions

In reply to Andrew Morton
Quoted 5 lines · Andrew Morton

...
All 450 patches
...
bk-alsa.patch
...

The following compile error is still present in 2.6.8-rc3-mm1:

<-- snip -->

...

  CC      sound/pci/au88x0/au8810.o
  CC      sound/pci/au88x0/au8820.o
  CC      sound/pci/au88x0/au8830.o
  LD      sound/pci/au88x0/snd-au8810.o
  LD      sound/pci/au88x0/snd-au8820.o
  LD      sound/pci/au88x0/snd-au8830.o
  LD      sound/pci/au88x0/built-in.o

sound/pci/au88x0/snd-au8830.o(.rodata+0xd46): multiple definition of `vortex_asXtalkGainsAllChan' sound/pci/au88x0/snd-au8810.o(.rodata+0xb66): first defined here make[3]: *** [sound/pci/au88x0/built-in.o] Error 1

<-- snip -->

cu
Adrian

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

2.6.8-rc3-mm1: ip2mainc-add-missing-pci_enable_device breaks compilation

In reply to Andrew Morton
Quoted 7 lines · Andrew Morton

...
Changes since 2.6.8-rc2-mm2:
...
+ip2mainc-add-missing-pci_enable_device.patch
...
Fix PCI handling in various drivers
...

This causes the following compile error:

<-- snip -->

...
CC [M] drivers/char/ip2main.o
drivers/char/ip2main.c: In function `cleanup_module':
drivers/char/ip2main.c:445: request for member `pci_dev' in something not a structure or union
...
make[2]: *** [drivers/char/ip2main.o] Error 1

<-- snip -->

cu
Adrian

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

Re: 2.6.8-rc3-mm1: ip2mainc-add-missing-pci_enable_device breaks compilation

Quoted 2 lines · Adrian Bunk

This causes the following compile error:
drivers/char/ip2main.c:445: request for member `pci_dev' in something not a structure or union

Thanks for finding this. Andrew, if you replace that patch with the following, it should fix it. The error occurs when CONFIG_COMPUTONE=m, so I've now built it as both built-in and a module.

I don't have this hardware, so this has been compiled but not tested.

Add pci_enable_device()/pci_disable_device(). In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. In addition, this driver incorrectly used the IRQ value from PCI config space rather than the one in the struct pci_dev.

===== drivers/char/ip2main.c 1.44 vs edited =====

drivers/char/ip2main.c +13 -4
@@ -440,6 +440,12 @@
 	// free memory
 	for (i = 0; i < IP2_MAX_BOARDS; i++) {
 		void *pB;
+#ifdef CONFIG_PCI
+		if (ip2config.type[i] == PCI && ip2config.pci_dev[i]) {
+			pci_disable_device(ip2config.pci_dev[i]);
+			ip2config.pci_dev[i] = NULL;
+		}
+#endif
 		if ((pB = i2BoardPtrTable[i]) != 0 ) {
 			kfree ( pB );
 			i2BoardPtrTable[i] = NULL;
@@ -594,9 +600,14 @@
 							  PCI_DEVICE_ID_COMPUTONE_IP2EX, pci_dev_i);
 				if (pci_dev_i != NULL) {
 					unsigned int addr;
-					unsigned char pci_irq;
 
+					if (pci_enable_device(pci_dev_i)) {
+						printk( KERN_ERR "IP2: can't enable PCI device at %s\n",
+							pci_name(pci_dev_i));
+						break;
+					}
 					ip2config.type[i] = PCI;
+					ip2config.pci_dev[i] = pci_dev_i;
 					status =
 					pci_read_config_dword(pci_dev_i, PCI_BASE_ADDRESS_1, &addr);
 					if ( addr & 1 ) {
@@ -604,8 +615,6 @@
 					} else {
 						printk( KERN_ERR "IP2: PCI I/O address error\n");
 					}
-					status =
-					pci_read_config_byte(pci_dev_i, PCI_INTERRUPT_LINE, &pci_irq);
 
 //		If the PCI BIOS assigned it, lets try and use it.  If we
 //		can't acquire it or it screws up, deal with it then.
@@ -614,7 +623,7 @@
 //						printk( KERN_ERR "IP2: Bad PCI BIOS IRQ(%d)\n",pci_irq);
 //						pci_irq = 0;
 //					}
-					ip2config.irq[i] = pci_irq;
+					ip2config.irq[i] = pci_dev_i->irq;
 				} else {	// ann error
 					ip2config.addr[i] = 0;
 					if (status == PCIBIOS_DEVICE_NOT_FOUND) {

===== drivers/char/ip2/ip2types.h 1.1 vs edited =====

drivers/char/ip2/ip2types.h +3 -0
@@ -49,6 +49,9 @@
 	short irq[IP2_MAX_BOARDS]; 
 	unsigned short addr[IP2_MAX_BOARDS];
 	int type[IP2_MAX_BOARDS];
+#ifdef CONFIG_PCI
+	struct pci_dev *pci_dev[IP2_MAX_BOARDS];
+#endif
 } ip2config_t;
 
 #endif
#15 lore raw
In reply to Andrew Morton

Review

Quoted 8 lines · Andrew Morton
(quoted diff) +7 -0
+consolidate-prof_cpu_mask.patch
+profile_pc.patch
+profile_tick.patch
+profile-tick-fix.patch
+move-profile-operations.patch
+make-private-profile-state-static.patch
+make-prof_buffer-atomic_t.patch
 Consolidate a lot of the kernel profiling code.

Minor gaffe on my part:

include/asm-ia64/ptrace.h renamed from include/asm-ia64/ptrace.h.orig +5 -5
@@ -232,11 +232,11 @@
 /* Conserve space in histogram by encoding slot bits in address
  * bits 2 and 3 rather than bits 0 and 1.
  */
-static inline unsigned long profile_pc(struct pt_regs *regs)
-{
-	unsigned long ip = instruction_pointer(regs);
-	return (ip & ~3UL) + ((ip & 3UL) << 2);
-}
+#define profile_pc(regs)						\
+({									\
+	unsigned long __ip = instruction_pointer(regs);			\
+	(__ip & ~3UL) + ((__ip & 3UL) << 2);				\
+})
 
   /* given a pointer to a task_struct, return the user's pt_regs */
 # define ia64_task_regs(t)		(((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
#16 lore raw
In reply to Andrew Morton
Quoted 6 lines · Andrew Morton

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc3/2.6.8-rc3-mm1/
- Added David Woodhouse's MTD tree to the "external trees" list
- Dropped the staircase scheduler, mainly because the schedstats patch broke it.
We learned quite a lot from having staircase in there. Now it's time for a new scheduler anyway.

One of these changes means we need to be able to dereference struct device in include/asm-ia64/dma-mapping.h.

include/asm-ia64/dma-mapping.h renamed from include/asm-ia64/dma-mapping.h.orig +2 -1
@@ -5,7 +5,8 @@
  * Copyright (C) 2003-2004 Hewlett-Packard Co
  *	David Mosberger-Tang <[email protected]>
  */
-
+#include <linux/config.h>
+#include <linux/device.h>
 #include <asm/machvec.h>
 
 #define dma_alloc_coherent	platform_dma_alloc_coherent
#17 lore raw
Quoted 15 lines · William Lee Irwin III
Quoted 6 lines · Andrew Morton

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc3/2.6.8-rc3-mm1/
- Added David Woodhouse's MTD tree to the "external trees" list
- Dropped the staircase scheduler, mainly because the schedstats patch broke it.
We learned quite a lot from having staircase in there. Now it's time for a new scheduler anyway.

One of these changes means we need to be able to dereference struct device in include/asm-ia64/dma-mapping.h.

include/asm-ia64/dma-mapping.h line 11

Quoted 8 lines
include/asm-ia64/dma-mapping.h renamed from include/asm-ia64/dma-mapping.h.orig +2 -1
@@ -5,7 +5,8 @@
  * Copyright (C) 2003-2004 Hewlett-Packard Co
  *	David Mosberger-Tang <[email protected]>
  */
-
+#include <linux/config.h>
+#include <linux/device.h>
 #include <asm/machvec.h>
 

Yes, I hit the same problem on x86_64. But I have no patches touching that file. Can you send the compiler output, help me work out which patch needs the patch?

#18 lore raw
Quoted 3 lines · William Lee Irwin III
Quoted 3 lines
include/asm-ia64/dma-mapping.h renamed from include/asm-ia64/dma-mapping.h.orig +2 -0
+#include <linux/config.h>
+#include <linux/device.h>
 #include <asm/machvec.h>
Quoted 3 lines · Andrew Morton

Yes, I hit the same problem on x86_64. But I have no patches touching that file. Can you send the compiler output, help me work out which patch needs the patch?

Bizarre thing happened: I backed out the change and couldn't reproduce it. Not sure what's going on.

-- wli

#19 lore raw
In reply to Andrew Morton
Quoted 6 lines · Andrew Morton

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc3/2.6.8-rc3-mm1/
- Added David Woodhouse's MTD tree to the "external trees" list
- Dropped the staircase scheduler, mainly because the schedstats patch broke it.
We learned quite a lot from having staircase in there. Now it's time for a new scheduler anyway.

Yet another "I forgot to #include <linux/profile.h>" gaffe.

arch/sparc/kernel/sun4m_smp.c +1 -0
Index: mm1-2.6.8-rc3/arch/sparc/kernel/sun4m_smp.c
===================================================================
@@ -16,6 +16,7 @@
 #include <linux/spinlock.h>
 #include <linux/mm.h>
 #include <linux/swap.h>
+#include <linux/profile.h>
 #include <asm/cacheflush.h>
 #include <asm/tlbflush.h>
 
arch/sparc/kernel/sun4d_smp.c +1 -0
Index: mm1-2.6.8-rc3/arch/sparc/kernel/sun4d_smp.c
===================================================================
@@ -19,6 +19,7 @@
 #include <linux/spinlock.h>
 #include <linux/mm.h>
 #include <linux/swap.h>
+#include <linux/profile.h>
 
 #include <asm/ptrace.h>
 #include <asm/atomic.h>
#20 lore raw
In reply to Andrew Morton
Quoted 6 lines · Andrew Morton

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc3/2.6.8-rc3-mm1/
- Added David Woodhouse's MTD tree to the "external trees" list
- Dropped the staircase scheduler, mainly because the schedstats patch broke it.
We learned quite a lot from having staircase in there. Now it's time for a new scheduler anyway.

sparc64 needs profile.h and to terminate comments describing %o7.

arch/sparc64/kernel/time.c +2 -1
Index: mm1-2.6.8-rc3/arch/sparc64/kernel/time.c
===================================================================
@@ -29,6 +29,7 @@
 #include <linux/jiffies.h>
 #include <linux/cpufreq.h>
 #include <linux/percpu.h>
+#include <linux/profile.h>
 
 #include <asm/oplib.h>
 #include <asm/mostek.h>
@@ -460,7 +461,7 @@
 	     pc < (unsigned long) &__bzero_end) ||
 	    (pc >= (unsigned long) &__bitops_begin &&
 	     pc < (unsigned long) &__bitops_end))
-		pc = regs->u_regs[UREG_RETPC]; /* o7/
+		pc = regs->u_regs[UREG_RETPC]; /* o7 */
 	return pc;
 }
 
arch/sparc64/kernel/smp.c +1 -0
Index: mm1-2.6.8-rc3/arch/sparc64/kernel/smp.c
===================================================================
@@ -19,6 +19,7 @@
 #include <linux/seq_file.h>
 #include <linux/cache.h>
 #include <linux/jiffies.h>
+#include <linux/profile.h>
 
 #include <asm/head.h>
 #include <asm/ptrace.h>
#21 lore raw
In reply to Andrew Morton
Quoted 6 lines · Andrew Morton

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc3/2.6.8-rc3-mm1/
- Added David Woodhouse's MTD tree to the "external trees" list
- Dropped the staircase scheduler, mainly because the schedstats patch broke it.
We learned quite a lot from having staircase in there. Now it's time for a new scheduler anyway.

On some arches, e.g. ia64, it appears that timer ticks can be taken very, very early. In order to avoid oopsing on a prof_buffer that hasn't yet been bootmem allocated, check prof_buffer in profile_hit().

kernel/profile.c renamed from kernel/profile.c.orig +1 -1
@@ -171,7 +171,7 @@
 {
 	unsigned long pc;
 
-	if (prof_on != type)
+	if (prof_on != type || !prof_buffer)
 		return;
 	pc = ((unsigned long)__pc - (unsigned long)_stext) >> prof_shift;
 	atomic_inc(&prof_buffer[min(pc, prof_len - 1)]);
#22 lore raw
In reply to Andrew Morton

Review

Quoted 5 lines
(quoted diff) +2 -0
+iteraid.patch
+iteraid-cleanup.patch
 
 New ITE IT8212 RAID controller driver.  Still needs a bit of work before
 handoff to the scsi guys to look at.

Just drop it. It's not scsi hardware at all, and we have an ide driver for that hardware already.

#23 lore raw
Quoted 8 lines · Christoph Hellwig

Review

Quoted 5 lines
(quoted diff) +2 -0
+iteraid.patch
+iteraid-cleanup.patch
 
 New ITE IT8212 RAID controller driver.  Still needs a bit of work before
 handoff to the scsi guys to look at.

Just drop it. It's not scsi hardware at all, and we have an ide driver for that hardware already.

We have a very test IDE driver. Probably what we ideally need is a driver using bits of both using Jeff's new ATA/SATA layer.

#24 lore raw

Re: 2.6.8-rc3-mm1 (compile stats)

In reply to Andrew Morton

Linux 2.6 (mm tree) Compile Statistics (gcc 3.2.2)

Kernel bzImage bzImage bzImage modules bzImage modules
(defconfig) (allno) (allyes) (allyes) (allmod) (allmod)
--------------- ---------- -------- -------- -------- -------- --------

2.6.8-rc3-mm1     0w/0e     1w/5e    81w/9e    4w/0e   1w/0e     75w/0e
2.6.8-rc2-mm2     0w/0e     4w/5e    87w/9e    4w/0e   1w/0e     80w/0e
2.6.8-rc2-mm1     0w/0e     0w/0e    83w/9e    3w/0e   1w/0e     81w/0e
2.6.8-rc1-mm1     0w/0e     0w/0e    88w/9e    5w/0e   1w/0e     87w/0e
2.6.7-mm7         0w/0e     0w/0e    89w/9e    5w/0e   1w/0e     84w/0e
2.6.7-mm6         0w/0e     0w/0e    85w/9e    5w/0e   1w/0e     80w/0e
2.6.7-mm5         0w/0e     0w/0e    92w/0e    5w/0e   1w/0e     87w/0e
2.6.7-mm4         0w/0e     0w/0e    94w/0e    5w/0e   1w/0e     89w/0e
2.6.7-mm3         0w/0e     0w/0e    90w/6e    5w/0e   1w/0e     86w/0e
2.6.7-mm2         0w/0e     0w/0e   109w/0e    7w/0e   1w/0e    106w/0e
2.6.7-mm1         0w/0e     5w/0e   108w/0e    5w/0e   1w/0e    104w/0e
2.6.7-rc3-mm2     0w/0e     5w/0e   105w/10e   5w/0e   2w/0e    100w/2e
2.6.7-rc3-mm1     0w/0e     5w/0e   104w/10e   5w/0e   2w/0e    100w/2e
2.6.7-rc2-mm2     0w/0e     5w/0e   109w/10e   5w/0e   2w/0e    105w/2e
2.6.7-rc2-mm1     0w/0e    12w/0e   158w/13e   5w/0e   3w/0e    153w/4e
2.6.7-rc1-mm1     0w/0e     6w/0e   108w/0e    5w/0e   2w/0e    104w/0e
2.6.6-mm5         0w/0e     0w/0e   109w/5e    5w/0e   2w/0e    110w/0e
2.6.6-mm4         0w/0e     0w/0e   112w/9e    5w/0e   2w/5e    106w/1e
2.6.6-mm3         3w/9e     0w/0e   120w/26e   5w/0e   2w/0e    114w/10e
2.6.6-mm2         4w/11e    0w/0e   120w/24e   6w/0e   2w/0e    118w/9e
2.6.6-mm1         1w/0e     0w/0e   118w/25e   6w/0e   2w/0e    114w/10e
2.6.6-rc3-mm2     0w/0e     0w/0e   117w/ 0e   8w/0e   2w/0e    116w/0e
2.6.6-rc3-mm1     0w/0e     0w/0e   120w/10e   8w/0e   2w/0e    152w/2e
2.6.6-rc2-mm2     0w/0e     1w/5e   118w/ 0e   8w/0e   3w/0e    118w/0e
2.6.6-rc2-mm1     0w/0e     0w/0e   115w/ 0e   7w/0e   3w/0e    116w/0e
2.6.6-rc1-mm1     0w/0e     0w/7e   122w/ 0e   7w/0e   4w/0e    122w/0e
2.6.5-mm6         0w/0e     0w/0e   123w/ 0e   7w/0e   4w/0e    124w/0e
2.6.5-mm5         0w/0e     0w/0e   119w/ 0e   7w/0e   4w/0e    120w/0e
2.6.5-mm4         0w/0e     0w/0e   120w/ 0e   7w/0e   4w/0e    121w/0e
2.6.5-mm3         0w/0e     1w/0e   121w/12e   7w/0e   3w/0e    123w/0e
2.6.5-mm2         0w/0e     0w/0e   128w/12e   7w/0e   3w/0e    134w/0e
2.6.5-mm1         0w/0e     5w/0e   122w/ 0e   7w/0e   3w/0e    124w/0e
2.6.5-rc3-mm4     0w/0e     0w/0e   124w/ 0e   8w/0e   4w/0e    126w/0e
2.6.5-rc3-mm3     0w/0e     5w/0e   129w/14e   8w/0e   4w/0e    129w/6e
2.6.5-rc3-mm2     0w/0e     5w/0e   130w/14e   8w/0e   4w/0e    129w/6e
2.6.5-rc3-mm1     0w/0e     5w/0e   129w/ 0e   8w/0e   4w/0e    129w/0e
2.6.5-rc2-mm5     0w/0e     5w/0e   130w/ 0e   8w/0e   4w/0e    129w/0e
2.6.5-rc2-mm4     0w/0e     5w/0e   134w/ 0e   8w/0e   3w/0e    133w/0e
2.6.5-rc2-mm3     0w/0e     5w/0e   134w/ 0e   8w/0e   3w/0e    133w/0e
2.6.5-rc2-mm2     0w/0e     5w/0e   137w/ 0e   8w/0e   3w/0e    134w/0e
2.6.5-rc2-mm1     0w/0e     5w/0e   136w/ 0e   8w/0e   3w/0e    134w/0e
2.6.5-rc1-mm2     0w/0e     5w/0e   135w/ 5e   8w/0e   3w/0e    133w/0e
2.6.5-rc1-mm1     0w/0e     5w/0e   135w/ 5e   8w/0e   3w/0e    133w/0e
2.6.4-mm2         1w/2e     5w/2e   144w/10e   8w/0e   3w/2e    144w/0e
2.6.4-mm1         1w/0e     5w/0e   146w/ 5e   8w/0e   3w/0e    144w/0e
2.6.4-rc2-mm1     1w/0e     5w/0e   146w/12e  11w/0e   3w/0e    147w/2e
2.6.4-rc1-mm2     1w/0e     5w/0e   144w/ 0e  11w/0e   3w/0e    145w/0e
2.6.4-rc1-mm1     1w/0e     5w/0e   147w/ 5e  11w/0e   3w/0e    147w/0e
2.6.3-mm4         1w/0e     5w/0e   146w/ 0e   7w/0e   3w/0e    142w/0e
2.6.3-mm3         1w/2e     5w/2e   146w/15e   7w/0e   3w/2e    144w/5e
2.6.3-mm2         1w/8e     5w/0e   140w/ 0e   7w/0e   3w/0e    138w/0e
2.6.3-mm1         1w/0e     5w/0e   143w/ 5e   7w/0e   3w/0e    141w/0e
2.6.3-rc3-mm1     1w/0e     0w/0e   144w/13e   7w/0e   3w/0e    142w/3e
2.6.3-rc2-mm1     1w/0e     0w/265e 144w/ 5e   7w/0e   3w/0e    145w/0e
2.6.3-rc1-mm1     1w/0e     0w/265e 141w/ 5e   7w/0e   3w/0e    143w/0e
2.6.2-mm1         2w/0e     0w/264e 147w/ 5e   7w/0e   3w/0e    173w/0e
2.6.2-rc3-mm1     2w/0e     0w/265e 146w/ 5e   7w/0e   3w/0e    172w/0e
2.6.2-rc2-mm2     0w/0e     0w/264e 145w/ 5e   7w/0e   3w/0e    171w/0e
2.6.2-rc2-mm1     0w/0e     0w/264e 146w/ 5e   7w/0e   3w/0e    172w/0e
2.6.2-rc1-mm3     0w/0e     0w/265e 144w/ 8e   7w/0e   3w/0e    169w/0e
2.6.2-rc1-mm2     0w/0e     0w/264e 144w/ 5e  10w/0e   3w/0e    171w/0e
2.6.2-rc1-mm1     0w/0e     0w/264e 144w/ 5e  10w/0e   3w/0e    171w/0e
2.6.1-mm5         2w/5e     0w/264e 153w/11e  10w/0e   3w/0e    180w/0e
2.6.1-mm4         0w/821e   0w/264e 154w/ 5e   8w/1e   5w/0e    179w/0e
2.6.1-mm3         0w/0e     0w/0e   151w/ 5e  10w/0e   3w/0e    177w/0e
2.6.1-mm2         0w/0e     0w/0e   143w/ 5e  12w/0e   3w/0e    171w/0e
2.6.1-mm1         0w/0e     0w/0e   146w/ 9e  12w/0e   6w/0e    171w/0e
2.6.1-rc2-mm1     0w/0e     0w/0e   149w/ 0e  12w/0e   6w/0e    171w/4e
2.6.1-rc1-mm2     0w/0e     0w/0e   157w/15e  12w/0e   3w/0e    185w/4e
2.6.1-rc1-mm1     0w/0e     0w/0e   156w/10e  12w/0e   3w/0e    184w/2e
2.6.0-mm2         0w/0e     0w/0e   161w/ 0e  12w/0e   3w/0e    189w/0e
2.6.0-mm1         0w/0e     0w/0e   173w/ 0e  12w/0e   3w/0e    212w/0e

Web page with links to complete details:
http://developer.osdl.org/cherry/compile/

John

#25 lore raw
In reply to Andrew Morton
Quoted 6 lines · Andrew Morton

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc3/2.6.8-rc3-mm1/
- Added David Woodhouse's MTD tree to the "external trees" list
- Dropped the staircase scheduler, mainly because the schedstats patch broke it.
We learned quite a lot from having staircase in there. Now it's time for a new scheduler anyway.

sched-clean-init-idle.patch is still broken. Removing deactivate_task() from init_idle() breaks the arches that instead of doing copy_process() do kernel_thread(NULL, NULL, CLONE_IDLETASK), with all of the obvious consequences of leaving a task with a NULL program counter on one queue where it may be executed by accident and simultaneously executed on yet another cpu via the SMP trampoline, even sharing the stack between cpus.

The following applies immediately after sched-clean-init-idle.patch; I'm not convinced fork_by_hand() is worth the bloat, as a simple deactivate_task() in init_idle(), would allow all the arches to use the sparc64 method; however, this is consistent with the theme of the cleanup patch immediately preceding it. If desired, I can implement the other alternative, and teach all arches to use kernel_thread(...) and reinstate the deactivate_task() in init_idle().

It appears that init_idle() and fork_by_hand() could be combined into a single method that calls init_idle() on behalf of the caller, which would amount to something like:

task_t * __init fork_idle(int cpu)

{
	struct pt_regs regs;
	task_t *task;

	memset(&regs, 0, sizeof(struct pt_regs));
	task = copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
	if (!task)
		return ERR_PTR(-ENOMEM);
	init_idle(task, cpu);
	unhash_process(task);
	return task;
}

Then the call to init_idle() in init/main.c would be folded into sched_init(), and so init_idle() would become private to kernel/sched.c

The following patch is merely what I used to get things working ASAP. I'll create whatever form of the init_idle() consolidation's correction is preferred against whatever tree is needed for merging.

-- wli

arch/sparc/kernel/sun4m_smp.c +1 -4
Index: mm1-2.6.8-rc3/arch/sparc/kernel/sun4m_smp.c
===================================================================
@@ -175,12 +175,9 @@
 			struct task_struct *p;
 			int timeout;
 
-			/* Cook up an idler for this guy. */
-			kernel_thread(start_secondary, NULL, CLONE_IDLETASK);
-
 			cpucount++;
 
-			p = prev_task(&init_task);
+			p = fork_by_hand();
 
 			init_idle(p, i);
 
arch/i386/kernel/smpboot.c +0 -10
Index: mm1-2.6.8-rc3/arch/i386/kernel/smpboot.c
===================================================================
@@ -496,16 +496,6 @@
 	unsigned short ss;
 } stack_start;
 
-static struct task_struct * __init fork_by_hand(void)
-{
-	struct pt_regs regs;
-	/*
-	 * don't care about the eip and regs settings since
-	 * we'll never reschedule the forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 #ifdef CONFIG_NUMA
 
 /* which logical CPUs are on which nodes */
include/linux/sched.h +1 -1
Index: mm1-2.6.8-rc3/include/linux/sched.h
===================================================================
@@ -885,7 +885,7 @@
 
 extern int do_execve(char *, char __user * __user *, char __user * __user *, struct pt_regs *);
 extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
-extern struct task_struct * copy_process(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
+task_t *fork_by_hand(void);
 
 #ifdef CONFIG_SMP
 extern void wait_task_inactive(task_t * p);
arch/sparc/kernel/sun4d_smp.c +1 -4
Index: mm1-2.6.8-rc3/arch/sparc/kernel/sun4d_smp.c
===================================================================
@@ -204,12 +204,9 @@
 			int timeout;
 			int no;
 
-			/* Cook up an idler for this guy. */
-			kernel_thread(start_secondary, NULL, CLONE_IDLETASK);
-
 			cpucount++;
 
-			p = prev_task(&init_task);
+			p = fork_by_hand();
 
 			init_idle(p, i);
 
arch/ppc64/kernel/smp.c +1 -4
Index: mm1-2.6.8-rc3/arch/ppc64/kernel/smp.c
===================================================================
@@ -799,14 +799,11 @@
 
 static void __init smp_create_idle(unsigned int cpu)
 {
-	struct pt_regs regs;
 	struct task_struct *p;
 
 	/* create a process for the processor */
 	/* only regs.msr is actually used, and 0 is OK for it */
-	memset(&regs, 0, sizeof(struct pt_regs));
-	p = copy_process(CLONE_VM | CLONE_IDLETASK,
-			 0, &regs, 0, NULL, NULL);
+	p = fork_by_hand();
 	if (IS_ERR(p))
 		panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
 
arch/mips/kernel/smp.c +0 -10
Index: mm1-2.6.8-rc3/arch/mips/kernel/smp.c
===================================================================
@@ -254,16 +254,6 @@
 	cpu_set(0, cpu_callin_map);
 }
 
-static struct task_struct * __init fork_by_hand(void)
-{
-	struct pt_regs regs;
-	/*
-	 * don't care about the eip and regs settings since
-	 * we'll never reschedule the forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 /*
  * Startup the CPU with this logical number
  */
arch/s390/kernel/smp.c +1 -3
Index: mm1-2.6.8-rc3/arch/s390/kernel/smp.c
===================================================================
@@ -562,15 +562,13 @@
 
 static void __init smp_create_idle(unsigned int cpu)
 {
-	struct pt_regs regs;
 	struct task_struct *p;
 
 	/*
 	 *  don't care about the psw and regs settings since we'll never
 	 *  reschedule the forked task.
 	 */
-	memset(&regs, 0, sizeof(struct pt_regs));
-	p = copy_process(CLONE_VM | CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
+	p = fork_by_hand();
 	if (IS_ERR(p))
 		panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
 
arch/ia64/kernel/smpboot.c +0 -10
Index: mm1-2.6.8-rc3/arch/ia64/kernel/smpboot.c
===================================================================
@@ -356,16 +356,6 @@
 	return cpu_idle();
 }
 
-static struct task_struct * __devinit
-fork_by_hand (void)
-{
-	/*
-	 * Don't care about the IP and regs settings since we'll never reschedule the
-	 * forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, 0, 0, NULL, NULL);
-}
-
 struct create_idle {
 	struct task_struct *idle;
 	struct completion done;
arch/alpha/kernel/smp.c +0 -9
Index: mm1-2.6.8-rc3/arch/alpha/kernel/smp.c
===================================================================
@@ -411,15 +411,6 @@
 	return 0;
 }
 
-static struct task_struct * __init
-fork_by_hand(void)
-{
-	/* Don't care about the contents of regs since we'll never
-	   reschedule the forked task. */
-	struct pt_regs regs;
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 /*
  * Bring one cpu online.
  */
arch/ppc/kernel/smp.c +1 -3
Index: mm1-2.6.8-rc3/arch/ppc/kernel/smp.c
===================================================================
@@ -364,15 +364,13 @@
 
 int __cpu_up(unsigned int cpu)
 {
-	struct pt_regs regs;
 	struct task_struct *p;
 	char buf[32];
 	int c;
 
 	/* create a process for the processor */
 	/* only regs.msr is actually used, and 0 is OK for it */
-	memset(&regs, 0, sizeof(struct pt_regs));
-	p = copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
+	p = fork_by_hand();
 	if (IS_ERR(p))
 		panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
 	init_idle(p, cpu);
arch/sparc64/kernel/smp.c +1 -3
Index: mm1-2.6.8-rc3/arch/sparc64/kernel/smp.c
===================================================================
@@ -302,9 +302,7 @@
 	struct task_struct *p;
 	int timeout, ret, cpu_node;
 
-	kernel_thread(NULL, NULL, CLONE_IDLETASK);
-
-	p = prev_task(&init_task);
+	p = fork_by_hand();
 
 	init_idle(p, cpu);
 
arch/x86_64/kernel/smpboot.c +0 -10
Index: mm1-2.6.8-rc3/arch/x86_64/kernel/smpboot.c
===================================================================
@@ -392,16 +392,6 @@
 extern volatile unsigned long init_rsp; 
 extern void (*initial_code)(void);
 
-static struct task_struct * __init fork_by_hand(void)
-{
-	struct pt_regs regs;
-	/*
-	 * don't care about the eip and regs settings since
-	 * we'll never reschedule the forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 #if APIC_DEBUG
 static inline void inquire_remote_apic(int apicid)
 {
arch/i386/mach-voyager/voyager_smp.c +0 -10
Index: mm1-2.6.8-rc3/arch/i386/mach-voyager/voyager_smp.c
===================================================================
@@ -523,16 +523,6 @@
 	return cpu_idle();
 }
 
-static struct task_struct * __init
-fork_by_hand(void)
-{
-	struct pt_regs regs;
-	/* don't care about the eip and regs settings since we'll
-	 * never reschedule the forked task. */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
-
 /* Routine to kick start the given CPU and wait for it to report ready
  * (or timeout in startup).  When this routine returns, the requested
  * CPU is either fully running and configured or known to be dead.
kernel/fork.c +9 -1
Index: mm1-2.6.8-rc3/kernel/fork.c
===================================================================
@@ -864,7 +864,7 @@
  * parts of the process environment (as per the clone
  * flags). The actual kick-off is left to the caller.
  */
-struct task_struct *copy_process(unsigned long clone_flags,
+static task_t *copy_process(unsigned long clone_flags,
 				 unsigned long stack_start,
 				 struct pt_regs *regs,
 				 unsigned long stack_size,
@@ -1141,6 +1141,14 @@
 	goto fork_out;
 }
 
+task_t * __init fork_by_hand(void)
+{
+	struct pt_regs regs;
+
+	memset(&regs, 0, sizeof(struct pt_regs));
+	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
+}
+
 static inline int fork_traceflag (unsigned clone_flags)
 {
 	if (clone_flags & (CLONE_UNTRACED | CLONE_IDLETASK))
arch/parisc/kernel/smp.c +0 -18
Index: mm1-2.6.8-rc3/arch/parisc/kernel/smp.c
===================================================================
@@ -504,24 +504,6 @@
 
 #if 0
 /*
- * Create the idle task for a new Slave CPU.  DO NOT use kernel_thread()
- * because that could end up calling schedule(). If it did, the new idle
- * task could get scheduled before we had a chance to remove it from the
- * run-queue...
- */
-static struct task_struct *fork_by_hand(void)
-{
-	struct pt_regs regs;  
-
-	/*
-	 * don't care about the regs settings since
-	 * we'll never reschedule the forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
-
-/*
  * Bring one cpu online.
  */
 int __init smp_boot_one_cpu(int cpuid, int cpunum)
arch/sh/kernel/smp.c +1 -3
Index: mm1-2.6.8-rc3/arch/sh/kernel/smp.c
===================================================================
@@ -98,10 +98,8 @@
 int __cpu_up(unsigned int cpu)
 {
 	struct task_struct *tsk;
-	struct pt_regs regs;
 
-	memset(&regs, 0, sizeof(struct pt_regs));
-	tsk = copy_process(CLONE_VM | CLONE_IDLETASK, 0, &regs, 0, 0, 0);
+	tsk = fork_by_hand();
 
 	if (IS_ERR(tsk))
 		panic("Failed forking idle task for cpu %d\n", cpu);
#26 lore raw
Quoted 4 lines · William Lee Irwin III

It appears that init_idle() and fork_by_hand() could be combined into a single method that calls init_idle() on behalf of the caller, which would amount to something like:
task_t * __init fork_idle(int cpu)

[...]

Atop the full 2.6.8-rc3-mm1 series:

$ diffstat tmp/fork_idle.patch 
 arch/alpha/kernel/smp.c              |   14 +-------------
 arch/i386/kernel/smpboot.c           |   20 +-------------------
 arch/i386/mach-voyager/voyager_smp.c |   18 +-----------------
 arch/ia64/kernel/smpboot.c           |   27 ++++++---------------------
 arch/mips/kernel/smp.c               |   18 +-----------------
 arch/parisc/kernel/smp.c             |   23 +----------------------
 arch/ppc/kernel/smp.c                |    7 +------
 arch/ppc64/kernel/smp.c              |   10 +---------
 arch/s390/kernel/smp.c               |   11 +----------
 arch/sh/kernel/smp.c                 |    7 +------
 arch/sparc/kernel/sun4d_smp.c        |   11 +----------
 arch/sparc64/kernel/smp.c            |    9 +--------
 arch/um/kernel/smp.c                 |    4 +---
 arch/x86_64/kernel/smpboot.c         |   18 +-----------------
 include/linux/sched.h                |    2 +-
 init/main.c                          |    9 ---------
 kernel/fork.c                        |   16 +++++++++++++++-
 kernel/sched.c                       |    8 ++++++++
 18 files changed, 43 insertions(+), 189 deletions(-)
arch/alpha/kernel/smp.c +1 -13
Index: mm1-2.6.8-rc3/arch/alpha/kernel/smp.c
===================================================================
@@ -412,15 +412,6 @@
 	return 0;
 }
 
-static struct task_struct * __init
-fork_by_hand(void)
-{
-	/* Don't care about the contents of regs since we'll never
-	   reschedule the forked task. */
-	struct pt_regs regs;
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 /*
  * Bring one cpu online.
  */
@@ -436,13 +427,10 @@
 	   the other task-y sort of data structures set up like we
 	   wish.  We can't use kernel_thread since we must avoid
 	   rescheduling the child.  */
-	idle = fork_by_hand();
+	idle = fork_idle(cpuid);
 	if (IS_ERR(idle))
 		panic("failed fork for CPU %d", cpuid);
 
-	init_idle(idle, cpuid);
-	unhash_process(idle);
-
 	DBGS(("smp_boot_one_cpu: CPU %d state 0x%lx flags 0x%lx\n",
 	      cpuid, idle->state, idle->flags));
 
arch/i386/kernel/smpboot.c +1 -19
Index: mm1-2.6.8-rc3/arch/i386/kernel/smpboot.c
===================================================================
@@ -502,16 +502,6 @@
 	unsigned short ss;
 } stack_start;
 
-static struct task_struct * __init fork_by_hand(void)
-{
-	struct pt_regs regs;
-	/*
-	 * don't care about the eip and regs settings since
-	 * we'll never reschedule the forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 #ifdef CONFIG_NUMA
 
 /* which logical CPUs are on which nodes */
@@ -807,18 +797,10 @@
 	 * We can't use kernel_thread since we must avoid to
 	 * reschedule the child.
 	 */
-	idle = fork_by_hand();
+	idle = fork_idle(cpu);
 	if (IS_ERR(idle))
 		panic("failed fork for CPU %d", cpu);
-
-	/* Make this the idle thread */
-	init_idle(idle, cpu);
-
 	idle->thread.eip = (unsigned long) start_secondary;
-
-	/* Remove it from the pidhash */
-	unhash_process(idle);
-
 	/* start_eip had better be page-aligned! */
 	start_eip = setup_trampoline();
 
arch/i386/mach-voyager/voyager_smp.c +1 -17
Index: mm1-2.6.8-rc3/arch/i386/mach-voyager/voyager_smp.c
===================================================================
@@ -523,15 +523,6 @@
 	return cpu_idle();
 }
 
-static struct task_struct * __init
-fork_by_hand(void)
-{
-	struct pt_regs regs;
-	/* don't care about the eip and regs settings since we'll
-	 * never reschedule the forked task. */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 
 /* Routine to kick start the given CPU and wait for it to report ready
  * (or timeout in startup).  When this routine returns, the requested
@@ -587,17 +578,10 @@
 	hijack_source.idt.Segment = (start_phys_address >> 4) & 0xFFFF;
 
 	cpucount++;
-	idle = fork_by_hand();
+	idle = fork_idle(cpu);
 	if(IS_ERR(idle))
 		panic("failed fork for CPU%d", cpu);
-
-	/* Make this the idle thread */
-	init_idle(idle, cpu);
-
 	idle->thread.eip = (unsigned long) start_secondary;
-
-	/* Remove it from the pidhash */
-	unhash_process(idle);
 	/* init_tasks (in sched.c) is indexed logically */
 	stack_start.esp = (void *) idle->thread.esp;
 
arch/ia64/kernel/smpboot.c +6 -21
Index: mm1-2.6.8-rc3/arch/ia64/kernel/smpboot.c
===================================================================
@@ -356,19 +356,10 @@
 	return cpu_idle();
 }
 
-static struct task_struct * __devinit
-fork_by_hand (void)
-{
-	/*
-	 * Don't care about the IP and regs settings since we'll never reschedule the
-	 * forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, 0, 0, NULL, NULL);
-}
-
 struct create_idle {
 	struct task_struct *idle;
 	struct completion done;
+	int cpu;
 };
 
 void
@@ -376,7 +367,7 @@
 {
 	struct create_idle *c_idle = _c_idle;
 
-	c_idle->idle = fork_by_hand();
+	c_idle->idle = fork_idle(c_idle->cpu);
 	complete(&c_idle->done);
 }
 
@@ -384,10 +375,11 @@
 do_boot_cpu (int sapicid, int cpu)
 {
 	int timeout;
-	struct create_idle c_idle;
+	struct create_idle c_idle = {
+		.cpu	= cpu,
+		.done	= COMPLETION_INITIALIZER(c_idle.done),
+	};
 	DECLARE_WORK(work, do_fork_idle, &c_idle);
-
-	init_completion(&c_idle.done);
 	/*
 	 * We can't use kernel_thread since we must avoid to reschedule the child.
 	 */
@@ -400,13 +392,6 @@
 
 	if (IS_ERR(c_idle.idle))
 		panic("failed fork for CPU %d", cpu);
-
-	/* Make this the idle thread */
-	init_idle(c_idle.idle, cpu);
-
-	/* Remove it from the pidhash */
-	unhash_process(c_idle.idle);
-
 	task_for_booting_cpu = c_idle.idle;
 
 	Dprintk("Sending wakeup vector %lu to AP 0x%x/0x%x.\n", ap_wakeup_vector, cpu, sapicid);
arch/mips/kernel/smp.c +1 -17
Index: mm1-2.6.8-rc3/arch/mips/kernel/smp.c
===================================================================
@@ -254,16 +254,6 @@
 	cpu_set(0, cpu_callin_map);
 }
 
-static struct task_struct * __init fork_by_hand(void)
-{
-	struct pt_regs regs;
-	/*
-	 * don't care about the eip and regs settings since
-	 * we'll never reschedule the forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 /*
  * Startup the CPU with this logical number
  */
@@ -275,16 +265,10 @@
 	 * The following code is purely to make sure
 	 * Linux can schedule processes on this slave.
 	 */
-	idle = fork_by_hand();
+	idle = fork_idle(cpu);
 	if (IS_ERR(idle))
 		panic("failed fork for CPU %d\n", cpu);
 
-	/* Make this the idle thread */
-	init_idle(idle, cpu);
-
-	/* Remove it from the pidhash */
-	unhash_process(idle);
-
 	prom_boot_secondary(cpu, idle);
 
 	/* XXXKW timeout */
arch/parisc/kernel/smp.c +1 -22
Index: mm1-2.6.8-rc3/arch/parisc/kernel/smp.c
===================================================================
@@ -504,24 +504,6 @@
 
 #if 0
 /*
- * Create the idle task for a new Slave CPU.  DO NOT use kernel_thread()
- * because that could end up calling schedule(). If it did, the new idle
- * task could get scheduled before we had a chance to remove it from the
- * run-queue...
- */
-static struct task_struct *fork_by_hand(void)
-{
-	struct pt_regs regs;  
-
-	/*
-	 * don't care about the regs settings since
-	 * we'll never reschedule the forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
-
-/*
  * Bring one cpu online.
  */
 int __init smp_boot_one_cpu(int cpuid, int cpunum)
@@ -539,12 +521,9 @@
 	 * Sheesh . . .
 	 */
 
-	idle = fork_by_hand();
+	idle = fork_idle(cpunum);
 	if (IS_ERR(idle))
 		panic("SMP: fork failed for CPU:%d", cpuid);
-
-	init_idle(idle, cpunum);
-	unhash_process(idle);
 	idle->thread_info->cpu = cpunum;
 
 	/* Let _start know what logical CPU we're booting
arch/ppc/kernel/smp.c +1 -6
Index: mm1-2.6.8-rc3/arch/ppc/kernel/smp.c
===================================================================
@@ -364,20 +364,15 @@
 
 int __cpu_up(unsigned int cpu)
 {
-	struct pt_regs regs;
 	struct task_struct *p;
 	char buf[32];
 	int c;
 
 	/* create a process for the processor */
 	/* only regs.msr is actually used, and 0 is OK for it */
-	memset(&regs, 0, sizeof(struct pt_regs));
-	p = copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
+	p = fork_idle(cpu);
 	if (IS_ERR(p))
 		panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
-	init_idle(p, cpu);
-	unhash_process(p);
-
 	secondary_ti = p->thread_info;
 	p->thread_info->cpu = cpu;
 
arch/ppc64/kernel/smp.c +1 -9
Index: mm1-2.6.8-rc3/arch/ppc64/kernel/smp.c
===================================================================
@@ -800,20 +800,12 @@
 
 static void __init smp_create_idle(unsigned int cpu)
 {
-	struct pt_regs regs;
 	struct task_struct *p;
 
 	/* create a process for the processor */
-	/* only regs.msr is actually used, and 0 is OK for it */
-	memset(&regs, 0, sizeof(struct pt_regs));
-	p = copy_process(CLONE_VM | CLONE_IDLETASK,
-			 0, &regs, 0, NULL, NULL);
+	p = fork_idle(cpu);
 	if (IS_ERR(p))
 		panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
-
-	init_idle(p, cpu);
-	unhash_process(p);
-
 	paca[cpu].__current = p;
 	current_set[cpu] = p->thread_info;
 }
arch/s390/kernel/smp.c +1 -10
Index: mm1-2.6.8-rc3/arch/s390/kernel/smp.c
===================================================================
@@ -562,24 +562,15 @@
 
 static void __init smp_create_idle(unsigned int cpu)
 {
-	struct pt_regs regs;
 	struct task_struct *p;
 
 	/*
 	 *  don't care about the psw and regs settings since we'll never
 	 *  reschedule the forked task.
 	 */
-	memset(&regs, 0, sizeof(struct pt_regs));
-	p = copy_process(CLONE_VM | CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
+	p = fork_idle(cpu);
 	if (IS_ERR(p))
 		panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
-
-	/* Make this the idle thread */
-	init_idle(p, cpu);
-
-	/* Remove it from the pidhash */
-	unhash_process(p);
-
 	current_set[cpu] = p;
 }
 
arch/sh/kernel/smp.c +1 -6
Index: mm1-2.6.8-rc3/arch/sh/kernel/smp.c
===================================================================
@@ -98,17 +98,12 @@
 int __cpu_up(unsigned int cpu)
 {
 	struct task_struct *tsk;
-	struct pt_regs regs;
 
-	memset(&regs, 0, sizeof(struct pt_regs));
-	tsk = copy_process(CLONE_VM | CLONE_IDLETASK, 0, &regs, 0, 0, 0);
+	tsk = fork_idle(cpu);
 
 	if (IS_ERR(tsk))
 		panic("Failed forking idle task for cpu %d\n", cpu);
 	
-	init_idle(tsk, cpu);
-	unhash_process(tsk);
-	
 	tsk->thread_info->cpu = cpu;
 
 	cpu_set(cpu, cpu_online_map);
arch/sparc/kernel/sun4d_smp.c +1 -10
Index: mm1-2.6.8-rc3/arch/sparc/kernel/sun4d_smp.c
===================================================================
@@ -201,18 +201,9 @@
 			int no;
 
 			/* Cook up an idler for this guy. */
-			kernel_thread(NULL, NULL, CLONE_IDLETASK);
-
+			p = fork_idle(p, cpu);
 			cpucount++;
-
-			p = prev_task(&init_task);
-
-			init_idle(p, i);
-
 			current_set[i] = p->thread_info;
-
-			unhash_process(p);
-
 			for (no = 0; !cpu_find_by_instance(no, NULL, &mid)
 				     && mid != i; no++) ;
 
arch/sparc64/kernel/smp.c +1 -8
Index: mm1-2.6.8-rc3/arch/sparc64/kernel/smp.c
===================================================================
@@ -302,14 +302,7 @@
 	struct task_struct *p;
 	int timeout, ret, cpu_node;
 
-	kernel_thread(NULL, NULL, CLONE_IDLETASK);
-
-	p = prev_task(&init_task);
-
-	init_idle(p, cpu);
-
-	unhash_process(p);
-
+	p = fork_idle(cpu);
 	callin_flag = 0;
 	cpu_new_thread = p->thread_info;
 	cpu_set(cpu, cpu_callout_map);
arch/um/kernel/smp.c +1 -3
Index: mm1-2.6.8-rc3/arch/um/kernel/smp.c
===================================================================
@@ -105,8 +105,7 @@
 
         current->thread.request.u.thread.proc = idle_proc;
         current->thread.request.u.thread.arg = (void *) cpu;
-	new_task = copy_process(CLONE_VM | CLONE_IDLETASK, 0, NULL, 0, NULL,
-				NULL);
+	new_task = fork_idle(cpu);
 	if(IS_ERR(new_task))
 		panic("copy_process failed in idle_thread, error = %ld",
 		      PTR_ERR(new_task));
@@ -118,7 +117,6 @@
 	CHOOSE_MODE(os_write_file(new_task->thread.mode.tt.switch_pipe[1], &c,
 			  sizeof(c)),
 		    ({ panic("skas mode doesn't support SMP"); }));
-	wake_up_forked_process(new_task);
 	return(new_task);
 }
 
arch/x86_64/kernel/smpboot.c +1 -17
Index: mm1-2.6.8-rc3/arch/x86_64/kernel/smpboot.c
===================================================================
@@ -392,16 +392,6 @@
 extern volatile unsigned long init_rsp; 
 extern void (*initial_code)(void);
 
-static struct task_struct * __init fork_by_hand(void)
-{
-	struct pt_regs regs;
-	/*
-	 * don't care about the eip and regs settings since
-	 * we'll never reschedule the forked task.
-	 */
-	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
-}
-
 #if APIC_DEBUG
 static inline void inquire_remote_apic(int apicid)
 {
@@ -575,17 +565,11 @@
 	 * We can't use kernel_thread since we must avoid to
 	 * reschedule the child.
 	 */
-	idle = fork_by_hand();
+	idle = fork_idle(cpu);
 	if (IS_ERR(idle))
 		panic("failed fork for CPU %d", cpu);
 	x86_cpu_to_apicid[cpu] = apicid;
 
-	/* Make this the idle thread */
-	init_idle(idle,cpu);
-
-	/* Remove it from the pidhash */
-	unhash_process(idle);
-
 	cpu_pda[cpu].pcurrent = idle;
 
 	start_rip = setup_trampoline();
include/linux/sched.h +1 -1
Index: mm1-2.6.8-rc3/include/linux/sched.h
===================================================================
@@ -968,7 +968,7 @@
 
 extern int do_execve(char *, char __user * __user *, char __user * __user *, struct pt_regs *);
 extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
-extern struct task_struct * copy_process(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
+task_t *fork_idle(int);
 
 #ifdef CONFIG_SMP
 extern void wait_task_inactive(task_t * p);
init/main.c +0 -9
Index: mm1-2.6.8-rc3/init/main.c
===================================================================
@@ -495,15 +495,6 @@
 	 * time - but meanwhile we still have a functioning scheduler.
 	 */
 	sched_init();
-
-	/*
-	 * Make us the idle thread. Technically, schedule() should not be
-	 * called from this thread, however somewhere below it might be,
-	 * but because we are the idle thread, we just pick up running again
-	 * when this runqueue becomes "idle".
-	 */
-	init_idle(current, smp_processor_id());
-
 	build_all_zonelists();
 	page_alloc_init();
 	trap_init();
kernel/fork.c +15 -1
Index: mm1-2.6.8-rc3/kernel/fork.c
===================================================================
@@ -881,7 +881,7 @@
  * parts of the process environment (as per the clone
  * flags). The actual kick-off is left to the caller.
  */
-struct task_struct *copy_process(unsigned long clone_flags,
+static task_t *copy_process(unsigned long clone_flags,
 				 unsigned long stack_start,
 				 struct pt_regs *regs,
 				 unsigned long stack_size,
@@ -1181,6 +1181,20 @@
 	goto fork_out;
 }
 
+task_t * __init fork_idle(int cpu)
+{
+	task_t *task;
+	struct pt_regs regs;
+
+	memset(&regs, 0, sizeof(struct pt_regs));
+	task = copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
+	if (!task)
+		return ERR_PTR(-ENOMEM);
+	init_idle(task, cpu);
+	unhash_process(task);
+	return task;
+}
+
 static inline int fork_traceflag (unsigned clone_flags)
 {
 	if (clone_flags & (CLONE_UNTRACED | CLONE_IDLETASK))
kernel/sched.c +8 -0
Index: mm1-2.6.8-rc3/kernel/sched.c
===================================================================
@@ -4391,6 +4391,14 @@
 	 */
 	atomic_inc(&init_mm.mm_count);
 	enter_lazy_tlb(&init_mm, current);
+
+	/*
+	 * Make us the idle thread. Technically, schedule() should not be
+	 * called from this thread, however somewhere below it might be,
+	 * but because we are the idle thread, we just pick up running again
+	 * when this runqueue becomes "idle".
+	 */
+	init_idle(current, smp_processor_id());
 }
 
 #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP
#27 lore raw
Quoted 4 lines · William Lee Irwin III
Quoted 4 lines

It appears that init_idle() and fork_by_hand() could be combined into a single method that calls init_idle() on behalf of the caller, which would amount to something like:
task_t * __init fork_idle(int cpu)

Quoted 1 line · William Lee Irwin III

Atop the full 2.6.8-rc3-mm1 series:

Fix up sparc32 properly (incremental).

arch/sparc/kernel/sun4d_smp.c +1 -1
Index: mm1-2.6.8-rc3/arch/sparc/kernel/sun4d_smp.c
===================================================================
@@ -201,7 +201,7 @@
 			int no;
 
 			/* Cook up an idler for this guy. */
-			p = fork_idle(p, cpu);
+			p = fork_idle(p, i);
 			cpucount++;
 			current_set[i] = p->thread_info;
 			for (no = 0; !cpu_find_by_instance(no, NULL, &mid)
arch/sparc/kernel/sun4m_smp.c +1 -10
Index: mm1-2.6.8-rc3/arch/sparc/kernel/sun4m_smp.c
===================================================================
@@ -173,18 +173,9 @@
 			int timeout;
 
 			/* Cook up an idler for this guy. */
-			kernel_thread(NULL, NULL, CLONE_IDLETASK);
-
+			p = fork_idle(i);
 			cpucount++;
-
-			p = prev_task(&init_task);
-
-			init_idle(p, i);
-
 			current_set[i] = p->thread_info;
-
-			unhash_process(p);
-
 			/* See trampoline.S for details... */
 			entry += ((i-1) * 3);
 
#28 lore raw
Quoted 11 lines · William Lee Irwin III
Quoted 4 lines · William Lee Irwin III
Quoted 4 lines

It appears that init_idle() and fork_by_hand() could be combined into a single method that calls init_idle() on behalf of the caller, which would amount to something like:
task_t * __init fork_idle(int cpu)

Quoted 1 line · William Lee Irwin III

Atop the full 2.6.8-rc3-mm1 series:

Fix up sparc32 properly (incremental).

Well I had to significantly smash these patches to get stuff in the right place. Please check that next -mm has it all right.

A message that is not in the archive (sent off-list or not yet received): [email protected]

#30 lore raw

Re: alpha signal race fixes

Quoted 3 lines · William Lee Irwin III

It appears alpha needs an update here also. The rampant variable renaming made my eyes bleed, so I omitted that from here. Anyhow, the test app works after I apply this, so I must have done something right.

And one more alpha fix for the profiling consolidation:

arch/alpha/kernel/irq.c +0 -3
Index: mm1-2.6.8-rc3/arch/alpha/kernel/irq.c
===================================================================
@@ -329,9 +329,6 @@
 void
 init_irq_proc (void)
 {
-#ifdef CONFIG_SMP
-	struct proc_dir_entry *entry;
-#endif
 	int i;
 
 	/* create /proc/irq */
#31 lore raw
In reply to Andrew Morton

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

Quoted 3 lines

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc3/2.6 .8-rc3-mm1/

This now boots nicely on my Dual Opteron.

Disk I/O still sucks badly though...

Mark.

- --
Mark Watts
Senior Systems Engineer
QinetiQ Trusted Information Management
Trusted Solutions and Services group
GPG Public Key ID: 455420ED

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBE34+Bn4EFUVUIO0RAqzoAKDRlcp3WoWN7tIblVoaABR8V8GLLACfUWtw q+ueFCLaS6WnbBgIpZqh1eI=
=sVE8
-----END PGP SIGNATURE-----

#32 lore raw

2.6.8-rc3-mm1: PROC_FS=n link errors

In reply to Andrew Morton
Quoted 9 lines · Andrew Morton

...
Changes since 2.6.8-rc2-mm2:
...

(quoted diff) +2 -0
+consolidate-prof_cpu_mask.patch
...
+profile_tick.patch
...

Consolidate a lot of the kernel profiling code.
...

Theses patches cause the following link errors with CONFIG_PROC_FS=n:

<-- snip -->

...
LD .tmp_vmlinux1
arch/i386/kernel/built-in.o(.text+0x45ce): In function `init_irq_proc':
: undefined reference to create_prof_cpu_mask' arch/i386/kernel/built-in.o(.text+0xfaf8): In function smp_apic_timer_interrupt':
: undefined reference to profile_tick' arch/i386/kernel/built-in.o(.text+0xfc68): In function smp_local_timer_interrupt':
: undefined reference to profile_tick' kernel/built-in.o(.sched.text+0x46): In function schedule':
: undefined reference to `profile_hit'
make: *** [.tmp_vmlinux1] Error 1

<-- snip -->

cu
Adrian

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

Re: 2.6.8-rc3-mm1: PROC_FS=n link errors

Quoted 5 lines · Andrew Morton
Quoted 5 lines

Changes since 2.6.8-rc2-mm2:

(quoted diff) +2 -0
+consolidate-prof_cpu_mask.patch
+profile_tick.patch

Consolidate a lot of the kernel profiling code.
...

Quoted 6 lines · Adrian Bunk

Theses patches cause the following link errors with CONFIG_PROC_FS=n:
<-- snip -->
...
LD .tmp_vmlinux1
arch/i386/kernel/built-in.o(.text+0x45ce): In function `init_irq_proc':
: undefined reference to `create_prof_cpu_mask'

Ugh. Okay, here goes:

Fix up compile with CONFIG_PROC_FS=n. Accomplish this by conditionally declaring create_prof_cpu_mask(), privatizing create_proc_profile(), and unconditionally including profile_hit() and profile_tick().

fs/proc/proc_misc.c +0 -1
Index: mm1-2.6.8-rc3/fs/proc/proc_misc.c
===================================================================
@@ -662,7 +662,6 @@
 				(size_t)high_memory - PAGE_OFFSET + PAGE_SIZE;
 	}
 #endif
-	create_proc_profile();
 #ifdef CONFIG_MAGIC_SYSRQ
 	entry = create_proc_entry("sysrq-trigger", S_IWUSR, NULL);
 	if (entry)
include/linux/profile.h +5 -2
Index: mm1-2.6.8-rc3/include/linux/profile.h
===================================================================
@@ -17,10 +17,13 @@
 
 /* init basic kernel profiler */
 void __init profile_init(void);
-void create_prof_cpu_mask(struct proc_dir_entry *);
 void profile_tick(int, struct pt_regs *);
 void profile_hit(int, void *);
-void create_proc_profile(void);
+#ifdef CONFIG_PROC_FS
+void create_prof_cpu_mask(struct proc_dir_entry *);
+#else
+#define create_prof_cpu_mask(x)			do { (void)(x); } while (0)
+#endif
 
 enum profile_type {
 	EXIT_TASK,
kernel/profile.c +7 -6
Index: mm1-2.6.8-rc3/kernel/profile.c
===================================================================
@@ -162,11 +162,6 @@
 EXPORT_SYMBOL_GPL(profile_event_register);
 EXPORT_SYMBOL_GPL(profile_event_unregister);
 
-#ifdef CONFIG_PROC_FS
-#include <linux/proc_fs.h>
-#include <asm/uaccess.h>
-#include <asm/ptrace.h>
-
 void profile_hit(int type, void *__pc)
 {
 	unsigned long pc;
@@ -185,6 +180,11 @@
 		profile_hit(type, (void *)profile_pc(regs));
 }
 
+#ifdef CONFIG_PROC_FS
+#include <linux/proc_fs.h>
+#include <asm/uaccess.h>
+#include <asm/ptrace.h>
+
 static int prof_cpu_mask_read_proc (char *page, char **start, off_t off,
 			int count, int *eof, void *data)
 {
@@ -287,7 +287,7 @@
 	.write		= write_profile,
 };
 
-void __init create_proc_profile(void)
+static int __init create_proc_profile(void)
 {
 	struct proc_dir_entry *entry;
 
@@ -298,4 +298,5 @@
 	entry->proc_fops = &proc_profile_operations;
 	entry->size = (1+prof_len) * sizeof(unsigned int);
 }
+module_init(create_proc_profile);
 #endif /* CONFIG_PROC_FS */
#34 lore raw

Re: 2.6.8-rc3-mm1: PROC_FS=n link errors

Quoted 5 lines · Adrian Bunk
Quoted 5 lines

Theses patches cause the following link errors with CONFIG_PROC_FS=n:
<-- snip -->
LD .tmp_vmlinux1
arch/i386/kernel/built-in.o(.text+0x45ce): In function `init_irq_proc':
: undefined reference to `create_prof_cpu_mask'

Quoted 4 lines · William Lee Irwin III

Ugh. Okay, here goes:
Fix up compile with CONFIG_PROC_FS=n. Accomplish this by conditionally declaring create_prof_cpu_mask(), privatizing create_proc_profile(), and unconditionally including profile_hit() and profile_tick().

Fix up create_proc_profile() to actually return values, and also s/unsigned int/atomic_t/ in one last place with a casting to atomic_t hangover.

-- wli

kernel/profile.c +4 -3
Index: mm1-2.6.8-rc3/kernel/profile.c
===================================================================
@@ -292,11 +292,12 @@
 	struct proc_dir_entry *entry;
 
 	if (!prof_on)
-		return;
+		return 0;
 	if (!(entry = create_proc_entry("profile", S_IWUSR | S_IRUGO, NULL)))
-		return;
+		return 0;
 	entry->proc_fops = &proc_profile_operations;
-	entry->size = (1+prof_len) * sizeof(unsigned int);
+	entry->size = (1+prof_len) * sizeof(atomic_t);
+	return 0;
 }
 module_init(create_proc_profile);
 #endif /* CONFIG_PROC_FS */
#35 lore raw

2.6.8-rc3-mm1: sk98lin/skge.c compile error with PROC_FS=n

In reply to Andrew Morton
Quoted 5 lines · Andrew Morton

...
All 450 patches
...
bk-netdev.patch
...

This breaks compilation with CONFIG_PROC_FS=n:

<-- snip -->

...
CC [M] drivers/net/sk98lin/skge.o
drivers/net/sk98lin/skge.c: In function `skge_remove_one':
drivers/net/sk98lin/skge.c:5116: warning: implicit declaration of function remove_proc_entry' drivers/net/sk98lin/skge.c:5116: pSkRootDir' undeclared (first use in this function)
drivers/net/sk98lin/skge.c:5116: (Each undeclared identifier is reported only once
drivers/net/sk98lin/skge.c:5116: for each function it appears in.) drivers/net/sk98lin/skge.c: In function `skge_init':
drivers/net/sk98lin/skge.c:5188: `SK_Root_Dir_entry' undeclared (first use in this function)
make[3]: *** [drivers/net/sk98lin/skge.o] Error 1

<-- snip -->

cu
Adrian

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