* Re: [PATCH linux-next] dmaengine: add context parameter fixups
From: Vinod Koul @ 2012-03-29 10:59 UTC (permalink / raw)
To: Mark Brown
Cc: fabio.estevam, alsa-devel, samuel, paul.gortmaker, Takashi Iwai,
netdev, linux-kernel, Alexandre Bounine, linux-next,
dan.j.williams, Fabio Estevam, lrg
In-Reply-To: <20120328155106.GY3232@opensource.wolfsonmicro.com>
On Wed, 2012-03-28 at 16:51 +0100, Mark Brown wrote:
> On Wed, Mar 28, 2012 at 05:44:22PM +0200, Takashi Iwai wrote:
> > Mark Brown wrote:
>
> > > No, not yet - it was only sent after the merge window. Quite why nobody
> > > managed to notice it before then I don't know. It'll go to him soon, or
> > > at least to Takashi, but don't know if it'll make -rc1 or not.
>
> > How is the situation now?
>
> > FYI, I'm going to send a pull request to Linus tomorrow or on Friday.
> > If anything needed to be merged in rc1, it must be there in time.
>
> It's in my tree, I didn't see an enormous rush to get it in TBH.
I should be sending the pull request for slave-dma to Linus this
evening.
Can you please include the fix I did in your tree in your pull request.
--
~Vinod
^ permalink raw reply
* Re: linux-next: build failure after merge of the scsi tree
From: Gerard Snitselaar @ 2012-03-29 9:03 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Greg KH, Alexey Dobriyan, James Bottomley, linux-next,
linux-kernel
In-Reply-To: <20120329192507.64c6c57b65cd0568d5e89ccc@canb.auug.org.au>
On Thu Mar 29 12, Stephen Rothwell wrote:
> On Thu, 29 Mar 2012 00:32:40 -0700 Gerard Snitselaar <dev@snitselaar.org> wrote:
> >
> > On Wed Mar 28 12, Greg KH wrote:
> > > > > >
> > > > > > See commits 422f07001d6638fdde28f1909cc9162bc7f571d3..104c4fe25dc9bde823ba4591e910a77071b98ab5
> > > > > > Especially the first one.
> > >
> > > I don't know where to find these patches, care to send them to me, or
> > > point me at a link with them?
> > >
> >
> > They are visible in next-20120329
>
> I don't think so. They were in next-2012032[67], but were removed again.
>
> --
> Cheers,
> Stephen Rothwell sfr@canb.auug.org.au
Sorry, poorly worded on my part. What I meant to say was I could see
the commits in the repository when doing
git show 422f07001d6638fdde28f1909cc9162bc7f571d3..104c4fe25dc9bde823ba4591e910a77071b98ab5
^ permalink raw reply
* Re: linux-next: build failure after merge of the scsi tree
From: James Bottomley @ 2012-03-29 8:35 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Gerard Snitselaar, Greg KH, Alexey Dobriyan, linux-next,
linux-kernel
In-Reply-To: <20120329192507.64c6c57b65cd0568d5e89ccc@canb.auug.org.au>
On Thu, 2012-03-29 at 19:25 +1100, Stephen Rothwell wrote:
> On Thu, 29 Mar 2012 00:32:40 -0700 Gerard Snitselaar <dev@snitselaar.org> wrote:
> > On Wed Mar 28 12, Greg KH wrote:
> > > > > >
> > > > > > See commits 422f07001d6638fdde28f1909cc9162bc7f571d3..104c4fe25dc9bde823ba4591e910a77071b98ab5
> > > > > > Especially the first one.
> > >
> > > I don't know where to find these patches, care to send them to me, or
> > > point me at a link with them?
> > >
> >
> > They are visible in next-20120329
>
> I don't think so. They were in next-2012032[67], but were removed again.
The plan is to put them back once we go 3.4-rc1 so we have a whole
release cycle to fix up any breakage.
James
^ permalink raw reply
* Re: linux-next: build failure after merge of the scsi tree
From: Stephen Rothwell @ 2012-03-29 8:25 UTC (permalink / raw)
To: Gerard Snitselaar
Cc: Greg KH, Alexey Dobriyan, James Bottomley, linux-next,
linux-kernel
In-Reply-To: <20120329073240.GA21382@perelman.Home>
[-- Attachment #1: Type: text/plain, Size: 590 bytes --]
On Thu, 29 Mar 2012 00:32:40 -0700 Gerard Snitselaar <dev@snitselaar.org> wrote:
>
> On Wed Mar 28 12, Greg KH wrote:
> > > > >
> > > > > See commits 422f07001d6638fdde28f1909cc9162bc7f571d3..104c4fe25dc9bde823ba4591e910a77071b98ab5
> > > > > Especially the first one.
> >
> > I don't know where to find these patches, care to send them to me, or
> > point me at a link with them?
> >
>
> They are visible in next-20120329
I don't think so. They were in next-2012032[67], but were removed again.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: linux-next: build failure after merge of the scsi tree
From: Gerard Snitselaar @ 2012-03-29 7:32 UTC (permalink / raw)
To: Greg KH
Cc: Alexey Dobriyan, James Bottomley, Stephen Rothwell, linux-next,
linux-kernel
In-Reply-To: <20120328235217.GA17212@kroah.com>
On Wed Mar 28 12, Greg KH wrote:
> > > >
> > > > See commits 422f07001d6638fdde28f1909cc9162bc7f571d3..104c4fe25dc9bde823ba4591e910a77071b98ab5
> > > > Especially the first one.
>
> I don't know where to find these patches, care to send them to me, or
> point me at a link with them?
>
They are visible in next-20120329
^ permalink raw reply
* linux-next: Tree for Mar 29
From: Stephen Rothwell @ 2012-03-29 3:42 UTC (permalink / raw)
To: linux-next; +Cc: LKML
[-- Attachment #1: Type: text/plain, Size: 31466 bytes --]
Hi all,
Reminder: please do not add stuff destined for v3.5 to linux-next
included trees/branches until after v3.4-rc1 has been released.
Changes since 20120328:
Lots of conflicts move between trees and disappear as things are merged
into Linus' tree.
The md tree lost its build failure.
The trivial tree gained a conflict against Linus' tree.
----------------------------------------------------------------------------
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 187 trees (counting Linus' and 25 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. And to Paul
Gortmaker for triage and bug fixes.
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 (47b816f Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc)
Merging fixes/master (88ebdda Merge tag 'for-3.3' of git://openrisc.net/jonas/linux)
Merging kbuild-current/rc-fixes (42f1c01 coccicheck: change handling of C={1,2} when M= is set)
Merging arm-current/fixes (a0feb6d ARM: 7358/1: perf: add PMU hotplug notifier)
Merging m68k-current/for-linus (2a35350 m68k: Fix assembler constraint to prevent overeager gcc optimisation)
Merging powerpc-merge/merge (e22057c Merge tag 'stable/for-linus-3.4-tag-two' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen)
Merging sparc/master (e0adb99 sparc32: Add -Av8 to assembler command line.)
Merging scsi-rc-fixes/master (41f8ad7 [SCSI] osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576)
Merging net/master (3b9785c net/core: dev_forward_skb() should clear skb_iif)
Merging sound-current/for-linus (a938fb1 ALSA: asihpi - fix return type of hpios_locked_mem_alloc())
Merging pci-current/for-linus (4949be1 PCI: ignore pre-1.1 ASPM quirking when ASPM is disabled)
Merging wireless/master (de312db mac80211: fix oper channel timestamp updation)
Merging driver-core.current/driver-core-linus (fde7d90 Linux 3.3-rc7)
Merging tty.current/tty-linus (fde7d90 Linux 3.3-rc7)
Merging usb.current/usb-linus (fde7d90 Linux 3.3-rc7)
Merging staging.current/staging-linus (fde7d90 Linux 3.3-rc7)
Merging char-misc.current/char-misc-linus (c16fa4f Linux 3.3)
Merging cpufreq-current/fixes (6139b65 Merge branch 'for_3.4/cpufreq' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into fixes)
Merging input-current/for-linus (9938082 Merge branch 'next' into for-linus)
Merging md-current/for-linus (ecb178b md: Add judgement bb->unacked_exist in function md_ack_all_badblocks().)
Merging audit-current/for-linus (c158a35 audit: no leading space in audit_log_d_path prefix)
Merging crypto-current/master (ff0a70f crypto: twofish-x86_64-3way - module init/exit functions should be static)
Merging ide/master (0ab3d8b cy82c693: fix PCI device selection)
Merging dwmw2/master (244dc4e Merge git://git.infradead.org/users/dwmw2/random-2.6)
Merging devicetree-current/devicetree/merge (29f141f Merge branch 'fixes-for-grant' of git://sources.calxeda.com/kernel/linux into devicetree/merge)
Merging spi-current/spi/merge (a5ab629 Fix section mismatch in spi-pl022.c)
Merging gpio-current/gpio/merge (735e941c Merge tag 'common-clk-api' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc)
Merging arm/for-next (6d09a99 Merge branch 'for-linus' into for-next)
CONFLICT (content): Merge conflict in arch/powerpc/Kconfig
CONFLICT (content): Merge conflict in arch/c6x/Kconfig
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/setup-sh7377.c
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/setup-sh7367.c
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/setup-r8a7740.c
CONFLICT (content): Merge conflict in arch/arm/mach-msm/timer.c
CONFLICT (content): Merge conflict in arch/arm/kernel/process.c
CONFLICT (content): Merge conflict in arch/arm/common/gic.c
CONFLICT (content): Merge conflict in arch/arm/Kconfig
Merging arm-perf/for-next/perf (c16fa4f Linux 3.3)
Merging davinci/davinci-next (fe0d422 Linux 3.0-rc6)
Merging samsung/next-samsung (9edb240 ARM: H1940/RX1950: Change default LED triggers)
Merging s5p/for-next (d782c13 Merge branch 'next/soc-exynos5250-gpio' into for-next)
CONFLICT (modify/delete): arch/arm/mach-s3c24xx/common.h deleted in HEAD and modified in s5p/for-next. Version s5p/for-next of arch/arm/mach-s3c24xx/common.h left in tree.
Merging tegra/for-next (e8ce8f9 Merge branch 'for-3.4/cleanup-and-fixes' into for-next)
CONFLICT (content): Merge conflict in arch/arm/mach-tegra/Makefile
Merging xilinx/arm-next (b85a3ef ARM: Xilinx: Adding Xilinx board support)
Merging blackfin/for-linus (e22057c Merge tag 'stable/for-linus-3.4-tag-two' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen)
Merging c6x/for-linux-next (fde7d90 Linux 3.3-rc7)
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)
CONFLICT (content): Merge conflict in arch/hexagon/Kconfig
Merging ia64/next (5cd288c Merge branch 'pstore' into next)
Merging m68k/for-next (2a35350 m68k: Fix assembler constraint to prevent overeager gcc optimisation)
Merging m68knommu/for-next (ae909ea m68knommu: factor more common ColdFire cpu reset code)
Merging microblaze/next (a28d73c microblaze: Fix tlb_skip variable on noMMU system)
Merging mips/mips-for-linux-next (2fea377 Merge branch 'fixes-for-linus' into mips-for-linux-next)
Merging openrisc/for-upstream (fa8d9d7 OpenRISC: Remove memory_start/end prototypes)
Merging parisc/for-next (c60dc74 Merge branch 'fixes' into for-next)
Merging powerpc/next (1ce447b powerpc/perf: Fix instruction address sampling on 970 and Power4)
Merging 4xx/next (b5594a7 powerpc/44x: Add additional device support for APM821xx SoC and Bluestone board)
Merging mpc5xxx/next (7b6bb64 powerpc/5200: convert mpc5200 to use of_platform_populate())
Merging galak/next (5a0acea powerpc/qe: Update the SNUM table for MPC8569 Rev2.0)
Merging s390/features (5d3b56f [S390] register cpu devices for SMP=n)
Merging sparc-next/master (e9b57cc sparc: Use vsprintf extention %pf with builtin_return_address)
Merging tile/master (1631fce compat: use sys_sendfile64() implementation for sendfile syscall)
Merging unicore32/unicore32 (0994695 Merge branch 'akpm' (aka "Andrew's patch-bomb, take two"))
Merging ceph/master (c666601 rbd: move snap_rwsem to the device, rename to header_rwsem)
Merging cifs/master (867646f [CIFS] Update CIFS version number to 1.77)
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 (6cfd4b4 ecryptfs: remove the second argument of k[un]map_atomic())
CONFLICT (content): Merge conflict in fs/ecryptfs/ecryptfs_kernel.h
Merging ext3/for_next (e703c20 ext3: fix start and len arguments handling in ext3_trim_fs())
Merging ext4/dev (9d547c3 vfs: remove unused superblock helpers)
Merging fuse/for-next (4273b79 fuse: O_DIRECT support for files)
Merging gfs2/master (e22057c Merge tag 'stable/for-linus-3.4-tag-two' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen)
Merging logfs/master (e22057c Merge tag 'stable/for-linus-3.4-tag-two' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen)
Merging nfs/linux-next (1497748 NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error)
Merging nfsd/nfsd-next (4ca1f87 nfsd4: use auth_unix unconditionally on backchannel)
Merging ocfs2/linux-next (9392557 ocfs2: avoid unaligned access to dqc_bitmap)
Merging omfs/for-next (976d167 Linux 3.1-rc9)
Merging squashfs/master (4b0180a Squashfs: add mount time sanity check for block_size and block_log match)
Merging v9fs/for-next (5bdad93 9p: statfs should not override server f_type)
Merging ubifs/linux-next (5a1f36c UBIFS: improve error messages)
Merging xfs/for-next (5a5881c xfs: add lots of attribute trace points)
Merging vfs/for-next (07c0c5d ext4: initialization of ext4_li_mtx needs to be done earlier)
Merging pci/linux-next (1488d51 PCI: Bjorn gets PCI hotplug too)
Merging hid/for-next (8e63dd67 Merge branch 'waltop' into for-next)
Merging quilt/i2c (81b2104 i2c-algo-bit: Don't resched on clock stretching)
CONFLICT (content): Merge conflict in drivers/i2c/busses/i2c-gpio.c
Merging bjdooks-i2c/next-i2c (fc84fe1 Merge branch 'for_3.3/i2c/misc' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into for-33/i2c/omap)
CONFLICT (content): Merge conflict in drivers/i2c/busses/i2c-omap.c
Merging i2c-embedded/i2c-embedded/for-next (bbceeee i2c-eg20t: Remove write-only variables)
Merging quilt/jdelvare-hwmon (e3a9568 hwmon: Add MCP3021 ADC driver)
Merging hwmon-staging/hwmon-next (f980878 acpi_power_meter: fix lockdep spew due to non-static lock class)
Merging quilt/kernel-doc (28ebb24 Documentation: replace install commands with softdeps)
Merging docs/docs-move (5c24d8b Merge branch 'docs/docbook/drm' of git://github.com/mfwitten/linux into docs-move)
Merging v4l-dvb/master (3d855aa Merge /home/v4l/v4l/patchwork)
Merging kbuild/for-next (4904b4b 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 (b8cec3c pata_cmd64x: implement sff_irq_check() method)
Merging infiniband/for-next (5ad19b0 Merge branches 'cma', 'cxgb3', 'cxgb4', 'ehca', 'iser', 'mad', 'nes', 'qib', 'srp' and 'srpt' into for-next)
Merging acpi/next (be6fb23 Merge branch 'acpica' into next)
CONFLICT (content): Merge conflict in drivers/cpuidle/cpuidle.c
CONFLICT (content): Merge conflict in arch/arm/mach-at91/cpuidle.c
Merging cpupowerutils/master (f166033 cpupower tools: add install target to the debug tools' makefiles)
Merging ieee1394/for-next (19f8399 Merge branch 'iso-flush' into for-next)
Merging ubi/linux-next (cc83146 UBI: rename MOVE_CANCEL_BITFLIPS to MOVE_TARGET_BITFLIPS)
Merging dlm/next (1b189b8 dlm: last element of dlm_local_addr[] never used)
Merging scsi/master (6993169 [SCSI] ipr: Driver version 2.5.3)
Merging target-updates/for-next (187e70a ib_srpt: Fix srpt_handle_cmd send_ioctx->ioctx_kref leak on exception)
Merging target-merge/for-next-merge (06de5ee tcm_qla2xxx: Add >= 24xx series fabric module for target-core)
Merging ibft/linux-next (935a9fe ibft: Fix finding IBFT ACPI table on UEFI)
Merging isci/all (fbabacb Merge branches 'devel', 'rnc-devel' and 'fixes' into all)
Merging slave-dma/next (5b2e02e dmaengine: imx: fix the build failure on x86_64)
CONFLICT (content): Merge conflict in sound/soc/mxs/mxs-pcm.c
CONFLICT (content): Merge conflict in sound/soc/imx/imx-pcm-dma-mx2.c
CONFLICT (content): Merge conflict in sound/soc/ep93xx/ep93xx-pcm.c
CONFLICT (content): Merge conflict in drivers/mmc/host/atmel-mci.c
CONFLICT (content): Merge conflict in arch/arm/mach-imx/Kconfig
CONFLICT (modify/delete): arch/arm/include/asm/hardware/pl330.h deleted in slave-dma/next and modified in HEAD. Version HEAD of arch/arm/include/asm/hardware/pl330.h left in tree.
CONFLICT (modify/delete): arch/arm/common/pl330.c deleted in slave-dma/next and modified in HEAD. Version HEAD of arch/arm/common/pl330.c left in tree.
$ git rm -f arch/arm/common/pl330.c arch/arm/include/asm/hardware/pl330.h
Applying: DMA: PL330: update for code movement
Merging dmaengine/next (3d9ea9e iop-adma: Corrected array overflow in RAID6 Xscale(R) test.)
Merging net-next/master (de8856d Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging wireless-next/master (8a78335 usbnet: consider device busy at each recieved packet)
Merging bluetooth/master (1c34840 Bluetooth: Add support for Atheros [04ca:3005])
Merging mtd/master (7b0e67f mtd: docg3 add protection against concurrency)
CONFLICT (content): Merge conflict in sound/soc/mxs/mxs-pcm.h
CONFLICT (content): Merge conflict in fs/jffs2/fs.c
CONFLICT (content): Merge conflict in fs/jffs2/compr.c
CONFLICT (content): Merge conflict in drivers/mtd/nand/gpmi-nand/gpmi-lib.c
CONFLICT (content): Merge conflict in drivers/mtd/nand/atmel_nand.c
CONFLICT (content): Merge conflict in drivers/mmc/host/mxs-mmc.c
CONFLICT (content): Merge conflict in drivers/dma/mxs-dma.c
Merging l2-mtd/master (282cb52 mtd: docg3 add protection against concurrency)
CONFLICT (content): Merge conflict in sound/soc/mxs/mxs-pcm.h
CONFLICT (add/add): Merge conflict in include/linux/mtd/spear_smi.h
CONFLICT (content): Merge conflict in fs/jffs2/fs.c
CONFLICT (content): Merge conflict in drivers/mtd/nand/gpmi-nand/gpmi-lib.c
CONFLICT (add/add): Merge conflict in drivers/mtd/nand/docg4.c
CONFLICT (content): Merge conflict in drivers/mtd/nand/atmel_nand.c
CONFLICT (content): Merge conflict in drivers/mtd/nand/Kconfig
CONFLICT (add/add): Merge conflict in drivers/mtd/devices/spear_smi.c
CONFLICT (content): Merge conflict in drivers/mmc/host/mxs-mmc.c
CONFLICT (content): Merge conflict in drivers/dma/mxs-dma.c
Merging crypto/master (2dc9b5d padata: Fix race on sequence number wrap)
Merging sound/for-next (daa1474 Merge branch 'fix/misc' into for-next)
Merging sound-asoc/for-next (41ba6b7 ASoC: dmaengine_pcm: use dmaengine cyclic wrapper)
Merging cpufreq/next (a7b422c provide disable_cpufreq() function to disable the API.)
Merging quilt/rr (2a22b63 cpumask: remove old cpu_*_map.)
CONFLICT (content): Merge conflict in arch/arm/kernel/kprobes.c
Merging input/next (131c713 Input: tegra-kbc - allocate pdata before using it)
Merging input-mt/for-next (7491f3d bcm5974: Add pointer and buttonpad properties)
Merging block/for-next (ff5eb00 Merge branch 'for-3.5/core' into for-next)
CONFLICT (content): Merge conflict in block/blk-cgroup.c
Merging quilt/device-mapper (4b63eba This device-mapper target creates a read-only device that transparently validates the data on one underlying device against a pre-generated tree of cryptographic checksums stored on a second device.)
Merging embedded/master (4744b43 embedded: fix vc_translate operator precedence)
Merging firmware/master (6e03a20 firmware: speed up request_firmware(), v3)
Merging pcmcia/master (80af9e6 pcmcia at91_cf: fix raw gpio number usage)
CONFLICT (content): Merge conflict in drivers/pcmcia/soc_common.c
Merging mmc/mmc-next (135111c mmc: sh_mmcif: simplify bitmask macros)
Merging kgdb/kgdb-next (53c40f5 kdb: Add message about CONFIG_DEBUG_RODATA on failure to install breakpoint)
Merging slab/for-next (b80b6c0 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 (440c26c md: Avoid OOPS when reshaping raid1 to raid0)
Merging mfd/for-next (b8589e2 gpio/twl: Add DT support to gpio-twl4030 driver)
Merging battery/master (5cdd4d7 max17042_battery: Clean up interrupt handling)
Merging drm/drm-next (5466c7b drm/i915: use DDC_ADDR instead of hard-coding it)
Merging fbdev/fbdev-next (6bff98b Revert "video:uvesafb: Fix oops that uvesafb try to execute NX-protected page")
Merging viafb/viafb-next (838ac78 viafb: avoid refresh and mode lookup in set_par)
Merging omap_dss2/for-next (df01d53 OMAPDSS: APPLY: fix clearing shadow dirty flag with manual update)
Merging regulator/for-next (fa5a97b regulator: Return microamps in wm8350_isink_get_current)
Merging security/next (09f61cd Merge branch 'for-security' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor into next)
Merging selinux/master (ecf093d SELinux: add default_type statements)
Merging lblnet/master (7e27d6e Linux 2.6.35-rc3)
Merging watchdog/master (b92c803 watchdog: txx9wdt: fix timeout)
Merging dwmw2-iommu/master (c3b92c8 Linux 3.1)
Merging iommu/next (7de4730 Merge branches 'iommu/fixes', 'arm/tegra' and 'x86/amd' into next)
Merging osd/linux-next (72749a2 exofs: Cap on the memcpy() size)
Merging jc_docs/docs-next (5c050fb docs: update the development process document)
Merging trivial/for-next (409a3e9 Email/web address change)
CONFLICT (content): Merge conflict in drivers/net/ethernet/realtek/r8169.c
Merging audit/for-next (dcd6c92 Linux 3.3-rc1)
Merging pm/linux-next (c4772d1 PM / QoS: add pm_qos_update_request_timeout() API)
Merging apm/for-next (b4a133d Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm)
Merging fsnotify/for-next (ef9bf3b fanotify: only destroy a mark if both its mask and its ignored_mask are cleared)
Merging edac/linux_next (a4b4be3 edac: rename channel_info to rank_info)
Merging edac-amd/for-next (305f1c3 Merge branch '3.3-pci_device_id' into edac-for-next)
Merging devicetree/devicetree/next (0f22dd3 of: Only compile OF_DYNAMIC on PowerPC pseries and iseries)
Merging spi/spi/next (87bf5ab spi/fsl-espi: Make sure pm is within 2..32)
Merging tip/auto-latest (634ad66 Merge branch 'x86/urgent')
CONFLICT (content): Merge conflict in arch/x86/Kconfig
Merging rcu/rcu/next (1cc8596 rcu: Stop spurious warnings from synchronize_sched_expedited)
Merging cputime/cputime (c3e0ef9 [S390] fix cputime overflow in uptime_proc_show)
Merging uprobes/for-next (0326f5a uprobes/core: Handle breakpoint and singlestep exceptions)
Merging cgroup/for-next (3ce3230 cgroup: Walk task list under tasklist_lock in cgroup_enable_task_cg_list)
Merging kmemleak/kmemleak (d65b4e9 Linux 3.3-rc3)
Merging kvm/linux-next (cf9eeac KVM: Convert intx_mask_lock to spin lock)
Merging oprofile/for-next (c16fa4f Linux 3.3)
Merging xen/upstream/xen (59e9a6b Merge branch 'upstream/ticketlock-cleanup' into upstream/xen)
CONFLICT (content): Merge conflict in arch/x86/include/asm/cmpxchg.h
Merging xen-two/linux-next (2faaa4d Merge branch 'stable/for-linus-3.4' into linux-next)
CONFLICT (content): Merge conflict in arch/x86/kernel/apic/io_apic.c
CONFLICT (content): Merge conflict in arch/x86/include/asm/io_apic.h
Merging xen-pvhvm/linux-next (b056b6a xen: suspend: remove xen_hvm_suspend)
Merging percpu/for-next (adb7950 percpu: fix __this_cpu_{sub,inc,dec}_return() definition)
Merging workqueues/for-next (e06ffa1 workqueue: use percpu allocator for cwq on UP)
Merging drivers-x86/linux-next (86924de acer-wmi: add quirk table for video backlight vendor mode)
Merging hwpoison/hwpoison (46e387b Merge branch 'hwpoison-hugepages' into hwpoison)
Merging sysctl/master (4e474a0 sysctl: protect poll() in entries that may go away)
Merging regmap/for-next (7d680ba Merge remote-tracking branch 'regmap/topic/introspection' into regmap-next)
Merging hsi/for-next (43139a6 HSI: hsi_char: Update ioctl-number.txt)
Merging driver-core/driver-core-next (adc80ae Tools: hv: Support enumeration from all the pools)
Merging tty/tty-next (fb8ebec serial: pxa: add clk_prepare/clk_unprepare calls)
Merging usb/usb-next (11207b6 net: qmi_wwan: add support for ZTE MF820D)
Merging staging/staging-next (bc01caf staging/zmem: Use lockdep_assert_held instead of spin_is_locked)
Merging char-misc/char-misc-next (b222258 misc: bmp085: Use unsigned long to store jiffies)
Merging tmem/linux-next (9c9fc31 Merge commit 'e22057c8599373e5caef0bc42bdb95d2a361ab0d' into linux-next)
Merging writeback/writeback-for-next (697e6fe writeback: Remove outdated comment)
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 (51dddfe ARM: u300: configure some pins as an example)
Merging moduleh/for-sfr (de2272c Merge branch 'device-3.4' into for-sfr)
CONFLICT (content): Merge conflict in lib/string.c
Merging vhost/linux-next (1e05b62 sh: use the the PCI channels's io_map_base)
Merging kmap_atomic/kmap_atomic (317b6e1 feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal)
Merging modem-shm/for-next (3cff1cc caif_shm: Add CAIF driver for Shared memory for M7400)
Merging memblock/memblock-kill-early_node_map (7bd0b0f memblock: Reimplement memblock allocation using reverse free area iterator)
Merging remoteproc/for-next (e12bc14 remoteproc: s/big switch/lookup table/)
Merging irqdomain/irqdomain/next (409a6f6 Merge branch 'irqdomain-for-grant' of git://sources.calxeda.com/kernel/linux into irqdomain/next)
CONFLICT (content): Merge conflict in arch/arm/Kconfig
Merging gpio/gpio/next (c77c8a6 gpio/ep93xx: Remove unused inline function and useless pr_err message)
Merging arm-soc/for-next (61c8b32 Merge branch 'next/drivers2' into for-next)
CONFLICT (content): Merge conflict in drivers/rtc/rtc-sa1100.c
CONFLICT (modify/delete): arch/arm/mach-vexpress/include/mach/io.h deleted in arm-soc/for-next and modified in HEAD. Version HEAD of arch/arm/mach-vexpress/include/mach/io.h left in tree.
CONFLICT (content): Merge conflict in arch/arm/mach-ux500/Kconfig
CONFLICT (content): Merge conflict in arch/arm/mach-tegra/Makefile
CONFLICT (content): Merge conflict in arch/arm/mach-omap1/board-palmtt.c
CONFLICT (content): Merge conflict in arch/arm/mach-omap1/board-osk.c
CONFLICT (content): Merge conflict in arch/arm/mach-imx/mm-imx5.c
CONFLICT (content): Merge conflict in arch/arm/mach-imx/mm-imx3.c
$ git rm -f arch/arm/mach-vexpress/include/mach/io.h
Merging kvmtool/master (20082f5 kvm tools: Fix realpath() error checking)
Merging dma-mapping/dma-mapping-next (64d70fe common: DMA-mapping: add NON-CONSISTENT attribute)
Merging dma-buf/for-next (9f28056 dma-buf: Correct dummy function declarations.)
Merging ktest/for-next (648a182 ktest: Allow a test to override REBOOT_ON_SUCCESS)
Merging cpuidle-cons/cpuidle_consol_pull (203b52e SH: shmobile: Consolidate time keeping and irq enable)
CONFLICT (content): Merge conflict in drivers/cpuidle/cpuidle.c
CONFLICT (content): Merge conflict in arch/arm/mach-davinci/cpuidle.c
CONFLICT (content): Merge conflict in arch/arm/mach-at91/cpuidle.c
CONFLICT (add/add): Merge conflict in arch/arm/include/asm/cpuidle.h
Merging scsi-post-merge/merge-base:master ()
$ git checkout akpm
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: intel_mid_powerbtn: mark irq as IRQF_NO_SUSPEND
Applying: arch/arm/mach-ux500/mbox-db5500.c: world-writable sysfs fifo file
Applying: avr32: don't mask signals in the error path
Applying: avr32: use set_current_blocked() in handle_signal/sys_rt_sigreturn
Applying: avr32: use block_sigmask()
Applying: x86: use this_cpu_xxx to replace percpu_xxx funcs
Applying: x86: change percpu_read_stable() to this_cpu_read_stable()
Applying: net: use this_cpu_xxx replace percpu_xxx funcs
Applying: percpu: remove percpu_xxx() functions
Applying: percpu-remove-percpu_xxx-functions-fix
Applying: ia64: use set_current_blocked() and block_sigmask()
Applying: microblaze: don't reimplement force_sigsegv()
Applying: microblaze: no need to reset handler if SA_ONESHOT
Applying: microblaze: fix signal masking
Applying: microblaze: use set_current_blocked() and block_sigmask()
Applying: MIPS: use set_current_blocked() and block_sigmask()
Applying: score: don't mask signals if we fail to setup signal stack
Applying: score: use set_current_blocked() and block_sigmask()
Applying: unicore32: use block_sigmask()
Applying: net/netfilter/nfnetlink_acct.c: use linux/atomic.h
Applying: blackfin: use set_current_blocked() and block_sigmask()
Applying: ocfs2: use find_last_bit()
Applying: ocfs2: use bitmap_weight()
Applying: parisc: use set_current_blocked() and block_sigmask()
Applying: vfs: increment iversion when a file is truncated
Applying: brlocks/lglocks: cleanups
Applying: vfs: fix dup_mnt_ns
Applying: hugetlbfs: lockdep annotate root inode properly
Applying: libfs: add simple_open()
Applying: scripts/coccinelle/api/simple_open.cocci: semantic patch for simple_open()
Applying: simple_open: automatically convert to simple_open()
Applying: simple_open-automatically-convert-to-simple_open-checkpatch-fixes
Applying: fs: symlink restrictions on sticky directories
Applying: fs-symlink-restrictions-on-sticky-directories-fix-2
Applying: fs: hardlink creation restrictions
Applying: fs-hardlink-creation-restrictions-fix
Applying: fs: hardlink creation restriction cleanup
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: frv: use set_current_blocked() and block_sigmask()
Applying: sh: no need to reset handler if SA_ONESHOT
Applying: sh: use set_current_blocked() and block_sigmask()
Applying: h8300: use set_current_blocked() and block_sigmask()
Applying: alpha: use set_current_blocked() and block_sigmask()
Applying: m32r: use set_current_blocked() and block_sigmask()
Applying: m68k: use set_current_blocked() and block_sigmask()
Applying: mn10300: use set_current_blocked() and block_sigmask()
Applying: C6X: use set_current_blocked() and block_sigmask()
Applying: cpuidle: add a sysfs entry to disable specific C state for debug purpose.
Applying: cpuidle-add-a-sysfs-entry-to-disable-specific-c-state-for-debug-purpose-fix
Applying: cris: use set_current_blocked() and block_sigmask()
Applying: cris: select GENERIC_ATOMIC64
Applying: um/kernel/trap.c: port OOM changes to handle_page_fault()
Applying: ceph, cifs, nfs, fuse: boolean and / or confusion
Applying: powerpc/eeh: remove eeh_event_handler()->daemonize()
Applying: arch/powerpc/platforms/pseries/eeh_event.c: slightly fix set_current_state() wart
Applying: MAINTAINERS: fix REMOTEPROC F: typo
Applying: checkpatch: suggest pr_<level> over printk(KERN_<LEVEL>
Applying: init/do_mounts.c: create /root if it does not exist
Applying: kmod: avoid deadlock from recursive kmod call
Applying: kmod-avoid-deadlock-by-recursive-kmod-call-fix
Applying: proc: clean up /proc/<pid>/environ handling
Applying: smp: introduce a generic on_each_cpu_mask() function
Applying: arm: move arm over to generic on_each_cpu_mask
Applying: tile: move tile to use generic on_each_cpu_mask
Applying: smp: add func to IPI cpus based on parameter func
Applying: smp-add-func-to-ipi-cpus-based-on-parameter-func-fix
Applying: smp-add-func-to-ipi-cpus-based-on-parameter-func-update
Applying: smp-add-func-to-ipi-cpus-based-on-parameter-func-update-fix
Applying: smp: add func to IPI cpus based on parameter func
Applying: smp-add-func-to-ipi-cpus-based-on-parameter-func-v9-fix
Applying: slub: only IPI CPUs that have per cpu obj to flush
Applying: fs: only send IPI to invalidate LRU BH when needed
Applying: mm: only IPI CPUs to drain local pages if they exist
Applying: mm-only-ipi-cpus-to-drain-local-pages-if-they-exist-update
Applying: mm-only-ipi-cpus-to-drain-local-pages-if-they-exist-v9
Applying: lib/cpumask.c: remove __any_online_cpu()
Applying: arch/ia64: remove references to cpu_*_map
Applying: kexec: crash: don't save swapper_pg_dir for !CONFIG_MMU configurations
Applying: kexec: add further check to crashkernel
Applying: kdump x86: fix total mem size calculation for reservation
Applying: ipc/sem.c: alternatives to preempt_disable()
Applying: ipmi: decrease the IPMI message transaction time in interrupt mode
Applying: ipmi: increase KCS timeouts
Applying: ipmi: use a tasklet for handling received messages
Applying: ipmi: fix message handling during panics
Applying: ipmi: simplify locking
Applying: ipmi: use locks on watchdog timeout set on reboot
Applying: sysctl: use bitmap library functions
Applying: pidns: add reboot_pid_ns() to handle the reboot syscall
Applying: pidns-add-reboot_pid_ns-to-handle-the-reboot-syscall-fix
Applying: pidns-add-reboot_pid_ns-to-handle-the-reboot-syscall-checkpatch-fixes
Applying: nbd: rename the nbd_device variable from lo to nbd
Applying: fs/proc/namespaces.c: prevent crash when ns_entries[] is empty
Applying: radix-tree: introduce bit-optimized iterator
Applying: radix-tree-introduce-bit-optimized-iterator-v3
Applying: radix-tree-introduce-bit-optimized-iterator-v3-fix
Applying: radix-tree: rewrite gang lookup using iterator
Applying: radix-tree: use iterators in find_get_pages* functions
Applying: selftests: launch individual selftests from the main Makefile
Applying: selftests/Makefile: make `run_tests' depend on `all'
Applying: mm: move page-types.c from Documentation to tools/vm
Applying: mm: move slabinfo.c to tools/vm
Applying: mm: move hugepage test examples to tools/testing/selftests/vm
Applying: move-hugepage-test-examples-to-tools-testing-selftests-vm-fix
Applying: move-hugepage-test-examples-to-tools-testing-selftests-vm-fix-fix
Applying: sysctl: make kernel.ns_last_pid control dependent on CHECKPOINT_RESTORE
Applying: fs, proc: introduce /proc/<pid>/task/<tid>/children entry
Applying: syscalls, x86: add __NR_kcmp syscall
Applying: syscalls-x86-add-__nr_kcmp-syscall-v8-fix
Applying: syscalls-x86-add-__nr_kcmp-syscall-v8-fix-2
Applying: c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat
Applying: c/r: prctl: extend PR_SET_MM to set up more mm_struct entries
Applying: c/r: prctl: add ability to set new mm_struct::exe_file
Applying: c-r-prctl-add-ability-to-set-new-mm_struct-exe_file-v2
Applying: c/r: prctl: add ability to get clear_tid_address
Applying: c-r-prctl-add-ability-to-get-clear_tid_address-fix
Applying: ramoops: use pstore interface
Applying: ramoops: fix printk format warnings
Applying: notify_change(): check that i_mutex is held
Merging akpm (9658774 notify_change(): check that i_mutex is held)
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: bpf_slow_path: sibling call to `skb_copy_bits' not allowed multiple TOCs (ppc)
From: Stephen Rothwell @ 2012-03-29 3:30 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: netdev, linuxppc-dev, linux-next
In-Reply-To: <CAP=VYLqwbjNDQ-TTbs_6cH4X2MMzy=MAFy4=R116zGL8a6qUag@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 814 bytes --]
Hi Paul,
On Wed, 28 Mar 2012 20:54:56 -0400 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>
> coverage. Even in the absence of the skb error, it still fails to link with:
>
> "powerpc-linux-ld: TOC section size exceeds 64k"
>
> i.e. it never links into anything a person could actually try and boot anyway.
>
> So, just knowing "yes that is bogus because you've got a giant kernel
> with multiple TOC" would be useful information here.
This last message has been known for a long time and would require us to
change the way we link the kernel to fix. I had a go at it a year or so
ago, but ran into binutils bugs :-(
The other message may be a result of the TOC section size problem, but I
am not sure.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: linux-next: breakage on undefined reference to `nfsd4_cld_block'
From: Stephen Rothwell @ 2012-03-29 3:24 UTC (permalink / raw)
To: Paul Gortmaker
Cc: jlayton, bfields, Trond.Myklebust, linux-nfs, linux-next,
J. Bruce Fields
In-Reply-To: <CAP=VYLr9CL33ZbEVUhVNXsKOCcDWmwmP268jggzWJEBaMa_W0w@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4045 bytes --]
[cc of nfsd tree contact added]
On Wed, 28 Mar 2012 20:31:36 -0400 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>
> Hi all,
>
> The linux-next tree got about ten new failures today, spanning all arch.
> They all shared this in common, it seems.
>
> ERROR: "nfsd4_cld_block" [fs/nfsd/nfsd.ko] undefined!
> make[2]: *** [__modpost] Error 1
>
> I chose alpha (since it was the 1st I saw alphabetically) and did a bisect,
> and it came up with the below commit. I've also included the bisect log.
>
> Can someone please take a look at this? Too late to fix for the Thursday
> build, but Friday might be the last for 3.4 content and it would be nice to
> have all these builds green again in that one.
>
> Thanks,
> Paul.
>
> --------------
> commit 813fd320c16691eac508fe350b4ee7362c6c4a56
> Author: Jeff Layton <jlayton@redhat.com>
> Date: Wed Mar 21 09:52:08 2012 -0400
>
> nfsd: add notifier to handle mount/unmount of rpc_pipefs sb
>
> In the event that rpc_pipefs isn't mounted when nfsd starts, we
> must register a notifier to handle creating the dentry once it
> is mounted, and to remove the dentry on unmount.
>
> Signed-off-by: Jeff Layton <jlayton@redhat.com>
> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
> -------------------
>
> git bisect start
> # good: [c16fa4f2ad19908a47c63d8fa436a1178438c7e7] Linux 3.3
> git bisect good c16fa4f2ad19908a47c63d8fa436a1178438c7e7
> # bad: [7734592ef4a5d14bba15cf2df7fcac8c39d6bdb4] Add linux-next
> specific files for 20120328
> git bisect bad 7734592ef4a5d14bba15cf2df7fcac8c39d6bdb4
> # good: [50953e0640b3473dcb409d5d0d938c2742c93b0d] Merge branch 'poll'
> into staging/for_v3.4
> git bisect good 50953e0640b3473dcb409d5d0d938c2742c93b0d
> # bad: [ecc717668be52fe7b3b29e922b96700067767f05] Merge
> remote-tracking branch 'l2-mtd/master'
> git bisect bad ecc717668be52fe7b3b29e922b96700067767f05
> # good: [d0f6867abfb505b191e31a87dbcdeed65241243a] Merge
> remote-tracking branch 'arm/for-next'
> git bisect good d0f6867abfb505b191e31a87dbcdeed65241243a
> # bad: [2dddaf865e0c13448518abbabd0ad462a7a2d3dd] Merge
> remote-tracking branch 'kbuild/for-next'
> git bisect bad 2dddaf865e0c13448518abbabd0ad462a7a2d3dd
> # bad: [7be8f9ff0749f5d8a0a508b071c206cb68decf04] Merge
> remote-tracking branch 'nfsd/nfsd-next'
> git bisect bad 7be8f9ff0749f5d8a0a508b071c206cb68decf04
> # good: [5537f6f1d690270d388987d543de2cc1e7be40e6] Merge
> remote-tracking branch 'ceph/master'
> git bisect good 5537f6f1d690270d388987d543de2cc1e7be40e6
> # good: [9d547c35799a4ddd235f1565cec2fff6c9263504] vfs: remove unused
> superblock helpers
> git bisect good 9d547c35799a4ddd235f1565cec2fff6c9263504
> # bad: [cc27e0d407021a278d08c1952f5af4ab38c49eda] nfsd: don't allow
> legacy client tracker init for anything but init_net
> git bisect bad cc27e0d407021a278d08c1952f5af4ab38c49eda
> # good: [1255a8f36cb16a02540bdad91c0bc0971b9fb429] nfsd4: don't set
> cl_firststate on first reclaim in 4.1 case
> git bisect good 1255a8f36cb16a02540bdad91c0bc0971b9fb429
> # good: [62b9510cb373d5722fdaba71d961d8f695acfcd5] nfsd: merge cookie
> collision fixes from ext4 tree
> git bisect good 62b9510cb373d5722fdaba71d961d8f695acfcd5
> # good: [2a4317c55438d8589a015d42912454ede12031f0] nfsd: add
> nfsd4_client_tracking_ops struct and a way to set it
> git bisect good 2a4317c55438d8589a015d42912454ede12031f0
> # good: [0ab628d856a63d63b47307b09851d1e955c706ac] nfsd: add a header
> describing upcall to nfsdcld
> git bisect good 0ab628d856a63d63b47307b09851d1e955c706ac
> # bad: [813fd320c16691eac508fe350b4ee7362c6c4a56] nfsd: add notifier
> to handle mount/unmount of rpc_pipefs sb
> git bisect bad 813fd320c16691eac508fe350b4ee7362c6c4a56
> # good: [f3f8014862d813cca81a597c83bd1dbf0fb2b8f6] nfsd: add the
> infrastructure to handle the cld upcall
> git bisect good f3f8014862d813cca81a597c83bd1dbf0fb2b8f6
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: linux-next: recent scsi patches causing 2 warnings per compiled file
From: Stephen Rothwell @ 2012-03-29 3:22 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: James Bottomley, linux-scsi, linux-next
In-Reply-To: <CAP=VYLoXHVrFnKyRjG3sSgosqRs69pme9B=8r4H-uwb=3_2XaQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 938 bytes --]
Hi Paul,
On Wed, 28 Mar 2012 20:16:03 -0400 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>
> I just noticed that the alpha (and probably other arch?) are now
> getting two warnings per file compiled, which is kind of ugly.
>
> Here is where it transitioned:
>
> good: Mar 24: http://kisskb.ellerman.id.au/kisskb/buildresult/5941020/
>
> bad: Mar 26: http://kisskb.ellerman.id.au/kisskb/buildresult/5968296/
>
> Screens and screens of these appear:
>
> drivers/scsi/scsi_priv.h:166:1: warning: "__enabled_CONFIG_PM" is not defined
> drivers/scsi/scsi_priv.h:166:1: warning: "__enabled_CONFIG_PM_MODULE"
> is not defined
>
> Missing an include of linux/pm.h or similar, I'd guess. Can you have
> a look please?
This happens because the affected architectures do not include the pm
Kconfig. I think it has been fixed today.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* linux-next: manual merge of the trivial tree with Linus' tree
From: Stephen Rothwell @ 2012-03-29 1:48 UTC (permalink / raw)
To: Jiri Kosina; +Cc: linux-next, linux-kernel, Justin P. Mattock, Francois Romieu
[-- Attachment #1: Type: text/plain, Size: 42586 bytes --]
Hi Jiri,
Today's linux-next merge of the trivial tree got a conflict in
drivers/net/ethernet/realtek/r8169.c between commit df43ac7831a0 ("r8169:
move rtl8169_open after rtl_task it depends on") (and others) from Linus'
tree and commit a9d7e794ea66 ("r8169.c: fix comment typo") from the
trivial tree.
I fixed it up (see below) and can carry the fix as necessary.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc drivers/net/ethernet/realtek/r8169.c
index 27c358c,7f06508..0000000
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@@ -5530,768 -5390,823 +5530,768 @@@ static void rtl_task(struct work_struc
struct net_device *dev = tp->dev;
int i;
- rtnl_lock();
+ rtl_lock_work(tp);
- if (!netif_running(dev))
+ if (!netif_running(dev) ||
+ !test_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags))
goto out_unlock;
- rtl8169_hw_reset(tp);
-
- rtl8169_wait_for_quiescence(dev);
-
- for (i = 0; i < NUM_RX_DESC; i++)
- rtl8169_mark_to_asic(tp->RxDescArray + i, rx_buf_sz);
-
- rtl8169_tx_clear(tp);
- rtl8169_init_ring_indexes(tp);
+ for (i = 0; i < ARRAY_SIZE(rtl_work); i++) {
+ bool pending;
- rtl_hw_start(dev);
- netif_wake_queue(dev);
- rtl8169_check_link_status(dev, tp, tp->mmio_addr);
+ pending = test_and_clear_bit(rtl_work[i].bitnr, tp->wk.flags);
+ if (pending)
+ rtl_work[i].action(tp);
+ }
out_unlock:
- rtnl_unlock();
-}
-
-static void rtl8169_tx_timeout(struct net_device *dev)
-{
- rtl8169_schedule_work(dev, rtl8169_reset_task);
+ rtl_unlock_work(tp);
}
-static int rtl8169_xmit_frags(struct rtl8169_private *tp, struct sk_buff *skb,
- u32 *opts)
+static int rtl8169_poll(struct napi_struct *napi, int budget)
{
- struct skb_shared_info *info = skb_shinfo(skb);
- unsigned int cur_frag, entry;
- struct TxDesc * uninitialized_var(txd);
- struct device *d = &tp->pci_dev->dev;
-
- entry = tp->cur_tx;
- for (cur_frag = 0; cur_frag < info->nr_frags; cur_frag++) {
- const skb_frag_t *frag = info->frags + cur_frag;
- dma_addr_t mapping;
- u32 status, len;
- void *addr;
+ struct rtl8169_private *tp = container_of(napi, struct rtl8169_private, napi);
+ struct net_device *dev = tp->dev;
+ u16 enable_mask = RTL_EVENT_NAPI | tp->event_slow;
+ int work_done= 0;
+ u16 status;
- entry = (entry + 1) % NUM_TX_DESC;
+ status = rtl_get_events(tp);
+ rtl_ack_events(tp, status & ~tp->event_slow);
- txd = tp->TxDescArray + entry;
- len = skb_frag_size(frag);
- addr = skb_frag_address(frag);
- mapping = dma_map_single(d, addr, len, DMA_TO_DEVICE);
- if (unlikely(dma_mapping_error(d, mapping))) {
- if (net_ratelimit())
- netif_err(tp, drv, tp->dev,
- "Failed to map TX fragments DMA!\n");
- goto err_out;
- }
+ if (status & RTL_EVENT_NAPI_RX)
+ work_done = rtl_rx(dev, tp, (u32) budget);
- /* Anti gcc 2.95.3 bugware (sic) */
- status = opts[0] | len |
- (RingEnd * !((entry + 1) % NUM_TX_DESC));
+ if (status & RTL_EVENT_NAPI_TX)
+ rtl_tx(dev, tp);
- txd->opts1 = cpu_to_le32(status);
- txd->opts2 = cpu_to_le32(opts[1]);
- txd->addr = cpu_to_le64(mapping);
+ if (status & tp->event_slow) {
+ enable_mask &= ~tp->event_slow;
- tp->tx_skb[entry].len = len;
+ rtl_schedule_task(tp, RTL_FLAG_TASK_SLOW_PENDING);
}
- if (cur_frag) {
- tp->tx_skb[entry].skb = skb;
- txd->opts1 |= cpu_to_le32(LastFrag);
- }
+ if (work_done < budget) {
+ napi_complete(napi);
- return cur_frag;
+ rtl_irq_enable(tp, enable_mask);
+ mmiowb();
+ }
-err_out:
- rtl8169_tx_clear_range(tp, tp->cur_tx + 1, cur_frag);
- return -EIO;
+ return work_done;
}
-static inline void rtl8169_tso_csum(struct rtl8169_private *tp,
- struct sk_buff *skb, u32 *opts)
+static void rtl8169_rx_missed(struct net_device *dev, void __iomem *ioaddr)
{
- const struct rtl_tx_desc_info *info = tx_desc_info + tp->txd_version;
- u32 mss = skb_shinfo(skb)->gso_size;
- int offset = info->opts_offset;
+ struct rtl8169_private *tp = netdev_priv(dev);
- if (mss) {
- opts[0] |= TD_LSO;
- opts[offset] |= min(mss, TD_MSS_MAX) << info->mss_shift;
- } else if (skb->ip_summed == CHECKSUM_PARTIAL) {
- const struct iphdr *ip = ip_hdr(skb);
+ if (tp->mac_version > RTL_GIGA_MAC_VER_06)
+ return;
- if (ip->protocol == IPPROTO_TCP)
- opts[offset] |= info->checksum.tcp;
- else if (ip->protocol == IPPROTO_UDP)
- opts[offset] |= info->checksum.udp;
- else
- WARN_ON_ONCE(1);
- }
+ dev->stats.rx_missed_errors += (RTL_R32(RxMissed) & 0xffffff);
+ RTL_W32(RxMissed, 0);
}
-static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
- struct net_device *dev)
+static void rtl8169_down(struct net_device *dev)
{
struct rtl8169_private *tp = netdev_priv(dev);
- unsigned int entry = tp->cur_tx % NUM_TX_DESC;
- struct TxDesc *txd = tp->TxDescArray + entry;
void __iomem *ioaddr = tp->mmio_addr;
- struct device *d = &tp->pci_dev->dev;
- dma_addr_t mapping;
- u32 status, len;
- u32 opts[2];
- int frags;
- if (unlikely(TX_BUFFS_AVAIL(tp) < skb_shinfo(skb)->nr_frags)) {
- netif_err(tp, drv, dev, "BUG! Tx Ring full when queue awake!\n");
- goto err_stop_0;
- }
+ del_timer_sync(&tp->timer);
- if (unlikely(le32_to_cpu(txd->opts1) & DescOwn))
- goto err_stop_0;
+ napi_disable(&tp->napi);
+ netif_stop_queue(dev);
- len = skb_headlen(skb);
- mapping = dma_map_single(d, skb->data, len, DMA_TO_DEVICE);
- if (unlikely(dma_mapping_error(d, mapping))) {
- if (net_ratelimit())
- netif_err(tp, drv, dev, "Failed to map TX DMA!\n");
- goto err_dma_0;
- }
+ rtl8169_hw_reset(tp);
+ /*
+ * At this point device interrupts can not be enabled in any function,
+ * as netif_running is not true (rtl8169_interrupt, rtl8169_reset_task)
+ * and napi is disabled (rtl8169_poll).
+ */
+ rtl8169_rx_missed(dev, ioaddr);
- tp->tx_skb[entry].len = len;
- txd->addr = cpu_to_le64(mapping);
+ /* Give a racing hard_start_xmit a few cycles to complete. */
+ synchronize_sched();
- opts[1] = cpu_to_le32(rtl8169_tx_vlan_tag(tp, skb));
- opts[0] = DescOwn;
+ rtl8169_tx_clear(tp);
- rtl8169_tso_csum(tp, skb, opts);
+ rtl8169_rx_clear(tp);
- frags = rtl8169_xmit_frags(tp, skb, opts);
- if (frags < 0)
- goto err_dma_1;
- else if (frags)
- opts[0] |= FirstFrag;
- else {
- opts[0] |= FirstFrag | LastFrag;
- tp->tx_skb[entry].skb = skb;
- }
+ rtl_pll_power_down(tp);
+}
- txd->opts2 = cpu_to_le32(opts[1]);
+static int rtl8169_close(struct net_device *dev)
+{
+ struct rtl8169_private *tp = netdev_priv(dev);
+ struct pci_dev *pdev = tp->pci_dev;
- wmb();
+ pm_runtime_get_sync(&pdev->dev);
- /* Anti gcc 2.95.3 bugware (sic) */
- status = opts[0] | len | (RingEnd * !((entry + 1) % NUM_TX_DESC));
- txd->opts1 = cpu_to_le32(status);
+ /* Update counters before going down */
+ rtl8169_update_counters(dev);
- tp->cur_tx += frags + 1;
+ rtl_lock_work(tp);
+ clear_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags);
- wmb();
+ rtl8169_down(dev);
+ rtl_unlock_work(tp);
- RTL_W8(TxPoll, NPQ);
+ free_irq(pdev->irq, dev);
- if (TX_BUFFS_AVAIL(tp) < MAX_SKB_FRAGS) {
- netif_stop_queue(dev);
- smp_rmb();
- if (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)
- netif_wake_queue(dev);
- }
+ dma_free_coherent(&pdev->dev, R8169_RX_RING_BYTES, tp->RxDescArray,
+ tp->RxPhyAddr);
+ dma_free_coherent(&pdev->dev, R8169_TX_RING_BYTES, tp->TxDescArray,
+ tp->TxPhyAddr);
+ tp->TxDescArray = NULL;
+ tp->RxDescArray = NULL;
- return NETDEV_TX_OK;
+ pm_runtime_put_sync(&pdev->dev);
-err_dma_1:
- rtl8169_unmap_tx_skb(d, tp->tx_skb + entry, txd);
-err_dma_0:
- dev_kfree_skb(skb);
- dev->stats.tx_dropped++;
- return NETDEV_TX_OK;
+ return 0;
+}
-err_stop_0:
- netif_stop_queue(dev);
- dev->stats.tx_dropped++;
- return NETDEV_TX_BUSY;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+static void rtl8169_netpoll(struct net_device *dev)
+{
+ struct rtl8169_private *tp = netdev_priv(dev);
+
+ rtl8169_interrupt(tp->pci_dev->irq, dev);
}
+#endif
-static void rtl8169_pcierr_interrupt(struct net_device *dev)
+static int rtl_open(struct net_device *dev)
{
struct rtl8169_private *tp = netdev_priv(dev);
+ void __iomem *ioaddr = tp->mmio_addr;
struct pci_dev *pdev = tp->pci_dev;
- u16 pci_status, pci_cmd;
-
- pci_read_config_word(pdev, PCI_COMMAND, &pci_cmd);
- pci_read_config_word(pdev, PCI_STATUS, &pci_status);
+ int retval = -ENOMEM;
- netif_err(tp, intr, dev, "PCI error (cmd = 0x%04x, status = 0x%04x)\n",
- pci_cmd, pci_status);
+ pm_runtime_get_sync(&pdev->dev);
/*
- * Rx and Tx desscriptors needs 256 bytes alignment.
- * The recovery sequence below admits a very elaborated explanation:
- * - it seems to work;
- * - I did not see what else could be done;
- * - it makes iop3xx happy.
- *
- * Feel free to adjust to your needs.
++ * Rx and Tx desscriptors need 256 bytes alignment.
+ * dma_alloc_coherent provides more.
*/
- if (pdev->broken_parity_status)
- pci_cmd &= ~PCI_COMMAND_PARITY;
- else
- pci_cmd |= PCI_COMMAND_SERR | PCI_COMMAND_PARITY;
+ tp->TxDescArray = dma_alloc_coherent(&pdev->dev, R8169_TX_RING_BYTES,
+ &tp->TxPhyAddr, GFP_KERNEL);
+ if (!tp->TxDescArray)
+ goto err_pm_runtime_put;
- pci_write_config_word(pdev, PCI_COMMAND, pci_cmd);
+ tp->RxDescArray = dma_alloc_coherent(&pdev->dev, R8169_RX_RING_BYTES,
+ &tp->RxPhyAddr, GFP_KERNEL);
+ if (!tp->RxDescArray)
+ goto err_free_tx_0;
- pci_write_config_word(pdev, PCI_STATUS,
- pci_status & (PCI_STATUS_DETECTED_PARITY |
- PCI_STATUS_SIG_SYSTEM_ERROR | PCI_STATUS_REC_MASTER_ABORT |
- PCI_STATUS_REC_TARGET_ABORT | PCI_STATUS_SIG_TARGET_ABORT));
+ retval = rtl8169_init_ring(dev);
+ if (retval < 0)
+ goto err_free_rx_1;
- /* The infamous DAC f*ckup only happens at boot time */
- if ((tp->cp_cmd & PCIDAC) && !tp->dirty_rx && !tp->cur_rx) {
- void __iomem *ioaddr = tp->mmio_addr;
+ INIT_WORK(&tp->wk.work, rtl_task);
- netif_info(tp, intr, dev, "disabling PCI DAC\n");
- tp->cp_cmd &= ~PCIDAC;
- RTL_W16(CPlusCmd, tp->cp_cmd);
- dev->features &= ~NETIF_F_HIGHDMA;
- }
+ smp_mb();
- rtl8169_hw_reset(tp);
+ rtl_request_firmware(tp);
- rtl8169_schedule_work(dev, rtl8169_reinit_task);
-}
+ retval = request_irq(pdev->irq, rtl8169_interrupt,
+ (tp->features & RTL_FEATURE_MSI) ? 0 : IRQF_SHARED,
+ dev->name, dev);
+ if (retval < 0)
+ goto err_release_fw_2;
-static void rtl8169_tx_interrupt(struct net_device *dev,
- struct rtl8169_private *tp,
- void __iomem *ioaddr)
-{
- unsigned int dirty_tx, tx_left;
+ rtl_lock_work(tp);
- dirty_tx = tp->dirty_tx;
- smp_rmb();
- tx_left = tp->cur_tx - dirty_tx;
+ set_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags);
- while (tx_left > 0) {
- unsigned int entry = dirty_tx % NUM_TX_DESC;
- struct ring_info *tx_skb = tp->tx_skb + entry;
- u32 status;
+ napi_enable(&tp->napi);
- rmb();
- status = le32_to_cpu(tp->TxDescArray[entry].opts1);
- if (status & DescOwn)
- break;
+ rtl8169_init_phy(dev, tp);
- rtl8169_unmap_tx_skb(&tp->pci_dev->dev, tx_skb,
- tp->TxDescArray + entry);
- if (status & LastFrag) {
- dev->stats.tx_packets++;
- dev->stats.tx_bytes += tx_skb->skb->len;
- dev_kfree_skb(tx_skb->skb);
- tx_skb->skb = NULL;
- }
- dirty_tx++;
- tx_left--;
- }
+ __rtl8169_set_features(dev, dev->features);
- if (tp->dirty_tx != dirty_tx) {
- tp->dirty_tx = dirty_tx;
- smp_wmb();
- if (netif_queue_stopped(dev) &&
- (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) {
- netif_wake_queue(dev);
- }
- /*
- * 8168 hack: TxPoll requests are lost when the Tx packets are
- * too close. Let's kick an extra TxPoll request when a burst
- * of start_xmit activity is detected (if it is not detected,
- * it is slow enough). -- FR
- */
- smp_rmb();
- if (tp->cur_tx != dirty_tx)
- RTL_W8(TxPoll, NPQ);
- }
-}
+ rtl_pll_power_up(tp);
-static inline int rtl8169_fragmented_frame(u32 status)
-{
- return (status & (FirstFrag | LastFrag)) != (FirstFrag | LastFrag);
-}
+ rtl_hw_start(dev);
-static inline void rtl8169_rx_csum(struct sk_buff *skb, u32 opts1)
-{
- u32 status = opts1 & RxProtoMask;
+ netif_start_queue(dev);
- if (((status == RxProtoTCP) && !(opts1 & TCPFail)) ||
- ((status == RxProtoUDP) && !(opts1 & UDPFail)))
- skb->ip_summed = CHECKSUM_UNNECESSARY;
- else
- skb_checksum_none_assert(skb);
-}
+ rtl_unlock_work(tp);
-static struct sk_buff *rtl8169_try_rx_copy(void *data,
- struct rtl8169_private *tp,
- int pkt_size,
- dma_addr_t addr)
-{
- struct sk_buff *skb;
- struct device *d = &tp->pci_dev->dev;
+ tp->saved_wolopts = 0;
+ pm_runtime_put_noidle(&pdev->dev);
- data = rtl8169_align(data);
- dma_sync_single_for_cpu(d, addr, pkt_size, DMA_FROM_DEVICE);
- prefetch(data);
- skb = netdev_alloc_skb_ip_align(tp->dev, pkt_size);
- if (skb)
- memcpy(skb->data, data, pkt_size);
- dma_sync_single_for_device(d, addr, pkt_size, DMA_FROM_DEVICE);
+ rtl8169_check_link_status(dev, tp, ioaddr);
+out:
+ return retval;
- return skb;
+err_release_fw_2:
+ rtl_release_firmware(tp);
+ rtl8169_rx_clear(tp);
+err_free_rx_1:
+ dma_free_coherent(&pdev->dev, R8169_RX_RING_BYTES, tp->RxDescArray,
+ tp->RxPhyAddr);
+ tp->RxDescArray = NULL;
+err_free_tx_0:
+ dma_free_coherent(&pdev->dev, R8169_TX_RING_BYTES, tp->TxDescArray,
+ tp->TxPhyAddr);
+ tp->TxDescArray = NULL;
+err_pm_runtime_put:
+ pm_runtime_put_noidle(&pdev->dev);
+ goto out;
}
-static int rtl8169_rx_interrupt(struct net_device *dev,
- struct rtl8169_private *tp,
- void __iomem *ioaddr, u32 budget)
+static struct rtnl_link_stats64 *
+rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
{
- unsigned int cur_rx, rx_left;
- unsigned int count;
+ struct rtl8169_private *tp = netdev_priv(dev);
+ void __iomem *ioaddr = tp->mmio_addr;
+ unsigned int start;
- cur_rx = tp->cur_rx;
- rx_left = NUM_RX_DESC + tp->dirty_rx - cur_rx;
- rx_left = min(rx_left, budget);
+ if (netif_running(dev))
+ rtl8169_rx_missed(dev, ioaddr);
- for (; rx_left > 0; rx_left--, cur_rx++) {
- unsigned int entry = cur_rx % NUM_RX_DESC;
- struct RxDesc *desc = tp->RxDescArray + entry;
- u32 status;
+ do {
+ start = u64_stats_fetch_begin_bh(&tp->rx_stats.syncp);
+ stats->rx_packets = tp->rx_stats.packets;
+ stats->rx_bytes = tp->rx_stats.bytes;
+ } while (u64_stats_fetch_retry_bh(&tp->rx_stats.syncp, start));
- rmb();
- status = le32_to_cpu(desc->opts1) & tp->opts1_mask;
- if (status & DescOwn)
- break;
- if (unlikely(status & RxRES)) {
- netif_info(tp, rx_err, dev, "Rx ERROR. status = %08x\n",
- status);
- dev->stats.rx_errors++;
- if (status & (RxRWT | RxRUNT))
- dev->stats.rx_length_errors++;
- if (status & RxCRC)
- dev->stats.rx_crc_errors++;
- if (status & RxFOVF) {
- rtl8169_schedule_work(dev, rtl8169_reset_task);
- dev->stats.rx_fifo_errors++;
- }
- rtl8169_mark_to_asic(desc, rx_buf_sz);
- } else {
- struct sk_buff *skb;
- dma_addr_t addr = le64_to_cpu(desc->addr);
- int pkt_size = (status & 0x00003fff) - 4;
+ do {
+ start = u64_stats_fetch_begin_bh(&tp->tx_stats.syncp);
+ stats->tx_packets = tp->tx_stats.packets;
+ stats->tx_bytes = tp->tx_stats.bytes;
+ } while (u64_stats_fetch_retry_bh(&tp->tx_stats.syncp, start));
- /*
- * The driver does not support incoming fragmented
- * frames. They are seen as a symptom of over-mtu
- * sized frames.
- */
- if (unlikely(rtl8169_fragmented_frame(status))) {
- dev->stats.rx_dropped++;
- dev->stats.rx_length_errors++;
- rtl8169_mark_to_asic(desc, rx_buf_sz);
- continue;
- }
+ stats->rx_dropped = dev->stats.rx_dropped;
+ stats->tx_dropped = dev->stats.tx_dropped;
+ stats->rx_length_errors = dev->stats.rx_length_errors;
+ stats->rx_errors = dev->stats.rx_errors;
+ stats->rx_crc_errors = dev->stats.rx_crc_errors;
+ stats->rx_fifo_errors = dev->stats.rx_fifo_errors;
+ stats->rx_missed_errors = dev->stats.rx_missed_errors;
- skb = rtl8169_try_rx_copy(tp->Rx_databuff[entry],
- tp, pkt_size, addr);
- rtl8169_mark_to_asic(desc, rx_buf_sz);
- if (!skb) {
- dev->stats.rx_dropped++;
- continue;
- }
+ return stats;
+}
- rtl8169_rx_csum(skb, status);
- skb_put(skb, pkt_size);
- skb->protocol = eth_type_trans(skb, dev);
+static void rtl8169_net_suspend(struct net_device *dev)
+{
+ struct rtl8169_private *tp = netdev_priv(dev);
- rtl8169_rx_vlan_tag(desc, skb);
+ if (!netif_running(dev))
+ return;
- napi_gro_receive(&tp->napi, skb);
+ netif_device_detach(dev);
+ netif_stop_queue(dev);
- dev->stats.rx_bytes += pkt_size;
- dev->stats.rx_packets++;
- }
+ rtl_lock_work(tp);
+ napi_disable(&tp->napi);
+ clear_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags);
+ rtl_unlock_work(tp);
- /* Work around for AMD plateform. */
- if ((desc->opts2 & cpu_to_le32(0xfffe000)) &&
- (tp->mac_version == RTL_GIGA_MAC_VER_05)) {
- desc->opts2 = 0;
- cur_rx++;
- }
- }
+ rtl_pll_power_down(tp);
+}
- count = cur_rx - tp->cur_rx;
- tp->cur_rx = cur_rx;
+#ifdef CONFIG_PM
- tp->dirty_rx += count;
+static int rtl8169_suspend(struct device *device)
+{
+ struct pci_dev *pdev = to_pci_dev(device);
+ struct net_device *dev = pci_get_drvdata(pdev);
- return count;
+ rtl8169_net_suspend(dev);
+
+ return 0;
}
-static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
+static void __rtl8169_resume(struct net_device *dev)
{
- struct net_device *dev = dev_instance;
struct rtl8169_private *tp = netdev_priv(dev);
- void __iomem *ioaddr = tp->mmio_addr;
- int handled = 0;
- int status;
- /* loop handling interrupts until we have no new ones or
- * we hit a invalid/hotplug case.
- */
- status = RTL_R16(IntrStatus);
- while (status && status != 0xffff) {
- status &= tp->intr_event;
- if (!status)
- break;
-
- handled = 1;
+ netif_device_attach(dev);
- /* Handle all of the error cases first. These will reset
- * the chip, so just exit the loop.
- */
- if (unlikely(!netif_running(dev))) {
- rtl8169_hw_reset(tp);
- break;
- }
+ rtl_pll_power_up(tp);
- if (unlikely(status & RxFIFOOver)) {
- switch (tp->mac_version) {
- /* Work around for rx fifo overflow */
- case RTL_GIGA_MAC_VER_11:
- netif_stop_queue(dev);
- rtl8169_tx_timeout(dev);
- goto done;
- default:
- break;
- }
- }
+ set_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags);
- if (unlikely(status & SYSErr)) {
- rtl8169_pcierr_interrupt(dev);
- break;
- }
+ rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING);
+}
- if (status & LinkChg)
- __rtl8169_check_link_status(dev, tp, ioaddr, true);
+static int rtl8169_resume(struct device *device)
+{
+ struct pci_dev *pdev = to_pci_dev(device);
+ struct net_device *dev = pci_get_drvdata(pdev);
+ struct rtl8169_private *tp = netdev_priv(dev);
- /* We need to see the lastest version of tp->intr_mask to
- * avoid ignoring an MSI interrupt and having to wait for
- * another event which may never come.
- */
- smp_rmb();
- if (status & tp->intr_mask & tp->napi_event) {
- RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
- tp->intr_mask = ~tp->napi_event;
+ rtl8169_init_phy(dev, tp);
- if (likely(napi_schedule_prep(&tp->napi)))
- __napi_schedule(&tp->napi);
- else
- netif_info(tp, intr, dev,
- "interrupt %04x in poll\n", status);
- }
+ if (netif_running(dev))
+ __rtl8169_resume(dev);
- /* We only get a new MSI interrupt when all active irq
- * sources on the chip have been acknowledged. So, ack
- * everything we've seen and check if new sources have become
- * active to avoid blocking all interrupts from the chip.
- */
- RTL_W16(IntrStatus,
- (status & RxFIFOOver) ? (status | RxOverflow) : status);
- status = RTL_R16(IntrStatus);
- }
-done:
- return IRQ_RETVAL(handled);
+ return 0;
}
-static int rtl8169_poll(struct napi_struct *napi, int budget)
+static int rtl8169_runtime_suspend(struct device *device)
{
- struct rtl8169_private *tp = container_of(napi, struct rtl8169_private, napi);
- struct net_device *dev = tp->dev;
- void __iomem *ioaddr = tp->mmio_addr;
- int work_done;
+ struct pci_dev *pdev = to_pci_dev(device);
+ struct net_device *dev = pci_get_drvdata(pdev);
+ struct rtl8169_private *tp = netdev_priv(dev);
- work_done = rtl8169_rx_interrupt(dev, tp, ioaddr, (u32) budget);
- rtl8169_tx_interrupt(dev, tp, ioaddr);
+ if (!tp->TxDescArray)
+ return 0;
- if (work_done < budget) {
- napi_complete(napi);
+ rtl_lock_work(tp);
+ tp->saved_wolopts = __rtl8169_get_wol(tp);
+ __rtl8169_set_wol(tp, WAKE_ANY);
+ rtl_unlock_work(tp);
- /* We need for force the visibility of tp->intr_mask
- * for other CPUs, as we can loose an MSI interrupt
- * and potentially wait for a retransmit timeout if we don't.
- * The posted write to IntrMask is safe, as it will
- * eventually make it to the chip and we won't loose anything
- * until it does.
- */
- tp->intr_mask = 0xffff;
- wmb();
- RTL_W16(IntrMask, tp->intr_event);
- }
+ rtl8169_net_suspend(dev);
- return work_done;
+ return 0;
}
-static void rtl8169_rx_missed(struct net_device *dev, void __iomem *ioaddr)
+static int rtl8169_runtime_resume(struct device *device)
{
+ struct pci_dev *pdev = to_pci_dev(device);
+ struct net_device *dev = pci_get_drvdata(pdev);
struct rtl8169_private *tp = netdev_priv(dev);
- if (tp->mac_version > RTL_GIGA_MAC_VER_06)
- return;
+ if (!tp->TxDescArray)
+ return 0;
- dev->stats.rx_missed_errors += (RTL_R32(RxMissed) & 0xffffff);
- RTL_W32(RxMissed, 0);
+ rtl_lock_work(tp);
+ __rtl8169_set_wol(tp, tp->saved_wolopts);
+ tp->saved_wolopts = 0;
+ rtl_unlock_work(tp);
+
+ rtl8169_init_phy(dev, tp);
+
+ __rtl8169_resume(dev);
+
+ return 0;
}
-static void rtl8169_down(struct net_device *dev)
+static int rtl8169_runtime_idle(struct device *device)
{
+ struct pci_dev *pdev = to_pci_dev(device);
+ struct net_device *dev = pci_get_drvdata(pdev);
struct rtl8169_private *tp = netdev_priv(dev);
- void __iomem *ioaddr = tp->mmio_addr;
-
- del_timer_sync(&tp->timer);
- netif_stop_queue(dev);
-
- napi_disable(&tp->napi);
+ return tp->TxDescArray ? -EBUSY : 0;
+}
- spin_lock_irq(&tp->lock);
+static const struct dev_pm_ops rtl8169_pm_ops = {
+ .suspend = rtl8169_suspend,
+ .resume = rtl8169_resume,
+ .freeze = rtl8169_suspend,
+ .thaw = rtl8169_resume,
+ .poweroff = rtl8169_suspend,
+ .restore = rtl8169_resume,
+ .runtime_suspend = rtl8169_runtime_suspend,
+ .runtime_resume = rtl8169_runtime_resume,
+ .runtime_idle = rtl8169_runtime_idle,
+};
- rtl8169_hw_reset(tp);
- /*
- * At this point device interrupts can not be enabled in any function,
- * as netif_running is not true (rtl8169_interrupt, rtl8169_reset_task,
- * rtl8169_reinit_task) and napi is disabled (rtl8169_poll).
- */
- rtl8169_rx_missed(dev, ioaddr);
+#define RTL8169_PM_OPS (&rtl8169_pm_ops)
- spin_unlock_irq(&tp->lock);
+#else /* !CONFIG_PM */
- synchronize_irq(dev->irq);
+#define RTL8169_PM_OPS NULL
- /* Give a racing hard_start_xmit a few cycles to complete. */
- synchronize_sched(); /* FIXME: should this be synchronize_irq()? */
+#endif /* !CONFIG_PM */
- rtl8169_tx_clear(tp);
+static void rtl_wol_shutdown_quirk(struct rtl8169_private *tp)
+{
+ void __iomem *ioaddr = tp->mmio_addr;
- rtl8169_rx_clear(tp);
+ /* WoL fails with 8168b when the receiver is disabled. */
+ switch (tp->mac_version) {
+ case RTL_GIGA_MAC_VER_11:
+ case RTL_GIGA_MAC_VER_12:
+ case RTL_GIGA_MAC_VER_17:
+ pci_clear_master(tp->pci_dev);
- rtl_pll_power_down(tp);
+ RTL_W8(ChipCmd, CmdRxEnb);
+ /* PCI commit */
+ RTL_R8(ChipCmd);
+ break;
+ default:
+ break;
+ }
}
-static int rtl8169_close(struct net_device *dev)
+static void rtl_shutdown(struct pci_dev *pdev)
{
+ struct net_device *dev = pci_get_drvdata(pdev);
struct rtl8169_private *tp = netdev_priv(dev);
- struct pci_dev *pdev = tp->pci_dev;
+ struct device *d = &pdev->dev;
- pm_runtime_get_sync(&pdev->dev);
+ pm_runtime_get_sync(d);
- /* Update counters before going down */
- rtl8169_update_counters(dev);
+ rtl8169_net_suspend(dev);
- rtl8169_down(dev);
+ /* Restore original MAC address */
+ rtl_rar_set(tp, dev->perm_addr);
- free_irq(dev->irq, dev);
+ rtl8169_hw_reset(tp);
- dma_free_coherent(&pdev->dev, R8169_RX_RING_BYTES, tp->RxDescArray,
- tp->RxPhyAddr);
- dma_free_coherent(&pdev->dev, R8169_TX_RING_BYTES, tp->TxDescArray,
- tp->TxPhyAddr);
- tp->TxDescArray = NULL;
- tp->RxDescArray = NULL;
+ if (system_state == SYSTEM_POWER_OFF) {
+ if (__rtl8169_get_wol(tp) & WAKE_ANY) {
+ rtl_wol_suspend_quirk(tp);
+ rtl_wol_shutdown_quirk(tp);
+ }
- pm_runtime_put_sync(&pdev->dev);
+ pci_wake_from_d3(pdev, true);
+ pci_set_power_state(pdev, PCI_D3hot);
+ }
- return 0;
+ pm_runtime_put_noidle(d);
}
-static void rtl_set_rx_mode(struct net_device *dev)
+static void __devexit rtl_remove_one(struct pci_dev *pdev)
{
+ struct net_device *dev = pci_get_drvdata(pdev);
struct rtl8169_private *tp = netdev_priv(dev);
- void __iomem *ioaddr = tp->mmio_addr;
- unsigned long flags;
- u32 mc_filter[2]; /* Multicast hash filter */
- int rx_mode;
- u32 tmp = 0;
-
- if (dev->flags & IFF_PROMISC) {
- /* Unconditionally log net taps. */
- netif_notice(tp, link, dev, "Promiscuous mode enabled\n");
- rx_mode =
- AcceptBroadcast | AcceptMulticast | AcceptMyPhys |
- AcceptAllPhys;
- mc_filter[1] = mc_filter[0] = 0xffffffff;
- } else if ((netdev_mc_count(dev) > multicast_filter_limit) ||
- (dev->flags & IFF_ALLMULTI)) {
- /* Too many to filter perfectly -- accept all multicasts. */
- rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
- mc_filter[1] = mc_filter[0] = 0xffffffff;
- } else {
- struct netdev_hw_addr *ha;
- rx_mode = AcceptBroadcast | AcceptMyPhys;
- mc_filter[1] = mc_filter[0] = 0;
- netdev_for_each_mc_addr(ha, dev) {
- int bit_nr = ether_crc(ETH_ALEN, ha->addr) >> 26;
- mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
- rx_mode |= AcceptMulticast;
- }
+ if (tp->mac_version == RTL_GIGA_MAC_VER_27 ||
+ tp->mac_version == RTL_GIGA_MAC_VER_28 ||
+ tp->mac_version == RTL_GIGA_MAC_VER_31) {
+ rtl8168_driver_stop(tp);
}
- spin_lock_irqsave(&tp->lock, flags);
-
- tmp = (RTL_R32(RxConfig) & ~RX_CONFIG_ACCEPT_MASK) | rx_mode;
+ cancel_work_sync(&tp->wk.work);
- if (tp->mac_version > RTL_GIGA_MAC_VER_06) {
- u32 data = mc_filter[0];
+ unregister_netdev(dev);
- mc_filter[0] = swab32(mc_filter[1]);
- mc_filter[1] = swab32(data);
- }
+ rtl_release_firmware(tp);
- RTL_W32(MAR0 + 4, mc_filter[1]);
- RTL_W32(MAR0 + 0, mc_filter[0]);
+ if (pci_dev_run_wake(pdev))
+ pm_runtime_get_noresume(&pdev->dev);
- RTL_W32(RxConfig, tmp);
+ /* restore original MAC address */
+ rtl_rar_set(tp, dev->perm_addr);
- spin_unlock_irqrestore(&tp->lock, flags);
+ rtl_disable_msi(pdev, tp);
+ rtl8169_release_board(pdev, dev, tp->mmio_addr);
+ pci_set_drvdata(pdev, NULL);
}
-/**
- * rtl8169_get_stats - Get rtl8169 read/write statistics
- * @dev: The Ethernet Device to get statistics for
- *
- * Get TX/RX statistics for rtl8169
- */
-static struct net_device_stats *rtl8169_get_stats(struct net_device *dev)
+static const struct net_device_ops rtl_netdev_ops = {
+ .ndo_open = rtl_open,
+ .ndo_stop = rtl8169_close,
+ .ndo_get_stats64 = rtl8169_get_stats64,
+ .ndo_start_xmit = rtl8169_start_xmit,
+ .ndo_tx_timeout = rtl8169_tx_timeout,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = rtl8169_change_mtu,
+ .ndo_fix_features = rtl8169_fix_features,
+ .ndo_set_features = rtl8169_set_features,
+ .ndo_set_mac_address = rtl_set_mac_address,
+ .ndo_do_ioctl = rtl8169_ioctl,
+ .ndo_set_rx_mode = rtl_set_rx_mode,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = rtl8169_netpoll,
+#endif
+
+};
+
+static const struct rtl_cfg_info {
+ void (*hw_start)(struct net_device *);
+ unsigned int region;
+ unsigned int align;
+ u16 event_slow;
+ unsigned features;
+ u8 default_ver;
+} rtl_cfg_infos [] = {
+ [RTL_CFG_0] = {
+ .hw_start = rtl_hw_start_8169,
+ .region = 1,
+ .align = 0,
+ .event_slow = SYSErr | LinkChg | RxOverflow | RxFIFOOver,
+ .features = RTL_FEATURE_GMII,
+ .default_ver = RTL_GIGA_MAC_VER_01,
+ },
+ [RTL_CFG_1] = {
+ .hw_start = rtl_hw_start_8168,
+ .region = 2,
+ .align = 8,
+ .event_slow = SYSErr | LinkChg | RxOverflow,
+ .features = RTL_FEATURE_GMII | RTL_FEATURE_MSI,
+ .default_ver = RTL_GIGA_MAC_VER_11,
+ },
+ [RTL_CFG_2] = {
+ .hw_start = rtl_hw_start_8101,
+ .region = 2,
+ .align = 8,
+ .event_slow = SYSErr | LinkChg | RxOverflow | RxFIFOOver |
+ PCSTimeout,
+ .features = RTL_FEATURE_MSI,
+ .default_ver = RTL_GIGA_MAC_VER_13,
+ }
+};
+
+/* Cfg9346_Unlock assumed. */
+static unsigned rtl_try_msi(struct rtl8169_private *tp,
+ const struct rtl_cfg_info *cfg)
{
- struct rtl8169_private *tp = netdev_priv(dev);
void __iomem *ioaddr = tp->mmio_addr;
- unsigned long flags;
+ unsigned msi = 0;
+ u8 cfg2;
- if (netif_running(dev)) {
- spin_lock_irqsave(&tp->lock, flags);
- rtl8169_rx_missed(dev, ioaddr);
- spin_unlock_irqrestore(&tp->lock, flags);
+ cfg2 = RTL_R8(Config2) & ~MSIEnable;
+ if (cfg->features & RTL_FEATURE_MSI) {
+ if (pci_enable_msi(tp->pci_dev)) {
+ netif_info(tp, hw, tp->dev, "no MSI. Back to INTx.\n");
+ } else {
+ cfg2 |= MSIEnable;
+ msi = RTL_FEATURE_MSI;
+ }
}
-
- return &dev->stats;
+ if (tp->mac_version <= RTL_GIGA_MAC_VER_06)
+ RTL_W8(Config2, cfg2);
+ return msi;
}
-static void rtl8169_net_suspend(struct net_device *dev)
+static int __devinit
+rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
{
- struct rtl8169_private *tp = netdev_priv(dev);
+ const struct rtl_cfg_info *cfg = rtl_cfg_infos + ent->driver_data;
+ const unsigned int region = cfg->region;
+ struct rtl8169_private *tp;
+ struct mii_if_info *mii;
+ struct net_device *dev;
+ void __iomem *ioaddr;
+ int chipset, i;
+ int rc;
- if (!netif_running(dev))
- return;
+ if (netif_msg_drv(&debug)) {
+ printk(KERN_INFO "%s Gigabit Ethernet driver %s loaded\n",
+ MODULENAME, RTL8169_VERSION);
+ }
- rtl_pll_power_down(tp);
+ dev = alloc_etherdev(sizeof (*tp));
+ if (!dev) {
+ rc = -ENOMEM;
+ goto out;
+ }
+
+ SET_NETDEV_DEV(dev, &pdev->dev);
+ dev->netdev_ops = &rtl_netdev_ops;
+ tp = netdev_priv(dev);
+ tp->dev = dev;
+ tp->pci_dev = pdev;
+ tp->msg_enable = netif_msg_init(debug.msg_enable, R8169_MSG_DEFAULT);
+
+ mii = &tp->mii;
+ mii->dev = dev;
+ mii->mdio_read = rtl_mdio_read;
+ mii->mdio_write = rtl_mdio_write;
+ mii->phy_id_mask = 0x1f;
+ mii->reg_num_mask = 0x1f;
+ mii->supports_gmii = !!(cfg->features & RTL_FEATURE_GMII);
+
+ /* disable ASPM completely as that cause random device stop working
+ * problems as well as full system hangs for some PCIe devices users */
+ pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 |
+ PCIE_LINK_STATE_CLKPM);
- netif_device_detach(dev);
- netif_stop_queue(dev);
-}
+ /* enable device (incl. PCI PM wakeup and hotplug setup) */
+ rc = pci_enable_device(pdev);
+ if (rc < 0) {
+ netif_err(tp, probe, dev, "enable failure\n");
+ goto err_out_free_dev_1;
+ }
-#ifdef CONFIG_PM
+ if (pci_set_mwi(pdev) < 0)
+ netif_info(tp, probe, dev, "Mem-Wr-Inval unavailable\n");
-static int rtl8169_suspend(struct device *device)
-{
- struct pci_dev *pdev = to_pci_dev(device);
- struct net_device *dev = pci_get_drvdata(pdev);
+ /* make sure PCI base addr 1 is MMIO */
+ if (!(pci_resource_flags(pdev, region) & IORESOURCE_MEM)) {
+ netif_err(tp, probe, dev,
+ "region #%d not an MMIO resource, aborting\n",
+ region);
+ rc = -ENODEV;
+ goto err_out_mwi_2;
+ }
- rtl8169_net_suspend(dev);
+ /* check for weird/broken PCI region reporting */
+ if (pci_resource_len(pdev, region) < R8169_REGS_SIZE) {
+ netif_err(tp, probe, dev,
+ "Invalid PCI region size(s), aborting\n");
+ rc = -ENODEV;
+ goto err_out_mwi_2;
+ }
- return 0;
-}
+ rc = pci_request_regions(pdev, MODULENAME);
+ if (rc < 0) {
+ netif_err(tp, probe, dev, "could not request regions\n");
+ goto err_out_mwi_2;
+ }
-static void __rtl8169_resume(struct net_device *dev)
-{
- struct rtl8169_private *tp = netdev_priv(dev);
+ tp->cp_cmd = RxChkSum;
- netif_device_attach(dev);
+ if ((sizeof(dma_addr_t) > 4) &&
+ !pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) && use_dac) {
+ tp->cp_cmd |= PCIDAC;
+ dev->features |= NETIF_F_HIGHDMA;
+ } else {
+ rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+ if (rc < 0) {
+ netif_err(tp, probe, dev, "DMA configuration failed\n");
+ goto err_out_free_res_3;
+ }
+ }
- rtl_pll_power_up(tp);
+ /* ioremap MMIO region */
+ ioaddr = ioremap(pci_resource_start(pdev, region), R8169_REGS_SIZE);
+ if (!ioaddr) {
+ netif_err(tp, probe, dev, "cannot remap MMIO, aborting\n");
+ rc = -EIO;
+ goto err_out_free_res_3;
+ }
+ tp->mmio_addr = ioaddr;
- rtl8169_schedule_work(dev, rtl8169_reset_task);
-}
+ if (!pci_is_pcie(pdev))
+ netif_info(tp, probe, dev, "not PCI Express\n");
-static int rtl8169_resume(struct device *device)
-{
- struct pci_dev *pdev = to_pci_dev(device);
- struct net_device *dev = pci_get_drvdata(pdev);
- struct rtl8169_private *tp = netdev_priv(dev);
+ /* Identify chip attached to board */
+ rtl8169_get_mac_version(tp, dev, cfg->default_ver);
- rtl8169_init_phy(dev, tp);
+ rtl_init_rxcfg(tp);
- if (netif_running(dev))
- __rtl8169_resume(dev);
+ rtl_irq_disable(tp);
- return 0;
-}
+ rtl_hw_reset(tp);
-static int rtl8169_runtime_suspend(struct device *device)
-{
- struct pci_dev *pdev = to_pci_dev(device);
- struct net_device *dev = pci_get_drvdata(pdev);
- struct rtl8169_private *tp = netdev_priv(dev);
+ rtl_ack_events(tp, 0xffff);
- if (!tp->TxDescArray)
- return 0;
+ pci_set_master(pdev);
- spin_lock_irq(&tp->lock);
- tp->saved_wolopts = __rtl8169_get_wol(tp);
- __rtl8169_set_wol(tp, WAKE_ANY);
- spin_unlock_irq(&tp->lock);
+ /*
+ * Pretend we are using VLANs; This bypasses a nasty bug where
+ * Interrupts stop flowing on high load on 8110SCd controllers.
+ */
+ if (tp->mac_version == RTL_GIGA_MAC_VER_05)
+ tp->cp_cmd |= RxVlan;
- rtl8169_net_suspend(dev);
+ rtl_init_mdio_ops(tp);
+ rtl_init_pll_power_ops(tp);
+ rtl_init_jumbo_ops(tp);
- return 0;
-}
+ rtl8169_print_mac_version(tp);
-static int rtl8169_runtime_resume(struct device *device)
-{
- struct pci_dev *pdev = to_pci_dev(device);
- struct net_device *dev = pci_get_drvdata(pdev);
- struct rtl8169_private *tp = netdev_priv(dev);
+ chipset = tp->mac_version;
+ tp->txd_version = rtl_chip_infos[chipset].txd_version;
- if (!tp->TxDescArray)
- return 0;
+ RTL_W8(Cfg9346, Cfg9346_Unlock);
+ RTL_W8(Config1, RTL_R8(Config1) | PMEnable);
+ RTL_W8(Config5, RTL_R8(Config5) & PMEStatus);
+ if ((RTL_R8(Config3) & (LinkUp | MagicPacket)) != 0)
+ tp->features |= RTL_FEATURE_WOL;
+ if ((RTL_R8(Config5) & (UWF | BWF | MWF)) != 0)
+ tp->features |= RTL_FEATURE_WOL;
+ tp->features |= rtl_try_msi(tp, cfg);
+ RTL_W8(Cfg9346, Cfg9346_Lock);
- spin_lock_irq(&tp->lock);
- __rtl8169_set_wol(tp, tp->saved_wolopts);
- tp->saved_wolopts = 0;
- spin_unlock_irq(&tp->lock);
+ if (rtl_tbi_enabled(tp)) {
+ tp->set_speed = rtl8169_set_speed_tbi;
+ tp->get_settings = rtl8169_gset_tbi;
+ tp->phy_reset_enable = rtl8169_tbi_reset_enable;
+ tp->phy_reset_pending = rtl8169_tbi_reset_pending;
+ tp->link_ok = rtl8169_tbi_link_ok;
+ tp->do_ioctl = rtl_tbi_ioctl;
+ } else {
+ tp->set_speed = rtl8169_set_speed_xmii;
+ tp->get_settings = rtl8169_gset_xmii;
+ tp->phy_reset_enable = rtl8169_xmii_reset_enable;
+ tp->phy_reset_pending = rtl8169_xmii_reset_pending;
+ tp->link_ok = rtl8169_xmii_link_ok;
+ tp->do_ioctl = rtl_xmii_ioctl;
+ }
- rtl8169_init_phy(dev, tp);
+ mutex_init(&tp->wk.mutex);
- __rtl8169_resume(dev);
+ /* Get MAC address */
+ for (i = 0; i < ETH_ALEN; i++)
+ dev->dev_addr[i] = RTL_R8(MAC0 + i);
+ memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
- return 0;
-}
+ SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops);
+ dev->watchdog_timeo = RTL8169_TX_TIMEOUT;
-static int rtl8169_runtime_idle(struct device *device)
-{
- struct pci_dev *pdev = to_pci_dev(device);
- struct net_device *dev = pci_get_drvdata(pdev);
- struct rtl8169_private *tp = netdev_priv(dev);
+ netif_napi_add(dev, &tp->napi, rtl8169_poll, R8169_NAPI_WEIGHT);
- return tp->TxDescArray ? -EBUSY : 0;
-}
+ /* don't enable SG, IP_CSUM and TSO by default - it might not work
+ * properly for all devices */
+ dev->features |= NETIF_F_RXCSUM |
+ NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
-static const struct dev_pm_ops rtl8169_pm_ops = {
- .suspend = rtl8169_suspend,
- .resume = rtl8169_resume,
- .freeze = rtl8169_suspend,
- .thaw = rtl8169_resume,
- .poweroff = rtl8169_suspend,
- .restore = rtl8169_resume,
- .runtime_suspend = rtl8169_runtime_suspend,
- .runtime_resume = rtl8169_runtime_resume,
- .runtime_idle = rtl8169_runtime_idle,
-};
+ dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
+ NETIF_F_RXCSUM | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
+ dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
+ NETIF_F_HIGHDMA;
-#define RTL8169_PM_OPS (&rtl8169_pm_ops)
+ if (tp->mac_version == RTL_GIGA_MAC_VER_05)
+ /* 8110SCd requires hardware Rx VLAN - disallow toggling */
+ dev->hw_features &= ~NETIF_F_HW_VLAN_RX;
-#else /* !CONFIG_PM */
+ dev->hw_features |= NETIF_F_RXALL;
+ dev->hw_features |= NETIF_F_RXFCS;
-#define RTL8169_PM_OPS NULL
+ tp->hw_start = cfg->hw_start;
+ tp->event_slow = cfg->event_slow;
-#endif /* !CONFIG_PM */
+ tp->opts1_mask = (tp->mac_version != RTL_GIGA_MAC_VER_01) ?
+ ~(RxBOVF | RxFOVF) : ~0;
-static void rtl_wol_shutdown_quirk(struct rtl8169_private *tp)
-{
- void __iomem *ioaddr = tp->mmio_addr;
+ init_timer(&tp->timer);
+ tp->timer.data = (unsigned long) dev;
+ tp->timer.function = rtl8169_phy_timer;
- /* WoL fails with 8168b when the receiver is disabled. */
- switch (tp->mac_version) {
- case RTL_GIGA_MAC_VER_11:
- case RTL_GIGA_MAC_VER_12:
- case RTL_GIGA_MAC_VER_17:
- pci_clear_master(tp->pci_dev);
+ tp->rtl_fw = RTL_FIRMWARE_UNKNOWN;
- RTL_W8(ChipCmd, CmdRxEnb);
- /* PCI commit */
- RTL_R8(ChipCmd);
- break;
- default:
- break;
- }
-}
+ rc = register_netdev(dev);
+ if (rc < 0)
+ goto err_out_msi_4;
-static void rtl_shutdown(struct pci_dev *pdev)
-{
- struct net_device *dev = pci_get_drvdata(pdev);
- struct rtl8169_private *tp = netdev_priv(dev);
+ pci_set_drvdata(pdev, dev);
- rtl8169_net_suspend(dev);
+ netif_info(tp, probe, dev, "%s at 0x%p, %pM, XID %08x IRQ %d\n",
+ rtl_chip_infos[chipset].name, ioaddr, dev->dev_addr,
+ (u32)(RTL_R32(TxConfig) & 0x9cf0f8ff), pdev->irq);
+ if (rtl_chip_infos[chipset].jumbo_max != JUMBO_1K) {
+ netif_info(tp, probe, dev, "jumbo features [frames: %d bytes, "
+ "tx checksumming: %s]\n",
+ rtl_chip_infos[chipset].jumbo_max,
+ rtl_chip_infos[chipset].jumbo_tx_csum ? "ok" : "ko");
+ }
- /* Restore original MAC address */
- rtl_rar_set(tp, dev->perm_addr);
+ if (tp->mac_version == RTL_GIGA_MAC_VER_27 ||
+ tp->mac_version == RTL_GIGA_MAC_VER_28 ||
+ tp->mac_version == RTL_GIGA_MAC_VER_31) {
+ rtl8168_driver_start(tp);
+ }
- spin_lock_irq(&tp->lock);
+ device_set_wakeup_enable(&pdev->dev, tp->features & RTL_FEATURE_WOL);
- rtl8169_hw_reset(tp);
+ if (pci_dev_run_wake(pdev))
+ pm_runtime_put_noidle(&pdev->dev);
- spin_unlock_irq(&tp->lock);
+ netif_carrier_off(dev);
- if (system_state == SYSTEM_POWER_OFF) {
- if (__rtl8169_get_wol(tp) & WAKE_ANY) {
- rtl_wol_suspend_quirk(tp);
- rtl_wol_shutdown_quirk(tp);
- }
+out:
+ return rc;
- pci_wake_from_d3(pdev, true);
- pci_set_power_state(pdev, PCI_D3hot);
- }
+err_out_msi_4:
+ rtl_disable_msi(pdev, tp);
+ iounmap(ioaddr);
+err_out_free_res_3:
+ pci_release_regions(pdev);
+err_out_mwi_2:
+ pci_clear_mwi(pdev);
+ pci_disable_device(pdev);
+err_out_free_dev_1:
+ free_netdev(dev);
+ goto out;
}
static struct pci_driver rtl8169_pci_driver = {
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* [PATCH] sound: fix isa/opti9xx module param type
From: Randy Dunlap @ 2012-03-29 1:26 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Takashi Iwai, alsa-devel, linux-next, LKML
In-Reply-To: <20120328171401.354ddb56727a26fe64b35ddf@canb.auug.org.au>
From: Randy Dunlap <rdunlap@xenotime.net>
Fix module parameter data type to eliminate build warnings.
sound/isa/opti9xx/opti92x-ad1848.c:87:1: warning: return from incompatible pointer type
sound/isa/opti9xx/opti92x-ad1848.c:87:1: warning: return from incompatible pointer type
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
---
sound/isa/opti9xx/opti92x-ad1848.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- linux-next-20120328.orig/sound/isa/opti9xx/opti92x-ad1848.c
+++ linux-next-20120328/sound/isa/opti9xx/opti92x-ad1848.c
@@ -65,7 +65,7 @@ static int index = SNDRV_DEFAULT_IDX1; /
static char *id = SNDRV_DEFAULT_STR1; /* ID for this card */
//static bool enable = SNDRV_DEFAULT_ENABLE1; /* Enable this card */
#ifdef CONFIG_PNP
-static int isapnp = 1; /* Enable ISA PnP detection */
+static bool isapnp = true; /* Enable ISA PnP detection */
#endif
static long port = SNDRV_DEFAULT_PORT1; /* 0x530,0xe80,0xf40,0x604 */
static long mpu_port = SNDRV_DEFAULT_PORT1; /* 0x300,0x310,0x320,0x330 */
^ permalink raw reply
* [PATCH] sound: fix oss/msnd_pinnacle module param type
From: Randy Dunlap @ 2012-03-29 1:26 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Takashi Iwai, alsa-devel, linux-next, LKML
In-Reply-To: <20120328171401.354ddb56727a26fe64b35ddf@canb.auug.org.au>
From: Randy Dunlap <rdunlap@xenotime.net>
Fix module parameter data type to eliminate build warning.
sound/oss/msnd_pinnacle.c:1727:1: warning: return from incompatible pointer type
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
---
sound/oss/msnd_pinnacle.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- linux-next-20120328.orig/sound/oss/msnd_pinnacle.c
+++ linux-next-20120328/sound/oss/msnd_pinnacle.c
@@ -1631,7 +1631,7 @@ static int ide_irq __initdata = 0;
static int joystick_io __initdata = 0;
/* If we have the digital daugherboard... */
-static int digital __initdata = 0;
+static bool digital __initdata = false;
#endif
static int fifosize __initdata = DEFFIFOSIZE;
^ permalink raw reply
* Re: linux-next: manual merge of the mfd tree with Linus' tree
From: Grant Likely @ 2012-03-28 22:47 UTC (permalink / raw)
To: Samuel Ortiz
Cc: Stephen Rothwell, linux-next, linux-kernel, Benoit Cousson,
Felipe Balbi
In-Reply-To: <20120326082515.GB20638@sortiz-mobl>
On Mon, 26 Mar 2012 10:25:15 +0200, Samuel Ortiz <sameo@linux.intel.com> wrote:
> On Sat, Mar 24, 2012 at 05:31:52PM +0000, Grant Likely wrote:
> > On Fri, 23 Mar 2012 10:41:39 +0100, Samuel Ortiz <sameo@linux.intel.com> wrote:
> > > Hi Stephen,
> > >
> > > On Fri, Mar 23, 2012 at 02:32:37PM +1100, Stephen Rothwell wrote:
> > > > Hi Samuel,
> > > >
> > > > Today's linux-next merge of the mfd tree got a conflict in
> > > > drivers/mfd/twl-core.c between commits 5769089ac725 ("mfd: twl-core.c:
> > > > Fix the number of interrupts managed by twl4030"), 75294957be1d
> > > > ("irq_domain: Remove 'new' irq_domain in favour of the ppc one") and
> > > > 964dba283439 ("devicetree: Add empty of_platform_populate() for !
> > > > CONFIG_OF_ADDRESS (sparc)") from Linus' tree and commits 9e1786202704
> > > > ("mfd: Make twl-core not depend on pdata->irq_base/end") and 78518ffa08fc
> > > > ("mfd: Move twl-core IRQ allocation into twl[4030|6030]-irq files") from
> > > > the mfd tree.
> > > >
> > > > I *think* that the right thing to do is to use the version from the mfd
> > > > tree ...
> > > That's correct.
> > > I have a for-next-merge branch where I usually have the merge conflicts with
> > > Linus tree fixed, in case you're interested.
> > >
> > >
> > > > I do wonder why I only got this now (in the merge window) ...
> > > I got a pull request from Benoit a couple days before the merge window opened.
> > > Then I realized part of the pull request contained a merge of one of Grant's
> > > branch. So I wanted to wait for Grant's code to get in before picking the mfd
> > > work on top of it. I didn't want to send a pull request to Linus with a merge
> > > point for something that would have been already merged. Maybe I was wrong,
> > > you tell me.
> >
> > It should have gone into linux-next before then. Waiting for my tree
> > to hit linus' tree defeats the purpose of linux-next. Now you're
> > branch hasn't had any testing and therefore is a risky merge.
> The branch has been tested by TI folks, on 3 different TI platforms. And the
> patches we're talking about are all TI's twl related ones.
...hasn't had any integration testing. It isn't the risk to your
platform that is the concern (indeed, I'd expect it to be tested on
the TI platforms). It's the risk of breakage to other users that is
the issue. That's why linux-next exists, to catch post-merge breakage
before the merge window opens, and that is why it is important to get
the branches in before the window opens.
In fact, this exact driver caused problems in linux-next before the
merge window opened that affected Randy Dunlap and Andrew Morton.
The irq_domain changes caused twl build failures on allmodconfig. So,
even though it is "only" driver code being touched here, it still
affects the larger kernel community.
g.
^ permalink raw reply
* linux-next: triage for March 28, 2012
From: Paul Gortmaker @ 2012-03-29 1:08 UTC (permalink / raw)
To: linux-next; +Cc: linux-kernel, linux-nfs
NFS breakage spans all arch and took out about 10 builds. I am
not listing them individually.
With Thursday's build underway already by sfr, note that we are
looking at possibly only one or two more 3.4 linux-next builds.
New breakage since last report:
<all>:nfsd-configs (nfsd4_cld_block undefined)
(http://marc.info/?l=linux-next&m=133298119824129&w=2)
Randconfig fails that may or may not be new (by their very nature):
i386: (hub.c: undefined reference to `usb_speed_string')
(http://kisskb.ellerman.id.au/kisskb/buildresult/5990666/)
Builds that are fixed since last report:
ia64:defconfig
ARM:rpc_defconfig
ARM:omap2plus_defconfig
The following have fixes posted for quite some time now, but the fixes
haven't yet been integrated. Please have a look at these, as it would
be nice to have them in tree before wk2 of the merge window closes.
ARM:magician_defconfig
ARM:collie_defconfig
ARM:iop32x_defconfig,iop33x_defconfig
ARM:em_x270_defconfig
AVR32:defconfig
Note: The randconfig fails are only listed once and not tracked
in the below listing.
------------------------------------------------
Latest results at:
http://kisskb.ellerman.id.au/kisskb/branch/9/
Failures as of March 28th, 2012:
================================
AM33:asb2303_defconfig,asb2364_defconfig
when: Mar 15
why: cc1: error: unrecognized command line option '-mmem-funcs'
status: Possible fix from TonyB sent for review.
fix: http://marc.info/?l=linux-kernel&m=133185020313818&w=2
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5878400/
----------------
ARM:cm_x2xx_defconfig
when: Mar 19
why: it8152.c: redefinition of 'dma_set_coherent_mask'
status: bisected and reported (PaulG)
fix:
ref: http://marc.info/?l=linux-next&m=133226851818586&w=2
ARM:netx_defconfig,pnx4008_defconfig
when: Mar 14
why: net/core/pktgen.c: can't find a register in class 'GENERAL_REGS'
status:
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5869486/
ref: https://lkml.org/lkml/2012/3/13/670
ARM:collie_defconfig
when: Feb 14
why: locomolcd.c: error: 'sa1100fb_lcd_power' undeclared
status: fixed (PaulG) - pending integration
fix: http://marc.info/?l=linux-next&m=133105157730749&w=2
ref:
ARM:iop32x_defconfig,iop33x_defconfig
when: Nov 23
why: restart.c: implicit declaration of function 'soft_restart'
status: fixed (PaulG) - pending integration
fix: http://lists.infradead.org/pipermail/linux-arm-kernel/2012-January/081461.html
fix: https://lkml.org/lkml/2012/3/14/253
ref:
ARM:ixp4xx_defconfig
when: Oct 26
why: gpio.h: implicit declaration of function '__gpio_get_value'
status: fixed (Imre Kaloz) - but possibly needs rework?
fix: https://lkml.org/lkml/2012/2/8/288
ref: https://lkml.org/lkml/2012/2/8/287
ARM:magician_defconfig
when: Feb 13
why: magician.c: unknown field 'dev' specified in initializer
status: fixed (PaulG) - pending integration
fix: http://marc.info/?l=linux-arm-kernel&m=133124258707457&w=2
ref: http://marc.info/?l=linux-next&m=133106325903524&w=2
ARM:em_x270_defconfig
when: Feb 14
why: em-x270.c: unknown field 'dev' specified in initializer
status: fixed (PaulG) - pending integration
fix: http://www.spinics.net/lists/arm-kernel/msg164012.html
ref: http://www.spinics.net/lists/arm-kernel/msg163135.html
ARM:raumfeld_defconfig
when: Nov 23
why: eeti_ts.c: implicit declaration of function 'irq_to_gpio'
status: perhaps broken since 2010? See ref below.
fix:
ref: http://www.gossamer-threads.com/lists/linux/kernel/1291618?do=post_view_threaded#1291618
ARM:arm-allnoconfig
when: forever
why: not supported
status: nothing pending, but patches accepted
fix: n/a
ref: https://lkml.org/lkml/2009/4/30/105
ref: http://lists.infradead.org/pipermail/linux-arm-kernel/2012-January/081218.html
----------------
AVR32:defconfig
when: Mar 18
why: board.h: atmel_nand.h: No such file or directory
status: reported/fixed (PaulG)
fix: http://marc.info/?l=linux-arm-kernel&m=133239363802517&w=2
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5917107/
AVR32:allnoconfig
when: May 26 2010, 20:49
why: at32_map_usart: undefined reference to `atmel_default_console_device'
status:
fix:
ref:
---------------
bfin:***all-builds***
when: Mar 26
why: bfin-uclinux-ld: L1 data A overflow!
status: unknown, binutils issue?
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5981475/
---------------
cris:***all-builds***
when: Mar 25, 22:05
why: include/linux/types.h:25: error expected ... before 'ino_t'
status:
fix:
ref:
----------------
crisv32:***all-builds***
when: Mar 25, 22:05
why: include/linux/types.h:25: error expected ... before 'ino_t'
status:
fix:
ref:
----------------
frv:defconfig
when: Mar 15
why: arch/frv/kernel/head.S operand out of range
status:
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5884666/
----------------
h8300:defconfig
when: Mar 15
why: time.c: implicit declaration of function 'get_irq_regs'
why: also seems gcc suffers an ICE
status: ICE bug lodged with gcc folks (TonyB)
fix:
ref: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52598
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5884668/
----------------
i386:allmodconfig
when: Mar 8, 20:41
why: ERROR: "mdfld_set_brightness" [drivers/gpu/drm/gma500/gma500_gfx.ko] undefined!
status:
fix:
ref: https://lkml.org/lkml/2012/3/24/122
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5878506/
----------------
m32r:m32700ut.smp_defconfig
when: Mar 15
why: No rule to make target `arch/m32r/boot/compressed/vmlinux.bin
status:
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5884670/
----------------
m68k:sun3_defconfig,m68k_defconfig
when: Mar 26
why: sun3_NCR5380.c: static decl of 'sun3scsi_proc_info' follows non-static
status:
fix:
ref: http://marc.info/?l=linux-next&m=133279244817422&w=2
m68k:allmodconfig
when: Mar 16
why: persistent_ram.c: implicit declaration of 'memblock_reserve'
status:
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5884324/
ref: http://www.spinics.net/lists/linux-next/msg19343.html
----------------
mips:allmodconfig
when:
why: driver_pci_host.c: implicit declaration of function 'pcibios_enable_device'
status: one of many fixes mips needs...
fix: http://marc.info/?l=linux-wireless&m=133272031621916&w=2
ref: http://patchwork.ozlabs.org/patch/148614/
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5807000/
----------------
parisc:allmodconfig
when:
why: include/linux/log2.h: implicit declaration of function 'fls'
status: reported by PaulG, WIP by David Howells
fix:
ref: https://lkml.org/lkml/2012/2/29/409
ref: https://lkml.org/lkml/2012/3/6/228
parisc64:a500_defconfig
when:
why: include/linux/log2.h: implicit declaration of function 'fls'
status: reported by PaulG, WIP by David Howells
fix:
ref: https://lkml.org/lkml/2012/2/29/409
ref: https://lkml.org/lkml/2012/3/6/228
------------------
powerpc:allyesconfig
when: May 18 2009, 22:11
why: fat ass kernel with everything simply won't link
status: need to fix build config to ignore the final link
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5806793/
------------------
sh4:***all-builds***
when: Feb 24, 17:38
why: include/linux/log2.h: implicit declaration of function 'fls'
status: reported by PaulG, WIP by David Howells
fix:
ref: https://lkml.org/lkml/2012/2/29/409
ref: https://lkml.org/lkml/2012/3/6/228
------------------
um:um-defconfig
when: Sep 16 2010, 01:28
why: os-Linux/start_up.c: error: 'PTRACE_SETOPTIONS' undeclared
status: clearly broken forever, so does anyone care?
fix:
ref: http://kisskb.ellerman.id.au/kisskb/target/2979/
^ permalink raw reply
* bpf_slow_path: sibling call to `skb_copy_bits' not allowed multiple TOCs (ppc)
From: Paul Gortmaker @ 2012-03-29 0:54 UTC (permalink / raw)
To: netdev; +Cc: linuxppc-dev, linux-next
Hi all,
Wondering if anyone has researched this, before I waste more time on it.
The linux-next build of powerpc-allyesconfig has for quite some time shown this:
LD .tmp_vmlinux1
powerpc-linux-ld: arch/powerpc/net/built-in.o: In function `bpf_slow_path_word':
(.text+0x90): sibling call optimization to `skb_copy_bits' does not
allow automatic
multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or
make `skb_copy_bits' extern
We get the same error for s/word/half/ and s/word/byte/ and s/word/msh/
Visually "bisecting" the linux-next builds shows the following:
good: Dec 7th, 2011: http://kisskb.ellerman.id.au/kisskb/buildresult/5059024/
bad: Dec 8th, 2011: http://kisskb.ellerman.id.au/kisskb/buildresult/5062069/
I wouldn't be surprised if this was some kind of size thing that doesn't matter
in the real world, as the powerpc-allyesconfig is really only of value for build
coverage. Even in the absence of the skb error, it still fails to link with:
"powerpc-linux-ld: TOC section size exceeds 64k"
i.e. it never links into anything a person could actually try and boot anyway.
So, just knowing "yes that is bogus because you've got a giant kernel
with multiple TOC" would be useful information here.
Thanks,
Paul.
^ permalink raw reply
* linux-next: build warning after merge of the hid tree
From: Stephen Rothwell @ 2012-03-29 0:51 UTC (permalink / raw)
To: Jiri Kosina; +Cc: linux-next, linux-kernel, Przemo Firszt
[-- Attachment #1: Type: text/plain, Size: 505 bytes --]
Hi Jiri,
After merging the hid tree, today's linux-next build (x86_64 allmodconfig)
produced this warning:
drivers/hid/Kconfig:595:error: recursive dependency detected!
drivers/hid/Kconfig:595: symbol HID_WACOM depends on HID_WACOM
Caused (very obviously) by commit 224b321b312e ("HID: wacom: Remove
CONFIG_HID_WACOM_POWER_SUPPLY option").
Please test this stuff. And don't rush stuff in during the merge window ...
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* linux-next: breakage on undefined reference to `nfsd4_cld_block'
From: Paul Gortmaker @ 2012-03-29 0:31 UTC (permalink / raw)
To: jlayton-H+wXaHxf7aLQT0dZR+AlfA, bfields-H+wXaHxf7aLQT0dZR+AlfA,
Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA
Cc: linux-nfs-u79uwXL29TY76Z2rM5mHXA,
linux-next-u79uwXL29TY76Z2rM5mHXA
Hi all,
The linux-next tree got about ten new failures today, spanning all arch.
They all shared this in common, it seems.
ERROR: "nfsd4_cld_block" [fs/nfsd/nfsd.ko] undefined!
make[2]: *** [__modpost] Error 1
I chose alpha (since it was the 1st I saw alphabetically) and did a bisect,
and it came up with the below commit. I've also included the bisect log.
Can someone please take a look at this? Too late to fix for the Thursday
build, but Friday might be the last for 3.4 content and it would be nice to
have all these builds green again in that one.
Thanks,
Paul.
--------------
commit 813fd320c16691eac508fe350b4ee7362c6c4a56
Author: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Date: Wed Mar 21 09:52:08 2012 -0400
nfsd: add notifier to handle mount/unmount of rpc_pipefs sb
In the event that rpc_pipefs isn't mounted when nfsd starts, we
must register a notifier to handle creating the dentry once it
is mounted, and to remove the dentry on unmount.
Signed-off-by: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Signed-off-by: J. Bruce Fields <bfields-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
-------------------
git bisect start
# good: [c16fa4f2ad19908a47c63d8fa436a1178438c7e7] Linux 3.3
git bisect good c16fa4f2ad19908a47c63d8fa436a1178438c7e7
# bad: [7734592ef4a5d14bba15cf2df7fcac8c39d6bdb4] Add linux-next
specific files for 20120328
git bisect bad 7734592ef4a5d14bba15cf2df7fcac8c39d6bdb4
# good: [50953e0640b3473dcb409d5d0d938c2742c93b0d] Merge branch 'poll'
into staging/for_v3.4
git bisect good 50953e0640b3473dcb409d5d0d938c2742c93b0d
# bad: [ecc717668be52fe7b3b29e922b96700067767f05] Merge
remote-tracking branch 'l2-mtd/master'
git bisect bad ecc717668be52fe7b3b29e922b96700067767f05
# good: [d0f6867abfb505b191e31a87dbcdeed65241243a] Merge
remote-tracking branch 'arm/for-next'
git bisect good d0f6867abfb505b191e31a87dbcdeed65241243a
# bad: [2dddaf865e0c13448518abbabd0ad462a7a2d3dd] Merge
remote-tracking branch 'kbuild/for-next'
git bisect bad 2dddaf865e0c13448518abbabd0ad462a7a2d3dd
# bad: [7be8f9ff0749f5d8a0a508b071c206cb68decf04] Merge
remote-tracking branch 'nfsd/nfsd-next'
git bisect bad 7be8f9ff0749f5d8a0a508b071c206cb68decf04
# good: [5537f6f1d690270d388987d543de2cc1e7be40e6] Merge
remote-tracking branch 'ceph/master'
git bisect good 5537f6f1d690270d388987d543de2cc1e7be40e6
# good: [9d547c35799a4ddd235f1565cec2fff6c9263504] vfs: remove unused
superblock helpers
git bisect good 9d547c35799a4ddd235f1565cec2fff6c9263504
# bad: [cc27e0d407021a278d08c1952f5af4ab38c49eda] nfsd: don't allow
legacy client tracker init for anything but init_net
git bisect bad cc27e0d407021a278d08c1952f5af4ab38c49eda
# good: [1255a8f36cb16a02540bdad91c0bc0971b9fb429] nfsd4: don't set
cl_firststate on first reclaim in 4.1 case
git bisect good 1255a8f36cb16a02540bdad91c0bc0971b9fb429
# good: [62b9510cb373d5722fdaba71d961d8f695acfcd5] nfsd: merge cookie
collision fixes from ext4 tree
git bisect good 62b9510cb373d5722fdaba71d961d8f695acfcd5
# good: [2a4317c55438d8589a015d42912454ede12031f0] nfsd: add
nfsd4_client_tracking_ops struct and a way to set it
git bisect good 2a4317c55438d8589a015d42912454ede12031f0
# good: [0ab628d856a63d63b47307b09851d1e955c706ac] nfsd: add a header
describing upcall to nfsdcld
git bisect good 0ab628d856a63d63b47307b09851d1e955c706ac
# bad: [813fd320c16691eac508fe350b4ee7362c6c4a56] nfsd: add notifier
to handle mount/unmount of rpc_pipefs sb
git bisect bad 813fd320c16691eac508fe350b4ee7362c6c4a56
# good: [f3f8014862d813cca81a597c83bd1dbf0fb2b8f6] nfsd: add the
infrastructure to handle the cld upcall
git bisect good f3f8014862d813cca81a597c83bd1dbf0fb2b8f6
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* linux-next: recent scsi patches causing 2 warnings per compiled file
From: Paul Gortmaker @ 2012-03-29 0:16 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi, linux-next
Hi James,
I just noticed that the alpha (and probably other arch?) are now
getting two warnings per file compiled, which is kind of ugly.
Here is where it transitioned:
good: Mar 24: http://kisskb.ellerman.id.au/kisskb/buildresult/5941020/
bad: Mar 26: http://kisskb.ellerman.id.au/kisskb/buildresult/5968296/
Screens and screens of these appear:
drivers/scsi/scsi_priv.h:166:1: warning: "__enabled_CONFIG_PM" is not defined
drivers/scsi/scsi_priv.h:166:1: warning: "__enabled_CONFIG_PM_MODULE"
is not defined
Missing an include of linux/pm.h or similar, I'd guess. Can you have
a look please?
Thanks,
Paul.
^ permalink raw reply
* Re: linux-next: build failure after merge of the scsi tree
From: Greg KH @ 2012-03-28 23:54 UTC (permalink / raw)
To: Alexey Dobriyan
Cc: James Bottomley, Stephen Rothwell, linux-next, linux-kernel
In-Reply-To: <20120327223939.GC3233@p183.telecom.by>
On Wed, Mar 28, 2012 at 01:39:39AM +0300, Alexey Dobriyan wrote:
> On Wed, Mar 28, 2012 at 01:35:10AM +0300, Alexey Dobriyan wrote:
> > On Tue, Mar 27, 2012 at 03:22:16PM -0700, Greg KH wrote:
>
> > > > The amount of code once removed from staging prevented me from doing
> > > > any work on them.
> > > >
> > > > Looking at staging ->read_proc users this is going to be a problem for
> > > > its removal. :-(
> > >
> > > Why?
> >
> > Because if staging does count, I can't remove the interface
> > without breaking allmodconfig and it would take forever to convert
> > staging stuff. I don't have energy to do it anymore.
> > Mainline still have several _hard_ ->read_proc conversions.
> > I've tried several times and failed.
> >
> > If staging doesn't count, I will break allmodconfig and all those nasty
> > emails will show up anyway implying that staging does count.
>
> It's comparable to what mainline has besides staging.
> I'm talking about this.
>
> $ grep -e read_proc -w -n -r drivers/staging/
> drivers/staging/comedi/proc.c:92: comedi_proc->read_proc = comedi_read;
> drivers/staging/rtl8192u/ieee80211/ieee80211_module.c:298: e->read_proc = show_debug_level;
> drivers/staging/serial/68360serial.c:2428: /* .read_proc = rs_360_read_proc, */
> drivers/staging/rtl8192e/rtllib_module.c:262: e->read_proc = show_debug_level;
Only the comedi one should probably stick around, and even then, it
really should be moved to a sysfs file or three, or even better, a
debugfs file.
> $ grep -e create_proc_read_entry -w -n -r drivers/staging/
> drivers/staging/telephony/ixj.c:7763: create_proc_read_entry ("ixj", 0, NULL, ixj_read_proc, NULL);
> drivers/staging/ft1000/ft1000-usb/ft1000_proc.c:189: ft1000_proc_file = create_proc_read_entry(dev->name, 0644,
> drivers/staging/ft1000/ft1000-usb/ft1000_proc.c:221: create_proc_read_entry(dev->name, 0644,
> drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c:181: create_proc_read_entry(dev->name, 0644, info->proc_ft1000,
> drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c:200: create_proc_read_entry(dev->name, 0644, info->proc_ft1000,
> drivers/staging/rtl8192u/r8192U_core.c:714: e = create_proc_read_entry("stats-rx", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192u/r8192U_core.c:724: e = create_proc_read_entry("stats-tx", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192u/r8192U_core.c:733: e = create_proc_read_entry("stats-ap", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192u/r8192U_core.c:742: e = create_proc_read_entry("registers", S_IFREG | S_IRUGO,
> drivers/staging/cxt1e1/sbeproc.c:325: e = create_proc_read_entry ("info", S_IFREG | S_IRUGO,
> drivers/staging/rtl8187se/r8180_core.c:343: e = create_proc_read_entry("stats-hw", S_IFREG | S_IRUGO,
> drivers/staging/rtl8187se/r8180_core.c:351: e = create_proc_read_entry("stats-rx", S_IFREG | S_IRUGO,
> drivers/staging/rtl8187se/r8180_core.c:360: e = create_proc_read_entry("stats-tx", S_IFREG | S_IRUGO,
> drivers/staging/rtl8187se/r8180_core.c:368: e = create_proc_read_entry("registers", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:873: e = create_proc_read_entry("stats-rx", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:881: e = create_proc_read_entry("stats-tx", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:889: e = create_proc_read_entry("stats-ap", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:897: e = create_proc_read_entry("registers-0", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:903: e = create_proc_read_entry("registers-1", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:909: e = create_proc_read_entry("registers-2", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:915: e = create_proc_read_entry("registers-3", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:921: e = create_proc_read_entry("registers-4", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:927: e = create_proc_read_entry("registers-5", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:933: e = create_proc_read_entry("registers-6", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:939: e = create_proc_read_entry("registers-7", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:945: e = create_proc_read_entry("registers-8", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:951: e = create_proc_read_entry("registers-9", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:957: e = create_proc_read_entry("registers-a", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:963: e = create_proc_read_entry("registers-b", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:969: e = create_proc_read_entry("registers-c", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:975: e = create_proc_read_entry("registers-d", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:981: e = create_proc_read_entry("registers-e", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:987: e = create_proc_read_entry("RF-A", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:993: e = create_proc_read_entry("RF-B", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:999: e = create_proc_read_entry("RF-C", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:1005: e = create_proc_read_entry("RF-D", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:1011: e = create_proc_read_entry("SEC-CAM-1", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:1017: e = create_proc_read_entry("SEC-CAM-2", S_IFREG | S_IRUGO,
> drivers/staging/rtl8192e/rtl8192e/rtl_debug.c:1023: e = create_proc_read_entry("SEC-CAM-3", S_IFREG | S_IRUGO,
> drivers/staging/wlags49_h2/wl_main.c:912: create_proc_read_entry( "wlags", 0, NULL, scull_read_procmem, dev );
I don't understand, I thought you were talking about scsi drivers, why
list all of these? What does your patch do?
greg k-h
^ permalink raw reply
* Re: linux-next: build failure after merge of the scsi tree
From: Greg KH @ 2012-03-28 23:52 UTC (permalink / raw)
To: Alexey Dobriyan
Cc: James Bottomley, Stephen Rothwell, linux-next, linux-kernel
In-Reply-To: <20120327223510.GB3233@p183.telecom.by>
On Wed, Mar 28, 2012 at 01:35:10AM +0300, Alexey Dobriyan wrote:
> On Tue, Mar 27, 2012 at 03:22:16PM -0700, Greg KH wrote:
> > On Wed, Mar 28, 2012 at 01:17:21AM +0300, Alexey Dobriyan wrote:
> > > On Mon, Mar 26, 2012 at 07:07:21AM -0700, Greg KH wrote:
> > > > On Mon, Mar 26, 2012 at 08:57:21AM +0100, James Bottomley wrote:
> > > > > On Mon, 2012-03-26 at 12:17 +1100, Stephen Rothwell wrote:
> > > > > > Hi James,
> > > > > >
> > > > > > After merging the scsi tree, today's linux-next build (x86_64 allmodconfig)
> > > > > > failed like this:
> > > > > >
> > > > > > drivers/staging/keucr/scsiglue.c:349:2: error: unknown field 'proc_info' specified in initializer
> > > > > > drivers/staging/rts_pstor/rtsx.c:258:2: error: unknown field 'proc_info' specified in initializer
> > > > > > drivers/staging/rts5139/rts51x_scsi.c:2190:2: error: unknown field 'proc_info' specified in initializer
> > > > > >
> > > > > > Caused by commit 104c4fe25dc9 ("[SCSI] remove scsi_host_template::proc_info").
> > > > > >
> > > > > > Since this is a staging driver, I applied these following patches:
> > > > >
> > > > > Yes, that looks about right, thanks. We haven't seen anything about
> > > > > these drivers on the SCSI list, so I've no idea where they are in
> > > > > development.
> > > >
> > > > Why is new patches going into your tree right now, during the 3.4 merge
> > > > window? API changes should have happened weeks ago, to let others fix
> > > > up things like this.
> > > >
> > > > As for the "where they are in development", they vary, but, a simple
> > > > grep should have shown you that these in-kernel drivers should also be
> > > > fixed up, or at the least, give me the heads up to let me do it for you.
> > > >
> > > > Care to send me the patch that causes this problem so I can create a fix
> > > > for this?
> > >
> > > See commits 422f07001d6638fdde28f1909cc9162bc7f571d3..104c4fe25dc9bde823ba4591e910a77071b98ab5
> > > Especially the first one.
I don't know where to find these patches, care to send them to me, or
point me at a link with them?
> > > Probably the best course of action is to remove proc_info code from
> > > these drivers because the interface was deprecated for a long time.
> >
> > If the interface is depreciated, yes, I can remove it now, just let me
> > know and I will do so.
> >
> > > The amount of code once removed from staging prevented me from doing
> > > any work on them.
> > >
> > > Looking at staging ->read_proc users this is going to be a problem for
> > > its removal. :-(
> >
> > Why?
>
> Because if staging does count, I can't remove the interface
> without breaking allmodconfig and it would take forever to convert
> staging stuff. I don't have energy to do it anymore.
> Mainline still have several _hard_ ->read_proc conversions.
> I've tried several times and failed.
>
> If staging doesn't count, I will break allmodconfig and all those nasty
> emails will show up anyway implying that staging does count.
I don't understand, if read_proc is depreciated, why can't I just remove
it from the staging drivers and then all will be fine, right?
confused,
greg k-h
^ permalink raw reply
* Re: linux-next: Tree for Mar 26 (usbcore)
From: Greg KH @ 2012-03-28 23:11 UTC (permalink / raw)
To: Randy Dunlap; +Cc: Alan Stern, Stephen Rothwell, linux-next, LKML, linux-usb
In-Reply-To: <4F7342D0.1010706@xenotime.net>
On Wed, Mar 28, 2012 at 09:56:48AM -0700, Randy Dunlap wrote:
> On 03/26/2012 01:16 PM, Greg KH wrote:
>
> > On Mon, Mar 26, 2012 at 04:06:59PM -0400, Alan Stern wrote:
> >> On Mon, 26 Mar 2012, Greg KH wrote:
> >>
> >>> On Mon, Mar 26, 2012 at 09:58:36AM -0700, Randy Dunlap wrote:
> >>>> On 03/25/2012 09:28 PM, Stephen Rothwell wrote:
> >>>>
> >>>>> Hi all,
> >>>>>
> >>>>> Reminder: please do not add stuff destined for v3.5 to linux-next
> >>>>> included trees/branches until after v3.4-rc1 has been released.
> >>>>>
> >>>>> Changes since 20120323:
> >>>>
> >>>>
> >>>>
> >>>> on x86_64:
> >>>>
> >>>> ERROR: "utf16s_to_utf8s" [drivers/usb/core/usbcore.ko] undefined!
> >>>> ERROR: "usb_speed_string" [drivers/usb/core/usbcore.ko] undefined!
> >>>>
> >>>> Full randconfig file is attached.
> >>>
> >>> Odd, nothing in the usb core has changed in a while in this area,
> >>> although we might have gotten some core dependancies mixed up for random
> >>> configurations like this.
> >>
> >> This is puzzling.
> >>
> >> utf16s_to_utf8s is defined in fs/nls/nls_base.c,
> >> which is built according to CONFIG_NLS (in fs/nls/Makefile),
> >> which is selected by CONFIG_USB (in drivers/usb/Kconfig).
> >>
> >> But the config that Randy attached had CONFIG_USB set to M and
> >> CONFIG_NLS not set. How is that possible?
> >>
> >> usb_speed_string is defined in drivers/usb/usb-common.c,
> >> which is built according to CONFIG_USB_COMMON (in
> >> drivers/usb/Makefile),
> >> which defaults to Y if CONFIG_USB_SUPPORT and either
> >> CONFIG_USB or CONFIG_USB_GADGET is set (in
> >> drivers/usb/Kconfig).
> >>
> >> The problem here was that CONFIG_USB_SUPPORT isn't set but CONFIG_USB
> >> is set to M. This used not to be possible, since CONFIG_USB was
> >> defined inside an "if USB_SUPPORT" section. Maybe that got changed and
> >> needs to be fixed (but
> >> https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git thinks
> >> it's still not possible). Or maybe Randy's tree is a little out of
> >> date.
> >
> > Yeah, that is strange, thanks for looking into it.
> >
> > Randy, any thoughts?
>
>
> It's weird. The same config file builds successfully on
> linux-next of Mar. 27.
>
> I looked more at linux-next of Mar. 26 and found one problem:
> in drivers/gpu/drm/Kconfig, there is a "select USB" that should be
> protected by "depends on USB_ARCH_HAS_HCD". I did that and then
> kconfig complained about unmet dependencies in drivers/gpu/drm/udl/Kconfig,
> so I added the same "depends on" there. That led into an awful mess:
>
> drivers/video/Kconfig:36:error: recursive dependency detected!
> drivers/video/Kconfig:36: symbol FB is selected by DRM_KMS_HELPER
> drivers/gpu/drm/Kconfig:26: symbol DRM_KMS_HELPER is selected by DRM_UDL
> drivers/gpu/drm/udl/Kconfig:1: symbol DRM_UDL depends on USB_ARCH_HAS_HCD
> drivers/usb/Kconfig:78: symbol USB_ARCH_HAS_HCD depends on USB_ARCH_HAS_OHCI
> drivers/usb/Kconfig:24: symbol USB_ARCH_HAS_OHCI depends on I2C
> drivers/i2c/Kconfig:5: symbol I2C is selected by FB_DDC
> drivers/video/Kconfig:86: symbol FB_DDC is selected by FB_CYBER2000_DDC
> drivers/video/Kconfig:385: symbol FB_CYBER2000_DDC depends on FB_CYBER2000
> drivers/video/Kconfig:373: symbol FB_CYBER2000 depends on FB
>
> and I don't know what to do with this.
>
> Anyway, I do think that the problem is in drivers/gpu/drm/Kconfig
> and drivers/gpu/drm/udl/Kconfig.
Ok, thanks for looking. I'm worried why DRM would care about USB, but
maybe I don't want to know...
greg k-h
^ permalink raw reply
* Re: [PATCH] ARM: pxa: fix regulator related build fail in magician_defconfig
From: Mark Brown @ 2012-03-28 18:10 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Paul Gortmaker, linux-next, linux-arm-kernel, Haojian Zhuang,
lost.distance
In-Reply-To: <20120328175613.GC22414@n2100.arm.linux.org.uk>
[-- Attachment #1: Type: text/plain, Size: 1230 bytes --]
On Wed, Mar 28, 2012 at 06:56:13PM +0100, Russell King - ARM Linux wrote:
> On Wed, Mar 28, 2012 at 11:18:52AM +0100, Mark Brown wrote:
> > Yes, please at least apply Paul's patches - honestly, given how old
> > these boards are and the general lack of activity I'd rather expect that
> > the only thing anyone's doing with them these days is build tests.
> Is that a reason to push breakage to them upstream? No. Please take
> Paul's patches to fix the breakage which was introduced through your
> tree yourself. I've got enough problems this merge window to deal with
> without having to add further patches to my tree.
Well, I'd expect this stuff to be going via the pxa tree to arm-soc
rather than via your tree anyway (which seems to be what's happening at
this point) - half the point with arm-soc was to ensure you didn't have
to deal with things like this.
Quite frankly I thought the fixes had already been applied, they were
posted and reviewed in good time for the merge window and the issues
weren't being reported in -next any more; had someone asked I'd have
applied them as I did with the equivalent stuff for u300. If they were
being totally ignored I'd probably have applied them too, though perhaps
not.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: [PATCH] ARM: pxa: fix regulator related build fail in magician_defconfig
From: Russell King - ARM Linux @ 2012-03-28 17:56 UTC (permalink / raw)
To: Mark Brown
Cc: Paul Gortmaker, linux-next, linux-arm-kernel, Haojian Zhuang,
lost.distance
In-Reply-To: <20120328101852.GE3232@opensource.wolfsonmicro.com>
On Wed, Mar 28, 2012 at 11:18:52AM +0100, Mark Brown wrote:
> On Wed, Mar 28, 2012 at 10:43:51AM +0100, Russell King - ARM Linux wrote:
> > On Wed, Mar 14, 2012 at 12:32:36PM +0000, Mark Brown wrote:
>
> > > Yes, that's what you should do. Calling dev_name() is only possible if
> > > you have the struct device and removing the need for the struct device
> > > is exactly what we're trying to avoid here.
>
> > So what the hell is happening here to fix the breakage which the
> > regulator tree caused in mainline? From this thread, it looks like
> > it's been known about since 8th March which is now twenty days ago,
> > and it's still broken.
>
> Yes, please at least apply Paul's patches - honestly, given how old
> these boards are and the general lack of activity I'd rather expect that
> the only thing anyone's doing with them these days is build tests.
Is that a reason to push breakage to them upstream? No. Please take
Paul's patches to fix the breakage which was introduced through your
tree yourself. I've got enough problems this merge window to deal with
without having to add further patches to my tree.
Thanks.
^ permalink raw reply
* Re: [PATCH] ARM: pxa: fix build failure for regulator consumer in em-x270.c
From: Paul Gortmaker @ 2012-03-28 16:59 UTC (permalink / raw)
To: Mark Brown, Igor Grinberg; +Cc: haojian.zhuang, linux-arm-kernel, linux-next
In-Reply-To: <20120328161305.GZ3232@opensource.wolfsonmicro.com>
On 12-03-28 12:13 PM, Mark Brown wrote:
> On Wed, Mar 28, 2012 at 11:59:41AM -0400, Paul Gortmaker wrote:
>> On 12-03-28 11:27 AM, Mark Brown wrote:
>
>> static struct platform_device em_x270_gps_userspace_consumer = {
>> .name = "reg-userspace-consumer",
>> .id = 0,
>
>> static struct platform_device em_x270_gprs_userspace_consumer = {
>> .name = "reg-userspace-consumer",
>> .id = 1,
>
>> Note that the existing names currently don't incorporate the .id
>> field as a suffix, and so never were unique.
>
> No, this is just a basic part of how platform devices work - the device
> name is always the same and if you've got more than one of them they get
> different .ids. dev_name() returns name.id, or just name if id is set
> to -1 indicating that there's onyl one device of a given type.
OK, so Igor - can you simply retest the v2 patch, but make the
two trivial changes:
-REGULATOR_CONSUMER(ldo3, "reg-userspace-consumer", "vcc gps");
+REGULATOR_CONSUMER(ldo3, "reg-userspace-consumer.0", "vcc gps");
-REGULATOR_CONSUMER(ldo19, "reg-userspace-consumer", "vcc gprs");
+REGULATOR_CONSUMER(ldo19, "reg-userspace-consumer.1", "vcc gprs");
Thanks,
Paul.
^ permalink raw reply
* Re: linux-next: Tree for Mar 26 (usbcore)
From: Randy Dunlap @ 2012-03-28 16:56 UTC (permalink / raw)
To: Greg KH; +Cc: Alan Stern, Stephen Rothwell, linux-next, LKML, linux-usb
In-Reply-To: <20120326201622.GA29228@kroah.com>
On 03/26/2012 01:16 PM, Greg KH wrote:
> On Mon, Mar 26, 2012 at 04:06:59PM -0400, Alan Stern wrote:
>> On Mon, 26 Mar 2012, Greg KH wrote:
>>
>>> On Mon, Mar 26, 2012 at 09:58:36AM -0700, Randy Dunlap wrote:
>>>> On 03/25/2012 09:28 PM, Stephen Rothwell wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Reminder: please do not add stuff destined for v3.5 to linux-next
>>>>> included trees/branches until after v3.4-rc1 has been released.
>>>>>
>>>>> Changes since 20120323:
>>>>
>>>>
>>>>
>>>> on x86_64:
>>>>
>>>> ERROR: "utf16s_to_utf8s" [drivers/usb/core/usbcore.ko] undefined!
>>>> ERROR: "usb_speed_string" [drivers/usb/core/usbcore.ko] undefined!
>>>>
>>>> Full randconfig file is attached.
>>>
>>> Odd, nothing in the usb core has changed in a while in this area,
>>> although we might have gotten some core dependancies mixed up for random
>>> configurations like this.
>>
>> This is puzzling.
>>
>> utf16s_to_utf8s is defined in fs/nls/nls_base.c,
>> which is built according to CONFIG_NLS (in fs/nls/Makefile),
>> which is selected by CONFIG_USB (in drivers/usb/Kconfig).
>>
>> But the config that Randy attached had CONFIG_USB set to M and
>> CONFIG_NLS not set. How is that possible?
>>
>> usb_speed_string is defined in drivers/usb/usb-common.c,
>> which is built according to CONFIG_USB_COMMON (in
>> drivers/usb/Makefile),
>> which defaults to Y if CONFIG_USB_SUPPORT and either
>> CONFIG_USB or CONFIG_USB_GADGET is set (in
>> drivers/usb/Kconfig).
>>
>> The problem here was that CONFIG_USB_SUPPORT isn't set but CONFIG_USB
>> is set to M. This used not to be possible, since CONFIG_USB was
>> defined inside an "if USB_SUPPORT" section. Maybe that got changed and
>> needs to be fixed (but
>> https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git thinks
>> it's still not possible). Or maybe Randy's tree is a little out of
>> date.
>
> Yeah, that is strange, thanks for looking into it.
>
> Randy, any thoughts?
It's weird. The same config file builds successfully on
linux-next of Mar. 27.
I looked more at linux-next of Mar. 26 and found one problem:
in drivers/gpu/drm/Kconfig, there is a "select USB" that should be
protected by "depends on USB_ARCH_HAS_HCD". I did that and then
kconfig complained about unmet dependencies in drivers/gpu/drm/udl/Kconfig,
so I added the same "depends on" there. That led into an awful mess:
drivers/video/Kconfig:36:error: recursive dependency detected!
drivers/video/Kconfig:36: symbol FB is selected by DRM_KMS_HELPER
drivers/gpu/drm/Kconfig:26: symbol DRM_KMS_HELPER is selected by DRM_UDL
drivers/gpu/drm/udl/Kconfig:1: symbol DRM_UDL depends on USB_ARCH_HAS_HCD
drivers/usb/Kconfig:78: symbol USB_ARCH_HAS_HCD depends on USB_ARCH_HAS_OHCI
drivers/usb/Kconfig:24: symbol USB_ARCH_HAS_OHCI depends on I2C
drivers/i2c/Kconfig:5: symbol I2C is selected by FB_DDC
drivers/video/Kconfig:86: symbol FB_DDC is selected by FB_CYBER2000_DDC
drivers/video/Kconfig:385: symbol FB_CYBER2000_DDC depends on FB_CYBER2000
drivers/video/Kconfig:373: symbol FB_CYBER2000 depends on FB
and I don't know what to do with this.
Anyway, I do think that the problem is in drivers/gpu/drm/Kconfig
and drivers/gpu/drm/udl/Kconfig.
--
~Randy
^ 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