Linux-Next discussions
 help / color / mirror / Atom feed
* Re: next-20161205 build: 3 failures 4 warnings (next-20161205)
From: Mark Brown @ 2016-12-05 17:20 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Catalin Marinas, Will Deacon, kernel-build-reports, linaro-kernel,
	linux-next, linux-arm-kernel
In-Reply-To: <7b3daf13-dbab-5acf-cd5f-2414141500b3@arm.com>

[-- Attachment #1: Type: text/plain, Size: 545 bytes --]

On Mon, Dec 05, 2016 at 03:44:30PM +0000, Marc Zyngier wrote:

> Old and broken gas. I have a workaround stashed there:

> http://git.kernel.org/cgit/linux/kernel/git/maz/arm-platforms.git/commit/?h=arm64/standalone.h&id=559f97365362ed9e96f594200020379df46630d8

> At least binutils 2.24 and 2.25 are affected, while 2.27 is not.

Not that old - this is the Linaro 2015.10 toolchain which wasn't super
new but not exactly from the mists of time either.  Anyway, I updated to
2016.11 (GCC 6.2.1, GAS 2.27)...  let's see what the fallout is like.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply

* Re: next-20161205 build: 3 failures 4 warnings (next-20161205)
From: Marc Zyngier @ 2016-12-05 15:44 UTC (permalink / raw)
  To: Mark Brown, Catalin Marinas, Will Deacon
  Cc: kernel-build-reports, linaro-kernel, linux-next, linux-arm-kernel
In-Reply-To: <20161205112043.pyzcbhtu7bklioas@sirena.org.uk>

On 05/12/16 11:20, Mark Brown wrote:
> On Mon, Dec 05, 2016 at 07:56:06AM +0000, Build bot for Mark Brown wrote:
> 
> Today's -next fails to build an arm64 allnodconfig and allmodconfig
> with:
> 
>> 	arm64-allnoconfig
>> ../arch/arm64/lib/clear_user.S:33: Error: bad or irreducible absolute expression
>> ../arch/arm64/lib/clear_user.S:53: Error: bad or irreducible absolute expression
>> ../arch/arm64/lib/clear_user.S:33: Error: attempt to move .org backwards
>> ../arch/arm64/lib/clear_user.S:53: Error: attempt to move .org backwards
>> ../arch/arm64/lib/copy_from_user.S:67: Error: bad or irreducible absolute expression
>> ../arch/arm64/lib/copy_from_user.S:70: Error: bad or irreducible absolute expression
>> ../arch/arm64/lib/copy_from_user.S:67: Error: attempt to move .org backwards
>> ../arch/arm64/lib/copy_from_user.S:70: Error: attempt to move .org backwards
>> ../arch/arm64/lib/copy_in_user.S:68: Error: bad or irreducible absolute expression
>> ../arch/arm64/lib/copy_in_user.S:71: Error: bad or irreducible absolute expression
>> ../arch/arm64/lib/copy_in_user.S:68: Error: attempt to move .org backwards
>> ../arch/arm64/lib/copy_in_user.S:71: Error: attempt to move .org backwards
>> ../arch/arm64/lib/copy_to_user.S:66: Error: bad or irreducible absolute expression
>> ../arch/arm64/lib/copy_to_user.S:69: Error: bad or irreducible absolute expression
>> ../arch/arm64/lib/copy_to_user.S:66: Error: attempt to move .org backwards
>> ../arch/arm64/lib/copy_to_user.S:69: Error: attempt to move .org backwards
> 
> This was triggered somehow by bca8f17f57bd7 (arm64: Get rid of
> asm/opcodes.h) though I didn't figure out how.

Old and broken gas. I have a workaround stashed there:

http://git.kernel.org/cgit/linux/kernel/git/maz/arm-platforms.git/commit/?h=arm64/standalone.h&id=559f97365362ed9e96f594200020379df46630d8

At least binutils 2.24 and 2.25 are affected, while 2.27 is not.

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

^ permalink raw reply

* Re: next-20161205 build: 3 failures 4 warnings (next-20161205)
From: Mark Brown @ 2016-12-05 11:20 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Marc Zyngier
  Cc: linaro-kernel, linux-next, linux-arm-kernel, kernel-build-reports
In-Reply-To: <E1cDo86-0008IX-9W@optimist>


[-- Attachment #1.1: Type: text/plain, Size: 1578 bytes --]

On Mon, Dec 05, 2016 at 07:56:06AM +0000, Build bot for Mark Brown wrote:

Today's -next fails to build an arm64 allnodconfig and allmodconfig
with:

> 	arm64-allnoconfig
> ../arch/arm64/lib/clear_user.S:33: Error: bad or irreducible absolute expression
> ../arch/arm64/lib/clear_user.S:53: Error: bad or irreducible absolute expression
> ../arch/arm64/lib/clear_user.S:33: Error: attempt to move .org backwards
> ../arch/arm64/lib/clear_user.S:53: Error: attempt to move .org backwards
> ../arch/arm64/lib/copy_from_user.S:67: Error: bad or irreducible absolute expression
> ../arch/arm64/lib/copy_from_user.S:70: Error: bad or irreducible absolute expression
> ../arch/arm64/lib/copy_from_user.S:67: Error: attempt to move .org backwards
> ../arch/arm64/lib/copy_from_user.S:70: Error: attempt to move .org backwards
> ../arch/arm64/lib/copy_in_user.S:68: Error: bad or irreducible absolute expression
> ../arch/arm64/lib/copy_in_user.S:71: Error: bad or irreducible absolute expression
> ../arch/arm64/lib/copy_in_user.S:68: Error: attempt to move .org backwards
> ../arch/arm64/lib/copy_in_user.S:71: Error: attempt to move .org backwards
> ../arch/arm64/lib/copy_to_user.S:66: Error: bad or irreducible absolute expression
> ../arch/arm64/lib/copy_to_user.S:69: Error: bad or irreducible absolute expression
> ../arch/arm64/lib/copy_to_user.S:66: Error: attempt to move .org backwards
> ../arch/arm64/lib/copy_to_user.S:69: Error: attempt to move .org backwards

This was triggered somehow by bca8f17f57bd7 (arm64: Get rid of
asm/opcodes.h) though I didn't figure out how.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: next-20161205 build: 3 failures 4 warnings (next-20161205)
From: Marc Zyngier @ 2016-12-05 10:52 UTC (permalink / raw)
  To: Mark Brown, Catalin Marinas, Will Deacon
  Cc: linaro-kernel, linux-next, linux-arm-kernel, kernel-build-reports
In-Reply-To: <20161205104455.2m5ky3hgd5n2kb2w@sirena.org.uk>

On 05/12/16 10:44, Mark Brown wrote:
> On Mon, Dec 05, 2016 at 07:56:06AM +0000, Build bot for Mark Brown wrote:
> 
> Today's -next fails to build an arm64 allmodconfig:  
> 
>> 	arm64-allmodconfig
>> ../arch/arm64/include/asm/probes.h:18:25: fatal error: asm/opcodes.h: No such file or directory
> 
> due to bca8f17f57bd76d (arm64: Get rid of asm/opcodes.h) having missed
> one reference to the header.

Fix on the list: https://www.spinics.net/lists/arm-kernel/msg546960.html

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

^ permalink raw reply

* Re: next-20161205 build: 3 failures 4 warnings (next-20161205)
From: Mark Brown @ 2016-12-05 10:44 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Marc Zyngier
  Cc: kernel-build-reports, linaro-kernel, linux-next, linux-arm-kernel
In-Reply-To: <E1cDo86-0008IX-9W@optimist>

[-- Attachment #1: Type: text/plain, Size: 360 bytes --]

On Mon, Dec 05, 2016 at 07:56:06AM +0000, Build bot for Mark Brown wrote:

Today's -next fails to build an arm64 allmodconfig:  

> 	arm64-allmodconfig
> ../arch/arm64/include/asm/probes.h:18:25: fatal error: asm/opcodes.h: No such file or directory

due to bca8f17f57bd76d (arm64: Get rid of asm/opcodes.h) having missed
one reference to the header.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply

* Re: linux-next: unable to fetch the watchdog tree
From: Wim Van Sebroeck @ 2016-12-05 10:17 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, linux-kernel
In-Reply-To: <20161205093934.4d5449fa@canb.auug.org.au>

Hi Stephen,

Yes, I am setting up a new server.

Kind regards,
Wim.

> Hi Wim,
> 
> On Tue, 22 Nov 2016 09:49:19 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> >
> > On Mon, 14 Nov 2016 16:26:16 +0100 Wim Van Sebroeck <wim@iguana.be> wrote:
> > >
> > > This has been fixed. Thanks for notifying me about it.
> > >   
> > > > For the past few days (nearly a week, sorry) fetching the watchdog tree
> > > > (git://www.linux-watchdog.org/linux-watchdog-next.git#master) has
> > > > resulted in a hung connection.  
> > 
> > It's happening again :-(
> 
> And again.  Have you considered moving your tree somewhere more
> reliable like kernel.org?
> 
> -- 
> Cheers,
> Stephen Rothwell

^ permalink raw reply

* next-20161205 build: 3 failures 4 warnings (next-20161205)
From: Build bot for Mark Brown @ 2016-12-05  7:56 UTC (permalink / raw)
  To: kernel-build-reports, linaro-kernel, linux-next

Tree/Branch: next-20161205
Git describe: next-20161205
Commit: cef87e9115 Add linux-next specific files for 20161205

Build Time: 12 min 33 sec

Passed:    7 / 10   ( 70.00 %)
Failed:    3 / 10   ( 30.00 %)

Errors: 17
Warnings: 4
Section Mismatches: 0

Failed defconfigs:
	arm64-allnoconfig
	arm64-allmodconfig
	arm64-defconfig

Errors:

	arm64-allnoconfig
../arch/arm64/lib/clear_user.S:33: Error: bad or irreducible absolute expression
../arch/arm64/lib/clear_user.S:53: Error: bad or irreducible absolute expression
../arch/arm64/lib/clear_user.S:33: Error: attempt to move .org backwards
../arch/arm64/lib/clear_user.S:53: Error: attempt to move .org backwards
../arch/arm64/lib/copy_from_user.S:67: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_from_user.S:70: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_from_user.S:67: Error: attempt to move .org backwards
../arch/arm64/lib/copy_from_user.S:70: Error: attempt to move .org backwards
../arch/arm64/lib/copy_in_user.S:68: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_in_user.S:71: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_in_user.S:68: Error: attempt to move .org backwards
../arch/arm64/lib/copy_in_user.S:71: Error: attempt to move .org backwards
../arch/arm64/lib/copy_to_user.S:66: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_to_user.S:69: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_to_user.S:66: Error: attempt to move .org backwards
../arch/arm64/lib/copy_to_user.S:69: Error: attempt to move .org backwards

	arm64-allmodconfig
../arch/arm64/include/asm/probes.h:18:25: fatal error: asm/opcodes.h: No such file or directory

	arm64-defconfig
../arch/arm64/lib/clear_user.S:33: Error: bad or irreducible absolute expression
../arch/arm64/lib/clear_user.S:53: Error: bad or irreducible absolute expression
../arch/arm64/lib/clear_user.S:33: Error: attempt to move .org backwards
../arch/arm64/lib/clear_user.S:53: Error: attempt to move .org backwards
../arch/arm64/lib/copy_from_user.S:67: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_from_user.S:70: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_from_user.S:67: Error: attempt to move .org backwards
../arch/arm64/lib/copy_from_user.S:70: Error: attempt to move .org backwards
../arch/arm64/lib/copy_in_user.S:68: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_in_user.S:71: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_in_user.S:68: Error: attempt to move .org backwards
../arch/arm64/lib/copy_in_user.S:71: Error: attempt to move .org backwards
../arch/arm64/lib/copy_to_user.S:66: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_to_user.S:69: Error: bad or irreducible absolute expression
../arch/arm64/lib/copy_to_user.S:66: Error: attempt to move .org backwards
../arch/arm64/lib/copy_to_user.S:69: Error: attempt to move .org backwards

-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
      3 warnings    0 mismatches  : arm-allmodconfig
      1 warnings    0 mismatches  : arm64-defconfig

-------------------------------------------------------------------------------

Errors summary: 17
	  2 ../arch/arm64/lib/copy_to_user.S:69: Error: bad or irreducible absolute expression
	  2 ../arch/arm64/lib/copy_to_user.S:69: Error: attempt to move .org backwards
	  2 ../arch/arm64/lib/copy_to_user.S:66: Error: bad or irreducible absolute expression
	  2 ../arch/arm64/lib/copy_to_user.S:66: Error: attempt to move .org backwards
	  2 ../arch/arm64/lib/copy_in_user.S:71: Error: bad or irreducible absolute expression
	  2 ../arch/arm64/lib/copy_in_user.S:71: Error: attempt to move .org backwards
	  2 ../arch/arm64/lib/copy_in_user.S:68: Error: bad or irreducible absolute expression
	  2 ../arch/arm64/lib/copy_in_user.S:68: Error: attempt to move .org backwards
	  2 ../arch/arm64/lib/copy_from_user.S:70: Error: bad or irreducible absolute expression
	  2 ../arch/arm64/lib/copy_from_user.S:70: Error: attempt to move .org backwards
	  2 ../arch/arm64/lib/copy_from_user.S:67: Error: bad or irreducible absolute expression
	  2 ../arch/arm64/lib/copy_from_user.S:67: Error: attempt to move .org backwards
	  2 ../arch/arm64/lib/clear_user.S:53: Error: bad or irreducible absolute expression
	  2 ../arch/arm64/lib/clear_user.S:53: Error: attempt to move .org backwards
	  2 ../arch/arm64/lib/clear_user.S:33: Error: bad or irreducible absolute expression
	  2 ../arch/arm64/lib/clear_user.S:33: Error: attempt to move .org backwards
	  1 ../arch/arm64/include/asm/probes.h:18:25: fatal error: asm/opcodes.h: No such file or directory

Warnings Summary: 4
	  1 ../net/netfilter/nft_payload.c:261:15: warning: 'tsum' may be used uninitialized in this function [-Wmaybe-uninitialized]
	  1 ../include/net/checksum.h:71:9: warning: 'fsum' may be used uninitialized in this function [-Wmaybe-uninitialized]
	  1 ../fs/btrfs/inode.c:1198:31: warning: 'cur_end' may be used uninitialized in this function [-Wmaybe-uninitialized]
	  1 ../drivers/net/ethernet/apm/xgene/xgene_enet_cle.c:836:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]



===============================================================================
Detailed per-defconfig build reports below:


-------------------------------------------------------------------------------
arm64-allnoconfig : FAIL, 16 errors, 0 warnings, 0 section mismatches

Errors:
	../arch/arm64/lib/clear_user.S:33: Error: bad or irreducible absolute expression
	../arch/arm64/lib/clear_user.S:53: Error: bad or irreducible absolute expression
	../arch/arm64/lib/clear_user.S:33: Error: attempt to move .org backwards
	../arch/arm64/lib/clear_user.S:53: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_from_user.S:67: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_from_user.S:70: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_from_user.S:67: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_from_user.S:70: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_in_user.S:68: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_in_user.S:71: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_in_user.S:68: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_in_user.S:71: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_to_user.S:66: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_to_user.S:69: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_to_user.S:66: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_to_user.S:69: Error: attempt to move .org backwards

-------------------------------------------------------------------------------
arm64-allmodconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches

Errors:
	../arch/arm64/include/asm/probes.h:18:25: fatal error: asm/opcodes.h: No such file or directory

-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 3 warnings, 0 section mismatches

Warnings:
	../net/netfilter/nft_payload.c:261:15: warning: 'tsum' may be used uninitialized in this function [-Wmaybe-uninitialized]
	../include/net/checksum.h:71:9: warning: 'fsum' may be used uninitialized in this function [-Wmaybe-uninitialized]
	../drivers/net/ethernet/apm/xgene/xgene_enet_cle.c:836:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]

-------------------------------------------------------------------------------
arm64-defconfig : FAIL, 16 errors, 1 warnings, 0 section mismatches

Errors:
	../arch/arm64/lib/clear_user.S:33: Error: bad or irreducible absolute expression
	../arch/arm64/lib/clear_user.S:53: Error: bad or irreducible absolute expression
	../arch/arm64/lib/clear_user.S:33: Error: attempt to move .org backwards
	../arch/arm64/lib/clear_user.S:53: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_from_user.S:67: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_from_user.S:70: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_from_user.S:67: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_from_user.S:70: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_in_user.S:68: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_in_user.S:71: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_in_user.S:68: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_in_user.S:71: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_to_user.S:66: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_to_user.S:69: Error: bad or irreducible absolute expression
	../arch/arm64/lib/copy_to_user.S:66: Error: attempt to move .org backwards
	../arch/arm64/lib/copy_to_user.S:69: Error: attempt to move .org backwards

Warnings:
	../fs/btrfs/inode.c:1198:31: warning: 'cur_end' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------

Passed with no errors, warnings or mismatches:

arm-multi_v5_defconfig
arm-multi_v7_defconfig
x86_64-defconfig
arm-allnoconfig
x86_64-allnoconfig
arm-multi_v4t_defconfig

^ permalink raw reply

* Re: linux-next: build failure in the powerpc allyesconfig build
From: Stephen Rothwell @ 2016-12-05  6:16 UTC (permalink / raw)
  To: Nicholas Piggin
  Cc: Michael Ellerman, Benjamin Herrenschmidt, PowerPC, linux-next,
	linux-kernel
In-Reply-To: <20161205164153.43c84010@roar.ozlabs.ibm.com>

Hi Nick,

On Mon, 5 Dec 2016 16:41:53 +1100 Nicholas Piggin <npiggin@gmail.com> wrote:
>
> In scripts/kallsyms.c, is there a table[i].sym string you can print?

From a quick try, it printed nothing useful i.e. just some garbled
random characters.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* Re: linux-next: manual merge of the akpm-current tree with Linus' tree
From: Stephen Rothwell @ 2016-12-05  6:08 UTC (permalink / raw)
  To: Michal Hocko; +Cc: Andrew Morton, linux-next, linux-kernel, Johannes Weiner
In-Reply-To: <20161205055655.GB30758@dhcp22.suse.cz>

Hi Michal,

On Mon, 5 Dec 2016 06:56:56 +0100 Michal Hocko <mhocko@kernel.org> wrote:
>
> FWIW this resolution is correct

Thanks, good to know.

> > but any non trivial
> > conflicts should be mentioned to your upstream maintainer when your tree
> > is submitted for merging.  You may also want to consider cooperating
> > with the maintainer of the conflicting tree to minimise any particularly
> > complex conflicts.  
> 
> Sorry about that, I haven't noticed the conflict.

No worries, that is what I am here for :-)

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* linux-next: Tree for Dec 5
From: Stephen Rothwell @ 2016-12-05  6:03 UTC (permalink / raw)
  To: linux-next; +Cc: linux-kernel

Hi all,

Changes since 20161202:

The powerpc allyesconfig build fails for this release.

The pinctrl tree gained a build failure so I used the version from
next-20161202.

The kvm-ppc-paulus tree gained a conflict against Linus' tree.

The akpm-current tree gained a conflict against Linus' tree.

Non-merge commits (relative to Linus' tree): 9559
 9063 files changed, 567604 insertions(+), 206577 deletions(-)

----------------------------------------------------------------------------

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" and checkout or reset to the new
master.

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 (with
CONFIG_BUILD_DOCSRC=n) for x86_64, a multi_v7_defconfig for arm and a
native build of tools/perf. After the final fixups (if any), I do an
x86_64 modules_install followed by builds for x86_64 allnoconfig,
powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig, allyesconfig
(with KALLSYMS_EXTRA_PASS=1) and pseries_le_defconfig and i386, sparc
and sparc64 defconfig.

Below is a summary of the state of the merge.

I am currently merging 246 trees (counting Linus' and 35 trees of bug
fix patches pending for the current merge release).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

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.

-- 
Cheers,
Stephen Rothwell

$ git checkout master
$ git reset --hard stable
Merging origin/master (3e5de27e940d Linux 4.9-rc8)
Merging fixes/master (30066ce675d3 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6)
Merging kbuild-current/rc-fixes (152b695d7437 builddeb: fix cross-building to arm64 producing host-arch debs)
Merging arc-current/for-curr (7badf6fefca8 ARC: axs10x: really enable ARC PGU)
Merging arm-current/fixes (8478132a8784 Revert "arm: move exports to definitions")
Merging m68k-current/for-linus (7e251bb21ae0 m68k: Fix ndelay() macro)
Merging metag-fixes/fixes (35d04077ad96 metag: Only define atomic_dec_if_positive conditionally)
Merging powerpc-fixes/fixes (dadc4a1bb9f0 powerpc/64: Fix placement of .text to be immediately following .head.text)
Merging sparc/master (88abd8249ee8 Merge branch 'for-4.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata)
Merging net/master (c66ebf2db555 net: dcb: set error code on failures)
Merging ipsec/master (a55e23864d38 esp6: Fix integrity verification when ESN are used)
Merging netfilter/master (7bbf91ce27dd Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec)
Merging ipvs/master (9b6c14d51bd2 net: tcp response should set oif only if it is L3 master)
Merging wireless-drivers/master (fcd2042e8d36 mwifiex: printk() overflow with 32-byte SSIDs)
Merging mac80211/master (9590112241ba tipc: fix link statistics counter errors)
Merging sound-current/for-linus (b5337cfe067e ALSA: hda/ca0132 - Add quirk for Alienware 15 R2 2016)
Merging pci-current/for-linus (e42010d8207f PCI: Set Read Completion Boundary to 128 iff Root Port supports it (_HPX))
Merging driver-core.current/driver-core-linus (a25f0944ba9b Linux 4.9-rc5)
Merging tty.current/tty-linus (a909d3e63699 Linux 4.9-rc3)
Merging usb.current/usb-linus (e5517c2a5a49 Linux 4.9-rc7)
Merging usb-gadget-fixes/fixes (05e78c6933d6 usb: gadget: f_fs: fix wrong parenthesis in ffs_func_req_match())
Merging usb-serial-fixes/usb-linus (e5517c2a5a49 Linux 4.9-rc7)
Merging usb-chipidea-fixes/ci-for-usb-stable (c7fbb09b2ea1 usb: chipidea: move the lock initialization to core file)
Merging phy/fixes (4320f9d4c183 phy: sun4i: check PMU presence when poking unknown bit of pmu)
Merging staging.current/staging-linus (a25f0944ba9b Linux 4.9-rc5)
Merging char-misc.current/char-misc-linus (a25f0944ba9b Linux 4.9-rc5)
Merging input-current/for-linus (2425f1808123 Input: change KEY_DATA from 0x275 to 0x277)
Merging crypto-current/master (57891633eeef crypto: rsa - Add Makefile dependencies to fix parallel builds)
Merging ide/master (797cee982eef Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit)
Merging vfio-fixes/for-linus (05692d7005a3 vfio/pci: Fix integer overflows, bitmask check)
Merging kselftest-fixes/fixes (1001354ca341 Linux 4.9-rc1)
Merging backlight-fixes/for-backlight-fixes (68feaca0b13e backlight: pwm: Handle EPROBE_DEFER while requesting the PWM)
Merging ftrace-fixes/for-next-urgent (6224beb12e19 tracing: Have branch tracer use recursive field of task struct)
Merging mfd-fixes/for-mfd-fixes (1a41741fd60b mfd: wm8994-core: Don't use managed regulator bulk get API)
Merging drm-intel-fixes/for-linux-next-fixes (e411072d5740 drm/i915: drop the struct_mutex when wedged or trying to reset)
Merging drm-misc-fixes/for-linux-next-fixes (e94bd1736f1f drm: Don't call drm_for_each_crtc with a non-KMS driver)
Merging kbuild/for-next (8549430410ed Merge branch 'kbuild/kbuild' into kbuild/for-next)
Merging asm-generic/master (de4be6b87b6b asm-generic: page.h: fix comment typo)
CONFLICT (content): Merge conflict in include/asm-generic/percpu.h
Merging arc/for-next (e5517c2a5a49 Linux 4.9-rc7)
Merging arm/for-next (b4871f457978 Merge branch 'syscalls' into for-next)
Merging arm-perf/for-next/perf (f43365ee17f8 selftests: arm64: add test for unaligned/inexact watchpoint handling)
Merging pinctrl/for-next (3a037cf0767f pinctrl: sx150x: handle missing 'advanced' reg in sx1504 and sx1505)
$ git reset --hard HEAD^
Merging next-20161202 version of pinctrl
Merging arm-soc/for-next (bc82521fd067 arm-soc: document merges)
Merging amlogic/for-next (0ef8bcc8c1b3 Merge branch 'v4.10/defconfig' into tmp/aml-rebuild)
CONFLICT (add/add): Merge conflict in arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
Merging at91/at91-next (0f59c948faed Merge tag 'at91-ab-4.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into at91-next)
Merging bcm2835/for-next (ec09fdf764ee Merge branch anholt/bcm2835-defconfig-64-next into for-next)
Merging berlin/berlin/for-next (5153351425c9 Merge branch 'berlin/dt' into berlin/for-next)
Merging cortex-m/for-next (f719a0d6a854 ARM: efm32: switch to vendor,device compatible strings)
Merging imx-mxs/for-next (242a001e48b7 Merge branch 'zte/dt64' into for-next)
Merging keystone/next (fb2a68db621a Merge branch 'for_4.9/keystone_dts' into next)
Merging mvebu/for-next (7943083ec2a8 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (4aecea63ed81 Merge branch 'omap-for-v4.10/dt' into for-next)
Merging omap-pending/for-next (c20c8f750d9f ARM: OMAP2+: hwmod: fix _idle() hwmod state sanity check sequence)
Merging qcom/for-next (bbf9c90768f9 Merge tag 'qcom-dts-for-4.10-2' into all-for-4.10-part2)
Merging renesas/next (ba049962976b Merge branch 'soc-match-for-v4.10' into next)
Merging rockchip/for-next (7e02e53c6ecf Merge branch 'v4.10-clk/next' into for-next)
Merging rpi/for-rpi-next (bc0195aad0da Linux 4.2-rc2)
Merging samsung/for-next (1001354ca341 Linux 4.9-rc1)
Merging samsung-krzk/for-next (2d2a2b87438b Merge branch 'next/soc' into for-next)
Merging tegra/for-next (e8d16d40e269 Merge branch for-4.10/i2c into for-next)
Merging arm64/for-next/core (bca8f17f57bd arm64: Get rid of asm/opcodes.h)
CONFLICT (content): Merge conflict in arch/arm64/include/asm/cpufeature.h
Applying: arm64: merge fix for code movement to cpucaps.h
Merging clk/clk-next (6bbabe5fc53f Merge tag 'v4.10-rockchip-clk2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into clk-next)
CONFLICT (content): Merge conflict in drivers/soc/renesas/Makefile
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/renesas/r8a7796.dtsi
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/renesas/r8a7795.dtsi
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/setup-rcar-gen2.c
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7794.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7793.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7792.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7791.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7790.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/r8a7779.dtsi
Merging blackfin/for-linus (391e74a51ea2 eth: bf609 eth clock: add pclk clock for stmmac driver probe)
CONFLICT (content): Merge conflict in arch/blackfin/mach-common/pm.c
Merging c6x/for-linux-next (ca3060d39ae7 c6x: Use generic clkdev.h header)
Merging cris/for-next (c78874f116be tty: serial: make crisv10 explicitly non-modular)
Merging h8300/h8300-next (58c57526711f h8300: Add missing include file to asm/io.h)
Merging hexagon/linux-next (02cc2ccfe771 Revert "Hexagon: fix signal.c compile error")
Merging ia64/next (fbb0e4da96f4 ia64: salinfo: use a waitqueue instead a sema down/up combo)
Merging m68k/for-next (25ba49085c4f m68k/atari: Use seq_puts() in atari_get_hardware_list())
Merging m68knommu/for-next (32a4bca3464f m68knommu: AMCORE board, add iMX i2c support)
Merging metag/for-next (f5d163aad31e metag: perf: fix build on Meta1)
Merging microblaze/next (52e9e6e05617 microblaze: pci: export isa_io_base to fix link errors)
Merging mips/mips-for-linux-next (ecf41b56e967 Merge branch '4.9-fixes' into mips-for-linux-next)
Merging nios2/for-next (476080a79367 nios2: use of_property_read_bool)
Merging openrisc/for-next (56cb5749b239 openrisc: prevent VGA console, fix builds)
Merging parisc-hd/for-next (033b41e56bf2 parisc: Try to fix TLB problems)
Merging powerpc/next (c02e0349d7e9 powerpc/ftrace: Fix the comments for ftrace_modify_code)
CONFLICT (content): Merge conflict in arch/powerpc/include/asm/asm-prototypes.h
Merging fsl/next (18058822768f soc/qman: Handle endianness of h/w descriptors)
Merging mpc5xxx/next (39e69f55f857 powerpc: Introduce the use of the managed version of kzalloc)
Merging s390/features (db7ad63624b3 s390/setup: fix memblock usage)
Merging sparc-next/master (9f935675d41a Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input)
Merging sh/for-next (e61c10e468a4 sh: add device tree source for J2 FPGA on Mimas v2 board)
Merging tile/master (bf55d575234b tile: migrate exception table users off module.h and onto extable.h)
Merging uml/linux-next (dad223284407 um: Don't discard .text.exit section)
Merging unicore32/unicore32 (bc27113620ca unicore32-oldabi: add oldabi syscall interface)
Merging xtensa/xtensa-for-next (03eae3aca94c xtensa: fix screen_info, clean up unused declarations in setup.c)
Merging befs/for-next (f7b75aaed5ef befs: add NFS export support)
Merging btrfs/next (8b8b08cbfb90 Btrfs: fix delalloc accounting after copy_from_user faults)
Merging btrfs-kdave/for-next (986ee488b9fd Merge branch 'for-next-next-4.9-20161125' into for-next-20161125)
Merging ceph/master (264048afab27 libceph: initialize last_linger_id with a large integer)
Merging cifs/for-next (8b217fe7fcad SMB3: parsing for new snapshot timestamp mount parm)
Merging configfs/for-next (e16769d4bca6 fs: configfs: don't return anything from drop_link)
Merging ecryptfs/next (be280b25c328 ecryptfs: remove private bin2hex implementation)
Merging ext3/for_next (c3b004460d77 quota: Remove dqonoff_mutex)
Merging ext4/dev (b72b1f3b125e ext4: Add select for CONFIG_FS_IOMAP)
Merging f2fs/dev (0002b61bdaac f2fs: return AOP_WRITEPAGE_ACTIVATE for writepage)
Merging freevxfs/for-next (bf1bb4b460c8 freevxfs: update Kconfig information)
Merging fscache/fscache (d52bd54db8be Merge branch 'akpm' (patches from Andrew))
Merging fuse/for-next (59c3b76cc61d fuse: fix fuse_write_end() if zero bytes were copied)
Merging gfs2/for-next (a3443cda5588 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security)
Merging jfs/jfs-next (362ad5d58e9a fs: jfs: Replace CURRENT_TIME_SEC by current_time())
Merging nfs/linux-next (230bc962a6ff pNFS/flexfiles: Support sending layoutstats in layoutreturn)
Merging nfsd/nfsd-next (fafedf81700d svcrdma: Further clean-up of svc_rdma_get_inv_rkey())
Merging orangefs/for-next (19ff7fcc76e6 orangefs: add .owner to debugfs file_operations)
Merging overlayfs/overlayfs-next (230366f3cf58 ovl: create directories inside merged parent opaque)
Merging v9fs/for-next (a333e4bf2556 fs/9p: use fscache mutex rather than spinlock)
Merging ubifs/linux-next (a00052a296e5 ubifs: Fix regression in ubifs_readdir())
Merging xfs/for-next (5f1c6d28cfcd Merge branch 'iomap-4.10-directio' into for-next)
CONFLICT (content): Merge conflict in include/linux/iomap.h
Merging file-locks/linux-next (07d9a380680d Linux 4.9-rc2)
Merging vfs/for-next (b26b5ef5ec7e Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs)
Merging vfs-jk/vfs (030b533c4fd4 fs: Avoid premature clearing of capabilities)
Merging vfs-miklos/next (c8d2bc9bc39e Linux 4.8)
Merging pci/next (1a452ec24b3f Merge branch 'pci/host-vmd' into next)
Merging pstore/for-next/pstore (fc46d4e453f5 ramoops: add pdata NULL check to ramoops_probe)
Merging hid/for-next (9700925ff92d Merge branch 'for-4.10/intel-ish' into for-next)
Merging i2c/i2c/for-next (7448c4ee18e5 Merge branch 'i2c/for-current' into i2c/for-next)
Merging jdelvare-hwmon/master (08d27eb20666 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs)
Merging dmi/master (c8d2bc9bc39e Linux 4.8)
Merging hwmon-staging/hwmon-next (2383a744c11c devicetree: hwmon: Add documentation for TMP108 driver.)
Merging jc_docs/docs-next (2ba90ccca775 core-api: remove an unexpected unident)
Merging v4l-dvb/master (bf0396ea4727 Merge branch 'patchwork' into to_next)
CONFLICT (modify/delete): Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-scaling-multi-source.svg deleted in HEAD and modified in v4l-dvb/master. Version v4l-dvb/master of Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-scaling-multi-source.svg left in tree.
CONFLICT (modify/delete): Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-full.svg deleted in HEAD and modified in v4l-dvb/master. Version v4l-dvb/master of Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-full.svg left in tree.
CONFLICT (modify/delete): Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-crop.svg deleted in HEAD and modified in v4l-dvb/master. Version v4l-dvb/master of Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-crop.svg left in tree.
$ git rm -f Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-crop.svg Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-full.svg Documentation/media/uapi/v4l/dev-subdev_files/subdev-image-processing-scaling-multi-source.svg
Merging pm/linux-next (092ef66d2886 Merge branch 'device-properties' into linux-next)
Merging idle/next (306899f94804 x86 tsc: Add the Intel Denverton Processor to native_calibrate_tsc())
Merging thermal/next (9245ac20d829 Merge branches 'thermal-core', 'thermal-intel', 'thermal-soc-fixes' and 'thermal-reorg' into next)
Merging thermal-soc/next (6ee459f5f967 devfreq_cooling: pass a pointer to devfreq in the power model callbacks)
Merging ieee1394/for-next (e9300a4b7bba firewire: net: fix fragmented datagram_size off-by-one)
Merging dlm/next (aa9f1012858b dlm: don't specify WQ_UNBOUND for the ast callback workqueue)
Merging swiotlb/linux-next (d29fa0cb7602 swiotlb: Minor fix-ups for DMA_ATTR_SKIP_CPU_SYNC support)
Merging net-next/master (adc176c54722 ipv6 addrconf: Implemented enhanced DAD (RFC7527))
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/broadcom/ns2.dtsi
Merging ipsec-next/master (2258d927a691 xfrm: remove unused helper)
Merging netfilter-next/master (7464293d4266 netfilter: xt_multiport: Fix wrong unmatch result with multiple ports)
Merging ipvs-next/master (8d8e20e2d7bb ipvs: Decrement ttl)
Merging wireless-drivers-next/master (d5fb3a138048 Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git)
Merging bluetooth/master (6bf0d84d13e9 docs: ieee802154: update main documentation file)
Merging mac80211-next/master (46e96a6fa61f mac80211: multicast to unicast conversion)
Merging rdma/for-next (e37a79e5d4ca net/mlx5e: Add tc support for FWD rule with counter)
Merging rdma-leon/rdma-next (b66df7cc9ee7 Merge branch 'topic/shared-for-4.10' into rdma-next)
Merging rdma-leon-test/testing/rdma-next (a909d3e63699 Linux 4.9-rc3)
Merging mtd/master (0e2ce9d3fcba Merge tag 'nand/fixes-for-4.9-rc3' of github.com:linux-nand/linux)
Merging l2-mtd/master (445caaa20c4d mtd: Allocate bdi objects dynamically)
Merging nand/nand/next (8fcfba072420 mtd: nand: tango: Use nand_to_mtd() instead of directly accessing chip->mtd)
Merging crypto/master (5937d81a9613 crypto: algif_aead - fix AIO handling of zero buffer)
Merging drm/drm-next (0d5320fc1941 Merge tag 'tilcdc-4.10' of https://github.com/jsarha/linux into drm-next)
Merging drm-panel/drm/panel/for-next (c96f566273bf drm/panel: Add JDI LT070ME05000 WUXGA DSI Panel)
Merging drm-intel/for-linux-next (cf30f5094adc Merge tag 'gvt-next-2016-11-30' of https://github.com/01org/gvt-linux into drm-intel-next-fixes)
Merging drm-tegra/drm/tegra/for-next (585ee0f27ef7 drm/tegra: Set sgt pointer in BO pin)
Merging drm-misc/for-linux-next (dabdcdc9822a drm/vmwgfx: Switch to mode_cmd2)
Merging drm-exynos/exynos-drm/for-next (7d1e04231461 Merge tag 'usercopy-v4.8-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux)
Merging drm-msm/msm-next (2401a0084614 drm/msm: gpu: Add support for the GPMU)
Merging hdlcd/for-upstream/hdlcd (747e5a5ff2a2 drm: hdlcd: Fix cleanup order)
Merging mali-dp/for-upstream/mali-dp (8e3eb71c80ad drm/arm/malidp: Fix possible dereference of NULL)
Merging sunxi/sunxi/for-next (63e8e44adfdc Merge branch 'sunxi/dt-late-for-4.10' into sunxi/for-next)
Merging kspp/for-next/kspp (68fdc678df46 MAINTAINERS: add GCC plugins Makefile)
Merging kconfig/for-next (5bcba792bb30 localmodconfig: Fix whitespace repeat count after "tristate")
Merging regmap/for-next (d56ec48ebe5f Merge remote-tracking branch 'regmap/topic/lzo' into regmap-next)
Merging sound/for-next (4763601a56f1 ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream())
Merging sound-asoc/for-next (e8a762f10a84 Merge remote-tracking branches 'asoc/topic/wm9712' and 'asoc/topic/wm9713' into asoc-next)
Merging modules/modules-next (4d217a5adccf module: fix DEBUG_SET_MODULE_RONX typo)
Merging input/next (accbcea3465b Input: imx6ul_tsc - convert int to u32)
Merging block/for-next (77822ad73626 Merge branch 'for-4.10/block' into for-next)
CONFLICT (content): Merge conflict in fs/f2fs/segment.c
Applying: iomap: fix up for blk_poll and WRITE_ODIRECT change
Merging lightnvm/for-next (a5f78b7f7dd1 Merge branch 'for-4.10/block' into for-next)
Merging device-mapper/for-next (65d3b322e60e dm cache metadata: use cursor api in blocks_are_clean_separate_dirty())
Merging pcmcia/master (e8e68fd86d22 pcmcia: do not break rsrc_nonstatic when handling anonymous cards)
Merging mmc/next (0203e622c392 mmc: sdhci-pci: Use ACPI to get max frequency for Intel byt sdio controller sub-vended by NI)
CONFLICT (content): Merge conflict in drivers/mmc/card/block.c
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
Merging kgdb/kgdb-next (7a6653fca500 kdb: Fix handling of kallsyms_symbol_next() return value)
Merging md/for-next (e8d7c33232e5 md/raid5: limit request size according to implementation limits)
CONFLICT (content): Merge conflict in drivers/md/raid5-cache.c
CONFLICT (content): Merge conflict in drivers/md/md.c
Merging mfd/for-mfd-next (93559191e71b mfd: tps65217: Support an interrupt pin as the system wakeup)
CONFLICT (content): Merge conflict in drivers/mfd/wm8994-core.c
Merging backlight/for-backlight-next (0c9501f823a4 backlight: pwm_bl: Handle gpio that can sleep)
Merging battery/for-next (6480af4915d6 power_supply: wm97xx_battery: use power_supply_get_drvdata)
Merging omap_dss2/for-next (c456a2f30de5 video: smscufx: remove unused variable)
Merging regulator/for-next (870edd7a2d0e Merge remote-tracking branch 'regulator/topic/twl' into regulator-next)
Merging security/next (50523a29d900 Yama: allow access for the current ptrace parent)
Merging integrity/next (b4bfec7f4a86 security/integrity: Harden against malformed xattrs)
Merging keys/keys-next (ed51e44e914c Merge branch 'keys-asym-keyctl' into keys-next)
Merging selinux/next (9287aed2ad1f selinux: Convert isec->lock into a spinlock)
Merging tpmdd/next (9430066a15d6 tpm: adjust return value of tpm_read_log)
Merging watchdog/master (39487f6688a5 watchdog: imx2_wdt: add pretimeout function support)
Merging iommu/next (a2c3bc6d10e2 Merge branches 'arm/mediatek', 'arm/smmu', 'x86/amd', 's390', 'core' and 'arm/exynos' into next)
Merging dwmw2-iommu/master (910170442944 iommu/vt-d: Fix PASID table allocation)
Merging vfio/next (2fc1bec15883 kvm: set/clear kvm to/from vfio_group when group add/delete)
Merging trivial/for-next (380cc42d5a6c nvme: add missing \n to end of dev_warn message)
Merging audit/next (5b52b1d37a6f netns: avoid disabling irq for netns id)
CONFLICT (content): Merge conflict in net/core/net_namespace.c
CONFLICT (content): Merge conflict in include/uapi/linux/audit.h
Merging devicetree/for-next (3c263bc7b727 add bindings document for altera freeze bridge)
Merging mailbox/mailbox-for-next (16ae16c6e561 Merge tag 'mmc-v4.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc)
Merging spi/for-next (10e898f3527d Merge remote-tracking branches 'spi/topic/topcliff-pch' and 'spi/topic/xlp' into spi-next)
Merging tip/auto-latest (3c7044c6310f Merge branch 'x86/urgent')
CONFLICT (content): Merge conflict in drivers/net/ethernet/amd/Kconfig
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/i915_gem_shrinker.c
Applying: net: busy-poll: fix up for cpu_relax_lowlatency() removal
Merging clockevents/clockevents/next (f947ee147e08 clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map())
Merging edac/linux_next (a2e4c787f75b EDAC: Document HW_EVENT_ERR_DEFERRED type)
Merging edac-amd/for-next (0de2788447b6 EDAC, amd64: Fix improper return value)
Merging irqchip/irqchip/for-next (0ccb54a7dba0 Merge branch 'irqchip/core' into irqchip/for-next)
Merging ftrace/for-next (38e11df13429 ring-buffer: Force rb_end_commit() and rb_set_commit_to_write() inline)
Merging rcu/rcu/next (f8f127e738e3 rcu: Add long-term CPU kicking)
Merging kvm/linux-next (ffcb09f27f46 Merge branch 'kvm-ppc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc)
CONFLICT (content): Merge conflict in arch/x86/kvm/cpuid.c
CONFLICT (content): Merge conflict in arch/powerpc/include/asm/asm-prototypes.h
Merging kvm-arm/next (fd5ebf99f814 arm/arm64: KVM: Clean up useless code in kvm_timer_enable)
Merging kvm-mips/next (07d9a380680d Linux 4.9-rc2)
Merging kvm-ppc/kvm-ppc-next (c63517c2e381 KVM: PPC: Book3S: correct width in XER handling)
Merging kvm-ppc-paulus/kvm-ppc-next (e34af7849014 KVM: PPC: Book3S: Move prototypes for KVM functions into kvm_ppc.h)
CONFLICT (content): Merge conflict in arch/powerpc/include/asm/asm-prototypes.h
Merging kvms390/next (e1788bb995be KVM: s390: handle floating point registers in the run ioctl not in vcpu_put/load)
Merging xen-tip/linux-next (b36585a0a3c1 xen/events: use xen_vcpu_id mapping for EVTCHNOP_status)
Merging percpu/for-next (3ca45a46f8af percpu: ensure the requested alignment is power of two)
Merging workqueues/for-next (8bc4a0445596 Merge branch 'for-4.9' into for-4.10)
Merging drivers-x86/for-next (401df5ace9d6 intel_pmc_core: Add KBL CPUID support)
Merging chrome-platform/for-next (31b764171cb5 Revert "platform/chrome: chromeos_laptop: Add Leon Touch")
Merging hsi/for-next (7ac5d7b1a125 HSI: hsi_char.h: use __u32 from linux/types.h)
Merging leds/for-next (44b3e31d540e leds: pca955x: Add ACPI support)
Merging ipmi/for-next (f0cee6244aa1 ipmi_ssif: create hardware-independent softdep for ipmi_devintf)
Merging driver-core/driver-core-next (cd74da957ba2 drivers: base: dma-mapping: Fix typo in dmam_alloc_non_coherent comments)
Merging tty/tty-next (a9b01b5823f7 serial: 8250_mid fix calltrace when hotplug 8250 serial controller)
CONFLICT (modify/delete): Documentation/VGA-softcursor.txt deleted in HEAD and modified in tty/tty-next. Version tty/tty-next of Documentation/VGA-softcursor.txt left in tree.
$ git rm -f Documentation/VGA-softcursor.txt
Merging usb/usb-next (66c79319f838 Merge tag 'usb-serial-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next)
Merging usb-gadget/next (d5c024f3761d usb: gadget: serial: fix possible Oops caused by calling kthread_stop(NULL))
Merging usb-serial/usb-next (3c3dd1e058cb USB: serial: kl5kusb105: abort on open exception path)
Merging usb-chipidea-next/ci-for-usb-next (3be3251db088 usb: chipidea: imx: Disable internal 60Mhz clock with ULPI PHY)
Merging phy-next/next (5e253dfbdbea phy: rockchip-inno-usb2: select USB_COMMON)
Merging staging/staging-next (af8bc2fb99d4 staging: unisys: visorbus: Remove two passthrough postcode macros)
CONFLICT (content): Merge conflict in drivers/staging/wlan-ng/p80211netdev.c
CONFLICT (content): Merge conflict in drivers/staging/unisys/include/iochannel.h
CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/i2c/trivial-devices.txt
Merging char-misc/char-misc-next (e073462966b2 Merge tag 'fpga-for-greg-20161129' of git://git.kernel.org/pub/scm/linux/kernel/git/atull/linux-fpga into char-misc-next)
CONFLICT (content): Merge conflict in drivers/lightnvm/core.c
Merging extcon/extcon-next (5bb65b24bfcd extcon: return error code on failure)
Merging slave-dma/next (a9439a5b774f Merge branch 'for-linus' into next)
Merging cgroup/for-next (7c0dce2f2c43 cpuset: Remove unused 'struct cpuset*' variable)
Merging scsi/for-next (ee8a864ceaf4 Merge branch 'fixes' into for-next)
CONFLICT (content): Merge conflict in drivers/scsi/ufs/ufshcd.c
Merging scsi-mkp/for-next (e3cb0e47b923 scsi: isci: switch to pci_alloc_irq_vectors)
Merging target-updates/for-next (291e3e51a34d target: fix spelling mistake: "limitiation" -> "limitation")
Merging target-merge/for-next-merge (2994a7518317 cxgb4: update Kconfig and Makefile)
Merging libata/for-next (751ef0f0c817 Merge branch 'for-4.9-fixes' into for-next)
CONFLICT (content): Merge conflict in block/blk-core.c
Merging binfmt_misc/for-next (4af75df6a410 binfmt_misc: add F option description to documentation)
Merging vhost/linux-next (75bfa81bf089 virtio_ring: mark vring_dma_dev inline)
Merging rpmsg/for-next (45bf6fb0a6d6 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (e470295a5e5a gpio: merrifield: Implement gpio_get_direction callback)
Merging dma-mapping/dma-mapping-next (1001354ca341 Linux 4.9-rc1)
Merging pwm/for-next (fdd3ff4db177 Merge branch 'for-4.10/drivers' into for-next)
Merging dma-buf/for-next (194cad44c4e1 dma-buf/sync_file: improve Kconfig description for Sync Files)
CONFLICT (content): Merge conflict in drivers/dma-buf/Kconfig
Merging userns/for-next (19339c251607 Revert "evm: Translate user/group ids relative to s_user_ns when computing HMAC")
Merging ktest/for-next (2dcd0af568b0 Linux 4.6)
Merging random/dev (59b8d4f1f5d2 random: use for_each_online_node() to iterate over NUMA nodes)
Merging aio/master (b562e44f507e Linux 4.5)
Merging kselftest/next (499a1d11f265 selftest: sync: stress test for merges)
Merging y2038/y2038 (549eb7b22e24 AFS: Correctly use 64-bit time for UUID)
CONFLICT (content): Merge conflict in fs/afs/main.c
Merging luto-misc/next (2dcd0af568b0 Linux 4.6)
Merging borntraeger/linux-next (e76d21c40bd6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging livepatching/for-next (2992ef29ae01 livepatch/module: make TAINT_LIVEPATCH module-specific)
Merging coresight/next (e615a9a8e481 coresight: perf: Add a missing call to etm_free_aux)
Merging rtc/rtc-next (1c02cbfec5c7 rtc: twl: make driver DT only)
Merging hwspinlock/for-next (bd5717a4632c hwspinlock: qcom: Correct msb in regmap_field)
Merging nvdimm/libnvdimm-for-next (4cb19355ea19 device-dax: fail all private mapping attempts)
Merging dax-misc/dax-misc (4d9a2c874667 dax: Remove i_mmap_lock protection)
Merging akpm-current/current (61ba078c334d ipc/shm.c: coding style fixes)
CONFLICT (content): Merge conflict in mm/workingset.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in fs/dax.c
$ git checkout -b akpm remotes/origin/akpm/master
Applying: posix-timers: give lazy compilers some help optimizing code away
Applying: drivers/net/wireless/intel/iwlwifi/dvm/calib.c: simplfy min() expression
Applying: ktest.pl: fix english
Applying: kernel/watchdog.c: move shared definitions to nmi.h
Applying: kernel/watchdog.c: move hardlockup detector to separate file
Applying: sparc: implement watchdog_nmi_enable and watchdog_nmi_disable
Applying: ipc/sem: do not call wake_sem_queue_do() prematurely
Applying: ipc/sem: rework task wakeups
Applying: ipc/sem: merge fix for WAKE_Q to DEFINE_WAKE_Q rename
Applying: ipc-sem-rework-task-wakeups-checkpatch-fixes
Applying: ipc/sem: optimize perform_atomic_semop()
Applying: ipc/sem: ensure we left shift a ULL rather than a 32 bit integer
Applying: ipc-sem-optimize-perform_atomic_semop-checkpatch-fixes
Applying: ipc/sem: explicitly inline check_restart
Applying: ipc/sem: use proper list api for pending_list wakeups
Applying: ipc/sem: simplify wait-wake loop
Applying: ipc-sem-simplify-wait-wake-loop-checkpatch-fixes
Applying: ipc/sem: avoid idr tree lookup for interrupted semop
Applying: mm: add locked parameter to get_user_pages_remote()
Applying: vfio iommu type1: merge fix for get_user_pages_remote API change
Applying: mm: unexport __get_user_pages_unlocked()
Applying: mm-unexport-__get_user_pages_unlocked-checkpatch-fixes
Applying: mm: join struct fault_env and vm_fault
Applying: mm: use vmf->address instead of of vmf->virtual_address
Applying: mm: use pgoff in struct vm_fault instead of passing it separately
Applying: mm: use passed vm_fault structure in __do_fault()
Applying: mm: trim __do_fault() arguments
Applying: mm: use passed vm_fault structure for in wp_pfn_shared()
Applying: mm: add orig_pte field into vm_fault
Applying: mm: allow full handling of COW faults in ->fault handlers
Applying: mm: factor out functionality to finish page faults
Applying: mm: move handling of COW faults into DAX code
Applying: mm: factor out common parts of write fault handling
Applying: mm: pass vm_fault structure into do_page_mkwrite()
Applying: mm: use vmf->page during WP faults
Applying: mm: move part of wp_page_reuse() into the single call site
Applying: mm: provide helper for finishing mkwrite faults
Applying: mm: change return values of finish_mkwrite_fault()
Applying: mm: export follow_pte()
Applying: dax: make cache flushing protected by entry lock
Applying: dax: protect PTE modification on WP fault by radix tree entry lock
Applying: dax: clear dirty entry tags on cache flush
Applying: powerpc: ima: get the kexec buffer passed by the previous kernel
Applying: ima: on soft reboot, restore the measurement list
Applying: ima: permit duplicate measurement list entries
Applying: ima: maintain memory size needed for serializing the measurement list
Applying: powerpc: ima: send the kexec buffer to the next kernel
Applying: ima: on soft reboot, save the measurement list
Applying: ima: store the builtin/custom template definitions in a list
Applying: ima: support restoring multiple template formats
Applying: ima: define a canonical binary_runtime_measurements list format
Applying: ima: platform-independent hash value
Merging akpm/master (5e471e52ed51 ima: platform-independent hash value)

^ permalink raw reply

* Re: linux-next: manual merge of the akpm-current tree with Linus' tree
From: Michal Hocko @ 2016-12-05  5:56 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: Andrew Morton, linux-next, linux-kernel, Johannes Weiner
In-Reply-To: <20161205163808.6d3918b6@canb.auug.org.au>

On Mon 05-12-16 16:38:08, Stephen Rothwell wrote:
> Hi Andrew,
> 
> Today's linux-next merge of the akpm-current tree got a conflict in:
> 
>   mm/workingset.c
> 
> between commit:
> 
>   20ab67a563f5 ("mm: workingset: fix NULL ptr in count_shadow_nodes")
> 
> from Linus' tree and commit:
> 
>   8b6983cf8ca6 ("mm: workingset: update shadow limit to reflect bigger active list")
> 
> from the akpm-current tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned,

FWIW this resolution is correct

> but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.

Sorry about that, I haven't noticed the conflict.
 
> -- 
> Cheers,
> Stephen Rothwell
> 
> diff --cc mm/workingset.c
> index fb1f9183d89a,02ab8746abde..000000000000
> --- a/mm/workingset.c
> +++ b/mm/workingset.c
> @@@ -366,16 -394,22 +394,22 @@@ static unsigned long count_shadow_nodes
>   	 *
>   	 * On 64-bit with 7 radix_tree_nodes per page and 64 slots
>   	 * each, this will reclaim shadow entries when they consume
> - 	 * ~2% of available memory:
> + 	 * ~1.8% of available memory:
>   	 *
> - 	 * PAGE_SIZE / radix_tree_nodes / node_entries / PAGE_SIZE
> + 	 * PAGE_SIZE / radix_tree_nodes / node_entries * 8 / PAGE_SIZE
>   	 */
> - 	max_nodes = pages >> (1 + RADIX_TREE_MAP_SHIFT - 3);
>  -	if (memcg_kmem_enabled()) {
> ++	if (sc->memcg) {
> + 		cache = mem_cgroup_node_nr_lru_pages(sc->memcg, sc->nid,
> + 						     LRU_ALL_FILE);
> + 	} else {
> + 		cache = node_page_state(NODE_DATA(sc->nid), NR_ACTIVE_FILE) +
> + 			node_page_state(NODE_DATA(sc->nid), NR_INACTIVE_FILE);
> + 	}
> + 	max_nodes = cache >> (RADIX_TREE_MAP_SHIFT - 3);
>   
> - 	if (shadow_nodes <= max_nodes)
> + 	if (nodes <= max_nodes)
>   		return 0;
> - 
> - 	return shadow_nodes - max_nodes;
> + 	return nodes - max_nodes;
>   }
>   
>   static enum lru_status shadow_lru_isolate(struct list_head *item,

-- 
Michal Hocko
SUSE Labs

^ permalink raw reply

* Re: linux-next: possible removal of the kvm-ppc tree
From: Alexander Graf @ 2016-12-05  5:52 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Paul Mackerras
In-Reply-To: <20161205103911.5b3e6a40@canb.auug.org.au>

Hi Stephen,

> Am 05.12.2016 um 01:39 schrieb Stephen Rothwell <sfr@canb.auug.org.au>:
> 
> Hi Alexander,
> 
> I noticed that the kvm-ppc tree
> (git://github.com/agraf/linux-2.6.git#kvm-ppc-next) has not been
> updated for over a year.  I was wondering if I should remove it from
> linux-next?
> 
> If so, I will rename the kvm-ppc-paulus tree to be the kvm-ppc tree.

Yes, please go ahead.

Alex

> 
> -- 
> Cheers,
> Stephen Rothwell

^ permalink raw reply

* Re: linux-next: build failure in the powerpc allyesconfig build
From: Nicholas Piggin @ 2016-12-05  5:41 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Michael Ellerman, Benjamin Herrenschmidt, PowerPC, linux-next,
	linux-kernel
In-Reply-To: <20161205162431.71013317@canb.auug.org.au>

On Mon, 5 Dec 2016 16:24:31 +1100
Stephen Rothwell <sfr@canb.auug.org.au> wrote:

> Hi all,
> 
> On Mon, 5 Dec 2016 16:22:04 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> >
> > After mergeing everything but Andrew's tree, today's linux-next build
> > (powerpc allyesconfig) failed like this:
> > 
> > kallsyms failure: relative symbol value 0xc000000000000000 out of range in relative mode
> > 
> > I have no idea what caused this, so I have left the powerpc allyesconfig
> > build broken for now.  
> 
> Just as a data point, I tried reverting commit
> 
>   dadc4a1bb9f0 ("powerpc/64: Fix placement of .text to be immediately following .head.text")
> 
> but that did not help.

In scripts/kallsyms.c, is there a table[i].sym string you can print?

^ permalink raw reply

* linux-next: manual merge of the akpm-current tree with Linus' tree
From: Stephen Rothwell @ 2016-12-05  5:38 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Michal Hocko, Johannes Weiner

Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in:

  mm/workingset.c

between commit:

  20ab67a563f5 ("mm: workingset: fix NULL ptr in count_shadow_nodes")

from Linus' tree and commit:

  8b6983cf8ca6 ("mm: workingset: update shadow limit to reflect bigger active list")

from the akpm-current tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc mm/workingset.c
index fb1f9183d89a,02ab8746abde..000000000000
--- a/mm/workingset.c
+++ b/mm/workingset.c
@@@ -366,16 -394,22 +394,22 @@@ static unsigned long count_shadow_nodes
  	 *
  	 * On 64-bit with 7 radix_tree_nodes per page and 64 slots
  	 * each, this will reclaim shadow entries when they consume
- 	 * ~2% of available memory:
+ 	 * ~1.8% of available memory:
  	 *
- 	 * PAGE_SIZE / radix_tree_nodes / node_entries / PAGE_SIZE
+ 	 * PAGE_SIZE / radix_tree_nodes / node_entries * 8 / PAGE_SIZE
  	 */
- 	max_nodes = pages >> (1 + RADIX_TREE_MAP_SHIFT - 3);
 -	if (memcg_kmem_enabled()) {
++	if (sc->memcg) {
+ 		cache = mem_cgroup_node_nr_lru_pages(sc->memcg, sc->nid,
+ 						     LRU_ALL_FILE);
+ 	} else {
+ 		cache = node_page_state(NODE_DATA(sc->nid), NR_ACTIVE_FILE) +
+ 			node_page_state(NODE_DATA(sc->nid), NR_INACTIVE_FILE);
+ 	}
+ 	max_nodes = cache >> (RADIX_TREE_MAP_SHIFT - 3);
  
- 	if (shadow_nodes <= max_nodes)
+ 	if (nodes <= max_nodes)
  		return 0;
- 
- 	return shadow_nodes - max_nodes;
+ 	return nodes - max_nodes;
  }
  
  static enum lru_status shadow_lru_isolate(struct list_head *item,

^ permalink raw reply

* Re: linux-next: build failure in the powerpc allyesconfig build
From: Stephen Rothwell @ 2016-12-05  5:24 UTC (permalink / raw)
  To: Michael Ellerman, Benjamin Herrenschmidt, PowerPC
  Cc: linux-next, linux-kernel, Nicholas Piggin
In-Reply-To: <20161205162204.02c2c236@canb.auug.org.au>

Hi all,

On Mon, 5 Dec 2016 16:22:04 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> After mergeing everything but Andrew's tree, today's linux-next build
> (powerpc allyesconfig) failed like this:
> 
> kallsyms failure: relative symbol value 0xc000000000000000 out of range in relative mode
> 
> I have no idea what caused this, so I have left the powerpc allyesconfig
> build broken for now.

Just as a data point, I tried reverting commit

  dadc4a1bb9f0 ("powerpc/64: Fix placement of .text to be immediately following .head.text")

but that did not help.
-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* linux-next: build failure in the powerpc allyesconfig build
From: Stephen Rothwell @ 2016-12-05  5:22 UTC (permalink / raw)
  To: Michael Ellerman, Benjamin Herrenschmidt, PowerPC
  Cc: linux-next, linux-kernel, Nicholas Piggin

Hi all,

After mergeing everything but Andrew's tree, today's linux-next build
(powerpc allyesconfig) failed like this:

kallsyms failure: relative symbol value 0xc000000000000000 out of range in relative mode

I have no idea what caused this, so I have left the powerpc allyesconfig
build broken for now.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* linux-next: manual merge of the kvm-ppc-paulus tree with Linus' tree
From: Stephen Rothwell @ 2016-12-05  3:13 UTC (permalink / raw)
  To: Paul Mackerras
  Cc: linux-next, linux-kernel, Nicholas Piggin, Michael Ellerman

Hi Paul,

Today's linux-next merge of the kvm-ppc-paulus tree got a conflict in:

  arch/powerpc/include/asm/asm-prototypes.h

between commit:

  9e5f68842276 ("powerpc: Fix missing CRCs, add more asm-prototypes.h declarations")

from Linus' tree and commit:

  e34af7849014 ("KVM: PPC: Book3S: Move prototypes for KVM functions into kvm_ppc.h")

from the kvm-ppc-paulus tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc arch/powerpc/include/asm/asm-prototypes.h
index 96790ca8b5f5,d1492736d852..000000000000
--- a/arch/powerpc/include/asm/asm-prototypes.h
+++ b/arch/powerpc/include/asm/asm-prototypes.h
@@@ -13,13 -13,7 +13,10 @@@
   */
  
  #include <linux/threads.h>
 -#include <linux/kprobes.h>
 +#include <asm/cacheflush.h>
 +#include <asm/checksum.h>
 +#include <asm/uaccess.h>
 +#include <asm/epapr_hcalls.h>
- #ifdef CONFIG_KVM
- #include <linux/kvm_host.h>
- #endif
  
  #include <uapi/asm/ucontext.h>
  
@@@ -115,53 -109,4 +112,12 @@@ void early_setup_secondary(void)
  /* time */
  void accumulate_stolen_time(void);
  
 +/* misc runtime */
 +extern u64 __bswapdi2(u64);
 +extern s64 __lshrdi3(s64, int);
 +extern s64 __ashldi3(s64, int);
 +extern s64 __ashrdi3(s64, int);
 +extern int __cmpdi2(s64, s64);
 +extern int __ucmpdi2(u64, u64);
 +
- /* kvm */
- #ifdef CONFIG_KVM
- long kvmppc_rm_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
- 			 unsigned long ioba, unsigned long tce);
- long kvmppc_rm_h_put_tce_indirect(struct kvm_vcpu *vcpu,
- 				  unsigned long liobn, unsigned long ioba,
- 				  unsigned long tce_list, unsigned long npages);
- long kvmppc_rm_h_stuff_tce(struct kvm_vcpu *vcpu,
- 			   unsigned long liobn, unsigned long ioba,
- 			   unsigned long tce_value, unsigned long npages);
- long int kvmppc_rm_h_confer(struct kvm_vcpu *vcpu, int target,
-                             unsigned int yield_count);
- long kvmppc_h_random(struct kvm_vcpu *vcpu);
- void kvmhv_commence_exit(int trap);
- long kvmppc_realmode_machine_check(struct kvm_vcpu *vcpu);
- void kvmppc_subcore_enter_guest(void);
- void kvmppc_subcore_exit_guest(void);
- long kvmppc_realmode_hmi_handler(void);
- long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags,
-                     long pte_index, unsigned long pteh, unsigned long ptel);
- long kvmppc_h_remove(struct kvm_vcpu *vcpu, unsigned long flags,
-                      unsigned long pte_index, unsigned long avpn);
- long kvmppc_h_bulk_remove(struct kvm_vcpu *vcpu);
- long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags,
-                       unsigned long pte_index, unsigned long avpn,
-                       unsigned long va);
- long kvmppc_h_read(struct kvm_vcpu *vcpu, unsigned long flags,
-                    unsigned long pte_index);
- long kvmppc_h_clear_ref(struct kvm_vcpu *vcpu, unsigned long flags,
-                         unsigned long pte_index);
- long kvmppc_h_clear_mod(struct kvm_vcpu *vcpu, unsigned long flags,
-                         unsigned long pte_index);
- long kvmppc_hpte_hv_fault(struct kvm_vcpu *vcpu, unsigned long addr,
-                           unsigned long slb_v, unsigned int status, bool data);
- unsigned long kvmppc_rm_h_xirr(struct kvm_vcpu *vcpu);
- int kvmppc_rm_h_ipi(struct kvm_vcpu *vcpu, unsigned long server,
-                     unsigned long mfrr);
- int kvmppc_rm_h_cppr(struct kvm_vcpu *vcpu, unsigned long cppr);
- int kvmppc_rm_h_eoi(struct kvm_vcpu *vcpu, unsigned long xirr);
- #endif
- 
  #endif /* _ASM_POWERPC_ASM_PROTOTYPES_H */

^ permalink raw reply

* linux-next: build warnings after merge of the netfilter-next tree
From: Stephen Rothwell @ 2016-12-05  1:19 UTC (permalink / raw)
  To: Pablo Neira Ayuso, NetFilter; +Cc: linux-next, linux-kernel

Hi all,

After merging the netfilter-next tree, today's linux-next build (x86_64
allmodconfig) produced this warning:

In file included from arch/x86/include/asm/checksum.h:4:0,
                 from include/net/checksum.h:26,
                 from include/linux/skbuff.h:31,
                 from include/linux/if_ether.h:23,
                 from include/uapi/linux/ethtool.h:18,
                 from include/linux/ethtool.h:17,
                 from include/linux/netdevice.h:42,
                 from include/linux/if_vlan.h:15,
                 from net/netfilter/nft_payload.c:13:
net/netfilter/nft_payload.c: In function 'nft_payload_set_eval':
arch/x86/include/asm/checksum_64.h:184:2: warning: 'tsum' may be used uninitialized in this function [-Wmaybe-uninitialized]
  asm("addl %2,%0\n\t"
  ^
net/netfilter/nft_payload.c:261:15: note: 'tsum' was declared here
  __wsum fsum, tsum;
               ^
In file included from include/linux/skbuff.h:31:0,
                 from include/linux/if_ether.h:23,
                 from include/uapi/linux/ethtool.h:18,
                 from include/linux/ethtool.h:17,
                 from include/linux/netdevice.h:42,
                 from include/linux/if_vlan.h:15,
                 from net/netfilter/nft_payload.c:13:
include/net/checksum.h:71:9: warning: 'fsum' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return csum_add(csum, ~addend);
         ^
net/netfilter/nft_payload.c:261:9: note: 'fsum' was declared here
  __wsum fsum, tsum;
         ^

Introduced by commit

  556c291b3a1b ("netfilter: nft_payload: layer 4 checksum adjustment for pseudoheader fields")

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* linux-next: possible removal of the kvm-ppc tree
From: Stephen Rothwell @ 2016-12-04 23:39 UTC (permalink / raw)
  To: Alexander Graf; +Cc: linux-next, linux-kernel, Paul Mackerras

Hi Alexander,

I noticed that the kvm-ppc tree
(git://github.com/agraf/linux-2.6.git#kvm-ppc-next) has not been
updated for over a year.  I was wondering if I should remove it from
linux-next?

If so, I will rename the kvm-ppc-paulus tree to be the kvm-ppc tree.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* linux-next: build failure after merge of the pinctrl tree
From: Stephen Rothwell @ 2016-12-04 23:00 UTC (permalink / raw)
  To: Linus Walleij; +Cc: linux-next, linux-kernel

Hi Linus,

After merging the pinctrl tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

drivers/gpio/gpio-pl061.c: In function 'pl061_irq_set_wake':
drivers/gpio/gpio-pl061.c:280:28: error: 'struct gpio_chip' has no member named 'irq_parent'
  return irq_set_irq_wake(gc->irq_parent, state);
                            ^
drivers/gpio/gpio-pl061.c:281:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

Caused by commit

  d245b3f9bd36 ("gpio: simplify adding threaded interrupts")

I have used the pinctrl tree from next-20161202 for today.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* Re: linux-next: unable to fetch the watchdog tree
From: Stephen Rothwell @ 2016-12-04 22:39 UTC (permalink / raw)
  To: Wim Van Sebroeck; +Cc: linux-next, linux-kernel
In-Reply-To: <20161122094919.2a7365e5@canb.auug.org.au>

Hi Wim,

On Tue, 22 Nov 2016 09:49:19 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> On Mon, 14 Nov 2016 16:26:16 +0100 Wim Van Sebroeck <wim@iguana.be> wrote:
> >
> > This has been fixed. Thanks for notifying me about it.
> >   
> > > For the past few days (nearly a week, sorry) fetching the watchdog tree
> > > (git://www.linux-watchdog.org/linux-watchdog-next.git#master) has
> > > resulted in a hung connection.  
> 
> It's happening again :-(

And again.  Have you considered moving your tree somewhere more
reliable like kernel.org?

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* (unknown), 
From: muirs @ 2016-12-03 19:41 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: MESSAGE_818_linux-next.zip --]
[-- Type: application/zip, Size: 1432 bytes --]

^ permalink raw reply

* Re: [PATCH net-next v2 6/6] tcp: SOF_TIMESTAMPING_OPT_STATS option for SO_TIMESTAMPING
From: Yuchung Cheng @ 2016-12-02 23:02 UTC (permalink / raw)
  To: Paul Gortmaker
  Cc: David Miller, Soheil Hassas Yeganeh, Francis Yan, netdev,
	Neal Cardwell, Eric Dumazet, linux-next@vger.kernel.org
In-Reply-To: <CAP=VYLov97ujr_mmjb2HbsgBhsex2cBaAsp92DDU+HdmyC_gtQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 14342 bytes --]

On Fri, Dec 2, 2016 at 2:30 PM, Paul Gortmaker
<paul.gortmaker@windriver.com> wrote:
> On Mon, Nov 28, 2016 at 2:07 AM, Yuchung Cheng <ycheng@google.com> wrote:
>> From: Francis Yan <francisyyan@gmail.com>
>>
>> This patch exports the sender chronograph stats via the socket
>> SO_TIMESTAMPING channel. Currently we can instrument how long a
>> particular application unit of data was queued in TCP by tracking
>> SOF_TIMESTAMPING_TX_SOFTWARE and SOF_TIMESTAMPING_TX_SCHED. Having
>
> Seems a new linux-next failure leads back to here ; I did not run a
> full bisect, since the variable seems confined to this commit:
>
> net/socket.c:701: error: 'SCM_TIMESTAMPING_OPT_STATS' undeclared
> (first use in this function)
>
> http://kisskb.ellerman.id.au/kisskb/buildresult/12875981/
oops didn't patch avr32 arch. Does this fix work?

>
> Paul.
> --
>
>> these sender chronograph stats exported simultaneously along with
>> these timestamps allow further breaking down the various sender
>> limitation.  For example, a video server can tell if a particular
>> chunk of video on a connection takes a long time to deliver because
>> TCP was experiencing small receive window. It is not possible to
>> tell before this patch without packet traces.
>>
>> To prepare these stats, the user needs to set
>> SOF_TIMESTAMPING_OPT_STATS and SOF_TIMESTAMPING_OPT_TSONLY flags
>> while requesting other SOF_TIMESTAMPING TX timestamps. When the
>> timestamps are available in the error queue, the stats are returned
>> in a separate control message of type SCM_TIMESTAMPING_OPT_STATS,
>> in a list of TLVs (struct nlattr) of types: TCP_NLA_BUSY_TIME,
>> TCP_NLA_RWND_LIMITED, TCP_NLA_SNDBUF_LIMITED. Unit is microsecond.
>>
>> Signed-off-by: Francis Yan <francisyyan@gmail.com>
>> Signed-off-by: Yuchung Cheng <ycheng@google.com>
>> Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
>> ---
>> ChangeLog since v1:
>>  - fix build break if CONFIG_INET is not defined
>>
>>  Documentation/networking/timestamping.txt | 10 ++++++++++
>>  arch/alpha/include/uapi/asm/socket.h      |  2 ++
>>  arch/frv/include/uapi/asm/socket.h        |  2 ++
>>  arch/ia64/include/uapi/asm/socket.h       |  2 ++
>>  arch/m32r/include/uapi/asm/socket.h       |  2 ++
>>  arch/mips/include/uapi/asm/socket.h       |  2 ++
>>  arch/mn10300/include/uapi/asm/socket.h    |  2 ++
>>  arch/parisc/include/uapi/asm/socket.h     |  2 ++
>>  arch/powerpc/include/uapi/asm/socket.h    |  2 ++
>>  arch/s390/include/uapi/asm/socket.h       |  2 ++
>>  arch/sparc/include/uapi/asm/socket.h      |  2 ++
>>  arch/xtensa/include/uapi/asm/socket.h     |  2 ++
>>  include/linux/tcp.h                       |  2 ++
>>  include/uapi/asm-generic/socket.h         |  2 ++
>>  include/uapi/linux/net_tstamp.h           |  3 ++-
>>  include/uapi/linux/tcp.h                  |  8 ++++++++
>>  net/core/skbuff.c                         | 14 +++++++++++---
>>  net/core/sock.c                           |  7 +++++++
>>  net/ipv4/tcp.c                            | 20 ++++++++++++++++++++
>>  net/socket.c                              |  7 ++++++-
>>  20 files changed, 90 insertions(+), 5 deletions(-)
>>
>> diff --git a/Documentation/networking/timestamping.txt b/Documentation/networking/timestamping.txt
>> index 671cccf..96f5069 100644
>> --- a/Documentation/networking/timestamping.txt
>> +++ b/Documentation/networking/timestamping.txt
>> @@ -182,6 +182,16 @@ SOF_TIMESTAMPING_OPT_TSONLY:
>>    the timestamp even if sysctl net.core.tstamp_allow_data is 0.
>>    This option disables SOF_TIMESTAMPING_OPT_CMSG.
>>
>> +SOF_TIMESTAMPING_OPT_STATS:
>> +
>> +  Optional stats that are obtained along with the transmit timestamps.
>> +  It must be used together with SOF_TIMESTAMPING_OPT_TSONLY. When the
>> +  transmit timestamp is available, the stats are available in a
>> +  separate control message of type SCM_TIMESTAMPING_OPT_STATS, as a
>> +  list of TLVs (struct nlattr) of types. These stats allow the
>> +  application to associate various transport layer stats with
>> +  the transmit timestamps, such as how long a certain block of
>> +  data was limited by peer's receiver window.
>>
>>  New applications are encouraged to pass SOF_TIMESTAMPING_OPT_ID to
>>  disambiguate timestamps and SOF_TIMESTAMPING_OPT_TSONLY to operate
>> diff --git a/arch/alpha/include/uapi/asm/socket.h b/arch/alpha/include/uapi/asm/socket.h
>> index 9e46d6e..afc901b 100644
>> --- a/arch/alpha/include/uapi/asm/socket.h
>> +++ b/arch/alpha/include/uapi/asm/socket.h
>> @@ -97,4 +97,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _UAPI_ASM_SOCKET_H */
>> diff --git a/arch/frv/include/uapi/asm/socket.h b/arch/frv/include/uapi/asm/socket.h
>> index afbc98f0..81e0353 100644
>> --- a/arch/frv/include/uapi/asm/socket.h
>> +++ b/arch/frv/include/uapi/asm/socket.h
>> @@ -90,5 +90,7 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _ASM_SOCKET_H */
>>
>> diff --git a/arch/ia64/include/uapi/asm/socket.h b/arch/ia64/include/uapi/asm/socket.h
>> index 0018fad..57feb0c 100644
>> --- a/arch/ia64/include/uapi/asm/socket.h
>> +++ b/arch/ia64/include/uapi/asm/socket.h
>> @@ -99,4 +99,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _ASM_IA64_SOCKET_H */
>> diff --git a/arch/m32r/include/uapi/asm/socket.h b/arch/m32r/include/uapi/asm/socket.h
>> index 5fe42fc..5853f8e9 100644
>> --- a/arch/m32r/include/uapi/asm/socket.h
>> +++ b/arch/m32r/include/uapi/asm/socket.h
>> @@ -90,4 +90,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _ASM_M32R_SOCKET_H */
>> diff --git a/arch/mips/include/uapi/asm/socket.h b/arch/mips/include/uapi/asm/socket.h
>> index 2027240a..566ecdc 100644
>> --- a/arch/mips/include/uapi/asm/socket.h
>> +++ b/arch/mips/include/uapi/asm/socket.h
>> @@ -108,4 +108,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _UAPI_ASM_SOCKET_H */
>> diff --git a/arch/mn10300/include/uapi/asm/socket.h b/arch/mn10300/include/uapi/asm/socket.h
>> index 5129f23..0e12527 100644
>> --- a/arch/mn10300/include/uapi/asm/socket.h
>> +++ b/arch/mn10300/include/uapi/asm/socket.h
>> @@ -90,4 +90,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _ASM_SOCKET_H */
>> diff --git a/arch/parisc/include/uapi/asm/socket.h b/arch/parisc/include/uapi/asm/socket.h
>> index 9c935d7..7a109b7 100644
>> --- a/arch/parisc/include/uapi/asm/socket.h
>> +++ b/arch/parisc/include/uapi/asm/socket.h
>> @@ -89,4 +89,6 @@
>>
>>  #define SO_CNX_ADVICE          0x402E
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     0x402F
>> +
>>  #endif /* _UAPI_ASM_SOCKET_H */
>> diff --git a/arch/powerpc/include/uapi/asm/socket.h b/arch/powerpc/include/uapi/asm/socket.h
>> index 1672e33..44583a5 100644
>> --- a/arch/powerpc/include/uapi/asm/socket.h
>> +++ b/arch/powerpc/include/uapi/asm/socket.h
>> @@ -97,4 +97,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _ASM_POWERPC_SOCKET_H */
>> diff --git a/arch/s390/include/uapi/asm/socket.h b/arch/s390/include/uapi/asm/socket.h
>> index 41b51c2..b24a64c 100644
>> --- a/arch/s390/include/uapi/asm/socket.h
>> +++ b/arch/s390/include/uapi/asm/socket.h
>> @@ -96,4 +96,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _ASM_SOCKET_H */
>> diff --git a/arch/sparc/include/uapi/asm/socket.h b/arch/sparc/include/uapi/asm/socket.h
>> index 31aede3..a25dc32 100644
>> --- a/arch/sparc/include/uapi/asm/socket.h
>> +++ b/arch/sparc/include/uapi/asm/socket.h
>> @@ -86,6 +86,8 @@
>>
>>  #define SO_CNX_ADVICE          0x0037
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     0x0038
>> +
>>  /* Security levels - as per NRL IPv6 - don't actually do anything */
>>  #define SO_SECURITY_AUTHENTICATION             0x5001
>>  #define SO_SECURITY_ENCRYPTION_TRANSPORT       0x5002
>> diff --git a/arch/xtensa/include/uapi/asm/socket.h b/arch/xtensa/include/uapi/asm/socket.h
>> index 81435d9..9fdbe1f 100644
>> --- a/arch/xtensa/include/uapi/asm/socket.h
>> +++ b/arch/xtensa/include/uapi/asm/socket.h
>> @@ -101,4 +101,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* _XTENSA_SOCKET_H */
>> diff --git a/include/linux/tcp.h b/include/linux/tcp.h
>> index d5d3bd8..00e0ee8 100644
>> --- a/include/linux/tcp.h
>> +++ b/include/linux/tcp.h
>> @@ -428,4 +428,6 @@ static inline void tcp_saved_syn_free(struct tcp_sock *tp)
>>         tp->saved_syn = NULL;
>>  }
>>
>> +struct sk_buff *tcp_get_timestamping_opt_stats(const struct sock *sk);
>> +
>>  #endif /* _LINUX_TCP_H */
>> diff --git a/include/uapi/asm-generic/socket.h b/include/uapi/asm-generic/socket.h
>> index 67d632f..2c748dd 100644
>> --- a/include/uapi/asm-generic/socket.h
>> +++ b/include/uapi/asm-generic/socket.h
>> @@ -92,4 +92,6 @@
>>
>>  #define SO_CNX_ADVICE          53
>>
>> +#define SCM_TIMESTAMPING_OPT_STATS     54
>> +
>>  #endif /* __ASM_GENERIC_SOCKET_H */
>> diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
>> index 264e515..464dcca 100644
>> --- a/include/uapi/linux/net_tstamp.h
>> +++ b/include/uapi/linux/net_tstamp.h
>> @@ -25,8 +25,9 @@ enum {
>>         SOF_TIMESTAMPING_TX_ACK = (1<<9),
>>         SOF_TIMESTAMPING_OPT_CMSG = (1<<10),
>>         SOF_TIMESTAMPING_OPT_TSONLY = (1<<11),
>> +       SOF_TIMESTAMPING_OPT_STATS = (1<<12),
>>
>> -       SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TSONLY,
>> +       SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_STATS,
>>         SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
>>                                  SOF_TIMESTAMPING_LAST
>>  };
>> diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h
>> index 2863b66..c53de26 100644
>> --- a/include/uapi/linux/tcp.h
>> +++ b/include/uapi/linux/tcp.h
>> @@ -220,6 +220,14 @@ struct tcp_info {
>>         __u64   tcpi_sndbuf_limited; /* Time (usec) limited by send buffer */
>>  };
>>
>> +/* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
>> +enum {
>> +       TCP_NLA_PAD,
>> +       TCP_NLA_BUSY,           /* Time (usec) busy sending data */
>> +       TCP_NLA_RWND_LIMITED,   /* Time (usec) limited by receive window */
>> +       TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */
>> +};
>> +
>>  /* for TCP_MD5SIG socket option */
>>  #define TCP_MD5SIG_MAXKEYLEN   80
>>
>> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
>> index d1d1a5a..ea6fa95 100644
>> --- a/net/core/skbuff.c
>> +++ b/net/core/skbuff.c
>> @@ -3839,10 +3839,18 @@ void __skb_tstamp_tx(struct sk_buff *orig_skb,
>>         if (!skb_may_tx_timestamp(sk, tsonly))
>>                 return;
>>
>> -       if (tsonly)
>> -               skb = alloc_skb(0, GFP_ATOMIC);
>> -       else
>> +       if (tsonly) {
>> +#ifdef CONFIG_INET
>> +               if ((sk->sk_tsflags & SOF_TIMESTAMPING_OPT_STATS) &&
>> +                   sk->sk_protocol == IPPROTO_TCP &&
>> +                   sk->sk_type == SOCK_STREAM)
>> +                       skb = tcp_get_timestamping_opt_stats(sk);
>> +               else
>> +#endif
>> +                       skb = alloc_skb(0, GFP_ATOMIC);
>> +       } else {
>>                 skb = skb_clone(orig_skb, GFP_ATOMIC);
>> +       }
>>         if (!skb)
>>                 return;
>>
>> diff --git a/net/core/sock.c b/net/core/sock.c
>> index 14e6145..d8c7f8c 100644
>> --- a/net/core/sock.c
>> +++ b/net/core/sock.c
>> @@ -854,6 +854,13 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
>>                                 sk->sk_tskey = 0;
>>                         }
>>                 }
>> +
>> +               if (val & SOF_TIMESTAMPING_OPT_STATS &&
>> +                   !(val & SOF_TIMESTAMPING_OPT_TSONLY)) {
>> +                       ret = -EINVAL;
>> +                       break;
>> +               }
>> +
>>                 sk->sk_tsflags = val;
>>                 if (val & SOF_TIMESTAMPING_RX_SOFTWARE)
>>                         sock_enable_timestamp(sk,
>> diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
>> index cdde20f..1149b48 100644
>> --- a/net/ipv4/tcp.c
>> +++ b/net/ipv4/tcp.c
>> @@ -2841,6 +2841,26 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info)
>>  }
>>  EXPORT_SYMBOL_GPL(tcp_get_info);
>>
>> +struct sk_buff *tcp_get_timestamping_opt_stats(const struct sock *sk)
>> +{
>> +       const struct tcp_sock *tp = tcp_sk(sk);
>> +       struct sk_buff *stats;
>> +       struct tcp_info info;
>> +
>> +       stats = alloc_skb(3 * nla_total_size_64bit(sizeof(u64)), GFP_ATOMIC);
>> +       if (!stats)
>> +               return NULL;
>> +
>> +       tcp_get_info_chrono_stats(tp, &info);
>> +       nla_put_u64_64bit(stats, TCP_NLA_BUSY,
>> +                         info.tcpi_busy_time, TCP_NLA_PAD);
>> +       nla_put_u64_64bit(stats, TCP_NLA_RWND_LIMITED,
>> +                         info.tcpi_rwnd_limited, TCP_NLA_PAD);
>> +       nla_put_u64_64bit(stats, TCP_NLA_SNDBUF_LIMITED,
>> +                         info.tcpi_sndbuf_limited, TCP_NLA_PAD);
>> +       return stats;
>> +}
>> +
>>  static int do_tcp_getsockopt(struct sock *sk, int level,
>>                 int optname, char __user *optval, int __user *optlen)
>>  {
>> diff --git a/net/socket.c b/net/socket.c
>> index e2584c5..e631894 100644
>> --- a/net/socket.c
>> +++ b/net/socket.c
>> @@ -693,9 +693,14 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
>>             (sk->sk_tsflags & SOF_TIMESTAMPING_RAW_HARDWARE) &&
>>             ktime_to_timespec_cond(shhwtstamps->hwtstamp, tss.ts + 2))
>>                 empty = 0;
>> -       if (!empty)
>> +       if (!empty) {
>>                 put_cmsg(msg, SOL_SOCKET,
>>                          SCM_TIMESTAMPING, sizeof(tss), &tss);
>> +
>> +               if (skb->len && (sk->sk_tsflags & SOF_TIMESTAMPING_OPT_STATS))
>> +                       put_cmsg(msg, SOL_SOCKET, SCM_TIMESTAMPING_OPT_STATS,
>> +                                skb->len, skb->data);
>> +       }
>>  }
>>  EXPORT_SYMBOL_GPL(__sock_recv_timestamp);
>>
>> --
>> 2.8.0.rc3.226.g39d4020
>>

[-- Attachment #2: ts-avr32-fix.diff --]
[-- Type: text/x-patch, Size: 335 bytes --]

diff --git a/arch/avr32/include/uapi/asm/socket.h b/arch/avr32/include/uapi/asm/socket.h
index 1fd147f..5a65042 100644
--- a/arch/avr32/include/uapi/asm/socket.h
+++ b/arch/avr32/include/uapi/asm/socket.h
@@ -90,4 +90,6 @@
 
 #define SO_CNX_ADVICE		53
 
+#define SCM_TIMESTAMPING_OPT_STATS	54
+
 #endif /* _UAPI__ASM_AVR32_SOCKET_H */

^ permalink raw reply related

* Re: [PATCH net-next v2 6/6] tcp: SOF_TIMESTAMPING_OPT_STATS option for SO_TIMESTAMPING
From: Paul Gortmaker @ 2016-12-02 22:30 UTC (permalink / raw)
  To: Yuchung Cheng
  Cc: David Miller, soheil, francisyyan, netdev, ncardwell, edumazet,
	linux-next@vger.kernel.org
In-Reply-To: <1480316838-154141-7-git-send-email-ycheng@google.com>

On Mon, Nov 28, 2016 at 2:07 AM, Yuchung Cheng <ycheng@google.com> wrote:
> From: Francis Yan <francisyyan@gmail.com>
>
> This patch exports the sender chronograph stats via the socket
> SO_TIMESTAMPING channel. Currently we can instrument how long a
> particular application unit of data was queued in TCP by tracking
> SOF_TIMESTAMPING_TX_SOFTWARE and SOF_TIMESTAMPING_TX_SCHED. Having

Seems a new linux-next failure leads back to here ; I did not run a
full bisect, since the variable seems confined to this commit:

net/socket.c:701: error: 'SCM_TIMESTAMPING_OPT_STATS' undeclared
(first use in this function)

http://kisskb.ellerman.id.au/kisskb/buildresult/12875981/

Paul.
--

> these sender chronograph stats exported simultaneously along with
> these timestamps allow further breaking down the various sender
> limitation.  For example, a video server can tell if a particular
> chunk of video on a connection takes a long time to deliver because
> TCP was experiencing small receive window. It is not possible to
> tell before this patch without packet traces.
>
> To prepare these stats, the user needs to set
> SOF_TIMESTAMPING_OPT_STATS and SOF_TIMESTAMPING_OPT_TSONLY flags
> while requesting other SOF_TIMESTAMPING TX timestamps. When the
> timestamps are available in the error queue, the stats are returned
> in a separate control message of type SCM_TIMESTAMPING_OPT_STATS,
> in a list of TLVs (struct nlattr) of types: TCP_NLA_BUSY_TIME,
> TCP_NLA_RWND_LIMITED, TCP_NLA_SNDBUF_LIMITED. Unit is microsecond.
>
> Signed-off-by: Francis Yan <francisyyan@gmail.com>
> Signed-off-by: Yuchung Cheng <ycheng@google.com>
> Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
> ---
> ChangeLog since v1:
>  - fix build break if CONFIG_INET is not defined
>
>  Documentation/networking/timestamping.txt | 10 ++++++++++
>  arch/alpha/include/uapi/asm/socket.h      |  2 ++
>  arch/frv/include/uapi/asm/socket.h        |  2 ++
>  arch/ia64/include/uapi/asm/socket.h       |  2 ++
>  arch/m32r/include/uapi/asm/socket.h       |  2 ++
>  arch/mips/include/uapi/asm/socket.h       |  2 ++
>  arch/mn10300/include/uapi/asm/socket.h    |  2 ++
>  arch/parisc/include/uapi/asm/socket.h     |  2 ++
>  arch/powerpc/include/uapi/asm/socket.h    |  2 ++
>  arch/s390/include/uapi/asm/socket.h       |  2 ++
>  arch/sparc/include/uapi/asm/socket.h      |  2 ++
>  arch/xtensa/include/uapi/asm/socket.h     |  2 ++
>  include/linux/tcp.h                       |  2 ++
>  include/uapi/asm-generic/socket.h         |  2 ++
>  include/uapi/linux/net_tstamp.h           |  3 ++-
>  include/uapi/linux/tcp.h                  |  8 ++++++++
>  net/core/skbuff.c                         | 14 +++++++++++---
>  net/core/sock.c                           |  7 +++++++
>  net/ipv4/tcp.c                            | 20 ++++++++++++++++++++
>  net/socket.c                              |  7 ++++++-
>  20 files changed, 90 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/networking/timestamping.txt b/Documentation/networking/timestamping.txt
> index 671cccf..96f5069 100644
> --- a/Documentation/networking/timestamping.txt
> +++ b/Documentation/networking/timestamping.txt
> @@ -182,6 +182,16 @@ SOF_TIMESTAMPING_OPT_TSONLY:
>    the timestamp even if sysctl net.core.tstamp_allow_data is 0.
>    This option disables SOF_TIMESTAMPING_OPT_CMSG.
>
> +SOF_TIMESTAMPING_OPT_STATS:
> +
> +  Optional stats that are obtained along with the transmit timestamps.
> +  It must be used together with SOF_TIMESTAMPING_OPT_TSONLY. When the
> +  transmit timestamp is available, the stats are available in a
> +  separate control message of type SCM_TIMESTAMPING_OPT_STATS, as a
> +  list of TLVs (struct nlattr) of types. These stats allow the
> +  application to associate various transport layer stats with
> +  the transmit timestamps, such as how long a certain block of
> +  data was limited by peer's receiver window.
>
>  New applications are encouraged to pass SOF_TIMESTAMPING_OPT_ID to
>  disambiguate timestamps and SOF_TIMESTAMPING_OPT_TSONLY to operate
> diff --git a/arch/alpha/include/uapi/asm/socket.h b/arch/alpha/include/uapi/asm/socket.h
> index 9e46d6e..afc901b 100644
> --- a/arch/alpha/include/uapi/asm/socket.h
> +++ b/arch/alpha/include/uapi/asm/socket.h
> @@ -97,4 +97,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _UAPI_ASM_SOCKET_H */
> diff --git a/arch/frv/include/uapi/asm/socket.h b/arch/frv/include/uapi/asm/socket.h
> index afbc98f0..81e0353 100644
> --- a/arch/frv/include/uapi/asm/socket.h
> +++ b/arch/frv/include/uapi/asm/socket.h
> @@ -90,5 +90,7 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _ASM_SOCKET_H */
>
> diff --git a/arch/ia64/include/uapi/asm/socket.h b/arch/ia64/include/uapi/asm/socket.h
> index 0018fad..57feb0c 100644
> --- a/arch/ia64/include/uapi/asm/socket.h
> +++ b/arch/ia64/include/uapi/asm/socket.h
> @@ -99,4 +99,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _ASM_IA64_SOCKET_H */
> diff --git a/arch/m32r/include/uapi/asm/socket.h b/arch/m32r/include/uapi/asm/socket.h
> index 5fe42fc..5853f8e9 100644
> --- a/arch/m32r/include/uapi/asm/socket.h
> +++ b/arch/m32r/include/uapi/asm/socket.h
> @@ -90,4 +90,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _ASM_M32R_SOCKET_H */
> diff --git a/arch/mips/include/uapi/asm/socket.h b/arch/mips/include/uapi/asm/socket.h
> index 2027240a..566ecdc 100644
> --- a/arch/mips/include/uapi/asm/socket.h
> +++ b/arch/mips/include/uapi/asm/socket.h
> @@ -108,4 +108,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _UAPI_ASM_SOCKET_H */
> diff --git a/arch/mn10300/include/uapi/asm/socket.h b/arch/mn10300/include/uapi/asm/socket.h
> index 5129f23..0e12527 100644
> --- a/arch/mn10300/include/uapi/asm/socket.h
> +++ b/arch/mn10300/include/uapi/asm/socket.h
> @@ -90,4 +90,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _ASM_SOCKET_H */
> diff --git a/arch/parisc/include/uapi/asm/socket.h b/arch/parisc/include/uapi/asm/socket.h
> index 9c935d7..7a109b7 100644
> --- a/arch/parisc/include/uapi/asm/socket.h
> +++ b/arch/parisc/include/uapi/asm/socket.h
> @@ -89,4 +89,6 @@
>
>  #define SO_CNX_ADVICE          0x402E
>
> +#define SCM_TIMESTAMPING_OPT_STATS     0x402F
> +
>  #endif /* _UAPI_ASM_SOCKET_H */
> diff --git a/arch/powerpc/include/uapi/asm/socket.h b/arch/powerpc/include/uapi/asm/socket.h
> index 1672e33..44583a5 100644
> --- a/arch/powerpc/include/uapi/asm/socket.h
> +++ b/arch/powerpc/include/uapi/asm/socket.h
> @@ -97,4 +97,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _ASM_POWERPC_SOCKET_H */
> diff --git a/arch/s390/include/uapi/asm/socket.h b/arch/s390/include/uapi/asm/socket.h
> index 41b51c2..b24a64c 100644
> --- a/arch/s390/include/uapi/asm/socket.h
> +++ b/arch/s390/include/uapi/asm/socket.h
> @@ -96,4 +96,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _ASM_SOCKET_H */
> diff --git a/arch/sparc/include/uapi/asm/socket.h b/arch/sparc/include/uapi/asm/socket.h
> index 31aede3..a25dc32 100644
> --- a/arch/sparc/include/uapi/asm/socket.h
> +++ b/arch/sparc/include/uapi/asm/socket.h
> @@ -86,6 +86,8 @@
>
>  #define SO_CNX_ADVICE          0x0037
>
> +#define SCM_TIMESTAMPING_OPT_STATS     0x0038
> +
>  /* Security levels - as per NRL IPv6 - don't actually do anything */
>  #define SO_SECURITY_AUTHENTICATION             0x5001
>  #define SO_SECURITY_ENCRYPTION_TRANSPORT       0x5002
> diff --git a/arch/xtensa/include/uapi/asm/socket.h b/arch/xtensa/include/uapi/asm/socket.h
> index 81435d9..9fdbe1f 100644
> --- a/arch/xtensa/include/uapi/asm/socket.h
> +++ b/arch/xtensa/include/uapi/asm/socket.h
> @@ -101,4 +101,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* _XTENSA_SOCKET_H */
> diff --git a/include/linux/tcp.h b/include/linux/tcp.h
> index d5d3bd8..00e0ee8 100644
> --- a/include/linux/tcp.h
> +++ b/include/linux/tcp.h
> @@ -428,4 +428,6 @@ static inline void tcp_saved_syn_free(struct tcp_sock *tp)
>         tp->saved_syn = NULL;
>  }
>
> +struct sk_buff *tcp_get_timestamping_opt_stats(const struct sock *sk);
> +
>  #endif /* _LINUX_TCP_H */
> diff --git a/include/uapi/asm-generic/socket.h b/include/uapi/asm-generic/socket.h
> index 67d632f..2c748dd 100644
> --- a/include/uapi/asm-generic/socket.h
> +++ b/include/uapi/asm-generic/socket.h
> @@ -92,4 +92,6 @@
>
>  #define SO_CNX_ADVICE          53
>
> +#define SCM_TIMESTAMPING_OPT_STATS     54
> +
>  #endif /* __ASM_GENERIC_SOCKET_H */
> diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
> index 264e515..464dcca 100644
> --- a/include/uapi/linux/net_tstamp.h
> +++ b/include/uapi/linux/net_tstamp.h
> @@ -25,8 +25,9 @@ enum {
>         SOF_TIMESTAMPING_TX_ACK = (1<<9),
>         SOF_TIMESTAMPING_OPT_CMSG = (1<<10),
>         SOF_TIMESTAMPING_OPT_TSONLY = (1<<11),
> +       SOF_TIMESTAMPING_OPT_STATS = (1<<12),
>
> -       SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TSONLY,
> +       SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_STATS,
>         SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
>                                  SOF_TIMESTAMPING_LAST
>  };
> diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h
> index 2863b66..c53de26 100644
> --- a/include/uapi/linux/tcp.h
> +++ b/include/uapi/linux/tcp.h
> @@ -220,6 +220,14 @@ struct tcp_info {
>         __u64   tcpi_sndbuf_limited; /* Time (usec) limited by send buffer */
>  };
>
> +/* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
> +enum {
> +       TCP_NLA_PAD,
> +       TCP_NLA_BUSY,           /* Time (usec) busy sending data */
> +       TCP_NLA_RWND_LIMITED,   /* Time (usec) limited by receive window */
> +       TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */
> +};
> +
>  /* for TCP_MD5SIG socket option */
>  #define TCP_MD5SIG_MAXKEYLEN   80
>
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index d1d1a5a..ea6fa95 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -3839,10 +3839,18 @@ void __skb_tstamp_tx(struct sk_buff *orig_skb,
>         if (!skb_may_tx_timestamp(sk, tsonly))
>                 return;
>
> -       if (tsonly)
> -               skb = alloc_skb(0, GFP_ATOMIC);
> -       else
> +       if (tsonly) {
> +#ifdef CONFIG_INET
> +               if ((sk->sk_tsflags & SOF_TIMESTAMPING_OPT_STATS) &&
> +                   sk->sk_protocol == IPPROTO_TCP &&
> +                   sk->sk_type == SOCK_STREAM)
> +                       skb = tcp_get_timestamping_opt_stats(sk);
> +               else
> +#endif
> +                       skb = alloc_skb(0, GFP_ATOMIC);
> +       } else {
>                 skb = skb_clone(orig_skb, GFP_ATOMIC);
> +       }
>         if (!skb)
>                 return;
>
> diff --git a/net/core/sock.c b/net/core/sock.c
> index 14e6145..d8c7f8c 100644
> --- a/net/core/sock.c
> +++ b/net/core/sock.c
> @@ -854,6 +854,13 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
>                                 sk->sk_tskey = 0;
>                         }
>                 }
> +
> +               if (val & SOF_TIMESTAMPING_OPT_STATS &&
> +                   !(val & SOF_TIMESTAMPING_OPT_TSONLY)) {
> +                       ret = -EINVAL;
> +                       break;
> +               }
> +
>                 sk->sk_tsflags = val;
>                 if (val & SOF_TIMESTAMPING_RX_SOFTWARE)
>                         sock_enable_timestamp(sk,
> diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
> index cdde20f..1149b48 100644
> --- a/net/ipv4/tcp.c
> +++ b/net/ipv4/tcp.c
> @@ -2841,6 +2841,26 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info)
>  }
>  EXPORT_SYMBOL_GPL(tcp_get_info);
>
> +struct sk_buff *tcp_get_timestamping_opt_stats(const struct sock *sk)
> +{
> +       const struct tcp_sock *tp = tcp_sk(sk);
> +       struct sk_buff *stats;
> +       struct tcp_info info;
> +
> +       stats = alloc_skb(3 * nla_total_size_64bit(sizeof(u64)), GFP_ATOMIC);
> +       if (!stats)
> +               return NULL;
> +
> +       tcp_get_info_chrono_stats(tp, &info);
> +       nla_put_u64_64bit(stats, TCP_NLA_BUSY,
> +                         info.tcpi_busy_time, TCP_NLA_PAD);
> +       nla_put_u64_64bit(stats, TCP_NLA_RWND_LIMITED,
> +                         info.tcpi_rwnd_limited, TCP_NLA_PAD);
> +       nla_put_u64_64bit(stats, TCP_NLA_SNDBUF_LIMITED,
> +                         info.tcpi_sndbuf_limited, TCP_NLA_PAD);
> +       return stats;
> +}
> +
>  static int do_tcp_getsockopt(struct sock *sk, int level,
>                 int optname, char __user *optval, int __user *optlen)
>  {
> diff --git a/net/socket.c b/net/socket.c
> index e2584c5..e631894 100644
> --- a/net/socket.c
> +++ b/net/socket.c
> @@ -693,9 +693,14 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
>             (sk->sk_tsflags & SOF_TIMESTAMPING_RAW_HARDWARE) &&
>             ktime_to_timespec_cond(shhwtstamps->hwtstamp, tss.ts + 2))
>                 empty = 0;
> -       if (!empty)
> +       if (!empty) {
>                 put_cmsg(msg, SOL_SOCKET,
>                          SCM_TIMESTAMPING, sizeof(tss), &tss);
> +
> +               if (skb->len && (sk->sk_tsflags & SOF_TIMESTAMPING_OPT_STATS))
> +                       put_cmsg(msg, SOL_SOCKET, SCM_TIMESTAMPING_OPT_STATS,
> +                                skb->len, skb->data);
> +       }
>  }
>  EXPORT_SYMBOL_GPL(__sock_recv_timestamp);
>
> --
> 2.8.0.rc3.226.g39d4020
>

^ permalink raw reply

* next-20161202 build: 1 failures 1 warnings (next-20161202)
From: Build bot for Mark Brown @ 2016-12-02  7:13 UTC (permalink / raw)
  To: kernel-build-reports, linaro-kernel, linux-next

Tree/Branch: next-20161202
Git describe: next-20161202
Commit: e05f574a0b Add linux-next specific files for 20161202

Build Time: 90 min 7 sec

Passed:    9 / 10   ( 90.00 %)
Failed:    1 / 10   ( 10.00 %)

Errors: 4
Warnings: 1
Section Mismatches: 0

Failed defconfigs:
	arm-allmodconfig

Errors:

	arm-allmodconfig
ERROR: "cpdma_chan_set_weight" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
ERROR: "cpdma_chan_get_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
ERROR: "cpdma_chan_get_min_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
ERROR: "cpdma_chan_set_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!

-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
      1 warnings    0 mismatches  : arm64-defconfig

-------------------------------------------------------------------------------

Errors summary: 4
	  1 ERROR: "cpdma_chan_set_weight" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
	  1 ERROR: "cpdma_chan_set_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
	  1 ERROR: "cpdma_chan_get_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
	  1 ERROR: "cpdma_chan_get_min_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!

Warnings Summary: 1
	  1 ../fs/btrfs/inode.c:1198:31: warning: 'cur_end' may be used uninitialized in this function [-Wmaybe-uninitialized]



===============================================================================
Detailed per-defconfig build reports below:


-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 4 errors, 0 warnings, 0 section mismatches

Errors:
	ERROR: "cpdma_chan_set_weight" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
	ERROR: "cpdma_chan_get_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
	ERROR: "cpdma_chan_get_min_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!
	ERROR: "cpdma_chan_set_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined!

-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches

Warnings:
	../fs/btrfs/inode.c:1198:31: warning: 'cur_end' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------

Passed with no errors, warnings or mismatches:

arm64-allnoconfig
arm64-allmodconfig
arm-multi_v5_defconfig
arm-multi_v7_defconfig
x86_64-defconfig
arm-allnoconfig
x86_64-allnoconfig
arm-multi_v4t_defconfig

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox