2007-01-12 06:26:35

by Andrew Morton

[permalink] [raw]
Subject: 2.6.20-rc4-mm1


Temporarily at

http://userweb.kernel.org/~akpm/2.6.20-rc4-mm1/

Will appear later at

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


- Added the e1000 driver development tree, as git-e1000.patch (Auke Kok
<[email protected]>)

- Added the HID development tree, as git-hid.patch (Jiri Kosina
<[email protected]>)

- Added the unionfs filesystem driver as git-unionfs.patch (Josef "Jeff"
Sipek <[email protected]>)

- Merged the "filesystem AIO patches".



Boilerplate:

- See the `hot-fixes' directory for any important updates to this patchset.

- To fetch an -mm tree using git, use (for example)

git-fetch git://git.kernel.org/pub/scm/linux/kernel/git/smurf/linux-trees.git tag v2.6.16-rc2-mm1
git-checkout -b local-v2.6.16-rc2-mm1 v2.6.16-rc2-mm1

- -mm kernel commit activity can be reviewed by subscribing to the
mm-commits mailing list.

echo "subscribe mm-commits" | mail [email protected]

- If you hit a bug in -mm and it is not obvious which patch caused it, it is
most valuable if you can perform a bisection search to identify which patch
introduced the bug. Instructions for this process are at

http://www.zip.com.au/~akpm/linux/patches/stuff/bisecting-mm-trees.txt

But beware that this process takes some time (around ten rebuilds and
reboots), so consider reporting the bug first and if we cannot immediately
identify the faulty patch, then perform the bisection search.

- When reporting bugs, please try to Cc: the relevant maintainer and mailing
list on any email.

- When reporting bugs in this kernel via email, please also rewrite the
email Subject: in some manner to reflect the nature of the bug. Some
developers filter by Subject: when looking for messages to read.

- Semi-daily snapshots of the -mm lineup are uploaded to
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/ and are announced on
the mm-commits list.




Changes since 2.6.20-rc3-mm1:


origin.patch
git-acpi.patch
git-ibm-acpi.patch
git-alsa.patch
git-arm.patch
git-avr32.patch
git-cifs.patch
git-cpufreq.patch
git-drm.patch
git-dvb.patch
git-gfs2-nmw.patch
git-hid.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-jfs.patch
git-libata-all.patch
git-lxdialog.patch
git-mips.patch
git-mmc.patch
git-mtd.patch
git-ubi.patch
git-netdev-all.patch
git-e1000.patch
git-net.patch
git-ioat.patch
git-ocfs2.patch
git-pcmcia.patch
git-pciseg.patch
git-s390.patch
git-sh.patch
git-scsi-rc-fixes.patch
git-block.patch
git-sas.patch
git-unionfs.patch
git-watchdog.patch
git-wireless.patch
git-cryptodev.patch
git-gccbug.patch

git trees

-add-afs_super_magic-to-magich.patch
-fix-implicit-declarations-in-via-pmu.patch
-fix-leds-s3c24xx-hardwareh-reference.patch
-start_kernel-test-if-irqs-got-enabled-early-barf-and-disable-them-again.patch
-start_kernel-test-if-irqs-got-enabled-early-barf-and-disable-them-again-fix.patch
-kernelparams-detect-if-and-which-parameter-parsing-enabled-irqs.patch
-kernelparams-detect-if-and-which-parameter-parsing-enabled-irqs-fix.patch
-pci-prevent-down_read-when-pci_devices-is-empty.patch
-pci-prevent-down_read-when-pci_devices-is-empty-fix.patch
-via82cxxx-fix-cable-detection.patch
-kvm-fix-gfp_kernel-alloc-in-atomic-section-bug.patch
-kvm-use-raw_smp_processor_id-instead-of-smp_processor_id-where-applicable.patch
-kvm-recover-after-an-arch-module-load-failure.patch
-kvm-improve-interrupt-response.patch
-rtc-at91rm9200-build-fix.patch
-fix-bug-at-drivers-scsi-scsi_libc1118-caused-by-pktsetup-dvd-dev-sr0.patch
-atiixp-old-drivers-ide-layer-driver-for-the-atiixp-hang.patch
-atiixp-old-drivers-ide-layer-driver-for-the-atiixp-hang-tidy.patch
-adfs-fix-filename-handling.patch
-swsusp-do-not-fail-if-resume-device-is-not-set.patch
-profiling-fix-sched-profiling-typo.patch
-i386-restore-config_physical_start-option.patch
-sanely-size-hash-tables-when-using-large-base-pages-take-2.patch
-i386-fix-modpost-warning-in-smp-trampoline-code.patch
-i386-fix-another-modpost-warning.patch
-i386-modpost-smpboot-code-warning-fix.patch
-ip2-warning-fix.patch
-fix-memory-corruption-from-misinterpreted-bad_inode_ops.patch
-fix-memory-corruption-from-misinterpreted-bad_inode_ops-tidy.patch
-fix-bug_onpageslab-from-fallback_alloc.patch
-update-the-rtc-rs5c372-driver.patch
-kvm-prevent-stale-bits-in-cr0-and-cr4.patch
-kvm-mmu-implement-simple-reverse-mapping.patch
-kvm-mmu-teach-the-page-table-walker-to-track-guest-page-table-gfns.patch
-kvm-mmu-load-the-pae-pdptrs-on-cr3-change-like-the-processor-does.patch
-kvm-mmu-fold-fetch_guest-into-init_walker.patch
-kvm-mu-special-treatment-for-shadow-pae-root-pages.patch
-kvm-mmu-use-the-guest-pdptrs-instead-of-mapping-cr3-in-pae-mode.patch
-kvm-mmu-make-the-shadow-page-tables-also-special-case-pae.patch
-kvm-mmu-make-kvm_mmu_alloc_page-return-a-kvm_mmu_page-pointer.patch
-kvm-mmu-shadow-page-table-caching.patch
-kvm-mmu-write-protect-guest-pages-when-a-shadow-is-created-for-them.patch
-kvm-mmu-let-the-walker-extract-the-target-page-gfn-from-the-pte.patch
-kvm-mmu-support-emulated-writes-into-ram.patch
-kvm-mmu-zap-shadow-page-table-entries-on-writes-to-guest-page-tables.patch
-kvm-mmu-if-emulating-an-instruction-fails-try-unprotecting-the-page.patch
-kvm-mmu-implement-child-shadow-unlinking.patch
-kvm-mmu-kvm_mmu_put_page-only-removes-one-link-to-the-page.patch
-kvm-mmu-oom-handling.patch
-kvm-mmu-remove-invlpg-interception.patch
-kvm-mmu-remove-release_pt_page_64.patch
-kvm-mmu-handle-misaligned-accesses-to-write-protected-guest-page-tables.patch
-kvm-mmu-ove-is_empty_shadow_page-above-kvm_mmu_free_page.patch
-kvm-mmu-ensure-freed-shadow-pages-are-clean.patch
-kvm-mmu-if-an-empty-shadow-page-is-not-empty-report-more-info.patch
-kvm-mmu-page-table-write-flood-protection.patch
-kvm-mmu-never-free-a-shadow-page-actively-serving-as-a-root.patch
-kvm-mmu-fix-cmpxchg8b-emulation.patch
-kvm-mmu-treat-user-mode-faults-as-a-hint-that-a-page-is-no-longer-a-page-table.patch
-kvm-mmu-free-pages-on-kvm-destruction.patch
-kvm-mmu-replace-atomic-allocations-by-preallocated-objects.patch
-kvm-mmu-detect-oom-conditions-and-propagate-error-to-userspace.patch
-kvm-mmu-flush-guest-tlb-when-reducing-permissions-on-a-pte.patch
-kvm-mmu-destroy-mmu-while-we-still-have-a-vcpu-left.patch
-kvm-mmu-add-audit-code-to-check-mappings-etc-are-correct.patch
-pata_optidma-typo-in-kconfig.patch
-hpt37x-two-important-bug-fixes.patch
-check-for-populated-zone-in-__drain_pages.patch
-fix-the-toshiba_acpi-write_lcd-return-value.patch
-pci-avoid-taking-pci_bus_sem-early-in-boot.patch
-fix-garbage-instead-of-zeroes-in-ufs.patch
-shrink_all_memory-fix-lru_pages-handling.patch
-connector-some-fixes-for-ia64-unaligned-access-errors.patch
-sound-hda-detect-alc883-on-msi-k9a-platinum-motherboards.patch
-fix-bogus-bug_on-in-in-hugetlb_get_unmapped_area.patch
-error-handling-in-sysfs-fill_read_buffer.patch
-make-usbvision_rvfree-static.patch
-maintainers-tag-pvrusb2-list-as-subscribers-only.patch
-ks0127-status-flags.patch
-jdelvare-i2c-i2c-pnx-fix-interrupt-handler.patch
-jdelvare-i2c-i2c-pnx-add-maintainer.patch
-jdelvare-i2c-i2c-migration-aids-for-i2c_adapter.dev-removal.patch
-jdelvare-i2c-i2c-01-hwmon-drivers-stop-using-i2c_adapter.dev.patch
-jdelvare-i2c-i2c-02-i2c-bus-drivers-stop-using-i2c_adapter.dev.patch
-jdelvare-i2c-i2c-03-misc-i2c-drivers-stop-using-i2c_adapter.dev.patch
-jdelvare-i2c-i2c-04-other-drivers-stop-using-i2c_adapter.dev.patch
-jdelvare-i2c-i2c-05-remove-i2c_adapter.dev-from-all-i2c-adapters.patch
-i2c-m41t00-do-not-forget-to-write-year.patch
-qconf-immediately-update-integer-and-string-values-in-xconfig-display.patch
-sata_nv-add-suspend-resume-support.patch
-ubiioc-needs-schedh.patch
-qeth-fix-uaccess-handling-and-get-rid-of-unused-variable.patch
-forcedeth-sideband-management-fix.patch
-gregkh-pci-pci-disable-pci_multithread_probe.patch
-gregkh-pci-pci-quirks.c-cleanup.patch
-gregkh-pci-pciehp-cleanup-pciehp.h.patch
-iscsi-fix-crypto_alloc_hash-error-check.patch
-scsi-lpfc-error-path-fix.patch
-gregkh-usb-uhci-make-test-for-asus-motherboard-more-specific.patch
-gregkh-usb-uhci-support-device_may_wakeup.patch
-gregkh-usb-usb-fix-interaction-between-different-interfaces-in-an-option-usb-device.patch
-gregkh-usb-usb-funsoft-is-borken-on-sparc.patch
-gregkh-usb-usb-omap_udc-build-fixes.patch
-gregkh-usb-usb-storage-unusual_devs-add-supertop-drives.patch
-gregkh-usb-usb-storage-fix-ipod-ejecting-issue.patch
-gregkh-usb-usb-small-update-to-documentation-usb-acmtxt.patch
-gregkh-usb-usb-fixed-bug-in-endpoint-release-function.patch
-gregkh-usb-usb-linux-usb_ch9.h-becomes-linux-usb-ch9.h.patch
-gregkh-usb-usb-define-usb_class_misc-in-linux-usb-ch9.h.patch
-gregkh-usb-usb-remove-unneeded-void-casts-in-idmouse.c.patch
-gregkh-usb-usb-devio.c-add-missing-init_list_head.patch
-gregkh-usb-usb-gadget-file_storage.c-remove-unnecessary-casts.patch
-gregkh-usb-usb-add-usb_endpoint_xfer_control-to-usb.h.patch
-gregkh-usb-usb-serial-serqt_usb.patch
-usblpc-add-kyocera-mita-fs-820-to-list-of-quirky-printers.patch
-usb-usbmixer-error-path-fix.patch
-sisusb_con-warning-fixes.patch
-x86_64-mm-fix-aout-warning.patch
-revert-i386-fix-the-verify_quirk_intel_irqbalance.patch
-revert-x86_64-mm-add-genapic_force.patch
-revert-x86_64-mm-fix-the-irqbalance-quirk-for-e7320-e7520-e7525.patch
-revert-x86_64-mm-copy-user-nocache.patch
-convert-i386-pda-code-to-use-%fs.patch
-x86_64-i386-kernel-mode-faults-pollute-current-thead.patch
-genapic-optimize-fix-apic-mode-setup-2.patch
-genapic-always-use-physical-delivery-mode-on-8-cpus.patch
-genapic-remove-es7000-workaround.patch
-genapic-remove-clustered-apic-mode.patch
-genapic-default-to-physical-mode-on-hotplug-cpu-kernels.patch
-x86_64-make-the-numa-hash-function-nodemap-allocation-fix-2.patch
-i386-io_apic-fix-a-typo-in-an-irq-handler-name.patch
-pci-mmconfig-share-whats-shareable.patch
-pci-mmconfig-only-call-unreachable_devices-when-type-1-is-available.patch
-pci-mmconfig-only-map-whats-necessary.patch
-pci-mmconfig-detect-and-support-the-e7520-and-the-945g-gz-p-pl.patch
-pci-mmconfig-reserve-resources-but-only-when-were-sure-about-them.patch
-get-rid-of-arch_have_xtime_lock.patch
-add-memcpy_uncached_read.patch
-ib-ipath-use-memcpy_uncached_read-in-rdma-interrupt.patch
-x86_64-improved-iommu-documentation.patch
-x86_64-do-not-always-end-the-stack-trace-with-ulong_max.patch
-arch-i386-kernel-e820c-should-include-asm-setuph.patch
-paravirt-page-allocation-hooks-for-vmi-backend.patch
-paravirt-paravirt-cpu-hypercall-batching-mode.patch
-paravirt-iopl-handling-for-paravirt-guests.patch
-paravirt-smp-boot-hook-for-paravirt.patch
-paravirt-vmi-backend-for-paravirt-ops.patch
-paravirt-vmi-backend-for-paravirt-ops-compile-fix.patch
-paravirt-vmi-backend-for-paravirt-ops-initialize-fs-for-smp.patch
-paravirt-vmi-backend-for-paravirt-ops-native-fix.patch
-paravirt-vmi-timer-patches.patch
-i386-cpu-hotplug-smpboot-misc-modpost-warning-fixes.patch
-convert-some-functions-to-__init-to-avoid-modpost-warnings.patch
-i386-move-startup_32-in-texthead-section.patch
-break-init-in-two-parts-to-avoid-modpost-warnings.patch
-i386-fix-memory-hotplug-related-modpost-generated-warning.patch
-arch-i386-kernel-cpu-mcheck-mcec-should-include-asm-mceh.patch
-add-i386-idle-notifier-take-3.patch
-sched-improve-sched_clock-on-i686.patch
-romsignature-checksum-cleanup.patch
-i386-make-apic-probe-function-non-init.patch
-modpost-add-more-symbols-to-whitelist-pattern2.patch
-modpost-whitelist-reference-to-more-symbols-pattern-3.patch
-fix-fake-numa-for-x86_64-machines-with-big-io-hole.patch
-x86-64-calgary-tighten-up-printks.patch
-remove-fastcall-references-in-x86_64-code.patch
-use-constant-instead-of-raw-number-in-x86_64-iopermc.patch
-bluetooth-blacklist-lenovo-r60e.patch

Merged into mainline or a subsystem tree.

+sched-tasks-cannot-run-on-cpus-onlined-after-boot.patch
+increment-pos-before-looking-for-the-next-cap-in-__pci_find_next_ht_cap.patch
+fix-sparsemem-on-cell.patch
+rtc-sh-correctly-report-rtc_wkalrmenabled.patch
+change-cpu_up-and-co-from-__devinit-to-__cpuinit.patch
+kdump-documentation-update-for-2620.patch
+i386-sched_clock-using-init-data-tsc_disable-fix.patch
+md-pass-down-bio_rw_sync-in-raid110.patch
+kvm-add-vm-exit-profiling.patch
+nfs-fix-race-in-nfs_release_page.patch
+really-fix-funsoft-driver.patch
+revert-bd_mount_mutex-back-to-a-semaphore.patch
+intel-rng-workarounds.patch
+fix-hwrng-built-in-initcalls-priority.patch
+fix-typo-in-geode_configre-cyrixc.patch
+fd_zero-build-fix.patch
+revert-nmi_known_cpu-check-during-boot-option-parsing.patch
+blockdev-direct_io-fix-signedness-bug.patch
+submitchecklist-update.patch
+paravirt-mark-the-paravirt_ops-export-internal.patch
+kvm-make-sure-there-is-a-vcpu-context-loaded-when.patch
+kvm-fix-race-between-mmio-reads-and-injected-interrupts.patch
+kvm-x86-emulator-fix-bit-string-instructions.patch
+kvm-fix-asm-constraints-with-config_frame_pointer=n.patch
+kvm-fix-bogus-pagefault-on-writable-pages.patch
+rtc-sh-act-on-rtc_wkalrmenabled-when-setting-an-alarm.patch
+fix-blk_direct_io-bio-preparation.patch
+tlclk-bug-fix-misc-fixes.patch
+tlclk-bug-fix-misc-fixes-tidy.patch
+reiserfs-avoid-tail-packing-if-an-inode-was-ever-mmapped.patch

2.6.20 queue

-down_write-preserve-local-irqs.patch

Dropped

+acpi-bay-remove-acpi-driver-struct.patch
+exit-acpi-processor-module-gracefully-if-acpi-is-disabled.patch
+exit-acpi-processor-module-gracefully-if-acpi-is-disabled-tidy.patch
+acpi-make-bay-depend-on-dock.patch

ACPI things

+sony_acpi-addacpi_bus_generate-event-fix.patch

Fix sony_acpi-addacpi_bus_generate-event.patch

-git-alsa-fixup.patch

Unneeded

+agpgart-allow-drm-populated-agp-memory-types.patch
+agpgart-allow-drm-populated-agp-memory-types-tidy.patch

AGP feature work.

+arm-imx-serial-fix-tx-buffer-overflows.patch
+arm-imx-serial-fix-irq-allocation.patch

ARM serial driver fixes

+cifs-remove-2-unneeded-kzalloc-casts.patch

CIFS cleanup

+rewrite-lock-in-cpufreq-to-eliminate-cpufreq-hotplug-related-issues-fix-2.patch
+rewrite-lock-in-cpufreq-to-eliminate-cpufreq-hotplug-related-issues-fix-3.patch

Fix
rewrite-lock-in-cpufreq-to-eliminate-cpufreq-hotplug-related-issues.patch
some more.

+cpu_freq_table-shouldnt-be-a-def_tristate.patch

cpufreq Kconfig fix

+gregkh-driver-sysfs-error-handling-in-sysfs-fill_read_buffer.patch

Driver tree update

+driver-core-remove-device_is_registered-in.patch
+driver-core-allow-device_movedev-null.patch

More driver core work

+drivers-char-drm-drm_mmc-remove-unused-exports.patch

DRM cleanup

+cpiac-buffer-overflow.patch
+fix-bttv-and-friends-on-64bit-machines-with-lots-of-memory.patch

DVB things

+jdelvare-i2c-i2c-01-hwmon-drivers-stop-using-i2c_adapterdev.patch
+jdelvare-i2c-i2c-02-i2c-bus-drivers-stop-using-i2c_adapterdev.patch
+jdelvare-i2c-i2c-03-misc-i2c-drivers-stop-using-i2c_adapterdev.patch
+jdelvare-i2c-i2c-04-other-drivers-stop-using-i2c_adapterdev.patch
+jdelvare-i2c-i2c-05-remove-i2c_adapterdev-from-all-i2c-adapters.patch
+jdelvare-i2c-i2c-ali1563-fix-initialization.patch
+jdelvare-i2c-i2c-i801-document-unhiding-quirk.patch
+jdelvare-i2c-i2c-update-bus-id-list.patch
+jdelvare-i2c-i2c-add-ids-to-bus-drivers.patch

I2C tree updates

+jdelvare-hwmon-hwmon-w83793-datasheet-refresh.patch
+jdelvare-hwmon-hwmon-vid-fix-vrm11.patch
+jdelvare-hwmon-hwmon-adm1029-new-driver.patch

hwmon tree updates

+ia64-add-pci_get_legacy_ide_irq.patch

ia64 IDE fix

+input-atlas-button-driver.patch

New Input driver

+qconf-immediately-update-integer-and-string-values-in-xconfig-display-take-2.patch
+kbuild-dont-ignore-localversion-files-if-the-path-includes-a.patch
+qconf-relocate-search-command.patch

Kconfig things

+add-suport-for-marvell-88se6121-in-pata_marvell.patch
+sata_promise-atapi-cleanup.patch
+libata-piix3-support.patch
+libata-piix3-support-warning-fix.patch

ATA things.

+mips-turbochannel-update-to-the-driver-model-fix.patch

Fix mips-turbochannel-update-to-the-driver-model.patch

+mips-remove-smp_tune_scheduling.patch

MIPS cleanup

+ubi-printk-fix.patch

UBI tree fix

+ucc-ether-driver-kmalloc-casting-cleanups.patch
+forcedeth-dma-access.patch
+forcedeth-ring-access.patch
+forcedeth-tx-locking.patch
+forcedeth-rx-skb-recycle.patch
+forcedeth-optimized-routines.patch
+forcedeth-tx-limiting.patch
+forcedeth-tx-data-path-optimization.patch
+forcedeth-rx-data-path-optimization.patch
+forcedeth-irq-data-path-optimization.patch
+forcedeth-tx-max-work.patch
+forcedeth-statistics-supported.patch
+forcedeth-statistics-optimization.patch
+broadcom-4400-resume-small-fix-v2.patch

netdev updates

+z85230-spinlock-logic.patch
+x25-add-missing-sock_put-in-x25_receive_data.patch
+bonding-replace-kmalloc-memset-pairs-with-the-appropriate-kzalloc-calls.patch
+bonding-replace-kmalloc-memset-pairs-with-the-appropriate-kzalloc-calls-fix.patch
+net-wanrouter-wanmainc-cleanups.patch

Net things

+remove-useless-find_first_bit-macro-from-cardbusc.patch

PCMCIA cleanup

+gregkh-pci-pci-quirksc-cleanup.patch
+gregkh-pci-pciehp-cleanup-pciehph.patch

PCI tree updates

+make-isa_bridge-alpha-only.patch

OCI fix

+s390-kmalloc-kzalloc-casting-cleanups.patch

s390 cleanup

+scsi-megaraid_mmmbox-init-fix-for-kdump.patch
+megaraid-fix-kernel-doc.patch
+dac960-kmalloc-kzalloc-casting-cleanups.patch
+scsi-scan-fix-logging-message-for-pq3-devices.patch
+fix-the-reproducible-oops-in-scsi.patch
+megaraid-more-kernel-doc-fixes.patch

scsi fixes

+git-block-fixup.patch

Fix rejects in git-block.patch

+gregkh-usb-usb-linux-usb_ch9h-becomes-linux-usb-ch9h.patch
+gregkh-usb-usb-define-usb_class_misc-in-linux-usb-ch9h.patch
+gregkh-usb-usb-remove-unneeded-void-casts-in-idmousec.patch
+gregkh-usb-usb-devioc-add-missing-init_list_head.patch
+gregkh-usb-usb-gadget-file_storagec-remove-unnecessary-casts.patch
+gregkh-usb-usb-add-usb_endpoint_xfer_control-to-usbh.patch
+gregkh-usb-usb-add-binary-api-to-usbmon.patch

USB tree updates

+usb-mass-storage-us_fl_ignore_residue-needed-for-aiptek-mp3-player.patch

USB fix

+x86_64-mm-convert-i386-pda-code-to-use-%fs.patch
+x86_64-mm-kernel-mode-faults-pollute-current-thead.patch
+x86_64-mm-revert-i386-fix-the-verify_quirk_intel_irqbalance.patch
+x86_64-mm-revert-x86_64-mm-add-genapic_force.patch
+x86_64-mm-revert-x86_64-mm-fix-the-irqbalance-quirk-for-e7320-e7520-e7525.patch
+x86_64-mm-optimize-fix-apic-mode-setup.patch
+x86_64-mm-always-use-physical-delivery-mode-on-8-cpus.patch
+x86_64-mm-remove-es7000-workaround.patch
+x86_64-mm-remove-clustered-apic-mode.patch
+x86_64-mm-default-to-physical-mode-on-hotplug-cpu-kernels.patch
+x86_64-mm-x86_64-make-the-numa-hash-function-nodemap-allocation-fix-fix.patch
+x86_64-mm-fix-a-typo-in-an-irq-handler-name.patch
+x86_64-mm-share-whats-shareable.patch
+x86_64-mm-only-call-unreachable_devices-when-type-1-is-available.patch
+x86_64-mm-only-map-whats-necessary.patch
+x86_64-mm-detect-and-support-the-e7520-and-the-945g-gz-p-pl.patch
+x86_64-mm-reserve-resources-but-only-when-were-sure-about-them.patch
+x86_64-mm-get-rid-of-arch_have_xtime_lock.patch
+x86_64-mm-a-memcpy-that-tries-to-reduce-cache-pressure.patch
+x86_64-mm-use-memcpy_uncached_read-in-rdma-interrupt-handler-to-reduce-packet-loss.patch
+x86_64-mm-improved-iommu-documentation.patch
+x86_64-mm-do-not-always-end-the-stack-trace-with-ulong_max.patch
+x86_64-mm-e820-include.patch
+x86_64-mm-page-allocation-hooks-for-vmi-backend.patch
+x86_64-mm-paravirt-cpu-hypercall-batching-mode.patch
+x86_64-mm-iopl-handling-for-paravirt-guests.patch
+x86_64-mm-smp-boot-hook-for-paravirt.patch
+x86_64-mm-vmi-backend-for-paravirt-ops.patch
+x86_64-mm-vmi-timer.patch
+x86_64-mm-move-startup_32-in-texthead-section.patch
+x86_64-mm-break-init-in-two-parts-to-avoid-modpost-warnings.patch
+x86_64-mm-mcheck-include.patch
+x86_64-mm-add-idle-notifier.patch
+x86_64-mm-improve-sched_clock-on-i686.patch
+x86_64-mm-fix-x86_64-ioremap-base_address.patch
+x86_64-mm-romsignature-checksum-cleanup.patch
+x86_64-mm-fix-fake-numa-for-x86_64-machines-with-big-io-hole.patch
+x86_64-mm-remove-fastcall-references-in-x86_64-code.patch
+x86_64-mm-use-constant-instead-of-raw-number-in-x86_64-iopermc.patch
+x86_64-mm-handle-32-bit-perfmon-counter-writes-cleanly-in-x86_64-nmi_watchdog.patch
+x86_64-mm-handle-32-bit-perfmon-counter-writes-cleanly-in-i386-nmi_watchdog.patch
+x86_64-mm-handle-32-bit-perfmon-counter-writes-cleanly-in-oprofile.patch
+x86_64-mm-config_physical_align-limited-to-4m.patch
+x86_64-mm-cleanup-doc-x86_64-files.patch
+x86_64-mm-list-x86_64-quilt-tree.patch
+x86_64-mm-simplify-notify_page_fault.patch
+x86_64-mm-mce_amd-issues.patch
+x86_64-mm-mce-trigger.patch

x86_64 tree updates

+add-i386-idle-notifier-take-3-fix.patch

x86 fix

+spin_lock_irq-enable-interrupts-while-spinning-i386-implementation-fix.patch
+spin_lock_irq-enable-interrupts-while-spinning-i386-implementation-fix-fix.patch
+x86-fix-dev_to_node-for-x86-and-x86_64.patch
+math-emu-setcc-avoid-gcc-extension.patch
+i386-adjustments-to-page-table-dump-during-oops.patch
+x86_64-re-add-a-newline-to-restore_context.patch
+mmconfig-cleanup.patch
+mmconfig-fix-unreachable_devices.patch
+pci-mmconfig-support-for-intel-915-bridges.patch
+seq_file-conversion-apm-on-i386.patch

x86/x86_64 things

+slab-cache-alloc-cleanups.patch
+mbind-restrict-nodes-to-the-currently-allowed-cpuset.patch

MM fixes

+uml-network-driver-locking-and-code-cleanup.patch
+uml-use-list_head-where-possible.patch
+uml-locking-commentary-in-the-random-driver.patch
+uml-mostly-const-a-structure.patch
+uml-chan_userh-formatting-fices.patch
+uml-console-locking-commentary-and-code-cleanup.patch
+uml-fix-previous-console-locking.patch
+uml-locking-comments-in-iomem-driver.patch
+uml-memc-and-physmemc-formatting-fixes.patch
+uml-initialize-a-list-head.patch
+uml-make-time-data-per-cpu.patch
+uml-delete-unused-file.patch
+uml-remove-unused-variable-and-function.patch
+uml-make-signal-handlers-static.patch
+uml-const-a-variable.patch
+uml-remove-code-controlled-by-non-existent-config-option.patch

UML updates

+char-mxser_new-upgrade-to-1915.patch

serial driver fix

+add-taint_user-and-ability-to-set-taint-flags-from-userspace-fix.patch
+add-taint_user-and-ability-to-set-taint-flags-from-userspace-fix-2.patch

Fix add-taint_user-and-ability-to-set-taint-flags-from-userspace.patch

+char-moxa-macros-cleanup.patch
+char-moxa-use-del_timer_sync.patch
+char-moxa-remove-moxa_pci_devinfo.patch
+char-moxa-variables-cleanup.patch
+char-moxa-remove-useless-vairables.patch
+char-moxa-pci_probing-prepare.patch
+char-moxa-pci-probing.patch

Moxa driver cleanups

+remove-unnecessary-memset0-calls-after-kzalloc-calls.patch
+kernel-doc-allow-a-little-whitespace.patch
+proc-remove-useless-and-buggy-nlink-settings.patch
+sysrq-showblockedtasks-is-sysrq-w.patch
+sysrq-alphabetize-command-keys-doc.patch
+kernel-doc-allow-more-whitespace.patch
+tty-improve-encode_baud_rate-logic.patch
+simplify-the-stacktrace-code.patch
+discuss-a-couple-common-errors-in-kernel-doc-usage.patch
+numerous-fixes-to-kernel-doc-info-in-source-files.patch
+common-compat_sys_sysinfo-v2.patch
+remove-a-couple-final-references-to-obsolete-verify_area.patch
+local_t-documentation.patch
+local_t-documentation-fix.patch
+ecryptfs-xattr-flags-and-mount-options.patch
+ecryptfs-generalize-metadata-read-write.patch
+ecryptfs-encrypted-passthrough.patch
+rtc-framework-driver-for-cmos-rtcs.patch
+make-bh_unwritten-a-first-class-bufferhead-flag-v2.patch
+make-xfs-use-bh_unwritten-and-bh_delay-correctly.patch
+docbook-add-edd-firmware-interfaces.patch
+kernel-doc-fix-some-odd-spacing-issues.patch
+spi-freescale-imx-spi-controller-driver.patch
+serial-support-for-new-board.patch
+make-hdlc_setup-static-again.patch
+more-ftape-removal.patch
+cleanup-linux-byteorder-swabbh.patch
+ext3-refuse-ro-to-rw-remount-of-fs-with-orphan.patch
+ext4-refuse-ro-to-rw-remount-of-fs-with-orphan.patch
+minix-v3-support.patch

Misc

+revert-x86_64-mm-ignore-long-smi-interrupts-in-clock-calibration.patch
+reapply-x86_64-mm-ignore-long-smi-interrupts-in-clock-calibration.patch

These are just for tree-maintenance convenience.

+flush_cpu_workqueue-dont-flush-an-empty-worklist.patch
+extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch
+call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed.patch
-fix-flush_workqueue-vs-cpu_dead-race.patch
+slab-use-cpu_lock_.patch
+workqueue-fix-freezeable-workqueues-implementation.patch
+workqueue-fix-flush_workqueue-vs-cpu_dead-race.patch
+workqueue-dont-clear-cwq-thread-until-it-exits.patch

Work on the workqueue code.

+include-linux-nfsd-consth-remove-nfs_super_magic.patch

nfsd cleanup

+fsaio-add-a-wait-queue-arg-to-the-wait_bit-action-routine.patch
+fsaio-rename-__lock_page-to-lock_page_blocking.patch
+fsaio-interfaces-to-initialize-and-to-test-a-wait-bit-key.patch
+fsaio-add-a-default-io-wait-bit-field-in-task-struct.patch
+fsaio-enable-wait-bit-based-filtered-wakeups-to-work-for-aio.patch
+fsaio-enable-wait-bit-based-filtered-wakeups-to-work-for-aio-fix.patch
+fsaio-enable-asynchronous-wait-page-and-lock-page.patch
+fsaio-filesystem-aio-read.patch
+fsaio-aio-o_sync-filesystem-write.patch

async I/O for regularly-opened files.

+user-namespace-add-the-framework-fixes.patch
+user-ns-add-user_namespace-ptr-to-vfsmount-fixes.patch
+user-ns-implement-shared-mounts-fixes.patch

Fix the user_ns patches in -mm.

+rename-attach_pid-to-find_attach_pid.patch
+attach_pid-with-struct-pid-parameter.patch

Fiddle with function names and calling conventions.

+readahead-sysctl-parameters-set-readahead_hit_rate=1.patch
+readahead-min-max-sizes-remove-get_readahead_bounds.patch
+readahead-context-based-method-update-ra_min.patch
+readahead-context-based-method-remove-readahead_ratio.patch
+readahead-call-scheme-remove-get_readahead_bounds.patch
+readahead-nfsd-case-remove-ra_min.patch

Update the adaptive readahead patches in -mm.

+reiser4-sb_sync_inodes-fix.patch

Fix reiser4-sb_sync_inodes.patch

+atiixpc-remove-unused-code.patch
+atiixpc-sb600-ide-only-has-one-channel.patch
+atiixpc-add-cable-detection-support-for-ati-ide.patch
+ide-generic-jmicron-has-its-own-drivers-now.patch

IDE fixes

+remove-bogus-con_is_present-prototypes.patch
+cyber2010-framebuffer-on-arm-netwinder-fix.patch
+cyber2010-framebuffer-on-arm-netwinder-fix-tidy.patch

fbdev updates



All 1035 patches:

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/patch-list



2007-01-12 10:22:53

by Frederik Deweerdt

[permalink] [raw]
Subject: Early ACPI lockup (was Re: 2.6.20-rc4-mm1)

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
>
Hi,

The git-acpi.patch replaces earlier "if(!handler) return -EINVAL" by
"BUG_ON(!handler)". This locks my machine early at boot with a message
along the lines of (It's hand copied):
Int 6: cr2: 00000000 eip: c0570e05 flags: 00010046 cs: 60
stack: c054ffac c011db2b c04936d0 c054ff68 c054ffc0 c054fff4 c057da2c

Reverting the change as follows, allows booting:
Any ideas to debug this further?

Regards,
Frederik

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index db0c5f6..fba018c 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -414,7 +414,9 @@ int __init acpi_table_parse(enum acpi_ta
unsigned int index;
unsigned int count = 0;

- BUG_ON(!handler);
+ if (!handler)
+ return -EINVAL;
+ /*BUG_ON(!handler);*/

for (i = 0; i < sdt_count; i++) {
if (sdt_entry[i].id != id)

2007-01-12 10:25:34

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

Hello,

Doesn't build on my laptop.

drivers/mmc/mmc.c: In function 'mmc_lock_unlock':
drivers/mmc/mmc.c:1527: error: dereferencing pointer to incomplete type
drivers/mmc/mmc.c:1527: warning: type defaults to 'int' in declaration of '_________p1'
drivers/mmc/mmc.c:1527: error: dereferencing pointer to incomplete type
drivers/mmc/mmc.c:1527: warning: assignment makes pointer from integer without a cast
make[2]: *** [drivers/mmc/mmc.o] Error 1
make[1]: *** [drivers/mmc] Error 2
make: *** [drivers] Error 2

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping : 9
cpu MHz : 2392.320
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips : 4787.56
clflush size : 64

Gnu C 4.1.1
Gnu make 3.81
binutils 2.17
util-linux 2.12r
mount 2.12r
module-init-tools 3.2.2
e2fsprogs 1.39
pcmciautils 014
pcmcia-cs 3.2.9
nfs-utils 1.0.6
Linux C Library > libc.2.4
Dynamic linker (ldd) 2.4
Procps 3.2.6
Net-tools 1.60
Kbd 1.12
Sh-utils 6.4
udev 103
wireless-tools 29
Modules Loaded orinoco_cs orinoco hermes pcmcia firmware_class 8139too yenta_socket rsrc_nonstatic pcmcia_core

--
Regards,

Mariusz Kozlowski


Attachments:
(No filename) (1.71 kB)
.config (38.51 kB)
Download all attachments

2007-01-12 11:16:46

by Sander

[permalink] [raw]
Subject: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

Andrew Morton wrote (ao):
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/

> x86/x86_64 things

> +mbind-restrict-nodes-to-the-currently-allowed-cpuset.patch

I had to revert this patch because of:

===
mm/mempolicy.c: In function 'sys_mbind':
mm/mempolicy.c:885: error: 'struct task_struct' has no member named 'mems_allowed'
make[1]: *** [mm/mempolicy.o] Error 1
make: *** [mm] Error 2
===

===
http://lkml.org/lkml/2007/1/9/375

Date Tue, 9 Jan 2007 20:15:07 -0800 (PST)
From Christoph Lameter <>
Subject mbind: Restrict nodes to the currently allowed cpuset
Digg This

Currently one can specify an arbitrary node mask to mbind that includes nodes
not allowed. If that is done with an interleave policy then we will go around
all the nodes. Those outside of the currently allowed cpuset will be redirected
to the border nodes. Interleave will then create imbalances at the borders
of the cpuset.

This patch restricts the nodes to the currently allowed cpuset.

The RFC for this patch was discussed at
http://marc.theaimsgroup.com/?t=116793842100004&r=1&w=2
Signed-off-by: Christoph Lameter <[email protected]>

Index: linux-2.6.19-mm1/mm/mempolicy.c
===================================================================
--- linux-2.6.19-mm1.orig/mm/mempolicy.c 2006-12-11 19:00:38.224610647 -0800
+++ linux-2.6.19-mm1/mm/mempolicy.c 2006-12-13 11:13:10.175294067 -0800
@@ -882,6 +882,7 @@ asmlinkage long sys_mbind(unsigned long
int err;

err = get_nodes(&nodes, nmask, maxnode);
+ nodes_and(nodes, nodes, current->mems_allowed);
if (err)
return err;
return do_mbind(start, len, mode, &nodes, flags);
===

With kind regards, Sander

--
Humilis IT Services and Solutions
http://www.humilis.net

2007-01-12 11:28:28

by Paul Jackson

[permalink] [raw]
Subject: Re: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

Sander wrote:
> > +mbind-restrict-nodes-to-the-currently-allowed-cpuset.patch
>
> I had to revert this patch because of:
>
> ===
> mm/mempolicy.c: In function 'sys_mbind':
> mm/mempolicy.c:885: error: 'struct task_struct' has no member named 'mems_allowed'

You're right - this patch won't build if CONFIG_NUMA is on, and
CONFIG_CPUSETS off.

The line added in the patch:

+ nodes_and(nodes, nodes, current->mems_allowed);

needs to be macro'ized, using another cpuset.h routine, to a no-op, in
the case that CONFIG_CPUSET is disabled.

I'll leave the honors to Christoph (added to CC), since this is his patch.

--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.925.600.0401

2007-01-12 11:57:38

by Tilman Schmidt

[permalink] [raw]
Subject: spurious sparse warnings from linux/aio.h (was: 2.6.20-rc4-mm1)

Andrew Morton schrieb:
> - Merged the "filesystem AIO patches".

This construct:

> --- linux-2.6.20-rc4/include/linux/aio.h 2007-01-06 23:34:08.000000000 -0800
> +++ devel/include/linux/aio.h 2007-01-11 21:36:16.000000000 -0800

> @@ -237,7 +243,8 @@ do { \
> } \
> } while (0)
>
> -#define io_wait_to_kiocb(wait) container_of(wait, struct kiocb, ki_wait)
> +#define io_wait_to_kiocb(io_wait) container_of(container_of(io_wait, \
> + struct wait_bit_queue, wait), struct kiocb, ki_wait)
>
> #include <linux/aio_abi.h>
>

causes a sparse warning:

> include/linux/sched.h:1313:29: warning: symbol '__mptr' shadows an earlier one
> include/linux/sched.h:1313:29: originally declared here

for every source file referencing <linux/sched.h>.
Could that be avoided please?

Thanks
Tilman

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (250.00 B)
OpenPGP digital signature

2007-01-12 13:20:16

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Fri, Jan 12, 2007 at 11:25:58AM +0100, Mariusz Kozlowski wrote:
> Hello,
>
> Doesn't build on my laptop.
>
> drivers/mmc/mmc.c: In function 'mmc_lock_unlock':
> drivers/mmc/mmc.c:1527: error: dereferencing pointer to incomplete type
> drivers/mmc/mmc.c:1527: warning: type defaults to 'int' in declaration of '_________p1'
> drivers/mmc/mmc.c:1527: error: dereferencing pointer to incomplete type
> drivers/mmc/mmc.c:1527: warning: assignment makes pointer from integer without a cast
> make[2]: *** [drivers/mmc/mmc.o] Error 1
> make[1]: *** [drivers/mmc] Error 2
> make: *** [drivers] Error 2
>
Hi,

That's because mmc_lock_unlock should depend on CONFIG_KEYS, it uses struct key.
Could you try the following patch (compile tested)?

Regards,
Frederik

Signed-off-by: Frederik Deweerdt <[email protected]>

diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 3956023..c1fe01d 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1503,6 +1503,8 @@ static void mmc_setup(struct mmc_host *h
mmc_process_ext_csds(host);
}

+#ifdef CONFIG_MMC_PASSWORDS
+
/**
* mmc_lock_unlock - send LOCK_UNLOCK command to a specific card.
* @card: card to which the LOCK_UNLOCK command should be sent
@@ -1617,6 +1619,8 @@ out:
return err;
}

+#endif /* CONFIG_MMC_PASSWORDS */
+
/**
* mmc_detect_change - process change of state on a MMC socket
* @host: host which changed state.

2007-01-12 13:28:57

by Suparna Bhattacharya

[permalink] [raw]
Subject: Re: spurious sparse warnings from linux/aio.h (was: 2.6.20-rc4-mm1)

On Fri, Jan 12, 2007 at 12:55:18PM +0100, Tilman Schmidt wrote:
> Andrew Morton schrieb:
> > - Merged the "filesystem AIO patches".
>
> This construct:
>
> > --- linux-2.6.20-rc4/include/linux/aio.h 2007-01-06 23:34:08.000000000 -0800
> > +++ devel/include/linux/aio.h 2007-01-11 21:36:16.000000000 -0800
>
> > @@ -237,7 +243,8 @@ do { \
> > } \
> > } while (0)
> >
> > -#define io_wait_to_kiocb(wait) container_of(wait, struct kiocb, ki_wait)
> > +#define io_wait_to_kiocb(io_wait) container_of(container_of(io_wait, \
> > + struct wait_bit_queue, wait), struct kiocb, ki_wait)
> >
> > #include <linux/aio_abi.h>
> >
>
> causes a sparse warning:
>
> > include/linux/sched.h:1313:29: warning: symbol '__mptr' shadows an earlier one
> > include/linux/sched.h:1313:29: originally declared here
>
> for every source file referencing <linux/sched.h>.
> Could that be avoided please?

So ... the nested container_of() is a problem ? I guess changing
io_wait_to_kiocb() to be an inline function instead of a macro could help ?

Regards
Suparna

>
> Thanks
> Tilman
>
> --
> Tilman Schmidt E-Mail: [email protected]
> Bonn, Germany
> Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
> Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)
>



--
Suparna Bhattacharya ([email protected])
Linux Technology Center
IBM Software Lab, India

2007-01-12 13:35:23

by Frederik Deweerdt

[permalink] [raw]
Subject: [-mm patch] remove tcp header from tcp_v4_check

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
>
Hi,

The tcphdr struct passed to tcp_v4_check is not used, the following
patch removes it from the parameter list.
(This adds the netfilter modifications missing in the patch I sent
for rc3-mm1)

Regards,
Frederik


Index: 2.6.20-rc4-mm1/include/net/tcp.h
===================================================================
--- 2.6.20-rc4-mm1.orig/include/net/tcp.h 2007-01-12 11:19:16.000000000 +0100
+++ 2.6.20-rc4-mm1/include/net/tcp.h 2007-01-12 11:21:43.000000000 +0100
@@ -802,9 +802,8 @@
/*
* Calculate(/check) TCP checksum
*/
-static inline __sum16 tcp_v4_check(struct tcphdr *th, int len,
- __be32 saddr, __be32 daddr,
- __wsum base)
+static inline __sum16 tcp_v4_check(int len, __be32 saddr,
+ __be32 daddr, __wsum base)
{
return csum_tcpudp_magic(saddr,daddr,len,IPPROTO_TCP,base);
}
Index: 2.6.20-rc4-mm1/net/ipv4/netfilter/ipt_REJECT.c
===================================================================
--- 2.6.20-rc4-mm1.orig/net/ipv4/netfilter/ipt_REJECT.c 2007-01-12 11:19:16.000000000 +0100
+++ 2.6.20-rc4-mm1/net/ipv4/netfilter/ipt_REJECT.c 2007-01-12 11:21:43.000000000 +0100
@@ -116,11 +116,11 @@

/* Adjust TCP checksum */
tcph->check = 0;
- tcph->check = tcp_v4_check(tcph, sizeof(struct tcphdr),
+ tcph->check = tcp_v4_check(sizeof(struct tcphdr),
nskb->nh.iph->saddr,
nskb->nh.iph->daddr,
csum_partial((char *)tcph,
- sizeof(struct tcphdr), 0));
+ sizeof(struct tcphdr), 0));

/* Set DF, id = 0 */
nskb->nh.iph->frag_off = htons(IP_DF);
Index: 2.6.20-rc4-mm1/net/ipv4/tcp_ipv4.c
===================================================================
--- 2.6.20-rc4-mm1.orig/net/ipv4/tcp_ipv4.c 2007-01-12 11:19:16.000000000 +0100
+++ 2.6.20-rc4-mm1/net/ipv4/tcp_ipv4.c 2007-01-12 11:21:43.000000000 +0100
@@ -502,11 +502,11 @@
struct tcphdr *th = skb->h.th;

if (skb->ip_summed == CHECKSUM_PARTIAL) {
- th->check = ~tcp_v4_check(th, len,
- inet->saddr, inet->daddr, 0);
+ th->check = ~tcp_v4_check(len, inet->saddr,
+ inet->daddr, 0);
skb->csum_offset = offsetof(struct tcphdr, check);
} else {
- th->check = tcp_v4_check(th, len, inet->saddr, inet->daddr,
+ th->check = tcp_v4_check(len, inet->saddr, inet->daddr,
csum_partial((char *)th,
th->doff << 2,
skb->csum));
@@ -525,7 +525,7 @@
th = skb->h.th;

th->check = 0;
- th->check = ~tcp_v4_check(th, skb->len, iph->saddr, iph->daddr, 0);
+ th->check = ~tcp_v4_check(skb->len, iph->saddr, iph->daddr, 0);
skb->csum_offset = offsetof(struct tcphdr, check);
skb->ip_summed = CHECKSUM_PARTIAL;
return 0;
@@ -747,7 +747,7 @@
if (skb) {
struct tcphdr *th = skb->h.th;

- th->check = tcp_v4_check(th, skb->len,
+ th->check = tcp_v4_check(skb->len,
ireq->loc_addr,
ireq->rmt_addr,
csum_partial((char *)th, skb->len,
@@ -1514,7 +1514,7 @@
static __sum16 tcp_v4_checksum_init(struct sk_buff *skb)
{
if (skb->ip_summed == CHECKSUM_COMPLETE) {
- if (!tcp_v4_check(skb->h.th, skb->len, skb->nh.iph->saddr,
+ if (!tcp_v4_check(skb->len, skb->nh.iph->saddr,
skb->nh.iph->daddr, skb->csum)) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
return 0;
Index: 2.6.20-rc4-mm1/net/ipv4/netfilter/ip_nat_helper.c
===================================================================
--- 2.6.20-rc4-mm1.orig/net/ipv4/netfilter/ip_nat_helper.c 2007-01-12 11:19:56.000000000 +0100
+++ 2.6.20-rc4-mm1/net/ipv4/netfilter/ip_nat_helper.c 2007-01-12 11:21:43.000000000 +0100
@@ -183,7 +183,7 @@
datalen = (*pskb)->len - iph->ihl*4;
if ((*pskb)->ip_summed != CHECKSUM_PARTIAL) {
tcph->check = 0;
- tcph->check = tcp_v4_check(tcph, datalen,
+ tcph->check = tcp_v4_check(datalen,
iph->saddr, iph->daddr,
csum_partial((char *)tcph,
datalen, 0));
Index: 2.6.20-rc4-mm1/net/ipv4/netfilter/nf_nat_helper.c
===================================================================
--- 2.6.20-rc4-mm1.orig/net/ipv4/netfilter/nf_nat_helper.c 2007-01-12 11:20:50.000000000 +0100
+++ 2.6.20-rc4-mm1/net/ipv4/netfilter/nf_nat_helper.c 2007-01-12 11:21:43.000000000 +0100
@@ -176,7 +176,7 @@
datalen = (*pskb)->len - iph->ihl*4;
if ((*pskb)->ip_summed != CHECKSUM_PARTIAL) {
tcph->check = 0;
- tcph->check = tcp_v4_check(tcph, datalen,
+ tcph->check = tcp_v4_check(datalen,
iph->saddr, iph->daddr,
csum_partial((char *)tcph,
datalen, 0));

2007-01-12 13:57:27

by Frederik Deweerdt

[permalink] [raw]
Subject: [-mm patch] remove tcp header from tcp_v4_check (take #2)

On Fri, Jan 12, 2007 at 01:33:09PM +0000, Frederik Deweerdt wrote:
> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
> >
Hi,

Sorry for the resend, I forgot the Signed-off-by line, and noticed a
whitespace breakage in ipt_REJECT.
The tcphdr struct passed to tcp_v4_check is not used, the following
patch removes it from the parameter list.
This adds the netfilter modifications missing in the patch I sent
for rc3-mm1.

Regards,
Frederik

Signed-off-by: Frederik Deweerdt <[email protected]>


Index: 2.6.20-rc4-mm1-tcp/include/net/tcp.h
===================================================================
--- 2.6.20-rc4-mm1-tcp.orig/include/net/tcp.h 2007-01-12 11:55:05.000000000 +0100
+++ 2.6.20-rc4-mm1-tcp/include/net/tcp.h 2007-01-12 11:56:47.000000000 +0100
@@ -802,9 +802,8 @@
/*
* Calculate(/check) TCP checksum
*/
-static inline __sum16 tcp_v4_check(struct tcphdr *th, int len,
- __be32 saddr, __be32 daddr,
- __wsum base)
+static inline __sum16 tcp_v4_check(int len, __be32 saddr,
+ __be32 daddr, __wsum base)
{
return csum_tcpudp_magic(saddr,daddr,len,IPPROTO_TCP,base);
}
Index: 2.6.20-rc4-mm1-tcp/net/ipv4/netfilter/ipt_REJECT.c
===================================================================
--- 2.6.20-rc4-mm1-tcp.orig/net/ipv4/netfilter/ipt_REJECT.c 2007-01-12 11:55:05.000000000 +0100
+++ 2.6.20-rc4-mm1-tcp/net/ipv4/netfilter/ipt_REJECT.c 2007-01-12 14:47:07.000000000 +0100
@@ -116,7 +116,7 @@

/* Adjust TCP checksum */
tcph->check = 0;
- tcph->check = tcp_v4_check(tcph, sizeof(struct tcphdr),
+ tcph->check = tcp_v4_check(sizeof(struct tcphdr),
nskb->nh.iph->saddr,
nskb->nh.iph->daddr,
csum_partial((char *)tcph,
Index: 2.6.20-rc4-mm1-tcp/net/ipv4/tcp_ipv4.c
===================================================================
--- 2.6.20-rc4-mm1-tcp.orig/net/ipv4/tcp_ipv4.c 2007-01-12 11:55:19.000000000 +0100
+++ 2.6.20-rc4-mm1-tcp/net/ipv4/tcp_ipv4.c 2007-01-12 11:56:47.000000000 +0100
@@ -502,11 +502,11 @@
struct tcphdr *th = skb->h.th;

if (skb->ip_summed == CHECKSUM_PARTIAL) {
- th->check = ~tcp_v4_check(th, len,
- inet->saddr, inet->daddr, 0);
+ th->check = ~tcp_v4_check(len, inet->saddr,
+ inet->daddr, 0);
skb->csum_offset = offsetof(struct tcphdr, check);
} else {
- th->check = tcp_v4_check(th, len, inet->saddr, inet->daddr,
+ th->check = tcp_v4_check(len, inet->saddr, inet->daddr,
csum_partial((char *)th,
th->doff << 2,
skb->csum));
@@ -525,7 +525,7 @@
th = skb->h.th;

th->check = 0;
- th->check = ~tcp_v4_check(th, skb->len, iph->saddr, iph->daddr, 0);
+ th->check = ~tcp_v4_check(skb->len, iph->saddr, iph->daddr, 0);
skb->csum_offset = offsetof(struct tcphdr, check);
skb->ip_summed = CHECKSUM_PARTIAL;
return 0;
@@ -747,7 +747,7 @@
if (skb) {
struct tcphdr *th = skb->h.th;

- th->check = tcp_v4_check(th, skb->len,
+ th->check = tcp_v4_check(skb->len,
ireq->loc_addr,
ireq->rmt_addr,
csum_partial((char *)th, skb->len,
@@ -1514,7 +1514,7 @@
static __sum16 tcp_v4_checksum_init(struct sk_buff *skb)
{
if (skb->ip_summed == CHECKSUM_COMPLETE) {
- if (!tcp_v4_check(skb->h.th, skb->len, skb->nh.iph->saddr,
+ if (!tcp_v4_check(skb->len, skb->nh.iph->saddr,
skb->nh.iph->daddr, skb->csum)) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
return 0;
Index: 2.6.20-rc4-mm1-tcp/net/ipv4/netfilter/ip_nat_helper.c
===================================================================
--- 2.6.20-rc4-mm1-tcp.orig/net/ipv4/netfilter/ip_nat_helper.c 2007-01-12 11:55:05.000000000 +0100
+++ 2.6.20-rc4-mm1-tcp/net/ipv4/netfilter/ip_nat_helper.c 2007-01-12 11:56:47.000000000 +0100
@@ -183,7 +183,7 @@
datalen = (*pskb)->len - iph->ihl*4;
if ((*pskb)->ip_summed != CHECKSUM_PARTIAL) {
tcph->check = 0;
- tcph->check = tcp_v4_check(tcph, datalen,
+ tcph->check = tcp_v4_check(datalen,
iph->saddr, iph->daddr,
csum_partial((char *)tcph,
datalen, 0));
Index: 2.6.20-rc4-mm1-tcp/net/ipv4/netfilter/nf_nat_helper.c
===================================================================
--- 2.6.20-rc4-mm1-tcp.orig/net/ipv4/netfilter/nf_nat_helper.c 2007-01-12 11:55:05.000000000 +0100
+++ 2.6.20-rc4-mm1-tcp/net/ipv4/netfilter/nf_nat_helper.c 2007-01-12 11:56:47.000000000 +0100
@@ -176,7 +176,7 @@
datalen = (*pskb)->len - iph->ihl*4;
if ((*pskb)->ip_summed != CHECKSUM_PARTIAL) {
tcph->check = 0;
- tcph->check = tcp_v4_check(tcph, datalen,
+ tcph->check = tcp_v4_check(datalen,
iph->saddr, iph->daddr,
csum_partial((char *)tcph,
datalen, 0));

2007-01-12 15:12:58

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

Hello,

> That's because mmc_lock_unlock should depend on CONFIG_KEYS, it uses struct key.
> Could you try the following patch (compile tested)?

Thanks. Compiles ok but now I run into another problem and the laptop doesn't boot.
The last thing I see is grub. So no way to test it now. Time to dig some more ;-)

--
Regards,

Mariusz Kozlowski

2007-01-12 15:16:07

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On 12/01/07, Mariusz Kozlowski <[email protected]> wrote:
> Hello,
>
> > That's because mmc_lock_unlock should depend on CONFIG_KEYS, it uses struct key.
> > Could you try the following patch (compile tested)?
>
> Thanks. Compiles ok but now I run into another problem and the laptop doesn't boot.
> The last thing I see is grub. So no way to test it now. Time to dig some more ;-)

This may help
http://lkml.org/lkml/2007/1/12/45

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

2007-01-12 16:11:36

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

Hello,

> This may help
> http://lkml.org/lkml/2007/1/12/45

True. Now it boots fine. Tanks for the tip.

Dzi?ki Micha?.

--
Regards,

Mariusz Kozlowski

2007-01-12 17:46:51

by Tilman Schmidt

[permalink] [raw]
Subject: Re: spurious sparse warnings from linux/aio.h

Suparna Bhattacharya schrieb:
> On Fri, Jan 12, 2007 at 12:55:18PM +0100, Tilman Schmidt wrote:
[...]
>> causes a sparse warning:
>>
>> > include/linux/sched.h:1313:29: warning: symbol '__mptr' shadows an earlier one
>> > include/linux/sched.h:1313:29: originally declared here
>>
>> for every source file referencing <linux/sched.h>.
>> Could that be avoided please?
>
> So ... the nested container_of() is a problem ? I guess changing
> io_wait_to_kiocb() to be an inline function instead of a macro could help ?

So it would seem. The following experimental patch indeed makes
the warnings disappear:

--- linux-2.6.20-rc4-mm1-orig/include/linux/aio.h 2007-01-12 10:33:12.000000000 +0100
+++ linux-2.6.20-rc4-mm1-work/include/linux/aio.h 2007-01-12 18:31:16.000000000 +0100
@@ -243,8 +243,12 @@

-#define io_wait_to_kiocb(io_wait) container_of(container_of(io_wait, \
- struct wait_bit_queue, wait), struct kiocb, ki_wait)
+static inline struct kiocb *io_wait_to_kiocb(wait_queue_t *io_wait)
+{
+ struct wait_bit_queue *wbqptr =
+ container_of(io_wait, struct wait_bit_queue, wait);
+ return container_of(wbqptr, struct kiocb, ki_wait);
+}

#include <linux/aio_abi.h>


Compile checked only - please review.

Thanks
Tilman

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (250.00 B)
OpenPGP digital signature

2007-01-12 19:25:15

by Christoph Lameter

[permalink] [raw]
Subject: Re: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

On Fri, 12 Jan 2007, Paul Jackson wrote:

> I'll leave the honors to Christoph (added to CC), since this is his patch.

Ok. Here it is

mems_allowed only exists if CONFIG_CPUSETS is set. So put an #ifdef around
it. Also move the masking of the nodes behind the error check (looks
better) and add a comment.

Signed-off-by: Christoph Lameter <[email protected]>

Index: linux-2.6.20-rc4-mm1/mm/mempolicy.c
===================================================================
--- linux-2.6.20-rc4-mm1.orig/mm/mempolicy.c 2007-01-12 13:20:17.000000000 -0600
+++ linux-2.6.20-rc4-mm1/mm/mempolicy.c 2007-01-12 13:21:30.220968608 -0600
@@ -882,9 +882,12 @@ asmlinkage long sys_mbind(unsigned long
int err;

err = get_nodes(&nodes, nmask, maxnode);
- nodes_and(nodes, nodes, current->mems_allowed);
if (err)
return err;
+#ifdef CONFIG_CPUSETS
+ /* Restrict the nodes to the allowed nodes in the cpuset */
+ nodes_and(nodes, nodes, current->mems_allowed);
+#endif
return do_mbind(start, len, mode, &nodes, flags);
}

2007-01-12 21:20:25

by Paul Jackson

[permalink] [raw]
Subject: Re: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

Christoph wrote:
> +++ linux-2.6.20-rc4-mm1/mm/mempolicy.c 2007-01-12 13:21:30.220968608 -0600
> ...
> +#ifdef CONFIG_CPUSETS

Argh - minor detail, but this is the first (outside of fs/proc/base.c)
"#ifdef CONFIG_CPUSETS" in a kernel *.c file. I prefer to avoid that.

How about doing this as I suggested in my previous message, like the
other cpuset hooks, with a cpuset_* macro in include/linux/cpuset.h?


This macro would either be the 'nodes_and(...)' code if CPUSETS are
configured, else a no-op. Say something like ...

cpuset_restrict_to_current_mems_allowed(nodes);

--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.925.600.0401

2007-01-12 21:28:10

by Christoph Lameter

[permalink] [raw]
Subject: Re: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

On Fri, 12 Jan 2007, Paul Jackson wrote:

> Argh - minor detail, but this is the first (outside of fs/proc/base.c)
> "#ifdef CONFIG_CPUSETS" in a kernel *.c file. I prefer to avoid that.

Sorry but there will be number of those once we get the dirty writeback
for cpusets fixed. Did you review that patchset (only internally mailed
so far).

I do not think it makes much sense to do these macros for the single
occurrence here and otherwise. Having the #ifdef here is much clearer.
Also the #ifdef is in already NUMA specific code.

2007-01-12 21:58:59

by Paul Jackson

[permalink] [raw]
Subject: Re: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

> Sorry but there will be number of those once we get the dirty writeback
> for cpusets fixed. Did you review that patchset (only internally mailed
> so far).

I haven't reviewed it - sorry. Too much stuff; too little time.
If only I had Alan's bots, which are apparently on loan now to Andrew.

> I do not think it makes much sense to do these macros for the single
> occurrence here and otherwise.

I disagree. If just one thing, like cpusets, does the ifdef's, it might
be easier to read. But if several things do them in nearby code, that
code gets ugly and fries my limited brain circuits.

Even just one of them looks ugly to me -- changing what could be a
single indented line "cpuset_...(..);" line into three lines, two of
them violating the indentation.

It might look clearer to someone who is focused on that particular
change, but it adds unnecessary noise for the other 90% of the readers
of that code who are not concerned with cpusets at that point in time.

--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.925.600.0401

2007-01-12 22:00:31

by Christoph Lameter

[permalink] [raw]
Subject: Re: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

On Fri, 12 Jan 2007, Paul Jackson wrote:

> It might look clearer to someone who is focused on that particular
> change, but it adds unnecessary noise for the other 90% of the readers
> of that code who are not concerned with cpusets at that point in time.

This is in NUMA specific code. And they should be concerned about cpusets
since cpusets may affect the node masks they can set. If this is hidden in
a macro then it may be overlooked.

2007-01-12 22:10:24

by Paul Jackson

[permalink] [raw]
Subject: Re: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

Christoph wrote:
> If this is hidden in a macro then it may be overlooked.

Sooner or later, every line of code is important.

Shouting any one of them in #ifdef brackets creates
a noisier environment, increasing the chance of missing
another.

And besides ... the other umpteen cpuset hooks all use the
cpuset_*() style macros (except for fs/proc/base.c, which
has its own style ...).

Consistency in style is important in these matters.

--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.925.600.0401

2007-01-12 22:12:03

by Andrew Morton

[permalink] [raw]
Subject: Re: 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1)

On Fri, 12 Jan 2007 14:00:16 -0800 (PST)
Christoph Lameter <[email protected]> wrote:

> On Fri, 12 Jan 2007, Paul Jackson wrote:
>
> > It might look clearer to someone who is focused on that particular
> > change, but it adds unnecessary noise for the other 90% of the readers
> > of that code who are not concerned with cpusets at that point in time.
>
> This is in NUMA specific code. And they should be concerned about cpusets
> since cpusets may affect the node masks they can set. If this is hidden in
> a macro then it may be overlooked.

bah. No ifdefs!

2007-01-12 22:54:45

by Len Brown

[permalink] [raw]
Subject: Re: Early ACPI lockup (was Re: 2.6.20-rc4-mm1)

On Friday 12 January 2007 05:20, Frederik Deweerdt wrote:
> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
> >
> Hi,
>
> The git-acpi.patch replaces earlier "if(!handler) return -EINVAL" by
> "BUG_ON(!handler)". This locks my machine early at boot with a message
> along the lines of (It's hand copied):
> Int 6: cr2: 00000000 eip: c0570e05 flags: 00010046 cs: 60
> stack: c054ffac c011db2b c04936d0 c054ff68 c054ffc0 c054fff4 c057da2c
>
> Reverting the change as follows, allows booting:
> Any ideas to debug this further?


> diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
> index db0c5f6..fba018c 100644
> --- a/drivers/acpi/tables.c
> +++ b/drivers/acpi/tables.c
> @@ -414,7 +414,9 @@ int __init acpi_table_parse(enum acpi_ta
> unsigned int index;
> unsigned int count = 0;
>
> - BUG_ON(!handler);
> + if (!handler)
> + return -EINVAL;
> + /*BUG_ON(!handler);*/
>
> for (i = 0; i < sdt_count; i++) {
> if (sdt_entry[i].id != id)

What do you see if on failure you also print out the params, like below?

thanks,
-Len

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 3fce3db..e2d08a5 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -415,7 +415,12 @@ int __init acpi_table_parse(enum acpi_table_id id, acpi_table_handler handler)
unsigned int index = 0;
unsigned int count = 0;

- BUG_ON(!handler);
+ if (!handler) {
+ printk(KERN_WARNING PREFIX
+ "acpi_table_parse(%d, %p) %s NULL handler!\n",
+ id, handler, acpi_table_signatures[id]);
+ return -EINVAL;
+ }

for (i = 0; i < sdt_count; i++) {
if (sdt_entry[i].id != id)


2007-01-12 23:13:21

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: Early ACPI lockup (was Re: 2.6.20-rc4-mm1)

On Fri, Jan 12, 2007 at 05:53:08PM -0500, Len Brown wrote:
> On Friday 12 January 2007 05:20, Frederik Deweerdt wrote:
> > On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
> > >
> > Hi,
> >
> > The git-acpi.patch replaces earlier "if(!handler) return -EINVAL" by
> > "BUG_ON(!handler)". This locks my machine early at boot with a message
> > along the lines of (It's hand copied):
> > Int 6: cr2: 00000000 eip: c0570e05 flags: 00010046 cs: 60
> > stack: c054ffac c011db2b c04936d0 c054ff68 c054ffc0 c054fff4 c057da2c
> >
> > Reverting the change as follows, allows booting:
> > Any ideas to debug this further?
>
>
> > diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
> > index db0c5f6..fba018c 100644
> > --- a/drivers/acpi/tables.c
> > +++ b/drivers/acpi/tables.c
> > @@ -414,7 +414,9 @@ int __init acpi_table_parse(enum acpi_ta
> > unsigned int index;
> > unsigned int count = 0;
> >
> > - BUG_ON(!handler);
> > + if (!handler)
> > + return -EINVAL;
> > + /*BUG_ON(!handler);*/
> >
> > for (i = 0; i < sdt_count; i++) {
> > if (sdt_entry[i].id != id)
>
> What do you see if on failure you also print out the params, like below?
>
I'm sorry, I might not be able to try it until monday. Michal reported
a similar problem though, adding him to CC list.

Regards,
Frederik

> thanks,
> -Len
>
> diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
> index 3fce3db..e2d08a5 100644
> --- a/drivers/acpi/tables.c
> +++ b/drivers/acpi/tables.c
> @@ -415,7 +415,12 @@ int __init acpi_table_parse(enum acpi_table_id id, acpi_table_handler handler)
> unsigned int index = 0;
> unsigned int count = 0;
>
> - BUG_ON(!handler);
> + if (!handler) {
> + printk(KERN_WARNING PREFIX
> + "acpi_table_parse(%d, %p) %s NULL handler!\n",
> + id, handler, acpi_table_signatures[id]);
> + return -EINVAL;
> + }
>
> for (i = 0; i < sdt_count; i++) {
> if (sdt_entry[i].id != id)
>
>
>

2007-01-12 23:36:19

by Jiri Slaby

[permalink] [raw]
Subject: Re: Early ACPI lockup (was Re: 2.6.20-rc4-mm1)

Frederik Deweerdt wrote:
> On Fri, Jan 12, 2007 at 05:53:08PM -0500, Len Brown wrote:
>> On Friday 12 January 2007 05:20, Frederik Deweerdt wrote:
>>> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
>>>>
>>> Hi,
>>>
>>> The git-acpi.patch replaces earlier "if(!handler) return -EINVAL" by
>>> "BUG_ON(!handler)". This locks my machine early at boot with a message
>>> along the lines of (It's hand copied):
>>> Int 6: cr2: 00000000 eip: c0570e05 flags: 00010046 cs: 60
>>> stack: c054ffac c011db2b c04936d0 c054ff68 c054ffc0 c054fff4 c057da2c
>>>
>>> Reverting the change as follows, allows booting:
>>> Any ideas to debug this further?
>>
>>> diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
>>> index db0c5f6..fba018c 100644
>>> --- a/drivers/acpi/tables.c
>>> +++ b/drivers/acpi/tables.c
>>> @@ -414,7 +414,9 @@ int __init acpi_table_parse(enum acpi_ta
>>> unsigned int index;
>>> unsigned int count = 0;
>>>
>>> - BUG_ON(!handler);
>>> + if (!handler)
>>> + return -EINVAL;
>>> + /*BUG_ON(!handler);*/
>>>
>>> for (i = 0; i < sdt_count; i++) {
>>> if (sdt_entry[i].id != id)
>> What do you see if on failure you also print out the params, like below?

I get this:

ACPI: RSDP (v000 GBT ) @ 0x000f6e80
ACPI: RSDT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3000
ACPI: FADT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3040
ACPI: MADT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff7100
ACPI: DSDT (v001 GBT AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000
ACPI: PM-Timer IO Port: 0x1008
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 15:2 APIC version 20
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1 15:2 APIC version 20
ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode: Flat. Using 1 I/O APICs
ACPI: acpi_table_parse(17, 00000000) HPET NULL handler!
Using ACPI (MADT) for SMP configuration information

reagrds,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-01-13 00:08:59

by Michal Piotrowski

[permalink] [raw]
Subject: Re: Early ACPI lockup (was Re: 2.6.20-rc4-mm1)

Jiri Slaby napisał(a):
> Frederik Deweerdt wrote:
>> On Fri, Jan 12, 2007 at 05:53:08PM -0500, Len Brown wrote:
>>> On Friday 12 January 2007 05:20, Frederik Deweerdt wrote:
>>>> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
>>>>>
>>>> Hi,
>>>>
>>>> The git-acpi.patch replaces earlier "if(!handler) return -EINVAL" by
>>>> "BUG_ON(!handler)". This locks my machine early at boot with a message
>>>> along the lines of (It's hand copied):
>>>> Int 6: cr2: 00000000 eip: c0570e05 flags: 00010046 cs: 60
>>>> stack: c054ffac c011db2b c04936d0 c054ff68 c054ffc0 c054fff4 c057da2c
>>>>
>>>> Reverting the change as follows, allows booting:
>>>> Any ideas to debug this further?
>>>> diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
>>>> index db0c5f6..fba018c 100644
>>>> --- a/drivers/acpi/tables.c
>>>> +++ b/drivers/acpi/tables.c
>>>> @@ -414,7 +414,9 @@ int __init acpi_table_parse(enum acpi_ta
>>>> unsigned int index;
>>>> unsigned int count = 0;
>>>>
>>>> - BUG_ON(!handler);
>>>> + if (!handler)
>>>> + return -EINVAL;
>>>> + /*BUG_ON(!handler);*/
>>>>
>>>> for (i = 0; i < sdt_count; i++) {
>>>> if (sdt_entry[i].id != id)
>>> What do you see if on failure you also print out the params, like below?
>
> I get this:
>
> ACPI: RSDP (v000 GBT ) @ 0x000f6e80
> ACPI: RSDT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3000
> ACPI: FADT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3040
> ACPI: MADT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff7100
> ACPI: DSDT (v001 GBT AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000
> ACPI: PM-Timer IO Port: 0x1008
> ACPI: Local APIC address 0xfee00000
> ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
> Processor #0 15:2 APIC version 20
> ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
> Processor #1 15:2 APIC version 20
> ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
> ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
> ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
> IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
> ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
> ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
> ACPI: IRQ0 used by override.
> ACPI: IRQ2 used by override.
> ACPI: IRQ9 used by override.
> Enabling APIC mode: Flat. Using 1 I/O APICs
> ACPI: acpi_table_parse(17, 00000000) HPET NULL handler!
> Using ACPI (MADT) for SMP configuration information
>

ACPI: RSDP (v000 ACPIAM ) @ 0x000f9e30
ACPI: RSDT (v001 A M I OEMRSDT 0x10000414 MSFT 0x00000097) @ 0x7ff30000
ACPI: FADT (v002 A M I OEMFACP 0x10000414 MSFT 0x00000097) @ 0x7ff30200
ACPI: MADT (v001 A M I OEMAPIC 0x10000414 MSFT 0x00000097) @ 0x7ff30390
ACPI: OEMB (v001 A M I OEMBIOS 0x10000414 MSFT 0x00000097) @ 0x7ff40040
ACPI: DSDT (v001 P4P81 P4P81104 0x00000104 INTL 0x02002026) @ 0x00000000
ACPI: PM-Timer IO Port: 0x808
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:2 APIC version 20
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
Processor #1 15:2 APIC version 20
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode: Flat. Using 1 I/O APICs
ACPI: acpi_table_parse(17, 00000000) HPET NULL handler!
Using ACPI (MADT) for SMP configuration information

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

2007-01-13 00:42:44

by Jiri Slaby

[permalink] [raw]
Subject: Re: Early ACPI lockup (was Re: 2.6.20-rc4-mm1)

Jiri Slaby wrote:
>> On Fri, Jan 12, 2007 at 05:53:08PM -0500, Len Brown wrote:
>>> What do you see if on failure you also print out the params, like below?
[...]
> ACPI: acpi_table_parse(17, 00000000) HPET NULL handler!

After re-enabling HPET, it disappeared.

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-01-13 00:47:21

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: Early ACPI lockup (was Re: 2.6.20-rc4-mm1)

On Sat, Jan 13, 2007 at 01:08:46AM +0100, Michal Piotrowski wrote:
> Jiri Slaby napisał(a):
> > Frederik Deweerdt wrote:
> >> On Fri, Jan 12, 2007 at 05:53:08PM -0500, Len Brown wrote:
> >>> On Friday 12 January 2007 05:20, Frederik Deweerdt wrote:
> >>>> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> >>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
> >>>>>
> >>>> Hi,
> >>>>
> >>>> The git-acpi.patch replaces earlier "if(!handler) return -EINVAL" by
> >>>> "BUG_ON(!handler)". This locks my machine early at boot with a message
> >>>> along the lines of (It's hand copied):
> >>>> Int 6: cr2: 00000000 eip: c0570e05 flags: 00010046 cs: 60
> >>>> stack: c054ffac c011db2b c04936d0 c054ff68 c054ffc0 c054fff4 c057da2c
> >>>>
> >>>> Reverting the change as follows, allows booting:
> >>>> Any ideas to debug this further?
> >>>> diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
> >>>> index db0c5f6..fba018c 100644
> >>>> --- a/drivers/acpi/tables.c
> >>>> +++ b/drivers/acpi/tables.c
> >>>> @@ -414,7 +414,9 @@ int __init acpi_table_parse(enum acpi_ta
> >>>> unsigned int index;
> >>>> unsigned int count = 0;
> >>>>
> >>>> - BUG_ON(!handler);
> >>>> + if (!handler)
> >>>> + return -EINVAL;
> >>>> + /*BUG_ON(!handler);*/
> >>>>
> >>>> for (i = 0; i < sdt_count; i++) {
> >>>> if (sdt_entry[i].id != id)
> >>> What do you see if on failure you also print out the params, like below?
> >
> > I get this:
> >
> > ACPI: RSDP (v000 GBT ) @ 0x000f6e80
> > ACPI: RSDT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3000
> > ACPI: FADT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3040
> > ACPI: MADT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff7100
> > ACPI: DSDT (v001 GBT AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000
> > ACPI: PM-Timer IO Port: 0x1008
> > ACPI: Local APIC address 0xfee00000
> > ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
> > Processor #0 15:2 APIC version 20
> > ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
> > Processor #1 15:2 APIC version 20
> > ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
> > ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
> > ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
> > IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
> > ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
> > ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
> > ACPI: IRQ0 used by override.
> > ACPI: IRQ2 used by override.
> > ACPI: IRQ9 used by override.
> > Enabling APIC mode: Flat. Using 1 I/O APICs
> > ACPI: acpi_table_parse(17, 00000000) HPET NULL handler!
> > Using ACPI (MADT) for SMP configuration information
> >
>
> ACPI: acpi_table_parse(17, 00000000) HPET NULL handler!
So the BUG_ON is triggered by CONFIG_HPET_TIMER not being defined,
causing acpi_parse_hpet to be NULL.
Should the acpi_table_parse() called be ifdef'ed of is the previous
behaviour (returning -EINVAL) just OK?

Regards,
Frederik

2007-01-13 07:27:14

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.20-rc4-mm1: status of sn9c102_pas202bca?

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc3-mm1:
>...
> git-dvb.patch
>...
> git trees
>...

drivers/media/video/sn9c102/sn9c102_pas202bca.c is no longer used or
built but still shipped.

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

2007-01-13 09:56:36

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make mmc_sysfs.c:mmc_key_type static

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc3-mm1:
>...
> git-mmc.patch
>...
> git trees
>...


This patch makes the needlessly global struct mmc_key_type static.

Signed-off-by: Adrian Bunk <[email protected]>

---

drivers/mmc/mmc.h | 1 -
drivers/mmc/mmc_sysfs.c | 4 +++-
2 files changed, 3 insertions(+), 2 deletions(-)

--- linux-2.6.20-rc4-mm1/drivers/mmc/mmc.h.old 2007-01-13 08:28:31.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/mmc/mmc.h 2007-01-13 08:28:38.000000000 +0100
@@ -20,7 +20,6 @@
void mmc_free_host_sysfs(struct mmc_host *host);

/* core-internal data */
-extern struct key_type mmc_key_type;
struct mmc_key_payload {
struct rcu_head rcu; /* RCU destructor */
unsigned short datalen; /* length of this data */
--- linux-2.6.20-rc4-mm1/drivers/mmc/mmc_sysfs.c.old 2007-01-13 08:28:44.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/mmc/mmc_sysfs.c 2007-01-13 08:29:21.000000000 +0100
@@ -66,6 +66,8 @@

static struct device_attribute mmc_dev_attr_scr = MMC_ATTR_RO(scr);

+static struct key_type mmc_key_type;
+
#ifdef CONFIG_MMC_PASSWORDS

static ssize_t
@@ -432,7 +434,7 @@
kfree(mpayload);
}

-struct key_type mmc_key_type = {
+static struct key_type mmc_key_type = {
.name = "mmc",
.def_datalen = MMC_KEYLEN_MAXBYTES,
.instantiate = mmc_key_instantiate,

2007-01-13 09:56:42

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make gfs2_change_nlink_i() static

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc3-mm1:
>...
> git-gfs2-nmw.patch
>...
> git trees
>...


This patch makes the needlessly globlal gfs2_change_nlink_i() static.

Signed-off-by: Adrian Bunk <[email protected]>

---

fs/gfs2/inode.c | 88 ++++++++++++++++++++++++------------------------
fs/gfs2/inode.h | 1
2 files changed, 44 insertions(+), 45 deletions(-)

--- linux-2.6.20-rc4-mm1/fs/gfs2/inode.h.old 2007-01-13 08:56:24.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/gfs2/inode.h 2007-01-13 08:56:30.000000000 +0100
@@ -40,7 +40,6 @@

int gfs2_dinode_dealloc(struct gfs2_inode *inode);
int gfs2_change_nlink(struct gfs2_inode *ip, int diff);
-int gfs2_change_nlink_i(struct gfs2_inode *ip);
struct inode *gfs2_lookupi(struct inode *dir, const struct qstr *name,
int is_root, struct nameidata *nd);
struct inode *gfs2_createi(struct gfs2_holder *ghs, const struct qstr *name,
--- linux-2.6.20-rc4-mm1/fs/gfs2/inode.c.old 2007-01-13 08:56:37.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/gfs2/inode.c 2007-01-13 08:57:21.000000000 +0100
@@ -280,6 +280,50 @@
return error;
}

+static int gfs2_change_nlink_i(struct gfs2_inode *ip)
+{
+ struct gfs2_sbd *sdp = ip->i_inode.i_sb->s_fs_info;
+ struct gfs2_inode *rindex = GFS2_I(sdp->sd_rindex);
+ struct gfs2_glock *ri_gl = rindex->i_gl;
+ struct gfs2_rgrpd *rgd;
+ struct gfs2_holder ri_gh, rg_gh;
+ int existing, error;
+
+ /* if we come from rename path, we could have the lock already */
+ existing = gfs2_glock_is_locked_by_me(ri_gl);
+ if (!existing) {
+ error = gfs2_rindex_hold(sdp, &ri_gh);
+ if (error)
+ goto out;
+ }
+
+ /* find the matching rgd */
+ error = -EIO;
+ rgd = gfs2_blk2rgrpd(sdp, ip->i_num.no_addr);
+ if (!rgd)
+ goto out_norgrp;
+
+ /*
+ * Eventually we may want to move rgd(s) to a linked list
+ * and piggyback the free logic into one of gfs2 daemons
+ * to gain some performance.
+ */
+ if (!rgd->rd_gl || !gfs2_glock_is_locked_by_me(rgd->rd_gl)) {
+ error = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE, 0, &rg_gh);
+ if (error)
+ goto out_norgrp;
+
+ gfs2_unlink_di(&ip->i_inode); /* mark inode unlinked */
+ gfs2_glock_dq_uninit(&rg_gh);
+ }
+
+out_norgrp:
+ if (!existing)
+ gfs2_glock_dq_uninit(&ri_gh);
+out:
+ return error;
+}
+
/**
* gfs2_change_nlink - Change nlink count on inode
* @ip: The GFS2 inode
@@ -326,50 +370,6 @@
return error;
}

-int gfs2_change_nlink_i(struct gfs2_inode *ip)
-{
- struct gfs2_sbd *sdp = ip->i_inode.i_sb->s_fs_info;
- struct gfs2_inode *rindex = GFS2_I(sdp->sd_rindex);
- struct gfs2_glock *ri_gl = rindex->i_gl;
- struct gfs2_rgrpd *rgd;
- struct gfs2_holder ri_gh, rg_gh;
- int existing, error;
-
- /* if we come from rename path, we could have the lock already */
- existing = gfs2_glock_is_locked_by_me(ri_gl);
- if (!existing) {
- error = gfs2_rindex_hold(sdp, &ri_gh);
- if (error)
- goto out;
- }
-
- /* find the matching rgd */
- error = -EIO;
- rgd = gfs2_blk2rgrpd(sdp, ip->i_num.no_addr);
- if (!rgd)
- goto out_norgrp;
-
- /*
- * Eventually we may want to move rgd(s) to a linked list
- * and piggyback the free logic into one of gfs2 daemons
- * to gain some performance.
- */
- if (!rgd->rd_gl || !gfs2_glock_is_locked_by_me(rgd->rd_gl)) {
- error = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE, 0, &rg_gh);
- if (error)
- goto out_norgrp;
-
- gfs2_unlink_di(&ip->i_inode); /* mark inode unlinked */
- gfs2_glock_dq_uninit(&rg_gh);
- }
-
-out_norgrp:
- if (!existing)
- gfs2_glock_dq_uninit(&ri_gh);
-out:
- return error;
-}
-
struct inode *gfs2_lookup_simple(struct inode *dip, const char *name)
{
struct qstr qstr;

2007-01-13 22:44:16

by Pierre Ossman

[permalink] [raw]
Subject: Re: [-mm patch] make mmc_sysfs.c:mmc_key_type static

Adrian Bunk wrote:
> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>> ...
>> Changes since 2.6.20-rc3-mm1:
>> ...
>> git-mmc.patch
>> ...
>> git trees
>> ...
>
>
> This patch makes the needlessly global struct mmc_key_type static.
>
> Signed-off-by: Adrian Bunk <[email protected]>
>

Thanks, applied.

Rgds
Pierre



Attachments:
signature.asc (251.00 B)
OpenPGP digital signature

2007-01-14 09:10:15

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.20-rc4-mm1: different values for OHCI_QUIRK_ZFMICRO

<-- snip -->

...
CC drivers/usb/misc/ftdi-elan.o
/home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/ftdi-elan.c:2307:1: warning: "OHCI_QUIRK_ZFMICRO" redefined
In file included from /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/ftdi-elan.c:76:
/home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/../host/ohci.h:399:1: warning: this is the location of the previous definition
...
$ grep -r ^#define * | grep OHCI_QUIRK_ZFMICRO
drivers/usb/host/ohci.h:#define OHCI_QUIRK_ZFMICRO 0x20 /* Compaq ZFMicro chipset*/
drivers/usb/host/u132-hcd.c:#define OHCI_QUIRK_ZFMICRO 0x10
drivers/usb/misc/ftdi-elan.c:#define OHCI_QUIRK_ZFMICRO 0x10
$

<-- snip -->

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

2007-01-14 09:42:18

by Thomas Gleixner

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Thu, 2007-01-11 at 22:26 -0800, Andrew Morton wrote:
> - Merged the "filesystem AIO patches".

Hotfixes alreday applied.

BUG: at /home/tglx/work/kernel/vanilla/linux-2.6.20-rc4-mm1/arch/i386/mm/highmem.c:60 kmap_atomic()
[<c0105fba>] show_trace_log_lvl+0x1a/0x2f
[<c01065ff>] show_trace+0x12/0x14
[<c01066b1>] dump_stack+0x16/0x18
[<c011fad8>] kmap_atomic+0x12f/0x1c8
[<f88db29c>] ata_scsi_rbuf_get+0x22/0x37 [libata]
[<f88db773>] atapi_qc_complete+0x1ee/0x240 [libata]
[<f88d666b>] __ata_qc_complete+0x86/0x8d [libata]
[<f88d670a>] ata_qc_complete+0x98/0x9e [libata]
[<f88d98f4>] ata_qc_complete_multiple+0x8a/0xa4 [libata]
[<f88b3a2c>] ahci_interrupt+0x2bd/0x3b9 [ahci]
[<c0154a2d>] handle_IRQ_event+0x21/0x48
[<c0155971>] handle_edge_irq+0xd1/0x115
[<c01071af>] do_IRQ+0x6c/0x89
[<c0105a0b>] common_interrupt+0x23/0x28
[<c01031c2>] mwait_idle+0xd/0xf
[<c010343f>] cpu_idle+0xb7/0xf1
[<c010141d>] rest_init+0x37/0x3a
[<c04629bd>] start_kernel+0x3cc/0x3ef
[<00000000>] 0x0

ata_scsi_rbuf_get requests KM_IRQ0 type memory and calls kmap_atomic
with interrupts enabled.

Boot proceeds, but gets stuck hard at:
"Remounting root filesystem in read-write mode:"

No SysRq-T, nothing.

The above BUG seems unrelated to that. Investigating further.

tglx


2007-01-14 10:40:51

by Thomas Gleixner

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Sun, 2007-01-14 at 10:48 +0100, Thomas Gleixner wrote:
> ata_scsi_rbuf_get requests KM_IRQ0 type memory and calls kmap_atomic
> with interrupts enabled.
>
> Boot proceeds, but gets stuck hard at:
> "Remounting root filesystem in read-write mode:"
>
> No SysRq-T, nothing.
>
> The above BUG seems unrelated to that. Investigating further.

Bisect identified: git-block.patch

tglx


2007-01-14 14:34:10

by Thomas Gleixner

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Sun, 2007-01-14 at 11:46 +0100, Thomas Gleixner wrote:
> > Boot proceeds, but gets stuck hard at:
> > "Remounting root filesystem in read-write mode:"
> >
> > No SysRq-T, nothing.
> >
> > The above BUG seems unrelated to that. Investigating further.
>
> Bisect identified: git-block.patch

Does only happen on 2 systems. Both have sata + raid1 setup. I managed
to get a stacktrace from the SMP box. Sits there and sleeps forever.

tglx

[<c032ac64>] io_schedule+0x7a/0x9a
[<c0157f89>] sleep_on_page+0x8/0xc
[<c032ae45>] __wait_on_bit+0x36/0x5d
[<c01580d8>] wait_on_page_bit+0x5b/0x61
[<c0158a2b>] wait_on_page_writeback_range+0x4f/0xef
[<c0158b0f>] filemap_fdatawait+0x44/0x49
[<c0158da0>] filemap_write_and_wait+0x22/0x2d
[<c0190e39>] sync_blockdev+0x17/0x1d
[<c01a27af>] quota_sync_sb+0x33/0xd6
[<c01a2874>] sync_dquots+0x22/0xfa
[<c01757cf>] __fsync_super+0x17/0x66
[<c0175829>] fsync_super+0xb/0x19
[<c0175880>] do_remount_sb+0x49/0x101
[<c0187f98>] do_mount+0x1ad/0x678
[<c01884d2>] sys_mount+0x6f/0xa4
[<c0103f6a>] sysenter_past_esp+0x5f/0x99


2007-01-14 14:36:15

by David Brownell

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: different values for OHCI_QUIRK_ZFMICRO

On Sunday 14 January 2007 1:10 am, Adrian Bunk wrote:
> <-- snip -->

Waiting for Tony to submit bugfixes to his driver...


> ...
> CC drivers/usb/misc/ftdi-elan.o
> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/ftdi-elan.c:2307:1: warning: "OHCI_QUIRK_ZFMICRO" redefined
> In file included from /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/ftdi-elan.c:76:
> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/../host/ohci.h:399:1: warning: this is the location of the previous definition
> ...
> $ grep -r ^#define * | grep OHCI_QUIRK_ZFMICRO
> drivers/usb/host/ohci.h:#define OHCI_QUIRK_ZFMICRO 0x20 /* Compaq ZFMicro chipset*/
> drivers/usb/host/u132-hcd.c:#define OHCI_QUIRK_ZFMICRO 0x10
> drivers/usb/misc/ftdi-elan.c:#define OHCI_QUIRK_ZFMICRO 0x10
> $
>
> <-- snip -->
>
> 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
>

2007-01-14 22:04:36

by Jens Axboe

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Sun, Jan 14 2007, Thomas Gleixner wrote:
> On Sun, 2007-01-14 at 11:46 +0100, Thomas Gleixner wrote:
> > > Boot proceeds, but gets stuck hard at:
> > > "Remounting root filesystem in read-write mode:"
> > >
> > > No SysRq-T, nothing.
> > >
> > > The above BUG seems unrelated to that. Investigating further.
> >
> > Bisect identified: git-block.patch
>
> Does only happen on 2 systems. Both have sata + raid1 setup. I managed
> to get a stacktrace from the SMP box. Sits there and sleeps forever.
>
> tglx
>
> [<c032ac64>] io_schedule+0x7a/0x9a
> [<c0157f89>] sleep_on_page+0x8/0xc
> [<c032ae45>] __wait_on_bit+0x36/0x5d
> [<c01580d8>] wait_on_page_bit+0x5b/0x61
> [<c0158a2b>] wait_on_page_writeback_range+0x4f/0xef
> [<c0158b0f>] filemap_fdatawait+0x44/0x49
> [<c0158da0>] filemap_write_and_wait+0x22/0x2d
> [<c0190e39>] sync_blockdev+0x17/0x1d
> [<c01a27af>] quota_sync_sb+0x33/0xd6
> [<c01a2874>] sync_dquots+0x22/0xfa
> [<c01757cf>] __fsync_super+0x17/0x66
> [<c0175829>] fsync_super+0xb/0x19
> [<c0175880>] do_remount_sb+0x49/0x101
> [<c0187f98>] do_mount+0x1ad/0x678
> [<c01884d2>] sys_mount+0x6f/0xa4
> [<c0103f6a>] sysenter_past_esp+0x5f/0x99

raid seems to have severe problems with the plugging change. I'll try
and find Neil and have a chat with him, hopefully we can work it out.

--
Jens Axboe

2007-01-14 22:25:35

by Thomas Gleixner

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Mon, 2007-01-15 at 09:05 +1100, Jens Axboe wrote:
> raid seems to have severe problems with the plugging change. I'll try
> and find Neil and have a chat with him, hopefully we can work it out.

Some hints:

mount(1899): WRITE block 16424 on md3
call md_write_start
md3_raid1(438): WRITE block 40965504 on sdb6
md3_raid1(438): WRITE block 40965504 on sda6
First Write sector 16424 disks 2

Stuck.

Note, that neither end_buffer_async_write() nor
raid1_end_write_request() are invoked,

In a previous write invoked by:
fsck.ext3(1896): WRITE block 8552 on sdb1
end_buffer_async_write() is invoked.

sdb1 is not a part of a raid device.

Hope that helps,

tglx


2007-01-14 22:29:48

by Jens Axboe

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Sun, Jan 14 2007, Thomas Gleixner wrote:
> On Mon, 2007-01-15 at 09:05 +1100, Jens Axboe wrote:
> > raid seems to have severe problems with the plugging change. I'll try
> > and find Neil and have a chat with him, hopefully we can work it out.
>
> Some hints:
>
> mount(1899): WRITE block 16424 on md3
> call md_write_start
> md3_raid1(438): WRITE block 40965504 on sdb6
> md3_raid1(438): WRITE block 40965504 on sda6
> First Write sector 16424 disks 2
>
> Stuck.
>
> Note, that neither end_buffer_async_write() nor
> raid1_end_write_request() are invoked,
>
> In a previous write invoked by:
> fsck.ext3(1896): WRITE block 8552 on sdb1
> end_buffer_async_write() is invoked.
>
> sdb1 is not a part of a raid device.

When I briefly tested this before I left (and found it broken), doing a
cat /proc/mdstat got things going again. Hard if that's your rootfs,
it's just a hint :-)

> Hope that helps,

I can reproduce, so that's not a problem. I can't do much about it until
I'm back next week, but Neil might be able to help. We shall see. Thanks
for testing.

--
Jens Axboe

2007-01-14 23:48:24

by Tilman Schmidt

[permalink] [raw]
Subject: i810fb fails to load (was: 2.6.20-rc4-mm1)

With kernel 2.6.20-rc4-mm1 and all hotfixes, i810fb fails to load on my
Dell Optiplex GX110. Here's an excerpt of the diff between the boot logs
of 2.6.20-rc5 (working) and 2.6.20-rc4-mm1 (non-working):

@@ -4,7 +4,7 @@
No module symbols loaded - kernel modules not enabled.

klogd 1.4.1, log source = ksyslog started.
-<5>Linux version 2.6.20-rc5-noinitrd (ts@gx110) (gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)) #2 PREEMPT Sun Jan 14 23:37:12 CET 2007
+<5>Linux version 2.6.20-rc4-mm1-noinitrd (ts@gx110) (gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)) #3 PREEMPT Sun Jan 14 21:08:56 CET 2007
<6>BIOS-provided physical RAM map:
<4>sanitize start
<4>sanitize end
@@ -188,7 +192,6 @@
<6>ACPI: Interpreter enabled
<6>ACPI: Using PIC for interrupt routing
<6>ACPI: PCI Root Bridge [PCI0] (0000:00)
-<7>PCI: Probing PCI hardware (bus 00)
<6>ACPI: Assume root bridge [\_SB_.PCI0] bus is 0
<7>Boot video device is 0000:00:01.0
<4>PCI quirk: region 0800-087f claimed by ICH4 ACPI/GPIO/TCO
@@ -238,20 +241,15 @@
<6>isapnp: No Plug & Play device found
<6>Real Time Clock Driver v1.12ac
<6>Intel 82802 RNG detected
-<6>Linux agpgart interface v0.101 (c) Dave Jones
+<6>Linux agpgart interface v0.102 (c) Dave Jones
<6>agpgart: Detected an Intel i810 E Chipset.
<6>agpgart: detected 4MB dedicated video ram.
<6>agpgart: AGP aperture is 64M @ 0xf8000000
<4>ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 9
<7>PCI: setting IRQ 9 as level-triggered
<6>ACPI: PCI Interrupt 0000:00:01.0[A] -> Link [LNKA] -> GSI 9 (level, low) -> IRQ 9
-<4>i810-i2c: Probe DDC1 Bus
-<4>i810fb_init_pci: DDC probe successful
-<4>Console: switching to colour frame buffer device 160x64
-<4>I810FB: fb0 : Intel(R) 810E Framebuffer Device v0.9.0
-<4>I810FB: Video RAM : 4096K
-<4>I810FB: Monitor : H: 30-83 KHz V: 55-75 Hz
-<4>I810FB: Mode : 1280x1024-8bpp@60Hz
+<4>i810fb_alloc_fbmem: can't bind framebuffer memory
+<4>i810fb: probe of 0000:00:01.0 failed with error -16
<6>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
<6>serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
<6>serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

Please let me know if you need more information.

Thanks
Tilman

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (253.00 B)
OpenPGP digital signature

2007-01-15 00:07:31

by Jens Axboe

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Sun, Jan 14 2007, Thomas Gleixner wrote:
> On Sun, 2007-01-14 at 11:46 +0100, Thomas Gleixner wrote:
> > > Boot proceeds, but gets stuck hard at:
> > > "Remounting root filesystem in read-write mode:"
> > >
> > > No SysRq-T, nothing.
> > >
> > > The above BUG seems unrelated to that. Investigating further.
> >
> > Bisect identified: git-block.patch
>
> Does only happen on 2 systems. Both have sata + raid1 setup. I managed
> to get a stacktrace from the SMP box. Sits there and sleeps forever.
>
> tglx
>
> [<c032ac64>] io_schedule+0x7a/0x9a
> [<c0157f89>] sleep_on_page+0x8/0xc
> [<c032ae45>] __wait_on_bit+0x36/0x5d
> [<c01580d8>] wait_on_page_bit+0x5b/0x61
> [<c0158a2b>] wait_on_page_writeback_range+0x4f/0xef
> [<c0158b0f>] filemap_fdatawait+0x44/0x49
> [<c0158da0>] filemap_write_and_wait+0x22/0x2d
> [<c0190e39>] sync_blockdev+0x17/0x1d
> [<c01a27af>] quota_sync_sb+0x33/0xd6
> [<c01a2874>] sync_dquots+0x22/0xfa
> [<c01757cf>] __fsync_super+0x17/0x66
> [<c0175829>] fsync_super+0xb/0x19
> [<c0175880>] do_remount_sb+0x49/0x101
> [<c0187f98>] do_mount+0x1ad/0x678
> [<c01884d2>] sys_mount+0x6f/0xa4
> [<c0103f6a>] sysenter_past_esp+0x5f/0x99

raid seems to have severe problems with the plugging change. I'll try
and find Neil and have a chat with him, hopefully we can work it out.

--
Jens Axboe

2007-01-15 00:23:36

by Andrew Morton

[permalink] [raw]
Subject: Re: i810fb fails to load (was: 2.6.20-rc4-mm1)

> On Mon, 15 Jan 2007 00:52:36 +0100 Tilman Schmidt <[email protected]> wrote:
> With kernel 2.6.20-rc4-mm1 and all hotfixes, i810fb fails to load on my
> Dell Optiplex GX110. Here's an excerpt of the diff between the boot logs
> of 2.6.20-rc5 (working) and 2.6.20-rc4-mm1 (non-working):
>
> @@ -4,7 +4,7 @@
> No module symbols loaded - kernel modules not enabled.
>
> klogd 1.4.1, log source = ksyslog started.
> -<5>Linux version 2.6.20-rc5-noinitrd (ts@gx110) (gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)) #2 PREEMPT Sun Jan 14 23:37:12 CET 2007
> +<5>Linux version 2.6.20-rc4-mm1-noinitrd (ts@gx110) (gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)) #3 PREEMPT Sun Jan 14 21:08:56 CET 2007
> <6>BIOS-provided physical RAM map:
> <4>sanitize start
> <4>sanitize end
> @@ -188,7 +192,6 @@
> <6>ACPI: Interpreter enabled
> <6>ACPI: Using PIC for interrupt routing
> <6>ACPI: PCI Root Bridge [PCI0] (0000:00)
> -<7>PCI: Probing PCI hardware (bus 00)
> <6>ACPI: Assume root bridge [\_SB_.PCI0] bus is 0
> <7>Boot video device is 0000:00:01.0
> <4>PCI quirk: region 0800-087f claimed by ICH4 ACPI/GPIO/TCO
> @@ -238,20 +241,15 @@
> <6>isapnp: No Plug & Play device found
> <6>Real Time Clock Driver v1.12ac
> <6>Intel 82802 RNG detected
> -<6>Linux agpgart interface v0.101 (c) Dave Jones
> +<6>Linux agpgart interface v0.102 (c) Dave Jones
> <6>agpgart: Detected an Intel i810 E Chipset.
> <6>agpgart: detected 4MB dedicated video ram.
> <6>agpgart: AGP aperture is 64M @ 0xf8000000
> <4>ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 9
> <7>PCI: setting IRQ 9 as level-triggered
> <6>ACPI: PCI Interrupt 0000:00:01.0[A] -> Link [LNKA] -> GSI 9 (level, low) -> IRQ 9
> -<4>i810-i2c: Probe DDC1 Bus
> -<4>i810fb_init_pci: DDC probe successful
> -<4>Console: switching to colour frame buffer device 160x64
> -<4>I810FB: fb0 : Intel(R) 810E Framebuffer Device v0.9.0
> -<4>I810FB: Video RAM : 4096K
> -<4>I810FB: Monitor : H: 30-83 KHz V: 55-75 Hz
> -<4>I810FB: Mode : 1280x1024-8bpp@60Hz
> +<4>i810fb_alloc_fbmem: can't bind framebuffer memory
> +<4>i810fb: probe of 0000:00:01.0 failed with error -16
> <6>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
> <6>serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
> <6>serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
>
> Please let me know if you need more information.
>

Don't know. But I bet someone on the Cc does...

2007-01-15 08:27:26

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1


* Jens Axboe <[email protected]> wrote:

> > In a previous write invoked by: fsck.ext3(1896): WRITE block 8552 on
> > sdb1 end_buffer_async_write() is invoked.
> >
> > sdb1 is not a part of a raid device.
>
> When I briefly tested this before I left (and found it broken), doing
> a cat /proc/mdstat got things going again. Hard if that's your rootfs,
> it's just a hint :-)

hm, so you knew it's broken, still you let Andrew pick it up, or am i
misunderstanding something?

Ingo

2007-01-15 10:25:44

by Steven Whitehouse

[permalink] [raw]
Subject: Re: [-mm patch] make gfs2_change_nlink_i() static

Hi,

On Sat, 2007-01-13 at 10:56 +0100, Adrian Bunk wrote:
> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> >...
> > Changes since 2.6.20-rc3-mm1:
> >...
> > git-gfs2-nmw.patch
> >...
> > git trees
> >...
>
>
> This patch makes the needlessly globlal gfs2_change_nlink_i() static.
>
> Signed-off-by: Adrian Bunk <[email protected]>
>
Now applied to the GFS2 -nme git tree. Thanks,

Steve.


2007-01-15 11:35:13

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: status of sn9c102_pas202bca?

Hi Adrian,

Em S?b, 2007-01-13 ?s 08:27 +0100, Adrian Bunk escreveu:
> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> >...
> > Changes since 2.6.20-rc3-mm1:
> >...
> > git-dvb.patch
> >...
> > git trees
> >...
>
> drivers/media/video/sn9c102/sn9c102_pas202bca.c is no longer used or
> built but still shipped.

Ok, fixed and folded at the original patch. It should be at the next
git-dvb.patch, after Andrew updates it from my tree.

> cu
> Adrian
>

2007-01-15 23:54:59

by Jens Axboe

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1

On Mon, Jan 15 2007, Ingo Molnar wrote:
>
> * Jens Axboe <[email protected]> wrote:
>
> > > In a previous write invoked by: fsck.ext3(1896): WRITE block 8552 on
> > > sdb1 end_buffer_async_write() is invoked.
> > >
> > > sdb1 is not a part of a raid device.
> >
> > When I briefly tested this before I left (and found it broken), doing
> > a cat /proc/mdstat got things going again. Hard if that's your rootfs,
> > it's just a hint :-)
>
> hm, so you knew it's broken, still you let Andrew pick it up, or am i
> misunderstanding something?

Well the raid issue wasn't known before it was in -mm.

--
Jens Axboe

2007-01-16 21:19:07

by Wendy Cheng

[permalink] [raw]
Subject: Re: [Cluster-devel] [-mm patch] make gfs2_change_nlink_i() static

Adrian Bunk wrote:
> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>
>> ...
>> Changes since 2.6.20-rc3-mm1:
>> ...
>> git-gfs2-nmw.patch
>> ...
>> git trees
>> ...
>>
>
>
> This patch makes the needlessly globlal gfs2_change_nlink_i() static.
>
We will probably need to call this routine from other files in our next
round of code check-in.

-- Wendy
> Signed-off-by: Adrian Bunk <[email protected]>
>
> ---
>
> fs/gfs2/inode.c | 88 ++++++++++++++++++++++++------------------------
> fs/gfs2/inode.h | 1
> 2 files changed, 44 insertions(+), 45 deletions(-)
>
> --- linux-2.6.20-rc4-mm1/fs/gfs2/inode.h.old 2007-01-13 08:56:24.000000000 +0100
> +++ linux-2.6.20-rc4-mm1/fs/gfs2/inode.h 2007-01-13 08:56:30.000000000 +0100
> @@ -40,7 +40,6 @@
>
> int gfs2_dinode_dealloc(struct gfs2_inode *inode);
> int gfs2_change_nlink(struct gfs2_inode *ip, int diff);
> -int gfs2_change_nlink_i(struct gfs2_inode *ip);
> struct inode *gfs2_lookupi(struct inode *dir, const struct qstr *name,
> int is_root, struct nameidata *nd);
> struct inode *gfs2_createi(struct gfs2_holder *ghs, const struct qstr *name,
> --- linux-2.6.20-rc4-mm1/fs/gfs2/inode.c.old 2007-01-13 08:56:37.000000000 +0100
> +++ linux-2.6.20-rc4-mm1/fs/gfs2/inode.c 2007-01-13 08:57:21.000000000 +0100
> @@ -280,6 +280,50 @@
> return error;
> }
>
> +static int gfs2_change_nlink_i(struct gfs2_inode *ip)
> +{
> + struct gfs2_sbd *sdp = ip->i_inode.i_sb->s_fs_info;
> + struct gfs2_inode *rindex = GFS2_I(sdp->sd_rindex);
> + struct gfs2_glock *ri_gl = rindex->i_gl;
> + struct gfs2_rgrpd *rgd;
> + struct gfs2_holder ri_gh, rg_gh;
> + int existing, error;
> +
> + /* if we come from rename path, we could have the lock already */
> + existing = gfs2_glock_is_locked_by_me(ri_gl);
> + if (!existing) {
> + error = gfs2_rindex_hold(sdp, &ri_gh);
> + if (error)
> + goto out;
> + }
> +
> + /* find the matching rgd */
> + error = -EIO;
> + rgd = gfs2_blk2rgrpd(sdp, ip->i_num.no_addr);
> + if (!rgd)
> + goto out_norgrp;
> +
> + /*
> + * Eventually we may want to move rgd(s) to a linked list
> + * and piggyback the free logic into one of gfs2 daemons
> + * to gain some performance.
> + */
> + if (!rgd->rd_gl || !gfs2_glock_is_locked_by_me(rgd->rd_gl)) {
> + error = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE, 0, &rg_gh);
> + if (error)
> + goto out_norgrp;
> +
> + gfs2_unlink_di(&ip->i_inode); /* mark inode unlinked */
> + gfs2_glock_dq_uninit(&rg_gh);
> + }
> +
> +out_norgrp:
> + if (!existing)
> + gfs2_glock_dq_uninit(&ri_gh);
> +out:
> + return error;
> +}
> +
> /**
> * gfs2_change_nlink - Change nlink count on inode
> * @ip: The GFS2 inode
> @@ -326,50 +370,6 @@
> return error;
> }
>
> -int gfs2_change_nlink_i(struct gfs2_inode *ip)
> -{
> - struct gfs2_sbd *sdp = ip->i_inode.i_sb->s_fs_info;
> - struct gfs2_inode *rindex = GFS2_I(sdp->sd_rindex);
> - struct gfs2_glock *ri_gl = rindex->i_gl;
> - struct gfs2_rgrpd *rgd;
> - struct gfs2_holder ri_gh, rg_gh;
> - int existing, error;
> -
> - /* if we come from rename path, we could have the lock already */
> - existing = gfs2_glock_is_locked_by_me(ri_gl);
> - if (!existing) {
> - error = gfs2_rindex_hold(sdp, &ri_gh);
> - if (error)
> - goto out;
> - }
> -
> - /* find the matching rgd */
> - error = -EIO;
> - rgd = gfs2_blk2rgrpd(sdp, ip->i_num.no_addr);
> - if (!rgd)
> - goto out_norgrp;
> -
> - /*
> - * Eventually we may want to move rgd(s) to a linked list
> - * and piggyback the free logic into one of gfs2 daemons
> - * to gain some performance.
> - */
> - if (!rgd->rd_gl || !gfs2_glock_is_locked_by_me(rgd->rd_gl)) {
> - error = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE, 0, &rg_gh);
> - if (error)
> - goto out_norgrp;
> -
> - gfs2_unlink_di(&ip->i_inode); /* mark inode unlinked */
> - gfs2_glock_dq_uninit(&rg_gh);
> - }
> -
> -out_norgrp:
> - if (!existing)
> - gfs2_glock_dq_uninit(&ri_gh);
> -out:
> - return error;
> -}
> -
> struct inode *gfs2_lookup_simple(struct inode *dip, const char *name)
> {
> struct qstr qstr;
>
>

2007-01-16 21:29:40

by Adrian Bunk

[permalink] [raw]
Subject: Re: [Cluster-devel] [-mm patch] make gfs2_change_nlink_i() static

On Tue, Jan 16, 2007 at 04:04:15PM -0500, Wendy Cheng wrote:
> Adrian Bunk wrote:
> >On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> >
> >>...
> >>Changes since 2.6.20-rc3-mm1:
> >>...
> >> git-gfs2-nmw.patch
> >>...
> >> git trees
> >>...
> >>
> >
> >
> >This patch makes the needlessly globlal gfs2_change_nlink_i() static.
> >
> We will probably need to call this routine from other files in our next
> round of code check-in.

You can always make it global again when you use it from another file.

> -- Wendy

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

2007-01-18 21:56:07

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] fs/unionfs/: possible cleanups

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>...
> - Added the unionfs filesystem driver as git-unionfs.patch (Josef "Jeff"
> Sipek <[email protected]>)
>...
> Changes since 2.6.20-rc3-mm1:
>...
> git-unionfs.patch
>...
> git trees
>...


Let's start with a small exercise:

Consider sparse tells you about a global function:
warning: symbol 'unionfs_d_revalidate_wrap' was not declared. Should
it be static?

I'll give three possible solutions, spot the one that is always wrong:

1. make the function static
2. add a prototype in a header file
3. add a prototype in the C file

If you need a hint, look at what the patch below removes...


<-- snip -->


This patch contains the following possible cleanups:
- every function should #include the headers containing the prototypes
of it's global functions
- static functions in C files shouldn't be marked "inline", gcc should
know best when to inline them
- make needlessly global code static
- #if 0 the following unused global function:
- stale_inode.c: is_stale_inode()

Signed-off-by: Adrian Bunk <[email protected]>

---

fs/unionfs/commonfops.c | 6 +--
fs/unionfs/copyup.c | 59 +++++++++++++++++++++------------------
fs/unionfs/dentry.c | 11 +------
fs/unionfs/file.c | 17 +++--------
fs/unionfs/inode.c | 19 ++++--------
fs/unionfs/main.c | 4 +-
fs/unionfs/rdstate.c | 2 -
fs/unionfs/sioq.c | 2 -
fs/unionfs/sioq.h | 1
fs/unionfs/stale_inode.c | 9 +++--
fs/unionfs/union.h | 13 --------
11 files changed, 60 insertions(+), 83 deletions(-)

--- linux-2.6.20-rc4-mm1/fs/unionfs/union.h.old 2007-01-18 21:02:45.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/union.h 2007-01-18 21:32:42.000000000 +0100
@@ -241,11 +241,6 @@
/* replicates the directory structure upto given dentry in given branch */
extern struct dentry *create_parents(struct inode *dir, struct dentry *dentry,
int bindex);
-struct dentry *create_parents_named(struct inode *dir, struct dentry *dentry,
- const char *name, int bindex);
-
-/* check if two branches overlap */
-extern int is_branch_overlap(struct dentry *dent1, struct dentry *dent2);

/* partial lookup */
extern int unionfs_partial_lookup(struct dentry *dentry);
@@ -265,10 +260,6 @@
/* copies a dentry from dbstart to newbindex branch */
extern int copyup_dentry(struct inode *dir, struct dentry *dentry, int bstart,
int new_bindex, struct file **copyup_file, loff_t len);
-extern int copyup_named_dentry(struct inode *dir, struct dentry *dentry,
- int bstart, int new_bindex, const char *name,
- int namelen, struct file **copyup_file,
- loff_t len);

extern int remove_whiteouts(struct dentry *dentry, struct dentry *hidden_dentry,
int bindex);
@@ -325,9 +316,6 @@
int unionfs_ioctl_queryfile(struct file *file, unsigned int cmd,
unsigned long arg);

-/* Verify that a branch is valid. */
-int check_branch(struct nameidata *nd);
-
#ifdef CONFIG_UNION_FS_XATTR
/* Extended attribute functions. */
extern void *unionfs_xattr_alloc(size_t size, size_t limit);
@@ -395,7 +383,6 @@
}

struct dentry *unionfs_lookup_backend(struct dentry *dentry, struct nameidata *nd, int lookupmode);
-int is_stale_inode(struct inode *inode);
void make_stale_inode(struct inode *inode);

#define IS_SET(sb, check_flag) ((check_flag) & MOUNT_FLAG(sb))
--- linux-2.6.20-rc4-mm1/fs/unionfs/copyup.c.old 2007-01-18 21:03:05.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/copyup.c 2007-01-18 21:35:33.000000000 +0100
@@ -18,6 +18,14 @@

#include "union.h"

+static int copyup_named_dentry(struct inode *dir, struct dentry *dentry,
+ int bstart, int new_bindex, const char *name,
+ int namelen, struct file **copyup_file,
+ loff_t len);
+static struct dentry *create_parents_named(struct inode *dir,
+ struct dentry *dentry,
+ const char *name, int bindex);
+
#ifdef CONFIG_UNION_FS_XATTR
/* copyup all extended attrs for a given dentry */
static int copyup_xattrs(struct dentry *old_hidden_dentry,
@@ -129,10 +137,10 @@
* if the object being copied up is a regular file, the file is only created,
* the contents have to be copied up separately
*/
-static inline int __copyup_ndentry(struct dentry *old_hidden_dentry,
- struct dentry *new_hidden_dentry,
- struct dentry *new_hidden_parent_dentry,
- char *symbuf)
+static int __copyup_ndentry(struct dentry *old_hidden_dentry,
+ struct dentry *new_hidden_dentry,
+ struct dentry *new_hidden_parent_dentry,
+ char *symbuf)
{
int err = 0;
umode_t old_mode = old_hidden_dentry->d_inode->i_mode;
@@ -179,13 +187,10 @@
return err;
}

-static inline int __copyup_reg_data(struct dentry *dentry,
- struct dentry *new_hidden_dentry,
- int new_bindex,
- struct dentry *old_hidden_dentry,
- int old_bindex,
- struct file **copyup_file,
- loff_t len)
+static int __copyup_reg_data(struct dentry *dentry,
+ struct dentry *new_hidden_dentry, int new_bindex,
+ struct dentry *old_hidden_dentry, int old_bindex,
+ struct file **copyup_file, loff_t len)
{
struct super_block *sb = dentry->d_sb;
struct file *input_file;
@@ -300,11 +305,9 @@
/* dput the lower references for old and new dentry & clear a lower dentry
* pointer
*/
-static inline void __clear(struct dentry *dentry,
- struct dentry *old_hidden_dentry,
- int old_bstart, int old_bend,
- struct dentry *new_hidden_dentry,
- int new_bindex)
+static void __clear(struct dentry *dentry, struct dentry *old_hidden_dentry,
+ int old_bstart, int old_bend,
+ struct dentry *new_hidden_dentry, int new_bindex)
{
/* get rid of the hidden dentry and all its traces */
unionfs_set_lower_dentry_idx(dentry, new_bindex, NULL);
@@ -316,9 +319,10 @@
}

/* copy up a dentry to a file of specified name */
-int copyup_named_dentry(struct inode *dir, struct dentry *dentry,
- int bstart, int new_bindex, const char *name,
- int namelen, struct file **copyup_file, loff_t len)
+static int copyup_named_dentry(struct inode *dir, struct dentry *dentry,
+ int bstart, int new_bindex, const char *name,
+ int namelen, struct file **copyup_file,
+ loff_t len)
{
struct dentry *new_hidden_dentry;
struct dentry *old_hidden_dentry = NULL;
@@ -510,8 +514,8 @@
return create_parents_named(dir, dentry, dentry->d_name.name, bindex);
}

-static inline void __cleanup_dentry(struct dentry * dentry, int bindex,
- int old_bstart, int old_bend)
+static void __cleanup_dentry(struct dentry * dentry, int bindex,
+ int old_bstart, int old_bend)
{
int loop_start;
int loop_end;
@@ -557,8 +561,8 @@
}

/* set lower inode ptr and update bstart & bend if necessary */
-static inline void __set_inode(struct dentry * upper, struct dentry * lower,
- int bindex)
+static void __set_inode(struct dentry * upper, struct dentry * lower,
+ int bindex)
{
unionfs_set_lower_inode_idx(upper->d_inode, bindex,
igrab(lower->d_inode));
@@ -570,8 +574,8 @@
}

/* set lower dentry ptr and update bstart & bend if necessary */
-static inline void __set_dentry(struct dentry * upper, struct dentry * lower,
- int bindex)
+static void __set_dentry(struct dentry * upper, struct dentry * lower,
+ int bindex)
{
unionfs_set_lower_dentry_idx(upper, bindex, lower);
if (likely(dbstart(upper) > bindex))
@@ -583,8 +587,9 @@
/* This function replicates the directory structure upto given dentry
* in the bindex branch.
*/
-struct dentry *create_parents_named(struct inode *dir, struct dentry *dentry,
- const char *name, int bindex)
+static struct dentry *create_parents_named(struct inode *dir,
+ struct dentry *dentry,
+ const char *name, int bindex)
{
int err;
struct dentry *child_dentry;
--- linux-2.6.20-rc4-mm1/fs/unionfs/dentry.c.old 2007-01-18 21:15:30.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/dentry.c 2007-01-18 21:21:21.000000000 +0100
@@ -18,12 +18,6 @@

#include "union.h"

-/* declarations added for "sparse" */
-extern int unionfs_d_revalidate_wrap(struct dentry *dentry,
- struct nameidata *nd);
-extern void unionfs_d_release(struct dentry *dentry);
-extern void unionfs_d_iput(struct dentry *dentry, struct inode *inode);
-
/*
* returns 1 if valid, 0 otherwise.
*/
@@ -180,7 +174,8 @@
return valid;
}

-int unionfs_d_revalidate_wrap(struct dentry *dentry, struct nameidata *nd)
+static int unionfs_d_revalidate_wrap(struct dentry *dentry,
+ struct nameidata *nd)
{
int err;

@@ -191,7 +186,7 @@
return err;
}

-void unionfs_d_release(struct dentry *dentry)
+static void unionfs_d_release(struct dentry *dentry)
{
int bindex, bstart, bend;

--- linux-2.6.20-rc4-mm1/fs/unionfs/file.c.old 2007-01-18 21:21:45.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/file.c 2007-01-18 21:23:51.000000000 +0100
@@ -18,11 +18,6 @@

#include "union.h"

-/* declarations for sparse */
-extern ssize_t unionfs_read(struct file *, char __user *, size_t, loff_t *);
-extern ssize_t unionfs_write(struct file *, const char __user *, size_t,
- loff_t *);
-
/*******************
* File Operations *
*******************/
@@ -56,8 +51,8 @@
return err;
}

-ssize_t unionfs_read(struct file * file, char __user * buf, size_t count,
- loff_t * ppos)
+static ssize_t unionfs_read(struct file * file, char __user * buf,
+ size_t count, loff_t * ppos)
{
struct file *hidden_file;
loff_t pos = *ppos;
@@ -78,8 +73,8 @@
return err;
}

-ssize_t __unionfs_write(struct file * file, const char __user * buf,
- size_t count, loff_t * ppos)
+static ssize_t __unionfs_write(struct file * file, const char __user * buf,
+ size_t count, loff_t * ppos)
{
int err = -EINVAL;
struct file *hidden_file = NULL;
@@ -123,8 +118,8 @@
return err;
}

-ssize_t unionfs_write(struct file * file, const char __user * buf, size_t count,
- loff_t * ppos)
+static ssize_t unionfs_write(struct file * file, const char __user * buf,
+ size_t count, loff_t * ppos)
{
int err = 0;

--- linux-2.6.20-rc4-mm1/fs/unionfs/inode.c.old 2007-01-18 21:28:17.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/inode.c 2007-01-18 21:29:43.000000000 +0100
@@ -18,14 +18,6 @@

#include "union.h"

-/* declarations added for "sparse" */
-extern struct dentry *unionfs_lookup(struct inode *, struct dentry *,
- struct nameidata *);
-extern int unionfs_readlink(struct dentry *dentry, char __user * buf,
- int bufsiz);
-extern void unionfs_put_link(struct dentry *dentry, struct nameidata *nd,
- void *cookie);
-
static int unionfs_create(struct inode *parent, struct dentry *dentry,
int mode, struct nameidata *nd)
{
@@ -195,8 +187,9 @@
return err;
}

-struct dentry *unionfs_lookup(struct inode *parent, struct dentry *dentry,
- struct nameidata *nd)
+static struct dentry *unionfs_lookup(struct inode *parent,
+ struct dentry *dentry,
+ struct nameidata *nd)
{
struct nameidata lowernd; /* TODO: be gentler to the stack */

@@ -688,7 +681,8 @@
return err;
}

-int unionfs_readlink(struct dentry *dentry, char __user * buf, int bufsiz)
+static int unionfs_readlink(struct dentry *dentry, char __user * buf,
+ int bufsiz)
{
int err;
struct dentry *hidden_dentry;
@@ -743,7 +737,8 @@
return ERR_PTR(err);
}

-void unionfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
+static void unionfs_put_link(struct dentry *dentry, struct nameidata *nd,
+ void *cookie)
{
kfree(nd_get_link(nd));
}
--- linux-2.6.20-rc4-mm1/fs/unionfs/main.c.old 2007-01-18 21:30:34.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/main.c 2007-01-18 21:31:05.000000000 +0100
@@ -188,7 +188,7 @@
* 2) it exists
* 3) is a directory
*/
-int check_branch(struct nameidata *nd)
+static int check_branch(struct nameidata *nd)
{
if (!strcmp(nd->dentry->d_sb->s_type->name, "unionfs"))
return -EINVAL;
@@ -200,7 +200,7 @@
}

/* checks if two hidden_dentries have overlapping branches */
-int is_branch_overlap(struct dentry *dent1, struct dentry *dent2)
+static int is_branch_overlap(struct dentry *dent1, struct dentry *dent2)
{
struct dentry *dent = NULL;

--- linux-2.6.20-rc4-mm1/fs/unionfs/rdstate.c.old 2007-01-18 21:31:24.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/rdstate.c 2007-01-18 21:31:37.000000000 +0100
@@ -232,7 +232,7 @@
return cursor;
}

-inline struct filldir_node *alloc_filldir_node(const char *name, int namelen,
+static struct filldir_node *alloc_filldir_node(const char *name, int namelen,
unsigned int hash, int bindex)
{
return kmem_cache_alloc(unionfs_filldir_cachep, GFP_KERNEL);
--- linux-2.6.20-rc4-mm1/fs/unionfs/sioq.h.old 2007-01-18 21:36:56.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/sioq.h 2007-01-18 21:37:02.000000000 +0100
@@ -61,7 +61,6 @@
};
};

-extern struct workqueue_struct *sioq;
extern int __init init_sioq(void);
extern __exit void stop_sioq(void);
extern void run_sioq(work_func_t func, struct sioq_args *args);
--- linux-2.6.20-rc4-mm1/fs/unionfs/sioq.c.old 2007-01-18 21:32:14.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/sioq.c 2007-01-18 21:32:22.000000000 +0100
@@ -24,7 +24,7 @@
* whiteouts).
*/

-struct workqueue_struct *sioq;
+static struct workqueue_struct *sioq;

int __init init_sioq(void)
{
--- linux-2.6.20-rc4-mm1/fs/unionfs/stale_inode.c.old 2007-01-18 21:33:03.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/stale_inode.c 2007-01-18 21:37:40.000000000 +0100
@@ -13,10 +13,9 @@
#include <linux/stat.h>
#include <linux/sched.h>

-static struct address_space_operations unionfs_stale_aops;
+#include "union.h"

-/* declarations for "sparse */
-extern struct inode_operations stale_inode_ops;
+static struct address_space_operations unionfs_stale_aops;

/*
* The follow_link operation is special: it must behave as a no-op
@@ -51,7 +50,7 @@
.lock = ESTALE_ERROR,
};

-struct inode_operations stale_inode_ops = {
+static struct inode_operations stale_inode_ops = {
.create = ESTALE_ERROR,
.lookup = ESTALE_ERROR,
.link = ESTALE_ERROR,
@@ -99,6 +98,7 @@
* those created by make_stale_inode() above.
*/

+#if 0
/**
* is_stale_inode - is an inode errored
* @inode: inode to test
@@ -109,4 +109,5 @@
{
return (inode->i_op == &stale_inode_ops);
}
+#endif /* 0 */

--- linux-2.6.20-rc4-mm1/fs/unionfs/commonfops.c.old 2007-01-18 21:34:11.000000000 +0100
+++ linux-2.6.20-rc4-mm1/fs/unionfs/commonfops.c 2007-01-18 21:34:24.000000000 +0100
@@ -292,7 +292,7 @@
}

/* unionfs_open helper function: open a directory */
-static inline int __open_dir(struct inode *inode, struct file *file)
+static int __open_dir(struct inode *inode, struct file *file)
{
struct dentry *hidden_dentry;
struct file *hidden_file;
@@ -326,7 +326,7 @@
}

/* unionfs_open helper function: open a file */
-static inline int __open_file(struct inode *inode, struct file *file)
+static int __open_file(struct inode *inode, struct file *file)
{
struct dentry *hidden_dentry;
struct file *hidden_file;
@@ -493,7 +493,7 @@
}

/* pass the ioctl to the lower fs */
-static inline long do_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+static long do_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
struct file *hidden_file;
int err;

2007-01-19 18:40:43

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] drivers/mtd/ubi/: possible cleanups

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc3-mm1:
>...
> git-ubi.patch
>...
> git trees
>...


This patch contains the following possible cleanups:
- make needlessly global code static
- remove the following unused variable:
- debug.c: alloc_prints

Signed-off-by: Adrian Bunk <[email protected]>

---

BTW: Do you really need that many different
CONFIG_MTD_UBI_DEBUG_* options?

drivers/mtd/ubi/cdev.c | 4 +-
drivers/mtd/ubi/debug.c | 57 ++++++++++++++++++----------------------
2 files changed, 28 insertions(+), 33 deletions(-)

--- linux-2.6.20-rc4-mm1/drivers/mtd/ubi/cdev.c.old 2007-01-19 17:49:47.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/mtd/ubi/cdev.c 2007-01-19 17:50:03.000000000 +0100
@@ -47,7 +47,7 @@

static int vol_cdev_open(struct inode *inode, struct file *file);
static int vol_cdev_release(struct inode *inode, struct file *file);
-loff_t vol_cdev_llseek(struct file *file, loff_t offset, int origin);
+static loff_t vol_cdev_llseek(struct file *file, loff_t offset, int origin);
static ssize_t vol_cdev_read(struct file *file, __user char *buf,
size_t count, loff_t * offp);
static ssize_t vol_cdev_write(struct file *file, const char __user *buf,
@@ -224,7 +224,7 @@
* positive offset in case of success and a negative error code in case of
* failure.
*/
-loff_t vol_cdev_llseek(struct file *file, loff_t offset, int origin)
+static loff_t vol_cdev_llseek(struct file *file, loff_t offset, int origin)
{
const struct ubi_vtbl_vtr *vtr;
struct ubi_vol_desc *desc = file->private_data;
--- linux-2.6.20-rc4-mm1/drivers/mtd/ubi/debug.c.old 2007-01-19 17:50:42.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/mtd/ubi/debug.c 2007-01-19 18:43:59.000000000 +0100
@@ -67,74 +67,69 @@
static int vb_err_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_UIF
-int uif_prints = 1;
+static int uif_prints = 1;
#else
-int uif_prints;
+static int uif_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_CDEV
-int cdev_prints = 1;
+static int cdev_prints = 1;
#else
-int cdev_prints;
+static int cdev_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_GLUEBI
-int gluebi_prints = 1;
+static int gluebi_prints = 1;
#else
-int gluebi_prints;
+static int gluebi_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_VMT
-int vmt_prints = 1;
+static int vmt_prints = 1;
#else
-int vmt_prints;
+static int vmt_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_UPD
-int upd_prints = 1;
+static int upd_prints = 1;
#else
-int upd_prints;
+static int upd_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_VTBL
-int vtbl_prints = 1;
+static int vtbl_prints = 1;
#else
-int vtbl_prints;
+static int vtbl_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_ACC
-int acc_prints = 1;
+static int acc_prints = 1;
#else
-int acc_prints;
+static int acc_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_EBA
-int eba_prints = 1;
+static int eba_prints = 1;
#else
-int eba_prints;
+static int eba_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_WL
-int wl_prints = 1;
+static int wl_prints = 1;
#else
-int wl_prints;
+static int wl_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_BGT
-int bgt_prints = 1;
+static int bgt_prints = 1;
#else
-int bgt_prints;
-#endif
-#ifdef CONFIG_MTD_UBI_DEBUG_MSG_ALLOC
-int alloc_prints = 1;
-#else
-int alloc_prints;
+static int bgt_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_IO
-int io_prints = 1;
+static int io_prints = 1;
#else
-int io_prints;
+static int io_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_BLD
-int bld_prints = 1;
+static int bld_prints = 1;
#else
-int bld_prints;
+static int bld_prints;
#endif
#ifdef CONFIG_MTD_UBI_DEBUG_MSG_SCAN
-int scan_prints = 1;
+static int scan_prints = 1;
#else
-int scan_prints;
+static int scan_prints;
#endif

/* If debugging messages should also go to the console */

2007-01-20 22:07:36

by Josef Sipek

[permalink] [raw]
Subject: Re: [-mm patch] fs/unionfs/: possible cleanups

On Thu, Jan 18, 2007 at 10:55:54PM +0100, Adrian Bunk wrote:
> Let's start with a small exercise:
>
> Consider sparse tells you about a global function:
> warning: symbol 'unionfs_d_revalidate_wrap' was not declared. Should
> it be static?

I ran sparse last week, and cleaned up a few things (not commited to korg
yet). I'll use your patch instead.

> This patch contains the following possible cleanups:
> - every function should #include the headers containing the prototypes
> of it's global functions
> - static functions in C files shouldn't be marked "inline", gcc should
> know best when to inline them
> - make needlessly global code static
> - #if 0 the following unused global function:
> - stale_inode.c: is_stale_inode()
>
> Signed-off-by: Adrian Bunk <[email protected]>

Thanks.

Josef "Jeff" Sipek.

--
NT is to UNIX what a doughnut is to a particle accelerator.

2007-01-20 22:40:47

by Frederik Deweerdt

[permalink] [raw]
Subject: [-mm patch] oops in drivers/net/shaper.c

Hi,

The following code:
[...]
s = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL));

socket_address.sll_family = PF_PACKET;
socket_address.sll_protocol = htons(ETH_P_IP);

/*
* this happens to be shaper0 on my system
*/
=> socket_address.sll_ifindex = 2;

socket_address.sll_hatype = ARPHRD_ETHER;
socket_address.sll_pkttype = PACKET_OTHERHOST;

socket_address.sll_halen = ETH_ALEN;
socket_address.sll_addr[0] = 0x00;
socket_address.sll_addr[1] = 0x04;
socket_address.sll_addr[2] = 0x75;
socket_address.sll_addr[3] = 0xC8;
socket_address.sll_addr[4] = 0x28;
socket_address.sll_addr[5] = 0xE5;
socket_address.sll_addr[6] = 0x00;
socket_address.sll_addr[7] = 0x00;


memcpy((void *) buffer, (void *) dest_mac, ETH_ALEN);
memcpy((void *) (buffer + ETH_ALEN), (void *) src_mac, ETH_ALEN);
eh->h_proto = 0x00;

for (j = 0; j < 1500; j++) {
data[j] =
(unsigned
char) ((int) (255.0 * rand() / (RAND_MAX + 1.0)));
}

/*
* Oopses here
*/
=> send_result = sendto(s, buffer, 1499, 0,
(struct sockaddr *) &socket_address,
sizeof(socket_address));

[...]

Causes the following oops:

[ 66.355049] BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 66.355053] printing eip:
[ 66.355055] 00000000
[ 66.355056] *pde = 00000000
[ 66.355059] Oops: 0000 [#1]
[ 66.355061] PREEMPT SMP DEBUG_PAGEALLOC
[ 66.355065] last sysfs file: /devices/pci0000:00/0000:00:1e.2/modalias
[ 66.355069] Modules linked in: snd_pcm_oss snd_mixer_oss snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device af_packet ohci_hcd fuse cpufreq_stats cpufreq_powersave cpufreq_ondemand cpufreq_conservative speedstep_centrino freq_table processor ac battery i915 drm usb_storage parport_pc parport sr_mod serio_raw yenta_socket rsrc_nonstatic pcmcia_core ipw2200 tg3 snd_intel8x0 snd_ac97_codec pcspkr ac97_bus snd_pcm ehci_hcd snd_timer snd soundcore snd_page_alloc uhci_hcd usbcore shpchp pci_hotplug joydev evdev tsdev
[ 66.355115] CPU: 0
[ 66.355116] EIP: 0060:[<00000000>] Not tainted VLI
[ 66.355117] EFLAGS: 00210282 (2.6.20-rc4-mm1-def01 #2)
[ 66.355122] EIP is at 0x0
[ 66.355124] eax: f6a1f480 ebx: f705a500 ecx: 00000800 edx: 00000000
[ 66.355128] esi: f6a1f480 edi: 00000800 ebp: f6261d90 esp: f6261d70
[ 66.355131] ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
[ 66.355134] Process aze (pid: 11005, ti=f6260000 task=f62d08b0 task.ti=f6260000)
[ 66.355136] Stack: c0294465 f6261ec0 00000000 000005db f705a000 f6261f34 f6316380 f705a000
[ 66.355145] f6261dc4 f8adaf03 f6261ec0 00000000 000005db f6b1b400 f6a1f480 00080e38
[ 66.355153] f6261ec0 ffffffea f8adc1e0 000005db f6316380 f6261eac c030e1c5 000005db
[ 66.355161] Call Trace:
[ 66.355163] [<c0105265>] show_trace_log_lvl+0x1a/0x30
[ 66.355171] [<c0105324>] show_stack_log_lvl+0xa9/0xd5
[ 66.355176] [<c0105549>] show_registers+0x1f9/0x362
[ 66.355180] [<c01057de>] die+0x12c/0x261
[ 66.355184] [<c039864f>] do_page_fault+0x2ef/0x5d0
[ 66.355188] [<c0396c74>] error_code+0x7c/0x84
[ 66.355192] [<f8adaf03>] packet_sendmsg+0x147/0x201 [af_packet]
[ 66.355199] [<c030e1c5>] sock_sendmsg+0xf9/0x116
[ 66.355204] [<c030eb54>] sys_sendto+0xbf/0xe0
[ 66.355208] [<c030f494>] sys_socketcall+0x1aa/0x277
[ 66.355212] [<c01041ea>] sysenter_past_esp+0x5f/0x99
[ 66.355216] =======================
[ 66.355218] Code: Bad EIP value.
[ 66.355223] EIP: [<00000000>] 0x0 SS:ESP 0068:f6261d70

shaper_header() should check for shaper->dev not being NULL (ie. the
shaper was actually attached) as in the following patch.
This happens in mainline too (tested 2.6.19.2).

Regards,
Frederik

Signed-off-by: Frederik Deweerdt <[email protected]>

diff --git a/drivers/net/shaper.c b/drivers/net/shaper.c
index e886e8d..40e9e27 100644
--- a/drivers/net/shaper.c
+++ b/drivers/net/shaper.c
@@ -340,6 +340,10 @@ static int shaper_header(struct sk_buff *skb, struct net_device *dev,
{
struct shaper *sh=dev->priv;
int v;
+
+ if(sh->dev==NULL)
+ return -ENODEV;
+
if(sh_debug)
printk("Shaper header\n");
skb->dev=sh->dev;

2007-01-21 11:24:11

by Artem Bityutskiy

[permalink] [raw]
Subject: Re: [-mm patch] drivers/mtd/ubi/: possible cleanups

On Fri, 2007-01-19 at 19:40 +0100, Adrian Bunk wrote:
This patch contains the following possible cleanups:
> - make needlessly global code static
> - remove the following unused variable:
> - debug.c: alloc_prints
>
> Signed-off-by: Adrian Bunk <[email protected]>
>
I've committed this.

BTW: Do you really need that many different
> CONFIG_MTD_UBI_DEBUG_* options?
>
The idea is to be able to switch debugging messages on/off for different
units separately. But the number of the option may indeed be reduced - i
will try to do this.

Thanks!

--
Best regards,
Artem Bityutskiy

2007-01-21 19:14:53

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] remove one remaining "#define BCM_TSO 1"

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc3-mm1:
>...
> git-netdev-all.patch
>...
> git trees
>...

Since it's no longer used, this "#define BCM_TSO 1" can now be removed.

Signed-off-by: Adrian Bunk <[email protected]>

--- linux-2.6.20-rc4-mm1/drivers/net/bnx2.c.old 2007-01-21 18:25:52.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/net/bnx2.c 2007-01-21 18:25:58.000000000 +0100
@@ -42,7 +42,6 @@
#include <net/ip.h>
#include <net/tcp.h>
#include <net/checksum.h>
-#define BCM_TSO 1
#include <linux/workqueue.h>
#include <linux/crc32.h>
#include <linux/prefetch.h>

2007-01-22 14:00:47

by Thomas Hellström

[permalink] [raw]
Subject: Re: i810fb fails to load

Andrew Morton wrote:
>> On Mon, 15 Jan 2007 00:52:36 +0100 Tilman Schmidt <[email protected]> wrote:
>> With kernel 2.6.20-rc4-mm1 and all hotfixes, i810fb fails to load on my
>> Dell Optiplex GX110. Here's an excerpt of the diff between the boot logs
>> of 2.6.20-rc5 (working) and 2.6.20-rc4-mm1 (non-working):
>>
>> @@ -4,7 +4,7 @@
>> No module symbols loaded - kernel modules not enabled.
>>
>> klogd 1.4.1, log source = ksyslog started.
>> -<5>Linux version 2.6.20-rc5-noinitrd (ts@gx110) (gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)) #2 PREEMPT Sun Jan 14 23:37:12 CET 2007
>> +<5>Linux version 2.6.20-rc4-mm1-noinitrd (ts@gx110) (gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)) #3 PREEMPT Sun Jan 14 21:08:56 CET 2007
>> <6>BIOS-provided physical RAM map:
>> <4>sanitize start
>> <4>sanitize end
>> @@ -188,7 +192,6 @@
>> <6>ACPI: Interpreter enabled
>> <6>ACPI: Using PIC for interrupt routing
>> <6>ACPI: PCI Root Bridge [PCI0] (0000:00)
>> -<7>PCI: Probing PCI hardware (bus 00)
>> <6>ACPI: Assume root bridge [\_SB_.PCI0] bus is 0
>> <7>Boot video device is 0000:00:01.0
>> <4>PCI quirk: region 0800-087f claimed by ICH4 ACPI/GPIO/TCO
>> @@ -238,20 +241,15 @@
>> <6>isapnp: No Plug & Play device found
>> <6>Real Time Clock Driver v1.12ac
>> <6>Intel 82802 RNG detected
>> -<6>Linux agpgart interface v0.101 (c) Dave Jones
>> +<6>Linux agpgart interface v0.102 (c) Dave Jones
>> <6>agpgart: Detected an Intel i810 E Chipset.
>> <6>agpgart: detected 4MB dedicated video ram.
>> <6>agpgart: AGP aperture is 64M @ 0xf8000000
>> <4>ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 9
>> <7>PCI: setting IRQ 9 as level-triggered
>> <6>ACPI: PCI Interrupt 0000:00:01.0[A] -> Link [LNKA] -> GSI 9 (level, low) -> IRQ 9
>> -<4>i810-i2c: Probe DDC1 Bus
>> -<4>i810fb_init_pci: DDC probe successful
>> -<4>Console: switching to colour frame buffer device 160x64
>> -<4>I810FB: fb0 : Intel(R) 810E Framebuffer Device v0.9.0
>> -<4>I810FB: Video RAM : 4096K
>> -<4>I810FB: Monitor : H: 30-83 KHz V: 55-75 Hz
>> -<4>I810FB: Mode : 1280x1024-8bpp@60Hz
>> +<4>i810fb_alloc_fbmem: can't bind framebuffer memory
>> +<4>i810fb: probe of 0000:00:01.0 failed with error -16
>> <6>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
>> <6>serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
>> <6>serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
>>
>> Please let me know if you need more information.
>>
>>
>
> Don't know. But I bet someone on the Cc does...
>
Tilman,
Thanks for reporting.
Can you try the attached patch to see if that fixes the problem.

Regards,
Thomas Hellstr?m



Attachments:
i810fix.diff (844.00 B)

2007-01-22 18:17:33

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] drivers/firewire/: cleanups

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc3-mm1:
>...
> git-ieee1394.patch
>...
> git trees
>...


This patch contains the following cleanups:
- "extern inline" -> "static inline"
- fw-topology.c: make struct fw_node_create static

Signed-off-by: Adrian Bunk <[email protected]>

---

drivers/firewire/fw-ohci.c | 8 ++++----
drivers/firewire/fw-topology.c | 2 +-
drivers/firewire/fw-topology.h | 6 +++---
drivers/firewire/fw-transaction.c | 2 +-
drivers/firewire/fw-transaction.h | 2 +-
5 files changed, 10 insertions(+), 10 deletions(-)

--- linux-2.6.20-rc4-mm1/drivers/firewire/fw-topology.c.old 2007-01-22 18:27:12.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/firewire/fw-topology.c 2007-01-22 18:27:21.000000000 +0100
@@ -92,7 +92,7 @@
return (sid[index] >> shift) & 0x03;
}

-struct fw_node *fw_node_create(u32 sid, int port_count, int color)
+static struct fw_node *fw_node_create(u32 sid, int port_count, int color)
{
struct fw_node *node;

--- linux-2.6.20-rc4-mm1/drivers/firewire/fw-transaction.c.old 2007-01-22 18:27:45.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/firewire/fw-transaction.c 2007-01-22 18:27:54.000000000 +0100
@@ -106,7 +106,7 @@
}
}

-void
+static void
fw_fill_packet(struct fw_packet *packet, int tcode, int tlabel,
int node_id, int generation, int speed,
unsigned long long offset, void *payload, size_t length)
--- linux-2.6.20-rc4-mm1/drivers/firewire/fw-transaction.h.old 2007-01-22 18:29:01.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/firewire/fw-transaction.h 2007-01-22 18:29:13.000000000 +0100
@@ -198,7 +198,7 @@
void *callback_data;
};

-extern inline struct fw_packet *
+static inline struct fw_packet *
fw_packet(struct list_head *l)
{
return list_entry (l, struct fw_packet, link);
--- linux-2.6.20-rc4-mm1/drivers/firewire/fw-topology.h.old 2007-01-22 18:29:39.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/firewire/fw-topology.h 2007-01-22 18:29:43.000000000 +0100
@@ -57,13 +57,13 @@
struct fw_port ports[0];
};

-extern inline struct fw_node *
+static inline struct fw_node *
fw_node(struct list_head *l)
{
return list_entry (l, struct fw_node, link);
}

-extern inline struct fw_node *
+static inline struct fw_node *
fw_node_get(struct fw_node *node)
{
atomic_inc(&node->ref_count);
@@ -71,7 +71,7 @@
return node;
}

-extern inline void
+static inline void
fw_node_put(struct fw_node *node)
{
if (atomic_dec_and_test(&node->ref_count))
--- linux-2.6.20-rc4-mm1/drivers/firewire/fw-ohci.c.old 2007-01-22 18:32:58.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/firewire/fw-ohci.c 2007-01-22 18:33:02.000000000 +0100
@@ -147,7 +147,7 @@
struct iso_context *ir_context_list;
};

-extern inline struct fw_ohci *fw_ohci(struct fw_card *card)
+static inline struct fw_ohci *fw_ohci(struct fw_card *card)
{
return container_of(card, struct fw_ohci, card);
}
@@ -174,17 +174,17 @@

static char ohci_driver_name[] = KBUILD_MODNAME;

-extern inline void reg_write(const struct fw_ohci *ohci, int offset, u32 data)
+static inline void reg_write(const struct fw_ohci *ohci, int offset, u32 data)
{
writel(data, ohci->registers + offset);
}

-extern inline u32 reg_read(const struct fw_ohci *ohci, int offset)
+static inline u32 reg_read(const struct fw_ohci *ohci, int offset)
{
return readl(ohci->registers + offset);
}

-extern inline void flush_writes(const struct fw_ohci *ohci)
+static inline void flush_writes(const struct fw_ohci *ohci)
{
/* Do a dummy read to flush writes. */
reg_read(ohci, OHCI1394_Version);


2007-01-22 18:26:06

by Tilman Schmidt

[permalink] [raw]
Subject: Re: i810fb fails to load

Am 22.01.2007 14:42 schrieb Thomas Hellstr?m:
>>> On Mon, 15 Jan 2007 00:52:36 +0100 Tilman Schmidt <[email protected]> wrote:
>>> With kernel 2.6.20-rc4-mm1 and all hotfixes, i810fb fails to load on my
>>> Dell Optiplex GX110. [...]
>>
> Can you try the attached patch to see if that fixes the problem.

Yes, that patch fixes it.

Thanks
Tilman

> ------------------------------------------------------------------------
>
> diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
> index 91c1f36..6ef0960 100644
> --- a/drivers/char/agp/generic.c
> +++ b/drivers/char/agp/generic.c
> @@ -190,6 +190,7 @@ struct agp_memory *agp_create_memory(int
> return NULL;
> }
> new->num_scratch_pages = scratch_pages;
> + new->type = AGP_NORMAL_MEMORY;
> return new;
> }
> EXPORT_SYMBOL(agp_create_memory);
> diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
> index b8896c8..5a0713c 100644
> --- a/drivers/char/agp/intel-agp.c
> +++ b/drivers/char/agp/intel-agp.c
> @@ -260,6 +260,7 @@ static int intel_i810_insert_entries(str
> readl(intel_i810_private.registers+I810_PTE_BASE+((i-1)*4));
> break;
> case AGP_PHYS_MEMORY:
> + case AGP_NORMAL_MEMORY:
> if (!mem->is_flushed)
> global_cache_flush();
> for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (253.00 B)
OpenPGP digital signature

2007-01-22 19:47:38

by Kristian Høgsberg

[permalink] [raw]
Subject: Re: [-mm patch] drivers/firewire/: cleanups

Adrian Bunk wrote:
> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>> ...
>> Changes since 2.6.20-rc3-mm1:
>> ...
>> git-ieee1394.patch
>> ...
>> git trees
>> ...
>
>
> This patch contains the following cleanups:
> - "extern inline" -> "static inline"

I guess that's fine, I do like how extern inline will never generate code and
that gcc warns on missing prototype for these case is more of a gcc bug. Not
a big deal though, it's more worthwhile to track down real missing prototype
offenders.

> - fw-topology.c: make struct fw_node_create static

Looks good.

Signed-off-by: Kristian Høgsberg <[email protected]>


2007-01-22 20:04:18

by Adrian Bunk

[permalink] [raw]
Subject: Re: [-mm patch] drivers/firewire/: cleanups

On Mon, Jan 22, 2007 at 02:41:29PM -0500, Kristian H?gsberg wrote:
> Adrian Bunk wrote:
> >On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> >>...
> >>Changes since 2.6.20-rc3-mm1:
> >>...
> >> git-ieee1394.patch
> >>...
> >> git trees
> >>...
> >
> >
> >This patch contains the following cleanups:
> >- "extern inline" -> "static inline"
>
> I guess that's fine, I do like how extern inline will never generate code

Exactly the opposite will be true when gcc will switch to the C99
semantics...

Besides this, "static inline" forces inlining in the kernel due to
#define inline inline __attribute__((always_inline))

> and that gcc warns on missing prototype for these case is more of a gcc
> bug. Not a big deal though, it's more worthwhile to track down real
> missing prototype offenders.
>
> >- fw-topology.c: make struct fw_node_create static
>
> Looks good.
>
> Signed-off-by: Kristian H?gsberg <[email protected]>
>
>

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

2007-01-22 20:10:34

by Kristian Høgsberg

[permalink] [raw]
Subject: Re: [-mm patch] drivers/firewire/: cleanups

Adrian Bunk wrote:
> On Mon, Jan 22, 2007 at 02:41:29PM -0500, Kristian H?gsberg wrote:
>> Adrian Bunk wrote:
>>> On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>>>> ...
>>>> Changes since 2.6.20-rc3-mm1:
>>>> ...
>>>> git-ieee1394.patch
>>>> ...
>>>> git trees
>>>> ...
>>>
>>> This patch contains the following cleanups:
>>> - "extern inline" -> "static inline"
>> I guess that's fine, I do like how extern inline will never generate code
>
> Exactly the opposite will be true when gcc will switch to the C99
> semantics...
>
> Besides this, "static inline" forces inlining in the kernel due to
> #define inline inline __attribute__((always_inline))

In that case I have no reservations at all.

thanks,
Kristian

2007-01-22 20:45:37

by Stefan Richter

[permalink] [raw]
Subject: Re: [-mm patch] drivers/firewire/: cleanups

>>> Adrian Bunk wrote:
>>>> This patch contains the following cleanups:
>>>> - "extern inline" -> "static inline"
>>>> - fw-topology.c: make struct fw_node_create static

Committed to linux1394-2.6.git.
--
Stefan Richter
-=====-=-=== ---= =-==-
http://arcgraph.de/sr/

2007-01-22 21:50:42

by Dave Airlie

[permalink] [raw]
Subject: Re: i810fb fails to load

> >>
> >>
> >
> > Don't know. But I bet someone on the Cc does...
> >
> Tilman,
> Thanks for reporting.
> Can you try the attached patch to see if that fixes the problem.
>

Hi Thomas,

This also fixes X starting on old i810/5 hardware, I had noticed it
broken but hadn't had time to investigate it, this patch fixes it...

Dave.

2007-01-23 06:02:48

by Don Mullis

[permalink] [raw]
Subject: `make htmldocs` fails


Bisection shows the bad patch to be:
gregkh-driver-uio-documentation.patch

The htmldocs build failure can be eliminated by:
quilt remove Documentation/DocBook/kernel-api.tmpl

The error messages were:

.../linux-2.6.19 $ make htmldocs
DOCPROC Documentation/DocBook/kernel-api.xml
Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:521): No description found for parameter 'owner'
Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:521): No description found for parameter 'info'
Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:591): No description found for parameter 'idev'
Error(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//include/linux/uio_driver.h:33): cannot understand prototype: 'struct uio_info '
Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//include/linux/uio_driver.h): no structured comments found
make[1]: *** [Documentation/DocBook/kernel-api.xml] Error 1
make: *** [htmldocs] Error 2

The failure was observed on an up-to-date Fedora Core 5 host.

2007-01-23 06:26:19

by Randy Dunlap

[permalink] [raw]
Subject: Re: `make htmldocs` fails

On Mon, 22 Jan 2007 22:02:30 -0800 Don Mullis wrote:

>
> Bisection shows the bad patch to be:
> gregkh-driver-uio-documentation.patch
>
> The htmldocs build failure can be eliminated by:
> quilt remove Documentation/DocBook/kernel-api.tmpl

or by: quilt delete gregkh-driver-uio-documentation.patch ??

> The error messages were:
>
> .../linux-2.6.19 $ make htmldocs
> DOCPROC Documentation/DocBook/kernel-api.xml
> Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:521): No description found for parameter 'owner'
> Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:521): No description found for parameter 'info'
> Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:591): No description found for parameter 'idev'
> Error(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//include/linux/uio_driver.h:33): cannot understand prototype: 'struct uio_info '
> Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//include/linux/uio_driver.h): no structured comments found
> make[1]: *** [Documentation/DocBook/kernel-api.xml] Error 1
> make: *** [htmldocs] Error 2
>
> The failure was observed on an up-to-date Fedora Core 5 host.

How about an accurate description of what kernel tree has this problem?
It's not 2.6.19. It's not 2.6.20-rc5.

---
~Randy

2007-01-23 06:36:42

by Greg KH

[permalink] [raw]
Subject: Re: `make htmldocs` fails

On Mon, Jan 22, 2007 at 10:02:30PM -0800, Don Mullis wrote:
>
> Bisection shows the bad patch to be:
> gregkh-driver-uio-documentation.patch
>
> The htmldocs build failure can be eliminated by:
> quilt remove Documentation/DocBook/kernel-api.tmpl
>
> The error messages were:
>
> .../linux-2.6.19 $ make htmldocs
> DOCPROC Documentation/DocBook/kernel-api.xml
> Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:521): No description found for parameter 'owner'
> Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:521): No description found for parameter 'info'
> Warning(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//drivers/uio/uio.c:591): No description found for parameter 'idev'

Thanks, I've fixed these warnings now.

> Error(/noback/kernel.org/2.6.20-rc_fault-injection/linux-2.6.19//include/linux/uio_driver.h:33): cannot understand prototype: 'struct uio_info '

I think I've fixed this now, the next -mm should contain the update.

thanks for letting me know.

greg k-h

2007-01-23 06:45:52

by Don Mullis

[permalink] [raw]
Subject: Re: `make htmldocs` fails -- 2.6.20-rc4-mm1

On Mon, 2007-01-22 at 22:22 -0800, Randy Dunlap wrote:
> On Mon, 22 Jan 2007 22:02:30 -0800 Don Mullis wrote:
>
> >
> > Bisection shows the bad patch to be:
> > gregkh-driver-uio-documentation.patch
> >
> > The htmldocs build failure can be eliminated by:
> > quilt remove Documentation/DocBook/kernel-api.tmpl
>
> or by: quilt delete gregkh-driver-uio-documentation.patch ??

That would fix the htmldoc build too, but would throw out lots of
documentation. Greg K-H would seem the prime candidate to propose a
fix.


> How about an accurate description of what kernel tree has this problem?
> It's not 2.6.19. It's not 2.6.20-rc5.

2.6.20-rc4-mm1, sorry. Forgot that posting as a reply to the
2.6.20-rc4-mm1 announcement is no help for someone receiving the mail
directly.


2007-01-23 11:10:42

by Thomas Hellström

[permalink] [raw]
Subject: Re: i810fb fails to load

Dave Airlie wrote:
>> >>
>> >>
>> >
>> > Don't know. But I bet someone on the Cc does...
>> >
>> Tilman,
>> Thanks for reporting.
>> Can you try the attached patch to see if that fixes the problem.
>>
>
> Hi Thomas,
>
> This also fixes X starting on old i810/5 hardware, I had noticed it
> broken but hadn't had time to investigate it, this patch fixes it...
>
> Dave.
Great.
The oldest hardware I have is an i915 which hampers me a bit.

/Thomas



2007-01-24 13:53:49

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.20-rc4-mm1: PCI=n: drivers/net/3c59x.c compile error

3x59x-fix-pci-resource-management.patch causes the following compile
error with CONFIG_PCI=n:

<-- snip -->

...
CC drivers/net/3c59x.o
/home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c: In function 'vortex_init_one':
/home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:961: error: implicit declaration of function 'pci_request_regions'
/home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:985: error: implicit declaration of function 'pci_release_regions'
make[3]: *** [drivers/net/3c59x.o] Error 1

<-- snip -->

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

2007-01-24 14:12:32

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: PCI=n: drivers/net/3c59x.c compile error

Hello.

Adrian Bunk wrote:
> 3x59x-fix-pci-resource-management.patch causes the following compile
> error with CONFIG_PCI=n:
>
> <-- snip -->
>
> ...
> CC drivers/net/3c59x.o
> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c: In function 'vortex_init_one':
> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:961: error: implicit declaration of function 'pci_request_regions'
> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:985: error: implicit declaration of function 'pci_release_regions'
> make[3]: *** [drivers/net/3c59x.o] Error 1

Grr, at at the same time it's happy with pci_enable_device().
I'd say the problem is in <linux/pci.h>, not in the patch.

> cu
> Adrian

MBR, Sergei

2007-01-24 22:35:54

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] MTD_CK804XROM must depend on PCI

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
>...
> git-mtd.patch
>...
> git trees

CONFIG_MTD_CK804XROM=y, CONFIG_PCI=n results in the following compile
error:

<-- snip -->

...
CC drivers/mtd/maps/ck804xrom.o
/home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/mtd/maps/ck804xrom.c: In function 'ck804xrom_init_one':
/home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/mtd/maps/ck804xrom.c:114: error: implicit declaration of function 'pci_dev_get'
/home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/mtd/maps/ck804xrom.c:114: warning: assignment makes pointer from integer without a cast
make[4]: *** [drivers/mtd/maps/ck804xrom.o] Error 1

<-- snip -->

Considering what hardware this driver is driving, a dependency on PCI
also seems logical.

Signed-off-by: Adrian Bunk <[email protected]>

--- linux-2.6.20-rc4-mm1/drivers/mtd/maps/Kconfig.old 2007-01-24 13:53:18.000000000 +0100
+++ linux-2.6.20-rc4-mm1/drivers/mtd/maps/Kconfig 2007-01-24 13:53:39.000000000 +0100
@@ -204,7 +204,7 @@

config MTD_CK804XROM
tristate "BIOS flash chip on Nvidia CK804"
- depends on X86 && MTD_JEDECPROBE
+ depends on X86 && MTD_JEDECPROBE && PCI
help
Support for treating the BIOS flash chip on nvidia motherboards
as an MTD device - with this you can reprogram your BIOS.

2007-02-05 00:44:17

by David Miller

[permalink] [raw]
Subject: Re: [-mm patch] remove tcp header from tcp_v4_check (take #2)

From: Frederik Deweerdt <[email protected]>
Date: Fri, 12 Jan 2007 13:55:14 +0000

> On Fri, Jan 12, 2007 at 01:33:09PM +0000, Frederik Deweerdt wrote:
> > On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
> > >
> Hi,
>
> Sorry for the resend, I forgot the Signed-off-by line, and noticed a
> whitespace breakage in ipt_REJECT.
> The tcphdr struct passed to tcp_v4_check is not used, the following
> patch removes it from the parameter list.
> This adds the netfilter modifications missing in the patch I sent
> for rc3-mm1.
>
> Regards,
> Frederik
>
> Signed-off-by: Frederik Deweerdt <[email protected]>

Applied, thanks Frederik.

2007-02-17 19:26:26

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: PCI=n: drivers/net/3c59x.c compile error

Hello, I wrote:
>> 3x59x-fix-pci-resource-management.patch causes the following compile
>> error with CONFIG_PCI=n:

>> <-- snip -->

>> ...
>> CC drivers/net/3c59x.o
>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:
>> In function 'vortex_init_one':
>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:961:
>> error: implicit declaration of function 'pci_request_regions'
>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:985:
>> error: implicit declaration of function 'pci_release_regions'
>> make[3]: *** [drivers/net/3c59x.o] Error 1

> Grr, at at the same time it's happy with pci_enable_device().
> I'd say the problem is in <linux/pci.h>, not in the patch.

Has there been any patch to fix the "unbalanced"
pci_{request|release}_regions() declarations? Am I suposed to create such?

>> cu
>> Adrian

MBR, Sergei


2007-02-17 19:32:46

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: PCI=n: drivers/net/3c59x.c compile error

Hello.

Sergei Shtylyov wrote:

>>> 3x59x-fix-pci-resource-management.patch causes the following compile
>>> error with CONFIG_PCI=n:

>>> <-- snip -->

>>> ...
>>> CC drivers/net/3c59x.o
>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:
>>> In function 'vortex_init_one':
>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:961:
>>> error: implicit declaration of function 'pci_request_regions'
>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:985:
>>> error: implicit declaration of function 'pci_release_regions'
>>> make[3]: *** [drivers/net/3c59x.o] Error 1
>
>
>> Grr, at at the same time it's happy with pci_enable_device().
>> I'd say the problem is in <linux/pci.h>, not in the patch.

> Has there been any patch to fix the "unbalanced"
> pci_{request|release}_regions() declarations? Am I suposed to create such?

Alternatively, vortex_{init|remove_one() and struct pci_driver there could
have been put under #ifdef CONFIG_PCI (good idea anyway -- should reduce
driver size on non-PCI systems)...

>>> cu
>>> Adrian

MBR, Sergei

2007-02-20 00:19:56

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: different values for OHCI_QUIRK_ZFMICRO

On Sun, Jan 14, 2007 at 06:36:10AM -0800, David Brownell wrote:
> On Sunday 14 January 2007 1:10 am, Adrian Bunk wrote:
> > <-- snip -->
>
> Waiting for Tony to submit bugfixes to his driver...

Still unfixed as of 2.6.20-mm1.

> > ...
> > CC drivers/usb/misc/ftdi-elan.o
> > /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/ftdi-elan.c:2307:1: warning: "OHCI_QUIRK_ZFMICRO" redefined
> > In file included from /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/ftdi-elan.c:76:
> > /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/usb/misc/../host/ohci.h:399:1: warning: this is the location of the previous definition
> > ...
> > $ grep -r ^#define * | grep OHCI_QUIRK_ZFMICRO
> > drivers/usb/host/ohci.h:#define OHCI_QUIRK_ZFMICRO 0x20 /* Compaq ZFMicro chipset*/
> > drivers/usb/host/u132-hcd.c:#define OHCI_QUIRK_ZFMICRO 0x10
> > drivers/usb/misc/ftdi-elan.c:#define OHCI_QUIRK_ZFMICRO 0x10
> > $
> >
> > <-- snip -->

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

2007-02-26 13:22:42

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: PCI=n: drivers/net/3c59x.c compile error

Hello, I wrote:

>>>> 3x59x-fix-pci-resource-management.patch causes the following compile
>>>> error with CONFIG_PCI=n:

>>>> <-- snip -->

>>>> ...
>>>> CC drivers/net/3c59x.o
>>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:
>>>> In function 'vortex_init_one':
>>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:961:
>>>> error: implicit declaration of function 'pci_request_regions'
>>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:985:
>>>> error: implicit declaration of function 'pci_release_regions'
>>>> make[3]: *** [drivers/net/3c59x.o] Error 1

>>> Grr, at at the same time it's happy with pci_enable_device().
>>> I'd say the problem is in <linux/pci.h>, not in the patch.

>> Has there been any patch to fix the "unbalanced"
>> pci_{request|release}_regions() declarations? Am I suposed to create
>> such?

> Alternatively, vortex_{init|remove_one() and struct pci_driver there
> could have been put under #ifdef CONFIG_PCI (good idea anyway -- should
> reduce driver size on non-PCI systems)...

I wonder if I may count on any feedback on this -- asking linux-pci now...
The issue is as follows: with my patch pci_{request|release}_regions() may
be called with CONFIG_PCI=n (probably, this never has been a issue before) but
<linux/pci.h> don't have them declared in this case -- unlike
pci_enable_device() which is just empty for CONFIG_PCI=n.
Now, what kind of approach do I take:

- a "fair one", so that pci_{request|release}_regions() get "balanced"
declarations in the header like pci_enable_device();

- a "local one" (and even saving non-PCI kernel from needless bloat), i.e.
#ifdef out functions that are only meaningful with CONFIG_PCI=y)?

I'm leaning to the second now...

>>>> cu
>>>> Adrian

MBR, Sergei

2007-02-26 18:30:25

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: PCI=n: drivers/net/3c59x.c compile error

On Mon, 26 Feb 2007 16:22:27 +0300 Sergei Shtylyov wrote:

> Hello, I wrote:
>
> >>>> 3x59x-fix-pci-resource-management.patch causes the following compile
> >>>> error with CONFIG_PCI=n:
>
> >>>> <-- snip -->
>
> >>>> ...
> >>>> CC drivers/net/3c59x.o
> >>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:
> >>>> In function 'vortex_init_one':
> >>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:961:
> >>>> error: implicit declaration of function 'pci_request_regions'
> >>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:985:
> >>>> error: implicit declaration of function 'pci_release_regions'
> >>>> make[3]: *** [drivers/net/3c59x.o] Error 1
>
> >>> Grr, at at the same time it's happy with pci_enable_device().
> >>> I'd say the problem is in <linux/pci.h>, not in the patch.
>
> >> Has there been any patch to fix the "unbalanced"
> >> pci_{request|release}_regions() declarations? Am I suposed to create
> >> such?
>
> > Alternatively, vortex_{init|remove_one() and struct pci_driver there
> > could have been put under #ifdef CONFIG_PCI (good idea anyway -- should
> > reduce driver size on non-PCI systems)...
>
> I wonder if I may count on any feedback on this -- asking linux-pci now...
> The issue is as follows: with my patch pci_{request|release}_regions() may
> be called with CONFIG_PCI=n (probably, this never has been a issue before) but
> <linux/pci.h> don't have them declared in this case -- unlike
> pci_enable_device() which is just empty for CONFIG_PCI=n.
> Now, what kind of approach do I take:
>
> - a "fair one", so that pci_{request|release}_regions() get "balanced"
> declarations in the header like pci_enable_device();
>
> - a "local one" (and even saving non-PCI kernel from needless bloat), i.e.
> #ifdef out functions that are only meaningful with CONFIG_PCI=y)?
>
> I'm leaning to the second now...

I'd prefer the fair one -- add stubs to include/linux/pci.h.

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-02-26 21:18:26

by Greg KH

[permalink] [raw]
Subject: Re: 2.6.20-rc4-mm1: PCI=n: drivers/net/3c59x.c compile error

On Mon, Feb 26, 2007 at 09:26:44AM -0800, Randy Dunlap wrote:
> On Mon, 26 Feb 2007 16:22:27 +0300 Sergei Shtylyov wrote:
>
> > Hello, I wrote:
> >
> > >>>> 3x59x-fix-pci-resource-management.patch causes the following compile
> > >>>> error with CONFIG_PCI=n:
> >
> > >>>> <-- snip -->
> >
> > >>>> ...
> > >>>> CC drivers/net/3c59x.o
> > >>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:
> > >>>> In function 'vortex_init_one':
> > >>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:961:
> > >>>> error: implicit declaration of function 'pci_request_regions'
> > >>>> /home/bunk/linux/kernel-2.6/linux-2.6.20-rc4-mm1/drivers/net/3c59x.c:985:
> > >>>> error: implicit declaration of function 'pci_release_regions'
> > >>>> make[3]: *** [drivers/net/3c59x.o] Error 1
> >
> > >>> Grr, at at the same time it's happy with pci_enable_device().
> > >>> I'd say the problem is in <linux/pci.h>, not in the patch.
> >
> > >> Has there been any patch to fix the "unbalanced"
> > >> pci_{request|release}_regions() declarations? Am I suposed to create
> > >> such?
> >
> > > Alternatively, vortex_{init|remove_one() and struct pci_driver there
> > > could have been put under #ifdef CONFIG_PCI (good idea anyway -- should
> > > reduce driver size on non-PCI systems)...
> >
> > I wonder if I may count on any feedback on this -- asking linux-pci now...
> > The issue is as follows: with my patch pci_{request|release}_regions() may
> > be called with CONFIG_PCI=n (probably, this never has been a issue before) but
> > <linux/pci.h> don't have them declared in this case -- unlike
> > pci_enable_device() which is just empty for CONFIG_PCI=n.
> > Now, what kind of approach do I take:
> >
> > - a "fair one", so that pci_{request|release}_regions() get "balanced"
> > declarations in the header like pci_enable_device();
> >
> > - a "local one" (and even saving non-PCI kernel from needless bloat), i.e.
> > #ifdef out functions that are only meaningful with CONFIG_PCI=y)?
> >
> > I'm leaning to the second now...
>
> I'd prefer the fair one -- add stubs to include/linux/pci.h.

Me too, please just send me a patch adding them to pci.h so you don't
have to have #ifdefs in your .c code.

thanks,

greg k-h