* Re: [PATCH -next] driver core: fix build for CONFIG_BLOCK=n
From: Randy Dunlap @ 2010-09-23 19:47 UTC (permalink / raw)
To: Greg KH; +Cc: Stephen Rothwell, Kay Sievers, gregkh, linux-next, LKML
In-Reply-To: <20100923191629.GB18736@kroah.com>
On Thu, 23 Sep 2010 12:16:29 -0700 Greg KH wrote:
> On Thu, Sep 23, 2010 at 11:15:41AM -0700, Randy Dunlap wrote:
> > On Tue, 21 Sep 2010 15:31:15 -0700 Greg KH wrote:
> >
> > > On Mon, Sep 20, 2010 at 09:20:34AM -0700, Randy Dunlap wrote:
> > > > From: Randy Dunlap <randy.dunlap@oracle.com>
> > > >
> > > > Fix build when CONFIG_BLOCK is not enabled (since SEP-06).
> > > > Fixes these build errors:
> > > >
> > > > drivers/base/core.c: In function 'get_device_parent':
> > > > drivers/base/core.c:622: error: 'block_class' undeclared (first use in this function)
> > > > drivers/base/core.c: In function 'device_add_class_symlinks':
> > > > drivers/base/core.c:712: error: 'block_class' undeclared (first use in this function)
> > > > drivers/base/core.c: In function 'device_remove_class_symlinks':
> > > > drivers/base/core.c:742: error: 'block_class' undeclared (first use in this function)
> > > >
> > > > Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
> > >
> > > This should no longer be needed with the next linux-next tree as the
> > > logic in this area has changed thanks to Andi's patch.
~~~~~~~~~~~~~~~~~~~~~~~
> >
> > {sorry about resend, email problems}
> >
> >
> > Still seeing this build error. (linux-next 2010-0923)
> > Will you be merging some patch soon?
>
> Not unless someone provides it. I know of no valid user of the kernel
> that does not enable CONFIG_BLOCK, so I really doubt this will ever hit
> anyone in "real life" so it's _way_ down the list of things I have to do
> at the moment, sorry.
so what was your comment about Andi's patch (above)?
Do you have it? Have you merged it?
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
^ permalink raw reply
* Re: [PATCH -next] driver core: fix build for CONFIG_BLOCK=n
From: Randy Dunlap @ 2010-09-23 17:57 UTC (permalink / raw)
To: Greg KH; +Cc: Stephen Rothwell, Kay Sievers, gregkh, linux-next, LKML
In-Reply-To: <20100921223115.GB21202@kroah.com>
On Tue, 21 Sep 2010 15:31:15 -0700 Greg KH wrote:
> On Mon, Sep 20, 2010 at 09:20:34AM -0700, Randy Dunlap wrote:
> > From: Randy Dunlap <randy.dunlap@oracle.com>
> >
> > Fix build when CONFIG_BLOCK is not enabled (since SEP-06).
> > Fixes these build errors:
> >
> > drivers/base/core.c: In function 'get_device_parent':
> > drivers/base/core.c:622: error: 'block_class' undeclared (first use in this function)
> > drivers/base/core.c: In function 'device_add_class_symlinks':
> > drivers/base/core.c:712: error: 'block_class' undeclared (first use in this function)
> > drivers/base/core.c: In function 'device_remove_class_symlinks':
> > drivers/base/core.c:742: error: 'block_class' undeclared (first use in this function)
> >
> > Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
>
> This should no longer be needed with the next linux-next tree as the
> logic in this area has changed thanks to Andi's patch.
Still seeing this build error.
Will you be merging some patch soon?
thnx,
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
^ permalink raw reply
* Re: [PATCH -next] driver core: fix build for CONFIG_BLOCK=n
From: Greg KH @ 2010-09-23 20:30 UTC (permalink / raw)
To: Randy Dunlap; +Cc: Greg KH, Stephen Rothwell, Kay Sievers, linux-next, LKML
In-Reply-To: <20100923124751.cc59a349.rdunlap@xenotime.net>
On Thu, Sep 23, 2010 at 12:47:51PM -0700, Randy Dunlap wrote:
> On Thu, 23 Sep 2010 12:16:29 -0700 Greg KH wrote:
>
> > On Thu, Sep 23, 2010 at 11:15:41AM -0700, Randy Dunlap wrote:
> > > On Tue, 21 Sep 2010 15:31:15 -0700 Greg KH wrote:
> > >
> > > > On Mon, Sep 20, 2010 at 09:20:34AM -0700, Randy Dunlap wrote:
> > > > > From: Randy Dunlap <randy.dunlap@oracle.com>
> > > > >
> > > > > Fix build when CONFIG_BLOCK is not enabled (since SEP-06).
> > > > > Fixes these build errors:
> > > > >
> > > > > drivers/base/core.c: In function 'get_device_parent':
> > > > > drivers/base/core.c:622: error: 'block_class' undeclared (first use in this function)
> > > > > drivers/base/core.c: In function 'device_add_class_symlinks':
> > > > > drivers/base/core.c:712: error: 'block_class' undeclared (first use in this function)
> > > > > drivers/base/core.c: In function 'device_remove_class_symlinks':
> > > > > drivers/base/core.c:742: error: 'block_class' undeclared (first use in this function)
> > > > >
> > > > > Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
> > > >
> > > > This should no longer be needed with the next linux-next tree as the
> > > > logic in this area has changed thanks to Andi's patch.
> ~~~~~~~~~~~~~~~~~~~~~~~
>
> > >
> > > {sorry about resend, email problems}
> > >
> > >
> > > Still seeing this build error. (linux-next 2010-0923)
> > > Will you be merging some patch soon?
> >
> > Not unless someone provides it. I know of no valid user of the kernel
> > that does not enable CONFIG_BLOCK, so I really doubt this will ever hit
> > anyone in "real life" so it's _way_ down the list of things I have to do
> > at the moment, sorry.
>
> so what was your comment about Andi's patch (above)?
It's merged already, and because of it, your patch failed to apply.
thanks,
greg k-h
^ permalink raw reply
* Re: [PATCH -next] driver core: fix build for CONFIG_BLOCK=n
From: Randy Dunlap @ 2010-09-23 20:34 UTC (permalink / raw)
To: Greg KH; +Cc: Greg KH, Stephen Rothwell, Kay Sievers, linux-next, LKML
In-Reply-To: <20100923203006.GB10687@suse.de>
On Thu, 23 Sep 2010 13:30:06 -0700 Greg KH wrote:
> On Thu, Sep 23, 2010 at 12:47:51PM -0700, Randy Dunlap wrote:
> > On Thu, 23 Sep 2010 12:16:29 -0700 Greg KH wrote:
> >
> > > On Thu, Sep 23, 2010 at 11:15:41AM -0700, Randy Dunlap wrote:
> > > > On Tue, 21 Sep 2010 15:31:15 -0700 Greg KH wrote:
> > > >
> > > > > On Mon, Sep 20, 2010 at 09:20:34AM -0700, Randy Dunlap wrote:
> > > > > > From: Randy Dunlap <randy.dunlap@oracle.com>
> > > > > >
> > > > > > Fix build when CONFIG_BLOCK is not enabled (since SEP-06).
> > > > > > Fixes these build errors:
> > > > > >
> > > > > > drivers/base/core.c: In function 'get_device_parent':
> > > > > > drivers/base/core.c:622: error: 'block_class' undeclared (first use in this function)
> > > > > > drivers/base/core.c: In function 'device_add_class_symlinks':
> > > > > > drivers/base/core.c:712: error: 'block_class' undeclared (first use in this function)
> > > > > > drivers/base/core.c: In function 'device_remove_class_symlinks':
> > > > > > drivers/base/core.c:742: error: 'block_class' undeclared (first use in this function)
> > > > > >
> > > > > > Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
> > > > >
> > > > > This should no longer be needed with the next linux-next tree as the
> > > > > logic in this area has changed thanks to Andi's patch.
> > ~~~~~~~~~~~~~~~~~~~~~~~
> >
> > > >
> > > > {sorry about resend, email problems}
> > > >
> > > >
> > > > Still seeing this build error. (linux-next 2010-0923)
> > > > Will you be merging some patch soon?
> > >
> > > Not unless someone provides it. I know of no valid user of the kernel
> > > that does not enable CONFIG_BLOCK, so I really doubt this will ever hit
> > > anyone in "real life" so it's _way_ down the list of things I have to do
> > > at the moment, sorry.
Maybe you should just submit a patch to remove CONFIG_BLOCK.
(and many other kconfig symbols)
> > so what was your comment about Andi's patch (above)?
>
> It's merged already, and because of it, your patch failed to apply.
OK, so I disagree with your comment:
> > > > > This should no longer be needed with the next linux-next tree as the
> > > > > logic in this area has changed thanks to Andi's patch.
but I now understand that my patch failed to apply. Thanks for the info.
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
^ permalink raw reply
* linux-next: manual merge of the trivial tree with the net tree
From: Stephen Rothwell @ 2010-09-24 2:19 UTC (permalink / raw)
To: Jiri Kosina; +Cc: linux-next, linux-kernel, Thomas Weber
[-- Attachment #1: Type: text/plain, Size: 610 bytes --]
Hi Jiri,
Today's linux-next merge of the trivial tree got a conflict in
drivers/net/bnx2x/bnx2x_link.c between commit
62b29a5dd0930e0c956b6740f32d5b3bbaf20136 ("bnx2x: Adjust alignment of
split PHY functions") from the net tree and commit
0b1974de66f9ed44f1423449628f4926bf95b854 ("Fix typo: configuation =>
configuration") from the trivial tree.
The former removes the text updated by the latter, so I used the former.
Jiri, you might like to drop that hunk from the patch in your tree.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* linux-next: manual merge of the bkl-llseek tree with the sound tree
From: Stephen Rothwell @ 2010-09-24 3:42 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linux-next, linux-kernel, John Kacur, Takashi Iwai
[-- Attachment #1: Type: text/plain, Size: 646 bytes --]
Hi Arnd,
Today's linux-next merge of the bkl-llseek tree got a conflict in
sound/oss/sh_dac_audio.c between commit
095a0f6df246bdc57b57d616c4698e41fbd3bf43 ("SOUND-OSS: Remove
sh_dac_audio") from the sound tree and commit
5295184fb318693b4ef2cd8056bf1a7cb43586d7 ("llseek: automatically
add .llseek fop") from the bkl-llseek tree.
The former just removes the file updated by the latter. I just removed
the file.
Arnd, (assuming that you will do a rebase anyway) you may as well just
drop the hunk that affects this file.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* linux-next: build warning after merge of the cifs tree
From: Stephen Rothwell @ 2010-09-24 3:48 UTC (permalink / raw)
To: Steve French, linux-cifs-u79uwXL29TY76Z2rM5mHXA
Cc: linux-next-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA, Jeff Layton
[-- Attachment #1: Type: text/plain, Size: 470 bytes --]
Hi all,
After merging the cifs tree, today's linux-next build (powerpc
ppc64_defconfig) produced this warning:
fs/cifs/dir.c: In function 'cifs_new_fileinfo':
fs/cifs/dir.c:140: warning: unused variable 'cifs_sb'
Introduced by commit 9a6124e7e18fa30d8693055e6a4526afb4c3fabc ("cifs:
have cifs_new_fileinfo take a tcon arg").
--
Cheers,
Stephen Rothwell sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* linux-next: build warning after merge of the cifs tree
From: Stephen Rothwell @ 2010-09-24 3:55 UTC (permalink / raw)
To: Steve French, linux-cifs; +Cc: linux-next, linux-kernel, Shirish Pargaonkar
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
Hi all,
After merging the irqflags tree, today's linux-next build (powerpc
ppc64_defconfig) produced this warning:
fs/cifs/sess.c: In function 'CIFS_SessSetup':
fs/cifs/sess.c:595: warning: unused variable 'blob_len'
Introduced by commit 15f6bdfb9914b0c41848f874719911ba053be931 ("cifs
NTLMv2/NTLMSSP ntlmv2 within ntlmssp autentication code").
CONFIG_CIFS_UPCALL is not set in this build.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* linux-next: build warning after merge of the tty tree
From: Stephen Rothwell @ 2010-09-24 4:03 UTC (permalink / raw)
To: Greg KH; +Cc: linux-next, linux-kernel, Alan Cox
[-- Attachment #1: Type: text/plain, Size: 546 bytes --]
Hi Greg,
After merging the tty tree, today's linux-next build (powerpc
allyesconfig) produced this warning:
drivers/usb/serial/ssu100.c: In function 'ssu100_ioctl':
drivers/usb/serial/ssu100.c:448: warning: unused variable 'user_arg'
drivers/usb/serial/ssu100.c:447: warning: unused variable 'priv'
Introduced by commit 20e2e6fa50180468e4240a91f811dca3a1c30304 ("tty:
Convert the USB drivers to the new icount interface").
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* linux-next: build warning from Linus' tree
From: Stephen Rothwell @ 2010-09-24 4:08 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linux-next, linux-kernel, Frederic Weisbecker
[-- Attachment #1: Type: text/plain, Size: 426 bytes --]
Hi Arnd,
Today's (and lots before) linux-next build (i386 defconfig) produced this
warning:
fs/autofs4/root.c:31: warning: 'autofs4_root_compat_ioctl' declared 'static' but never defined
Introduced by commit c9243f5bdd6637b2bb7dc254b54d9edf957ef17e
("autofs/autofs4: Move compat_ioctl handling into fs").
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* Re: linux-next: build warning after merge of the tty tree
From: Greg KH @ 2010-09-24 4:44 UTC (permalink / raw)
To: Stephen Rothwell, Alan Cox; +Cc: linux-next, linux-kernel
In-Reply-To: <20100924140351.b137a3b7.sfr@canb.auug.org.au>
On Fri, Sep 24, 2010 at 02:03:51PM +1000, Stephen Rothwell wrote:
> Hi Greg,
>
> After merging the tty tree, today's linux-next build (powerpc
> allyesconfig) produced this warning:
>
> drivers/usb/serial/ssu100.c: In function 'ssu100_ioctl':
> drivers/usb/serial/ssu100.c:448: warning: unused variable 'user_arg'
> drivers/usb/serial/ssu100.c:447: warning: unused variable 'priv'
>
> Introduced by commit 20e2e6fa50180468e4240a91f811dca3a1c30304 ("tty:
> Convert the USB drivers to the new icount interface").
Alan, care to fix this one up as well?
thanks,
greg k-h
^ permalink raw reply
* linux-next: Tree for September 24
From: Stephen Rothwell @ 2010-09-24 4:55 UTC (permalink / raw)
To: linux-next; +Cc: LKML
[-- Attachment #1: Type: text/plain, Size: 11302 bytes --]
Hi all,
Changes since 20100923:
The powerpc tree lost its build failure.
The ceph tree lost its conflicts.
The cifs tree lost its build failure.
The nfsd tree lost its build failure.
The sound tree lost its build failure.
The kgdb tree still has its build failure for which I applied a patch.
The trivial tree gained a conflict against the net tree.
The tip tree lost a conflict.
The drivers-x86 tree lost its merge fix patch.
The tty tree lost its build failure.
The bkl-llseek tree gained a conflict against the sound 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/v2.6/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 174 trees (counting Linus' and 22 trees of patches pending
for Linus' tree), more are welcome (even if they are currently empty).
Thanks to those who have contributed, and to those who haven't, please do.
Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next . If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.
Thanks to Randy Dunlap for doing many randconfig builds.
There is a wiki covering stuff to do with linux-next at
http://linux.f-seidel.de/linux-next/pmwiki/ . Thanks to Frank Seidel.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
$ git checkout master
$ git reset --hard stable
Merging origin/master
Merging fixes/fixes
Merging arm-current/master
Merging m68k-current/for-linus
Merging powerpc-merge/merge
Merging sparc-current/master
Merging scsi-rc-fixes/master
Merging net-current/master
Merging sound-current/for-linus
Merging pci-current/for-linus
Merging wireless-current/master
Merging kbuild-current/rc-fixes
Merging quilt/driver-core.current
Merging quilt/tty.current
Merging quilt/usb.current
Merging quilt/staging.current
Merging cpufreq-current/fixes
Merging input-current/for-linus
Merging md-current/for-linus
Merging audit-current/for-linus
Merging crypto-current/master
Merging ide-curent/master
Merging dwmw2/master
Merging gcl-current/merge
Merging arm/devel
Merging davinci/davinci-next
Merging i.MX/for-next
Merging msm/for-next
Merging omap/for-next
Merging pxa/for-next
Merging samsung/next-samsung
CONFLICT (content): Merge conflict in arch/arm/mach-s3c64xx/Makefile
CONFLICT (content): Merge conflict in arch/arm/mach-s3c64xx/mach-smdk6410.c
CONFLICT (content): Merge conflict in arch/arm/plat-samsung/Kconfig
CONFLICT (content): Merge conflict in drivers/input/touchscreen/s3c2410_ts.c
Merging s5p/for-next
Merging tegra/for-next
Merging avr32/avr32-arch
Merging blackfin/for-linus
Merging cris/for-next
Merging ia64/test
Merging m68k/for-next
Merging m68knommu/for-next
Merging microblaze/next
Merging mips/mips-for-linux-next
Merging parisc/next
Merging powerpc/next
Merging 4xx/next
Merging 52xx-and-virtex/next
Merging galak/next
CONFLICT (content): Merge conflict in arch/powerpc/platforms/85xx/mpc85xx_mds.c
Merging s390/features
Merging sh/master
Merging genesis/master
Merging sparc/master
Merging tile/master
Merging xtensa/master
CONFLICT (content): Merge conflict in arch/xtensa/configs/iss_defconfig
Merging ceph/for-next
Merging cifs/master
Merging configfs/linux-next
Merging ecryptfs/next
Merging ext3/for_next
Merging ext4/next
Merging fatfs/master
Merging fuse/for-next
Merging gfs2/master
Merging jfs/next
Merging logfs/master
CONFLICT (content): Merge conflict in fs/logfs/logfs.h
Merging nfs/linux-next
Merging nfsd/nfsd-next
Merging nilfs2/for-next
Merging ocfs2/linux-next
Merging omfs/for-next
Merging squashfs/master
Merging udf/for_next
Merging v9fs/for-next
Merging ubifs/linux-next
Merging xfs/master
Merging vfs/for-next
Merging pci/linux-next
Merging hid/for-next
Merging quilt/i2c
Merging bjdooks-i2c/next-i2c
Merging quilt/jdelvare-hwmon
Merging quilt/kernel-doc
Merging v4l-dvb/master
CONFLICT (content): Merge conflict in drivers/media/IR/ir-keytable.c
CONFLICT (content): Merge conflict in drivers/media/IR/ir-lirc-codec.c
CONFLICT (content): Merge conflict in drivers/media/IR/ir-raw-event.c
CONFLICT (add/add): Merge conflict in drivers/media/IR/streamzap.c
CONFLICT (content): Merge conflict in drivers/media/dvb/siano/smscoreapi.c
CONFLICT (add/add): Merge conflict in drivers/media/video/s5p-fimc/fimc-core.c
Merging kbuild/for-next
Merging kconfig/for-next
Merging ide/master
Merging libata/NEXT
Merging infiniband/for-next
Merging acpi/test
Merging idle-test/idle-test
Merging ieee1394/for-next
Merging ubi/linux-next
Merging kvm/linux-next
Merging dlm/next
Merging swiotlb/master
Merging swiotlb-xen/master
Merging ibft/master
Merging scsi/master
Merging async_tx/next
Merging net/master
CONFLICT (content): Merge conflict in drivers/net/pcmcia/pcnet_cs.c
CONFLICT (content): Merge conflict in drivers/net/qlcnic/qlcnic_init.c
CONFLICT (content): Merge conflict in net/ipv4/ip_output.c
Merging wireless/master
Merging mtd/master
Merging crypto/master
Merging sound-asoc/for-next
CONFLICT (content): Merge conflict in arch/arm/mach-s3c64xx/mach-smdk6410.c
CONFLICT (content): Merge conflict in drivers/video/sh_mobile_hdmi.c
Merging sound/for-next
Merging cpufreq/next
Merging quilt/rr
Merging input/next
CONFLICT (content): Merge conflict in drivers/input/keyboard/Kconfig
Merging lsm/for-next
Merging block/for-next
CONFLICT (content): Merge conflict in fs/ext4/mballoc.c
Merging quilt/device-mapper
Merging embedded/master
Merging firmware/master
Merging pcmcia/master
CONFLICT (content): Merge conflict in drivers/net/pcmcia/smc91c92_cs.c
Merging battery/master
Merging leds/for-mm
Merging backlight/for-mm
Merging mmc/mmc-next
Merging kgdb/kgdb-next
Applying: kgdb: merge fix for mode_set_base_atomic API change
Merging slab/for-next
Merging uclinux/for-next
Merging md/for-next
Merging mfd/for-next
CONFLICT (content): Merge conflict in drivers/mfd/sh_mobile_sdhi.c
Merging hdlc/hdlc-next
Merging drm/drm-next
Merging viafb/viafb-next
Merging voltage/for-next
Merging security-testing/next
Merging lblnet/master
Merging agp/agp-next
Merging uwb/for-upstream
Merging watchdog/master
Merging bdev/master
Merging dwmw2-iommu/master
Merging cputime/cputime
Merging osd/linux-next
Merging jc_docs/docs-next
Merging nommu/master
Merging trivial/for-next
CONFLICT (content): Merge conflict in drivers/net/bnx2x/bnx2x_link.c
Merging audit/for-next
Merging quilt/aoe
Merging suspend/linux-next
Merging bluetooth/master
Merging fsnotify/for-next
Merging irda/for-next
CONFLICT (content): Merge conflict in drivers/net/irda/irda-usb.c
Merging catalin/for-next
CONFLICT (content): Merge conflict in arch/arm/include/asm/smp_plat.h
CONFLICT (content): Merge conflict in arch/arm/kernel/Makefile
Merging alacrity/linux-next
CONFLICT (content): Merge conflict in include/linux/Kbuild
Merging i7core_edac/linux_next
CONFLICT (content): Merge conflict in MAINTAINERS
Merging i7300_edac/linux_next
Merging devicetree/next-devicetree
Merging spi/next-spi
Merging omap_dss2/for-next
Merging xen/upstream/xen
Merging rcu/rcu/next
Merging tip/auto-latest
CONFLICT (content): Merge conflict in include/linux/percpu.h
CONFLICT (content): Merge conflict in net/core/dev.c
Merging lost-spurious-irq/lost-spurious-irq
CONFLICT (content): Merge conflict in drivers/ata/libata-core.c
CONFLICT (content): Merge conflict in include/linux/libata.h
Merging edac-amd/for-next
Merging oprofile/for-next
Merging percpu/for-next
CONFLICT (content): Merge conflict in include/linux/percpu.h
CONFLICT (content): Merge conflict in mm/percpu.c
Merging workqueues/for-next
Merging sfi/sfi-test
Merging asm-generic/next
Merging drivers-x86/linux-next
Merging hwpoison/hwpoison
Merging sysctl/master
Merging quilt/driver-core
CONFLICT (content): Merge conflict in drivers/misc/Makefile
Merging quilt/tty
Merging quilt/usb
CONFLICT (content): Merge conflict in drivers/usb/gadget/rndis.c
Merging staging-next/staging-next
CONFLICT (content): Merge conflict in drivers/staging/Makefile
CONFLICT (content): Merge conflict in drivers/staging/batman-adv/hard-interface.c
CONFLICT (delete/modify): drivers/staging/mrst-touchscreen/Makefile deleted in HEAD and modified in staging-next/staging-next. Version staging-next/staging-next of drivers/staging/mrst-touchscreen/Makefile left in tree.
CONFLICT (delete/modify): drivers/staging/mrst-touchscreen/intel-mid-touch.c deleted in HEAD and modified in staging-next/staging-next. Version staging-next/staging-next of drivers/staging/mrst-touchscreen/intel-mid-touch.c left in tree.
CONFLICT (delete/modify): drivers/staging/ti-st/st.h deleted in staging-next/staging-next and modified in HEAD. Version HEAD of drivers/staging/tiResolved 'drivers/staging/Makefile' using previous resolution.
CONFLICT (delete/modify): drivers/staging/ti-st/st_core.h deleted in staging-next/staging-next and modified in HEAD. Version HEAD of drivers/staging/ti-st/st_core.h left in tree.
CONFLICT (content): Merge conflict in drivers/staging/ti-st/st_kim.c
$ git rm -f drivers/staging/mrst-touchscreen/Makefile drivers/staging/mrst-touchscreen/intel-mid-touch.c
$ git rm -f drivers/staging/ti-st/st.h drivers/staging/ti-st/st_core.h
Merging slabh/slabh
Merging bkl-trivial/trivial
CONFLICT (content): Merge conflict in drivers/char/pcmcia/cm4000_cs.c
CONFLICT (content): Merge conflict in drivers/char/pcmcia/cm4040_cs.c
CONFLICT (content): Merge conflict in drivers/mmc/card/block.c
Merging bkl-llseek/llseek
CONFLICT (content): Merge conflict in drivers/staging/batman-adv/bat_debugfs.c
CONFLICT (content): Merge conflict in drivers/staging/batman-adv/icmp_socket.c
CONFLICT (delete/modify): sound/oss/sh_dac_audio.c deleted in HEAD and modified in bkl-llseek/llseek. Version bkl-llseek/llseek of sound/oss/sh_dac_audio.c left in tree.
$ git rm -f sound/oss/sh_dac_audio.c
Merging bkl-vfs/vfs
CONFLICT (content): Merge conflict in fs/cifs/cifsfs.c
CONFLICT (content): Merge conflict in fs/nilfs2/super.c
Merging bkl-config/config
Merging irqflags/master
Merging scsi-post-merge/merge-base:master
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* Re: [-next] Latest next does not boot on s390x
From: Heiko Carstens @ 2010-09-24 10:44 UTC (permalink / raw)
To: Sachin Sant, David Howells
Cc: linux-s390, linux-next@vger.kernel.org, Martin Schwidefsky
In-Reply-To: <4C9B5AAB.6020000@in.ibm.com>
On Thu, Sep 23, 2010 at 07:18:27PM +0530, Sachin Sant wrote:
> I cannot boot recent linux-next builds on a s390x box.
>
> I first ran into this problem with Sept 17th linux-next build(2.6.36-rc4_next_20100917)
>
> The following messages are displayed on the console :
>
> 03: Please choose (default will boot in 20 seconds):
> 03: Booting default (autotest)...
> 03: HCPGIR450W CP entered; disabled wait PSW 00020001 80000000 00000000 0010DB3E
>
> Any idea what could be the problem or how can i debug this issue ?
Caused by "Fix IRQ flag handling naming". It changed a define to a function
which takes an unsigned long. That adds an implicit cast of the ssm_mask from
int to unsigned long and changes bit positions.
In consequence we fail to enable the virtual addressing mode and hence the
kernel crashes at first access to an address that is only available in
virtual addressing mode.
The patch below fixes it.
David, could you please merge it into your "Fix IRQ flag handling naming"
patch? Thanks!
Reported-by: Sachin Sant <sachinp@in.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
---
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c
index d3a24e4..bb40933 100644
--- a/arch/s390/mm/init.c
+++ b/arch/s390/mm/init.c
@@ -91,7 +91,6 @@ static unsigned long setup_zero_pages(void)
*/
void __init paging_init(void)
{
- static const int ssm_mask = 0x04000000L;
unsigned long max_zone_pfns[MAX_NR_ZONES];
unsigned long pgd_type;
@@ -113,7 +112,7 @@ void __init paging_init(void)
__ctl_load(S390_lowcore.kernel_asce, 1, 1);
__ctl_load(S390_lowcore.kernel_asce, 7, 7);
__ctl_load(S390_lowcore.kernel_asce, 13, 13);
- arch_local_irq_restore(ssm_mask);
+ arch_local_irq_restore(4UL << (BITS_PER_LONG - 8));
atomic_set(&init_mm.context.attach_count, 1);
^ permalink raw reply related
* Re: linux-next: build warning after merge of the cifs tree
From: Jeff Layton @ 2010-09-24 11:13 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Steve French, linux-cifs, linux-next, linux-kernel
In-Reply-To: <20100924134841.161d18d3.sfr@canb.auug.org.au>
[-- Attachment #1: Type: text/plain, Size: 609 bytes --]
On Fri, 24 Sep 2010 13:48:41 +1000
Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi all,
>
> After merging the cifs tree, today's linux-next build (powerpc
> ppc64_defconfig) produced this warning:
>
> fs/cifs/dir.c: In function 'cifs_new_fileinfo':
> fs/cifs/dir.c:140: warning: unused variable 'cifs_sb'
>
> Introduced by commit 9a6124e7e18fa30d8693055e6a4526afb4c3fabc ("cifs:
> have cifs_new_fileinfo take a tcon arg").
>
That's fixed in the next patch in the multiuser mount series. It
probably should have been part of the patch above.
--
Jeff Layton <jlayton@redhat.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply
* Re: [-next] Latest next does not boot on s390x
From: David Howells @ 2010-09-24 11:15 UTC (permalink / raw)
To: Heiko Carstens
Cc: dhowells, Sachin Sant, linux-s390, linux-next@vger.kernel.org,
Martin Schwidefsky
In-Reply-To: <20100924104410.GB2230@osiris.boeblingen.de.ibm.com>
Heiko Carstens <heiko.carstens@de.ibm.com> wrote:
> David, could you please merge it into your "Fix IRQ flag handling naming"
> patch? Thanks!
Done. It'll appear in my GIT tree in a few mins; linux-next tomorrow, I
imagine.
David
^ permalink raw reply
* [PATCH] ubifs: avoid kernel error if ubifs superblock read fails
From: Steffen Sledz @ 2010-09-24 9:54 UTC (permalink / raw)
To: linux-kernel; +Cc: Steffen Sledz
* .get_sb is called on mounts with automatic fs detection too, so this
function should not print an error if it cannot read the superblock
(new behaviour conforms the other fs types)
Signed-off-by: Steffen Sledz <sledz@dresearch.de>
---
fs/ubifs/super.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index cd5900b..e62bb75 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -2049,8 +2049,6 @@ static int ubifs_get_sb(struct file_system_type *fs_type, int flags,
*/
ubi = open_ubi(name, UBI_READONLY);
if (IS_ERR(ubi)) {
- ubifs_err("cannot open \"%s\", error %d",
- name, (int)PTR_ERR(ubi));
return PTR_ERR(ubi);
}
ubi_get_volume_info(ubi, &vi);
--
1.7.1
^ permalink raw reply related
* Re: linux-next: manual merge of the trivial tree with the net tree
From: Jiri Kosina @ 2010-09-24 12:09 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Thomas Weber
In-Reply-To: <20100924121924.8fb5dfb5.sfr@canb.auug.org.au>
On Fri, 24 Sep 2010, Stephen Rothwell wrote:
> Hi Jiri,
>
> Today's linux-next merge of the trivial tree got a conflict in
> drivers/net/bnx2x/bnx2x_link.c between commit
> 62b29a5dd0930e0c956b6740f32d5b3bbaf20136 ("bnx2x: Adjust alignment of
> split PHY functions") from the net tree and commit
> 0b1974de66f9ed44f1423449628f4926bf95b854 ("Fix typo: configuation =>
> configuration") from the trivial tree.
>
> The former removes the text updated by the latter, so I used the former.
>
> Jiri, you might like to drop that hunk from the patch in your tree.
Done now, thanks for reporting.
--
Jiri Kosina
SUSE Labs, Novell Inc.
^ permalink raw reply
* Re: linux-next: build warning from Linus' tree
From: Frederic Weisbecker @ 2010-09-24 12:32 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Arnd Bergmann, linux-next, linux-kernel
In-Reply-To: <20100924140859.038ccf89.sfr@canb.auug.org.au>
On Fri, Sep 24, 2010 at 02:08:59PM +1000, Stephen Rothwell wrote:
> Hi Arnd,
>
> Today's (and lots before) linux-next build (i386 defconfig) produced this
> warning:
>
> fs/autofs4/root.c:31: warning: 'autofs4_root_compat_ioctl' declared 'static' but never defined
>
> Introduced by commit c9243f5bdd6637b2bb7dc254b54d9edf957ef17e
> ("autofs/autofs4: Move compat_ioctl handling into fs").
Yeah, I've seen two patches:
autofs: only declare function when CONFIG_COMPAT is defined
autofs4: fix compilation warning
I'm going to relay them. Thanks!
^ permalink raw reply
* [PATCH] tty: Fix warning left over from TIOCGICOUNT changes
From: Alan Cox @ 2010-09-24 14:49 UTC (permalink / raw)
To: linux-next, greg, linux-serial
Signed-off-by: Alan Cox <alan@linux.intel.com>
---
drivers/usb/serial/ssu100.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/serial/ssu100.c b/drivers/usb/serial/ssu100.c
index 8bd60e3..f5312dd 100644
--- a/drivers/usb/serial/ssu100.c
+++ b/drivers/usb/serial/ssu100.c
@@ -444,8 +444,6 @@ static int ssu100_ioctl(struct tty_struct *tty, struct file *file,
unsigned int cmd, unsigned long arg)
{
struct usb_serial_port *port = tty->driver_data;
- struct ssu100_port_private *priv = usb_get_serial_port_data(port);
- void __user *user_arg = (void __user *)arg;
dbg("%s cmd 0x%04x", __func__, cmd);
--
Elephants that sit in trees Beware craters beneath trees
Really hate Dutch Elm disease Lest they have Dutch Elm disease
In the boughs they sit and sun For from on high there may thump
A branch gives way down they come An elephant in a grump
Grumpily sat in the plants In the bushes sat resigned
Picking splinters from their pants Peeling you from his behind
^ permalink raw reply related
* Re: linux-next: Tree for September 24 (block/blk-throttle)
From: Randy Dunlap @ 2010-09-24 15:54 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linux-next, LKML
In-Reply-To: <20100924145537.bd092bfb.sfr@canb.auug.org.au>
On Fri, 24 Sep 2010 14:55:37 +1000 Stephen Rothwell wrote:
> Hi all,
>
> Changes since 20100923:
on i386:
blk-throttle.c:(.text+0x1abb8): undefined reference to `__udivdi3'
blk-throttle.c:(.text+0x1b1dc): undefined reference to `__udivdi3'
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
^ permalink raw reply
* [PATCH -next] driver core: fix build for CONFIG_BLOCK not enabled
From: Randy Dunlap @ 2010-09-24 21:36 UTC (permalink / raw)
To: Stephen Rothwell, gregkh; +Cc: linux-next, LKML
In-Reply-To: <20100924145537.bd092bfb.sfr@canb.auug.org.au>
From: Randy Dunlap <randy.dunlap@oracle.com>
Fix build errors when CONFIG_BLOCK is not enabled:
drivers/base/core.c: In function 'get_device_parent':
drivers/base/core.c:634: error: 'block_class' undeclared (first use in this function)
drivers/base/core.c: In function 'device_add_class_symlinks':
drivers/base/core.c:723: error: 'block_class' undeclared (first use in this function)
drivers/base/core.c: In function 'device_remove_class_symlinks':
drivers/base/core.c:751: error: 'block_class' undeclared (first use in this function)
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
---
drivers/base/core.c | 6 ++++++
1 file changed, 6 insertions(+)
--- linux-next-20100924.orig/drivers/base/core.c
+++ linux-next-20100924/drivers/base/core.c
@@ -630,12 +630,14 @@ static struct kobject *get_device_parent
struct kobject *parent_kobj;
struct kobject *k;
+#ifdef CONFIG_BLOCK
/* block disks show up in /sys/block */
if (sysfs_deprecated && dev->class == &block_class) {
if (parent && parent->class == &block_class)
return &parent->kobj;
return &block_class.p->class_subsys.kobj;
}
+#endif
/*
* If we have no parent, we live in "virtual".
@@ -719,9 +721,11 @@ static int device_add_class_symlinks(str
goto out_subsys;
}
+#ifdef CONFIG_BLOCK
/* /sys/block has directories and does not need symlinks */
if (sysfs_deprecated && dev->class == &block_class)
return 0;
+#endif
/* link in the class directory pointing to the device */
error = sysfs_create_link(&dev->class->p->class_subsys.kobj,
@@ -748,8 +752,10 @@ static void device_remove_class_symlinks
if (dev->parent && device_is_not_partition(dev))
sysfs_remove_link(&dev->kobj, "device");
sysfs_remove_link(&dev->kobj, "subsystem");
+#ifdef CONFIG_BLOCK
if (sysfs_deprecated && dev->class == &block_class)
return;
+#endif
sysfs_delete_link(&dev->class->p->class_subsys.kobj, &dev->kobj, dev_name(dev));
}
^ permalink raw reply
* kexec load failure introduced by "x86, memblock: Replace e820_/_early string with memblock_"
From: caiqian @ 2010-09-26 3:11 UTC (permalink / raw)
To: Yinghai Lu, H. Peter Anvin; +Cc: linux-next, kexec
In-Reply-To: <1614106428.1991831285470588200.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com>
# /sbin/kexec -p '--command-line=ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet console=tty0 console=ttyS0,115200 crashkernel=128M irqpoll maxcpus=1 reset_devices cgroup_disable=memory ' --initrd=/boot/initrd-2.6.36-rc3+kdump.img /boot/vmlinuz-2.6.36-rc3+
BUG: unable to handle kernel paging request at ffff8800dfffe400
IP: [<ffffffff8113376b>] per_cpu_ptr_to_phys+0x3b/0x120
PGD 1a26063 PUD 1fffc067 PMD 1fffd067 PTE 0
Oops: 0000 [#1] SMP
last sysfs file: /sys/devices/system/cpu/cpu0/crash_notes
CPU 3
Modules linked in: ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 virtio_balloon pcspkr 8139too 8139cp mii snd_intel8x0 snd_ac97_codec ac97_bus snd_seq snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc sg i2c_piix4 i2c_core ext4 mbcache jbd2 floppy sd_mod crc_t10dif virtio_pci virtio_ring virtio pata_acpi ata_generic ata_piix dm_mod [last unloaded: scsi_wait_scan]
Pid: 5671, comm: kexec Not tainted 2.6.35+ #11 /KVM
RIP: 0010:[<ffffffff8113376b>] [<ffffffff8113376b>] per_cpu_ptr_to_phys+0x3b/0x120
RSP: 0018:ffff88064567fe38 EFLAGS: 00010286
RAX: ffff8800df440000 RBX: ffff8800df41d990 RCX: ffff8800df400000
RDX: ffff8800dfff6400 RSI: 0000000000001000 RDI: ffff8800df41d990
RBP: ffff88064567fe58 R08: ffffffff81651f20 R09: ffff8800df40cb38
R10: 0000000000000001 R11: 0000000000000000 R12: ffff88083dcd18e0
R13: ffff88064567ff48 R14: 0000000000001000 R15: 00007f969401b000
FS: 00007f96952e4700(0000) GS:ffff8800df4c0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff8800dfffe400 CR3: 0000000818130000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process kexec (pid: 5671, threadinfo ffff88064567e000, task ffff8808ddba0180)
Stack:
ffff88064567fe68 ffff88083d4f8000 ffff88083dcd18e0 ffff88064567ff48
<0> ffff88064567fe78 ffffffff812ea28b ffff88064567fe78 ffff88083dcd18c0
<0> ffff88064567fe88 ffffffff812e4f0f ffff88064567fee8 ffffffff811a5d11
Call Trace:
[<ffffffff812ea28b>] show_crash_notes+0x2b/0x50
[<ffffffff812e4f0f>] sysdev_show+0x1f/0x30
[<ffffffff811a5d11>] sysfs_read_file+0x111/0x1f0
[<ffffffff8113e7e5>] vfs_read+0xb5/0x1a0
[<ffffffff810b5952>] ? audit_syscall_entry+0x252/0x280
[<ffffffff8113e921>] sys_read+0x51/0x90
[<ffffffff8100b072>] system_call_fastpath+0x16/0x1b
Code: 00 00 48 8b 05 bf 81 e2 00 8b 35 dd 46 9c 00 48 8b 15 0a 47 9c 00 48 89 fb 48 8b 48 18 8b 05 a5 46 9c 00 c1 e0 0c 48 98 48 01 c8 <48> 03 04 f2 48 39 c7 0f 83 a0 00 00 00 8b 05 aa 46 9c 00 48 03
RIP [<ffffffff8113376b>] per_cpu_ptr_to_phys+0x3b/0x120
RSP <ffff88064567fe38>
CR2: ffff8800dfffe400
---[ end trace 1f847047fea7430c ]---
It was discovered that this commit introduced the regression,
commit a9ce6bc15100023b411f8117e53a016d61889800
Author: Yinghai Lu <yinghai@kernel.org>
Date: Wed Aug 25 13:39:17 2010 -0700
x86, memblock: Replace e820_/_early string with memblock_
1.include linux/memblock.h directly. so later could reduce e820.h reference.
2 this patch is done by sed scripts mainly
-v2: use MEMBLOCK_ERROR instead of -1ULL or -1UL
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
index 8406ed7..8e4a165 100644
--- a/arch/x86/include/asm/efi.h
+++ b/arch/x86/include/asm/efi.h
@@ -90,7 +90,7 @@ extern void __iomem *efi_ioremap(unsigned long addr, unsigned long size,
#endif /* CONFIG_X86_32 */
extern int add_efi_memmap;
-extern void efi_reserve_early(void);
+extern void efi_memblock_x86_reserve_range(void);
extern void efi_call_phys_prelog(void);
extern void efi_call_phys_epilog(void);
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index fcc3c61..d829e75 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -7,6 +7,7 @@
#include <linux/acpi.h>
#include <linux/bootmem.h>
+#include <linux/memblock.h>
#include <linux/dmi.h>
#include <linux/cpumask.h>
#include <asm/segment.h>
@@ -125,7 +126,7 @@ void acpi_restore_state_mem(void)
*/
void __init acpi_reserve_wakeup_memory(void)
{
- unsigned long mem;
+ phys_addr_t mem;
if ((&wakeup_code_end - &wakeup_code_start) > WAKEUP_SIZE) {
printk(KERN_ERR
@@ -133,15 +134,15 @@ void __init acpi_reserve_wakeup_memory(void)
return;
}
- mem = find_e820_area(0, 1<<20, WAKEUP_SIZE, PAGE_SIZE);
+ mem = memblock_find_in_range(0, 1<<20, WAKEUP_SIZE, PAGE_SIZE);
- if (mem == -1L) {
+ if (mem == MEMBLOCK_ERROR) {
printk(KERN_ERR "ACPI: Cannot allocate lowmem, S3 disabled.\n");
return;
}
acpi_realmode = (unsigned long) phys_to_virt(mem);
acpi_wakeup_address = mem;
- reserve_early(mem, mem + WAKEUP_SIZE, "ACPI WAKEUP");
+ memblock_x86_reserve_range(mem, mem + WAKEUP_SIZE, "ACPI WAKEUP");
}
diff --git a/arch/x86/kernel/apic/numaq_32.c b/arch/x86/kernel/apic/numaq_32.c
index 3e28401..960f26a 100644
--- a/arch/x86/kernel/apic/numaq_32.c
+++ b/arch/x86/kernel/apic/numaq_32.c
@@ -26,6 +26,7 @@
#include <linux/nodemask.h>
#include <linux/topology.h>
#include <linux/bootmem.h>
+#include <linux/memblock.h>
#include <linux/threads.h>
#include <linux/cpumask.h>
#include <linux/kernel.h>
@@ -88,7 +89,7 @@ static inline void numaq_register_node(int node, struct sys_cfg_data *scd)
node_end_pfn[node] =
MB_TO_PAGES(eq->hi_shrd_mem_start + eq->hi_shrd_mem_size);
- e820_register_active_regions(node, node_start_pfn[node],
+ memblock_x86_register_active_regions(node, node_start_pfn[node],
node_end_pfn[node]);
memory_present(node, node_start_pfn[node], node_end_pfn[node]);
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c
index c2fa9b8..0fe27d7 100644
--- a/arch/x86/kernel/efi.c
+++ b/arch/x86/kernel/efi.c
@@ -30,6 +30,7 @@
#include <linux/init.h>
#include <linux/efi.h>
#include <linux/bootmem.h>
+#include <linux/memblock.h>
#include <linux/spinlock.h>
#include <linux/uaccess.h>
#include <linux/time.h>
@@ -275,7 +276,7 @@ static void __init do_add_efi_memmap(void)
sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
}
-void __init efi_reserve_early(void)
+void __init efi_memblock_x86_reserve_range(void)
{
unsigned long pmap;
@@ -290,7 +291,7 @@ void __init efi_reserve_early(void)
boot_params.efi_info.efi_memdesc_size;
memmap.desc_version = boot_params.efi_info.efi_memdesc_version;
memmap.desc_size = boot_params.efi_info.efi_memdesc_size;
- reserve_early(pmap, pmap + memmap.nr_map * memmap.desc_size,
+ memblock_x86_reserve_range(pmap, pmap + memmap.nr_map * memmap.desc_size,
"EFI memmap");
}
diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c
index da60aa8..74e4cf6 100644
--- a/arch/x86/kernel/head32.c
+++ b/arch/x86/kernel/head32.c
@@ -42,7 +42,7 @@ void __init i386_start_kernel(void)
memblock_x86_reserve_range(PAGE_SIZE, PAGE_SIZE + PAGE_SIZE, "EX TRAMPOLINE");
#endif
- reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
+ memblock_x86_reserve_range(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
#ifdef CONFIG_BLK_DEV_INITRD
/* Reserve INITRD */
@@ -51,7 +51,7 @@ void __init i386_start_kernel(void)
u64 ramdisk_image = boot_params.hdr.ramdisk_image;
u64 ramdisk_size = boot_params.hdr.ramdisk_size;
u64 ramdisk_end = PAGE_ALIGN(ramdisk_image + ramdisk_size);
- reserve_early(ramdisk_image, ramdisk_end, "RAMDISK");
+ memblock_x86_reserve_range(ramdisk_image, ramdisk_end, "RAMDISK");
}
#endif
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 8ee930f..97adf98 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -101,7 +101,7 @@ void __init x86_64_start_reservations(char *real_mode_data)
memblock_init();
- reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
+ memblock_x86_reserve_range(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
#ifdef CONFIG_BLK_DEV_INITRD
/* Reserve INITRD */
@@ -110,7 +110,7 @@ void __init x86_64_start_reservations(char *real_mode_data)
unsigned long ramdisk_image = boot_params.hdr.ramdisk_image;
unsigned long ramdisk_size = boot_params.hdr.ramdisk_size;
unsigned long ramdisk_end = PAGE_ALIGN(ramdisk_image + ramdisk_size);
- reserve_early(ramdisk_image, ramdisk_end, "RAMDISK");
+ memblock_x86_reserve_range(ramdisk_image, ramdisk_end, "RAMDISK");
}
#endif
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index bbe0aaf..a4f0173 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -302,7 +302,7 @@ static inline void init_gbpages(void)
static void __init reserve_brk(void)
{
if (_brk_end > _brk_start)
- reserve_early(__pa(_brk_start), __pa(_brk_end), "BRK");
+ memblock_x86_reserve_range(__pa(_brk_start), __pa(_brk_end), "BRK");
/* Mark brk area as locked down and no longer taking any
new allocations */
@@ -324,17 +324,16 @@ static void __init relocate_initrd(void)
char *p, *q;
/* We need to move the initrd down into lowmem */
- ramdisk_here = find_e820_area(0, end_of_lowmem, area_size,
+ ramdisk_here = memblock_find_in_range(0, end_of_lowmem, area_size,
PAGE_SIZE);
- if (ramdisk_here == -1ULL)
+ if (ramdisk_here == MEMBLOCK_ERROR)
panic("Cannot find place for new RAMDISK of size %lld\n",
ramdisk_size);
/* Note: this includes all the lowmem currently occupied by
the initrd, we rely on that fact to keep the data intact. */
- reserve_early(ramdisk_here, ramdisk_here + area_size,
- "NEW RAMDISK");
+ memblock_x86_reserve_range(ramdisk_here, ramdisk_here + area_size, "NEW RAMDISK");
initrd_start = ramdisk_here + PAGE_OFFSET;
initrd_end = initrd_start + ramdisk_size;
printk(KERN_INFO "Allocated new RAMDISK: %08llx - %08llx\n",
@@ -390,7 +389,7 @@ static void __init reserve_initrd(void)
initrd_start = 0;
if (ramdisk_size >= (end_of_lowmem>>1)) {
- free_early(ramdisk_image, ramdisk_end);
+ memblock_x86_free_range(ramdisk_image, ramdisk_end);
printk(KERN_ERR "initrd too large to handle, "
"disabling initrd\n");
return;
@@ -413,7 +412,7 @@ static void __init reserve_initrd(void)
relocate_initrd();
- free_early(ramdisk_image, ramdisk_end);
+ memblock_x86_free_range(ramdisk_image, ramdisk_end);
}
#else
static void __init reserve_initrd(void)
@@ -469,7 +468,7 @@ static void __init e820_reserve_setup_data(void)
e820_print_map("reserve setup_data");
}
-static void __init reserve_early_setup_data(void)
+static void __init memblock_x86_reserve_range_setup_data(void)
{
struct setup_data *data;
u64 pa_data;
@@ -481,7 +480,7 @@ static void __init reserve_early_setup_data(void)
while (pa_data) {
data = early_memremap(pa_data, sizeof(*data));
sprintf(buf, "setup data %x", data->type);
- reserve_early(pa_data, pa_data+sizeof(*data)+data->len, buf);
+ memblock_x86_reserve_range(pa_data, pa_data+sizeof(*data)+data->len, buf);
pa_data = data->next;
early_iounmap(data, sizeof(*data));
}
@@ -519,23 +518,23 @@ static void __init reserve_crashkernel(void)
if (crash_base <= 0) {
const unsigned long long alignment = 16<<20; /* 16M */
- crash_base = find_e820_area(alignment, ULONG_MAX, crash_size,
+ crash_base = memblock_find_in_range(alignment, ULONG_MAX, crash_size,
alignment);
- if (crash_base == -1ULL) {
+ if (crash_base == MEMBLOCK_ERROR) {
pr_info("crashkernel reservation failed - No suitable area found.\n");
return;
}
} else {
unsigned long long start;
- start = find_e820_area(crash_base, ULONG_MAX, crash_size,
+ start = memblock_find_in_range(crash_base, ULONG_MAX, crash_size,
1<<20);
if (start != crash_base) {
pr_info("crashkernel reservation failed - memory is in use.\n");
return;
}
}
- reserve_early(crash_base, crash_base + crash_size, "CRASH KERNEL");
+ memblock_x86_reserve_range(crash_base, crash_base + crash_size, "CRASH KERNEL");
printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "
"for crashkernel (System RAM: %ldMB)\n",
@@ -786,7 +785,7 @@ void __init setup_arch(char **cmdline_p)
#endif
4)) {
efi_enabled = 1;
- efi_reserve_early();
+ efi_memblock_x86_reserve_range();
}
#endif
@@ -846,7 +845,7 @@ void __init setup_arch(char **cmdline_p)
vmi_activate();
/* after early param, so could get panic from serial */
- reserve_early_setup_data();
+ memblock_x86_reserve_range_setup_data();
if (acpi_mps_check()) {
#ifdef CONFIG_X86_LOCAL_APIC
diff --git a/arch/x86/kernel/trampoline.c b/arch/x86/kernel/trampoline.c
index c652ef6..7c2102c 100644
--- a/arch/x86/kernel/trampoline.c
+++ b/arch/x86/kernel/trampoline.c
@@ -1,7 +1,7 @@
#include <linux/io.h>
+#include <linux/memblock.h>
#include <asm/trampoline.h>
-#include <asm/e820.h>
#if defined(CONFIG_X86_64) && defined(CONFIG_ACPI_SLEEP)
#define __trampinit
@@ -16,15 +16,15 @@ unsigned char *__trampinitdata trampoline_base;
void __init reserve_trampoline_memory(void)
{
- unsigned long mem;
+ phys_addr_t mem;
/* Has to be in very low memory so we can execute real-mode AP code. */
- mem = find_e820_area(0, 1<<20, TRAMPOLINE_SIZE, PAGE_SIZE);
- if (mem == -1L)
+ mem = memblock_find_in_range(0, 1<<20, TRAMPOLINE_SIZE, PAGE_SIZE);
+ if (mem == MEMBLOCK_ERROR)
panic("Cannot allocate trampoline\n");
trampoline_base = __va(mem);
- reserve_early(mem, mem + TRAMPOLINE_SIZE, "TRAMPOLINE");
+ memblock_x86_reserve_range(mem, mem + TRAMPOLINE_SIZE, "TRAMPOLINE");
}
/*
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index b278535..c0e28a1 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -2,6 +2,7 @@
#include <linux/initrd.h>
#include <linux/ioport.h>
#include <linux/swap.h>
+#include <linux/memblock.h>
#include <asm/cacheflush.h>
#include <asm/e820.h>
@@ -33,6 +34,7 @@ static void __init find_early_table_space(unsigned long end, int use_pse,
int use_gbpages)
{
unsigned long puds, pmds, ptes, tables, start;
+ phys_addr_t base;
puds = (end + PUD_SIZE - 1) >> PUD_SHIFT;
tables = roundup(puds * sizeof(pud_t), PAGE_SIZE);
@@ -75,12 +77,12 @@ static void __init find_early_table_space(unsigned long end, int use_pse,
#else
start = 0x8000;
#endif
- e820_table_start = find_e820_area(start, max_pfn_mapped<<PAGE_SHIFT,
+ base = memblock_find_in_range(start, max_pfn_mapped<<PAGE_SHIFT,
tables, PAGE_SIZE);
- if (e820_table_start == -1UL)
+ if (base == MEMBLOCK_ERROR)
panic("Cannot find space for the kernel page tables");
- e820_table_start >>= PAGE_SHIFT;
+ e820_table_start = base >> PAGE_SHIFT;
e820_table_end = e820_table_start;
e820_table_top = e820_table_start + (tables >> PAGE_SHIFT);
@@ -299,7 +301,7 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
__flush_tlb_all();
if (!after_bootmem && e820_table_end > e820_table_start)
- reserve_early(e820_table_start << PAGE_SHIFT,
+ memblock_x86_reserve_range(e820_table_start << PAGE_SHIFT,
e820_table_end << PAGE_SHIFT, "PGTABLE");
if (!after_bootmem)
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 90e0545..63b09ba 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -25,6 +25,7 @@
#include <linux/pfn.h>
#include <linux/poison.h>
#include <linux/bootmem.h>
+#include <linux/memblock.h>
#include <linux/proc_fs.h>
#include <linux/memory_hotplug.h>
#include <linux/initrd.h>
@@ -712,14 +713,14 @@ void __init initmem_init(unsigned long start_pfn, unsigned long end_pfn,
highstart_pfn = highend_pfn = max_pfn;
if (max_pfn > max_low_pfn)
highstart_pfn = max_low_pfn;
- e820_register_active_regions(0, 0, highend_pfn);
+ memblock_x86_register_active_regions(0, 0, highend_pfn);
sparse_memory_present_with_active_regions(0);
printk(KERN_NOTICE "%ldMB HIGHMEM available.\n",
pages_to_mb(highend_pfn - highstart_pfn));
num_physpages = highend_pfn;
high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1;
#else
- e820_register_active_regions(0, 0, max_low_pfn);
+ memblock_x86_register_active_regions(0, 0, max_low_pfn);
sparse_memory_present_with_active_regions(0);
num_physpages = max_low_pfn;
high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1;
@@ -776,16 +777,16 @@ void __init setup_bootmem_allocator(void)
{
#ifndef CONFIG_NO_BOOTMEM
int nodeid;
- unsigned long bootmap_size, bootmap;
+ phys_addr_t bootmap_size, bootmap;
/*
* Initialize the boot-time allocator (with low memory only):
*/
bootmap_size = bootmem_bootmap_pages(max_low_pfn)<<PAGE_SHIFT;
- bootmap = find_e820_area(0, max_pfn_mapped<<PAGE_SHIFT, bootmap_size,
+ bootmap = memblock_find_in_range(0, max_pfn_mapped<<PAGE_SHIFT, bootmap_size,
PAGE_SIZE);
- if (bootmap == -1L)
+ if (bootmap == MEMBLOCK_ERROR)
panic("Cannot find bootmem map of size %ld\n", bootmap_size);
- reserve_early(bootmap, bootmap + bootmap_size, "BOOTMAP");
+ memblock_x86_reserve_range(bootmap, bootmap + bootmap_size, "BOOTMAP");
#endif
printk(KERN_INFO " mapped low ram: 0 - %08lx\n",
@@ -1069,3 +1070,4 @@ void mark_rodata_ro(void)
#endif
}
#endif
+
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 634fa08..592b236 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -21,6 +21,7 @@
#include <linux/initrd.h>
#include <linux/pagemap.h>
#include <linux/bootmem.h>
+#include <linux/memblock.h>
#include <linux/proc_fs.h>
#include <linux/pci.h>
#include <linux/pfn.h>
@@ -577,18 +578,18 @@ void __init initmem_init(unsigned long start_pfn, unsigned long end_pfn,
unsigned long bootmap_size, bootmap;
bootmap_size = bootmem_bootmap_pages(end_pfn)<<PAGE_SHIFT;
- bootmap = find_e820_area(0, end_pfn<<PAGE_SHIFT, bootmap_size,
+ bootmap = memblock_find_in_range(0, end_pfn<<PAGE_SHIFT, bootmap_size,
PAGE_SIZE);
- if (bootmap == -1L)
+ if (bootmap == MEMBLOCK_ERROR)
panic("Cannot find bootmem map of size %ld\n", bootmap_size);
- reserve_early(bootmap, bootmap + bootmap_size, "BOOTMAP");
+ memblock_x86_reserve_range(bootmap, bootmap + bootmap_size, "BOOTMAP");
/* don't touch min_low_pfn */
bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap >> PAGE_SHIFT,
0, end_pfn);
- e820_register_active_regions(0, start_pfn, end_pfn);
+ memblock_x86_register_active_regions(0, start_pfn, end_pfn);
free_bootmem_with_active_regions(0, end_pfn);
#else
- e820_register_active_regions(0, start_pfn, end_pfn);
+ memblock_x86_register_active_regions(0, start_pfn, end_pfn);
#endif
}
#endif
diff --git a/arch/x86/mm/k8topology_64.c b/arch/x86/mm/k8topology_64.c
index 970ed57..966de93 100644
--- a/arch/x86/mm/k8topology_64.c
+++ b/arch/x86/mm/k8topology_64.c
@@ -11,6 +11,8 @@
#include <linux/string.h>
#include <linux/module.h>
#include <linux/nodemask.h>
+#include <linux/memblock.h>
+
#include <asm/io.h>
#include <linux/pci_ids.h>
#include <linux/acpi.h>
@@ -222,7 +224,7 @@ int __init k8_scan_nodes(void)
for_each_node_mask(i, node_possible_map) {
int j;
- e820_register_active_regions(i,
+ memblock_x86_register_active_regions(i,
nodes[i].start >> PAGE_SHIFT,
nodes[i].end >> PAGE_SHIFT);
for (j = apicid_base; j < cores + apicid_base; j++)
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 18d244f..92faf3a 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -6,8 +6,7 @@
#include <linux/smp.h>
#include <linux/init.h>
#include <linux/pfn.h>
-
-#include <asm/e820.h>
+#include <linux/memblock.h>
static u64 patterns[] __initdata = {
0,
@@ -35,7 +34,7 @@ static void __init reserve_bad_mem(u64 pattern, u64 start_bad, u64 end_bad)
(unsigned long long) pattern,
(unsigned long long) start_bad,
(unsigned long long) end_bad);
- reserve_early(start_bad, end_bad, "BAD RAM");
+ memblock_x86_reserve_range(start_bad, end_bad, "BAD RAM");
}
static void __init memtest(u64 pattern, u64 start_phys, u64 size)
@@ -74,7 +73,7 @@ static void __init do_one_pass(u64 pattern, u64 start, u64 end)
u64 size = 0;
while (start < end) {
- start = find_e820_area_size(start, &size, 1);
+ start = memblock_x86_find_in_range_size(start, &size, 1);
/* done ? */
if (start >= end)
diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c
index 809baaa..ddf9730 100644
--- a/arch/x86/mm/numa_32.c
+++ b/arch/x86/mm/numa_32.c
@@ -24,6 +24,7 @@
#include <linux/mm.h>
#include <linux/bootmem.h>
+#include <linux/memblock.h>
#include <linux/mmzone.h>
#include <linux/highmem.h>
#include <linux/initrd.h>
@@ -120,7 +121,7 @@ int __init get_memcfg_numa_flat(void)
node_start_pfn[0] = 0;
node_end_pfn[0] = max_pfn;
- e820_register_active_regions(0, 0, max_pfn);
+ memblock_x86_register_active_regions(0, 0, max_pfn);
memory_present(0, 0, max_pfn);
node_remap_size[0] = node_memmap_size_bytes(0, 0, max_pfn);
@@ -161,14 +162,14 @@ static void __init allocate_pgdat(int nid)
NODE_DATA(nid) = (pg_data_t *)node_remap_start_vaddr[nid];
else {
unsigned long pgdat_phys;
- pgdat_phys = find_e820_area(min_low_pfn<<PAGE_SHIFT,
+ pgdat_phys = memblock_find_in_range(min_low_pfn<<PAGE_SHIFT,
max_pfn_mapped<<PAGE_SHIFT,
sizeof(pg_data_t),
PAGE_SIZE);
NODE_DATA(nid) = (pg_data_t *)(pfn_to_kaddr(pgdat_phys>>PAGE_SHIFT));
memset(buf, 0, sizeof(buf));
sprintf(buf, "NODE_DATA %d", nid);
- reserve_early(pgdat_phys, pgdat_phys + sizeof(pg_data_t), buf);
+ memblock_x86_reserve_range(pgdat_phys, pgdat_phys + sizeof(pg_data_t), buf);
}
printk(KERN_DEBUG "allocate_pgdat: node %d NODE_DATA %08lx\n",
nid, (unsigned long)NODE_DATA(nid));
@@ -291,15 +292,15 @@ static __init unsigned long calculate_numa_remap_pages(void)
PTRS_PER_PTE);
node_kva_target <<= PAGE_SHIFT;
do {
- node_kva_final = find_e820_area(node_kva_target,
+ node_kva_final = memblock_find_in_range(node_kva_target,
((u64)node_end_pfn[nid])<<PAGE_SHIFT,
((u64)size)<<PAGE_SHIFT,
LARGE_PAGE_BYTES);
node_kva_target -= LARGE_PAGE_BYTES;
- } while (node_kva_final == -1ULL &&
+ } while (node_kva_final == MEMBLOCK_ERROR &&
(node_kva_target>>PAGE_SHIFT) > (node_start_pfn[nid]));
- if (node_kva_final == -1ULL)
+ if (node_kva_final == MEMBLOCK_ERROR)
panic("Can not get kva ram\n");
node_remap_size[nid] = size;
@@ -318,9 +319,9 @@ static __init unsigned long calculate_numa_remap_pages(void)
* but we could have some hole in high memory, and it will only
* check page_is_ram(pfn) && !page_is_reserved_early(pfn) to decide
* to use it as free.
- * So reserve_early here, hope we don't run out of that array
+ * So memblock_x86_reserve_range here, hope we don't run out of that array
*/
- reserve_early(node_kva_final,
+ memblock_x86_reserve_range(node_kva_final,
node_kva_final+(((u64)size)<<PAGE_SHIFT),
"KVA RAM");
@@ -367,14 +368,14 @@ void __init initmem_init(unsigned long start_pfn, unsigned long end_pfn,
kva_target_pfn = round_down(max_low_pfn - kva_pages, PTRS_PER_PTE);
do {
- kva_start_pfn = find_e820_area(kva_target_pfn<<PAGE_SHIFT,
+ kva_start_pfn = memblock_find_in_range(kva_target_pfn<<PAGE_SHIFT,
max_low_pfn<<PAGE_SHIFT,
kva_pages<<PAGE_SHIFT,
PTRS_PER_PTE<<PAGE_SHIFT) >> PAGE_SHIFT;
kva_target_pfn -= PTRS_PER_PTE;
- } while (kva_start_pfn == -1UL && kva_target_pfn > min_low_pfn);
+ } while (kva_start_pfn == MEMBLOCK_ERROR && kva_target_pfn > min_low_pfn);
- if (kva_start_pfn == -1UL)
+ if (kva_start_pfn == MEMBLOCK_ERROR)
panic("Can not get kva space\n");
printk(KERN_INFO "kva_start_pfn ~ %lx max_low_pfn ~ %lx\n",
@@ -382,7 +383,7 @@ void __init initmem_init(unsigned long start_pfn, unsigned long end_pfn,
printk(KERN_INFO "max_pfn = %lx\n", max_pfn);
/* avoid clash with initrd */
- reserve_early(kva_start_pfn<<PAGE_SHIFT,
+ memblock_x86_reserve_range(kva_start_pfn<<PAGE_SHIFT,
(kva_start_pfn + kva_pages)<<PAGE_SHIFT,
"KVA PG");
#ifdef CONFIG_HIGHMEM
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index 3d54f9f..984b1ff 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -87,16 +87,16 @@ static int __init allocate_cachealigned_memnodemap(void)
addr = 0x8000;
nodemap_size = roundup(sizeof(s16) * memnodemapsize, L1_CACHE_BYTES);
- nodemap_addr = find_e820_area(addr, max_pfn<<PAGE_SHIFT,
+ nodemap_addr = memblock_find_in_range(addr, max_pfn<<PAGE_SHIFT,
nodemap_size, L1_CACHE_BYTES);
- if (nodemap_addr == -1UL) {
+ if (nodemap_addr == MEMBLOCK_ERROR) {
printk(KERN_ERR
"NUMA: Unable to allocate Memory to Node hash map\n");
nodemap_addr = nodemap_size = 0;
return -1;
}
memnodemap = phys_to_virt(nodemap_addr);
- reserve_early(nodemap_addr, nodemap_addr + nodemap_size, "MEMNODEMAP");
+ memblock_x86_reserve_range(nodemap_addr, nodemap_addr + nodemap_size, "MEMNODEMAP");
printk(KERN_DEBUG "NUMA: Allocated memnodemap from %lx - %lx\n",
nodemap_addr, nodemap_addr + nodemap_size);
@@ -227,7 +227,7 @@ setup_node_bootmem(int nodeid, unsigned long start, unsigned long end)
if (node_data[nodeid] == NULL)
return;
nodedata_phys = __pa(node_data[nodeid]);
- reserve_early(nodedata_phys, nodedata_phys + pgdat_size, "NODE_DATA");
+ memblock_x86_reserve_range(nodedata_phys, nodedata_phys + pgdat_size, "NODE_DATA");
printk(KERN_INFO " NODE_DATA [%016lx - %016lx]\n", nodedata_phys,
nodedata_phys + pgdat_size - 1);
nid = phys_to_nid(nodedata_phys);
@@ -246,7 +246,7 @@ setup_node_bootmem(int nodeid, unsigned long start, unsigned long end)
* Find a place for the bootmem map
* nodedata_phys could be on other nodes by alloc_bootmem,
* so need to sure bootmap_start not to be small, otherwise
- * early_node_mem will get that with find_e820_area instead
+ * early_node_mem will get that with memblock_find_in_range instead
* of alloc_bootmem, that could clash with reserved range
*/
bootmap_pages = bootmem_bootmap_pages(last_pfn - start_pfn);
@@ -258,12 +258,12 @@ setup_node_bootmem(int nodeid, unsigned long start, unsigned long end)
bootmap = early_node_mem(nodeid, bootmap_start, end,
bootmap_pages<<PAGE_SHIFT, PAGE_SIZE);
if (bootmap == NULL) {
- free_early(nodedata_phys, nodedata_phys + pgdat_size);
+ memblock_x86_free_range(nodedata_phys, nodedata_phys + pgdat_size);
node_data[nodeid] = NULL;
return;
}
bootmap_start = __pa(bootmap);
- reserve_early(bootmap_start, bootmap_start+(bootmap_pages<<PAGE_SHIFT),
+ memblock_x86_reserve_range(bootmap_start, bootmap_start+(bootmap_pages<<PAGE_SHIFT),
"BOOTMAP");
bootmap_size = init_bootmem_node(NODE_DATA(nodeid),
@@ -417,7 +417,7 @@ static int __init split_nodes_interleave(u64 addr, u64 max_addr,
nr_nodes = MAX_NUMNODES;
}
- size = (max_addr - addr - e820_hole_size(addr, max_addr)) / nr_nodes;
+ size = (max_addr - addr - memblock_x86_hole_size(addr, max_addr)) / nr_nodes;
/*
* Calculate the number of big nodes that can be allocated as a result
* of consolidating the remainder.
@@ -453,7 +453,7 @@ static int __init split_nodes_interleave(u64 addr, u64 max_addr,
* non-reserved memory is less than the per-node size.
*/
while (end - physnodes[i].start -
- e820_hole_size(physnodes[i].start, end) < size) {
+ memblock_x86_hole_size(physnodes[i].start, end) < size) {
end += FAKE_NODE_MIN_SIZE;
if (end > physnodes[i].end) {
end = physnodes[i].end;
@@ -467,7 +467,7 @@ static int __init split_nodes_interleave(u64 addr, u64 max_addr,
* this one must extend to the boundary.
*/
if (end < dma32_end && dma32_end - end -
- e820_hole_size(end, dma32_end) < FAKE_NODE_MIN_SIZE)
+ memblock_x86_hole_size(end, dma32_end) < FAKE_NODE_MIN_SIZE)
end = dma32_end;
/*
@@ -476,7 +476,7 @@ static int __init split_nodes_interleave(u64 addr, u64 max_addr,
* physical node.
*/
if (physnodes[i].end - end -
- e820_hole_size(end, physnodes[i].end) < size)
+ memblock_x86_hole_size(end, physnodes[i].end) < size)
end = physnodes[i].end;
/*
@@ -504,7 +504,7 @@ static u64 __init find_end_of_node(u64 start, u64 max_addr, u64 size)
{
u64 end = start + size;
- while (end - start - e820_hole_size(start, end) < size) {
+ while (end - start - memblock_x86_hole_size(start, end) < size) {
end += FAKE_NODE_MIN_SIZE;
if (end > max_addr) {
end = max_addr;
@@ -533,7 +533,7 @@ static int __init split_nodes_size_interleave(u64 addr, u64 max_addr, u64 size)
* creates a uniform distribution of node sizes across the entire
* machine (but not necessarily over physical nodes).
*/
- min_size = (max_addr - addr - e820_hole_size(addr, max_addr)) /
+ min_size = (max_addr - addr - memblock_x86_hole_size(addr, max_addr)) /
MAX_NUMNODES;
min_size = max(min_size, FAKE_NODE_MIN_SIZE);
if ((min_size & FAKE_NODE_MIN_HASH_MASK) < min_size)
@@ -566,7 +566,7 @@ static int __init split_nodes_size_interleave(u64 addr, u64 max_addr, u64 size)
* this one must extend to the boundary.
*/
if (end < dma32_end && dma32_end - end -
- e820_hole_size(end, dma32_end) < FAKE_NODE_MIN_SIZE)
+ memblock_x86_hole_size(end, dma32_end) < FAKE_NODE_MIN_SIZE)
end = dma32_end;
/*
@@ -575,7 +575,7 @@ static int __init split_nodes_size_interleave(u64 addr, u64 max_addr, u64 size)
* physical node.
*/
if (physnodes[i].end - end -
- e820_hole_size(end, physnodes[i].end) < size)
+ memblock_x86_hole_size(end, physnodes[i].end) < size)
end = physnodes[i].end;
/*
@@ -639,7 +639,7 @@ static int __init numa_emulation(unsigned long start_pfn,
*/
remove_all_active_ranges();
for_each_node_mask(i, node_possible_map) {
- e820_register_active_regions(i, nodes[i].start >> PAGE_SHIFT,
+ memblock_x86_register_active_regions(i, nodes[i].start >> PAGE_SHIFT,
nodes[i].end >> PAGE_SHIFT);
setup_node_bootmem(i, nodes[i].start, nodes[i].end);
}
@@ -692,7 +692,7 @@ void __init initmem_init(unsigned long start_pfn, unsigned long last_pfn,
node_set(0, node_possible_map);
for (i = 0; i < nr_cpu_ids; i++)
numa_set_node(i, 0);
- e820_register_active_regions(0, start_pfn, last_pfn);
+ memblock_x86_register_active_regions(0, start_pfn, last_pfn);
setup_node_bootmem(0, start_pfn << PAGE_SHIFT, last_pfn << PAGE_SHIFT);
}
diff --git a/arch/x86/mm/srat_32.c b/arch/x86/mm/srat_32.c
index 9324f13..a17dffd 100644
--- a/arch/x86/mm/srat_32.c
+++ b/arch/x86/mm/srat_32.c
@@ -25,6 +25,7 @@
*/
#include <linux/mm.h>
#include <linux/bootmem.h>
+#include <linux/memblock.h>
#include <linux/mmzone.h>
#include <linux/acpi.h>
#include <linux/nodemask.h>
@@ -264,7 +265,7 @@ int __init get_memcfg_from_srat(void)
if (node_read_chunk(chunk->nid, chunk))
continue;
- e820_register_active_regions(chunk->nid, chunk->start_pfn,
+ memblock_x86_register_active_regions(chunk->nid, chunk->start_pfn,
min(chunk->end_pfn, max_pfn));
}
/* for out of order entries in SRAT */
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index f9897f7..7f44eb6 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -16,6 +16,7 @@
#include <linux/module.h>
#include <linux/topology.h>
#include <linux/bootmem.h>
+#include <linux/memblock.h>
#include <linux/mm.h>
#include <asm/proto.h>
#include <asm/numa.h>
@@ -98,15 +99,15 @@ void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
unsigned long phys;
length = slit->header.length;
- phys = find_e820_area(0, max_pfn_mapped<<PAGE_SHIFT, length,
+ phys = memblock_find_in_range(0, max_pfn_mapped<<PAGE_SHIFT, length,
PAGE_SIZE);
- if (phys == -1L)
+ if (phys == MEMBLOCK_ERROR)
panic(" Can not save slit!\n");
acpi_slit = __va(phys);
memcpy(acpi_slit, slit, length);
- reserve_early(phys, phys + length, "ACPI SLIT");
+ memblock_x86_reserve_range(phys, phys + length, "ACPI SLIT");
}
/* Callback for Proximity Domain -> x2APIC mapping */
@@ -324,7 +325,7 @@ static int __init nodes_cover_memory(const struct bootnode *nodes)
pxmram = 0;
}
- e820ram = max_pfn - (e820_hole_size(0, max_pfn<<PAGE_SHIFT)>>PAGE_SHIFT);
+ e820ram = max_pfn - (memblock_x86_hole_size(0, max_pfn<<PAGE_SHIFT)>>PAGE_SHIFT);
/* We seem to lose 3 pages somewhere. Allow 1M of slack. */
if ((long)(e820ram - pxmram) >= (1<<(20 - PAGE_SHIFT))) {
printk(KERN_ERR
@@ -421,7 +422,7 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
}
for_each_node_mask(i, nodes_parsed)
- e820_register_active_regions(i, nodes[i].start >> PAGE_SHIFT,
+ memblock_x86_register_active_regions(i, nodes[i].start >> PAGE_SHIFT,
nodes[i].end >> PAGE_SHIFT);
/* for out of order entries in SRAT */
sort_node_map();
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 914f046..b511f19 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -44,6 +44,7 @@
#include <linux/bug.h>
#include <linux/module.h>
#include <linux/gfp.h>
+#include <linux/memblock.h>
#include <asm/pgtable.h>
#include <asm/tlbflush.h>
@@ -1735,7 +1736,7 @@ __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
__xen_write_cr3(true, __pa(pgd));
xen_mc_issue(PARAVIRT_LAZY_CPU);
- reserve_early(__pa(xen_start_info->pt_base),
+ memblock_x86_reserve_range(__pa(xen_start_info->pt_base),
__pa(xen_start_info->pt_base +
xen_start_info->nr_pt_frames * PAGE_SIZE),
"XEN PAGETABLES");
@@ -1773,7 +1774,7 @@ __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(swapper_pg_dir)));
- reserve_early(__pa(xen_start_info->pt_base),
+ memblock_x86_reserve_range(__pa(xen_start_info->pt_base),
__pa(xen_start_info->pt_base +
xen_start_info->nr_pt_frames * PAGE_SIZE),
"XEN PAGETABLES");
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index ad0047f..2ac8f29 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -8,6 +8,7 @@
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/pm.h>
+#include <linux/memblock.h>
#include <asm/elf.h>
#include <asm/vdso.h>
@@ -61,7 +62,7 @@ char * __init xen_memory_setup(void)
* - xen_start_info
* See comment above "struct start_info" in <xen/interface/xen.h>
*/
- reserve_early(__pa(xen_start_info->mfn_list),
+ memblock_x86_reserve_range(__pa(xen_start_info->mfn_list),
__pa(xen_start_info->pt_base),
"XEN START INFO");
diff --git a/mm/bootmem.c b/mm/bootmem.c
index fda01a2..13b0caa 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -436,7 +436,7 @@ void __init free_bootmem_node(pg_data_t *pgdat, unsigned long physaddr,
{
#ifdef CONFIG_NO_BOOTMEM
kmemleak_free_part(__va(physaddr), size);
- free_early(physaddr, physaddr + size);
+ memblock_x86_free_range(physaddr, physaddr + size);
#else
unsigned long start, end;
@@ -462,7 +462,7 @@ void __init free_bootmem(unsigned long addr, unsigned long size)
{
#ifdef CONFIG_NO_BOOTMEM
kmemleak_free_part(__va(addr), size);
- free_early(addr, addr + size);
+ memblock_x86_free_range(addr, addr + size);
#else
unsigned long start, end;
^ permalink raw reply related
* Re: kexec load failure introduced by "x86, memblock: Replace e820_/_early string with memblock_"
From: Yinghai Lu @ 2010-09-26 6:44 UTC (permalink / raw)
To: caiqian-H+wXaHxf7aLQT0dZR+AlfA; +Cc: linux-next, kexec, H. Peter Anvin
In-Reply-To: <1041998395.1991851285470691262.JavaMail.root-k5qu2F3t005+R5eDjrG6zsCp5Q1pQRjfhaY/URYTgi6ny3qCrzbmXA@public.gmane.org>
On 09/25/2010 08:11 PM, caiqian-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org wrote:
> # /sbin/kexec -p '--command-line=ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet console=tty0 console=ttyS0,115200 crashkernel=128M irqpoll maxcpus=1 reset_devices cgroup_disable=memory ' --initrd=/boot/initrd-2.6.36-rc3+kdump.img /boot/vmlinuz-2.6.36-rc3+
>
> BUG: unable to handle kernel paging request at ffff8800dfffe400
> IP: [<ffffffff8113376b>] per_cpu_ptr_to_phys+0x3b/0x120
> PGD 1a26063 PUD 1fffc067 PMD 1fffd067 PTE 0
> Oops: 0000 [#1] SMP
> last sysfs file: /sys/devices/system/cpu/cpu0/crash_notes
> CPU 3
> Modules linked in: ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 virtio_balloon pcspkr 8139too 8139cp mii snd_intel8x0 snd_ac97_codec ac97_bus snd_seq snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc sg i2c_piix4 i2c_core ext4 mbcache jbd2 floppy sd_mod crc_t10dif virtio_pci virtio_ring virtio pata_acpi ata_generic ata_piix dm_mod [last unloaded: scsi_wait_scan]
>
> Pid: 5671, comm: kexec Not tainted 2.6.35+ #11 /KVM
> RIP: 0010:[<ffffffff8113376b>] [<ffffffff8113376b>] per_cpu_ptr_to_phys+0x3b/0x120
are you kexec from 2.6.35+ to 2.6.36-rc3+?
Yinghai
^ permalink raw reply
* Re: kexec load failure introduced by "x86, memblock: Replace e820_/_early string with memblock_"
From: CAI Qian @ 2010-09-26 6:55 UTC (permalink / raw)
To: Yinghai Lu; +Cc: linux-next, kexec, H. Peter Anvin
In-Reply-To: <4C9EEBCC.8090409@kernel.org>
----- "Yinghai Lu" <yinghai@kernel.org> wrote:
> On 09/25/2010 08:11 PM, caiqian@redhat.com wrote:
> > # /sbin/kexec -p '--command-line=ro
> root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root
> rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM
> LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us
> rhgb quiet console=tty0 console=ttyS0,115200 crashkernel=128M irqpoll
> maxcpus=1 reset_devices cgroup_disable=memory '
> --initrd=/boot/initrd-2.6.36-rc3+kdump.img /boot/vmlinuz-2.6.36-rc3+
> >
> > BUG: unable to handle kernel paging request at ffff8800dfffe400
> > IP: [<ffffffff8113376b>] per_cpu_ptr_to_phys+0x3b/0x120
> > PGD 1a26063 PUD 1fffc067 PMD 1fffd067 PTE 0
> > Oops: 0000 [#1] SMP
> > last sysfs file: /sys/devices/system/cpu/cpu0/crash_notes
> > CPU 3
> > Modules linked in: ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4
> iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 xt_state
> nf_conntrack ip6table_filter ip6_tables ipv6 virtio_balloon pcspkr
> 8139too 8139cp mii snd_intel8x0 snd_ac97_codec ac97_bus snd_seq
> snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc sg
> i2c_piix4 i2c_core ext4 mbcache jbd2 floppy sd_mod crc_t10dif
> virtio_pci virtio_ring virtio pata_acpi ata_generic ata_piix dm_mod
> [last unloaded: scsi_wait_scan]
> >
> > Pid: 5671, comm: kexec Not tainted 2.6.35+ #11 /KVM
> > RIP: 0010:[<ffffffff8113376b>] [<ffffffff8113376b>]
> per_cpu_ptr_to_phys+0x3b/0x120
>
> are you kexec from 2.6.35+ to 2.6.36-rc3+?
No, both kernels were the same version. I am sorry the above logs were misleading that were copy-and-pasted from different kernel versions.
>
> Yinghai
>
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply
* Re: kexec load failure introduced by "x86, memblock: Replace e820_/_early string with memblock_"
From: Yinghai Lu @ 2010-09-26 6:56 UTC (permalink / raw)
To: CAI Qian; +Cc: linux-next, kexec, H. Peter Anvin
In-Reply-To: <637638372.1993021285484132309.JavaMail.root-k5qu2F3t005+R5eDjrG6zsCp5Q1pQRjfhaY/URYTgi6ny3qCrzbmXA@public.gmane.org>
On 09/25/2010 11:55 PM, CAI Qian wrote:
>>
>> are you kexec from 2.6.35+ to 2.6.36-rc3+?
> No, both kernels were the same version. I am sorry the above logs were misleading that were copy-and-pasted from different kernel versions.
can you check tip instead of next tree?
Yinghai
^ 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