]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
11 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Wed, 20 Feb 2013 01:16:06 +0000 (12:16 +1100)]
Merge remote-tracking branch 'hid/for-next'

11 years agoMerge remote-tracking branch 'pci/next'
Stephen Rothwell [Wed, 20 Feb 2013 01:12:45 +0000 (12:12 +1100)]
Merge remote-tracking branch 'pci/next'

Conflicts:
arch/ia64/pci/pci.c

11 years agoMerge remote-tracking branch 'xfs/for-next'
Stephen Rothwell [Wed, 20 Feb 2013 01:11:15 +0000 (12:11 +1100)]
Merge remote-tracking branch 'xfs/for-next'

Conflicts:
fs/xfs/xfs_buf_item.c

11 years agoMerge remote-tracking branch 'v9fs/for-next'
Stephen Rothwell [Wed, 20 Feb 2013 01:09:51 +0000 (12:09 +1100)]
Merge remote-tracking branch 'v9fs/for-next'

11 years agoMerge remote-tracking branch 'ocfs2/linux-next'
Stephen Rothwell [Wed, 20 Feb 2013 01:08:06 +0000 (12:08 +1100)]
Merge remote-tracking branch 'ocfs2/linux-next'

11 years agoMerge remote-tracking branch 'nfsd/nfsd-next'
Stephen Rothwell [Wed, 20 Feb 2013 01:06:33 +0000 (12:06 +1100)]
Merge remote-tracking branch 'nfsd/nfsd-next'

11 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Wed, 20 Feb 2013 01:04:12 +0000 (12:04 +1100)]
Merge remote-tracking branch 'nfs/linux-next'

11 years agoMerge remote-tracking branch 'logfs/master'
Stephen Rothwell [Wed, 20 Feb 2013 01:02:38 +0000 (12:02 +1100)]
Merge remote-tracking branch 'logfs/master'

11 years agoMerge remote-tracking branch 'jfs/jfs-next'
Stephen Rothwell [Wed, 20 Feb 2013 01:01:15 +0000 (12:01 +1100)]
Merge remote-tracking branch 'jfs/jfs-next'

11 years agoMerge remote-tracking branch 'gfs2/master'
Stephen Rothwell [Wed, 20 Feb 2013 00:58:58 +0000 (11:58 +1100)]
Merge remote-tracking branch 'gfs2/master'

11 years agoMerge remote-tracking branch 'fuse/for-next'
Stephen Rothwell [Wed, 20 Feb 2013 00:52:25 +0000 (11:52 +1100)]
Merge remote-tracking branch 'fuse/for-next'

11 years agoMerge remote-tracking branch 'f2fs/dev'
Stephen Rothwell [Wed, 20 Feb 2013 00:51:03 +0000 (11:51 +1100)]
Merge remote-tracking branch 'f2fs/dev'

11 years agoMerge remote-tracking branch 'ext4/dev'
Stephen Rothwell [Wed, 20 Feb 2013 00:43:43 +0000 (11:43 +1100)]
Merge remote-tracking branch 'ext4/dev'

11 years agoMerge remote-tracking branch 'ext3/for_next'
Stephen Rothwell [Wed, 20 Feb 2013 00:42:20 +0000 (11:42 +1100)]
Merge remote-tracking branch 'ext3/for_next'

11 years agoMerge remote-tracking branch 'ecryptfs/next'
Stephen Rothwell [Wed, 20 Feb 2013 00:40:59 +0000 (11:40 +1100)]
Merge remote-tracking branch 'ecryptfs/next'

11 years agoMerge remote-tracking branch 'cifs/for-next'
Stephen Rothwell [Wed, 20 Feb 2013 00:39:35 +0000 (11:39 +1100)]
Merge remote-tracking branch 'cifs/for-next'

11 years agoMerge remote-tracking branch 'ceph/master'
Stephen Rothwell [Wed, 20 Feb 2013 00:38:12 +0000 (11:38 +1100)]
Merge remote-tracking branch 'ceph/master'

11 years agoMerge remote-tracking branch 'btrfs/next'
Stephen Rothwell [Wed, 20 Feb 2013 00:38:10 +0000 (11:38 +1100)]
Merge remote-tracking branch 'btrfs/next'

11 years agoMerge remote-tracking branch 'xtensa/for_next'
Stephen Rothwell [Wed, 20 Feb 2013 00:36:48 +0000 (11:36 +1100)]
Merge remote-tracking branch 'xtensa/for_next'

11 years agoMerge remote-tracking branch 'tile/master'
Stephen Rothwell [Wed, 20 Feb 2013 00:35:25 +0000 (11:35 +1100)]
Merge remote-tracking branch 'tile/master'

11 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Wed, 20 Feb 2013 00:28:13 +0000 (11:28 +1100)]
Merge remote-tracking branch 's390/features'

11 years agoMerge remote-tracking branch 'galak/next'
Stephen Rothwell [Wed, 20 Feb 2013 00:26:52 +0000 (11:26 +1100)]
Merge remote-tracking branch 'galak/next'

Conflicts:
Documentation/devicetree/bindings/crypto/fsl-sec4.txt

11 years agoMerge remote-tracking branch 'mpc5xxx/next'
Stephen Rothwell [Wed, 20 Feb 2013 00:25:30 +0000 (11:25 +1100)]
Merge remote-tracking branch 'mpc5xxx/next'

11 years agoMerge remote-tracking branch 'powerpc/next'
Stephen Rothwell [Wed, 20 Feb 2013 00:22:58 +0000 (11:22 +1100)]
Merge remote-tracking branch 'powerpc/next'

11 years agoMerge remote-tracking branch 'parisc/for-next'
Stephen Rothwell [Wed, 20 Feb 2013 00:20:52 +0000 (11:20 +1100)]
Merge remote-tracking branch 'parisc/for-next'

11 years agoMerge remote-tracking branch 'openrisc/for-upstream'
Stephen Rothwell [Wed, 20 Feb 2013 00:19:32 +0000 (11:19 +1100)]
Merge remote-tracking branch 'openrisc/for-upstream'

