219 lines
7.2 KiB
Diff
219 lines
7.2 KiB
Diff
|
diff --git a/Makefile b/Makefile
|
||
|
index f47e685de5f64..9e055c32d77ac 100644
|
||
|
--- a/Makefile
|
||
|
+++ b/Makefile
|
||
|
@@ -1,6 +1,6 @@
|
||
|
VERSION = 4
|
||
|
PATCHLEVEL = 9
|
||
|
-SUBLEVEL = 265
|
||
|
+SUBLEVEL = 266
|
||
|
EXTRAVERSION =
|
||
|
NAME = Roaring Lionus
|
||
|
|
||
|
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
|
||
|
index 9509cc73b9c64..64ae9cde8bdbd 100644
|
||
|
--- a/arch/ia64/kernel/mca.c
|
||
|
+++ b/arch/ia64/kernel/mca.c
|
||
|
@@ -1858,7 +1858,7 @@ ia64_mca_cpu_init(void *cpu_data)
|
||
|
data = mca_bootmem();
|
||
|
first_time = 0;
|
||
|
} else
|
||
|
- data = (void *)__get_free_pages(GFP_KERNEL,
|
||
|
+ data = (void *)__get_free_pages(GFP_ATOMIC,
|
||
|
get_order(sz));
|
||
|
if (!data)
|
||
|
panic("Could not allocate MCA memory for cpu %d\n",
|
||
|
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
|
||
|
index 9f0099c46c881..9ebbd4892557e 100644
|
||
|
--- a/arch/x86/Makefile
|
||
|
+++ b/arch/x86/Makefile
|
||
|
@@ -34,7 +34,7 @@ REALMODE_CFLAGS := $(M16_CFLAGS) -g -Os -D__KERNEL__ \
|
||
|
-DDISABLE_BRANCH_PROFILING \
|
||
|
-Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
|
||
|
-fno-strict-aliasing -fomit-frame-pointer -fno-pic \
|
||
|
- -mno-mmx -mno-sse
|
||
|
+ -mno-mmx -mno-sse $(call cc-option,-fcf-protection=none)
|
||
|
|
||
|
REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -ffreestanding)
|
||
|
REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -fno-stack-protector)
|
||
|
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
|
||
|
index eb5734112cb49..1d1434f9c5a60 100644
|
||
|
--- a/arch/x86/net/bpf_jit_comp.c
|
||
|
+++ b/arch/x86/net/bpf_jit_comp.c
|
||
|
@@ -1082,7 +1082,16 @@ common_load:
|
||
|
}
|
||
|
|
||
|
if (image) {
|
||
|
- if (unlikely(proglen + ilen > oldproglen)) {
|
||
|
+ /*
|
||
|
+ * When populating the image, assert that:
|
||
|
+ *
|
||
|
+ * i) We do not write beyond the allocated space, and
|
||
|
+ * ii) addrs[i] did not change from the prior run, in order
|
||
|
+ * to validate assumptions made for computing branch
|
||
|
+ * displacements.
|
||
|
+ */
|
||
|
+ if (unlikely(proglen + ilen > oldproglen ||
|
||
|
+ proglen + ilen != addrs[i])) {
|
||
|
pr_err("bpf_jit_compile fatal error\n");
|
||
|
return -EFAULT;
|
||
|
}
|
||
|
diff --git a/drivers/gpu/drm/msm/msm_fence.c b/drivers/gpu/drm/msm/msm_fence.c
|
||
|
index a9b9b1c95a2eb..9dbd17be51f7c 100644
|
||
|
--- a/drivers/gpu/drm/msm/msm_fence.c
|
||
|
+++ b/drivers/gpu/drm/msm/msm_fence.c
|
||
|
@@ -56,7 +56,7 @@ int msm_wait_fence(struct msm_fence_context *fctx, uint32_t fence,
|
||
|
int ret;
|
||
|
|
||
|
if (fence > fctx->last_fence) {
|
||
|
- DRM_ERROR("%s: waiting on invalid fence: %u (of %u)\n",
|
||
|
+ DRM_ERROR_RATELIMITED("%s: waiting on invalid fence: %u (of %u)\n",
|
||
|
fctx->name, fence, fctx->last_fence);
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
diff --git a/drivers/isdn/hardware/mISDN/mISDNipac.c b/drivers/isdn/hardware/mISDN/mISDNipac.c
|
||
|
index 8d338ba366d0a..01a1afde5d3c5 100644
|
||
|
--- a/drivers/isdn/hardware/mISDN/mISDNipac.c
|
||
|
+++ b/drivers/isdn/hardware/mISDN/mISDNipac.c
|
||
|
@@ -711,7 +711,7 @@ isac_release(struct isac_hw *isac)
|
||
|
{
|
||
|
if (isac->type & IPAC_TYPE_ISACX)
|
||
|
WriteISAC(isac, ISACX_MASK, 0xff);
|
||
|
- else
|
||
|
+ else if (isac->type != 0)
|
||
|
WriteISAC(isac, ISAC_MASK, 0xff);
|
||
|
if (isac->dch.timer.function != NULL) {
|
||
|
del_timer(&isac->dch.timer);
|
||
|
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
|
||
|
index b18bb0334ded6..dcad5213eb348 100644
|
||
|
--- a/drivers/net/can/flexcan.c
|
||
|
+++ b/drivers/net/can/flexcan.c
|
||
|
@@ -379,9 +379,15 @@ static int flexcan_chip_disable(struct flexcan_priv *priv)
|
||
|
static int flexcan_chip_freeze(struct flexcan_priv *priv)
|
||
|
{
|
||
|
struct flexcan_regs __iomem *regs = priv->regs;
|
||
|
- unsigned int timeout = 1000 * 1000 * 10 / priv->can.bittiming.bitrate;
|
||
|
+ unsigned int timeout;
|
||
|
+ u32 bitrate = priv->can.bittiming.bitrate;
|
||
|
u32 reg;
|
||
|
|
||
|
+ if (bitrate)
|
||
|
+ timeout = 1000 * 1000 * 10 / bitrate;
|
||
|
+ else
|
||
|
+ timeout = FLEXCAN_TIMEOUT_US / 10;
|
||
|
+
|
||
|
reg = flexcan_read(®s->mcr);
|
||
|
reg |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT;
|
||
|
flexcan_write(reg, ®s->mcr);
|
||
|
diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c
|
||
|
index 5d5000c8edf1d..09cb0ac701e11 100644
|
||
|
--- a/drivers/net/ethernet/marvell/pxa168_eth.c
|
||
|
+++ b/drivers/net/ethernet/marvell/pxa168_eth.c
|
||
|
@@ -1571,8 +1571,8 @@ static int pxa168_eth_remove(struct platform_device *pdev)
|
||
|
|
||
|
mdiobus_unregister(pep->smi_bus);
|
||
|
mdiobus_free(pep->smi_bus);
|
||
|
- unregister_netdev(dev);
|
||
|
cancel_work_sync(&pep->tx_timeout_task);
|
||
|
+ unregister_netdev(dev);
|
||
|
free_netdev(dev);
|
||
|
return 0;
|
||
|
}
|
||
|
diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
|
||
|
index ef1c8c158f66b..079db0bd39174 100644
|
||
|
--- a/drivers/target/target_core_pscsi.c
|
||
|
+++ b/drivers/target/target_core_pscsi.c
|
||
|
@@ -951,6 +951,14 @@ pscsi_map_sg(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
|
||
|
|
||
|
return 0;
|
||
|
fail:
|
||
|
+ if (bio)
|
||
|
+ bio_put(bio);
|
||
|
+ while (req->bio) {
|
||
|
+ bio = req->bio;
|
||
|
+ req->bio = bio->bi_next;
|
||
|
+ bio_put(bio);
|
||
|
+ }
|
||
|
+ req->biotail = NULL;
|
||
|
return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
|
||
|
}
|
||
|
|
||
|
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
|
||
|
index 24508b69e78b7..e2ce90fc504ec 100644
|
||
|
--- a/fs/cifs/file.c
|
||
|
+++ b/fs/cifs/file.c
|
||
|
@@ -163,6 +163,7 @@ int cifs_posix_open(char *full_path, struct inode **pinode,
|
||
|
goto posix_open_ret;
|
||
|
}
|
||
|
} else {
|
||
|
+ cifs_revalidate_mapping(*pinode);
|
||
|
cifs_fattr_to_inode(*pinode, &fattr);
|
||
|
}
|
||
|
|
||
|
diff --git a/fs/cifs/smb2misc.c b/fs/cifs/smb2misc.c
|
||
|
index bddb2d7b39824..075b285bbd3ea 100644
|
||
|
--- a/fs/cifs/smb2misc.c
|
||
|
+++ b/fs/cifs/smb2misc.c
|
||
|
@@ -651,8 +651,8 @@ smb2_is_valid_oplock_break(char *buffer, struct TCP_Server_Info *server)
|
||
|
}
|
||
|
}
|
||
|
spin_unlock(&cifs_tcp_ses_lock);
|
||
|
- cifs_dbg(FYI, "Can not process oplock break for non-existent connection\n");
|
||
|
- return false;
|
||
|
+ cifs_dbg(FYI, "No file id matched, oplock break ignored\n");
|
||
|
+ return true;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
diff --git a/init/Kconfig b/init/Kconfig
|
||
|
index 0a615bdc203a4..07570008e2fd9 100644
|
||
|
--- a/init/Kconfig
|
||
|
+++ b/init/Kconfig
|
||
|
@@ -65,8 +65,7 @@ config CROSS_COMPILE
|
||
|
|
||
|
config COMPILE_TEST
|
||
|
bool "Compile also drivers which will not load"
|
||
|
- depends on !UML
|
||
|
- default n
|
||
|
+ depends on HAS_IOMEM
|
||
|
help
|
||
|
Some drivers can be compiled on a different platform than they are
|
||
|
intended to be run on. Despite they cannot be loaded there (or even
|
||
|
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
|
||
|
index e3bbfb20ae829..f31fd21d59ba9 100644
|
||
|
--- a/net/mac80211/main.c
|
||
|
+++ b/net/mac80211/main.c
|
||
|
@@ -906,8 +906,19 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
||
|
continue;
|
||
|
|
||
|
if (!dflt_chandef.chan) {
|
||
|
+ /*
|
||
|
+ * Assign the first enabled channel to dflt_chandef
|
||
|
+ * from the list of channels
|
||
|
+ */
|
||
|
+ for (i = 0; i < sband->n_channels; i++)
|
||
|
+ if (!(sband->channels[i].flags &
|
||
|
+ IEEE80211_CHAN_DISABLED))
|
||
|
+ break;
|
||
|
+ /* if none found then use the first anyway */
|
||
|
+ if (i == sband->n_channels)
|
||
|
+ i = 0;
|
||
|
cfg80211_chandef_create(&dflt_chandef,
|
||
|
- &sband->channels[0],
|
||
|
+ &sband->channels[i],
|
||
|
NL80211_CHAN_NO_HT);
|
||
|
/* init channel we're on */
|
||
|
if (!local->use_chanctx && !local->_oper_chandef.chan) {
|
||
|
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
|
||
|
index 79c45046edc61..7b94170aa5ecb 100644
|
||
|
--- a/sound/pci/hda/patch_realtek.c
|
||
|
+++ b/sound/pci/hda/patch_realtek.c
|
||
|
@@ -6285,7 +6285,6 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
|
||
|
SND_HDA_PIN_QUIRK(0x10ec0299, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,
|
||
|
ALC225_STANDARD_PINS,
|
||
|
{0x12, 0xb7a60130},
|
||
|
- {0x13, 0xb8a61140},
|
||
|
{0x17, 0x90170110}),
|
||
|
{}
|
||
|
};
|