ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/2.6.7-mm3/
- Added Adam's PNP bk tree to the "external bk trees"
- random fixes and updates all over the place
Changes since 2.6.7-mm2:
linus.patch
bk-acpi.patch
bk-agpgart.patch
bk-alsa.patch
bk-cifs.patch
bk-cpufreq.patch
bk-driver-core.patch
bk-ieee1394.patch
bk-input.patch
bk-netdev.patch
bk-ntfs.patch
bk-pnp.patch
bk-scsi.patch
bk-usb.patch
External trees
-allow-i386-to-reenable-interrupts-on-lock-contention.patch
-ext3-jbd-needs-to-wait-for-locked-buffers.patch
-Move-saved_command_line-to-init-mainc.patch
-rcu-lock-update-add-per-cpu-batch-counter.patch
-rcu-lock-update-use-a-sequence-lock-for-starting-batches.patch
-rcu-lock-update-code-move-cleanup.patch
-singly-linked-rcu.patch
-rcu-no-arg.patch
-rcu-no-arg-fix.patch
-rcu-no-arg-fastcall-fix.patch
-sch_generic-rcu-fix.patch
-cpumask-1-10-cpu_present_map-real-even-on-non-smp.patch
-cpumask-2-10-bitmap-cleanup-preparation-for-cpumask.patch
-cpumask-3-10-bitmap-inlining-and-optimizations.patch
-cpumask-5-10-rewrite-cpumaskh-single-bitmap-based.patch
-cpumask-5-10-rewrite-cpumaskh-single-bitmap-based-cpu_mask_none-fix.patch
-s390-fix-cpu_online-redefined-warnings.patch
-cpumask-6-10-remove-26-no-longer-used-cpumaskh-files.patch
-cpumask-7-10-remove-obsolete-cpumask-macro-uses-i386-arch.patch
-cpumask-8-10-remove-obsolete-cpumask-macro-uses-other.patch
-x86_64-cpu_online-fix.patch
-ppc64-cpu_online-fix.patch
-cpumask-9-10-remove-no-longer-used-obsolete-macro-emulation.patch
-cpumask-10-10-optimize-various-uses-of-new-cpumasks.patch
-cpumask-11-10-comment-spacing-tweaks.patch
-cleanup-cpumask_t-temporaries.patch
-alpha-cpumask-fix.patch
-irqaction-use-cpumask.patch
-fix-and-reenable-msi-support-on-x86_64.patch
-vmscan-shuffle-things-around.patch
-vmscan-scan-sanity.patch
-vmscan-dont-reclaim-too-many-pages.patch
-vfs-shrinkage-tuning.patch
-ide-stack-reduction.patch
-dnotify-remove-dn_lock.patch
-fancy-wakeups-in-wait-h.patch
-buddy-reordering.patch
-hwcache-align-kmalloc-caches.patch
-reduce-function-inlining-in-slabc.patch
-abs-fix.patch
-abs-fix-fix.patch
-ide-taskfilec-fixups-cleanups.patch
-ide-end-request-fix-for-config_ide_taskfile_io=y-pio-handlers.patch
-ide-pio-in-drive-busy-fix-config_ide_taskfile_io=y.patch
-ide-check-drive-mult_count-in-flagged_taskfile.patch
-ide-last-irq-fix-for-task_mulout_intr-config_ide_taskfile_io=n.patch
-ide-remove-dtf-debugging-printks-from-ide-taskfilec.patch
-ide-add-task_multi_sectors-to-ide-taskfilec.patch
-ide-split-task_sectors-and-task_multi_sectors.patch
-ide-dont-clear-rq-errors-for-req_drive_taskfile-requests.patch
-ide-use-task_buffer_sectors-in-ide-taskfilec.patch
-ide-pio-out-setup-fixes-config_ide_taskfile_io=n.patch
-for-netmos-based-pci-cards-providing-serial-and-parallel-ports.patch
-help-text-for-fb_riva_i2c.patch
-nr_pagecache-can-go-negative.patch
-nr_swap_pages-is-long.patch
-nr_swap_pages-is-long-fixes.patch
-total_swap_pages-is-long.patch
-a2-rewrite-and-26-fixes.patch
-dell-laptop-lockup-fix-for-alsa.patch
-mips-update.patch
-mips-indydog-update.patch
-re-267-mm1-linker-trouble-with-config_fb_riva_i2c=y-and-modular-i2c.patch
-fix-early-cpu-vendor-detection-for-non-intel-cpus.patch
-oprofile-allow-normal-user-to-trigger-sample-dumps.patch
-tiny-update-to-documentation-submittingdrivers-list-xorg.patch
-core-fbcon-fixes.patch
-video-mode-change-notify-fbset.patch
-fix-power3-numa-init.patch
-add-ppc85xx-maintainers-entry.patch
-flexible-mmap-267-mm1-a0.patch
-flexible-mmap-267-mm1-a0-fix.patch
-oprofile-documentation-basic_profilingtxt-updates.patch
-selinux-extend-and-revise-calls-to-secondary-module.patch
-fix-allocate_pgdat-comments.patch
-drivers-media-video-tda9840c-honour-return-code-of.patch
-altix-serial-driver.patch
-altix-serial-driver-fix.patch
-zap_pte_range-speedup.patch
-h8300-delete-obsolute-header.patch
-cirrusfb-it-lives.patch
-update-ikconfig-help-text.patch
-update-ikconfig-generator-script.patch
-hugetlb-use-safe-iterator.patch
-swsusp-minor-docs-updates.patch
-prepare-for-smp-suspend.patch
-swsusp-shuffle-cpuc-to-make-it-usable-for-smp-suspend.patch
-consolidate-in-kernel-configuration.patch
-sparse-trivial-fixes-of-assignment-expression-in-conditional-in-fs.patch
-more-bug-fix-in-mm-hugetlbc-fix-try_to_free_low.patch
-shut-up-kaweth-usb-net-driver.patch
-oom-killer-fix.patch
-sh-sh-3-on-chip-adc-support.patch
-sh-dma-mapping-updates.patch
-sh-dma-driver-updates.patch
-sh-early-printk-cleanup.patch
-sh-fixmap-support.patch
-sh-renesas-hs7751rvoip-board-support.patch
-sh-ide-cleanup.patch
-sh-ptep_get_and_clear-compile-fix.patch
-sh-sh-sci-updates.patch
-sh-solutionengine-7300-board-support.patch
-sh-renesas-rts7751r2d-board-support.patch
-sh-pci-updates.patch
-sh-sh7705-sh7300-subtype-support-st40-updates.patch
-sh-voyagergx-companion-chip-support.patch
-sh-merge.patch
-sh-consolidate-systemh-with-other-renesas-boards.patch
-md-fix-up-handling-for-read-error-in-raid1.patch
-md-xor-template-selection-redo.patch
-kswapd-warning-fix.patch
-balanced_irq-warning-fix.patch
-tr-warning-fixes.patch
-fc-warning-fix.patch
-ip_fw_compat_masq-build-fix.patch
-pkt_sched-warning-fixes.patch
-267-fix-broken-alpha-build-ptracec-error.patch
Merged
+add-pcdp-console-detection-support.patch
+add-pcdp-console-detection-support-config-fix.patch
Add support for the EFI/DIG PCDP console discovery table.
+pwc-uncompress-build-fix.patch
USB driver compile fix
+ppc64-COMMAND_LINE_SIZE-fix.patch
+ppc64-fix-oprofile-on-970.patch
+ppc64-udbg-should-use-snprintf.patch
+ppc64-another-udbg-fix.patch
+ppc64-udbg-fix.patch
+ppc64-remove-a-stale-comment-in-rtasc.patch
+ppc64-fix-usage-of-cpumask_t-on-iseries.patch
PPC64 updates
+__alloc_bootmem_node-should-not-panic-when-it-fails.patch
NUMA mm initialisation tweak
+kgdb-irqaction-use-cpumask.patch
kgdb fix
-sysfs-overflow-debug.patch
Dropped - the bug is fixed.
+i8042-sparc64-build-fix.patch
input build fix
+sysfs-fill_read_buffer-fix.patch
Fix sysfs BUG_ON
+altix-serial-driver-2.patch
ALTIX serial driver
+fix-module_text_address-store_stackinfo-race-2.patch
Fix for CONFIG_DEBUG_PAGEALLOC modules race
+reduce-tlb-flushing-during-process-migration-2-fix.patch
+tlb_migrate_flush-docs.patch
New version of this ia64 speedup patch
+per-node-huge-page-stats-in-sysfs-fix.patch
hugetlb NUMA instrumentation
+i386-uninline-memmove.patch
ia32 linkage fix
+selinux-config_security_network-build-fix.patch
selinux fix
+tidy-identify_cpu-output.patch
Neaten boot messages
+allow-root-to-choose-vfat-policy-to-utf8.patch
VFAT fix
+crc-add-common-crc16-module.patch
+crc-add-common-crc16-module-default-y.patch
+crc-use-it-in-async-ppp-driver.patch
+crc-use-it-in-irda-drivers.patch
+crc-use-it-in-isdn-drivers.patch
+crc-use-it-in-ax25-drivers.patch
Consolidate crc32 code
+direct-i-o-stomp-over-page-mapping-for-hugetlb-page.patch
hugetlb direct-io fix
+fix-numa-boundaray-between-zone_normal-and-highmem.patch
NUMA setup fix
+missing-semicolon-in-267-viodasd-driver.patch
build fix
+267-bk7-ppp_genericc-get_filter-made-conditional.patch
ifdef away some unused code
+radeonfb-accel-capabilities-resend.patch
radeonfb hardware acceleration
+sched-cleanup-init_idle.patch
+sched-cleanup-improve-sched-fork-apis.patch
+sched-misc-changes.patch
+sched-disable-balance-on-clone-by-default.patch
+sched-exit-race.patch
CPU scheduler updates
+mention-in-the-laptop-mode-docs-that-no-kernel-configuration-change-is-needed.patch
laptop-mode documentation update
+inodes_stat-nr_unused-fix.patch
inode_stat.nr_unused accounting fix
+memory-backed-inodes-fix.patch
small writeback speedup
+vc-locking.patch
+vc-locking-tweaks.patch
virtual console locking fixes
+laptop-mode-control-script-improvements.patch
laptop mode control script update
+swsusps-meaningfull-assembly-labels.patch
swsusp.S cleanup
+fix-gfp-zone-modifier-interators.patch
page allocator fixlet
+fix-char-ipmi-ipmi_si_intfc-warnings.patch
warning fixes
+ext3_bread-cleanup.patch
Code cleanup
+remove-include-arch-inith.patch
remove various asm/init.h files
+anon_vma-list-locking-bug.patch
MM locking fix
+cpufreq_delayed_get-inline-fix.patch
cpufreq inlining fix
+lock-ordering-update.patch
locking documentation update
+ext3-direct-io-credits-overflow-fix.patch
ext3 direct-io BUGfix
+arm-build-fix.patch
ARM compile fix
+dont-hold-i_sem-on-swapfiles.patch
+dont-hold-i_sem-on-swapfiles-comment.patch
Stop holding i_sem on swapfiles.
+setattr-retval-fixes.patch
+reiserfs_setattr-retval-fix.patch
+jfs_setattr-fix.patch
+cifs_setattr-retval-fix.patch
+ncpfs_setattr-retval-fix.patch
+affs_setattr-retval-fix.patch
Fix lots of filesystem setattr() implementations
+translate-japanese-comments-in-arch-v850.patch
asciify some v850 comments.
All 198 patches
linus.patch
add-pcdp-console-detection-support.patch
Add PCDP console detection support
add-pcdp-console-detection-support-config-fix.patch
add-pcdp-console-detection-support-config-fix
kbuild-improve-kernel-build-with-separated-output.patch
kbuild: Improve Kernel build with separated output
sysfs-leaves-mount.patch
sysfs backing store: add sysfs_dirent
sysfs-leaves-dir.patch
sysfs backing store: add sysfs_dirent
sysfs-leaves-file.patch
sysfs backing store: sysfs_create() changes
sysfs-leaves-bin.patch
sysfs backing store: bin attribute changes
sysfs-leaves-symlink.patch
sysfs backing store: sysfs_create_link changes
sysfs-leaves-misc.patch
sysfs backing store: attribute groups and misc routines
bk-acpi.patch
bk-agpgart.patch
bk-alsa.patch
bk-cifs.patch
bk-cpufreq.patch
bk-driver-core.patch
bk-ieee1394.patch
bk-input.patch
bk-netdev.patch
bk-ntfs.patch
bk-pnp.patch
bk-scsi.patch
bk-usb.patch
mm.patch
add -mmN to EXTRAVERSION
pwc-uncompress-build-fix.patch
pwc-uncompress-build-fix
ppc64-COMMAND_LINE_SIZE-fix.patch
ppc64: COMMAND_LINE_SIZE fix
ppc64-fix-oprofile-on-970.patch
ppc64: fix oprofile on 970
ppc64-udbg-should-use-snprintf.patch
ppc64: udbg should use snprintf
ppc64-another-udbg-fix.patch
ppc64: another udbg fix
ppc64-udbg-fix.patch
ppc64: udbg fix
ppc64-remove-a-stale-comment-in-rtasc.patch
ppc64: remove a stale comment in rtas.c
ppc64-fix-usage-of-cpumask_t-on-iseries.patch
ppc64: fix usage of cpumask_t on iSeries
__alloc_bootmem_node-should-not-panic-when-it-fails.patch
__alloc_bootmem_node should not panic when it fails
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-gapatch-fix-for-i386-single-step-into-sysenter.patch
kgdb-ga.patch fix for i386 single-step into sysenter
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
kgdb-irqaction-use-cpumask.patch
make-tree_lock-an-rwlock.patch
make mapping->tree_lock an rwlock
radix_tree_tag_set-atomic.patch
Make radix_tree_tag_set/clear atomic wrt the tag
radix_tree_tag_set-only-needs-read_lock.patch
radix_tree_tag_set only needs read_lock()
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-reloc_hide.patch
invalidate_inodes-speedup.patch
invalidate_inodes speedup
more invalidate_inodes speedup fixes
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
hugetlb_shm_group-sysctl-gid-0-fix.patch
hugetlb_shm_group sysctl-gid-0-fix
larger-io-bitmap.patch
larger IO bitmaps
really-ptrace-single-step-2.patch
ptrace single-stepping fix
ftruncate-vs-block_write_full_page.patch
ftruncate vs block_write_full_page race fix
ia32-fault-deadlock-fix-2.patch
ia32: fix deadlocks when oopsing while mmap_sem is held
ppc64-fault-deadlock-fix-2.patch
ppc64: fix deadlocks when oopsing while mmap_sem is held
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
disk-barrier-scsi.patch
disk barriers: scsi
disk-barrier-dm.patch
disk barriers: devicemapper
disk-barrier-md.patch
disk barriers: MD
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
x86-stack-dump-fixes.patch
x86 stack dump fixes
enable-suspend-resuming-of-e1000.patch
Enable suspend/resuming of e1000
tty_io-hangup-locking.patch
tty_io.c hangup locking
nx-2.6.7-rc2-bk2-AF.patch
NX (No eXecute) support for x86
nx-update.patch
nx update
nx-update-2.patch
nx update 2
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
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_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.patch
perfctr ppc32 update
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-ifdef-cleanup.patch
perfctr ifdef cleanup
perfctr-cpus_complement-fix.patch
perfctr-cpus_complement-fix
perfctr-cpumask-cleanup.patch
perfctr cpumask cleanup
perfctr-misc.patch
From: Mikael Pettersson <[email protected]>
Subject: [PATCH][6/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: misc
ext3-online-resize-patch.patch
ext3: online resizing
ext3-online-resize-warning-fix.patch
ext3-online-resize-warning-fix
dont-writeback-fd-bdev-inodes.patch
dont-writeback-fd-bdev-inodes
input-psmouse-resync-for-kvm-users.patch
input: psmouse resync for KVM users
input-psmouse-state-locking.patch
input: psmouse state locking
input-serio-connect-disconnect-mandatory.patch
input: serio connect/disconnect mandatory
input-serio-renames-1.patch
input: serio renames 1
input-serio-renames-1-fix.patch
input-serio-renames-1-fix
input-serio-renames-2.patch
input: serio renames 2
input-serio-dynamic-allocation.patch
input: serio dynamic allocation
input-serio-dynamic-allocation-fix-2.patch
input-serio-dynamic-allocation-fix-2
input-serio-dynamic-allocation-fix-3.patch
input-serio-dynamic-allocation-fix-3
input-serio-no-recursion.patch
input: serio no recursion
input-serio-sysfs-integration.patch
input: serio sysfs integration
input-serio-allow-rebinding.patch
input: serio allow rebinding
input-serio-manual-bind.patch
input: serio manual bind
input-serio_raw-driver.patch
input: serio_raw driver
i8042-sparc64-build-fix.patch
i8042 sparc64 build fix
sysfs-fill_read_buffer-fix.patch
sysfs: fill_read_buffer() fix
fix-smbfs-readdir-oops.patch
Fix smbfs readdir oops
remove-smbfs-server-rcls-err.patch
Remove smbfs server->rcls/err
kallsyms-exclude.patch
kallsyms: exclude kallsyms-generated symbols
kallsyms-verify.patch
kallsyms: verify that System.map is stable
r8169_napi-help-text.patch
R8169_NAPI help text
kbuild-distclean-srctree-fix.patch
kbuild: distclean srctree fix
make-__free_pages_bulk-more-comprehensible.patch
make __free_pages_bulk more comprehensible
net-at1700c-depends-on-mca_legacy.patch
net/at1700.c depends on MCA_LEGACY
net-ne2c-needs-mca_legacy.patch
net/ne2.c needs MCA_LEGACY
cap_dac_override.patch
CAP_DAC_OVERRIDE fix
altix-serial-driver-2.patch
Altix serial driver updates
altix-serial-driver-fix
fix-module_text_address-store_stackinfo-race-2.patch
Fix race between CONFIG_DEBUG_SLABALLOC and modules
bridge-fix-bpdu-message_age.patch
Bridge - Fix BPDU message_age
267-mm1-port-acer-laptop-irq-routing-workaround-to-new-dmi-probing.patch
dmi_scan: port Acer laptop irq routing workaround to new DMI probing
267-mm1-port-pnp-bios-driver-to-new-dmi-probing.patch
dmi_scan: port PnP BIOS driver to new DMI probing
267-mm1-port-sonypi-driver-to-new-dmi-probing.patch
dmi_scan: port sonypi driver to new DMI probing
267-mm1-port-piix4-smbus-driver-to-new-dmi-probing.patch
dmi_scan: port PIIX4 SMBUS driver to new DMI probing
267-mm1-port-powernow-k7-driver-to-new-dmi-probing.patch
dmi_scan: port powernow-k7 driver to new DMI probing
267-mm1-remove-unused-asus-k7v-rm-dmi-quirk.patch
dmi_scan: remove unused ASUS K7V-RM DMI quirk
267-mm1-port-apm-bios-driver-to-new-dmi-probing.patch
dmi_scan: port APM BIOS driver to new DMI probing
hpet-fixes.patch
hpet fixes
hpet-fixes-fix.patch
hpet-fixes fix
reduce-tlb-flushing-during-process-migration-2.patch
Reduce TLB flushing during process migration
reduce-tlb-flushing-during-process-migration-2-fix.patch
reduce-tlb-flushing-during-process-migration-2-fix
tlb_migrate_flush-docs.patch
tlb_migrate_flush documentation
per-node-huge-page-stats-in-sysfs.patch
per node huge page stats in sysfs
per-node-huge-page-stats-in-sysfs-fix.patch
per-node-huge-page-stats-in-sysfs fix
scsi-printk-fixes.patch
scsi printk fixes
knfsd-mark-nfs-tcp-server-not-experimental.patch
knfsd: mark NFS/TCP server not EXPERIMENTAL
knfsd-simplify-nfsd4-name-encoding.patch
knfsd: simplify nfsd4 name encoding.
knfsd-simplify-nfsd4_release_lockowner.patch
knfsd: simplify nfsd4_release_lockowner
knfsd-delete-an-obsolete-comment-from-nfsd-rpc-code.patch
knfsd: delete an obsolete comment from nfsd rpc code
knfsd-reduce-stack-usage-in-nfsd4.patch
knfsd: reduce stack usage in nfsd4
knfsd-nfsd4-lockowner-fixes.patch
knfsd: nfsd4 lockowner fixes
knfsd-parse-nsfd4-callback-information.patch
knfsd: parse nsfd4 callback information
knfsd-improve-cleaning-up-of-nfsd4-requests.patch
knfsd: improve cleaning up of nfsd4 requests
knfsd-allow-user-to-set-nfsv4-lease-time.patch
knfsd: allow user to set NFSv4 lease time.
i386-uninline-memmove.patch
i386: uninline memmove
selinux-config_security_network-build-fix.patch
SELinux: fix build with CONFIG_SECURITY_NETWORK=n
tidy-identify_cpu-output.patch
tidy up the identify_cpu() output
allow-root-to-choose-vfat-policy-to-utf8.patch
Permit root to choose vfat policy to UTF8
crc-add-common-crc16-module.patch
crc: add common CRC16 module
crc-add-common-crc16-module-default-y.patch
crc-add-common-crc16-module-default-y
crc-use-it-in-async-ppp-driver.patch
crc: use it in async PPP driver
crc-use-it-in-irda-drivers.patch
crc: use it in IRDA drivers
crc-use-it-in-isdn-drivers.patch
Subject: [PATCH 3/4] 2.6.7-mm2, Use it in ISDN drivers
crc-use-it-in-ax25-drivers.patch
crc: use it in AX.25 drivers
direct-i-o-stomp-over-page-mapping-for-hugetlb-page.patch
Fix direct I/O into hugetlb page
fix-numa-boundaray-between-zone_normal-and-highmem.patch
fix NUMA boundaray between ZONE_NORMAL and HIGHMEM
missing-semicolon-in-267-viodasd-driver.patch
missing semicolon in 2.6.7 VIODASD driver
267-bk7-ppp_genericc-get_filter-made-conditional.patch
ppp_generic.c get_filter made conditional
radeonfb-accel-capabilities-resend.patch
radeonfb accel capabilities (resend)
sched-cleanup-init_idle.patch
sched: cleanup init_idle
sched-cleanup-improve-sched-fork-apis.patch
sched: cleanup, improve sched <=> fork APIs
sched-misc-changes.patch
sched: sched misc changes
sched-disable-balance-on-clone-by-default.patch
sched: disable balance-on-clone by default
sched-exit-race.patch
sched: sched exit race
mention-in-the-laptop-mode-docs-that-no-kernel-configuration-change-is-needed.patch
laptop-mode documentation update
inodes_stat-nr_unused-fix.patch
inodes_stat.nr_unused fix
memory-backed-inodes-fix.patch
memory-backed inodes fix
vc-locking.patch
vc locking
vc-locking-tweaks.patch
vc-locking.patch tweaks
laptop-mode-control-script-improvements.patch
Laptop mode control script improvements
swsusps-meaningfull-assembly-labels.patch
swsusp.S: meaningful assembly labels
fix-gfp-zone-modifier-interators.patch
fix GFP zone modifier interators
fix-char-ipmi-ipmi_si_intfc-warnings.patch
drivers/char/ipmi/ipmi_si_intf.c warnings.
ext3_bread-cleanup.patch
ext3_bread() cleanup
remove-include-arch-inith.patch
Remove include/asm-*/init.h
anon_vma-list-locking-bug.patch
anon_vma list locking bug
cpufreq_delayed_get-inline-fix.patch
cpufreq_delayed_get() inlining fix
lock-ordering-update.patch
lock-ordering-update
ext3-direct-io-credits-overflow-fix.patch
ext3: direct-io transaction extending fix
arm-build-fix.patch
ARM COMMAND_LINE_SIZE build fix
dont-hold-i_sem-on-swapfiles.patch
Don't hold i_sem on swapfiles
dont-hold-i_sem-on-swapfiles-comment.patch
dont-hold-i_sem-on-swapfiles-comment
setattr-retval-fixes.patch
ext2_setattr retval fix
reiserfs_setattr-retval-fix.patch
reiserfs_setattr retval fix
jfs_setattr-fix.patch
jfs_setattr() fix
cifs_setattr-retval-fix.patch
cifs_setattr() retval fix
ncpfs_setattr-retval-fix.patch
ncpfs_setattr() retval fix
affs_setattr-retval-fix.patch
affs_setattr() retval fix
translate-japanese-comments-in-arch-v850.patch
Translate Japanese comments in arch/v850
Hi Andrew,
thought I'd give this one a spin before I turned in.
On Sat, 26 Jun 2004 23:31:05 -0700, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/2.6.7-mm3/
>
>
> - Added Adam's PNP bk tree to the "external bk trees"
>
> - random fixes and updates all over the place
A few issues.
1. NFS goes boom
mount -a -t nfs happens in my bootscripts, and results in
nfs warning: mount version older than kernel
net/sunrpc/rpc_pipe.c: rpc_lookup_parent failed to find path /nfs/clnt0
RPC: Couldn't create pipefs entry /nfs/clnt0, error -2
NFS: cannot create RPC client.
general protection fault: 0000 [#1]
PREEMPT
Modules linked in: snd_intel8x0 analog evdev usblp joydev ehci_hcd ohci_hcd orinoco_usb orinoco hermes forcedeth snd_au8830 snd_ac97_codec gameport snd_mpu401_uart snd_rawmidi snd_seq_device
CPU: 0
EIP: 0060:[<c0180e45>] Not tainted VLI
EFLAGS: 00010246 (2.6.7-mm3)
EIP is at nfs_fill_super+0x2e5/0x350
eax: fffffffe ebx: df045000 ecx: c1594200 edx: dffdd480
esi: 00000001 edi: df980627 ebp: df603ec0 esp: df603ea4
ds: 007b es: 007b ss: 0068
Process mount (pid: 2322, threadinfo=df602000 task=df653270)
Stack: c1594400 fffffffb dffdd480 c1594400 c1594400 00000060 dffdd562 df603ee8
c0182a8c dffdd480 c0376f71 dffdd480 00000001 c03c4900 dffbd9e0 fffffff4
c03c4900 df603f08 c014f7b9 df045000 df046000 00000001 dfb32000 df602000
Call Trace:
[<c01053ca>] show_stack+0x7a/0x90
[<c010554d>] show_registers+0x14d/0x1b0
[<c01056dd>] die+0x8d/0x100
[<c0105039>] error_code+0x2d/0x38
[<c0182a8c>] nfs_get_sb+0x19c/0x230
[<c014f7b9>] do_kern_mount+0x49/0xc0
[<c01638b2>] do_add_mount+0x72/0x180
[<c0163b98>] do_mount+0x128/0x160
[<c0163f4e>] sys_mount+0x8e/0x100
[<c0104e8f>] syscall_call+0x7/0xb
Code: c0 75 05 8b 45 e8 eb ae e8 49 54 fb ff eb f4 e8 22 de 1c 00 eb e3 e8 1b de 1c 00 eb d2 c7 04 24 20 ab 37 c0 e8 cd 62 f9 ff eb bb <ff> 00 8b 55 ec 8b 02 89 42 04 e9 2c ff ff ff c7 04 24 40 ab 37
config and full dmesg at
http://triplehelix.org/~joshk/2.6.7-mm3/
2. Cannot 'halt' or 'reboot' the system
Dunno why. Could be because the oops kind of screwed things up.
3. Noted this in the dmesg:
serial: guess board returned false
serial: guess board returned false
I suppose this is just some old debugging code.
4. New joystick?
input: Analog 4-axis 4-button joystick at <NULL> [ADC port]
I only have one gamepad on my system, and that's
input: USB HID v1.10 Joystick [Logitech Logitech Dual Action] on usb-0000:00:02.1-2
On a more positive note radeonfb hardware acceleration seems to work fine,
so that's really cool.
Good stuff!
--
Joshua Kwan
On Sunday 27 of June 2004 08:31, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/2.6.7-m
>m3/
I see the following: (in the order of importance - to me ;-)):
1) Serial console does not work (at all), but earlyprintk _does_ (output goes
to tty0 after earlyprintk has finished).
Please, fix the serial console ASAP. It's a pain to hand-rewrite call traces
...
2) Well, I'm trying to hand-copy the trace from another screen (because of 1),
so it may be inaccurate, you know:
Kernel BUG at mempolicy:585
invalid operand: 0000 [1] SMP
CPU 0
Modules linked in:
Pid: 533, comm: modprobe Not tainted 2.6.7-mm3
RIP: 0010:[<ffffffff80172b86>] <ffffffff80172b86>{zonelist_policy+86}
RSP: 0018:000001003f105d50 EFLAGS: 00010046
[... other registers go here, I'm not going to rewrite this stuff ...]
CR2: 0000002a956fa1a0 CR3: 0000000000101000 CR4: 00000000000006e0
Process modprobe (pid: 533, threadinfo 000001001ffd3040, task
000001003f588e30)
Stack: fffffffff80173267 000001003f105dcc 000001001ffd3040 000001001ffd3040
fffffffff801589d0 000001001fa40740 ffffffff8015d6b3 000001001f127408
0000000000000012 0000000000000000
Call trace: <ffffffff80173267>{falloc_pages_current+119}
<ffffffff801589d0>{__get_free_pages+16}
<fffffffff8015d6b3>{kmem_getpages+35}
<fffffffff8015db0a>{cache_alloc_refill+714}
<ffffffff8015dd47>{kmem_cache_alloc+87} <ffffffff8013e95f>{send_signal+95}
<ffffffff8013f5b2>{__group_send_sig_info+178}
<ffffffff8013fa4f>{do_notify_parent+383}
<ffffffff8015ca65>{cache_free_debugcheck+693}
<ffffffff80137d45>{do_exit+2741}
<ffffffff80137eb0>{do_group_exit+232} <fffffffff8010e6ba>{system_call+126}
Code: 0f 0b 9d 45 34 80 ff ff ff ff 49 02 48 63 d0 48 89 f8 83 e0
RIP <ffffffff80172b86>{zonelist_policy+86} RSP <000001003f105d50>
(this's got "fixed" after unsetting DEBUG_SLAB in the kernel config, so I
assume that -mm2 is also affected - I haven't set DEBUG_SLAB before).
3) Ugly grey background behind the penguin logos (reprted for -mm2).
(this's got "fixed" after reversing the core-fbcon-fixes.patch, but you know
this already).
Attached are the kernel config and hardware config log.
Yours,
rjw
On Sat, Jun 26, 2004 at 11:31:05PM -0700, Andrew Morton wrote:
>...
> All 198 patches
>...
> bk-alsa.patch
>...
This causes the following compile error:
<-- snip -->
...
LD .tmp_vmlinux1
sound/built-in.o(.text+0xfb4ae): In function `snd_gus_synth_new_device':
: undefined reference to `snd_seq_iwffff_init'
make: *** [.tmp_vmlinux1] Error 1
<-- snip -->
It seems the following is required:
Signed-off-by: Adrian Bunk <[email protected]>
--- linux-2.6.7-mm3-full/sound/core/seq/instr/Makefile.old 2004-06-27 14:42:55.000000000 +0200
+++ linux-2.6.7-mm3-full/sound/core/seq/instr/Makefile 2004-06-27 14:43:19.000000000 +0200
@@ -19,5 +19,5 @@
# Toplevel Module Dependency
obj-$(call sequencer,$(CONFIG_SND_OPL3_LIB)) += snd-ainstr-fm.o
obj-$(call sequencer,$(CONFIG_SND_OPL4_LIB)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_GUS_SYNTH)) += snd-ainstr-gf1.o snd-ainstr-simple.o
+obj-$(call sequencer,$(CONFIG_SND_GUS_SYNTH)) += snd-ainstr-gf1.o snd-ainstr-simple.o snd-ainstr-iw.o
obj-$(call sequencer,$(CONFIG_SND_TRIDENT)) += snd-ainstr-simple.o
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
On Sat, Jun 26, 2004 at 11:31:05PM -0700, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/2.6.7-mm3/
>
> +ppc64-COMMAND_LINE_SIZE-fix.patch
The same fix is needed for ppc32 as well. I've attached a patch.
Signed-off-by: Joseph Fannin <[email protected]>
--
Joseph Fannin
[email protected]
"R. J. Wysocki" <[email protected]> wrote:
>
> On Sunday 27 of June 2004 08:31, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/2.6.7-m
> >m3/
>
> I see the following: (in the order of importance - to me ;-)):
>
> 1) Serial console does not work (at all), but earlyprintk _does_ (output goes
> to tty0 after earlyprintk has finished).
>
> Please, fix the serial console ASAP. It's a pain to hand-rewrite call traces
erk, sorry, I thought the x86_64 console= parsing breakage had been fixed.
The below should get you going again while we remember what the problem was.
diff -puN arch/alpha/kernel/setup.c~a arch/alpha/kernel/setup.c
--- 25/arch/alpha/kernel/setup.c~a 2004-06-28 00:08:52.025672160 -0700
+++ 25-akpm/arch/alpha/kernel/setup.c 2004-06-28 00:08:58.851634456 -0700
@@ -123,6 +123,7 @@ static void get_sysnames(unsigned long,
static void determine_cpu_caches (unsigned int);
static char command_line[COMMAND_LINE_SIZE];
+char saved_command_line[COMMAND_LINE_SIZE];
/*
* The format of "screen_info" is strange, and due to early
diff -puN arch/arm26/kernel/setup.c~a arch/arm26/kernel/setup.c
--- 25/arch/arm26/kernel/setup.c~a 2004-06-28 00:08:52.082663496 -0700
+++ 25-akpm/arch/arm26/kernel/setup.c 2004-06-28 00:08:58.858633392 -0700
@@ -76,6 +76,7 @@ struct processor processor;
unsigned char aux_device_present;
char elf_platform[ELF_PLATFORM_SIZE];
+char saved_command_line[COMMAND_LINE_SIZE];
unsigned long phys_initrd_start __initdata = 0;
unsigned long phys_initrd_size __initdata = 0;
diff -puN arch/arm/kernel/setup.c~a arch/arm/kernel/setup.c
--- 25/arch/arm/kernel/setup.c~a 2004-06-28 00:08:52.114658632 -0700
+++ 25-akpm/arch/arm/kernel/setup.c 2004-06-28 00:08:58.859633240 -0700
@@ -97,6 +97,7 @@ unsigned char aux_device_present;
char elf_platform[ELF_PLATFORM_SIZE];
EXPORT_SYMBOL(elf_platform);
+char saved_command_line[COMMAND_LINE_SIZE];
unsigned long phys_initrd_start __initdata = 0;
unsigned long phys_initrd_size __initdata = 0;
diff -puN arch/cris/kernel/setup.c~a arch/cris/kernel/setup.c
--- 25/arch/cris/kernel/setup.c~a 2004-06-28 00:08:52.145653920 -0700
+++ 25-akpm/arch/cris/kernel/setup.c 2004-06-28 00:08:58.859633240 -0700
@@ -31,7 +31,10 @@ unsigned char aux_device_present;
extern int root_mountflags;
extern char _etext, _edata, _end;
+#define COMMAND_LINE_SIZE 256
+
static char command_line[COMMAND_LINE_SIZE] = { 0, };
+ char saved_command_line[COMMAND_LINE_SIZE];
extern const unsigned long text_start, edata; /* set by the linker script */
extern unsigned long dram_start, dram_end;
diff -puN arch/h8300/kernel/setup.c~a arch/h8300/kernel/setup.c
--- 25/arch/h8300/kernel/setup.c~a 2004-06-28 00:08:52.176649208 -0700
+++ 25-akpm/arch/h8300/kernel/setup.c 2004-06-28 00:08:58.860633088 -0700
@@ -30,7 +30,6 @@
#include <linux/major.h>
#include <linux/bootmem.h>
#include <linux/seq_file.h>
-#include <linux/init.h>
#include <asm/setup.h>
#include <asm/irq.h>
@@ -55,7 +54,8 @@ unsigned long rom_length;
unsigned long memory_start;
unsigned long memory_end;
-char command_line[COMMAND_LINE_SIZE];
+char command_line[512];
+char saved_command_line[512];
extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end;
extern int _ramstart, _ramend;
diff -puN arch/i386/boot/compressed/misc.c~a arch/i386/boot/compressed/misc.c
--- 25/arch/i386/boot/compressed/misc.c~a 2004-06-28 00:08:52.210644040 -0700
+++ 25-akpm/arch/i386/boot/compressed/misc.c 2004-06-28 00:08:58.861632936 -0700
@@ -87,11 +87,12 @@ static void gzip_release(void **);
*/
static unsigned char *real_mode; /* Pointer to real-mode data */
-#define RM_EXT_MEM_K (*(unsigned short *)(real_mode + 0x2))
+#define EXT_MEM_K (*(unsigned short *)(real_mode + 0x2))
#ifndef STANDARD_MEMORY_BIOS_CALL
-#define RM_ALT_MEM_K (*(unsigned long *)(real_mode + 0x1e0))
+#define ALT_MEM_K (*(unsigned long *)(real_mode + 0x1e0))
#endif
-#define RM_SCREEN_INFO (*(struct screen_info *)(real_mode+0))
+#define SCREEN_INFO (*(struct screen_info *)(real_mode+0))
+#define EDID_INFO (*(struct edid_info *)(real_mode+0x440))
extern char input_data[];
extern int input_len;
@@ -173,8 +174,8 @@ static void putstr(const char *s)
int x,y,pos;
char c;
- x = RM_SCREEN_INFO.orig_x;
- y = RM_SCREEN_INFO.orig_y;
+ x = SCREEN_INFO.orig_x;
+ y = SCREEN_INFO.orig_y;
while ( ( c = *s++ ) != '\0' ) {
if ( c == '\n' ) {
@@ -195,8 +196,8 @@ static void putstr(const char *s)
}
}
- RM_SCREEN_INFO.orig_x = x;
- RM_SCREEN_INFO.orig_y = y;
+ SCREEN_INFO.orig_x = x;
+ SCREEN_INFO.orig_y = y;
pos = (x + cols * y) * 2; /* Update cursor position */
outb_p(14, vidport);
@@ -305,9 +306,9 @@ struct {
static void setup_normal_output_buffer(void)
{
#ifdef STANDARD_MEMORY_BIOS_CALL
- if (RM_EXT_MEM_K < 1024) error("Less than 2MB of memory");
+ if (EXT_MEM_K < 1024) error("Less than 2MB of memory");
#else
- if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) < 1024) error("Less than 2MB of memory");
+ if ((ALT_MEM_K > EXT_MEM_K ? ALT_MEM_K : EXT_MEM_K) < 1024) error("Less than 2MB of memory");
#endif
output_data = (char *)0x100000; /* Points to 1M */
free_mem_end_ptr = (long)real_mode;
@@ -322,11 +323,9 @@ static void setup_output_buffer_if_we_ru
{
high_buffer_start = (uch *)(((ulg)&end) + HEAP_SIZE);
#ifdef STANDARD_MEMORY_BIOS_CALL
- if (RM_EXT_MEM_K < (3*1024)) error("Less than 4MB of memory");
+ if (EXT_MEM_K < (3*1024)) error("Less than 4MB of memory");
#else
- if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) <
- (3*1024))
- error("Less than 4MB of memory");
+ if ((ALT_MEM_K > EXT_MEM_K ? ALT_MEM_K : EXT_MEM_K) < (3*1024)) error("Less than 4MB of memory");
#endif
mv->low_buffer_start = output_data = (char *)LOW_BUFFER_START;
low_buffer_end = ((unsigned int)real_mode > LOW_BUFFER_MAX
@@ -359,7 +358,7 @@ asmlinkage int decompress_kernel(struct
{
real_mode = rmode;
- if (RM_SCREEN_INFO.orig_video_mode == 7) {
+ if (SCREEN_INFO.orig_video_mode == 7) {
vidmem = (char *) 0xb0000;
vidport = 0x3b4;
} else {
@@ -367,8 +366,8 @@ asmlinkage int decompress_kernel(struct
vidport = 0x3d4;
}
- lines = RM_SCREEN_INFO.orig_video_lines;
- cols = RM_SCREEN_INFO.orig_video_cols;
+ lines = SCREEN_INFO.orig_video_lines;
+ cols = SCREEN_INFO.orig_video_cols;
if (free_mem_ptr < 0x100000) setup_normal_output_buffer();
else setup_output_buffer_if_we_run_high(mv);
diff -puN arch/i386/kernel/setup.c~a arch/i386/kernel/setup.c
--- 25/arch/i386/kernel/setup.c~a 2004-06-28 00:08:52.242639176 -0700
+++ 25-akpm/arch/i386/kernel/setup.c 2004-06-28 00:08:58.862632784 -0700
@@ -127,6 +127,7 @@ unsigned long saved_videomode;
#define RAMDISK_LOAD_FLAG 0x4000
static char command_line[COMMAND_LINE_SIZE];
+ char saved_command_line[COMMAND_LINE_SIZE];
unsigned char __initdata boot_params[PARAM_SIZE];
diff -puN arch/ia64/kernel/setup.c~a arch/ia64/kernel/setup.c
--- 25/arch/ia64/kernel/setup.c~a 2004-06-28 00:08:52.275634160 -0700
+++ 25-akpm/arch/ia64/kernel/setup.c 2004-06-28 00:08:58.863632632 -0700
@@ -90,6 +90,10 @@ unsigned char aux_device_present = 0xaa;
unsigned long ia64_max_iommu_merge_mask = ~0UL;
EXPORT_SYMBOL(ia64_max_iommu_merge_mask);
+#define COMMAND_LINE_SIZE 512
+
+char saved_command_line[COMMAND_LINE_SIZE]; /* used in proc filesystem */
+
/*
* We use a special marker for the end of memory and it uses the extra (+1) slot
*/
diff -puN arch/m68k/kernel/setup.c~a arch/m68k/kernel/setup.c
--- 25/arch/m68k/kernel/setup.c~a 2004-06-28 00:08:52.310628840 -0700
+++ 25-akpm/arch/m68k/kernel/setup.c 2004-06-28 00:08:58.864632480 -0700
@@ -62,6 +62,7 @@ struct mem_info m68k_memory[NUM_MEMINFO]
static struct mem_info m68k_ramdisk;
static char m68k_command_line[CL_SIZE];
+char saved_command_line[CL_SIZE];
char m68k_debug_device[6] = "";
diff -puN arch/m68knommu/kernel/setup.c~a arch/m68knommu/kernel/setup.c
--- 25/arch/m68knommu/kernel/setup.c~a 2004-06-28 00:08:52.352622456 -0700
+++ 25-akpm/arch/m68knommu/kernel/setup.c 2004-06-28 00:08:58.865632328 -0700
@@ -31,7 +31,6 @@
#include <linux/bootmem.h>
#include <linux/seq_file.h>
#include <linux/root_dev.h>
-#include <linux/init.h>
#include <asm/setup.h>
#include <asm/irq.h>
@@ -45,7 +44,8 @@ unsigned long rom_length;
unsigned long memory_start;
unsigned long memory_end;
-char command_line[COMMAND_LINE_SIZE];
+char command_line[512];
+char saved_command_line[512];
/* setup some dummy routines */
static void dummy_waitbut(void)
diff -puN arch/m68k/q40/config.c~a arch/m68k/q40/config.c
--- 25/arch/m68k/q40/config.c~a 2004-06-28 00:08:52.379618352 -0700
+++ 25-akpm/arch/m68k/q40/config.c 2004-06-28 00:08:58.865632328 -0700
@@ -64,6 +64,7 @@ void q40_set_vectors (void);
extern void q40_mksound(unsigned int /*freq*/, unsigned int /*ticks*/ );
+extern char *saved_command_line;
extern char m68k_debug_device[];
static void q40_mem_console_write(struct console *co, const char *b,
unsigned int count);
diff -puN arch/mips/kernel/setup.c~a arch/mips/kernel/setup.c
--- 25/arch/mips/kernel/setup.c~a 2004-06-28 00:08:52.408613944 -0700
+++ 25-akpm/arch/mips/kernel/setup.c 2004-06-28 00:08:58.866632176 -0700
@@ -72,6 +72,7 @@ EXPORT_SYMBOL(mips_machgroup);
struct boot_mem_map boot_mem_map;
static char command_line[CL_SIZE];
+ char saved_command_line[CL_SIZE];
char arcs_cmdline[CL_SIZE]=CONFIG_CMDLINE;
/*
diff -puN arch/parisc/kernel/setup.c~a arch/parisc/kernel/setup.c
--- 25/arch/parisc/kernel/setup.c~a 2004-06-28 00:08:52.440609080 -0700
+++ 25-akpm/arch/parisc/kernel/setup.c 2004-06-28 00:08:58.871631416 -0700
@@ -46,6 +46,8 @@
#include <asm/io.h>
#include <asm/setup.h>
+#define COMMAND_LINE_SIZE 1024
+char saved_command_line[COMMAND_LINE_SIZE];
char command_line[COMMAND_LINE_SIZE];
/* Intended for ccio/sba/cpu statistics under /proc/bus/{runway|gsc} */
diff -puN arch/ppc64/kernel/head.S~a arch/ppc64/kernel/head.S
--- 25/arch/ppc64/kernel/head.S~a 2004-06-28 00:08:52.471604368 -0700
+++ 25-akpm/arch/ppc64/kernel/head.S 2004-06-28 00:08:58.872631264 -0700
@@ -35,7 +35,6 @@
#include <asm/offsets.h>
#include <asm/bug.h>
#include <asm/cputable.h>
-#include <asm/setup.h>
#ifdef CONFIG_PPC_ISERIES
#define DO_SOFT_DISABLE
@@ -2224,4 +2223,4 @@ stab_array:
*/
.globl cmd_line
cmd_line:
- .space COMMAND_LINE_SIZE
+ .space 512 /* COMMAND_LINE_SIZE */
diff -puN arch/ppc64/kernel/setup.c~a arch/ppc64/kernel/setup.c
--- 25/arch/ppc64/kernel/setup.c~a 2004-06-28 00:08:52.499600112 -0700
+++ 25-akpm/arch/ppc64/kernel/setup.c 2004-06-28 00:08:58.873631112 -0700
@@ -83,6 +83,7 @@ unsigned long decr_overclock_proc0_set =
int powersave_nap;
+char saved_command_line[COMMAND_LINE_SIZE];
unsigned char aux_device_present;
void parse_cmd_line(unsigned long r3, unsigned long r4, unsigned long r5,
diff -puN arch/ppc/kernel/setup.c~a arch/ppc/kernel/setup.c
--- 25/arch/ppc/kernel/setup.c~a 2004-06-28 00:08:52.534594792 -0700
+++ 25-akpm/arch/ppc/kernel/setup.c 2004-06-28 00:08:58.874630960 -0700
@@ -54,6 +54,7 @@ extern void ppc6xx_idle(void);
extern void power4_idle(void);
extern boot_infos_t *boot_infos;
+char saved_command_line[COMMAND_LINE_SIZE];
unsigned char aux_device_present;
struct ide_machdep_calls ppc_ide_md;
char *sysmap;
diff -puN arch/ppc/platforms/lopec_setup.c~a arch/ppc/platforms/lopec_setup.c
--- 25/arch/ppc/platforms/lopec_setup.c~a 2004-06-28 00:08:52.567589776 -0700
+++ 25-akpm/arch/ppc/platforms/lopec_setup.c 2004-06-28 00:08:58.875630808 -0700
@@ -33,6 +33,7 @@
#include <asm/hw_irq.h>
#include <asm/prep_nvram.h>
+extern char saved_command_line[];
extern void lopec_find_bridges(void);
/*
diff -puN arch/ppc/platforms/pmac_setup.c~a arch/ppc/platforms/pmac_setup.c
--- 25/arch/ppc/platforms/pmac_setup.c~a 2004-06-28 00:08:52.595585520 -0700
+++ 25-akpm/arch/ppc/platforms/pmac_setup.c 2004-06-28 00:08:58.876630656 -0700
@@ -103,6 +103,8 @@ int has_l2cache = 0;
static int current_root_goodness = -1;
+extern char saved_command_line[];
+
extern int pmac_newworld;
#define DEFAULT_ROOT_DEVICE Root_SDA1 /* sda1 - slightly silly choice */
diff -puN arch/ppc/platforms/pplus.c~a arch/ppc/platforms/pplus.c
--- 25/arch/ppc/platforms/pplus.c~a 2004-06-28 00:08:52.623581264 -0700
+++ 25-akpm/arch/ppc/platforms/pplus.c 2004-06-28 00:08:58.877630504 -0700
@@ -48,6 +48,8 @@
TODC_ALLOC();
+extern char saved_command_line[];
+
extern void pplus_setup_hose(void);
extern void pplus_set_VIA_IDE_native(void);
diff -puN arch/ppc/platforms/prep_setup.c~a arch/ppc/platforms/prep_setup.c
--- 25/arch/ppc/platforms/prep_setup.c~a 2004-06-28 00:08:52.651577008 -0700
+++ 25-akpm/arch/ppc/platforms/prep_setup.c 2004-06-28 00:08:58.878630352 -0700
@@ -76,6 +76,7 @@ extern void rs_nvram_write_val(int addr,
extern void ibm_prep_init(void);
extern void prep_find_bridges(void);
+extern char saved_command_line[];
int _prep_type;
diff -puN arch/s390/kernel/setup.c~a arch/s390/kernel/setup.c
--- 25/arch/s390/kernel/setup.c~a 2004-06-28 00:08:52.682572296 -0700
+++ 25-akpm/arch/s390/kernel/setup.c 2004-06-28 00:08:58.879630200 -0700
@@ -76,6 +76,7 @@ extern int _text,_etext, _edata, _end;
#include <asm/setup.h>
static char command_line[COMMAND_LINE_SIZE] = { 0, };
+ char saved_command_line[COMMAND_LINE_SIZE];
static struct resource code_resource = { "Kernel code", 0x100000, 0 };
static struct resource data_resource = { "Kernel data", 0, 0 };
diff -puN arch/sh/kernel/setup.c~a arch/sh/kernel/setup.c
--- 25/arch/sh/kernel/setup.c~a 2004-06-28 00:08:52.712567736 -0700
+++ 25-akpm/arch/sh/kernel/setup.c 2004-06-28 00:08:58.879630200 -0700
@@ -83,12 +83,14 @@ static struct sh_machine_vector* __init
#define INITRD_SIZE (*(unsigned long *) (PARAM+0x014))
/* ... */
#define COMMAND_LINE ((char *) (PARAM+0x100))
+#define COMMAND_LINE_SIZE 256
#define RAMDISK_IMAGE_START_MASK 0x07FF
#define RAMDISK_PROMPT_FLAG 0x8000
#define RAMDISK_LOAD_FLAG 0x4000
static char command_line[COMMAND_LINE_SIZE] = { 0, };
+ char saved_command_line[COMMAND_LINE_SIZE];
struct resource standard_io_resources[] = {
{ "dma1", 0x00, 0x1f },
diff -puN arch/sparc64/kernel/setup.c~a arch/sparc64/kernel/setup.c
--- 25/arch/sparc64/kernel/setup.c~a 2004-06-28 00:08:52.743563024 -0700
+++ 25-akpm/arch/sparc64/kernel/setup.c 2004-06-28 00:08:58.880630048 -0700
@@ -452,7 +452,8 @@ extern unsigned short ram_flags;
extern int root_mountflags;
-char reboot_command[COMMAND_LINE_SIZE];
+char saved_command_line[256];
+char reboot_command[256];
static struct pt_regs fake_swapper_regs = { { 0, }, 0, 0, 0, 0 };
diff -puN arch/sparc64/kernel/sparc64_ksyms.c~a arch/sparc64/kernel/sparc64_ksyms.c
--- 25/arch/sparc64/kernel/sparc64_ksyms.c~a 2004-06-28 00:08:52.772558616 -0700
+++ 25-akpm/arch/sparc64/kernel/sparc64_ksyms.c 2004-06-28 00:08:58.881629896 -0700
@@ -24,7 +24,6 @@
#include <linux/socket.h>
#include <linux/syscalls.h>
#include <linux/percpu.h>
-#include <linux/init.h>
#include <net/compat.h>
#include <asm/oplib.h>
@@ -77,6 +76,7 @@ extern int __memcmp(const void *, const
extern int __strncmp(const char *, const char *, __kernel_size_t);
extern __kernel_size_t __strlen(const char *);
extern __kernel_size_t strlen(const char *);
+extern char saved_command_line[];
extern void linux_sparc_syscall(void);
extern void rtrap(void);
extern void show_regs(struct pt_regs *);
diff -puN arch/sparc/kernel/setup.c~a arch/sparc/kernel/setup.c
--- 25/arch/sparc/kernel/setup.c~a 2004-06-28 00:08:52.802554056 -0700
+++ 25-akpm/arch/sparc/kernel/setup.c 2004-06-28 00:08:58.882629744 -0700
@@ -245,7 +245,8 @@ extern unsigned short ram_flags;
extern int root_mountflags;
-char reboot_command[COMMAND_LINE_SIZE];
+char saved_command_line[256];
+char reboot_command[256];
enum sparc_cpu sparc_cpu_model;
struct tt_entry *sparc_ttable;
diff -puN arch/sparc/kernel/sparc_ksyms.c~a arch/sparc/kernel/sparc_ksyms.c
--- 25/arch/sparc/kernel/sparc_ksyms.c~a 2004-06-28 00:08:52.830549800 -0700
+++ 25-akpm/arch/sparc/kernel/sparc_ksyms.c 2004-06-28 00:08:58.883629592 -0700
@@ -11,7 +11,6 @@
#include <linux/config.h>
#include <linux/module.h>
-#include <linux/init.h>
#include <linux/smp.h>
#include <linux/types.h>
#include <linux/string.h>
@@ -75,6 +74,7 @@ extern void *__memscan_zero(void *, size
extern void *__memscan_generic(void *, int, size_t);
extern int __memcmp(const void *, const void *, __kernel_size_t);
extern int __strncmp(const char *, const char *, __kernel_size_t);
+extern char saved_command_line[];
extern void bcopy (const char *, char *, int);
extern int __ashrdi3(int, int);
diff -puN arch/um/kernel/user_util.c~a arch/um/kernel/user_util.c
--- 25/arch/um/kernel/user_util.c~a 2004-06-28 00:08:52.858545544 -0700
+++ 25-akpm/arch/um/kernel/user_util.c 2004-06-28 00:08:58.884629440 -0700
@@ -34,6 +34,7 @@
#define COMMAND_LINE_SIZE _POSIX_ARG_MAX
/* Changed in linux_main and setup_arch, which run before SMP is started */
+char saved_command_line[COMMAND_LINE_SIZE] = { 0 };
char command_line[COMMAND_LINE_SIZE] = { 0 };
void add_arg(char *cmd_line, char *arg)
diff -puN arch/v850/kernel/setup.c~a arch/v850/kernel/setup.c
--- 25/arch/v850/kernel/setup.c~a 2004-06-28 00:08:52.894540072 -0700
+++ 25-akpm/arch/v850/kernel/setup.c 2004-06-28 00:08:58.884629440 -0700
@@ -20,7 +20,6 @@
#include <linux/major.h>
#include <linux/root_dev.h>
#include <linux/mtd/mtd.h>
-#include <linux/init.h>
#include <asm/irq.h>
#include <asm/setup.h>
@@ -42,7 +41,8 @@ extern char _root_fs_image_start __attri
extern char _root_fs_image_end __attribute__ ((__weak__));
-char command_line[COMMAND_LINE_SIZE];
+char command_line[512];
+char saved_command_line[512];
/* Memory not used by the kernel. */
static unsigned long total_ram_pages;
diff -puN arch/x86_64/kernel/setup.c~a arch/x86_64/kernel/setup.c
--- 25/arch/x86_64/kernel/setup.c~a 2004-06-28 00:08:52.927535056 -0700
+++ 25-akpm/arch/x86_64/kernel/setup.c 2004-06-28 00:08:58.885629288 -0700
@@ -101,6 +101,7 @@ extern int root_mountflags;
extern char _text, _etext, _edata, _end;
char command_line[COMMAND_LINE_SIZE];
+char saved_command_line[COMMAND_LINE_SIZE];
struct resource standard_io_resources[] = {
{ "dma1", 0x00, 0x1f, IORESOURCE_BUSY | IORESOURCE_IO },
diff -puN drivers/sbus/char/openprom.c~a drivers/sbus/char/openprom.c
--- 25/drivers/sbus/char/openprom.c~a 2004-06-28 00:08:52.960530040 -0700
+++ 25-akpm/drivers/sbus/char/openprom.c 2004-06-28 00:08:58.898627312 -0700
@@ -149,6 +149,7 @@ static int openprom_sunos_ioctl(struct i
char buffer[OPROMMAXPARAM+1], *buf;
struct openpromio *opp;
int bufsize, len, error = 0;
+ extern char saved_command_line[];
static int cnt;
if (cmd == OPROMSETOPT)
diff -puN fs/proc/kcore.c~a fs/proc/kcore.c
--- 25/fs/proc/kcore.c~a 2004-06-28 00:08:53.002523656 -0700
+++ 25-akpm/fs/proc/kcore.c 2004-06-28 00:08:58.899627160 -0700
@@ -18,7 +18,6 @@
#include <linux/elfcore.h>
#include <linux/vmalloc.h>
#include <linux/highmem.h>
-#include <linux/init.h>
#include <asm/uaccess.h>
#include <asm/io.h>
@@ -85,6 +84,8 @@ kclist_del(void *addr)
return 0;
}
+extern char saved_command_line[];
+
static size_t get_kcore_size(int *nphdr, size_t *elf_buflen)
{
size_t try, size;
diff -puN fs/proc/proc_misc.c~a fs/proc/proc_misc.c
--- 25/fs/proc/proc_misc.c~a 2004-06-28 00:08:53.030519400 -0700
+++ 25-akpm/fs/proc/proc_misc.c 2004-06-28 00:08:58.899627160 -0700
@@ -518,6 +518,7 @@ static int filesystems_read_proc(char *p
static int cmdline_read_proc(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
+ extern char saved_command_line[];
int len;
len = sprintf(page, "%s\n", saved_command_line);
diff -L include/asm-alpha/setup.h -puN include/asm-alpha/setup.h~a /dev/null
--- 25/include/asm-alpha/setup.h
+++ /dev/null 2004-04-06 10:56:48.000000000 -0700
@@ -1,6 +0,0 @@
-#ifndef __ALPHA_SETUP_H
-#define __ALPHA_SETUP_H
-
-#define COMMAND_LINE_SIZE 256
-
-#endif
diff -puN include/asm-alpha/system.h~a include/asm-alpha/system.h
--- 25/include/asm-alpha/system.h~a 2004-06-28 00:08:53.099508912 -0700
+++ 25-akpm/include/asm-alpha/system.h 2004-06-28 00:08:58.901626856 -0700
@@ -43,6 +43,7 @@
*/
#define PARAM ZERO_PGE
#define COMMAND_LINE ((char*)(PARAM + 0x0000))
+#define COMMAND_LINE_SIZE 256
#define INITRD_START (*(unsigned long *) (PARAM+0x100))
#define INITRD_SIZE (*(unsigned long *) (PARAM+0x108))
diff -puN include/asm-cris/setup.h~a include/asm-cris/setup.h
--- 25/include/asm-cris/setup.h~a 2004-06-28 00:08:53.138502984 -0700
+++ 25-akpm/include/asm-cris/setup.h 2004-06-28 00:08:58.901626856 -0700
@@ -1,6 +1,3 @@
#ifndef _CRIS_SETUP_H
#define _CRIS_SETUP_H
-
-#define COMMAND_LINE_SIZE 256
-
#endif
diff -puN include/asm-h8300/setup.h~a include/asm-h8300/setup.h
--- 25/include/asm-h8300/setup.h~a 2004-06-28 00:08:53.181496448 -0700
+++ 25-akpm/include/asm-h8300/setup.h 2004-06-28 00:08:58.902626704 -0700
@@ -1,6 +1 @@
-#ifndef __H8300_SETUP_H
-#define __H8300_SETUP_H
-
-#define COMMAND_LINE_SIZE 512
-
-#endif
+/* Nothing do */
diff -puN include/asm-i386/param.h~a include/asm-i386/param.h
--- 25/include/asm-i386/param.h~a 2004-06-28 00:08:53.215491280 -0700
+++ 25-akpm/include/asm-i386/param.h 2004-06-28 00:08:58.904626400 -0700
@@ -18,6 +18,5 @@
#endif
#define MAXHOSTNAMELEN 64 /* max length of hostname */
-#define COMMAND_LINE_SIZE 256
#endif
diff -L include/asm-ia64/setup.h -puN include/asm-ia64/setup.h~a /dev/null
--- 25/include/asm-ia64/setup.h
+++ /dev/null 2004-04-06 10:56:48.000000000 -0700
@@ -1,6 +0,0 @@
-#ifndef __IA64_SETUP_H
-#define __IA64_SETUP_H
-
-#define COMMAND_LINE_SIZE 512
-
-#endif
diff -puN include/asm-m68knommu/setup.h~a include/asm-m68knommu/setup.h
--- 25/include/asm-m68knommu/setup.h~a 2004-06-28 00:08:53.293479424 -0700
+++ 25-akpm/include/asm-m68knommu/setup.h 2004-06-28 00:08:58.905626248 -0700
@@ -1,5 +1 @@
#include <asm-m68k/setup.h>
-
-/* We have a bigger command line buffer. */
-#undef COMMAND_LINE_SIZE
-#define COMMAND_LINE_SIZE 512
diff -puN include/asm-m68k/setup.h~a include/asm-m68k/setup.h
--- 25/include/asm-m68k/setup.h~a 2004-06-28 00:08:53.329473952 -0700
+++ 25-akpm/include/asm-m68k/setup.h 2004-06-28 00:08:58.906626096 -0700
@@ -357,7 +357,6 @@ extern int m68k_is040or060;
#define NUM_MEMINFO 4
#define CL_SIZE 256
-#define COMMAND_LINE_SIZE CL_SIZE
#ifndef __ASSEMBLY__
extern int m68k_num_memory; /* # of memory blocks found (and used) */
diff -puN include/asm-mips/bootinfo.h~a include/asm-mips/bootinfo.h
--- 25/include/asm-mips/bootinfo.h~a 2004-06-28 00:08:53.368468024 -0700
+++ 25-akpm/include/asm-mips/bootinfo.h 2004-06-28 00:08:58.906626096 -0700
@@ -12,7 +12,6 @@
#define _ASM_BOOTINFO_H
#include <linux/types.h>
-#include <asm/setup.h>
/*
* The MACH_GROUP_ IDs are the equivalent to PCI vendor IDs; the remaining
@@ -210,7 +209,7 @@
#define MACH_GROUP_TITAN 22 /* PMC-Sierra Titan */
#define MACH_TITAN_YOSEMITE 1 /* PMC-Sierra Yosemite */
-#define CL_SIZE COMMAND_LINE_SIZE
+#define CL_SIZE (256)
const char *get_system_type(void);
diff -L include/asm-mips/setup.h -puN include/asm-mips/setup.h~a /dev/null
--- 25/include/asm-mips/setup.h
+++ /dev/null 2004-04-06 10:56:48.000000000 -0700
@@ -1,8 +0,0 @@
-#ifdef __KERNEL__
-#ifndef _MIPS_SETUP_H
-#define _MIPS_SETUP_H
-
-#define COMMAND_LINE_SIZE 256
-
-#endif /* __SETUP_H */
-#endif /* __KERNEL__ */
diff -puN include/asm-parisc/setup.h~a include/asm-parisc/setup.h
--- 25/include/asm-parisc/setup.h~a 2004-06-28 00:08:53.433458144 -0700
+++ 25-akpm/include/asm-parisc/setup.h 2004-06-28 00:08:58.908625792 -0700
@@ -1,6 +1,10 @@
-#ifndef _PARISC_SETUP_H
-#define _PARISC_SETUP_H
+/*
+ * Just a place holder. We don't want to have to test x86 before
+ * we include stuff
+ */
-#define COMMAND_LINE_SIZE 1024
+#ifndef _i386_SETUP_H
+#define _i386_SETUP_H
-#endif /* _PARISC_SETUP_H */
+
+#endif /* _i386_SETUP_H */
diff -puN include/asm-ppc64/machdep.h~a include/asm-ppc64/machdep.h
--- 25/include/asm-ppc64/machdep.h~a 2004-06-28 00:08:53.467452976 -0700
+++ 25-akpm/include/asm-ppc64/machdep.h 2004-06-28 00:08:58.908625792 -0700
@@ -11,7 +11,6 @@
#include <linux/config.h>
#include <linux/seq_file.h>
-#include <linux/init.h>
#include <linux/dma-mapping.h>
#include <asm/setup.h>
@@ -115,7 +114,9 @@ struct machdep_calls {
};
extern struct machdep_calls ppc_md;
+#define COMMAND_LINE_SIZE 512
extern char cmd_line[COMMAND_LINE_SIZE];
+extern char saved_command_line[COMMAND_LINE_SIZE];
/* Functions to produce codes on the leds.
* The SRC code should be unique for the message category and should
diff -puN include/asm-ppc64/setup.h~a include/asm-ppc64/setup.h
--- 25/include/asm-ppc64/setup.h~a 2004-06-28 00:08:53.495448720 -0700
+++ 25-akpm/include/asm-ppc64/setup.h 2004-06-28 00:08:58.909625640 -0700
@@ -1,6 +1,6 @@
#ifndef _PPC_SETUP_H
#define _PPC_SETUP_H
-#define COMMAND_LINE_SIZE 512
+/* This is a place holder include */
#endif /* _PPC_SETUP_H */
diff -puN include/asm-ppc/machdep.h~a include/asm-ppc/machdep.h
--- 25/include/asm-ppc/machdep.h~a 2004-06-28 00:08:53.529443552 -0700
+++ 25-akpm/include/asm-ppc/machdep.h 2004-06-28 00:08:58.910625488 -0700
@@ -108,6 +108,7 @@ struct machdep_calls {
};
extern struct machdep_calls ppc_md;
+#define COMMAND_LINE_SIZE 512
extern char cmd_line[COMMAND_LINE_SIZE];
extern void setup_pci_ptrs(void);
diff -puN include/asm-ppc/setup.h~a include/asm-ppc/setup.h
--- 25/include/asm-ppc/setup.h~a 2004-06-28 00:08:53.557439296 -0700
+++ 25-akpm/include/asm-ppc/setup.h 2004-06-28 00:08:58.911625336 -0700
@@ -6,9 +6,6 @@
#define m68k_memory memory
#include <asm-m68k/setup.h>
-/* We have a bigger command line buffer. */
-#undef COMMAND_LINE_SIZE
-#define COMMAND_LINE_SIZE 512
#endif /* _PPC_SETUP_H */
#endif /* __KERNEL__ */
diff -L include/asm-sh/setup.h -puN include/asm-sh/setup.h~a /dev/null
--- 25/include/asm-sh/setup.h
+++ /dev/null 2004-04-06 10:56:48.000000000 -0700
@@ -1,8 +0,0 @@
-#ifdef __KERNEL__
-#ifndef _SH_SETUP_H
-#define _SH_SETUP_H
-
-#define COMMAND_LINE_SIZE 256
-
-#endif /* _SH_SETUP_H */
-#endif /* __KERNEL__ */
diff -puN include/asm-sparc64/setup.h~a include/asm-sparc64/setup.h
--- 25/include/asm-sparc64/setup.h~a 2004-06-28 00:08:53.634427592 -0700
+++ 25-akpm/include/asm-sparc64/setup.h 2004-06-28 00:08:58.912625184 -0700
@@ -5,6 +5,5 @@
#ifndef _SPARC64_SETUP_H
#define _SPARC64_SETUP_H
-#define COMMAND_LINE_SIZE 256
#endif /* _SPARC64_SETUP_H */
diff -puN include/asm-sparc/setup.h~a include/asm-sparc/setup.h
--- 25/include/asm-sparc/setup.h~a 2004-06-28 00:08:53.669422272 -0700
+++ 25-akpm/include/asm-sparc/setup.h 2004-06-28 00:08:58.913625032 -0700
@@ -5,6 +5,5 @@
#ifndef _SPARC_SETUP_H
#define _SPARC_SETUP_H
-#define COMMAND_LINE_SIZE 256
#endif /* _SPARC_SETUP_H */
diff -L include/asm-um/setup.h -puN include/asm-um/setup.h~a /dev/null
--- 25/include/asm-um/setup.h
+++ /dev/null 2004-04-06 10:56:48.000000000 -0700
@@ -1,6 +0,0 @@
-#ifndef SETUP_H_INCLUDED
-#define SETUP_H_INCLUDED
-
-#define COMMAND_LINE_SIZE 512
-
-#endif /* SETUP_H_INCLUDED */
diff -L include/asm-v850/setup.h -puN include/asm-v850/setup.h~a /dev/null
--- 25/include/asm-v850/setup.h
+++ /dev/null 2004-04-06 10:56:48.000000000 -0700
@@ -1,6 +0,0 @@
-#ifndef _V850_SETUP_H
-#define _V850_SETUP_H
-
-#define COMMAND_LINE_SIZE 512
-
-#endif /* __SETUP_H */
diff -puN include/asm-x86_64/bootsetup.h~a include/asm-x86_64/bootsetup.h
--- 25/include/asm-x86_64/bootsetup.h~a 2004-06-28 00:08:53.768407224 -0700
+++ 25-akpm/include/asm-x86_64/bootsetup.h 2004-06-28 00:08:58.914624880 -0700
@@ -30,6 +30,7 @@ extern char x86_boot_params[2048];
#define EDD_NR (*(unsigned char *) (PARAM+EDDNR))
#define EDD_BUF ((struct edd_info *) (PARAM+EDDBUF))
#define COMMAND_LINE saved_command_line
+#define COMMAND_LINE_SIZE 256
#define RAMDISK_IMAGE_START_MASK 0x07FF
#define RAMDISK_PROMPT_FLAG 0x8000
diff -puN include/asm-x86_64/setup.h~a include/asm-x86_64/setup.h
--- 25/include/asm-x86_64/setup.h~a 2004-06-28 00:08:53.796402968 -0700
+++ 25-akpm/include/asm-x86_64/setup.h 2004-06-28 00:08:58.915624728 -0700
@@ -1,6 +1,10 @@
+/*
+ * Just a place holder. We don't want to have to test x86 before
+ * we include stuff
+ */
+
#ifndef _x8664_SETUP_H
#define _x8664_SETUP_H
-#define COMMAND_LINE_SIZE 256
#endif
diff -puN include/linux/init.h~a include/linux/init.h
--- 25/include/linux/init.h~a 2004-06-28 00:08:53.837396736 -0700
+++ 25-akpm/include/linux/init.h 2004-06-28 00:09:01.336256736 -0700
@@ -110,33 +110,25 @@ extern char saved_command_line[];
struct obs_kernel_param {
const char *str;
int (*setup_func)(char *);
- int early;
};
-/* Only for really core code. See moduleparam.h for the normal way. */
-#define __setup_param(str, unique_id, fn, early) \
+/* OBSOLETE: see moduleparam.h for the right way. */
+#define __setup_param(str, unique_id, fn) \
static char __setup_str_##unique_id[] __initdata = str; \
static struct obs_kernel_param __setup_##unique_id \
__attribute_used__ \
__attribute__((__section__(".init.setup"))) \
- = { __setup_str_##unique_id, fn, early }
+ = { __setup_str_##unique_id, fn }
#define __setup_null_param(str, unique_id) \
- __setup_param(str, unique_id, NULL, 0)
+ __setup_param(str, unique_id, NULL)
#define __setup(str, fn) \
- __setup_param(str, fn, fn, 0)
+ __setup_param(str, fn, fn)
#define __obsolete_setup(str) \
__setup_null_param(str, __LINE__)
-/* NOTE: fn is as per module_param, not __setup! Emits warning if fn
- * returns non-zero. */
-#define early_param(str, fn) \
- __setup_param(str, fn, fn, 1)
-
-/* Relies on saved_command_line being set */
-void __init parse_early_param(void);
#endif /* __ASSEMBLY__ */
/**
diff -puN init/main.c~a init/main.c
--- 25/init/main.c~a 2004-06-28 00:08:53.881390048 -0700
+++ 25-akpm/init/main.c 2004-06-28 00:09:01.351254456 -0700
@@ -112,9 +112,6 @@ extern void time_init(void);
void (*late_time_init)(void);
extern void softirq_init(void);
-/* Untouched command line (eg. for /proc) saved by arch-specific code. */
-char saved_command_line[COMMAND_LINE_SIZE];
-
static char *execute_command;
/* Setup configured maximum number of CPUs to activate */
@@ -161,14 +158,8 @@ static int __init obsolete_checksetup(ch
do {
int n = strlen(p->str);
if (!strncmp(line, p->str, n)) {
- if (p->early) {
- /* Already done in parse_early_param? (Needs
- * exact match on param part) */
- if (line[n] == '\0' || line[n] == '=')
- return 1;
- } else if (!p->setup_func) {
- printk(KERN_WARNING "Parameter %s is obsolete,"
- " ignored\n", p->str);
+ if (!p->setup_func) {
+ printk(KERN_WARNING "Parameter %s is obsolete, ignored\n", p->str);
return 1;
} else if (p->setup_func(line + n))
return 1;
@@ -403,38 +394,6 @@ static void noinline rest_init(void)
cpu_idle();
}
-/* Check for early params. */
-static int __init do_early_param(char *param, char *val)
-{
- struct obs_kernel_param *p;
- extern struct obs_kernel_param __setup_start, __setup_end;
-
- for (p = &__setup_start; p < &__setup_end; p++) {
- if (p->early && strcmp(param, p->str) == 0) {
- if (p->setup_func(val) != 0)
- printk(KERN_WARNING
- "Malformed early option '%s'\n", param);
- }
- }
- /* We accept everything at this stage. */
- return 0;
-}
-
-/* Arch code calls this early on, or if not, just before other parsing. */
-void __init parse_early_param(void)
-{
- static __initdata int done = 0;
- static __initdata char tmp_cmdline[COMMAND_LINE_SIZE];
-
- if (done)
- return;
-
- /* All fall through to do_early_param. */
- strlcpy(tmp_cmdline, saved_command_line, COMMAND_LINE_SIZE);
- parse_args("early options", tmp_cmdline, NULL, 0, do_early_param);
- done = 1;
-}
-
/*
* Activate the first processor.
*/
@@ -442,6 +401,7 @@ void __init parse_early_param(void)
asmlinkage void __init start_kernel(void)
{
char * command_line;
+ extern char saved_command_line[];
extern struct kernel_param __start___param[], __stop___param[];
/*
* Interrupts are still disabled. Do necessary setups, then
@@ -478,7 +438,6 @@ asmlinkage void __init start_kernel(void
page_alloc_init();
trap_init();
printk("Kernel command line: %s\n", saved_command_line);
- parse_early_param();
parse_args("Booting kernel", command_line, __start___param,
__stop___param - __start___param,
&unknown_bootoption);
@@ -719,16 +678,3 @@ static int init(void * unused)
panic("No init found. Try passing init= option to kernel.");
}
-
-static int early_param_test(char *rest)
-{
- printk("early_parm_test: %s\n", rest ?: "(null)");
- return rest ? 0 : -EINVAL;
-}
-early_param("testsetup", early_param_test);
-static int early_setup_test(char *rest)
-{
- printk("early_setup_test: %s\n", rest ?: "(null)");
- return 0;
-}
-__setup("testsetup_long", early_setup_test);
_
Sample of the errors in the allyesconfig build. Adrian Bunk has a patch
for this.
Warnings/Errors Summary
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
sound/built-in.o(.text+0x10aee2): In function
`snd_gus_synth_new_device':
sound/isa/gus/gus_synth.c:272: undefined reference to
`snd_seq_iwffff_init'
make: [.tmp_vmlinux1] Error 1 (ignored)
KSYM .tmp_kallsyms1.S
----------------------------------------------------------------------
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.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
On Monday 28 of June 2004 09:19, Andrew Morton wrote:
> "R. J. Wysocki" <[email protected]> wrote:
> > On Sunday 27 of June 2004 08:31, Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/2.
> > >6.7-m m3/
> >
> > I see the following: (in the order of importance - to me ;-)):
> >
> > 1) Serial console does not work (at all), but earlyprintk _does_ (output
> > goes to tty0 after earlyprintk has finished).
> >
> > Please, fix the serial console ASAP. It's a pain to hand-rewrite call
> > traces
>
> erk, sorry, I thought the x86_64 console= parsing breakage had been fixed.
>
> The below should get you going again while we remember what the problem
> was.
It's revived the serial console, so thanks a lot! BTW, can you tell me
please, what it actually does? I see that it applies to many architectures,
not just x86-64 ...
FYIO, I see that for the following command line:
root=/dev/sdc3 vga=792 earlyprintk=serial,ttyS0,115200 console=ttyS0,115200
console=tty0 hdc=ide-scsi
it makes all of the kernel and system boot messages go to ttyS0 (see the
attached log) while tty0 gets only kernel messages ("normally" it worked in
the reverse way), which of course is not a big deal.
Now, I'm going to set the DEBUG_SLAB and see what happens. ;-)
Yours,
rjw
----------------------------
For a successful technology, reality must take precedence over public
relations, for nature cannot be fooled.
-- Richard P. Feynman
On Monday 28 of June 2004 21:18, R. J. Wysocki wrote:
> On Monday 28 of June 2004 09:19, Andrew Morton wrote:
> > "R. J. Wysocki" <[email protected]> wrote:
> > > On Sunday 27 of June 2004 08:31, Andrew Morton wrote:
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/
> > > >2. 6.7-m m3/
> > >
> > > I see the following: (in the order of importance - to me ;-)):
> > >
> > > 1) Serial console does not work (at all), but earlyprintk _does_
> > > (output goes to tty0 after earlyprintk has finished).
> > >
> > > Please, fix the serial console ASAP. It's a pain to hand-rewrite call
> > > traces
> >
> > erk, sorry, I thought the x86_64 console= parsing breakage had been
> > fixed.
> >
> > The below should get you going again while we remember what the problem
> > was.
>
> It's revived the serial console, so thanks a lot! BTW, can you tell me
> please, what it actually does? I see that it applies to many
> architectures, not just x86-64 ...
[snip]
> Now, I'm going to set the DEBUG_SLAB and see what happens. ;-)
Well, it's in the attachement. Enjoy,
rjw
----------------------------
For a successful technology, reality must take precedence over public
relations, for nature cannot be fooled.
-- Richard P. Feynman
Testers welcome.
- fix unbalanced invocation of pci_enable_device();
- leaks plugged in cirrusfb_zorro_setup();
- move framebuffer_release() into cirrusfb_{pci/zorro}_unmap() to balance
cirrusfb_{pci/zorro}_setup();
- make cirrusfb_{pci/zorro}_setup() return adequate error codes when
something fails;
- cirrusfb_zorro_unmap: iounmap() now take as argument values previously
returned by ioremap().
Signed-off-by: Francois Romieu <[email protected]>
diff -puN drivers/video/cirrusfb.c~cirrusfb-00 drivers/video/cirrusfb.c
--- linux-2.6.7/drivers/video/cirrusfb.c~cirrusfb-00 2004-06-24 22:55:10.000000000 +0200
+++ linux-2.6.7-fr/drivers/video/cirrusfb.c 2004-06-28 21:10:41.000000000 +0200
@@ -2144,15 +2144,17 @@ static void get_pci_addrs (const struct
static void __devexit cirrusfb_pci_unmap (struct cirrusfb_info *cinfo)
{
- iounmap (cinfo->fbmem);
- release_mem_region(cinfo->fbmem_phys, cinfo->size);
+ struct pci_dev *pdev = cinfo->pdev;
+ iounmap(cinfo->fbmem);
#if 0 /* if system didn't claim this region, we would... */
release_mem_region(0xA0000, 65535);
#endif
-
if (release_io_ports)
release_region(0x3C0, 32);
+ pci_release_regions(pdev);
+ framebuffer_release(cinfo->info);
+ pci_disable_device(pdev);
}
@@ -2163,16 +2165,19 @@ static struct cirrusfb_info *cirrusfb_pc
struct fb_info *info;
cirrusfb_board_t btype;
unsigned long board_addr, board_size;
+ int ret;
- if (pci_enable_device(pdev) != 0) {
+ ret = pci_enable_device(pdev);
+ if (ret < 0) {
printk(KERN_ERR "cirrusfb: Cannot enable PCI device\n");
- return NULL;
+ goto err_out;
}
info = framebuffer_alloc(sizeof(struct cirrusfb_info), &pdev->dev);
if (!info) {
- printk (KERN_ERR "cirrusfb: could not allocate memory\n");
- return NULL;
+ printk(KERN_ERR "cirrusfb: could not allocate memory\n");
+ ret = -ENOMEM;
+ goto err_disable;
}
cinfo = info->par;
@@ -2202,25 +2207,30 @@ static struct cirrusfb_info *cirrusfb_pc
board_size = (btype == BT_GD5480) ?
32 * MB_ : cirrusfb_get_memsize (cinfo->regbase);
- if (!request_mem_region(board_addr, board_size, "cirrusfb")) {
+ ret = pci_request_regions(pdev, "cirrusfb");
+ if (ret <0) {
printk(KERN_ERR "cirrusfb: cannot reserve region 0x%lx, abort\n",
board_addr);
- framebuffer_release (info);
- return NULL;
+ goto err_release_fb;
}
#if 0 /* if the system didn't claim this region, we would... */
if (!request_mem_region(0xA0000, 65535, "cirrusfb")) {
- printk(KERN_ERR "cirrusfb: cannot reserve region 0x%lx, abort\n",
+ printk(KERN_ERR "cirrusfb: cannot reserve region 0x%lx, abort\n"
+,
0xA0000L);
- release_mem_region(board_addr, board_size);
- framebuffer_release (info);
- return NULL;
+ ret = -EBUSY;
+ goto err_release_regions;
}
#endif
if (request_region(0x3C0, 32, "cirrusfb"))
release_io_ports = 1;
- cinfo->fbmem = ioremap (board_addr, board_size);
+ cinfo->fbmem = ioremap(board_addr, board_size);
+ if (!cinfo->fbmem) {
+ ret = -EIO;
+ goto err_release_legacy;
+ }
+
cinfo->fbmem_phys = board_addr;
cinfo->size = board_size;
@@ -2228,6 +2238,21 @@ static struct cirrusfb_info *cirrusfb_pc
printk ("Cirrus Logic chipset on PCI bus\n");
return cinfo;
+
+err_release_legacy:
+ if (release_io_ports)
+ release_region(0x3C0, 32);
+#if 0
+ release_mem_region(0xA0000, 65535);
+err_release_regions:
+#endif
+ pci_release_regions(pdev);
+err_release_fb:
+ framebuffer_release(info);
+err_disable:
+ pci_disable_device(pdev);
+err_out:
+ return ERR_PTR(ret);
}
#endif /* CONFIG_PCI */
@@ -2266,7 +2291,7 @@ static int cirrusfb_zorro_find (struct z
}
printk (KERN_NOTICE "cirrusfb: no supported board found.\n");
- return -1;
+ return -ENODEV;
}
@@ -2275,30 +2300,35 @@ static void __devexit cirrusfb_zorro_unm
release_mem_region(cinfo->board_addr, cinfo->board_size);
if (cinfo->btype == BT_PICASSO4) {
- iounmap ((void *)cinfo->board_addr);
- iounmap ((void *)cinfo->fbmem_phys);
+ cinfo->regbase -= 0x600000;
+ iounmap ((void *)cinfo->regbase);
+ iounmap ((void *)cinfo->fbmem);
} else {
if (cinfo->board_addr > 0x01000000)
- iounmap ((void *)cinfo->board_addr);
+ iounmap ((void *)cinfo->fbmem);
}
+ framebuffer_release(cinfo->info);
}
-static struct cirrusfb_info *cirrusfb_zorro_setup ()
+static struct cirrusfb_info *cirrusfb_zorro_setup(void)
{
struct cirrusfb_info *cinfo;
struct fb_info *info;
cirrusfb_board_t btype;
struct zorro_dev *z = NULL, *z2 = NULL;
unsigned long board_addr, board_size, size;
+ int ret;
- if (cirrusfb_zorro_find (&z, &z2, &btype, &size))
- return NULL;
+ ret = cirrusfb_zorro_find (&z, &z2, &btype, &size);
+ if (ret < 0)
+ goto err_out;
info = framebuffer_alloc(sizeof(struct cirrusfb_info), &z->dev);
if (!info) {
printk (KERN_ERR "cirrusfb: could not allocate memory\n");
- return NULL;
+ ret = -ENOMEM;
+ goto err_out;
}
cinfo = info->par;
@@ -2316,11 +2346,14 @@ static struct cirrusfb_info *cirrusfb_zo
if (!request_mem_region(board_addr, board_size, "cirrusfb")) {
printk(KERN_ERR "cirrusfb: cannot reserve region 0x%lx, abort\n",
board_addr);
- return -1;
+ ret = -EBUSY;
+ goto err_release_fb;
}
printk (" RAM (%lu MB) at $%lx, ", board_size / MB_, board_addr);
+ ret = -EIO;
+
if (btype == BT_PICASSO4) {
printk (" REG at $%lx\n", board_addr + 0x600000);
@@ -2329,12 +2362,17 @@ static struct cirrusfb_info *cirrusfb_zo
/* for P4, map in its address space in 2 chunks (### TEST! ) */
/* (note the ugly hardcoded 16M number) */
cinfo->regbase = ioremap (board_addr, 16777216);
+ if (!cinfo->regbase)
+ goto err_release_region;
+
DPRINTK ("cirrusfb: Virtual address for board set to: $%p\n", cinfo->regbase);
cinfo->regbase += 0x600000;
cinfo->fbregs_phys = board_addr + 0x600000;
cinfo->fbmem_phys = board_addr + 16777216;
cinfo->fbmem = ioremap (info->fbmem_phys, 16777216);
+ if (!cinfo->fbmem)
+ goto err_unmap_regbase;
} else {
printk (" REG at $%lx\n", (unsigned long) z2->resource.start);
@@ -2343,6 +2381,8 @@ static struct cirrusfb_info *cirrusfb_zo
cinfo->fbmem = ioremap (board_addr, board_size);
else
cinfo->fbmem = (caddr_t) ZTWO_VADDR (board_addr);
+ if (!cinfo->fbmem)
+ goto err_release_region;
/* set address for REG area of board */
cinfo->regbase = (caddr_t) ZTWO_VADDR (z2->resource.start);
@@ -2354,6 +2394,16 @@ static struct cirrusfb_info *cirrusfb_zo
printk (KERN_INFO "Cirrus Logic chipset on Zorro bus\n");
return 0;
+
+err_unmap_regbase:
+ /* Parental advisory: explicit hack */
+ iounmap(cinfo->regbase - 0x600000);
+err_release_region:
+ release_region(board_addr, board_size);
+err_release_fb:
+ framebuffer_release(info);
+err_out:
+ return ERR_PTR(ret);
}
#endif /* CONFIG_ZORRO */
@@ -2430,8 +2480,10 @@ static int cirrusfb_pci_register (struct
cinfo = cirrusfb_bus_setup(pdev, ent);
- if (!cinfo)
- return -ENODEV;
+ if (IS_ERR(cinfo)) {
+ err = PTR_ERR(cinfo);
+ goto err_out;
+ }
info = cinfo->info;
btype = cinfo->btype;
@@ -2446,13 +2498,12 @@ static int cirrusfb_pci_register (struct
/* state, even though we haven't written the mode to the hw yet... */
info->var = cirrusfb_predefined[cirrusfb_def_mode].var;
info->var.activate = FB_ACTIVATE_NOW;
+
err = cirrusfb_decode_var(&info->var, &cinfo->currentmode, info);
- if(err) {
+ if (err < 0) {
/* should never happen */
DPRINTK("choking on default var... umm, no good.\n");
- cirrusfb_unmap (cinfo);
- framebuffer_release (info);
- return -EINVAL;
+ goto err_unmap_cirrusfb;
}
/* set all the vital stuff */
@@ -2460,16 +2511,21 @@ static int cirrusfb_pci_register (struct
pci_set_drvdata(pdev, info);
- if ((err = register_framebuffer (info)) < 0) {
+ err = register_framebuffer(info);
+ if (err < 0) {
printk (KERN_ERR "cirrusfb: could not register fb device; err = %d!\n", err);
- fb_dealloc_cmap(&info->cmap);
- cirrusfb_unmap (cinfo);
- framebuffer_release (info);
- return -EINVAL;
+ goto err_dealloc_cmap;
}
DPRINTK ("EXIT, returning 0\n");
return 0;
+
+err_dealloc_cmap:
+ fb_dealloc_cmap(&info->cmap);
+err_unmap_cirrusfb:
+ cirrusfb_unmap(cinfo);
+err_out:
+ return err;
}
@@ -2482,11 +2538,10 @@ static void __devexit cirrusfb_cleanup (
switch_monitor (cinfo, 0);
#endif
- cirrusfb_unmap (cinfo);
- fb_dealloc_cmap (&info->cmap);
unregister_framebuffer (info);
+ fb_dealloc_cmap (&info->cmap);
printk ("Framebuffer unregistered\n");
- framebuffer_release (info);
+ cirrusfb_unmap (cinfo);
DPRINTK ("EXIT\n");
}
_
On Mon, Jun 28, 2004 at 09:27:27PM +0200, Francois Romieu wrote:
> Testers welcome.
>
> - fix unbalanced invocation of pci_enable_device();
> - leaks plugged in cirrusfb_zorro_setup();
> - move framebuffer_release() into cirrusfb_{pci/zorro}_unmap() to balance
> cirrusfb_{pci/zorro}_setup();
> - make cirrusfb_{pci/zorro}_setup() return adequate error codes when
> something fails;
> - cirrusfb_zorro_unmap: iounmap() now take as argument values previously
> returned by ioremap().
>
> Signed-off-by: Francois Romieu <[email protected]>
Your patch looks great.
Not only does it look great, with it X and cirrusfb now play nice with
each other! Andrew, please apply. Feel free to add my:
Signed-off-by: David Eger <[email protected]>
On another note...
pci_request_regions() replaces request_mem_region()...
looks like virtually all of the FB drivers have suffered from bit
rot. I guess that's what you get when people just look at code in
drivers/video/ to copy..
-dte
David Eger <[email protected]> :
[...]
> On another note...
> pci_request_regions() replaces request_mem_region()...
Oops, I forgot to include it in the description of the patch.
> looks like virtually all of the FB drivers have suffered from bit
> rot.
It is not the closest target but it's on the radar.
--
Ueimor
"R. J. Wysocki" <[email protected]> wrote:
>
> Kernel BUG at mempolicy:585
OK, this is a straight use-after-free bug:
--- 25/mm/mempolicy.c~a 2004-06-28 15:46:42.000000000 -0700
+++ 25-akpm/mm/mempolicy.c 2004-06-28 15:48:25.000000000 -0700
@@ -582,7 +582,7 @@ static struct zonelist *zonelist_policy(
break;
default:
nd = 0;
- BUG();
+ printk("%s: policy=%x\n", __FUNCTION__, policy->policy);
}
return NODE_DATA(nd)->node_zonelists + (gfp & GFP_ZONEMASK);
}
linux:/home/akpm> dmesg -s 1000000|grep zonelist
Built 1 zonelists
zonelist_policy: policy=6b6b
zonelist_policy: policy=6b6b
Andi, could you take a look? Enabling CONFIG_DEBUG_SLAB and CONFIG_NUMA
triggers it 100% of the time.