Home Home > GIT Browse > SLE15-AZURE
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKernel Build Daemon <kbuild@suse.de>2019-05-24 07:05:23 +0200
committerKernel Build Daemon <kbuild@suse.de>2019-05-24 07:05:23 +0200
commitaa1678fd042b067df32a591c304d23cd0251bb5d (patch)
tree7a0ef31cf137927c50248d9252e39a338eea30f5
parent09d20c2ce0b5b3350f069a4308b48c57c6003a79 (diff)
parentda9208c4933c0a2784fa585230ed59f5b6ecd962 (diff)
Merge branch 'SLE15' into SLE15-AZURESLE15-AZURE
-rw-r--r--Documentation/kmsg/IPVS3
-rw-r--r--Documentation/kmsg/ism2
-rw-r--r--Documentation/kmsg/s390/aes_s3901
-rw-r--r--Documentation/kmsg/s390/af_iucv1
-rw-r--r--Documentation/kmsg/s390/appldata1
-rw-r--r--Documentation/kmsg/s390/bpf_jit1
-rw-r--r--Documentation/kmsg/s390/cio1
-rw-r--r--Documentation/kmsg/s390/cpcmd1
-rw-r--r--Documentation/kmsg/s390/cpu1
-rw-r--r--Documentation/kmsg/s390/crc32-vx1
-rw-r--r--Documentation/kmsg/s390/ctcm1
-rw-r--r--Documentation/kmsg/s390/dasd1
-rw-r--r--Documentation/kmsg/s390/dasd-eckd42
-rw-r--r--Documentation/kmsg/s390/diag288_wdt1
-rw-r--r--Documentation/kmsg/s390/extmem1
-rw-r--r--Documentation/kmsg/s390/hmcdrv1
-rw-r--r--Documentation/kmsg/s390/hugetlb1
-rw-r--r--Documentation/kmsg/s390/hypfs1
-rw-r--r--Documentation/kmsg/s390/lcs1
-rw-r--r--Documentation/kmsg/s390/monwriter1
-rw-r--r--Documentation/kmsg/s390/netiucv1
-rw-r--r--Documentation/kmsg/s390/paes_s3903
-rw-r--r--Documentation/kmsg/s390/perf1
-rw-r--r--Documentation/kmsg/s390/qeth1
-rw-r--r--Documentation/kmsg/s390/setup1
-rw-r--r--Documentation/kmsg/s390/vmur1
-rw-r--r--Documentation/kmsg/s390/zfcp2
-rw-r--r--Documentation/kmsg/s390/zpci1
-rw-r--r--Documentation/kmsg/s390/zram2
-rw-r--r--Documentation/kmsg/sbp_target3
-rw-r--r--Documentation/kmsg/smc1
-rw-r--r--drivers/crypto/vmx/aesp8-ppc.pl2
-rw-r--r--drivers/infiniband/hw/cxgb4/qp.c6
-rw-r--r--drivers/md/md.c4
-rw-r--r--drivers/net/ethernet/8390/mac8390.c19
-rw-r--r--drivers/net/ipvlan/ipvlan_core.c3
-rw-r--r--drivers/net/ipvlan/ipvlan_main.c1
-rw-r--r--drivers/s390/cio/qdio_main.c4
-rw-r--r--fs/9p/v9fs.c21
-rw-r--r--fs/9p/v9fs.h1
-rw-r--r--fs/9p/vfs_file.c6
-rw-r--r--fs/debugfs/inode.c13
-rw-r--r--mm/mincore.c23
-rw-r--r--net/dccp/feat.c7
-rw-r--r--net/ipv4/ipconfig.c13
-rw-r--r--net/l2tp/l2tp_core.c2
-rw-r--r--net/l2tp/l2tp_netlink.c4
-rw-r--r--net/netfilter/ipvs/ip_vs_core.c15
-rw-r--r--net/netfilter/ipvs/ip_vs_ctl.c12
49 files changed, 210 insertions, 27 deletions
diff --git a/Documentation/kmsg/IPVS b/Documentation/kmsg/IPVS
index b5ee24309a79..39dd5b30a70d 100644
--- a/Documentation/kmsg/IPVS
+++ b/Documentation/kmsg/IPVS
@@ -79,3 +79,6 @@
/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
/*? Text: "Unknown mcast interface: %s\n" */
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
+/*? Text: "%s(): request for already hashed, called from %pS\n" */
+/*? Text: "%s(): request for unhash flagged, called from %pS\n" */
diff --git a/Documentation/kmsg/ism b/Documentation/kmsg/ism
new file mode 100644
index 000000000000..9612e30a12c2
--- /dev/null
+++ b/Documentation/kmsg/ism
@@ -0,0 +1,2 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/aes_s390 b/Documentation/kmsg/s390/aes_s390
index e1a7451b1c77..eb1a0acbcd2c 100644
--- a/Documentation/kmsg/s390/aes_s390
+++ b/Documentation/kmsg/s390/aes_s390
@@ -43,3 +43,4 @@
* None.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/af_iucv b/Documentation/kmsg/s390/af_iucv
index 6d5b39ade745..4332ce15dafb 100644
--- a/Documentation/kmsg/s390/af_iucv
+++ b/Documentation/kmsg/s390/af_iucv
@@ -21,3 +21,4 @@
/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/appldata b/Documentation/kmsg/s390/appldata
index 1129f96c313c..4d354c94aaa4 100644
--- a/Documentation/kmsg/s390/appldata
+++ b/Documentation/kmsg/s390/appldata
@@ -89,3 +89,4 @@
/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/bpf_jit b/Documentation/kmsg/s390/bpf_jit
index da2fb17c6783..df7fb48ee02b 100644
--- a/Documentation/kmsg/s390/bpf_jit
+++ b/Documentation/kmsg/s390/bpf_jit
@@ -14,3 +14,4 @@
* Report this problem and the error message to your support organization.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/cio b/Documentation/kmsg/s390/cio
index e90aae08d87b..6ee5518d1650 100644
--- a/Documentation/kmsg/s390/cio
+++ b/Documentation/kmsg/s390/cio
@@ -245,3 +245,4 @@
* Report the problem to your support organization.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/cpcmd b/Documentation/kmsg/s390/cpcmd
index 4a1a308249e7..f9b5f84d4739 100644
--- a/Documentation/kmsg/s390/cpcmd
+++ b/Documentation/kmsg/s390/cpcmd
@@ -15,3 +15,4 @@
* machine.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/cpu b/Documentation/kmsg/s390/cpu
index d4701972e1b6..34b533677845 100644
--- a/Documentation/kmsg/s390/cpu
+++ b/Documentation/kmsg/s390/cpu
@@ -52,3 +52,4 @@
* does not include all CPU information.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/crc32-vx b/Documentation/kmsg/s390/crc32-vx
index 4553d8b236cc..9612e30a12c2 100644
--- a/Documentation/kmsg/s390/crc32-vx
+++ b/Documentation/kmsg/s390/crc32-vx
@@ -1 +1,2 @@
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/ctcm b/Documentation/kmsg/s390/ctcm
index 9437da9c9ffe..3a7d2b1956f0 100644
--- a/Documentation/kmsg/s390/ctcm
+++ b/Documentation/kmsg/s390/ctcm
@@ -200,3 +200,4 @@
/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/dasd b/Documentation/kmsg/s390/dasd
index 8326344c27cb..a4a9bced1bfa 100644
--- a/Documentation/kmsg/s390/dasd
+++ b/Documentation/kmsg/s390/dasd
@@ -691,3 +691,4 @@
* or set the sysfs 'use_diag' attribute of the DASD to 0 to switch off DIAG.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/dasd-eckd b/Documentation/kmsg/s390/dasd-eckd
index ab1f2f08a34e..402cdb20795b 100644
--- a/Documentation/kmsg/s390/dasd-eckd
+++ b/Documentation/kmsg/s390/dasd-eckd
@@ -2163,4 +2163,46 @@
* to the path_reset sysfs attribute of the device.
* If the problem persists, report it to your support organization.
*/
+
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+
+/*?
+ * Text: "%s: Path %x.%02x (pathmask %02x) is operational despite excessive IFCCs\n"
+ * Severity: Error
+ * Parameter:
+ * @1: bus ID of the DASD
+ * @2: cssid
+ * @3: chpid
+ * @4: logical path mask
+ * Description:
+ * The threshold value for interface or channel control checks (IFCCs) for the
+ * channel path was exceeded.
+ * The channel path remains operational because the autodisable feature for
+ * defective channel paths is not active.
+ * Defective channel paths can adversely affect performance.
+ * User action:
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place.
+ * If you observe performance impacts, consider setting the channel path offline.
+ * By default, the DASD device driver disables defective channel paths for you.
+ * You can restore this default, for example, by writing '1' to the
+ * path_autodisable sysfs attribute.
+ * If the problem persists, report it to your support organization.
+ */
+
+/*?
+ * Text: "%s: Last path %x.%02x (pathmask %02x) is operational despite excessive IFCCs\n"
+ * Severity: Error
+ * Parameter:
+ * @1: bus ID of the DASD
+ * @2: cssid
+ * @3: chpid
+ * @4: logical path mask
+ * Description:
+ * The threshold value for interface or channel control checks (IFCCs) for the channel path was exceeded.
+ * The channel path was not removed from regular operations because it is the last remaining channel path for the DASD.
+ * User action:
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place.
+ * If the problem persists, report it to your support organization.
+ */
diff --git a/Documentation/kmsg/s390/diag288_wdt b/Documentation/kmsg/s390/diag288_wdt
index 7334dac2ed15..e24de4901e92 100644
--- a/Documentation/kmsg/s390/diag288_wdt
+++ b/Documentation/kmsg/s390/diag288_wdt
@@ -64,3 +64,4 @@
* contact your support organization.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/extmem b/Documentation/kmsg/s390/extmem
index 2e76ede358eb..eefc7bfd603a 100644
--- a/Documentation/kmsg/s390/extmem
+++ b/Documentation/kmsg/s390/extmem
@@ -292,3 +292,4 @@
* Ensure that the DCSS range is defined below the kernel mapping range.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/hmcdrv b/Documentation/kmsg/s390/hmcdrv
index 402244284cd9..265b12113af1 100644
--- a/Documentation/kmsg/s390/hmcdrv
+++ b/Documentation/kmsg/s390/hmcdrv
@@ -20,3 +20,4 @@
* the cache size specification.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/hugetlb b/Documentation/kmsg/s390/hugetlb
index 64856a89fa1b..639bd5ab4f76 100644
--- a/Documentation/kmsg/s390/hugetlb
+++ b/Documentation/kmsg/s390/hugetlb
@@ -11,3 +11,4 @@
* Specify "2G" for 2 GB huge pages. These are supported as of zEC12
* and zBC12 machines.
*/
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
diff --git a/Documentation/kmsg/s390/hypfs b/Documentation/kmsg/s390/hypfs
index 428f9390c8da..fef7cff029a0 100644
--- a/Documentation/kmsg/s390/hypfs
+++ b/Documentation/kmsg/s390/hypfs
@@ -55,3 +55,4 @@
/*? Text: "Hypervisor filesystem mounted\n" */
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/lcs b/Documentation/kmsg/s390/lcs
index 6b9c68b56bf3..75c25fd4b42b 100644
--- a/Documentation/kmsg/s390/lcs
+++ b/Documentation/kmsg/s390/lcs
@@ -167,3 +167,4 @@
/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/monwriter b/Documentation/kmsg/s390/monwriter
index aaddda3e80e0..998ded58e24d 100644
--- a/Documentation/kmsg/s390/monwriter
+++ b/Documentation/kmsg/s390/monwriter
@@ -15,3 +15,4 @@
* in "z/VM CP Programming Services".
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/netiucv b/Documentation/kmsg/s390/netiucv
index e805b1c12139..1ad8c5ee5194 100644
--- a/Documentation/kmsg/s390/netiucv
+++ b/Documentation/kmsg/s390/netiucv
@@ -154,3 +154,4 @@
/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/paes_s390 b/Documentation/kmsg/s390/paes_s390
index f28333858ac7..9612e30a12c2 100644
--- a/Documentation/kmsg/s390/paes_s390
+++ b/Documentation/kmsg/s390/paes_s390
@@ -1 +1,2 @@
-/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */ \ No newline at end of file
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/perf b/Documentation/kmsg/s390/perf
index 13325a6f5121..1a0fb32ec40b 100644
--- a/Documentation/kmsg/s390/perf
+++ b/Documentation/kmsg/s390/perf
@@ -88,3 +88,4 @@
* process has ended.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/qeth b/Documentation/kmsg/s390/qeth
index 09ae28c2e5fd..68b7c64fff33 100644
--- a/Documentation/kmsg/s390/qeth
+++ b/Documentation/kmsg/s390/qeth
@@ -966,3 +966,4 @@
* sysfs attribute of the device.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/setup b/Documentation/kmsg/s390/setup
index c90e60317648..df12da42896a 100644
--- a/Documentation/kmsg/s390/setup
+++ b/Documentation/kmsg/s390/setup
@@ -163,3 +163,4 @@
* None.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/vmur b/Documentation/kmsg/s390/vmur
index 50ef00d48ffa..db9f7cf9fe6d 100644
--- a/Documentation/kmsg/s390/vmur
+++ b/Documentation/kmsg/s390/vmur
@@ -46,3 +46,4 @@
/*? Text: "%s loaded.\n" */
/*? Text: "%s unloaded.\n" */
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/zfcp b/Documentation/kmsg/s390/zfcp
index 9d271b2e4c80..95e43dca46ab 100644
--- a/Documentation/kmsg/s390/zfcp
+++ b/Documentation/kmsg/s390/zfcp
@@ -707,3 +707,5 @@
* support organization of the storage system.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
+/*? Text: "Invalid address limit on user-mode return" */
diff --git a/Documentation/kmsg/s390/zpci b/Documentation/kmsg/s390/zpci
index aa3310206a62..aafe2f5e350a 100644
--- a/Documentation/kmsg/s390/zpci
+++ b/Documentation/kmsg/s390/zpci
@@ -40,3 +40,4 @@
* If the problem persists, contact your support organization.
*/
/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/s390/zram b/Documentation/kmsg/s390/zram
new file mode 100644
index 000000000000..ba0784553a6c
--- /dev/null
+++ b/Documentation/kmsg/s390/zram
@@ -0,0 +1,2 @@
+/*? Text: "Can't setup backing device for initialized device\n" */
+/*? Text: "setup backing device %s\n" */
diff --git a/Documentation/kmsg/sbp_target b/Documentation/kmsg/sbp_target
index e9356cf802ac..dda016beff08 100644
--- a/Documentation/kmsg/sbp_target
+++ b/Documentation/kmsg/sbp_target
@@ -46,4 +46,5 @@
/*? Text: "unlink LUN: failed to update unit directory\n" */
/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
-/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */ \ No newline at end of file
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/Documentation/kmsg/smc b/Documentation/kmsg/smc
index 12f591b1ffa4..5788b9b93a3b 100644
--- a/Documentation/kmsg/smc
+++ b/Documentation/kmsg/smc
@@ -6,3 +6,4 @@
/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
/*? Text: "%s: sock_register fails with %d\n" */
/*? Text: "%s: ib_register fails with %d\n" */
+/*? Text: "%s: SME is active, device will require DMA bounce buffers\n" */
diff --git a/drivers/crypto/vmx/aesp8-ppc.pl b/drivers/crypto/vmx/aesp8-ppc.pl
index de78282b8f44..9c6b5c1d6a1a 100644
--- a/drivers/crypto/vmx/aesp8-ppc.pl
+++ b/drivers/crypto/vmx/aesp8-ppc.pl
@@ -1357,7 +1357,7 @@ Loop_ctr32_enc:
addi $idx,$idx,16
bdnz Loop_ctr32_enc
- vadduwm $ivec,$ivec,$one
+ vadduqm $ivec,$ivec,$one
vmr $dat,$inptail
lvx $inptail,0,$inp
addi $inp,$inp,16
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
index 4e11369b6dfe..4c0703c4aab8 100644
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -1516,6 +1516,12 @@ static void flush_qp(struct c4iw_qp *qhp)
schp = to_c4iw_cq(qhp->ibqp.send_cq);
if (qhp->ibqp.uobject) {
+
+ /* for user qps, qhp->wq.flushed is protected by qhp->mutex */
+ if (qhp->wq.flushed)
+ return;
+
+ qhp->wq.flushed = 1;
t4_set_wq_in_error(&qhp->wq, 0);
t4_set_cq_in_error(&rchp->cq);
spin_lock_irqsave(&rchp->comp_handler_lock, flag);
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 7ee20c756260..05d6a44dc841 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1798,6 +1798,10 @@ static int super_1_validate(struct mddev *mddev, struct md_rdev *rdev)
} else
set_bit(In_sync, &rdev->flags);
rdev->raid_disk = role;
+ if (role >= mddev->raid_disks) {
+ rdev->saved_raid_disk = -1;
+ rdev->raid_disk = -1;
+ }
break;
}
if (sb->devflags & WriteMostly1)
diff --git a/drivers/net/ethernet/8390/mac8390.c b/drivers/net/ethernet/8390/mac8390.c
index 9497f18eaba0..e95a7567bb23 100644
--- a/drivers/net/ethernet/8390/mac8390.c
+++ b/drivers/net/ethernet/8390/mac8390.c
@@ -156,8 +156,6 @@ static void dayna_block_output(struct net_device *dev, int count,
#define memcpy_fromio(a, b, c) memcpy((a), (void *)(b), (c))
#define memcpy_toio(a, b, c) memcpy((void *)(a), (b), (c))
-#define memcmp_withio(a, b, c) memcmp((a), (void *)(b), (c))
-
/* Slow Sane (16-bit chunk memory read/write) Cabletron uses this */
static void slow_sane_get_8390_hdr(struct net_device *dev,
struct e8390_pkt_hdr *hdr, int ring_page);
@@ -237,19 +235,26 @@ static enum mac8390_type __init mac8390_ident(struct nubus_dev *dev)
static enum mac8390_access __init mac8390_testio(volatile unsigned long membase)
{
- unsigned long outdata = 0xA5A0B5B0;
- unsigned long indata = 0x00000000;
+ u32 outdata = 0xA5A0B5B0;
+ u32 indata = 0;
+
/* Try writing 32 bits */
- memcpy_toio(membase, &outdata, 4);
- /* Now compare them */
- if (memcmp_withio(&outdata, membase, 4) == 0)
+ nubus_writel(outdata, membase);
+ /* Now read it back */
+ indata = nubus_readl(membase);
+ if (outdata == indata)
return ACCESS_32;
+
+ outdata = 0xC5C0D5D0;
+ indata = 0;
+
/* Write 16 bit output */
word_memcpy_tocard(membase, &outdata, 4);
/* Now read it back */
word_memcpy_fromcard(&indata, membase, 4);
if (outdata == indata)
return ACCESS_16;
+
return ACCESS_UNKNOWN;
}
diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c
index 7a9f5a1c35c9..82baee142c8e 100644
--- a/drivers/net/ipvlan/ipvlan_core.c
+++ b/drivers/net/ipvlan/ipvlan_core.c
@@ -375,6 +375,7 @@ static int ipvlan_process_v4_outbound(struct sk_buff *skb)
.flowi4_oif = dev->ifindex,
.flowi4_tos = RT_TOS(ip4h->tos),
.flowi4_flags = FLOWI_FLAG_ANYSRC,
+ .flowi4_mark = skb->mark,
.daddr = ip4h->daddr,
.saddr = ip4h->saddr,
};
@@ -409,7 +410,7 @@ static int ipvlan_process_v6_outbound(struct sk_buff *skb)
struct dst_entry *dst;
int err, ret = NET_XMIT_DROP;
struct flowi6 fl6 = {
- .flowi6_iif = dev->ifindex,
+ .flowi6_oif = dev->ifindex,
.daddr = ip6h->daddr,
.saddr = ip6h->saddr,
.flowi6_flags = FLOWI_FLAG_ANYSRC,
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
index 2a6f49cf4531..14c33ebd7a4c 100644
--- a/drivers/net/ipvlan/ipvlan_main.c
+++ b/drivers/net/ipvlan/ipvlan_main.c
@@ -643,6 +643,7 @@ void ipvlan_link_setup(struct net_device *dev)
{
ether_setup(dev);
+ dev->max_mtu = ETH_MAX_MTU;
dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING);
dev->priv_flags |= IFF_UNICAST_FLT | IFF_NO_QUEUE;
dev->netdev_ops = &ipvlan_netdev_ops;
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index c7afdbded26b..6105822e0998 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -1216,8 +1216,10 @@ no_cleanup:
qdio_shutdown_thinint(irq_ptr);
/* restore interrupt handler */
- if ((void *)cdev->handler == (void *)qdio_int_handler)
+ if ((void *)cdev->handler == (void *)qdio_int_handler) {
cdev->handler = irq_ptr->orig_handler;
+ cdev->private->intparm = 0;
+ }
spin_unlock_irq(get_ccwdev_lock(cdev));
qdio_set_state(irq_ptr, QDIO_IRQ_STATE_INACTIVE);
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index c202930086ed..f60f4c6aa416 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -60,6 +60,8 @@ enum {
Opt_cache_loose, Opt_fscache, Opt_mmap,
/* Access options */
Opt_access, Opt_posixacl,
+ /* Lock timeout option */
+ Opt_locktimeout,
/* Error token */
Opt_err
};
@@ -79,6 +81,7 @@ static const match_table_t tokens = {
{Opt_cachetag, "cachetag=%s"},
{Opt_access, "access=%s"},
{Opt_posixacl, "posixacl"},
+ {Opt_locktimeout, "locktimeout=%u"},
{Opt_err, NULL}
};
@@ -127,6 +130,7 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
#ifdef CONFIG_9P_FSCACHE
v9ses->cachetag = NULL;
#endif
+ v9ses->session_lock_timeout = P9_LOCK_TIMEOUT;
if (!opts)
return 0;
@@ -299,6 +303,23 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
#endif
break;
+ case Opt_locktimeout:
+ r = match_int(&args[0], &option);
+ if (r < 0) {
+ p9_debug(P9_DEBUG_ERROR,
+ "integer field, but no integer?\n");
+ ret = r;
+ continue;
+ }
+ if (option < 1) {
+ p9_debug(P9_DEBUG_ERROR,
+ "locktimeout must be a greater than zero integer.\n");
+ ret = -EINVAL;
+ continue;
+ }
+ v9ses->session_lock_timeout = (long)option * HZ;
+ break;
+
default:
continue;
}
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
index 76eaf49abd3a..8070f9fde4b5 100644
--- a/fs/9p/v9fs.h
+++ b/fs/9p/v9fs.h
@@ -115,6 +115,7 @@ struct v9fs_session_info {
struct p9_client *clnt; /* 9p client */
struct list_head slist; /* list of sessions registered with v9fs */
struct rw_semaphore rename_sem;
+ long session_lock_timeout; /* retry interval for blocking locks */
};
/* cache_validity flags */
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index 65f2747b3c8e..b4bb84cef4a7 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -154,6 +154,7 @@ static int v9fs_file_do_lock(struct file *filp, int cmd, struct file_lock *fl)
uint8_t status = P9_LOCK_ERROR;
int res = 0;
unsigned char fl_type;
+ struct v9fs_session_info *v9ses;
fid = filp->private_data;
BUG_ON(fid == NULL);
@@ -189,6 +190,8 @@ static int v9fs_file_do_lock(struct file *filp, int cmd, struct file_lock *fl)
if (IS_SETLKW(cmd))
flock.flags = P9_LOCK_FLAGS_BLOCK;
+ v9ses = v9fs_inode2v9ses(file_inode(filp));
+
/*
* if its a blocked request and we get P9_LOCK_BLOCKED as the status
* for lock request, keep on trying
@@ -202,7 +205,8 @@ static int v9fs_file_do_lock(struct file *filp, int cmd, struct file_lock *fl)
break;
if (status == P9_LOCK_BLOCKED && !IS_SETLKW(cmd))
break;
- if (schedule_timeout_interruptible(P9_LOCK_TIMEOUT) != 0)
+ if (schedule_timeout_interruptible(v9ses->session_lock_timeout)
+ != 0)
break;
/*
* p9_client_lock_dotl overwrites flock.client_id with the
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
index eb43b194027e..f300af32f8ec 100644
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -170,19 +170,24 @@ static int debugfs_show_options(struct seq_file *m, struct dentry *root)
return 0;
}
-static void debugfs_evict_inode(struct inode *inode)
+static void debugfs_i_callback(struct rcu_head *head)
{
- truncate_inode_pages_final(&inode->i_data);
- clear_inode(inode);
+ struct inode *inode = container_of(head, struct inode, i_rcu);
if (S_ISLNK(inode->i_mode))
kfree(inode->i_link);
+ free_inode_nonrcu(inode);
+}
+
+static void debugfs_destroy_inode(struct inode *inode)
+{
+ call_rcu(&inode->i_rcu, debugfs_i_callback);
}
static const struct super_operations debugfs_super_operations = {
.statfs = simple_statfs,
.remount_fs = debugfs_remount,
.show_options = debugfs_show_options,
- .evict_inode = debugfs_evict_inode,
+ .destroy_inode = debugfs_destroy_inode,
};
static struct vfsmount *debugfs_automount(struct path *path)
diff --git a/mm/mincore.c b/mm/mincore.c
index c5687c45c326..578827c5ee6a 100644
--- a/mm/mincore.c
+++ b/mm/mincore.c
@@ -168,6 +168,22 @@ out:
return 0;
}
+static inline bool can_do_mincore(struct vm_area_struct *vma)
+{
+ if (vma_is_anonymous(vma))
+ return true;
+ if (!vma->vm_file)
+ return false;
+ /*
+ * Reveal pagecache information only for non-anonymous mappings that
+ * correspond to the files the calling process could (if tried) open
+ * for writing; otherwise we'd be including shared non-exclusive
+ * mappings, which opens a side channel.
+ */
+ return inode_owner_or_capable(file_inode(vma->vm_file)) ||
+ inode_permission(file_inode(vma->vm_file), MAY_WRITE) == 0;
+}
+
/*
* Do a chunk of "sys_mincore()". We've already checked
* all the arguments, we hold the mmap semaphore: we should
@@ -188,8 +204,13 @@ static long do_mincore(unsigned long addr, unsigned long pages, unsigned char *v
vma = find_vma(current->mm, addr);
if (!vma || addr < vma->vm_start)
return -ENOMEM;
- mincore_walk.mm = vma->vm_mm;
end = min(vma->vm_end, addr + (pages << PAGE_SHIFT));
+ if (!can_do_mincore(vma)) {
+ unsigned long pages = DIV_ROUND_UP(end - addr, PAGE_SIZE);
+ memset(vec, 1, pages);
+ return pages;
+ }
+ mincore_walk.mm = vma->vm_mm;
err = walk_page_range(addr, end, &mincore_walk);
if (err < 0)
return err;
diff --git a/net/dccp/feat.c b/net/dccp/feat.c
index f227f002c73d..db87d9f58019 100644
--- a/net/dccp/feat.c
+++ b/net/dccp/feat.c
@@ -738,7 +738,12 @@ static int __feat_register_sp(struct list_head *fn, u8 feat, u8 is_local,
if (dccp_feat_clone_sp_val(&fval, sp_val, sp_len))
return -ENOMEM;
- return dccp_feat_push_change(fn, feat, is_local, mandatory, &fval);
+ if (dccp_feat_push_change(fn, feat, is_local, mandatory, &fval)) {
+ kfree(fval.sp.vec);
+ return -ENOMEM;
+ }
+
+ return 0;
}
/**
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 4c5dfe6bd34d..cecafefd71d7 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -780,6 +780,11 @@ static void __init ic_bootp_init_ext(u8 *e)
*/
static inline void __init ic_bootp_init(void)
{
+ /* Re-initialise all name servers to NONE, in case any were set via the
+ * "ip=" or "nfsaddrs=" kernel command line parameters: any IP addresses
+ * specified there will already have been decoded but are no longer
+ * needed
+ */
ic_nameservers_predef();
dev_add_pack(&bootp_packet_type);
@@ -1401,6 +1406,13 @@ static int __init ip_auto_config(void)
int err;
unsigned int i;
+ /* Initialise all name servers to NONE (but only if the "ip=" or
+ * "nfsaddrs=" kernel command line parameters weren't decoded, otherwise
+ * we'll overwrite the IP addresses specified there)
+ */
+ if (ic_set_manually == 0)
+ ic_nameservers_predef();
+
#ifdef CONFIG_PROC_FS
proc_create("pnp", S_IRUGO, init_net.proc_net, &pnp_seq_fops);
#endif /* CONFIG_PROC_FS */
@@ -1621,6 +1633,7 @@ static int __init ip_auto_config_setup(char *addrs)
return 1;
}
+ /* Initialise all name servers to NONE */
ic_nameservers_predef();
/* Parse string for static IP assignment. */
diff --git a/net/l2tp/l2tp_core.c b/net/l2tp/l2tp_core.c
index ff9a387097fb..3e7ec1b07027 100644
--- a/net/l2tp/l2tp_core.c
+++ b/net/l2tp/l2tp_core.c
@@ -1787,7 +1787,7 @@ static __net_exit void l2tp_exit_net(struct net *net)
rcu_read_lock_bh();
list_for_each_entry_rcu(tunnel, &pn->l2tp_tunnel_list, list) {
- (void)l2tp_tunnel_delete(tunnel);
+ l2tp_tunnel_delete(tunnel);
}
rcu_read_unlock_bh();
diff --git a/net/l2tp/l2tp_netlink.c b/net/l2tp/l2tp_netlink.c
index 49f9afd4c607..8068f5c05408 100644
--- a/net/l2tp/l2tp_netlink.c
+++ b/net/l2tp/l2tp_netlink.c
@@ -280,7 +280,7 @@ static int l2tp_nl_cmd_tunnel_delete(struct sk_buff *skb, struct genl_info *info
l2tp_tunnel_notify(&l2tp_nl_family, info,
tunnel, L2TP_CMD_TUNNEL_DELETE);
- (void) l2tp_tunnel_delete(tunnel);
+ l2tp_tunnel_delete(tunnel);
l2tp_tunnel_dec_refcount(tunnel);
@@ -761,8 +761,6 @@ static int l2tp_nl_session_send(struct sk_buff *skb, u32 portid, u32 seq, int fl
if ((session->ifname[0] &&
nla_put_string(skb, L2TP_ATTR_IFNAME, session->ifname)) ||
- (session->offset &&
- nla_put_u16(skb, L2TP_ATTR_OFFSET, session->offset)) ||
(session->cookie_len &&
nla_put(skb, L2TP_ATTR_COOKIE, session->cookie_len,
&session->cookie[0])) ||
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index 62ed310e2397..edc0f883cd2f 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -1980,13 +1980,20 @@ ip_vs_in(struct netns_ipvs *ipvs, unsigned int hooknum, struct sk_buff *skb, int
if (cp->dest && !(cp->dest->flags & IP_VS_DEST_F_AVAILABLE)) {
/* the destination server is not available */
- if (sysctl_expire_nodest_conn(ipvs)) {
+ __u32 flags = cp->flags;
+
+ /* when timer already started, silently drop the packet.*/
+ if (timer_pending(&cp->timer))
+ __ip_vs_conn_put(cp);
+ else
+ ip_vs_conn_put(cp);
+
+ if (sysctl_expire_nodest_conn(ipvs) &&
+ !(flags & IP_VS_CONN_F_ONE_PACKET)) {
/* try to expire the connection immediately */
ip_vs_conn_expire_now(cp);
}
- /* don't restart its timer, and silently
- drop the packet. */
- __ip_vs_conn_put(cp);
+
return NF_DROP;
}
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
index 90dc25c5d938..da439e2dadc1 100644
--- a/net/netfilter/ipvs/ip_vs_ctl.c
+++ b/net/netfilter/ipvs/ip_vs_ctl.c
@@ -2252,6 +2252,18 @@ static int ip_vs_set_timeout(struct netns_ipvs *ipvs, struct ip_vs_timeout_user
u->udp_timeout);
#ifdef CONFIG_IP_VS_PROTO_TCP
+ if (u->tcp_timeout < 0 || u->tcp_timeout > (INT_MAX / HZ) ||
+ u->tcp_fin_timeout < 0 || u->tcp_fin_timeout > (INT_MAX / HZ)) {
+ return -EINVAL;
+ }
+#endif
+
+#ifdef CONFIG_IP_VS_PROTO_UDP
+ if (u->udp_timeout < 0 || u->udp_timeout > (INT_MAX / HZ))
+ return -EINVAL;
+#endif
+
+#ifdef CONFIG_IP_VS_PROTO_TCP
if (u->tcp_timeout) {
pd = ip_vs_proto_data_get(ipvs, IPPROTO_TCP);
pd->timeout_table[IP_VS_TCP_S_ESTABLISHED]