11 years ago20130215/mips
Stephen Rothwell [Wed, 20 Feb 2013 00:17:20 +0000 (11:17 +1100)]
20130215/mips

11 years agoMerge remote-tracking branch 'microblaze/next'
Stephen Rothwell [Tue, 19 Feb 2013 23:59:55 +0000 (10:59 +1100)]
Merge remote-tracking branch 'microblaze/next'

11 years agoMerge remote-tracking branch 'metag/for-next'
Stephen Rothwell [Tue, 19 Feb 2013 23:52:22 +0000 (10:52 +1100)]
Merge remote-tracking branch 'metag/for-next'

Conflicts:
tools/perf/perf.h

11 years agoMerge remote-tracking branch 'm68knommu/for-next'
Stephen Rothwell [Tue, 19 Feb 2013 23:52:20 +0000 (10:52 +1100)]
Merge remote-tracking branch 'm68knommu/for-next'

11 years agoMerge remote-tracking branch 'ia64/next'
Stephen Rothwell [Tue, 19 Feb 2013 23:50:58 +0000 (10:50 +1100)]
Merge remote-tracking branch 'ia64/next'

Conflicts:
drivers/firmware/efivars.c
init/Kconfig

11 years agoMerge remote-tracking branch 'arm64/upstream'
Stephen Rothwell [Tue, 19 Feb 2013 23:49:30 +0000 (10:49 +1100)]
Merge remote-tracking branch 'arm64/upstream'

11 years agoMerge remote-tracking branch 'xilinx/arm-next'
Stephen Rothwell [Tue, 19 Feb 2013 23:48:08 +0000 (10:48 +1100)]
Merge remote-tracking branch 'xilinx/arm-next'

11 years agoMerge remote-tracking branch 'arm-perf/for-next/perf'
Stephen Rothwell [Tue, 19 Feb 2013 23:48:05 +0000 (10:48 +1100)]
Merge remote-tracking branch 'arm-perf/for-next/perf'

11 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Tue, 19 Feb 2013 23:46:38 +0000 (10:46 +1100)]
Merge remote-tracking branch 'arm/for-next'

11 years agoMerge remote-tracking branch 'arc/for-next'
Stephen Rothwell [Tue, 19 Feb 2013 23:44:33 +0000 (10:44 +1100)]
Merge remote-tracking branch 'arc/for-next'

11 years agoMerge remote-tracking branch 'dwmw2/master'
Stephen Rothwell [Tue, 19 Feb 2013 23:37:15 +0000 (10:37 +1100)]
Merge remote-tracking branch 'dwmw2/master'

Conflicts:
arch/x86/Kconfig

11 years agoMerge remote-tracking branch 'crypto-current/master'
Stephen Rothwell [Tue, 19 Feb 2013 23:37:11 +0000 (10:37 +1100)]
Merge remote-tracking branch 'crypto-current/master'

11 years agoMerge remote-tracking branch 'md-current/for-linus'
Stephen Rothwell [Tue, 19 Feb 2013 23:37:08 +0000 (10:37 +1100)]
Merge remote-tracking branch 'md-current/for-linus'

11 years agoMerge remote-tracking branch 'sound-current/for-linus'
Stephen Rothwell [Tue, 19 Feb 2013 23:36:56 +0000 (10:36 +1100)]
Merge remote-tracking branch 'sound-current/for-linus'

11 years agoMerge remote-tracking branch 'net/master'
Stephen Rothwell [Tue, 19 Feb 2013 23:36:55 +0000 (10:36 +1100)]
Merge remote-tracking branch 'net/master'

11 years agoMerge remote-tracking branch 'm68k-current/for-linus'
Stephen Rothwell [Tue, 19 Feb 2013 23:36:54 +0000 (10:36 +1100)]
Merge remote-tracking branch 'm68k-current/for-linus'

11 years agoMerge remote-tracking branch 'arm-current/fixes'
Stephen Rothwell [Tue, 19 Feb 2013 23:36:53 +0000 (10:36 +1100)]
Merge remote-tracking branch 'arm-current/fixes'

11 years agoMerge remote-tracking branch 'kbuild-current/rc-fixes'
Stephen Rothwell [Tue, 19 Feb 2013 23:36:52 +0000 (10:36 +1100)]
Merge remote-tracking branch 'kbuild-current/rc-fixes'

11 years agoMerge branch 'pci/yinghai-root-bus-hotplug' into next
Bjorn Helgaas [Tue, 19 Feb 2013 18:42:17 +0000 (11:42 -0700)]
Merge branch 'pci/yinghai-root-bus-hotplug' into next

* pci/yinghai-root-bus-hotplug:
  PCI/ACPI: Don't cache _PRT, and don't associate them with bus numbers

11 years agoNLM: Ensure that we resend all pending blocking locks after a reclaim
Trond Myklebust [Tue, 19 Feb 2013 17:04:42 +0000 (12:04 -0500)]
NLM: Ensure that we resend all pending blocking locks after a reclaim

Currently, nlmclnt_lock will break out of the for(;;) loop when
the reclaimer wakes up the blocking lock thread by setting
nlm_lck_denied_grace_period. This causes the lock request to fail
with an ENOLCK error.
The intention was always to ensure that we resend the lock request
after the grace period has expired.

Reported-by: Wangyuan Zhang <Wangyuan.Zhang@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org
11 years agopowerpc/85xx: l2sram - Add compatible string for BSC9131 platform
Harninder Rai [Tue, 19 Feb 2013 09:14:21 +0000 (14:44 +0530)]
powerpc/85xx: l2sram - Add compatible string for BSC9131 platform

Signed-off-by: Harninder Rai <harninder.rai@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
11 years agopowerpc/85xx: bsc9131 - Correct typo in SDHC device node
Harninder Rai [Tue, 19 Feb 2013 09:13:58 +0000 (14:43 +0530)]
powerpc/85xx: bsc9131 - Correct typo in SDHC device node

BSC9131RDB doesn't have SDHC enabled. As a result of this typo,
the node was not getting disabled from the device tree which was
leading to linux hang during bootup

Signed-off-by: Harninder Rai <harninder.rai@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
11 years agoMerge branch 'for-3.9/hidraw' into for-next
Jiri Kosina [Tue, 19 Feb 2013 13:49:28 +0000 (14:49 +0100)]
Merge branch 'for-3.9/hidraw' into for-next

11 years agoHID: hidraw: print message when succesfully initialized
Jiri Kosina [Tue, 19 Feb 2013 13:05:34 +0000 (14:05 +0100)]
HID: hidraw: print message when succesfully initialized

Print a message when hidraw has been succesfully initialized.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agoMerge branch 'for-3.9/logitech' into for-next
Jiri Kosina [Tue, 19 Feb 2013 12:52:23 +0000 (13:52 +0100)]
Merge branch 'for-3.9/logitech' into for-next

11 years agoHID: logitech: split accel, brake for Driving Force wheel
Paul Sbarra [Sun, 17 Feb 2013 17:53:14 +0000 (11:53 -0600)]
HID: logitech: split accel, brake for Driving Force wheel

Signed-off-by: Paul Sbarra <sbarra.paul@gmail.com>
Signed-off-by: Simon Wood <simon@mungewell.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agoHID: logitech: add report descriptor for Driving Force wheel
Paul Sbarra [Sun, 17 Feb 2013 17:53:13 +0000 (11:53 -0600)]
HID: logitech: add report descriptor for Driving Force wheel

This is the original report descriptor as reported by lsusb -vd 046d:c294.

Signed-off-by: Paul Sbarra <sbarra.paul@gmail.com>
Signed-off-by: Simon Wood <simon@mungewell.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agocrypto: user - ensure user supplied strings are nul-terminated
Mathias Krause [Tue, 5 Feb 2013 17:19:15 +0000 (18:19 +0100)]
crypto: user - ensure user supplied strings are nul-terminated

To avoid misuse, ensure cru_name and cru_driver_name are always
nul-terminated strings.

Signed-off-by: Mathias Krause <minipli@googlemail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
11 years agocrypto: user - fix empty string test in report API
Mathias Krause [Tue, 5 Feb 2013 17:19:14 +0000 (18:19 +0100)]
crypto: user - fix empty string test in report API

The current test for empty strings fails because it is testing the
address of a field, not a pointer. So the test will always be true.
Test the first character in the string to not be null instead.

Signed-off-by: Mathias Krause <minipli@googlemail.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
11 years agocrypto: user - fix info leaks in report API
Mathias Krause [Tue, 5 Feb 2013 17:19:13 +0000 (18:19 +0100)]
crypto: user - fix info leaks in report API

Three errors resulting in kernel memory disclosure:

1/ The structures used for the netlink based crypto algorithm report API
are located on the stack. As snprintf() does not fill the remainder of
the buffer with null bytes, those stack bytes will be disclosed to users
of the API. Switch to strncpy() to fix this.

2/ crypto_report_one() does not initialize all field of struct
crypto_user_alg. Fix this to fix the heap info leak.

3/ For the module name we should copy only as many bytes as
module_name() returns -- not as much as the destination buffer could
hold. But the current code does not and therefore copies random data
from behind the end of the module name, as the module name is always
shorter than CRYPTO_MAX_ALG_NAME.

Also switch to use strncpy() to copy the algorithm's name and
driver_name. They are strings, after all.

Signed-off-by: Mathias Krause <minipli@googlemail.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
11 years agoMerge branch 'for-3.9/thingm' into for-next
Jiri Kosina [Tue, 19 Feb 2013 10:33:45 +0000 (11:33 +0100)]
Merge branch 'for-3.9/thingm' into for-next

11 years agoHID: add ThingM blink(1) USB RGB LED support
Vivien Didelot [Tue, 22 Jan 2013 17:01:21 +0000 (12:01 -0500)]
HID: add ThingM blink(1) USB RGB LED support

The ThingM blink(1) is an open source hardware USB RGB LED. It contains
an internal EEPROM, allowing to configure up to 12 light patterns. A
light pattern is a RGB color plus a fade time. This driver registers a
LED class instance with additional sysfs attributes to support basic
functions such as setting RGB colors, fade and playing. Other functions
are still accessible through the hidraw interface.

At this time, the only documentation for the device is the firmware
source code from ThingM, plus a few schematics. They are available at:

https://github.com/todbot/blink1

This patch is version 3. It updates the name of the source file, the
driver and the led sysfs entry, according to comments from Jiri Kosina
and Simon Wood.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agocifs: set MAY_SIGN when sec=krb5
Martijn de Gouw [Wed, 24 Oct 2012 09:45:46 +0000 (11:45 +0200)]
cifs: set MAY_SIGN when sec=krb5

Setting this secFlg allows usage of dfs where some servers require
signing and others don't.

Signed-off-by: Martijn de Gouw <martijn.de.gouw@prodrive.nl>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
11 years agoPOSIX extensions disabled on client due to illegal O_EXCL flag sent to Samba
Steve French [Mon, 18 Feb 2013 16:34:26 +0000 (10:34 -0600)]
POSIX extensions disabled on client due to illegal O_EXCL flag sent to Samba

Samba rejected libreoffice's attempt to open a file with illegal
O_EXCL (without O_CREAT).  Mask this flag off (as the local
linux file system case does) for this case, so that we
don't have disable Unix Extensions unnecessarily due to
the Samba error (Samba server is also being fixed).

See https://bugzilla.samba.org/show_bug.cgi?id=9519

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
11 years agocifs: bugfix for unreclaimed writeback pages in cifs_writev_requeue()
Steve French [Mon, 18 Feb 2013 15:54:52 +0000 (09:54 -0600)]
cifs: bugfix for unreclaimed writeback pages in cifs_writev_requeue()

Pages get the PG_writeback flag set before cifs sends its
request to SMB server in cifs_writepages(), if the SMB service
goes down, cifs may try to recommit the writing requests in
cifs_writev_requeue(). However, it does not clean its PG_writeback
flag and relaimed the pages even if it fails again in
cifs_writev_requeue(), which may lead to the hanging of the
processes accessing the cifs directory. This patch just cleans
the PG_writeback flags and reclaims the pages under that circumstances.

    Steps to reproduce the bug(trying serveral times may trigger the issue):
    1.Write from cifs client continuously.(e.g dd if=/dev/zero of=<cifs file>)
    2.Stop SMB service from server.(e.g service smb stop)
    3.Wait for two minutes, and then start SMB service from
server.(e.g service smb start)
    4.The processes which are accessing cifs directory may hang up.

Signed-off-by: Ouyang Maochun <ouyang.maochun@zte.com.cn>
Signed-off-by: Jiang Yong <jian.yong5@zte.com.cn>
Tested-by: Zhang Xianwei <zhang.xianwei8@zte.com.cn>
Reviewed-by: Wang Liang <wang.liang82@zte.com.cn>
Reviewed-by: Cai Qu <cai.qu@zte.com.cn>
Reviewed-by: Jiang Biao <jiang.biao2@zte.com.cn>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Steve French <sfrench@us.ibm.com>
11 years agoLinux 3.8 v3.8
Linus Torvalds [Mon, 18 Feb 2013 23:58:34 +0000 (15:58 -0800)]
Linux 3.8

11 years agoMerge branches 'devel-stable', 'fixes' and 'mmci' into for-next
Russell King [Mon, 18 Feb 2013 22:05:31 +0000 (22:05 +0000)]
Merge branches 'devel-stable', 'fixes' and 'mmci' into for-next

11 years agoMerge branch 'misc' into for-next
Russell King [Mon, 18 Feb 2013 22:05:28 +0000 (22:05 +0000)]
Merge branch 'misc' into for-next

Conflicts:
arch/arm/include/asm/memory.h

11 years agoxfrm: release neighbor upon dst destruction
Romain KUNTZ [Mon, 18 Feb 2013 02:36:24 +0000 (02:36 +0000)]
xfrm: release neighbor upon dst destruction

Neighbor is cloned in xfrm6_fill_dst but seems to never be released.
Neighbor entry should be released when XFRM6 dst entry is destroyed
in xfrm6_dst_destroy, otherwise references may be kept forever on
the device pointed by the neighbor entry.

I may not have understood all the subtleties of XFRM & dst so I would
be happy to receive comments on this patch.

Signed-off-by: Romain Kuntz <r.kuntz@ipflavors.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
11 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Linus Torvalds [Mon, 18 Feb 2013 18:23:40 +0000 (10:23 -0800)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input subsystem fixes from Dmitry Torokhov:
 "Two small driver fixups and a documentation update for managed input
  devices"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: wacom - fix wacom_set_report retry logic
  Input: document that unregistering managed devices is not necessary
  Input: lm8323 - fix checking PWM interrupt status

11 years agoMAINTAINERS: Jiri Pirko email change
Jiri Pirko [Fri, 15 Feb 2013 23:55:05 +0000 (23:55 +0000)]
MAINTAINERS: Jiri Pirko email change

Change email for team driver maintainership.

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
11 years agomm: fix pageblock bitmap allocation
Linus Torvalds [Mon, 18 Feb 2013 17:58:02 +0000 (09:58 -0800)]
mm: fix pageblock bitmap allocation

Commit c060f943d092 ("mm: use aligned zone start for pfn_to_bitidx
calculation") fixed out calculation of the index into the pageblock
bitmap when a !SPARSEMEM zome was not aligned to pageblock_nr_pages.

However, the _allocation_ of that bitmap had never taken this alignment
requirement into accout, so depending on the exact size and alignment of
the zone, the use of that index could then access past the allocation,
resulting in some very subtle memory corruption.

This was reported (and bisected) by Ingo Molnar: one of his random
config builds would hang with certain very specific kernel command line
options.

In the meantime, commit c060f943d092 has been marked for stable, so this
fix needs to be back-ported to the stable kernels that backported the
commit to use the right alignment.

Bisected-and-tested-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Mel Gorman <mgorman@suse.de>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agonet: fix a compile error when SOCK_REFCNT_DEBUG is enabled
Ying Xue [Fri, 15 Feb 2013 22:28:25 +0000 (22:28 +0000)]
net: fix a compile error when SOCK_REFCNT_DEBUG is enabled

When SOCK_REFCNT_DEBUG is enabled, below build error is met:

kernel/sysctl_binary.o: In function `sk_refcnt_debug_release':
include/net/sock.h:1025: multiple definition of `sk_refcnt_debug_release'
kernel/sysctl.o:include/net/sock.h:1025: first defined here
kernel/audit.o: In function `sk_refcnt_debug_release':
include/net/sock.h:1025: multiple definition of `sk_refcnt_debug_release'
kernel/sysctl.o:include/net/sock.h:1025: first defined here
make[1]: *** [kernel/built-in.o] Error 1
make: *** [kernel] Error 2

So we decide to make sk_refcnt_debug_release static to eliminate
the error.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
11 years agoext4: fix xattr block allocation/release with bigalloc
Lukas Czerner [Mon, 18 Feb 2013 17:12:07 +0000 (12:12 -0500)]
ext4: fix xattr block allocation/release with bigalloc

Currently when new xattr block is created or released we we would call
dquot_free_block() or dquot_alloc_block() respectively, among the else
decrementing or incrementing the number of blocks assigned to the
inode by one block.

This however does not work for bigalloc file system because we always
allocate/free the whole cluster so we have to count with that in
dquot_free_block() and dquot_alloc_block() as well.

Use the clusters-to-blocks conversion EXT4_C2B() when passing number of
blocks to the dquot_alloc/free functions to fix the problem.

The problem has been revealed by xfstests #117 (and possibly others).

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
11 years agoMerge branch 'for-3.9/upstream' into for-next
Jiri Kosina [Mon, 18 Feb 2013 09:42:14 +0000 (10:42 +0100)]
Merge branch 'for-3.9/upstream' into for-next

11 years agoHID: wiimote: fix nunchuck button parser
David Herrmann [Mon, 18 Feb 2013 00:47:15 +0000 (01:47 +0100)]
HID: wiimote: fix nunchuck button parser

The buttons of the Wii Remote Nunchuck extension are actually active low.
Fix the parser to forward the inverted values. The comment in the function
always said "0 == pressed" but the implementation was wrong from the
beginning.

Cc: stable@vger.kernel.org
Reported-by: Victor Quicksilver <victor.quicksilver@gmail.com>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agoMerge branch 'for-3.9/upstream' into for-next
Jiri Kosina [Mon, 18 Feb 2013 09:36:10 +0000 (10:36 +0100)]
Merge branch 'for-3.9/upstream' into for-next

11 years agoHID: blacklist Velleman data acquisition boards
Ian Abbott [Wed, 13 Feb 2013 13:22:45 +0000 (13:22 +0000)]
HID: blacklist Velleman data acquisition boards

These are simple data acquistion boards, not HID devices and are handled
by the vmk80xx comedi driver.  At least one of them (10cf:5500)
misidentifies itself as a HID in its USB interface descriptor.  Ignore
all these devices.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agoMerge branch 'for-3.9/hid-sensor' into for-next
Jiri Kosina [Mon, 18 Feb 2013 09:28:30 +0000 (10:28 +0100)]
Merge branch 'for-3.9/hid-sensor' into for-next

11 years agoHID: sensor-hub: don't limit the driver only to USB bus
Mika Westerberg [Mon, 11 Feb 2013 10:31:19 +0000 (12:31 +0200)]
HID: sensor-hub: don't limit the driver only to USB bus

We now have two transport mediums: USB and I2C, where sensor hubs can
exists. So instead of constraining the driver to only these two we let it
to match any HID bus as long as the group is HID_GROUP_SENSOR_HUB.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agoHID: sensor-hub: get rid of unused sensor_hub_grabbed_usages[] table
Mika Westerberg [Mon, 11 Feb 2013 10:31:18 +0000 (12:31 +0200)]
HID: sensor-hub: get rid of unused sensor_hub_grabbed_usages[] table

This table is not used anywhere in the driver so kill it.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agoHID: extend autodetect to handle I2C sensors as well
Mika Westerberg [Mon, 11 Feb 2013 10:31:17 +0000 (12:31 +0200)]
HID: extend autodetect to handle I2C sensors as well

Since the advent of HID over I2C protocol, it is possible to have sensor
hubs behind I2C bus as well. We can autodetect this in a same way than USB
sensor hubs.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agoMerge branch 'for-3.9/ntrig' into for-next
Jiri Kosina [Mon, 18 Feb 2013 09:17:03 +0000 (10:17 +0100)]
Merge branch 'for-3.9/ntrig' into for-next

11 years agoHID: ntrig: use input_configured() callback to set the name
Benjamin Tissoires [Fri, 8 Feb 2013 14:51:30 +0000 (15:51 +0100)]
HID: ntrig: use input_configured() callback to set the name

The use of input_configured() allows the ntrig driver to actually
change the name of the input and its bitmask before it is added to the
input subsystem. Thus, the logs are coherents and udev catch the real
bitmask when the device is added.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Signed-off-by: Rafi Rubin <rafi@seas.upenn.edu>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11 years agoext4: reclaim extents from extent status tree
Zheng Liu [Mon, 18 Feb 2013 05:32:55 +0000 (00:32 -0500)]
ext4: reclaim extents from extent status tree

Although extent status is loaded on-demand, we also need to reclaim
extent from the tree when we are under a heavy memory pressure because
in some cases fragmented extent tree causes status tree costs too much
memory.

Here we maintain a lru list in super_block.  When the extent status of
an inode is accessed and changed, this inode will be move to the tail
of the list.  The inode will be dropped from this list when it is
cleared.  In the inode, a counter is added to count the number of
cached objects in extent status tree.  Here only written/unwritten/hole
extent is counted because delayed extent doesn't be reclaimed due to
fiemap, bigalloc and seek_data/hole need it.  The counter will be
increased as a new extent is allocated, and it will be decreased as a
extent is freed.

In this commit we use normal shrinker framework to reclaim memory from
the status tree.  ext4_es_reclaim_extents_count() traverses the lru list
to count the number of reclaimable extents.  ext4_es_shrink() tries to
reclaim written/unwritten/hole extents from extent status tree.  The
inode that has been shrunk is moved to the tail of lru list.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Jan kara <jack@suse.cz>
11 years agoext4: adjust some functions for reclaiming extents from extent status tree
Zheng Liu [Mon, 18 Feb 2013 05:32:02 +0000 (00:32 -0500)]
ext4: adjust some functions for reclaiming extents from extent status tree

This commit changes some interfaces in extent status tree because we
need to use inode to count the cached objects in a extent status tree.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Jan kara <jack@suse.cz>
11 years agoext4: remove single extent cache
Zheng Liu [Mon, 18 Feb 2013 05:31:07 +0000 (00:31 -0500)]
ext4: remove single extent cache

Single extent cache could be removed because we have extent status tree
as a extent cache, and it would be better.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Jan kara <jack@suse.cz>
11 years agoext4: lookup block mapping in extent status tree
Zheng Liu [Mon, 18 Feb 2013 05:29:59 +0000 (00:29 -0500)]
ext4: lookup block mapping in extent status tree

After tracking all extent status, we already have a extent cache in
memory.  Every time we want to lookup a block mapping, we can first
try to lookup it in extent status tree to avoid a potential disk I/O.

A new function called ext4_es_lookup_extent is defined to finish this
work.  When we try to lookup a block mapping, we always call
ext4_map_blocks and/or ext4_da_map_blocks.  So in these functions we
first try to lookup a block mapping in extent status tree.

A new flag EXT4_GET_BLOCKS_NO_PUT_HOLE is used in ext4_da_map_blocks
in order not to put a hole into extent status tree because this hole
will be converted to delayed extent in the tree immediately.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Jan kara <jack@suse.cz>
11 years agoext4: track all extent status in extent status tree
Zheng Liu [Mon, 18 Feb 2013 05:28:47 +0000 (00:28 -0500)]
ext4: track all extent status in extent status tree

By recording the phycisal block and status, extent status tree is able
to track the status of every extents.  When we call _map_blocks
functions to lookup an extent or create a new written/unwritten/delayed
extent, this extent will be inserted into extent status tree.

We don't load all extents from disk in alloc_inode() because it costs
too much memory, and if a file is opened and closed frequently it will
takes too much time to load all extent information.  So currently when
we create/lookup an extent, this extent will be inserted into extent
status tree.  Hence, the extent status tree may not comprehensively
contain all of the extents found in the file.

Here a condition we need to take care is that an extent might contains
unwritten and delayed status simultaneously because an extent is delayed
allocated and could be allocated by fallocate.  At this time we need to
keep delayed status because later we need to update delayed reservation
space using it.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Jan kara <jack@suse.cz>
11 years agoext4: let ext4_ext_map_blocks return EXT4_MAP_UNWRITTEN flag
Zheng Liu [Mon, 18 Feb 2013 05:28:04 +0000 (00:28 -0500)]
ext4: let ext4_ext_map_blocks return EXT4_MAP_UNWRITTEN flag

This commit lets ext4_ext_map_blocks return EXT4_MAP_UNWRITTEN flag
because in later commit ext4_map_blocks needs to use this flag to
determine the extent status.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
11 years agoext4: rename and improbe ext4_es_find_extent()
Zheng Liu [Mon, 18 Feb 2013 05:27:26 +0000 (00:27 -0500)]
ext4: rename and improbe ext4_es_find_extent()

This commit renames ext4_es_find_extent with ext4_es_find_delayed_extent
and improve this function.  First, we split input and output parameter.
Second, this function never return the first block of the next delayed
extent after 'es'.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Jan kara <jack@suse.cz>
11 years agoext4: add physical block and status member into extent status tree
Zheng Liu [Mon, 18 Feb 2013 05:26:51 +0000 (00:26 -0500)]
ext4: add physical block and status member into extent status tree

This commit adds two members in extent_status structure to let it record
physical block and extent status.  Here es_pblk is used to record both
of them because physical block only has 48 bits.  So extent status could
be stashed into it so that we can save some memory.  Now written,
unwritten, delayed and hole are defined as status.

Due to new member is added into extent status tree, all interfaces need
to be adjusted.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
11 years agoext4: refine extent status tree
Zheng Liu [Mon, 18 Feb 2013 05:26:51 +0000 (00:26 -0500)]
ext4: refine extent status tree

This commit refines the extent status tree code.

1) A prefix 'es_' is added to to the extent status tree structure
members.

2) Refactored es_remove_extent() so that __es_remove_extent() can be
used by es_insert_extent() to remove the old extent entry(-ies) before
inserting a new one.

3) Rename extent_status_end() to ext4_es_end()

4) ext4_es_can_be_merged() is define to check whether two extents can
be merged or not.

5) Update and clarified comments.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
11 years agoumount oops when remove blocklayoutdriver first
fanchaoting [Mon, 4 Feb 2013 13:15:02 +0000 (21:15 +0800)]
umount oops when remove blocklayoutdriver first

now pnfs client uses block layout, maybe we can remove
blocklayoutdriver first. if we umount later,
it can cause oops in unset_pnfs_layoutdriver.
because nfss->pnfs_curr_ld->clear_layoutdriver is invalid.

reproduce it:
 modprobe  blocklayoutdriver
 mount -t nfs4 -o minorversion=1 pnfsip:/ /mnt/
 rmmod blocklayoutdriver
 umount /mnt

then you can see following

CPU 0
Pid: 17023, comm: umount.nfs4 Tainted: GF          O 3.7.0-rc6-pnfs #1 VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform
RIP: 0010:[<ffffffffa04cfe6d>]  [<ffffffffa04cfe6d>] unset_pnfs_layoutdriver+0x1d/0x70 [nfsv4]
RSP: 0018:ffff8800022d9e48  EFLAGS: 00010286
RAX: ffffffffa04a1b00 RBX: ffff88000b013800 RCX: 0000000000000001
RDX: ffffffff81ae8ee0 RSI: ffff880001ee94b8 RDI: ffff88000b013800
RBP: ffff8800022d9e58 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff880001ee9400
R13: ffff8800105978c0 R14: 00007fff25846c08 R15: 0000000001bba550
FS:  00007f45ae7f0700(0000) GS:ffff880012c00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffffffffa04a1b38 CR3: 0000000002c0c000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process umount.nfs4 (pid: 17023, threadinfo ffff8800022d8000, task ffff880006e48aa0)
Stack:
ffff8800105978c0 ffff88000b013800 ffff8800022d9e78 ffffffffa04cd0ce
ffff8800022d9e78 ffff88000b013800 ffff8800022d9ea8 ffffffffa04755a7
ffff8800022d9ea8 ffff880002f96400 ffff88000b013800 ffff880002f96400
Call Trace:
[<ffffffffa04cd0ce>] nfs4_destroy_server+0x1e/0x30 [nfsv4]
[<ffffffffa04755a7>] nfs_free_server+0xb7/0x150 [nfs]
[<ffffffffa047d4d5>] nfs_kill_super+0x35/0x40 [nfs]
[<ffffffff81178d35>] deactivate_locked_super+0x45/0x70
[<ffffffff8117986a>] deactivate_super+0x4a/0x70
[<ffffffff81193ee2>] mntput_no_expire+0xd2/0x130
[<ffffffff81194d62>] sys_umount+0x72/0xe0
[<ffffffff8154af59>] system_call_fastpath+0x16/0x1b
Code: 06 e1 b8 ea ff ff ff eb 9e 0f 1f 44 00 00 55 48 89 e5 53 48 83 ec 08 66 66 66 66 90 48 8b 87 80 03 00 00 48 89 fb 48 85 c0 74 29 <48> 8b 40 38 48 85 c0 74 02 ff d0 48 8b 03 3e ff 48 04 0f 94 c2
RIP  [<ffffffffa04cfe6d>] unset_pnfs_layoutdriver+0x1d/0x70 [nfsv4]
RSP <ffff8800022d9e48>
CR2: ffffffffa04a1b38
---[ end trace 29f75aaedda058bf ]---

Signed-off-by: fanchaoting<fanchaoting@cn.fujitsu.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org
11 years agosunrpc: silence build warning in gss_fill_context
Jeff Layton [Thu, 7 Feb 2013 15:29:06 +0000 (10:29 -0500)]
sunrpc: silence build warning in gss_fill_context

Since commit 620038f6d23, gcc is throwing the following warning:

  CC [M]  net/sunrpc/auth_gss/auth_gss.o
In file included from include/linux/sunrpc/types.h:14:0,
                 from include/linux/sunrpc/sched.h:14,
                 from include/linux/sunrpc/clnt.h:18,
                 from net/sunrpc/auth_gss/auth_gss.c:45:
net/sunrpc/auth_gss/auth_gss.c: In function ‘gss_pipe_downcall’:
include/linux/sunrpc/debug.h:45:10: warning: ‘timeout’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
    printk(KERN_DEFAULT args); \
          ^
net/sunrpc/auth_gss/auth_gss.c:194:15: note: ‘timeout’ was declared here
  unsigned int timeout;
               ^
If simple_get_bytes returns an error, then we'll end up calling printk
with an uninitialized timeout value. Reasonably harmless, but fairly
simple to fix by removing the printout of the uninitialised parameters.

Cc: Andy Adamson <andros@netapp.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
[Trond: just remove the parameters rather than initialising timeout]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
11 years agonfs: remove kfree() redundant null checks
Tim Gardner [Tue, 12 Feb 2013 20:03:42 +0000 (13:03 -0700)]
nfs: remove kfree() redundant null checks

smatch analysis:

fs/nfs/getroot.c:130 nfs_get_root() info: redundant null
 check on name calling kfree()

fs/nfs/unlink.c:272 nfs_async_unlink() info: redundant null
 check on devname_garbage calling kfree()

Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: linux-nfs@vger.kernel.org
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
11 years agoNFSv4.1: Don't decode skipped layoutgets
Weston Andros Adamson [Fri, 15 Feb 2013 21:03:46 +0000 (16:03 -0500)]
NFSv4.1: Don't decode skipped layoutgets

layoutget's prepare hook can call rpc_exit with status = NFS4_OK (0).
Because of this, nfs4_proc_layoutget can't depend on a 0 status to mean
that the RPC was successfully sent, received and parsed.

To fix this, use the result's len member to see if parsing took place.

This fixes the following OOPS -- calling xdr_init_decode() with a buffer length
0 doesn't set the stream's 'p' member and ends up using uninitialized memory
in filelayout_decode_layout.

BUG: unable to handle kernel paging request at 0000000000008050
IP: [<ffffffff81282e78>] memcpy+0x18/0x120
PGD 0
Oops: 0000 [#1] SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:11.0/0000:02:01.0/irq
CPU 1
Modules linked in: nfs_layout_nfsv41_files nfs lockd fscache auth_rpcgss nfs_acl autofs4 sunrpc ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 dm_mirror dm_region_hash dm_log dm_mod ppdev parport_pc parport snd_ens1371 snd_rawmidi snd_ac97_codec ac97_bus snd_seq snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc e1000 microcode vmware_balloon i2c_piix4 i2c_core sg shpchp ext4 mbcache jbd2 sr_mod cdrom sd_mod crc_t10dif pata_acpi ata_generic ata_piix mptspi mptscsih mptbase scsi_transport_spi [last unloaded: speedstep_lib]

Pid: 1665, comm: flush-0:22 Not tainted 2.6.32-356-test-2 #2 VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform
RIP: 0010:[<ffffffff81282e78>]  [<ffffffff81282e78>] memcpy+0x18/0x120
RSP: 0018:ffff88003dfab588  EFLAGS: 00010206
RAX: ffff88003dc42000 RBX: ffff88003dfab610 RCX: 0000000000000009
RDX: 000000003f807ff0 RSI: 0000000000008050 RDI: ffff88003dc42000
RBP: ffff88003dfab5b0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000080 R12: 0000000000000024
R13: ffff88003dc42000 R14: ffff88003f808030 R15: ffff88003dfab6a0
FS:  0000000000000000(0000) GS:ffff880003420000(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000008050 CR3: 000000003bc92000 CR4: 00000000001407e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process flush-0:22 (pid: 1665, threadinfo ffff88003dfaa000, task ffff880037f77540)
Stack:
ffffffffa0398ac1 ffff8800397c5940 ffff88003dfab610 ffff88003dfab6a0
<d> ffff88003dfab5d0 ffff88003dfab680 ffffffffa01c150b ffffea0000d82e70
<d> 000000508116713b 0000000000000000 0000000000000000 0000000000000000
Call Trace:
[<ffffffffa0398ac1>] ? xdr_inline_decode+0xb1/0x120 [sunrpc]
[<ffffffffa01c150b>] filelayout_decode_layout+0xeb/0x350 [nfs_layout_nfsv41_files]
[<ffffffffa01c17fc>] filelayout_alloc_lseg+0x8c/0x3c0 [nfs_layout_nfsv41_files]
[<ffffffff8150e6ce>] ? __wait_on_bit+0x7e/0x90

Signed-off-by: Weston Andros Adamson <dros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org
11 years agonfsd: fix compiler warning about ambiguous types in nfsd_cache_csum
Jeff Layton [Fri, 15 Feb 2013 18:36:34 +0000 (13:36 -0500)]
nfsd: fix compiler warning about ambiguous types in nfsd_cache_csum

kbuild test robot says:

tree:   git://linux-nfs.org/~bfields/linux.git for-3.9
head:   deb4534f4f3be7aea7d9d24c3b0d58f370cbf9ef
commit: 01a7decf75930925322c5efc87af0b5e58eb8650 [32/44] nfsd: keep a checksum of the first 256 bytes of request
config: i386-randconfig-x088 (attached as .config)

All warnings:

   fs/nfsd/nfscache.c: In function 'nfsd_cache_csum':
>> fs/nfsd/nfscache.c:266:9: warning: comparison of distinct pointer types lacks a cast [enabled by default]

vim +266 fs/nfsd/nfscache.c

   250 __wsum csum;
   251 struct xdr_buf *buf = &rqstp->rq_arg;
   252 const unsigned char *p = buf->head[0].iov_base;
   253 size_t csum_len = min_t(size_t, buf->head[0].iov_len + buf->page_len,
   254 RC_CSUMLEN);
   255 size_t len = min(buf->head[0].iov_len, csum_len);
   256
   257 /* rq_arg.head first */
   258 csum = csum_partial(p, len, 0);
   259 csum_len -= len;
   260
   261 /* Continue into page array */
   262 idx = buf->page_base / PAGE_SIZE;
   263 base = buf->page_base & ~PAGE_MASK;
   264 while (csum_len) {
   265 p = page_address(buf->pages[idx]) + base;
 > 266 len = min(PAGE_SIZE - base, csum_len);
   267 csum = csum_partial(p, len, csum);
   268 csum_len -= len;
   269 base = 0;
   270 ++idx;
   271 }
   272 return csum;
   273 }
   274

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
11 years agosvcrpc: fix rpc server shutdown races
J. Bruce Fields [Sun, 10 Feb 2013 21:08:11 +0000 (16:08 -0500)]
svcrpc: fix rpc server shutdown races

Rewrite server shutdown to remove the assumption that there are no
longer any threads running (no longer true, for example, when shutting
down the service in one network namespace while it's still running in
others).

Do that by doing what we'd do in normal circumstances: just CLOSE each
socket, then enqueue it.

Since there may not be threads to handle the resulting queued xprts,
also run a simplified version of the svc_recv() loop run by a server to
clean up any closed xprts afterwards.

Cc: stable@kernel.org
Tested-by: Jason Tibbitts <tibbs@math.uh.edu>
Tested-by: Paweł Sikora <pawel.sikora@agmk.net>
Acked-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
11 years agosvcrpc: make svc_age_temp_xprts enqueue under sv_lock
J. Bruce Fields [Sun, 10 Feb 2013 16:33:48 +0000 (11:33 -0500)]
svcrpc: make svc_age_temp_xprts enqueue under sv_lock

svc_age_temp_xprts expires xprts in a two-step process: first it takes
the sv_lock and moves the xprts to expire off their server-wide list
(sv_tempsocks or sv_permsocks) to a local list.  Then it drops the
sv_lock and enqueues and puts each one.

I see no reason for this: svc_xprt_enqueue() will take sp_lock, but the
sv_lock and sp_lock are not otherwise nested anywhere (and documentation
at the top of this file claims it's correct to nest these with sp_lock
inside.)

Cc: stable@kernel.org
Tested-by: Jason Tibbitts <tibbs@math.uh.edu>
Tested-by: Paweł Sikora <pawel.sikora@agmk.net>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
11 years agoARM: add SCHED_HRTICK config option
Russell King [Sun, 17 Feb 2013 14:40:33 +0000 (14:40 +0000)]
ARM: add SCHED_HRTICK config option

As we don't include kernel/Kconfig.hz as this defines HZ values
unsuitable for ARM platforms, add the SCHED_HRTICK to properly configure
the scheduler for hrtimer operation.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
11 years agoopenrisc: really pass correct arg to schedule_tail
Jonas Bonn [Fri, 15 Feb 2013 16:07:17 +0000 (17:07 +0100)]
openrisc: really pass correct arg to schedule_tail

Commit 287ad220cd8b5a9d29f71c78f6e4051093f051fc tried to set up the argument
to schedule_tail, but ended up using TI_STACK which isn't a defined symbol.
Sadly, the old openrisc compiler silently ignores this fact and it was first
discovered now when building with an updated toolchain.

Reported-by: Christian Svensson <blue@cmd.nu>
Signed-off-by: Jonas Bonn <jonas@southpole.se>
11 years agoAdd bitops include needed for ext2 filesystem
Sebastian Macke [Fri, 15 Feb 2013 06:54:41 +0000 (07:54 +0100)]
Add bitops include needed for ext2 filesystem

Signed-off-by: Jonas Bonn <jonas@southpole.se>
11 years agoopenrisc: update DTLB-miss handler last
Jonas Bonn [Thu, 14 Feb 2013 06:42:30 +0000 (07:42 +0100)]
openrisc: update DTLB-miss handler last

The self-modifying code that updates the TLB handler at start-up has
a subtle ordering requirement:  the DTLB handler must be the last thing
changed.

What I was seeing was the following:

i)   The DTLB handler was updated
ii)  The following printk caused a TLB miss and the look-up resulted
     in the page containing itlb_vector (0xc0000a00) being bounced from
     the TLB.
iii) The subsequent access to itlb_vector caused a TLB miss and reload
     of the page containing itlb_vector from the page tables.
iv)  But this reload of the page in iii) was being done by the "new"
     DTLB-miss handler which resulted (correctly) in the page flags being
     set to read-only; the subsequent write-access to itlb_vector thus
     resulted in a page (access) fault.

This is easily remedied if we ensure that the boot-time DTLB-miss handler
continues running until the very last bit of self-modifying code has been
executed.  This patch should ensure that the very last thing updated is the
DTLB-handler itself.

Signed-off-by: Jonas Bonn <jonas@southpole.se>
Acked-by: Julius Baxter <juliusbaxter@gmail.com>
Tested-by: Sebastian Macke <sebastian@macke.de>