* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Dave Martin @ 2011-12-06 9:30 UTC (permalink / raw)
To: Rob Herring
Cc: Anton Vorontsov, Nicolas Pitre, Stephen Rothwell,
Russell King - ARM Linux, Pawel Moll, devicetree-discuss, LKML,
Jeff Garzik, linux-ide, Randy Dunlap, linux-next,
linux-arm-kernel, Andrew Morton, Linus Torvalds, Ingo Molnar,
Alan Cox, Jonas Bonn, Michal Simek, Grant Likely
In-Reply-To: <4EDD2DE1.1050606@gmail.com>
On Mon, Dec 05, 2011 at 02:47:29PM -0600, Rob Herring wrote:
> On 12/05/2011 02:21 PM, Anton Vorontsov wrote:
> > On Mon, Dec 05, 2011 at 01:16:39PM -0600, Rob Herring wrote:
> > [...]
> >> At least for DT enabled platforms, we could force "no irq" to be 0 in
> >> the DT irq code. Searching the dts files, I found 2 occurrences of IRQ0.
> >
> > Please note that there are HW IRQ numbers and "Virtual" IRQ numbers.
> > dev->irq and thus the thing that we pass into request_irq() is a
> > virtual IRQ thing, a "cookie".
> >
> > While in device tree you see real HW IRQ numbers.
> >
> > Legal VIRQ is always > 0, while HW IRQ could be >= 0.
> >
>
> If this was all true, then there would be no discussion.
>
> This is what we are working towards, but irq_chips all over the arm tree
> do not support any translation or have base fixed at compile time. Only
> a few have been converted. And some ARM platforms may never get
> converted to DT.
>
> >> Prima2 has timer on IRQ0, and VersatileAB has watchdog on IRQ0. Prima2
> >> should be fine currently as it doesn't use the of_irq_* functions to get
> >> the timer irq, but that is an issue as it skips any translation.
> >> VersatileAB should be okay with the VIC irqdomain support.
> >
> > It shouldn't be an issue to use of_irq_*() functions for these IRQs.
> > of_irq_*() will remap HW IRQ 0 to some other VIRQ. If it does not do
> > this currently, then it's a bug and should be fixed.
>
> I think that's what I'm saying. It's either a bug or incomplete DT
> conversion for the platform. Either way, those should get fixed first.
Do we expect there to be any platform drivers which are shared between
legacy platforms and newer DT-ised platforms?
Those drivers would be pain points since they would need to understand
both conventions.
So far as I can see, only boards which are not DT-ised, which do not use
DT-ised drivers and which do not use drivers which use interrupts and
are either used by DT-ised boards or by arches with a non-zero NO_IRQ
could safely carry on using a non-zero NO_IRQ. Tracking down exactly
which boards and drivers this applies to could be hard. We could have a
CONFIG_NO_IRQ and make them depend on it, but we still have to find that
list of boards and drivers in the first place.
Otherwise, it feels like we might need a strategy for migrating pretty
much everything if we don't want to end up in a mess.
Cheers
---Dave
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Jean-Christophe PLAGNIOL-VILLARD @ 2011-12-06 6:13 UTC (permalink / raw)
To: Alan Cox
Cc: Nicolas Pitre, Stephen Rothwell, Russell King - ARM Linux,
Pawel Moll, devicetree-discuss, LKML, Jeff Garzik, linux-ide,
Randy Dunlap, linux-next, Anton Vorontsov, Andrew Morton,
Linus Torvalds, Ingo Molnar, linux-arm-kernel
In-Reply-To: <20111205184522.316598de@lxorguk.ukuu.org.uk>
On 18:45 Mon 05 Dec , Alan Cox wrote:
> > But as you illustrated, there is a large number of drivers that already
> > assume no IRQ is < 0, even if they don't use any IRQ #0 themselves.
> > That is a much bigger problem to fix.
>
> And a much larger number assuming the reverse is true which are hiding
> potential bugs on ARM.
>
> Looking at the serial stuff the best checks appear to be looking at
> "irq", "-1" and NO_IRQ.
>
> For migration stuff that's doing broken things like
>
> if (irq < 0)
>
> can be changed to
>
> if (irq <= 0)
>
> and that can be done before NO_IRQ itself is nailed on ARM and PA-RISC.
can we sinply introduce a macro irq_is_valid
and make it chip dependant as gpio_is_valid
and then move away from irq 0 valid
so we do not need to brake anthing first and then easly convert them
Best Regards,
J.
^ permalink raw reply
* linux-next: Tree for Dec 6
From: Stephen Rothwell @ 2011-12-06 4:44 UTC (permalink / raw)
To: linux-next; +Cc: LKML
[-- Attachment #1: Type: text/plain, Size: 38375 bytes --]
Hi all,
Changes since 20111205:
New tree: memblock
Dropped tree: memblock (build problems)
The pci tree gained a build failure so I used the version from
next-20111205.
The memblock tree gained conflicts against the vhost and arm trees and a
build failure so I dropped it for today.
I removed some patches from the akpm tree that has turned up elsewhere.
----------------------------------------------------------------------------
I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ). If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one. You should use "git fetch" as mentioned in the FAQ on the wiki
(see below).
You can see which trees have been included by looking in the Next/Trees
file in the source. There are also quilt-import.log and merge.log files
in the Next directory. Between each merge, the tree was built with
a ppc64_defconfig for powerpc and an allmodconfig for x86_64. After the
final fixups (if any), it is also built with powerpc allnoconfig (32 and
64 bit), ppc44x_defconfig and allyesconfig (minus
CONFIG_PROFILE_ALL_BRANCHES - this fails its final link) and i386, sparc
and sparc64 defconfig. These builds also have
CONFIG_ENABLE_WARN_DEPRECATED, CONFIG_ENABLE_MUST_CHECK and
CONFIG_DEBUG_INFO disabled when necessary.
Below is a summary of the state of the merge.
We are up to 202 trees (counting Linus' and 27 trees of patches pending
for Linus' tree), more are welcome (even if they are currently empty).
Thanks to those who have contributed, and to those who haven't, please do.
Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next . If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.
Thanks to Randy Dunlap for doing many randconfig builds.
There is a wiki covering stuff to do with linux-next at
http://linux.f-seidel.de/linux-next/pmwiki/ . Thanks to Frank Seidel.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
$ git checkout master
$ git reset --hard stable
Merging origin/master (8e8da02 x86: Fix boot failures on older AMD CPU's)
Merging fixes/master (aaa0b4f iio: iio_event_getfd -- fix ev_int build failure)
Merging kbuild-current/rc-fixes (44656fa kbuild: Fix missing system calls check on mips.)
Merging arm-current/fixes (4cbd6b1 ARM: 7182/1: ARM cpu topology: fix warning)
Merging m68k-current/for-linus (2690e21 m68k/mac: Remove mac_irq_{en,dis}able() wrappers)
Merging powerpc-merge/merge (49e4406 powerpc/44x: Add mtd ndfc to the ppx44x defconfig)
Merging 52xx-and-virtex-current/powerpc/merge (c49f878 dtc/powerpc: remove obsolete .gitignore entries)
Merging sparc/master (dbf2b92 sbus: convert drivers/sbus/char/* to use module_platform_driver())
Merging scsi-rc-fixes/master (e5a44df [SCSI] hpsa: Disable ASPM)
Merging net/master (321f3b8 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless)
Merging sound-current/for-linus (cf54d47 Merge branch 'fix/asoc' into for-linus)
Merging pci-current/for-linus (8c45194 PCI: fix ats compile failure)
Merging wireless/master (9995ffe iwlwifi: change the default behavior of watchdog timer)
Merging driver-core.current/driver-core-linus (caca6a0 Linux 3.2-rc3)
Merging tty.current/tty-linus (caca6a0 Linux 3.2-rc3)
Merging usb.current/usb-linus (8593b6f Merge branch 'for-usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-linus)
Merging staging.current/staging-linus (dfd8ee9 Staging: comedi: fix integer overflow in do_insnlist_ioctl())
Merging char-misc.current/char-misc-linus (caca6a0 Linux 3.2-rc3)
Merging cpufreq-current/fixes (5983fe2 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging input-current/for-linus (77f6ca5 Input: ams_delta_serio - include linux/module.h)
Merging md-current/for-linus (257a4b4 md/raid5: STRIPE_ACTIVE has lock semantics, add barriers)
Merging audit-current/for-linus (def5754 Audit: remove spaces from audit_log_d_path)
Merging crypto-current/master (2742528 crypto: mv_cesa - fix hashing of chunks > 1920 bytes)
Merging ide/master (0ab3d8b cy82c693: fix PCI device selection)
Merging dwmw2/master (244dc4e Merge git://git.infradead.org/users/dwmw2/random-2.6)
Merging sh-current/sh-fixes-for-linus (21d41f2 sh: fix the compile error in setup-sh7757.c)
Merging rmobile-current/rmobile-fixes-for-linus (a408bae ARM: mach-shmobile: sh7372 CMT3 and CMT4 clock support)
Merging devicetree-current/devicetree/merge (50e07f8 dt: add empty of_machine_is_compatible)
Merging spi-current/spi/merge (940ab88 drivercore: Add helper macro for platform_driver boilerplate)
Merging arm/for-next (92b19da Merge branch 'devel' into for-next)
CONFLICT (content): Merge conflict in arch/arm/tools/mach-types
CONFLICT (content): Merge conflict in arch/arm/plat-omap/include/plat/common.h
Merging arm-lpae/for-next (2a24f17 ARM: LPAE: Add the Kconfig entries)
CONFLICT (content): Merge conflict in arch/arm/mm/ioremap.c
CONFLICT (content): Merge conflict in arch/arm/include/asm/tlb.h
CONFLICT (content): Merge conflict in arch/arm/include/asm/pgtable.h
CONFLICT (content): Merge conflict in arch/arm/include/asm/pgalloc.h
Merging arm-soc/for-next (7958e98 Merge branch 'next/timer' into for-next)
CONFLICT (content): Merge conflict in arch/arm/mach-at91/setup.c
CONFLICT (content): Merge conflict in arch/arm/mach-at91/at91sam9rl.c
CONFLICT (content): Merge conflict in arch/arm/mach-at91/at91sam9g45.c
CONFLICT (content): Merge conflict in arch/arm/mach-at91/at91sam9263.c
CONFLICT (content): Merge conflict in arch/arm/mach-at91/at91sam9261.c
CONFLICT (content): Merge conflict in arch/arm/mach-at91/at91sam9260.c
CONFLICT (content): Merge conflict in arch/arm/mach-at91/at91cap9.c
Merging arm-perf/for-next/perf (c0b91d4 Merge branches 'perf/event-nos', 'perf/omap4' and 'perf/updates' into for-next/perf)
Merging at91/at91-next (8748dfa Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux)
Merging davinci/davinci-next (fe0d422 Linux 3.0-rc6)
Merging i.MX/for-next (5788f4d Merge branches 'imx-fixes', 'imx-cleanup' and 'imx-features' into master)
CONFLICT (content): Merge conflict in arch/arm/plat-mxc/include/mach/hardware.h
CONFLICT (modify/delete): arch/arm/mach-mx5/pm-imx5.c deleted in HEAD and modified in i.MX/for-next. Version i.MX/for-next of arch/arm/mach-mx5/pm-imx5.c left in tree.
CONFLICT (modify/delete): arch/arm/mach-mx5/Makefile deleted in HEAD and modified in i.MX/for-next. Version i.MX/for-next of arch/arm/mach-mx5/Makefile left in tree.
CONFLICT (modify/delete): arch/arm/mach-mx5/Kconfig deleted in HEAD and modified in i.MX/for-next. Version i.MX/for-next of arch/arm/mach-mx5/Kconfig left in tree.
CONFLICT (content): Merge conflict in arch/arm/mach-imx/mm-imx5.c
CONFLICT (content): Merge conflict in arch/arm/mach-imx/devices-imx53.h
CONFLICT (content): Merge conflict in arch/arm/mach-imx/clock-mx51-mx53.c
$ git rm -f arch/arm/mach-mx5/pm-imx5.c arch/arm/mach-mx5/Makefile arch/arm/mach-mx5/Kconfig
Merging linux-spec/for-next (5111711 Merge branch 'for-2.6.37' of git://linux-nfs.org/~bfields/linux)
Merging omap/for-next (322a8b0 Linux 3.1-rc1)
Merging pxa/for-next (19d6c13 [ARM] pxa/hx4700: actually use platform_lcd driver)
Merging samsung/next-samsung (9edb240 ARM: H1940/RX1950: Change default LED triggers)
Merging s5p/for-next (d3d936c Merge branch 'samsung-fixes-2' into for-next)
CONFLICT (content): Merge conflict in arch/arm/mach-s3c64xx/mach-crag6410.c
CONFLICT (content): Merge conflict in arch/arm/mach-exynos/include/mach/entry-macro.S
CONFLICT (content): Merge conflict in arch/arm/mach-exynos/cpu.c
Merging tegra/for-next (b48c54e Merge branch 'for-3.3/boards' into for-next)
Merging xilinx/arm-next (b85a3ef ARM: Xilinx: Adding Xilinx board support)
Merging blackfin/for-linus (e5fd47b xen/pm_idle: Make pm_idle be default_idle under Xen.)
Merging c6x/for-linux-next (2141355 C6X: MAINTAINERS)
Merging cris/for-next (ea78f5b CRIS: Update documentation)
Merging quilt/hexagon (110b372 Remove unneeded include of version.h from arch/hexagon/include/asm/spinlock_types.h)
Merging ia64/next (2174f6d pstore: gracefully handle NULL pstore_info functions)
Merging m68k/for-next (3ef5597 m68k: Don't comment out syscalls used by glibc)
Merging m68knommu/for-next (285aa94 m68knommu: fix broken ColdFire slice timer read_clk() code)
CONFLICT (content): Merge conflict in arch/m68k/Kconfig.debug
Merging microblaze/next (7f80850 Merge branch 'rmobile-fixes-for-linus' of git://github.com/pmundt/linux-sh)
Merging mips/mips-for-linux-next (1fc140c Merge branches 'next/ar7', 'next/ath79', 'next/bcm63xx', 'next/bmips', 'next/cavium', 'next/generic', 'next/kprobes', 'next/lantiq', 'next/perf' and 'next/raza' into mips-for-linux-next)
Merging openrisc/for-upstream (b6fd41e Linux 3.1-rc6)
Merging parisc/for-next (fc99a91 futex: Use same lock set as lws calls)
Merging powerpc/next (fa8cbaa powerpc+sparc64/mm: Remove hack in mmap randomize layout)
Merging 4xx/next (f1ab937 MAINTAINERS: Update PowerPC 4xx git tree)
Merging 52xx-and-virtex/powerpc/next (c1395f4 dtc/powerpc: remove obsolete .gitignore entries)
Merging galak/next (fa8cbaa powerpc+sparc64/mm: Remove hack in mmap randomize layout)
Merging s390/features (b6c55cb [S390] topology: increase poll frequency if change is anticipated)
Merging sh/sh-latest (b9a3acf Merge branch 'sh/stable-updates' into sh-latest)
Merging rmobile/rmobile-latest (b58c580 Merge branch 'rmobile-fixes-for-linus' into rmobile-latest)
Merging sparc-next/master (3ee72ca Merge git://github.com/davem330/net)
Merging tile/master (0c90547 arch/tile: use new generic {enable,disable}_percpu_irq() routines)
Merging unicore32/unicore32 (ed96dfb unicore32, exec: remove redundant set_fs(USER_DS))
Merging xtensa/master (29aced6 xtensa: remove defining register numbers)
Merging ceph/for-next (3395734 libceph: fix double-free of page vector)
Merging cifs/master (138514b cifs: check for NULL last_entry before calling cifs_save_resume_key)
Merging configfs/linux-next (b930c26 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs)
Merging ecryptfs/next (aaef29d eCryptfs: Flush file in vma close)
Merging ext3/for_next (ed47a7d udf: Cleanup metadata flags handling)
Merging ext4/dev (4c81f04 ext4: fix racy use-after-free in ext4_end_io_dio())
Merging fatfs/master (710d440 fat: fat16 support maximum 4GB file/vol size as WinXP or 7.)
Merging fuse/for-next (cfcfc9e Linux 3.2-rc2)
Merging gfs2/master (018a01c GFS2: We only need one ACL getting function)
Merging hfsplus/for-next (6596528 hfsplus: ensure bio requests are not smaller than the hardware sectors)
Merging jfs/next (1c8007b jfs: flush journal completely before releasing metadata inodes)
Merging logfs/master (21f3eb8 logfs: update page reference count for pined pages)
CONFLICT (content): Merge conflict in fs/logfs/file.c
Merging nfs/linux-next (111d489 NFSv4.1: Ensure that we handle _all_ SEQUENCE status bits.)
Merging nfsd/nfsd-next (353de31 nfsd4: fix CONFIG_NFSD_FAULT_INJECTION compile error)
Merging nilfs2/for-next (93ee7a9 Linux 3.1-rc2)
Merging ocfs2/linux-next (9392557 ocfs2: avoid unaligned access to dqc_bitmap)
Merging omfs/for-next (976d167 Linux 3.1-rc9)
Merging squashfs/master (7657cac Squashfs: Add an option to set dev block size to 4K)
Merging v9fs/for-next (883381d Merge branch 'dev' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4)
Merging ubifs/linux-next (eaecf43 UBIFS: Use kmemdup rather than duplicating its implementation)
Merging xfs/master (a99ebf4 xfs: fix allocation length overflow in xfs_bmapi_write())
Merging vfs/for-next (206b1d0 Fix POSIX ACL permission check)
Merging vfs-scale/vfs-scale-working (32385c7 kernel: fix hlist_bl again)
Merging pci/linux-next (eeae333 PCI: delay configuration of SRIOV capability)
$ git reset --hard HEAD^
Merging refs/next/20111205/pci
Merging hid/for-next (3f7f555 Merge branch 'hyperv' into for-next)
Merging quilt/i2c (caca6a0 Linux 3.2-rc3)
Merging bjdooks-i2c/next-i2c (f8420b7 fixup merge)
CONFLICT (add/add): Merge conflict in drivers/i2c/busses/i2c-designware-platdrv.c
Merging quilt/jdelvare-hwmon (dda4fa1 hwmon: (lm63) Add support for LM96163)
Merging hwmon-staging/hwmon-next (a976c2a hwmon: (pmbus/zl6100) Only instantiate external temperature sensor if enabled)
Merging quilt/kernel-doc (c3b92c8 Linux 3.1)
Merging docs/docs-move (5c24d8b Merge branch 'docs/docbook/drm' of git://github.com/mfwitten/linux into docs-move)
Merging v4l-dvb/master (ed3825f Merge branch 'poll-pwc2' of /home/v4l/v4l/patchwork)
CONFLICT (content): Merge conflict in drivers/staging/media/as102/as102_drv.h
Merging kbuild/for-next (ddb550d Merge branch 'kbuild/misc' into kbuild/for-next)
Merging kconfig/for-next (eae1c36 Merge branch 'kconfig/for-linus-2' into kconfig/for-next)
Merging libata/NEXT (3fab0c1 ahci: start engine only during soft/hard resets)
Merging infiniband/for-next (5611cc45 Linux 3.2-rc4)
Merging acpi/next (efb9058 Merge branches 'acpi', 'idle', 'mrst-pmu' and 'pm-tools' into next)
Merging cpupowerutils/master (498ca79 cpupower: use man(1) when calling "cpupower help subcommand")
Merging ieee1394/for-next (a572e68 firewire: ohci: fix isochronous DMA synchronization)
Merging ubi/linux-next (c55d743 UBI: fix missing scrub when there is a bit-flip)
Merging dlm/next (9beb3bf dlm: convert rsb list to rb_tree)
Merging scsi/master (f7c9c6b [SCSI] Fix block queue and elevator memory leak in scsi_alloc_sdev)
Merging target-updates/for-next (5bda90c target: use ->exectute_task for all CDB emulation)
Merging target-merge/for-next-merge (e0d85e5 ib_srpt: Initial SRP Target merge for v3.2-rc1)
Merging slave-dma/next (5cd326f dmaengine/ste_dma40: allow fixed physical channel)
CONFLICT (content): Merge conflict in drivers/dma/pl330.c
Merging async_tx/next (21ef4b8 dmaengine: use DEFINE_IDR for static initialization)
Merging net-next/master (17e6abe infiniband: ipoib: Sanitize neighbour handling in ipoib_main.c)
CONFLICT (content): Merge conflict in drivers/net/wireless/iwlwifi/iwl-agn.c
Merging wireless-next/master (d7a4858 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless)
CONFLICT (content): Merge conflict in drivers/net/wireless/iwlwifi/iwl-agn.c
Merging bluetooth/master (5a13b09 Bluetooth: trivial: correct check for LMP version)
Merging mtd/master (df16c86 mtd: gpmi: add missing include 'module.h')
Merging l2-mtd/master (5fb10a6 mtd: davinci: if no amif timing is passed, don; t setup cscfg register)
Merging crypto/master (741e8c2 crypto: convert drivers/crypto/* to use module_platform_driver())
Merging sound/for-next (3ff60ef Merge branch 'topic/misc' into for-next)
Merging sound-asoc/for-next (a2760e4 Merge branch 'for-3.2' into for-3.3)
CONFLICT (content): Merge conflict in arch/arm/mach-s3c64xx/mach-crag6410.c
Merging cpufreq/next (b191c54 Merge branch 'for_3.3/omap-cpufreq' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into next)
Merging quilt/rr (bbdfe28 lguest: switch segment-voodoo-numbers to readable symbols)
Merging input/next (e23ed60 Input: htcpen - switch to DMI-based autoloading)
CONFLICT (content): Merge conflict in drivers/input/keyboard/samsung-keypad.c
Merging input-mt/next (02f8c6a Linux 3.0)
Merging lsm/for-next (ca05a99 capabilities: remain source compatible with 32-bit raw legacy capability support.)
Merging block/for-next (629baa7 Merge branch 'for-linus' into for-next)
Merging quilt/device-mapper (94956ee Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging embedded/master (4744b43 embedded: fix vc_translate operator precedence)
Merging firmware/master (6e03a20 firmware: speed up request_firmware(), v3)
Merging pcmcia/master (74411c0 smc91c92_cs.c: fix bogus compiler warning)
Merging battery/master (00a159a max8925_power: Check at probe time if power to set online)
Merging mmc/mmc-next (666b6ab mmc: sdhci-s3c: Add pm_caps into SD/MMC host)
Merging kgdb/kgdb-next (880ba69 lib: rename pack_hex_byte() to hex_byte_pack())
Merging slab/for-next (7436099 Merge branch 'slab/next' into for-next)
Merging uclinux/for-next (5e442a4 Revert "proc: fix races against execve() of /proc/PID/fd**")
Merging md/for-next (c7eefaf md/raid1: Mark device replaceable when we see a write error.)
Merging mfd/for-next (b958f7a mfd: Fix missing abx500 header file updates)
Merging hdlc/hdlc-next (4a6908a Linux 2.6.28)
Merging drm/drm-next (04b3924 drm: Redefine pixel formats)
Merging fbdev/fbdev-next (f940b88 video: s3c2410: fix checkpatch error and warnings)
Merging viafb/viafb-next (4ce36bb viafb: replace strict_strtoul to kstrto* and check return value)
Merging omap_dss2/for-next (3e28189 OMAPDSS: picodlp: add missing #include <linux/module.h>)
Merging regulator/for-next (2f288ef Merge branch 'topic/dt' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-next)
Merging security/next (de35353 digsig: build dependency fix)
CONFLICT (content): Merge conflict in lib/Makefile
Merging selinux/master (ded5098 SELinux: skip file_name_trans_write() when policy downgraded.)
Merging lblnet/master (7e27d6e Linux 2.6.35-rc3)
Merging watchdog/linux-next (80fee40 watchdog: move coh901327 state holders)
Merging bdev/master (feaf384 Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block)
Merging dwmw2-iommu/master (c3b92c8 Linux 3.1)
Merging iommu/next (a7e892e Merge branches 'iommu/fixes', 'iommu/page-sizes' and 'iommu/group-id' into next)
Merging cputime/cputime (c5927fe [S390] cputime: add sparse checking and cleanup)
Merging osd/linux-next (dde406e pnfs-obj: Support for RAID5 read-4-write interface.)
Merging jc_docs/docs-next (5c050fb docs: update the development process document)
Merging nommu/master (0ce790e Linux 2.6.39-rc1)
Merging trivial/for-next (0518318 hyper-v: Update MAINTAINERS)
CONFLICT (content): Merge conflict in net/mac80211/work.c
CONFLICT (content): Merge conflict in arch/powerpc/platforms/40x/Kconfig
Merging audit/for-next (def5754 Audit: remove spaces from audit_log_d_path)
Merging pm/linux-next (3d564ef PM / Sleep: Unify diagnostic messages from device suspend/resume)
Merging apm/for-next (282e5aa x86: Kconfig: drop unknown symbol 'APM_MODULE')
Merging fsnotify/for-next (ef9bf3b fanotify: only destroy a mark if both its mask and its ignored_mask are cleared)
Merging irda/for-next (94d57c4 enic: Update MAINTAINERS)
Merging edac/linux_next (4d096ca MAINTAINERS: add an entry for Edac Sandy Bridge driver)
Merging edac-amd/for-next (ed8ccfa Merge branch '3.3-edac-scrubrate' into edac-for-next)
Merging devicetree/devicetree/next (ae97159 of_mdio: Don't phy_scan_fixups() twice)
Merging spi/spi/next (940ab88 drivercore: Add helper macro for platform_driver boilerplate)
Merging gpio/gpio/next (d92ef29 h8300: Move gpio.h to gpio-internal.h)
Merging tip/auto-latest (b75bc75 Merge branch 'x86/urgent' into auto-latest)
CONFLICT (content): Merge conflict in arch/mips/kernel/perf_event_mipsxx.c
Merging rcu/rcu/next (afe24b1 rcu: Move propagation of ->completed from rcu_start_gp() to rcu_report_qs_rsp())
Merging uprobes/for-next (b23a347 x86: skip singlestep where possible)
Merging cgroup/for-next (a34815b Merge branch 'for-3.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup)
Merging kmemleak/kmemleak (029aeff kmemleak: Add support for memory hotplug)
Merging kvm/kvm-updates/3.2 (a3e06bb KVM: emulate lapic tsc deadline timer for guest)
Merging oprofile/for-next (de346b6 Merge branch 'perf/core' into oprofile/master)
Merging xen/upstream/xen (ec8161f Merge branch 'upstream/microcode' into upstream/xen)
CONFLICT (content): Merge conflict in arch/x86/xen/Kconfig
Merging xen-two/linux-next (54e6a3c Merge branch 'stable/for-linus-3.3' into linux-next)
CONFLICT (content): Merge conflict in arch/x86/xen/Kconfig
Merging xen-pvhvm/linux-next (b056b6a xen: suspend: remove xen_hvm_suspend)
Merging percpu/for-next (a34815b Merge branch 'for-3.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup)
Merging workqueues/for-next (9c5a2ba workqueue: separate out drain_workqueue() from destroy_workqueue())
Merging sfi/sfi-test (5b026c4 SFI: use ioremap_cache() instead of ioremap())
Merging asm-generic/next (35dbc0e asm-generic/io.h: allow people to override individual funcs)
Merging drivers-x86/linux-next (15b956a acer-wmi: support Lenovo ideapad S205 wifi switch)
Merging hwpoison/hwpoison (46e387b Merge branch 'hwpoison-hugepages' into hwpoison)
Merging sysctl/master (c2f5631 sysctl: remove impossible condition check)
Merging namespace/master (7e05c93 proc: Fix the proc access checks to namespace files.)
Merging regmap/for-next (681ba97 Merge branch 'regmap/irq' into regmap-next)
Merging hsi/for-next (a8b4dea HSI: hsi_char: Update ioctl-number.txt)
Merging driver-core/driver-core-next (11e3123 uio: convert drivers/uio/* to use module_platform_driver())
Merging tty/tty-next (7962fce tty: n_hdlc not atomic use tty->flags.)
CONFLICT (content): Merge conflict in drivers/tty/serial/Makefile
CONFLICT (content): Merge conflict in drivers/tty/serial/Kconfig
Merging usb/usb-next (b870def USB: ohci-s3c2410: add PM support)
Merging staging/staging-next (0c9d196 Staging: hv: update TODO file)
CONFLICT (content): Merge conflict in drivers/staging/iio/industrialio-core.c
CONFLICT (content): Merge conflict in drivers/staging/iio/adc/ad799x_core.c
CONFLICT (content): Merge conflict in drivers/staging/hv/Makefile
CONFLICT (content): Merge conflict in drivers/staging/hv/Kconfig
CONFLICT (rename/delete): drivers/hid/hid-hyperv.c deleted in staging/staging-next and renamed in HEAD. Version HEAD of drivers/hid/hid-hyperv.c left in tree.
Merging char-misc/char-misc-next (7f3379d misc: ad525x_dpot: Add support for SPI module device table matching)
Merging bkl-config/config (4ba8216 BKL: That's all, folks)
Merging tmem/tmem (665c1e6 mm: cleancache: Use __read_mostly as appropiate.)
CONFLICT (content): Merge conflict in mm/swapfile.c
Merging writeback/writeback-for-next (71d9429 btrfs: fix dirtied pages accounting on sub-page writes)
Merging arm-dt/devicetree/arm-next (ede338f dt: add documentation of ARM dt boot interface)
Merging hwspinlock/linux-next (8b37fcf hwspinlock: add MAINTAINERS entries)
Merging pinctrl/for-next (866b301 pinctrl: add a pin config interface)
Merging moduleh/for-sfr (6aec187 drivers/media: video/a5k6aa is a module and so needs module.h)
Merging vhost/linux-next (193a667 alpha: drop pci_iomap/pci_iounmap from pci-noop.c)
CONFLICT (content): Merge conflict in arch/m68k/Kconfig
CONFLICT (content): Merge conflict in arch/hexagon/Kconfig
Merging kmap_atomic/kmap_atomic (9578557 feature-removal-schedule.txt: add the deprecated form of kmap_atomic())
Merging memblock/memblock-kill-early_node_map (f7e95d2 memblock: Reimplement memblock allocation using reverse free area iterator)
CONFLICT (content): Merge conflict in arch/score/Kconfig
CONFLICT (content): Merge conflict in arch/arm/mm/init.c
$ git reset --hard HEAD^
Merging kvmtool/master (d5e6b9f kvm tools: Remove double 'init=' kernel param)
CONFLICT (content): Merge conflict in scripts/kconfig/Makefile
CONFLICT (content): Merge conflict in include/net/9p/9p.h
Merging scsi-post-merge/merge-base:master ()
$ git checkout akpm
Applying: vmscan: fix initial shrinker size handling
Applying: vmscan: use atomic-long for shrinker batching
Applying: fs/proc/meminfo.c: fix compilation error
Applying: thp: reduce khugepaged freezing latency
Applying: CREDITS: update Kees's expired fingerprint and fix details
Applying: drivers/rtc/rtc-s3c.c: fix driver clock enable/disable balance issues
Applying: memcg: update maintainers
Applying: printk: avoid double lock acquire
Applying: thp: add compound tail page _mapcount when mapped
Applying: thp: set compound tail page _count to zero
Applying: mm/migrate.c: pair unlock_page() and lock_page() when migrating huge pages
Applying: mm: Ensure that pfn_valid() is called once per pageblock when reserving pageblocks
Applying: cpusets: stall when updating mems_allowed for mempolicy or disjoint nodemask
Applying: cpusets-stall-when-updating-mems_allowed-for-mempolicy-or-disjoint-nodemask-fix
Applying: net/netfilter/nf_conntrack_netlink.c: fix Oops on container destroy
Applying: acerhdf: add support for Aspire 1410 BIOS v1.3314
Applying: acerhdf: add support for new hardware
Applying: acerhdf: lowered default temp fanon/fanoff values
Applying: arch/x86/platform/iris/iris.c: register a platform device and a platform driver
Applying: x86, olpc-xo15-sci: enable lid close wakeup control through sysfs
Applying: x86-olpc-xo15-sci-enable-lid-close-wakeup-control-through-sysfs-fix
Applying: mm/vmalloc.c: eliminate extra loop in pcpu_get_vm_areas error path
Applying: mm-vmallocc-eliminate-extra-loop-in-pcpu_get_vm_areas-error-path-fix
Applying: drivers/platform/x86/sony-laptop.c: fix scancodes
Applying: drivers-platform-x86-sony-laptopc-fix-scancodes-checkpatch-fixes
Applying: arch/arm/mach-ux500/mbox-db5500.c: world-writable sysfs fifo file
Applying: arm, exec: remove redundant set_fs(USER_DS)
Applying: hrtimers: Special-case zero length sleeps
Applying: tick-sched: add specific do_timer_cpu value for nohz off mode
Applying: ia64, exec: remove redundant set_fs(USER_DS)
Applying: kconfig: add merge_config.sh script
Applying: merge_config.sh: use signal names compatible with dash and bash
Applying: merge_config.sh: whitespace cleanup
Applying: merge_config.sh: fix bug in final check
Applying: ctags: remove struct forward declarations
Applying: ipc/mqueue: cleanup definition names and locations
Applying: ipc/mqueue: switch back to using non-max values on create
Applying: ipc/mqueue: enforce hard limits
Applying: ipc/mqueue: update maximums for the mqueue subsystem
Applying: ipc-mqueue-update-maximums-for-the-mqueue-subsystem-fix
Applying: ipc-mqueue-update-maximums-for-the-mqueue-subsystem-checkpatch-fixes
Applying: ext4: use proper little-endian bitops
Applying: parisc, exec: remove redundant set_fs(USER_DS)
Applying: scsi: fix a header to include linux/types.h
Applying: drivers/scsi/megaraid.c: fix sparse warnings
Applying: drivers/scsi/aacraid/commctrl.c: fix mem leak in aac_send_raw_srb()
Applying: drivers/scsi/sg.c: convert to kstrtoul_from_user()
Applying: drivers/scsi/mpt2sas/mpt2sas_base.c: fix mismatch in mpt2sas_base_hard_reset_handler() mutex lock-unlock
Applying: drivers/message/fusion/mptbase.c: ensure NUL-termination of MptCallbacksName elements
Applying: fs: remove unneeded plug in mpage_readpages()
Applying: MAINTAINERS: Staging: cx25821: Add L: linux-media
Applying: mm/page-writeback.c: make determine_dirtyable_memory static again
Applying: vmscan: promote shared file mapped pages
Applying: vmscan: activate executable pages after first usage
Applying: mm: add free_hot_cold_page_list() helper
Applying: mm-add-free_hot_cold_page_list-helper-v2
Applying: mm-add-free_hot_cold_page_list-helper-v3
Applying: mm: remove unused pagevec_free
Applying: mm-tracepoint: rename page-free events
Applying: mm-tracepoint: fix documentation and examples
Applying: mm: fix page-faults detection in swap-token logic
Applying: mm: add extra free kbytes tunable
Applying: mm-add-extra-free-kbytes-tunable-update
Applying: mm-add-extra-free-kbytes-tunable-update-checkpatch-fixes
Applying: mm: migrate: one less atomic operation
Applying: mm: do not stall in synchronous compaction for THP allocations
Applying: mm-do-not-stall-in-synchronous-compaction-for-thp-allocations-v3
Applying: mm: reduce the amount of work done when updating min_free_kbytes
Applying: mm-reduce-the-amount-of-work-done-when-updating-min_free_kbytes-checkpatch-fixes
Applying: mm: avoid livelock on !__GFP_FS allocations
Applying: mm: account reaped page cache on inode cache pruning
Applying: hugetlb: detect race upon page allocation failure during COW
Applying: hugetlb: clarify hugetlb_instantiation_mutex usage
Applying: mm/hugetlb.c: fix virtual address handling in hugetlb fault
Applying: mm-hugetlbc-fix-virtual-address-handling-in-hugetlb-fault-fix
Applying: kernel.h: add BUILD_BUG() macro
Applying: kernel.h: Add BUILD_BUG() macro.
Applying: hugetlb: replace BUG() with BUILD_BUG() for dummy definitions
Applying: mm: more intensive memory corruption debugging
Applying: mm-more-intensive-memory-corruption-debug-fix
Applying: PM/Hibernate: do not count debug pages as savable
Applying: slub: min order when debug_guardpage_minorder > 0
Applying: fadvise: only initiate writeback for specified range with FADV_DONTNEED
Applying: mm, debug: test for online nid when allocating on single node
Applying: vmscan: add task name to warn_scan_unevictable() messages
Applying: mm: exclude reserved pages from dirtyable memory
Applying: mm-exclude-reserved-pages-from-dirtyable-memory-fix
Applying: mm: writeback: cleanups in preparation for per-zone dirty limits
Applying: mm: try to distribute dirty pages fairly across zones
Applying: mm: filemap: pass __GFP_WRITE from grab_cache_page_write_begin()
Applying: Btrfs: pass __GFP_WRITE for buffered write page allocations
Applying: mm: compaction: push isolate search base of compact control one pfn ahead
Applying: mm,x86: remove debug_pagealloc_enabled
Applying: hpet: factor timer allocate from open
Applying: intel_idle: fix API misuse
Applying: intel_idle: disable auto_demotion for hotplugged CPUs
Applying: kernel.h: neaten panic prototype
Applying: include/linux/linkage.h: remove unused NORET_AND macro
Applying: treewide: remove useless NORET_TYPE macro and uses
Applying: treewide: convert uses of ATTRIB_NORETURN to __noreturn
Applying: treewide-convert-uses-of-attrib_noreturn-to-__noreturn-checkpatch-fixes
Applying: include/linux/linkage.h: remove unused ATTRIB_NORET macro
Applying: mm,slub,x86: decouple size of struct page from CONFIG_CMPXCHG_LOCAL
Applying: mm,x86,um: move CMPXCHG_LOCAL config option
Applying: mm,x86,um: move CMPXCHG_DOUBLE config option
Applying: audit: always follow va_copy() with va_end()
Applying: brlocks/lglocks: clean up code
CONFLICT (content): Merge conflict in kernel/Makefile
Applying: brlocks-lglocks-clean-up-code-checkpatch-fixes
Applying: include/log2.h: fix rounddown_pow_of_two(1)
Applying: get_maintainers.pl: follow renames when looking up commit signers
Applying: backlight: remove ADX backlight device support
Applying: backlight: convert drivers/video/backlight/* to use module_platform_driver()
Applying: leds: convert led platform drivers to module_platform_driver
Applying: leds: convert led i2c drivers to module_i2c_driver
Applying: leds: convert leds-dac124s085 to module_spi_driver
Applying: drivers/leds/leds-lp5523.c: remove unneeded forward declaration
Applying: drivers/leds/leds-bd2802.c: use gpio_request_one()
Applying: drivers/leds/leds-netxbig.c: use gpio_request_one()
Applying: checkpatch: update signature "might be better as" warning
Applying: checkpatch: prefer __printf over __attribute__((format(printf,...)))
Applying: checkpatch: correctly track the end of preprocessor commands in context
Applying: checkpatch: fix up complex macros context format
Applying: checkpatch: check for common memset parameter issues against statments
Applying: checkpatch: improve memset and min/max with cast checking
Applying: checkpatch-improve-memset-and-min-max-with-cast-checking-fix
Applying: checkpatch: ## is not a valid modifier
Applying: checkpatch: optimise statement scanner when mid-statement
Applying: checkpatch: only apply kconfig help checks for options which prompt
Applying: checkpatch: fix EXPORT_SYMBOL handling following a function
Applying: checkpatch: complex macro should allow the empty do while loop
Applying: checkpatch: fix 'return is not a function' square bracket handling
Applying: checkpatch: fix complex macros handling of square brackets
Applying: checkpatch: ensure cast type is unique in the context parser
Applying: checkpatch: typeof may have more complex arguments
Applying: checkpatch: catch all occurances of type and cast spacing errors per line
Applying: checkpatch-catch-all-occurances-of-type-and-cast-spacing-errors-per-line-checkpatch-fixes
Applying: crc32: optimize inner loop
Applying: epoll: limit paths
Applying: fs: binfmt_elf: create Kconfig variable for PIE randomization
Applying: MIPS: randomize PIE load address
Applying: init/do_mounts.c: create /root if it does not exist
Applying: drivers/rtc/rtc-cmos.c: fix broken NVRAM bank 2 writing
Applying: drivers/rtc/rtc-mxc.c: fix setting time for MX1 SoC
Applying: drivers-rtc-rtc-mxcc-fix-setting-time-for-mx1-soc-fix
Applying: drivers/rtc/rtc-mxc.c: make alarm work
Applying: drivers-rtc-rtc-mxcc-make-alarm-work-fix
Applying: rtc/ab8500: don't disable IRQ:s when suspending
Applying: rtc/ab8500: set can_wake flag
Applying: drivers/rtc/rtc-ab8500.c: change msleep() to usleep_range()
Applying: rtc/ab8500: Add calibration attribute to AB8500 RTC
Applying: rtc-ab8500-add-calibration-attribute-to-ab8500-rtc-checkpatch-fixes
Applying: reiserfs: delete comments refering to the BKL
Applying: reiserfs: delay reiserfs lock until journal initialization
Applying: reiserfs: don't lock journal_init()
Applying: reiserfs: don't lock root inode searching
Applying: cgroups: add res_counter_write_u64() API
Applying: cgroups: new resource counter inheritance API
Applying: cgroups: add previous cgroup in can_attach_task/attach_task callbacks
Applying: cgroups: new cancel_attach_task() subsystem callback
Applying: cgroups: ability to stop res charge propagation on bounded ancestor
Applying: cgroups: add res counter common ancestor searching
Applying: res_counter: allow charge failure pointer to be null
Applying: cgroups: pull up res counter charge failure interpretation to caller
Applying: cgroups: allow subsystems to cancel a fork
Applying: cgroups: add a task counter subsystem
Applying: cgroups: ERR_PTR needs err.h
Applying: cgroup: Fix task counter common ancestor logic
Applying: cgroup-fix-task-counter-common-ancestor-logic-checkpatch-fixes
Applying: mm: memcg: consolidate hierarchy iteration primitives
Applying: mm: vmscan: distinguish global reclaim from global LRU scanning
Applying: mm: vmscan: distinguish between memcg triggering reclaim and memcg being scanned
Applying: mm-vmscan-distinguish-between-memcg-triggering-reclaim-and-memcg-being-scanned-checkpatch-fixes
Applying: mm: memcg: per-priority per-zone hierarchy scan generations
Applying: mm: move memcg hierarchy reclaim to generic reclaim code
Applying: mm: memcg: remove optimization of keeping the root_mem_cgroup LRU lists empty
Applying: mm: vmscan: convert global reclaim to per-memcg LRU lists
Applying: mm: collect LRU list heads into struct lruvec
Applying: mm: make per-memcg LRU lists exclusive
Applying: mm: memcg: remove unused node/section info from pc->flags
Applying: mm: memcg: remove unused node/section info from pc->flags fix
Applying: memcg: make mem_cgroup_split_huge_fixup() more efficient
Applying: memcg-make-mem_cgroup_split_huge_fixup-more-efficient-fix
Applying: mm: memcg: shorten preempt-disabled section around event checks
Applying: Documentation/cgroups/memory.txt: fix typo
Applying: memcg: fix pgpgin/pgpgout documentation
Applying: mm: oom_kill: remove memcg argument from oom_kill_task()
Applying: mm: unify remaining mem_cont, mem, etc. variable names to memcg
Applying: mm: memcg: clean up fault accounting
Applying: mm: memcg: lookup_page_cgroup (almost) never returns NULL
Applying: mm: page_cgroup: check page_cgroup arrays in lookup_page_cgroup() only when necessary
Applying: mm: memcg: remove unneeded checks from newpage_charge()
Applying: mm: memcg: remove unneeded checks from uncharge_page()
Applying: thp: improve the error code path
Applying: thp: remove unnecessary tlb flush for mprotect
Applying: thp: add tlb_remove_pmd_tlb_entry
Applying: thp: improve order in lru list for split huge page
Applying: procfs: make proc_get_link to use dentry instead of inode
Applying: procfs: introduce the /proc/<pid>/map_files/ directory
Applying: procfs-introduce-the-proc-pid-map_files-directory-checkpatch-fixes
Applying: procfs: parse mount options
Applying: procfs: add hidepid= and gid= mount options
Applying: workqueue: make alloc_workqueue() take printf fmt and args for name
Applying: workqueue-make-alloc_workqueue-take-printf-fmt-and-args-for-name-fix
Applying: cpumask: update setup_node_to_cpumask_map() comments
Applying: kexec: remove KMSG_DUMP_KEXEC
Applying: kdump: add missing RAM resource in crash_shrink_memory()
Applying: kdump: add udev events for memory online/offline
Applying: kdump: crashk_res init check for /sys/kernel/kexec_crash_size
Applying: kdump: fix crash_kexec()/smp_send_stop() race in panic()
Applying: ipc/mqueue: simplify reading msgqueue limit
Applying: ipc/sem.c: alternatives to preempt_disable()
Applying: sysctl: add the kernel.ns_last_pid control
Applying: user namespace: make signal.c respect user namespaces
Applying: __send_signal: pass q->info, not info, to userns_fixup_signal_uid (v2)
Applying: ipc/mqueue: lock() => unlock() typo
Applying: drivers/memstick: use kmemdup rather than duplicating its implementation
Applying: fs/direct-io.c: calculate fs_count correctly in get_more_blocks()
Applying: vfs: cache request_queue in struct block_device
Applying: dio: optimize cache misses in the submission path
Applying: dio-optimize-cache-misses-in-the-submission-path-v2-checkpatch-fixes
Applying: dio: using prefetch requires including prefetch.h
Applying: ramoops: fix use of rounddown_pow_of_two()
Applying: ramoops: update parameters only after successful init
Applying: unlzo: Fix input buffer free
Merging akpm (039050e unlzo: Fix input buffer free)
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: linux-next: manual merge of the memblock tree with the arm tree
From: Nicolas Pitre @ 2011-12-06 4:11 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Tejun Heo, linux-next, linux-kernel, Russell King
In-Reply-To: <20111206141816.628d9fc4ab58e23eb9fc63f0@canb.auug.org.au>
On Tue, 6 Dec 2011, Stephen Rothwell wrote:
> Hi Tejun,
>
> [Tejun, I know you told me about these, but I am reporting them anyway
> just for completeness.]
>
> Today's linux-next merge of the memblock tree got a conflict in
> arch/arm/mm/init.c between commit 27a3f0e91bed ("ARM: sort the meminfo
> array earlier") from the arm tree and commit 0dac7e2d90aa ("memblock:
> Kill memblock_init()") from the memblock tree.
>
> Just context changes. I fixed it up (see below) and can carry the fix as
> necessary.
The fix looks trivially correct.
> --
> Cheers,
> Stephen Rothwell sfr@canb.auug.org.au
>
> diff --cc arch/arm/mm/init.c
> index 786addd,7c38474..0000000
> --- a/arch/arm/mm/init.c
> +++ b/arch/arm/mm/init.c
> @@@ -310,7 -331,8 +311,6 @@@ void __init arm_memblock_init(struct me
> {
> int i;
>
> - memblock_init();
> - sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
> -
> for (i = 0; i < mi->nr_banks; i++)
> memblock_add(mi->bank[i].start, mi->bank[i].size);
>
>
^ permalink raw reply
* linux-next: manual merge of the akpm tree with the tip tree
From: Stephen Rothwell @ 2011-12-06 4:04 UTC (permalink / raw)
To: Andrew Morton
Cc: linux-next, linux-kernel, Andi Kleen, Thomas Gleixner,
Ingo Molnar, H. Peter Anvin, Peter Zijlstra
[-- Attachment #1: Type: text/plain, Size: 1071 bytes --]
Hi Andrew,
Today's linux-next merge of the akpm tree got a conflict in
kernel/Makefile between commit 029632fbb7b7 ("sched: Make separate
sched*.c translation units") from the tip tree and commit f7243fa71a4c
("brlocks/lglocks: clean up code") from the akpm tree.
I fixed it up (see below) and can carry the fix as necessary.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc kernel/Makefile
index 4363a41,d173c0c..0000000
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@@ -9,8 -9,9 +9,8 @@@ obj-y = fork.o exec_domain.o panic.
rcupdate.o extable.o params.o posix-timers.o \
kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \
hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \
- notifier.o ksysfs.o sched_clock.o cred.o \
- async.o range.o
-obj-y += groups.o lglock.o
+ notifier.o ksysfs.o cred.o \
- async.o range.o groups.o
++ async.o range.o groups.o lglock.o
ifdef CONFIG_FUNCTION_TRACER
# Do not trace debug files and internal ftrace files
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* linux-next: build failure after merge of the memblock tree
From: Stephen Rothwell @ 2011-12-06 3:38 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-next, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1077 bytes --]
Hi Tejun,
After merging the memblock tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:
arch/powerpc/mm/numa.c: In function 'get_node_active_region':
arch/powerpc/mm/numa.c:143:11: error: dereferencing pointer to incomplete type
arch/powerpc/mm/numa.c:144:11: error: dereferencing pointer to incomplete type
arch/powerpc/mm/numa.c:145:11: error: dereferencing pointer to incomplete type
arch/powerpc/mm/numa.c: In function 'mark_reserved_regions_for_nid':
arch/powerpc/mm/numa.c:960:29: error: storage size of 'node_ar' isn't known
arch/powerpc/mm/numa.c:960:29: error: unused variable 'node_ar' [-Werror=unused-variable]
cc1: all warnings being treated as errors
Caused by commit 9d0d131f9f6d ("memblock: Kill early_node_map[]") which
seems to have misspelled CONFIG_HAVE_MEMBLOCK_NODE_MAP as
CONFIG_MEMBLOCK_HAVE_NODE_MAP in include/linux/mmzone.h.
I have dropped the memblock tree for today - we can try again tomorrow.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* linux-next: manual merge of the memblock tree with the arm tree
From: Stephen Rothwell @ 2011-12-06 3:18 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-next, linux-kernel, Nicolas Pitre, Russell King
[-- Attachment #1: Type: text/plain, Size: 946 bytes --]
Hi Tejun,
[Tejun, I know you told me about these, but I am reporting them anyway
just for completeness.]
Today's linux-next merge of the memblock tree got a conflict in
arch/arm/mm/init.c between commit 27a3f0e91bed ("ARM: sort the meminfo
array earlier") from the arm tree and commit 0dac7e2d90aa ("memblock:
Kill memblock_init()") from the memblock tree.
Just context changes. I fixed it up (see below) and can carry the fix as
necessary.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc arch/arm/mm/init.c
index 786addd,7c38474..0000000
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@@ -310,7 -331,8 +311,6 @@@ void __init arm_memblock_init(struct me
{
int i;
- memblock_init();
- sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
-
for (i = 0; i < mi->nr_banks; i++)
memblock_add(mi->bank[i].start, mi->bank[i].size);
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: linux-next: build failure after merge of the pci tree
From: Bjorn Helgaas @ 2011-12-06 3:16 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Jesse Barnes, linux-next, linux-kernel
In-Reply-To: <20111206111852.6931fd03f0b1a86e318a29e3@canb.auug.org.au>
On Mon, Dec 5, 2011 at 5:18 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi Jesse,
>
> After merging the pci tree, today's linux-next build
> (powerpc_ppc64_defconfig) failed like this:
>
> arch/powerpc/kernel/pci_64.c: In function 'pcibios_map_io_space':
> arch/powerpc/kernel/pci_64.c:201:2: error: implicit declaration of function 'pcibios_phb_map_phb_io_space' [-Werror=implicit-function-declaration]
>
> Caused by commit fb8fca4ff3f7 ("powerpc/PCI: split PHB part out of
> pcibios_map_io_space()").
>
> arch/powerpc/kernel/pci-common.c: In function 'pcibios_scan_phb':
> arch/powerpc/kernel/pci-common.c:1726:7: error: incompatible type for argument 5 of 'pci_create_root_bus'
> include/linux/pci.h:665:17: note: expected 'struct list_head *' but argument is of type 'struct list_head'
>
> Caused by commit 3c73944e7ace ("powerpc/PCI: convert to
> pci_create_root_bus()").
>
> I have used the pci tree from next-20111205 for today.
> --
> Cheers,
> Stephen Rothwell sfr@canb.auug.org.au
> http://www.canb.auug.org.au/~sfr/
I fixed these; the updated patches are on
git://github.com/bjorn-helgaas/linux.git on
the "pci-scan-v4" branch (head f9da8b214fef1ac4072e4af2a663293ab965f796).
Here's the incremental diff from v3 to v4 (hand-created and whitespace-damaged):
diff --git a/c4677881a:arch/powerpc/kernel/pci_64.c
b/f9da8b214:arch/powerpc/kernel/pci_64.c
index 4401425..3318d39 100644
--- a/c4677881a:arch/powerpc/kernel/pci_64.c
+++ b/f9da8b214:arch/powerpc/kernel/pci_64.c
@@ -197,7 +198,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
return 0;
}
- return pcibios_phb_map_phb_io_space(pci_bus_to_host(bus));
+ return pcibios_map_phb_io_space(pci_bus_to_host(bus));
}
EXPORT_SYMBOL_GPL(pcibios_map_io_space);
diff --git a/c4677881a:arch/powerpc/kernel/pci-common.c
b/f9da8b214:arch/powerpc/kernel/pci-common.c
index 8c47c57..2aa707b 100644
--- a/c4677881a:arch/powerpc/kernel/pci-common.c
+++ b/f9da8b214:arch/powerpc/kernel/pci-common.c
@@ -1711,7 +1712,7 @@ void __devinit pcibios_scan_phb(struct
pci_controller *hose)
/* Create an empty bus for the toplevel */
bus = pci_create_root_bus(hose->parent, hose->first_busno,
- hose->ops, hose, resources);
+ hose->ops, hose, &resources);
if (bus == NULL) {
pr_err("Failed to create bus for PCI domain %04x\n",
hose->global_number);
^ permalink raw reply related
* linux-next: manual merge of the memblock tree with the vhost tree
From: Stephen Rothwell @ 2011-12-06 3:12 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-next, linux-kernel, Michael S. Tsirkin
[-- Attachment #1: Type: text/plain, Size: 1103 bytes --]
Hi Tejun,
[Tejun, I know you told me about these, but I am reporting them anyway
just for completeness.]
Today's linux-next merge of the memblock tree got a conflict in
arch/score/Kconfig between commit 4673ca8eb369 ("lib: move GENERIC_IOMAP
to lib/Kconfig") from the vhost tree and commit 77bd85cae44e ("score: Use
HAVE_MEMBLOCK_NODE_MAP") from the memblock tree.
Just context changes (and white space). I fixed it up (see below) and can
carry the fix as necessary.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc arch/score/Kconfig
index 455ce2d,1b4d02b..0000000
--- a/arch/score/Kconfig
+++ b/arch/score/Kconfig
@@@ -1,10 -1,12 +1,13 @@@
menu "Machine selection"
config SCORE
- def_bool y
- select HAVE_GENERIC_HARDIRQS
- select GENERIC_IRQ_SHOW
- select GENERIC_IOMAP
+ def_bool y
+ select HAVE_GENERIC_HARDIRQS
+ select GENERIC_IRQ_SHOW
+ select HAVE_MEMBLOCK
+ select HAVE_MEMBLOCK_NODE_MAP
+ select ARCH_DISCARD_MEMBLOCK
++ select GENERIC_IOMAP
choice
prompt "System type"
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* linux-next: build failure after merge of the pci tree
From: Stephen Rothwell @ 2011-12-06 0:18 UTC (permalink / raw)
To: Jesse Barnes; +Cc: linux-next, linux-kernel, Bjorn Helgaas
[-- Attachment #1: Type: text/plain, Size: 960 bytes --]
Hi Jesse,
After merging the pci tree, today's linux-next build
(powerpc_ppc64_defconfig) failed like this:
arch/powerpc/kernel/pci_64.c: In function 'pcibios_map_io_space':
arch/powerpc/kernel/pci_64.c:201:2: error: implicit declaration of function 'pcibios_phb_map_phb_io_space' [-Werror=implicit-function-declaration]
Caused by commit fb8fca4ff3f7 ("powerpc/PCI: split PHB part out of
pcibios_map_io_space()").
arch/powerpc/kernel/pci-common.c: In function 'pcibios_scan_phb':
arch/powerpc/kernel/pci-common.c:1726:7: error: incompatible type for argument 5 of 'pci_create_root_bus'
include/linux/pci.h:665:17: note: expected 'struct list_head *' but argument is of type 'struct list_head'
Caused by commit 3c73944e7ace ("powerpc/PCI: convert to
pci_create_root_bus()").
I have used the pci tree from next-20111205 for today.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* [PATCH] x86/intel_mid: Fix the Kconfig for MID selection
From: Alan Cox @ 2011-12-05 23:14 UTC (permalink / raw)
To: mingo, linux-next
From: Alan Cox <alan@linux.intel.com>
We could build all the bits to make generic MID work if you picked
MID platform alone but that's really silly. Instead use select and
two variables.
This looks a bit daft right now but once we add a Medfield selection
it'll start to look a good deal more sensible.
Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Alan Cox <alan@linux.intel.com>
---
arch/x86/Kconfig | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 4ee940c..b884f4c 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -395,7 +395,7 @@ config X86_INTEL_CE
This option compiles in support for the CE4100 SOC for settop
boxes and media devices.
-config X86_INTEL_MID
+config X86_WANT_INTEL_MID
bool "Intel MID platform support"
depends on X86_32
depends on X86_EXTENDED_PLATFORM
@@ -404,7 +404,7 @@ config X86_INTEL_MID
systems which do not have the PCI legacy interfaces (Moorestown,
Medfield). If you are building for a PC class system say N here.
-if X86_INTEL_MID
+if X86_WANT_INTEL_MID
config X86_MRST
bool "Moorestown MID platform"
@@ -416,6 +416,7 @@ config X86_MRST
select SPI
select INTEL_SCU_IPC
select X86_PLATFORM_DEVICES
+ select X86_INTEL_MID
---help---
Moorestown is Intel's Low Power Intel Architecture (LPIA) based Moblin
Internet Device(MID) platform. Moorestown consists of two chips:
^ permalink raw reply related
* linux-next web page needs updating
From: Julie Sullivan @ 2011-12-05 21:39 UTC (permalink / raw)
To: linux-next
On Fri, Dec 2, 2011 at 8:57 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> On Fri, Dec 02, 2011 at 07:36:54AM -0300, Joilnen Leite wrote:
>> Should I to do git pull ?
>> or like said http://linux.f-seidel.de/linux-next/pmwiki/pmwiki.php?n=Linux-next.FAQ
>>
>> $ git remote add linux-next
>> git://git.kernel.org/pub/scm/linux/kernel/git/sfr/linux-next.git
>> $ git fetch linux-next
>> $ git fetch --tags linux-next
>> ... # later on
>> $ git remote update
>
> No. Don't update. After the fetch do a git checkout next-20111201.
>
> The problem is that you have to update from one tree to the other
> tree but linux-next doesn't follow a linear plan like that. Linux
> next is rebuilt every day independently from the day before.
>
> regards,
> dan carpenter
Joilnen, if you haven't figured this out already and still can't set
linux-next up as a remote:
This line (still on the linux-next web page to date):
git://git.kernel.org/pub/scm/linux/kernel/git/sfr/linux-next.git
is actually now wrong (it's been replaced on kernel.org), so you need
to replace it with this line:
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
instead. HTH,
Cheers
Julie
^ permalink raw reply
* [PATCH pm/linux-next] cgroup_freezer: drop unnecessary freezing() from try_to_freeze_cgroup()
From: Tejun Heo @ 2011-12-05 21:32 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: sfr, linux-pm, linux-next
In-Reply-To: <201112012242.58090.rjw@sisk.pl>
986b11c3ee "Merge branch 'pm-freezer' of ..." added unnecessary
freezing() test in try_to_freeze_cgroup() while merging. Drop it.
Signed-off-by: Tejun Heo <tj@kernel.org>
---
This shouldn't be harmful but still is unnecessary.
Thanks.
kernel/cgroup_freezer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- work/kernel/cgroup_freezer.c 2011-12-05 13:25:34.156948390 -0800
+++ misc/kernel/cgroup_freezer.c 2011-12-05 13:26:58.787447558 -0800
@@ -283,7 +283,7 @@
while ((task = cgroup_iter_next(cgroup, &it))) {
if (!freeze_task(task))
continue;
- if (freezing(task) && is_task_frozen_enough(task))
+ if (is_task_frozen_enough(task))
continue;
if (!freezing(task) && !freezer_should_skip(task))
num_cant_freeze_now++;
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Alan Cox @ 2011-12-05 20:53 UTC (permalink / raw)
To: Rob Herring
Cc: Nicolas Pitre, Stephen Rothwell, Russell King - ARM Linux,
Pawel Moll, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
Ingo Molnar, LKML, linux-ide-u79uwXL29TY76Z2rM5mHXA, Randy Dunlap,
linux-next-u79uwXL29TY76Z2rM5mHXA, Anton Vorontsov, Andrew Morton,
Linus Torvalds, Jeff Garzik,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
In-Reply-To: <4EDD2DE1.1050606-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
On Mon, 05 Dec 2011 14:47:29 -0600
Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> On 12/05/2011 02:21 PM, Anton Vorontsov wrote:
> > On Mon, Dec 05, 2011 at 01:16:39PM -0600, Rob Herring wrote:
> > [...]
> >> At least for DT enabled platforms, we could force "no irq" to be 0 in
> >> the DT irq code. Searching the dts files, I found 2 occurrences of IRQ0.
> >
> > Please note that there are HW IRQ numbers and "Virtual" IRQ numbers.
> > dev->irq and thus the thing that we pass into request_irq() is a
> > virtual IRQ thing, a "cookie".
> >
> > While in device tree you see real HW IRQ numbers.
> >
> > Legal VIRQ is always > 0, while HW IRQ could be >= 0.
> >
>
> If this was all true, then there would be no discussion.
Or more to the point. If the ARM people concerned had listened in 2005,
2006 or 2008 there would be no discussion.
> This is what we are working towards, but irq_chips all over the arm tree
> do not support any translation or have base fixed at compile time. Only
> a few have been converted. And some ARM platforms may never get
> converted to DT.
You've had six years. Let them break, it'll motivate any users to fix
them.
Alan
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Rob Herring @ 2011-12-05 20:47 UTC (permalink / raw)
To: Anton Vorontsov
Cc: Nicolas Pitre, Dave Martin, Stephen Rothwell,
Russell King - ARM Linux, Pawel Moll, devicetree-discuss, LKML,
Jeff Garzik, linux-ide, Randy Dunlap, linux-next,
linux-arm-kernel, Andrew Morton, Linus Torvalds, Ingo Molnar,
Alan Cox, Jonas Bonn, Michal Simek, Grant Likely
In-Reply-To: <20111205202125.GA32592@oksana.dev.rtsoft.ru>
On 12/05/2011 02:21 PM, Anton Vorontsov wrote:
> On Mon, Dec 05, 2011 at 01:16:39PM -0600, Rob Herring wrote:
> [...]
>> At least for DT enabled platforms, we could force "no irq" to be 0 in
>> the DT irq code. Searching the dts files, I found 2 occurrences of IRQ0.
>
> Please note that there are HW IRQ numbers and "Virtual" IRQ numbers.
> dev->irq and thus the thing that we pass into request_irq() is a
> virtual IRQ thing, a "cookie".
>
> While in device tree you see real HW IRQ numbers.
>
> Legal VIRQ is always > 0, while HW IRQ could be >= 0.
>
If this was all true, then there would be no discussion.
This is what we are working towards, but irq_chips all over the arm tree
do not support any translation or have base fixed at compile time. Only
a few have been converted. And some ARM platforms may never get
converted to DT.
>> Prima2 has timer on IRQ0, and VersatileAB has watchdog on IRQ0. Prima2
>> should be fine currently as it doesn't use the of_irq_* functions to get
>> the timer irq, but that is an issue as it skips any translation.
>> VersatileAB should be okay with the VIC irqdomain support.
>
> It shouldn't be an issue to use of_irq_*() functions for these IRQs.
> of_irq_*() will remap HW IRQ 0 to some other VIRQ. If it does not do
> this currently, then it's a bug and should be fixed.
I think that's what I'm saying. It's either a bug or incomplete DT
conversion for the platform. Either way, those should get fixed first.
Rob
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Anton Vorontsov @ 2011-12-05 20:21 UTC (permalink / raw)
To: Rob Herring
Cc: Nicolas Pitre, Dave Martin, Stephen Rothwell,
Russell King - ARM Linux, Pawel Moll, devicetree-discuss, LKML,
Jeff Garzik, linux-ide, Randy Dunlap, linux-next,
linux-arm-kernel, Andrew Morton, Linus Torvalds, Ingo Molnar,
Alan Cox, Jonas Bonn, Michal Simek, Grant Likely
In-Reply-To: <4EDD1897.4030208@gmail.com>
On Mon, Dec 05, 2011 at 01:16:39PM -0600, Rob Herring wrote:
[...]
> At least for DT enabled platforms, we could force "no irq" to be 0 in
> the DT irq code. Searching the dts files, I found 2 occurrences of IRQ0.
Please note that there are HW IRQ numbers and "Virtual" IRQ numbers.
dev->irq and thus the thing that we pass into request_irq() is a
virtual IRQ thing, a "cookie".
While in device tree you see real HW IRQ numbers.
Legal VIRQ is always > 0, while HW IRQ could be >= 0.
> Prima2 has timer on IRQ0, and VersatileAB has watchdog on IRQ0. Prima2
> should be fine currently as it doesn't use the of_irq_* functions to get
> the timer irq, but that is an issue as it skips any translation.
> VersatileAB should be okay with the VIC irqdomain support.
It shouldn't be an issue to use of_irq_*() functions for these IRQs.
of_irq_*() will remap HW IRQ 0 to some other VIRQ. If it does not do
this currently, then it's a bug and should be fixed.
Thanks,
--
Anton Vorontsov
Email: cbouatmailru@gmail.com
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Nicolas Pitre @ 2011-12-05 19:49 UTC (permalink / raw)
To: Dave Martin
Cc: Russell King - ARM Linux, Benjamin Herrenschmidt, Linus Torvalds,
Anton Vorontsov, Alan Cox, Stephen Rothwell, Andrew Morton,
devicetree-discuss, LKML, linux-ide, Randy Dunlap, linux-next,
Ingo Molnar, Jeff Garzik, Pawel Moll, linux-arm-kernel
In-Reply-To: <20111205192605.GD29812@localhost.localdomain>
On Mon, 5 Dec 2011, Dave Martin wrote:
> On Mon, Dec 05, 2011 at 01:18:30PM -0500, Nicolas Pitre wrote:
> > On Mon, 5 Dec 2011, Dave Martin wrote:
> >
> > > On Mon, Dec 05, 2011 at 12:40:16PM -0500, Nicolas Pitre wrote:
> > > > On Mon, 5 Dec 2011, Dave Martin wrote:
> > > > > On Sat, Dec 03, 2011 at 10:12:53AM +1100, Benjamin Herrenschmidt wrote:
> > > > > > On Fri, 2011-12-02 at 11:28 -0800, Linus Torvalds wrote:
> > > > > > > Don't *change* NO_IRQ to zero (that whole #define is broken - leave it
> > > > > > > around as a marker of brokenness), just start removing it from all the
> > > > > > > ARM drivers that use the OF infrastructure. Which is presumably not
> > > > > > > all that many yet.
> > > > > > >
> > > > > > > So whenever you find breakage, the fix now is to just remove NO_IRQ
> > > > > > > tests, and replace them with "!irq".
> > > > > >
> > > > >
> > > > > Russell, do you know whether it would make sense to set a timeline for
> > > > > removing NO_IRQ from ARM platforms and migrating to 0 for the no-interrupt
> > > > > case? I'm assuming that this mainly involves migrating existing hard-wired
> > > > > code that deals with interrupt numbers to use irq domains.
> > > >
> > > > How many drivers do use IRQ #0 to start with? We might discover that in
> > > > practice there is only a very few cases where this is an issue if 0
> > > > would mean no IRQ.
> > >
> > > The total number of files referring to NO_IRQ is not that huge:
> > >
> > > arch/arm/ 188 matches in 39 files
> > > drivers/ 174 matches in 84 files
> > >
> > > Unfortunately, NO_IRQ is often not spelled "NO_IRQ". It looks like the assumption
> > > "irq < 0 === no irq" may be quite a lot more widespread than "NO_IRQ === no irq".
> > > Since there's no specific thing we can grep for (and simply due to volume)
> > > finding all such instances may be quite a bit harder.
> > [...]
> >
> > ARgh.
> >
> > My point was about current actual usage of the IRQ numbered 0 which
> > probably prompted the introduction of NO_IRQ in the first place. What I
> > was saying is that the number of occurrences where IRQ #0 is currently
> > used into drivers that would get confused if 0 would mean no IRQ is
> > probably quite small.
>
> Ah, I misunderstood -- that's a separate issue, but also an important one.
> I guess this applies to a fair number of older boards. One way of fixing
> this would be to migrate those boards to use irq domains -- but those boards
> may be sporadically maintained.
>
> > But as you illustrated, there is a large number of drivers that already
> > assume no IRQ is < 0, even if they don't use any IRQ #0 themselves.
> > That is a much bigger problem to fix.
>
> My concern is that as soon as we start to change this in significant
> volume, a _lot_ of stuff is going to break. Everywhere that an irq value
> is passed from one piece of code to another, there is a potential
> interface mismatch -- there seems to be no single place where we can
> apply a conversion and fix everything.
No need to convert everything.
First move is to make irq=0 meaning no IRQ. That means making things
like:
if (irq < 0)
if (irq >= 0)
into
if (irq <= 0)
if (irq > 0)
And replace NO_IRQ with 0.
That change shouldn't break anything, except those drivers which are 1)
being passed an actual IRQ #0 and 2) testing for no IRQ. I suspect that
those conditions aren't very common together.
Nicolas
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Dave Martin @ 2011-12-05 19:26 UTC (permalink / raw)
To: Nicolas Pitre
Cc: Russell King - ARM Linux, Benjamin Herrenschmidt, Linus Torvalds,
Anton Vorontsov, Alan Cox, Stephen Rothwell, Andrew Morton,
devicetree-discuss, LKML, linux-ide, Randy Dunlap, linux-next,
Ingo Molnar, Jeff Garzik, Pawel Moll, linux-arm-kernel
In-Reply-To: <alpine.LFD.2.02.1112051310150.2357@xanadu.home>
On Mon, Dec 05, 2011 at 01:18:30PM -0500, Nicolas Pitre wrote:
> On Mon, 5 Dec 2011, Dave Martin wrote:
>
> > On Mon, Dec 05, 2011 at 12:40:16PM -0500, Nicolas Pitre wrote:
> > > On Mon, 5 Dec 2011, Dave Martin wrote:
> > > > On Sat, Dec 03, 2011 at 10:12:53AM +1100, Benjamin Herrenschmidt wrote:
> > > > > On Fri, 2011-12-02 at 11:28 -0800, Linus Torvalds wrote:
> > > > > > Don't *change* NO_IRQ to zero (that whole #define is broken - leave it
> > > > > > around as a marker of brokenness), just start removing it from all the
> > > > > > ARM drivers that use the OF infrastructure. Which is presumably not
> > > > > > all that many yet.
> > > > > >
> > > > > > So whenever you find breakage, the fix now is to just remove NO_IRQ
> > > > > > tests, and replace them with "!irq".
> > > > >
> > > >
> > > > Russell, do you know whether it would make sense to set a timeline for
> > > > removing NO_IRQ from ARM platforms and migrating to 0 for the no-interrupt
> > > > case? I'm assuming that this mainly involves migrating existing hard-wired
> > > > code that deals with interrupt numbers to use irq domains.
> > >
> > > How many drivers do use IRQ #0 to start with? We might discover that in
> > > practice there is only a very few cases where this is an issue if 0
> > > would mean no IRQ.
> >
> > The total number of files referring to NO_IRQ is not that huge:
> >
> > arch/arm/ 188 matches in 39 files
> > drivers/ 174 matches in 84 files
> >
> > Unfortunately, NO_IRQ is often not spelled "NO_IRQ". It looks like the assumption
> > "irq < 0 === no irq" may be quite a lot more widespread than "NO_IRQ === no irq".
> > Since there's no specific thing we can grep for (and simply due to volume)
> > finding all such instances may be quite a bit harder.
> [...]
>
> ARgh.
>
> My point was about current actual usage of the IRQ numbered 0 which
> probably prompted the introduction of NO_IRQ in the first place. What I
> was saying is that the number of occurrences where IRQ #0 is currently
> used into drivers that would get confused if 0 would mean no IRQ is
> probably quite small.
Ah, I misunderstood -- that's a separate issue, but also an important one.
I guess this applies to a fair number of older boards. One way of fixing
this would be to migrate those boards to use irq domains -- but those boards
may be sporadically maintained.
> But as you illustrated, there is a large number of drivers that already
> assume no IRQ is < 0, even if they don't use any IRQ #0 themselves.
> That is a much bigger problem to fix.
My concern is that as soon as we start to change this in significant
volume, a _lot_ of stuff is going to break. Everywhere that an irq value
is passed from one piece of code to another, there is a potential
interface mismatch -- there seems to be no single place where we can
apply a conversion and fix everything.
Cheers
---Dave
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: James Bottomley @ 2011-12-05 19:19 UTC (permalink / raw)
To: Alan Cox
Cc: Nicolas Pitre, Dave Martin, Russell King - ARM Linux,
Benjamin Herrenschmidt, Linus Torvalds, Anton Vorontsov,
Stephen Rothwell, Andrew Morton, devicetree-discuss, LKML,
linux-ide, Randy Dunlap, linux-next, Ingo Molnar, Jeff Garzik,
Pawel Moll, linux-arm-kernel
In-Reply-To: <20111205184522.316598de@lxorguk.ukuu.org.uk>
On Mon, 2011-12-05 at 18:45 +0000, Alan Cox wrote:
> > But as you illustrated, there is a large number of drivers that already
> > assume no IRQ is < 0, even if they don't use any IRQ #0 themselves.
> > That is a much bigger problem to fix.
>
> And a much larger number assuming the reverse is true which are hiding
> potential bugs on ARM.
>
> Looking at the serial stuff the best checks appear to be looking at
> "irq", "-1" and NO_IRQ.
>
> For migration stuff that's doing broken things like
>
> if (irq < 0)
>
> can be changed to
>
> if (irq <= 0)
>
> and that can be done before NO_IRQ itself is nailed on ARM and PA-RISC.
To be honest, we don't care very much. Parisc interrupts are cascading
and mostly software assigned (except our EIEM which we keep internal).
We use a base offset at 16 or 64 (depending on GSC presence or not) so
IRQs 0-15 aren't legal on parisc either (we frob some of the hard coded
ISA interrupts on the WAX eisa bus).
We use NO_IRQ as an IRQ assignment error return and that's about it (and
that error shouldn't ever really occur).
James
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Rob Herring @ 2011-12-05 19:16 UTC (permalink / raw)
To: Nicolas Pitre
Cc: Stephen Rothwell, Russell King - ARM Linux, Pawel Moll,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Ingo Molnar, LKML,
linux-ide-u79uwXL29TY76Z2rM5mHXA, Randy Dunlap,
linux-next-u79uwXL29TY76Z2rM5mHXA, Alan Cox, Anton Vorontsov,
Andrew Morton, Linus Torvalds, Jeff Garzik,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
In-Reply-To: <alpine.LFD.2.02.1112051310150.2357-QuJgVwGFrdf/9pzu0YdTqQ@public.gmane.org>
On 12/05/2011 12:18 PM, Nicolas Pitre wrote:
> On Mon, 5 Dec 2011, Dave Martin wrote:
>
>> On Mon, Dec 05, 2011 at 12:40:16PM -0500, Nicolas Pitre wrote:
>>> On Mon, 5 Dec 2011, Dave Martin wrote:
>>>> On Sat, Dec 03, 2011 at 10:12:53AM +1100, Benjamin Herrenschmidt wrote:
>>>>> On Fri, 2011-12-02 at 11:28 -0800, Linus Torvalds wrote:
>>>>>> Don't *change* NO_IRQ to zero (that whole #define is broken - leave it
>>>>>> around as a marker of brokenness), just start removing it from all the
>>>>>> ARM drivers that use the OF infrastructure. Which is presumably not
>>>>>> all that many yet.
>>>>>>
>>>>>> So whenever you find breakage, the fix now is to just remove NO_IRQ
>>>>>> tests, and replace them with "!irq".
>>>>>
>>>>
>>>> Russell, do you know whether it would make sense to set a timeline for
>>>> removing NO_IRQ from ARM platforms and migrating to 0 for the no-interrupt
>>>> case? I'm assuming that this mainly involves migrating existing hard-wired
>>>> code that deals with interrupt numbers to use irq domains.
>>>
>>> How many drivers do use IRQ #0 to start with? We might discover that in
>>> practice there is only a very few cases where this is an issue if 0
>>> would mean no IRQ.
>>
>> The total number of files referring to NO_IRQ is not that huge:
>>
>> arch/arm/ 188 matches in 39 files
>> drivers/ 174 matches in 84 files
>>
>> Unfortunately, NO_IRQ is often not spelled "NO_IRQ". It looks like the assumption
>> "irq < 0 === no irq" may be quite a lot more widespread than "NO_IRQ === no irq".
>> Since there's no specific thing we can grep for (and simply due to volume)
>> finding all such instances may be quite a bit harder.
> [...]
>
> ARgh.
>
> My point was about current actual usage of the IRQ numbered 0 which
> probably prompted the introduction of NO_IRQ in the first place. What I
> was saying is that the number of occurrences where IRQ #0 is currently
> used into drivers that would get confused if 0 would mean no IRQ is
> probably quite small.
>
> But as you illustrated, there is a large number of drivers that already
> assume no IRQ is < 0, even if they don't use any IRQ #0 themselves.
> That is a much bigger problem to fix.
>
At least for DT enabled platforms, we could force "no irq" to be 0 in
the DT irq code. Searching the dts files, I found 2 occurrences of IRQ0.
Prima2 has timer on IRQ0, and VersatileAB has watchdog on IRQ0. Prima2
should be fine currently as it doesn't use the of_irq_* functions to get
the timer irq, but that is an issue as it skips any translation.
VersatileAB should be okay with the VIC irqdomain support.
Changing it would also affect microblaze and openrisc which have NO_IRQ
set to -1. From what I can tell, they would both be fine at least in
terms of not using IRQ0.
Also, there's roughly 50 irq_chips that need irq_domain support under
arch/arm. So that's not a simple solution either.
Rob
^ permalink raw reply
* Re: linux-next: Tree for Sept 28 (mrst)
From: Alan Cox @ 2011-12-05 19:10 UTC (permalink / raw)
To: Ingo Molnar
Cc: Randy Dunlap, Stephen Rothwell, linux-next, LKML, x86 maintainers
In-Reply-To: <20111205184105.GA20121@elte.hu>
On Mon, 5 Dec 2011 19:41:05 +0100
Ingo Molnar <mingo@elte.hu> wrote:
>
> * Randy Dunlap <rdunlap@xenotime.net> wrote:
>
> > On 09/28/2011 03:11 PM, Randy Dunlap wrote:
> > > On 09/28/11 03:04, Stephen Rothwell wrote:
> > >> Hi all,
> > >
> > >
> > > When CONFIG_X86_INTEL_MID=y but CONFIG_X86_MRST is not enabled
> > > (this is on an i386/X86_32 build):
> > >
> > > rtc.c:(.init.text+0x6234): undefined reference to `__mrst_cpu_chip'
> > >
> > > Full randconfig file is attached.
> >
> > Hm, it's now 20111205 and this build error is still around.
> > Is there any hope for getting it fixed?
>
> Alan?
Don't think I saw the original report - I'll take a look. I imagine it's
just an X86_MRST that didn't get changed rightly.
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Alan Cox @ 2011-12-05 18:45 UTC (permalink / raw)
To: Nicolas Pitre
Cc: Stephen Rothwell, Russell King - ARM Linux, Pawel Moll,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, LKML, Jeff Garzik,
linux-ide-u79uwXL29TY76Z2rM5mHXA, Randy Dunlap,
linux-next-u79uwXL29TY76Z2rM5mHXA, Anton Vorontsov, Andrew Morton,
Linus Torvalds, Ingo Molnar,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
In-Reply-To: <alpine.LFD.2.02.1112051310150.2357-QuJgVwGFrdf/9pzu0YdTqQ@public.gmane.org>
> But as you illustrated, there is a large number of drivers that already
> assume no IRQ is < 0, even if they don't use any IRQ #0 themselves.
> That is a much bigger problem to fix.
And a much larger number assuming the reverse is true which are hiding
potential bugs on ARM.
Looking at the serial stuff the best checks appear to be looking at
"irq", "-1" and NO_IRQ.
For migration stuff that's doing broken things like
if (irq < 0)
can be changed to
if (irq <= 0)
and that can be done before NO_IRQ itself is nailed on ARM and PA-RISC.
^ permalink raw reply
* Re: linux-next: Tree for Sept 28 (mrst)
From: Ingo Molnar @ 2011-12-05 18:41 UTC (permalink / raw)
To: Randy Dunlap
Cc: Stephen Rothwell, linux-next, LKML, x86 maintainers, Alan Cox
In-Reply-To: <4EDD0FED.7060301@xenotime.net>
* Randy Dunlap <rdunlap@xenotime.net> wrote:
> On 09/28/2011 03:11 PM, Randy Dunlap wrote:
> > On 09/28/11 03:04, Stephen Rothwell wrote:
> >> Hi all,
> >
> >
> > When CONFIG_X86_INTEL_MID=y but CONFIG_X86_MRST is not enabled
> > (this is on an i386/X86_32 build):
> >
> > rtc.c:(.init.text+0x6234): undefined reference to `__mrst_cpu_chip'
> >
> > Full randconfig file is attached.
>
> Hm, it's now 20111205 and this build error is still around.
> Is there any hope for getting it fixed?
Alan?
Thanks,
Ingo
^ permalink raw reply
* Re: linux-next: Tree for Sept 28 (mrst)
From: Randy Dunlap @ 2011-12-05 18:39 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linux-next, LKML, x86 maintainers, Alan Cox
In-Reply-To: <4E839B94.9040305@xenotime.net>
On 09/28/2011 03:11 PM, Randy Dunlap wrote:
> On 09/28/11 03:04, Stephen Rothwell wrote:
>> Hi all,
>
>
> When CONFIG_X86_INTEL_MID=y but CONFIG_X86_MRST is not enabled
> (this is on an i386/X86_32 build):
>
> rtc.c:(.init.text+0x6234): undefined reference to `__mrst_cpu_chip'
>
> Full randconfig file is attached.
Hm, it's now 20111205 and this build error is still around.
Is there any hope for getting it fixed?
--
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
^ permalink raw reply
* Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
From: Nicolas Pitre @ 2011-12-05 18:18 UTC (permalink / raw)
To: Dave Martin
Cc: Russell King - ARM Linux, Benjamin Herrenschmidt, Linus Torvalds,
Anton Vorontsov, Alan Cox, Stephen Rothwell, Andrew Morton,
devicetree-discuss, LKML, linux-ide, Randy Dunlap, linux-next,
Ingo Molnar, Jeff Garzik, Pawel Moll, linux-arm-kernel
In-Reply-To: <20111205180253.GB29812@localhost.localdomain>
On Mon, 5 Dec 2011, Dave Martin wrote:
> On Mon, Dec 05, 2011 at 12:40:16PM -0500, Nicolas Pitre wrote:
> > On Mon, 5 Dec 2011, Dave Martin wrote:
> > > On Sat, Dec 03, 2011 at 10:12:53AM +1100, Benjamin Herrenschmidt wrote:
> > > > On Fri, 2011-12-02 at 11:28 -0800, Linus Torvalds wrote:
> > > > > Don't *change* NO_IRQ to zero (that whole #define is broken - leave it
> > > > > around as a marker of brokenness), just start removing it from all the
> > > > > ARM drivers that use the OF infrastructure. Which is presumably not
> > > > > all that many yet.
> > > > >
> > > > > So whenever you find breakage, the fix now is to just remove NO_IRQ
> > > > > tests, and replace them with "!irq".
> > > >
> > >
> > > Russell, do you know whether it would make sense to set a timeline for
> > > removing NO_IRQ from ARM platforms and migrating to 0 for the no-interrupt
> > > case? I'm assuming that this mainly involves migrating existing hard-wired
> > > code that deals with interrupt numbers to use irq domains.
> >
> > How many drivers do use IRQ #0 to start with? We might discover that in
> > practice there is only a very few cases where this is an issue if 0
> > would mean no IRQ.
>
> The total number of files referring to NO_IRQ is not that huge:
>
> arch/arm/ 188 matches in 39 files
> drivers/ 174 matches in 84 files
>
> Unfortunately, NO_IRQ is often not spelled "NO_IRQ". It looks like the assumption
> "irq < 0 === no irq" may be quite a lot more widespread than "NO_IRQ === no irq".
> Since there's no specific thing we can grep for (and simply due to volume)
> finding all such instances may be quite a bit harder.
[...]
ARgh.
My point was about current actual usage of the IRQ numbered 0 which
probably prompted the introduction of NO_IRQ in the first place. What I
was saying is that the number of occurrences where IRQ #0 is currently
used into drivers that would get confused if 0 would mean no IRQ is
probably quite small.
But as you illustrated, there is a large number of drivers that already
assume no IRQ is < 0, even if they don't use any IRQ #0 themselves.
That is a much bigger problem to fix.
Nicolas
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox