Update to 4.7-rc2
[rt] Disable until it is updated for 4.7 or later
This commit is contained in:
parent
72f58e83ea
commit
906f7b1351
|
@ -1,5 +1,8 @@
|
|||
linux (4.6.1-2) UNRELEASED; urgency=medium
|
||||
linux (4.7~rc2-1~exp1) UNRELEASED; urgency=medium
|
||||
|
||||
* New upstream release candidate
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* bug script: Put binary package name and version in the info file so
|
||||
linux-signed can easily replace them
|
||||
* Move merge_packages function from debian/bin/gencontrol.py to
|
||||
|
@ -7,6 +10,7 @@ linux (4.6.1-2) UNRELEASED; urgency=medium
|
|||
* udeb: Drop packages for modules that will later be signed
|
||||
* linux-image: Add '-unsigned' suffix to packages with modules that will
|
||||
later be signed
|
||||
* [rt] Disable until it is updated for 4.7 or later
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Tue, 07 Jun 2016 19:37:55 +0100
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ featuresets:
|
|||
signed-modules: true
|
||||
|
||||
[featureset-rt_base]
|
||||
enabled: true
|
||||
enabled: false
|
||||
|
||||
[description]
|
||||
part-long-up: This kernel is not suitable for SMP (multi-processor,
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
From: Kangjie Lu <kangjielu@gmail.com>
|
||||
Date: Tue, 3 May 2016 16:44:20 -0400
|
||||
Subject: [1/2] ALSA: timer: Fix leak in events via snd_timer_user_ccallback
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Origin: https://git.kernel.org/linus/9a47e9cff994f37f7f0dbd9ae23740d0f64f9fe6
|
||||
|
||||
The stack object “r1” has a total size of 32 bytes. Its field
|
||||
“event” and “val” both contain 4 bytes padding. These 8 bytes
|
||||
padding bytes are sent to user without being initialized.
|
||||
|
||||
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/core/timer.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/sound/core/timer.c
|
||||
+++ b/sound/core/timer.c
|
||||
@@ -1247,6 +1247,7 @@ static void snd_timer_user_ccallback(str
|
||||
tu->tstamp = *tstamp;
|
||||
if ((tu->filter & (1 << event)) == 0 || !tu->tread)
|
||||
return;
|
||||
+ memset(&r1, 0, sizeof(r1));
|
||||
r1.event = event;
|
||||
r1.tstamp = *tstamp;
|
||||
r1.val = resolution;
|
|
@ -1,28 +0,0 @@
|
|||
From: Kangjie Lu <kangjielu@gmail.com>
|
||||
Date: Tue, 3 May 2016 16:44:32 -0400
|
||||
Subject: [2/2] ALSA: timer: Fix leak in events via snd_timer_user_tinterrupt
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Origin: https://git.kernel.org/linus/e4ec8cc8039a7063e24204299b462bd1383184a5
|
||||
|
||||
The stack object “r1” has a total size of 32 bytes. Its field
|
||||
“event” and “val” both contain 4 bytes padding. These 8 bytes
|
||||
padding bytes are sent to user without being initialized.
|
||||
|
||||
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/core/timer.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/sound/core/timer.c
|
||||
+++ b/sound/core/timer.c
|
||||
@@ -1290,6 +1290,7 @@ static void snd_timer_user_tinterrupt(st
|
||||
}
|
||||
if ((tu->filter & (1 << SNDRV_TIMER_EVENT_RESOLUTION)) &&
|
||||
tu->last_resolution != resolution) {
|
||||
+ memset(&r1, 0, sizeof(r1));
|
||||
r1.event = SNDRV_TIMER_EVENT_RESOLUTION;
|
||||
r1.tstamp = tstamp;
|
||||
r1.val = resolution;
|
|
@ -1,28 +0,0 @@
|
|||
From: Kangjie Lu <kangjielu@gmail.com>
|
||||
Date: Tue, 3 May 2016 16:44:07 -0400
|
||||
Subject: ALSA: timer: Fix leak in SNDRV_TIMER_IOCTL_PARAMS
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Origin: https://git.kernel.org/linus/cec8f96e49d9be372fdb0c3836dcf31ec71e457e
|
||||
|
||||
The stack object “tread” has a total size of 32 bytes. Its field
|
||||
“event” and “val” both contain 4 bytes padding. These 8 bytes
|
||||
padding bytes are sent to user without being initialized.
|
||||
|
||||
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/core/timer.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/sound/core/timer.c
|
||||
+++ b/sound/core/timer.c
|
||||
@@ -1755,6 +1755,7 @@ static int snd_timer_user_params(struct
|
||||
if (tu->timeri->flags & SNDRV_TIMER_IFLG_EARLY_EVENT) {
|
||||
if (tu->tread) {
|
||||
struct snd_timer_tread tread;
|
||||
+ memset(&tread, 0, sizeof(tread));
|
||||
tread.event = SNDRV_TIMER_EVENT_EARLY;
|
||||
tread.tstamp.tv_sec = 0;
|
||||
tread.tstamp.tv_nsec = 0;
|
|
@ -96,7 +96,7 @@ upstream submission.
|
|||
fw_size = firmware->size / sizeof(u32);
|
||||
--- a/drivers/bluetooth/ath3k.c
|
||||
+++ b/drivers/bluetooth/ath3k.c
|
||||
@@ -416,10 +416,8 @@ static int ath3k_load_patch(struct usb_d
|
||||
@@ -420,10 +420,8 @@ static int ath3k_load_patch(struct usb_d
|
||||
le32_to_cpu(fw_version.rom_version));
|
||||
|
||||
ret = request_firmware(&firmware, filename, &udev->dev);
|
||||
|
@ -108,7 +108,7 @@ upstream submission.
|
|||
|
||||
pt_rom_version = get_unaligned_le32(firmware->data +
|
||||
firmware->size - 8);
|
||||
@@ -479,10 +477,8 @@ static int ath3k_load_syscfg(struct usb_
|
||||
@@ -483,10 +481,8 @@ static int ath3k_load_syscfg(struct usb_
|
||||
le32_to_cpu(fw_version.rom_version), clk_value, ".dfu");
|
||||
|
||||
ret = request_firmware(&firmware, filename, &udev->dev);
|
||||
|
@ -168,7 +168,7 @@ upstream submission.
|
|||
|
||||
--- a/drivers/bluetooth/btmrvl_sdio.c
|
||||
+++ b/drivers/bluetooth/btmrvl_sdio.c
|
||||
@@ -390,8 +390,6 @@ static int btmrvl_sdio_download_helper(s
|
||||
@@ -452,8 +452,6 @@ static int btmrvl_sdio_download_helper(s
|
||||
ret = request_firmware(&fw_helper, card->helper,
|
||||
&card->func->dev);
|
||||
if ((ret < 0) || !fw_helper) {
|
||||
|
@ -177,7 +177,7 @@ upstream submission.
|
|||
ret = -ENOENT;
|
||||
goto done;
|
||||
}
|
||||
@@ -490,8 +488,6 @@ static int btmrvl_sdio_download_fw_w_hel
|
||||
@@ -552,8 +550,6 @@ static int btmrvl_sdio_download_fw_w_hel
|
||||
ret = request_firmware(&fw_firmware, card->firmware,
|
||||
&card->func->dev);
|
||||
if ((ret < 0) || !fw_firmware) {
|
||||
|
@ -233,7 +233,7 @@ upstream submission.
|
|||
where = 0;
|
||||
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
|
||||
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
|
||||
@@ -1755,10 +1755,8 @@ gf100_gr_ctor_fw(struct gf100_gr *gr, co
|
||||
@@ -1740,10 +1740,8 @@ gf100_gr_ctor_fw(struct gf100_gr *gr, co
|
||||
int ret;
|
||||
|
||||
ret = nvkm_firmware_get(device, fwname, &fw);
|
||||
|
@ -275,7 +275,7 @@ upstream submission.
|
|||
release_firmware(rdev->me_fw);
|
||||
--- a/drivers/gpu/drm/radeon/r100.c
|
||||
+++ b/drivers/gpu/drm/radeon/r100.c
|
||||
@@ -1039,10 +1039,7 @@ static int r100_cp_init_microcode(struct
|
||||
@@ -1041,10 +1041,7 @@ static int r100_cp_init_microcode(struct
|
||||
}
|
||||
|
||||
err = request_firmware(&rdev->me_fw, fw_name, rdev->dev);
|
||||
|
@ -289,7 +289,7 @@ upstream submission.
|
|||
rdev->me_fw->size, fw_name);
|
||||
--- a/drivers/gpu/drm/radeon/r600.c
|
||||
+++ b/drivers/gpu/drm/radeon/r600.c
|
||||
@@ -2592,10 +2592,6 @@ int r600_init_microcode(struct radeon_de
|
||||
@@ -2599,10 +2599,6 @@ int r600_init_microcode(struct radeon_de
|
||||
|
||||
out:
|
||||
if (err) {
|
||||
|
@ -898,22 +898,18 @@ upstream submission.
|
|||
}
|
||||
--- a/drivers/media/usb/cx231xx/cx231xx-417.c
|
||||
+++ b/drivers/media/usb/cx231xx/cx231xx-417.c
|
||||
@@ -995,14 +995,8 @@ static int cx231xx_load_firmware(struct
|
||||
retval = request_firmware(&firmware, CX231xx_FIRM_IMAGE_NAME,
|
||||
@@ -999,11 +999,6 @@ static int cx231xx_load_firmware(struct
|
||||
dev->dev);
|
||||
|
||||
- if (retval != 0) {
|
||||
if (retval != 0) {
|
||||
- dev_err(dev->dev,
|
||||
- "ERROR: Hotplug firmware request failed (%s).\n",
|
||||
- CX231xx_FIRM_IMAGE_NAME);
|
||||
- dev_err(dev->dev,
|
||||
- "Please fix your hotplug setup, the board will not work without firmware loaded!\n");
|
||||
+ if (retval != 0)
|
||||
return -1;
|
||||
- }
|
||||
|
||||
if (firmware->size != CX231xx_FIRM_IMAGE_SIZE) {
|
||||
dev_err(dev->dev,
|
||||
vfree(p_current_fw);
|
||||
vfree(p_buffer);
|
||||
return retval;
|
||||
--- a/drivers/media/pci/cx23885/cx23885-417.c
|
||||
+++ b/drivers/media/pci/cx23885/cx23885-417.c
|
||||
@@ -931,14 +931,8 @@ static int cx23885_load_firmware(struct
|
||||
|
@ -1079,7 +1075,7 @@ upstream submission.
|
|||
__func__, fw->size);
|
||||
--- a/drivers/misc/ti-st/st_kim.c
|
||||
+++ b/drivers/misc/ti-st/st_kim.c
|
||||
@@ -303,11 +303,8 @@ static long download_firmware(struct kim
|
||||
@@ -302,11 +302,8 @@ static long download_firmware(struct kim
|
||||
request_firmware(&kim_gdata->fw_entry, bts_scr_name,
|
||||
&kim_gdata->kim_pdev->dev);
|
||||
if (unlikely((err != 0) || (kim_gdata->fw_entry->data == NULL) ||
|
||||
|
@ -1189,7 +1185,7 @@ upstream submission.
|
|||
if (bp->mips_firmware->size < sizeof(*mips_fw) ||
|
||||
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
|
||||
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
|
||||
@@ -13467,11 +13467,8 @@ static int bnx2x_init_firmware(struct bn
|
||||
@@ -13466,11 +13466,8 @@ static int bnx2x_init_firmware(struct bn
|
||||
BNX2X_DEV_INFO("Loading %s\n", fw_file_name);
|
||||
|
||||
rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev);
|
||||
|
@ -1233,7 +1229,7 @@ upstream submission.
|
|||
*bfi_image_size = fw->size/sizeof(u32);
|
||||
--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
|
||||
+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
|
||||
@@ -1036,12 +1036,8 @@ int t3_get_edc_fw(struct cphy *phy, int
|
||||
@@ -1037,12 +1037,8 @@ int t3_get_edc_fw(struct cphy *phy, int
|
||||
fw_name = get_edc_fw_name(edc_idx);
|
||||
if (fw_name)
|
||||
ret = request_firmware(&fw, fw_name, &adapter->pdev->dev);
|
||||
|
@ -1247,7 +1243,7 @@ upstream submission.
|
|||
|
||||
/* check size, take checksum in account */
|
||||
if (fw->size > size + 4) {
|
||||
@@ -1078,11 +1074,8 @@ static int upgrade_fw(struct adapter *ad
|
||||
@@ -1079,11 +1075,8 @@ static int upgrade_fw(struct adapter *ad
|
||||
struct device *dev = &adap->pdev->dev;
|
||||
|
||||
ret = request_firmware(&fw, FW_FNAME, dev);
|
||||
|
@ -1260,7 +1256,7 @@ upstream submission.
|
|||
ret = t3_load_fw(adap, fw->data, fw->size);
|
||||
release_firmware(fw);
|
||||
|
||||
@@ -1127,11 +1120,8 @@ static int update_tpsram(struct adapter
|
||||
@@ -1128,11 +1121,8 @@ static int update_tpsram(struct adapter
|
||||
snprintf(buf, sizeof(buf), TPSRAM_NAME, rev);
|
||||
|
||||
ret = request_firmware(&tpsram, buf, dev);
|
||||
|
@ -1537,21 +1533,18 @@ upstream submission.
|
|||
else
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
@@ -1219,13 +1219,8 @@ static void iwl_req_fw_callback(const st
|
||||
if (!pieces)
|
||||
return;
|
||||
@@ -224,10 +224,8 @@ static int iwl_request_firmware(struct i
|
||||
sprintf(tag, "%d", drv->fw_index);
|
||||
}
|
||||
|
||||
- if (!ucode_raw) {
|
||||
- if (drv->fw_index <= api_ok)
|
||||
- IWL_ERR(drv,
|
||||
- "request for firmware file '%s' failed.\n",
|
||||
- drv->firmware_name);
|
||||
+ if (!ucode_raw)
|
||||
goto try_again;
|
||||
- if (drv->fw_index < drv->cfg->ucode_api_min) {
|
||||
- IWL_ERR(drv, "no suitable firmware found!\n");
|
||||
+ if (drv->fw_index < drv->cfg->ucode_api_min)
|
||||
return -ENOENT;
|
||||
- }
|
||||
|
||||
IWL_DEBUG_INFO(drv, "Loaded firmware file '%s' (%zd bytes).\n",
|
||||
drv->firmware_name, ucode_raw->size);
|
||||
snprintf(drv->firmware_name, sizeof(drv->firmware_name), "%s%s.ucode",
|
||||
name_pre, tag);
|
||||
--- a/drivers/net/wireless/marvell/libertas_tf/if_usb.c
|
||||
+++ b/drivers/net/wireless/marvell/libertas_tf/if_usb.c
|
||||
@@ -824,8 +824,6 @@ static int if_usb_prog_firmware(struct i
|
||||
|
@ -2082,7 +2075,7 @@ upstream submission.
|
|||
RT_TRACE(COMP_ERR, "img file size exceed the container buffer fail!\n");
|
||||
--- a/drivers/staging/rtl8712/hal_init.c
|
||||
+++ b/drivers/staging/rtl8712/hal_init.c
|
||||
@@ -71,8 +71,6 @@ int rtl871x_load_fw(struct _adapter *pad
|
||||
@@ -67,8 +67,6 @@ int rtl871x_load_fw(struct _adapter *pad
|
||||
dev_info(dev, "r8712u: Loading firmware from \"%s\"\n", firmware_file);
|
||||
rc = request_firmware_nowait(THIS_MODULE, 1, firmware_file, dev,
|
||||
GFP_KERNEL, padapter, rtl871x_load_fw_cb);
|
||||
|
@ -2137,7 +2130,7 @@ upstream submission.
|
|||
if (!buffer)
|
||||
--- a/drivers/tty/cyclades.c
|
||||
+++ b/drivers/tty/cyclades.c
|
||||
@@ -3507,10 +3507,8 @@ static int cyz_load_fw(struct pci_dev *p
|
||||
@@ -3499,10 +3499,8 @@ static int cyz_load_fw(struct pci_dev *p
|
||||
int retval;
|
||||
|
||||
retval = request_firmware(&fw, "cyzfirm.bin", &pdev->dev);
|
||||
|
@ -2374,10 +2367,10 @@ upstream submission.
|
|||
|
||||
--- a/drivers/usb/serial/ti_usb_3410_5052.c
|
||||
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
|
||||
@@ -1487,10 +1487,8 @@ static int ti_download_firmware(struct t
|
||||
}
|
||||
status = request_firmware(&fw_p, buf, &dev->dev);
|
||||
@@ -1536,10 +1536,8 @@ static int ti_download_firmware(struct t
|
||||
}
|
||||
|
||||
check_firmware:
|
||||
- if (status) {
|
||||
- dev_err(&dev->dev, "%s - firmware not found\n", __func__);
|
||||
+ if (status)
|
||||
|
@ -2477,7 +2470,7 @@ upstream submission.
|
|||
snd_printk(KERN_INFO "sscape: MIDI firmware loaded %zu KBs\n",
|
||||
--- a/sound/isa/wavefront/wavefront_synth.c
|
||||
+++ b/sound/isa/wavefront/wavefront_synth.c
|
||||
@@ -1947,10 +1947,8 @@ wavefront_download_firmware (snd_wavefro
|
||||
@@ -1956,10 +1956,8 @@ wavefront_download_firmware (snd_wavefro
|
||||
const struct firmware *firmware;
|
||||
|
||||
err = request_firmware(&firmware, path, dev->card->dev);
|
||||
|
@ -2533,7 +2526,7 @@ upstream submission.
|
|||
filename, emu->firmware->size);
|
||||
--- a/sound/pci/hda/hda_intel.c
|
||||
+++ b/sound/pci/hda/hda_intel.c
|
||||
@@ -1829,10 +1829,8 @@ static void azx_firmware_cb(const struct
|
||||
@@ -1781,10 +1781,8 @@ static void azx_firmware_cb(const struct
|
||||
struct azx *chip = card->private_data;
|
||||
struct pci_dev *pci = chip->pci;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ the kernel.
|
|||
|
||||
--- a/scripts/Kbuild.include
|
||||
+++ b/scripts/Kbuild.include
|
||||
@@ -111,12 +111,12 @@ as-instr = $(call try-run,\
|
||||
@@ -112,12 +112,12 @@ as-instr = $(call try-run,\
|
||||
# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
|
||||
|
||||
cc-option = $(call try-run,\
|
||||
|
@ -30,7 +30,7 @@ the kernel.
|
|||
|
||||
# cc-option-align
|
||||
# Prefix align with either -falign or -malign
|
||||
@@ -126,18 +126,19 @@ cc-option-align = $(subst -functions=0,,
|
||||
@@ -127,18 +127,19 @@ cc-option-align = $(subst -functions=0,,
|
||||
# cc-disable-warning
|
||||
# Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
|
||||
cc-disable-warning = $(call try-run,\
|
||||
|
@ -53,7 +53,7 @@ the kernel.
|
|||
|
||||
# cc-ifversion
|
||||
# Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1)
|
||||
@@ -151,7 +152,7 @@ cc-ldoption = $(call try-run,\
|
||||
@@ -152,7 +153,7 @@ cc-ldoption = $(call try-run,\
|
||||
# ld-option
|
||||
# Usage: LDFLAGS += $(call ld-option, -X)
|
||||
ld-option = $(call try-run,\
|
||||
|
@ -64,8 +64,8 @@ the kernel.
|
|||
# Usage: KBUILD_ARFLAGS := $(call ar-option,D)
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -614,6 +614,8 @@ else
|
||||
KBUILD_CFLAGS += -O2
|
||||
@@ -630,6 +630,8 @@ KBUILD_CFLAGS += -O2
|
||||
endif
|
||||
endif
|
||||
|
||||
+NOSTDINC_FLAGS += -nostdinc
|
||||
|
@ -73,7 +73,7 @@ the kernel.
|
|||
# Tell gcc to never replace conditional load with a non-conditional one
|
||||
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
|
||||
|
||||
@@ -744,7 +746,7 @@ KBUILD_CFLAGS += $(call cc-option, -fno-
|
||||
@@ -769,7 +771,7 @@ KBUILD_CFLAGS += $(call cc-option, -fno-
|
||||
endif
|
||||
|
||||
# arch Makefile may override CC so keep this after arch Makefile is included
|
||||
|
|
|
@ -1,62 +0,0 @@
|
|||
From: Mattia Dongili <malattia@linux.it>
|
||||
Date: Fri, 19 Feb 2016 07:46:32 -0800
|
||||
Subject: Fix cpupower manpages "NAME" section
|
||||
Forwarded: http://article.gmane.org/gmane.linux.power-management.general/73191
|
||||
|
||||
The token before "-" should be the program name, no spaces allowed.
|
||||
See man(7) and lexgrog(1).
|
||||
|
||||
Signed-off-by: Mattia Dongili <malattia@linux.it>
|
||||
---
|
||||
diff --git a/tools/power/cpupower/man/cpupower-frequency-info.1 b/tools/power/cpupower/man/cpupower-frequency-info.1
|
||||
index 9c85a38..6aa8d23 100644
|
||||
--- a/tools/power/cpupower/man/cpupower-frequency-info.1
|
||||
+++ b/tools/power/cpupower/man/cpupower-frequency-info.1
|
||||
@@ -1,7 +1,7 @@
|
||||
.TH "CPUPOWER\-FREQUENCY\-INFO" "1" "0.1" "" "cpupower Manual"
|
||||
.SH "NAME"
|
||||
.LP
|
||||
-cpupower frequency\-info \- Utility to retrieve cpufreq kernel information
|
||||
+cpupower\-frequency\-info \- Utility to retrieve cpufreq kernel information
|
||||
.SH "SYNTAX"
|
||||
.LP
|
||||
cpupower [ \-c cpulist ] frequency\-info [\fIoptions\fP]
|
||||
diff --git a/tools/power/cpupower/man/cpupower-frequency-set.1 b/tools/power/cpupower/man/cpupower-frequency-set.1
|
||||
index 3eacc8d..b505702 100644
|
||||
--- a/tools/power/cpupower/man/cpupower-frequency-set.1
|
||||
+++ b/tools/power/cpupower/man/cpupower-frequency-set.1
|
||||
@@ -1,7 +1,7 @@
|
||||
.TH "CPUPOWER\-FREQUENCY\-SET" "1" "0.1" "" "cpupower Manual"
|
||||
.SH "NAME"
|
||||
.LP
|
||||
-cpupower frequency\-set \- A small tool which allows to modify cpufreq settings.
|
||||
+cpupower\-frequency\-set \- A small tool which allows to modify cpufreq settings.
|
||||
.SH "SYNTAX"
|
||||
.LP
|
||||
cpupower [ \-c cpu ] frequency\-set [\fIoptions\fP]
|
||||
diff --git a/tools/power/cpupower/man/cpupower-idle-info.1 b/tools/power/cpupower/man/cpupower-idle-info.1
|
||||
index 7b3646a..80a1311 100644
|
||||
--- a/tools/power/cpupower/man/cpupower-idle-info.1
|
||||
+++ b/tools/power/cpupower/man/cpupower-idle-info.1
|
||||
@@ -1,7 +1,7 @@
|
||||
.TH "CPUPOWER-IDLE-INFO" "1" "0.1" "" "cpupower Manual"
|
||||
.SH "NAME"
|
||||
.LP
|
||||
-cpupower idle\-info \- Utility to retrieve cpu idle kernel information
|
||||
+cpupower\-idle\-info \- Utility to retrieve cpu idle kernel information
|
||||
.SH "SYNTAX"
|
||||
.LP
|
||||
cpupower [ \-c cpulist ] idle\-info [\fIoptions\fP]
|
||||
diff --git a/tools/power/cpupower/man/cpupower-idle-set.1 b/tools/power/cpupower/man/cpupower-idle-set.1
|
||||
index 580c4e3..21916cf 100644
|
||||
--- a/tools/power/cpupower/man/cpupower-idle-set.1
|
||||
+++ b/tools/power/cpupower/man/cpupower-idle-set.1
|
||||
@@ -1,7 +1,7 @@
|
||||
.TH "CPUPOWER-IDLE-SET" "1" "0.1" "" "cpupower Manual"
|
||||
.SH "NAME"
|
||||
.LP
|
||||
-cpupower idle\-set \- Utility to set cpu idle state specific kernel options
|
||||
+cpupower\-idle\-set \- Utility to set cpu idle state specific kernel options
|
||||
.SH "SYNTAX"
|
||||
.LP
|
||||
cpupower [ \-c cpulist ] idle\-info [\fIoptions\fP]
|
|
@ -1,30 +0,0 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Mon, 28 Sep 2015 01:34:21 +0100
|
||||
Subject: rtsx_usb_ms: Use msleep_interruptible() in polling loop
|
||||
Bug-Debian: https://bugs.debian.org/765717
|
||||
Forwarded: http://mid.gmane.org/1443400461.2517.22.camel@decadent.org.uk
|
||||
|
||||
rtsx_usb_ms creates a task that mostly sleeps, but tasks in
|
||||
uninterruptible sleep still contribute to the load average (for
|
||||
bug-compatibility with Unix). A load average of ~1 on a system that
|
||||
should be idle is somewhat alarming.
|
||||
|
||||
Change the sleep to be interruptible, but still ignore signals.
|
||||
|
||||
A better fix might be to replace this loop with a delayed work item.
|
||||
|
||||
References: https://bugs.debian.org/765717
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
---
|
||||
--- a/drivers/memstick/host/rtsx_usb_ms.c
|
||||
+++ b/drivers/memstick/host/rtsx_usb_ms.c
|
||||
@@ -706,7 +706,8 @@ poll_again:
|
||||
if (host->eject)
|
||||
break;
|
||||
|
||||
- msleep(1000);
|
||||
+ if (msleep_interruptible(1000))
|
||||
+ flush_signals(current);
|
||||
}
|
||||
|
||||
complete(&host->detect_ms_exit);
|
|
@ -1,36 +0,0 @@
|
|||
From: Richard Alpe <richard.alpe@ericsson.com>
|
||||
Date: Mon, 16 May 2016 11:14:54 +0200
|
||||
Subject: tipc: check nl sock before parsing nested attributes
|
||||
Origin: https://git.kernel.org/linus/45e093ae2830cd1264677d47ff9a95a71f5d9f9c
|
||||
|
||||
Make sure the socket for which the user is listing publication exists
|
||||
before parsing the socket netlink attributes.
|
||||
|
||||
Prior to this patch a call without any socket caused a NULL pointer
|
||||
dereference in tipc_nl_publ_dump().
|
||||
|
||||
Tested-and-reported-by: Baozeng Ding <sploving1@gmail.com>
|
||||
Signed-off-by: Richard Alpe <richard.alpe@ericsson.com>
|
||||
Acked-by: Jon Maloy <jon.maloy@ericsson.cm>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/tipc/socket.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
|
||||
index 1262889..3b7a799 100644
|
||||
--- a/net/tipc/socket.c
|
||||
+++ b/net/tipc/socket.c
|
||||
@@ -2853,6 +2853,9 @@ int tipc_nl_publ_dump(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
+ if (!attrs[TIPC_NLA_SOCK])
|
||||
+ return -EINVAL;
|
||||
+
|
||||
err = nla_parse_nested(sock, TIPC_NLA_SOCK_MAX,
|
||||
attrs[TIPC_NLA_SOCK],
|
||||
tipc_nl_sock_policy);
|
||||
--
|
||||
2.8.1
|
||||
|
|
@ -21,14 +21,14 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||
# error __NR_bpf not defined. libbpf does not support your arch.
|
||||
# endif
|
||||
#endif
|
||||
@@ -28,9 +29,5 @@ int main(void)
|
||||
@@ -27,9 +28,5 @@ int main(void)
|
||||
attr.log_level = 0;
|
||||
attr.kern_version = 0;
|
||||
|
||||
attr = attr;
|
||||
- /*
|
||||
- * Test existence of __NR_bpf and BPF_PROG_LOAD.
|
||||
- * This call should fail if we run the testcase.
|
||||
- */
|
||||
- return syscall(__NR_bpf, BPF_PROG_LOAD, attr, sizeof(attr));
|
||||
- return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr));
|
||||
+ return 0;
|
||||
}
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
From: Kangjie Lu <kangjielu@gmail.com>
|
||||
Date: Tue, 3 May 2016 16:32:16 -0400
|
||||
Subject: USB: usbfs: fix potential infoleak in devio
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Origin: https://git.kernel.org/linus/681fef8380eb818c0b845fca5d2ab1dcbab114ee
|
||||
|
||||
The stack object “ci” has a total size of 8 bytes. Its last 3 bytes
|
||||
are padding bytes which are not initialized and leaked to userland
|
||||
via “copy_to_user”.
|
||||
|
||||
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/usb/core/devio.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/usb/core/devio.c
|
||||
+++ b/drivers/usb/core/devio.c
|
||||
@@ -1186,10 +1186,11 @@ static int proc_getdriver(struct usb_dev
|
||||
|
||||
static int proc_connectinfo(struct usb_dev_state *ps, void __user *arg)
|
||||
{
|
||||
- struct usbdevfs_connectinfo ci = {
|
||||
- .devnum = ps->dev->devnum,
|
||||
- .slow = ps->dev->speed == USB_SPEED_LOW
|
||||
- };
|
||||
+ struct usbdevfs_connectinfo ci;
|
||||
+
|
||||
+ memset(&ci, 0, sizeof(ci));
|
||||
+ ci.devnum = ps->dev->devnum;
|
||||
+ ci.slow = ps->dev->speed == USB_SPEED_LOW;
|
||||
|
||||
if (copy_to_user(arg, &ci, sizeof(ci)))
|
||||
return -EFAULT;
|
|
@ -1,33 +0,0 @@
|
|||
From: Paul Burton <paul.burton@imgtec.com>
|
||||
Date: Thu, 21 Apr 2016 12:25:38 +0100
|
||||
Subject: MIPS: Allow emulation for unaligned [LS]DXC1 instructions
|
||||
Origin: https://git.kernel.org/linus/e70ac023f9515c70cf2b291a294f0f250df29847
|
||||
|
||||
If an address error exception occurs for a LDXC1 or SDXC1 instruction,
|
||||
within the cop1x opcode space, allow it to be passed through to the FPU
|
||||
emulator rather than resulting in a SIGILL. This causes LDXC1 & SDXC1 to
|
||||
be handled in a manner consistent with the more common LDC1 & SDC1
|
||||
instructions.
|
||||
|
||||
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
|
||||
Cc: Aurelien Jarno <aurelien@aurel32.net>
|
||||
---
|
||||
arch/mips/kernel/unaligned.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
|
||||
index 5c62065..28b3af7 100644
|
||||
--- a/arch/mips/kernel/unaligned.c
|
||||
+++ b/arch/mips/kernel/unaligned.c
|
||||
@@ -1191,6 +1191,7 @@ static void emulate_load_store_insn(struct pt_regs *regs,
|
||||
case ldc1_op:
|
||||
case swc1_op:
|
||||
case sdc1_op:
|
||||
+ case cop1x_op:
|
||||
die_if_kernel("Unaligned FP access in kernel code", regs);
|
||||
BUG_ON(!used_math());
|
||||
|
||||
--
|
||||
2.8.0
|
||||
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From: Paul Burton <paul.burton@imgtec.com>
|
||||
Date: Thu, 21 Apr 2016 12:43:57 +0100
|
||||
Subject: [1/2] MIPS: Disable preemption during prctl(PR_SET_FP_MODE, ...)
|
||||
Origin: https://git.kernel.org/linus/bd239f1e1429e7781096bf3884bdb1b2b1bb4f28
|
||||
|
||||
Whilst a PR_SET_FP_MODE prctl is performed there are decisions made
|
||||
based upon whether the task is executing on the current CPU. This may
|
||||
change if we're preempted, so disable preemption to avoid such changes
|
||||
for the lifetime of the mode switch.
|
||||
|
||||
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
|
||||
Fixes: 9791554b45a2 ("MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS")
|
||||
Cc: stable <stable@vger.kernel.org> # v4.0+
|
||||
---
|
||||
arch/mips/kernel/process.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
|
||||
index 92880ce..ce55ea0 100644
|
||||
--- a/arch/mips/kernel/process.c
|
||||
+++ b/arch/mips/kernel/process.c
|
||||
@@ -601,6 +601,9 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value)
|
||||
if (!(value & PR_FP_MODE_FR) && cpu_has_fpu && cpu_has_mips_r6)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
+ /* Proceed with the mode switch */
|
||||
+ preempt_disable();
|
||||
+
|
||||
/* Save FP & vector context, then disable FPU & MSA */
|
||||
if (task->signal == current->signal)
|
||||
lose_fpu(1);
|
||||
@@ -659,6 +662,7 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value)
|
||||
|
||||
/* Allow threads to use FP again */
|
||||
atomic_set(&task->mm->context.fp_mode_switching, 0);
|
||||
+ preempt_enable();
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.8.1
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
From: Paul Burton <paul.burton@imgtec.com>
|
||||
Date: Thu, 21 Apr 2016 12:43:58 +0100
|
||||
Subject: [2/2] MIPS: Force CPUs to lose FP context during mode switches
|
||||
Origin: https://git.kernel.org/linus/6b8322576e9d325b65c54fbef64e4e8690ad70ce
|
||||
|
||||
Commit 9791554b45a2 ("MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options
|
||||
for MIPS") added support for the PR_SET_FP_MODE prctl, which allows a
|
||||
userland program to modify its FP mode at runtime. This is most notably
|
||||
required if dynamic linking leads to the FP mode requirement changing at
|
||||
runtime from that indicated in the initial executable's ELF header. In
|
||||
order to avoid overhead in the general FP context restore code, it aimed
|
||||
to have threads in the process become unable to enable the FPU during a
|
||||
mode switch & have the thread calling the prctl syscall wait for all
|
||||
other threads in the process to be context switched at least once. Once
|
||||
that happens we can know that no thread in the process whose mode will
|
||||
be switched has live FP context, and it's safe to perform the mode
|
||||
switch. However in the (rare) case of modeswitches occurring in
|
||||
multithreaded programs this can lead to indeterminate delays for the
|
||||
thread invoking the prctl syscall, and the code monitoring for those
|
||||
context switches was woefully inadequate for all but the simplest cases.
|
||||
|
||||
Fix this by broadcasting an IPI if other CPUs may have live FP context
|
||||
for an affected thread, with a handler causing those CPUs to relinquish
|
||||
their FPU ownership. Threads will then be allowed to continue running
|
||||
but will stall on the wait_on_atomic_t in enable_restore_fp_context if
|
||||
they attempt to use FP again whilst the mode switch is still in
|
||||
progress. The end result is less fragile poking at scheduler context
|
||||
switch counts & a more expedient completion of the mode switch.
|
||||
|
||||
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
|
||||
Fixes: 9791554b45a2 ("MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS")
|
||||
Cc: stable <stable@vger.kernel.org> # v4.0+
|
||||
---
|
||||
arch/mips/kernel/process.c | 40 +++++++++++++++++-----------------------
|
||||
1 file changed, 17 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
|
||||
index ce55ea0..e1b36a4 100644
|
||||
--- a/arch/mips/kernel/process.c
|
||||
+++ b/arch/mips/kernel/process.c
|
||||
@@ -580,11 +580,19 @@ int mips_get_process_fp_mode(struct task_struct *task)
|
||||
return value;
|
||||
}
|
||||
|
||||
+static void prepare_for_fp_mode_switch(void *info)
|
||||
+{
|
||||
+ struct mm_struct *mm = info;
|
||||
+
|
||||
+ if (current->mm == mm)
|
||||
+ lose_fpu(1);
|
||||
+}
|
||||
+
|
||||
int mips_set_process_fp_mode(struct task_struct *task, unsigned int value)
|
||||
{
|
||||
const unsigned int known_bits = PR_FP_MODE_FR | PR_FP_MODE_FRE;
|
||||
- unsigned long switch_count;
|
||||
struct task_struct *t;
|
||||
+ int max_users;
|
||||
|
||||
/* Check the value is valid */
|
||||
if (value & ~known_bits)
|
||||
@@ -613,31 +621,17 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value)
|
||||
smp_mb__after_atomic();
|
||||
|
||||
/*
|
||||
- * If there are multiple online CPUs then wait until all threads whose
|
||||
- * FP mode is about to change have been context switched. This approach
|
||||
- * allows us to only worry about whether an FP mode switch is in
|
||||
- * progress when FP is first used in a tasks time slice. Pretty much all
|
||||
- * of the mode switch overhead can thus be confined to cases where mode
|
||||
- * switches are actually occurring. That is, to here. However for the
|
||||
- * thread performing the mode switch it may take a while...
|
||||
+ * If there are multiple online CPUs then force any which are running
|
||||
+ * threads in this process to lose their FPU context, which they can't
|
||||
+ * regain until fp_mode_switching is cleared later.
|
||||
*/
|
||||
if (num_online_cpus() > 1) {
|
||||
- spin_lock_irq(&task->sighand->siglock);
|
||||
-
|
||||
- for_each_thread(task, t) {
|
||||
- if (t == current)
|
||||
- continue;
|
||||
-
|
||||
- switch_count = t->nvcsw + t->nivcsw;
|
||||
-
|
||||
- do {
|
||||
- spin_unlock_irq(&task->sighand->siglock);
|
||||
- cond_resched();
|
||||
- spin_lock_irq(&task->sighand->siglock);
|
||||
- } while ((t->nvcsw + t->nivcsw) == switch_count);
|
||||
- }
|
||||
+ /* No need to send an IPI for the local CPU */
|
||||
+ max_users = (task->mm == current->mm) ? 1 : 0;
|
||||
|
||||
- spin_unlock_irq(&task->sighand->siglock);
|
||||
+ if (atomic_read(¤t->mm->mm_users) > max_users)
|
||||
+ smp_call_function(prepare_for_fp_mode_switch,
|
||||
+ (void *)current->mm, 1);
|
||||
}
|
||||
|
||||
/*
|
|
@ -1,48 +0,0 @@
|
|||
From: "Lennart Sorensen" <lsorense@csclub.uwaterloo.ca>
|
||||
Subject: powerpc: Fix sstep compile on powerpcspe
|
||||
Date: Thu, 5 May 2016 16:44:44 -0400
|
||||
Forwarded: http://news.gmane.org/gmane.linux.ports.ppc.embedded/95502
|
||||
Bug-Debian: https://bugs.debian.org/823526
|
||||
|
||||
Commit be96f63375a14ee8e690856ac77e579c75bd0bae introduced ldarx and stdcx
|
||||
into the instructions in sstep.c, which are not accepted by the assembler
|
||||
on powerpcspe, but does seem to be accepted by the normal powerpc assembler
|
||||
even in 32 bit mode.
|
||||
|
||||
Wrap these two instructions in a __powerpc64__ check like it is everywhere
|
||||
else in the file.
|
||||
|
||||
Fixes: be96f63375a1 ("powerpc: Split out instruction analysis part of emulate_step()")
|
||||
Signed-off-by: Len Sorensen <lsorense@csclub.uwaterloo.ca>
|
||||
---
|
||||
arch/powerpc/lib/sstep.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
|
||||
index dc885b3..6d34310 100644
|
||||
--- a/arch/powerpc/lib/sstep.c
|
||||
+++ b/arch/powerpc/lib/sstep.c
|
||||
@@ -1818,9 +1818,11 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
|
||||
case 4:
|
||||
__get_user_asmx(val, op.ea, err, "lwarx");
|
||||
break;
|
||||
+#ifdef __powerpc64__
|
||||
case 8:
|
||||
__get_user_asmx(val, op.ea, err, "ldarx");
|
||||
break;
|
||||
+#endif
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
@@ -1841,9 +1843,11 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
|
||||
case 4:
|
||||
__put_user_asmx(op.val, op.ea, err, "stwcx.", cr);
|
||||
break;
|
||||
+#ifdef __powerpc64__
|
||||
case 8:
|
||||
__put_user_asmx(op.val, op.ea, err, "stdcx.", cr);
|
||||
break;
|
||||
+#endif
|
||||
default:
|
||||
return 0;
|
||||
}
|
|
@ -1,101 +0,0 @@
|
|||
From: Roman Kagan <rkagan@virtuozzo.com>
|
||||
Subject: kvm:vmx: more complete state update on APICv on/off
|
||||
Date: Wed, 18 May 2016 17:48:20 +0300
|
||||
Origin: http://article.gmane.org/gmane.comp.emulators.kvm.devel/152191
|
||||
|
||||
The function to update APICv on/off state (in particular, to deactivate
|
||||
it when enabling Hyper-V SynIC), used to be incomplete: it didn't adjust
|
||||
APICv-related fields among secondary processor-based VM-execution
|
||||
controls.
|
||||
|
||||
As a result, Windows 2012 guests would get stuck when SynIC-based
|
||||
auto-EOI interrupt intersected with e.g. an IPI in the guest.
|
||||
|
||||
In addition, the MSR intercept bitmap wasn't updated to correspond to
|
||||
whether "virtualize x2APIC mode" was enabled. This path used not to be
|
||||
triggered, since Windows didn't use x2APIC but rather their own
|
||||
synthetic APIC access MSRs; however it represented a security risk
|
||||
because the guest running in a SynIC-enabled VM could switch to x2APIC
|
||||
and thus obtain direct access to host APIC MSRs (thanks to Yang Zhang
|
||||
<yang.zhang.wz@gmail.com> for spotting this).
|
||||
|
||||
The patch fixes those omissions.
|
||||
|
||||
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
|
||||
Cc: Steve Rutherford <srutherford@google.com>
|
||||
Cc: Yang Zhang <yang.zhang.wz@gmail.com>
|
||||
---
|
||||
arch/x86/kvm/vmx.c | 48 ++++++++++++++++++++++++++++++------------------
|
||||
1 file changed, 30 insertions(+), 18 deletions(-)
|
||||
|
||||
--- a/arch/x86/kvm/vmx.c
|
||||
+++ b/arch/x86/kvm/vmx.c
|
||||
@@ -2397,7 +2397,9 @@ static void vmx_set_msr_bitmap(struct kv
|
||||
|
||||
if (is_guest_mode(vcpu))
|
||||
msr_bitmap = vmx_msr_bitmap_nested;
|
||||
- else if (vcpu->arch.apic_base & X2APIC_ENABLE) {
|
||||
+ else if (cpu_has_secondary_exec_ctrls() &&
|
||||
+ (vmcs_read32(SECONDARY_VM_EXEC_CONTROL) &
|
||||
+ SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE)) {
|
||||
if (is_long_mode(vcpu))
|
||||
msr_bitmap = vmx_msr_bitmap_longmode_x2apic;
|
||||
else
|
||||
@@ -4758,6 +4760,19 @@ static void vmx_refresh_apicv_exec_ctrl(
|
||||
struct vcpu_vmx *vmx = to_vmx(vcpu);
|
||||
|
||||
vmcs_write32(PIN_BASED_VM_EXEC_CONTROL, vmx_pin_based_exec_ctrl(vmx));
|
||||
+ if (cpu_has_secondary_exec_ctrls()) {
|
||||
+ if (kvm_vcpu_apicv_active(vcpu))
|
||||
+ vmcs_set_bits(SECONDARY_VM_EXEC_CONTROL,
|
||||
+ SECONDARY_EXEC_APIC_REGISTER_VIRT |
|
||||
+ SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY);
|
||||
+ else
|
||||
+ vmcs_clear_bits(SECONDARY_VM_EXEC_CONTROL,
|
||||
+ SECONDARY_EXEC_APIC_REGISTER_VIRT |
|
||||
+ SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY);
|
||||
+ }
|
||||
+
|
||||
+ if (cpu_has_vmx_msr_bitmap())
|
||||
+ vmx_set_msr_bitmap(vcpu);
|
||||
}
|
||||
|
||||
static u32 vmx_exec_control(struct vcpu_vmx *vmx)
|
||||
@@ -6313,23 +6328,20 @@ static __init int hardware_setup(void)
|
||||
|
||||
set_bit(0, vmx_vpid_bitmap); /* 0 is reserved for host */
|
||||
|
||||
- if (enable_apicv) {
|
||||
- for (msr = 0x800; msr <= 0x8ff; msr++)
|
||||
- vmx_disable_intercept_msr_read_x2apic(msr);
|
||||
-
|
||||
- /* According SDM, in x2apic mode, the whole id reg is used.
|
||||
- * But in KVM, it only use the highest eight bits. Need to
|
||||
- * intercept it */
|
||||
- vmx_enable_intercept_msr_read_x2apic(0x802);
|
||||
- /* TMCCT */
|
||||
- vmx_enable_intercept_msr_read_x2apic(0x839);
|
||||
- /* TPR */
|
||||
- vmx_disable_intercept_msr_write_x2apic(0x808);
|
||||
- /* EOI */
|
||||
- vmx_disable_intercept_msr_write_x2apic(0x80b);
|
||||
- /* SELF-IPI */
|
||||
- vmx_disable_intercept_msr_write_x2apic(0x83f);
|
||||
- }
|
||||
+ for (msr = 0x800; msr <= 0x8ff; msr++)
|
||||
+ vmx_disable_intercept_msr_read_x2apic(msr);
|
||||
+
|
||||
+ /* According SDM, in x2apic mode, the whole id reg is used. But in
|
||||
+ * KVM, it only use the highest eight bits. Need to intercept it */
|
||||
+ vmx_enable_intercept_msr_read_x2apic(0x802);
|
||||
+ /* TMCCT */
|
||||
+ vmx_enable_intercept_msr_read_x2apic(0x839);
|
||||
+ /* TPR */
|
||||
+ vmx_disable_intercept_msr_write_x2apic(0x808);
|
||||
+ /* EOI */
|
||||
+ vmx_disable_intercept_msr_write_x2apic(0x80b);
|
||||
+ /* SELF-IPI */
|
||||
+ vmx_disable_intercept_msr_write_x2apic(0x83f);
|
||||
|
||||
if (enable_ept) {
|
||||
kvm_mmu_set_mask_ptes(0ull,
|
|
@ -7,7 +7,7 @@ Forwarded: not-needed
|
|||
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -50,22 +50,11 @@ Module.symvers
|
||||
@@ -52,22 +52,11 @@ Module.symvers
|
||||
/Module.markers
|
||||
|
||||
#
|
||||
|
@ -21,7 +21,7 @@ Forwarded: not-needed
|
|||
/tar-install/
|
||||
|
||||
#
|
||||
-# git files that we don't want to ignore even it they are dot-files
|
||||
-# git files that we don't want to ignore even if they are dot-files
|
||||
-#
|
||||
-!.gitignore
|
||||
-!.mailmap
|
||||
|
@ -30,7 +30,7 @@ Forwarded: not-needed
|
|||
# Generated include files
|
||||
#
|
||||
include/config
|
||||
@@ -106,3 +95,10 @@ all.config
|
||||
@@ -112,3 +101,10 @@ all.config
|
||||
|
||||
# Kdevelop4
|
||||
*.kdev4
|
||||
|
|
|
@ -14,7 +14,7 @@ use of $(ARCH) needs to be moved after this.
|
|||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -251,42 +251,6 @@ SUBARCH := $(shell uname -m | sed -e s/i
|
||||
@@ -255,42 +255,6 @@ SUBARCH := $(shell uname -m | sed -e s/i
|
||||
ARCH ?= $(SUBARCH)
|
||||
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
|
||||
|
||||
|
@ -57,8 +57,8 @@ use of $(ARCH) needs to be moved after this.
|
|||
KCONFIG_CONFIG ?= .config
|
||||
export KCONFIG_CONFIG
|
||||
|
||||
@@ -367,6 +331,44 @@ AFLAGS_KERNEL =
|
||||
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
|
||||
@@ -371,6 +335,44 @@ AFLAGS_KERNEL =
|
||||
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im -Wno-maybe-uninitialized
|
||||
CFLAGS_KCOV = -fsanitize-coverage=trace-pc
|
||||
|
||||
+-include $(obj)/.kernelvariables
|
||||
|
|
|
@ -9,16 +9,16 @@ are set.
|
|||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -984,7 +984,7 @@ endif
|
||||
@@ -1019,7 +1019,7 @@ endif
|
||||
prepare2: prepare3 outputmakefile asm-generic
|
||||
|
||||
prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
|
||||
- include/config/auto.conf
|
||||
+ include/config/auto.conf include/generated/package.h
|
||||
$(cmd_crmodverdir)
|
||||
|
||||
archprepare: archheaders archscripts prepare1 scripts_basic
|
||||
@@ -1016,6 +1016,16 @@ define filechk_version.h
|
||||
$(Q)test -e include/generated/autoksyms.h || \
|
||||
touch include/generated/autoksyms.h
|
||||
@@ -1068,6 +1068,16 @@ define filechk_version.h
|
||||
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
|
||||
endef
|
||||
|
||||
|
@ -35,7 +35,7 @@ are set.
|
|||
$(version_h): $(srctree)/Makefile FORCE
|
||||
$(call filechk,version.h)
|
||||
$(Q)rm -f $(old_version_h)
|
||||
@@ -1023,6 +1033,9 @@ $(version_h): $(srctree)/Makefile FORCE
|
||||
@@ -1075,6 +1085,9 @@ $(version_h): $(srctree)/Makefile FORCE
|
||||
include/generated/utsrelease.h: include/config/kernel.release FORCE
|
||||
$(call filechk,utsrelease.h)
|
||||
|
||||
|
@ -91,15 +91,15 @@ are set.
|
|||
regs->ar_unat, regs->ar_pfs, regs->ar_rsc);
|
||||
--- a/arch/powerpc/kernel/process.c
|
||||
+++ b/arch/powerpc/kernel/process.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <linux/random.h>
|
||||
@@ -39,6 +39,7 @@
|
||||
#include <linux/hw_breakpoint.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/elf-randomize.h>
|
||||
+#include <generated/package.h>
|
||||
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/io.h>
|
||||
@@ -1150,8 +1151,9 @@ void show_regs(struct pt_regs * regs)
|
||||
@@ -1286,8 +1287,9 @@ void show_regs(struct pt_regs * regs)
|
||||
|
||||
printk("NIP: "REG" LR: "REG" CTR: "REG"\n",
|
||||
regs->nip, regs->link, regs->ctr);
|
||||
|
@ -121,7 +121,7 @@ are set.
|
|||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm-generic/sections.h>
|
||||
@@ -3168,11 +3169,12 @@ void __init dump_stack_set_arch_desc(con
|
||||
@@ -3153,11 +3154,12 @@ void __init dump_stack_set_arch_desc(con
|
||||
*/
|
||||
void dump_stack_print_info(const char *log_lvl)
|
||||
{
|
||||
|
|
|
@ -8,11 +8,9 @@ Patch headers added by debian/patches/features/all/aufs4/gen-patch
|
|||
|
||||
aufs4.6 standalone patch
|
||||
|
||||
diff --git a/fs/dcache.c b/fs/dcache.c
|
||||
index 4de75b2..0dd0237 100644
|
||||
--- a/fs/dcache.c
|
||||
+++ b/fs/dcache.c
|
||||
@@ -1261,6 +1261,7 @@ rename_retry:
|
||||
@@ -1274,6 +1274,7 @@ rename_retry:
|
||||
seq = 1;
|
||||
goto again;
|
||||
}
|
||||
|
@ -20,11 +18,9 @@ index 4de75b2..0dd0237 100644
|
|||
|
||||
/*
|
||||
* Search for at least 1 mount point in the dentry's subdirs.
|
||||
diff --git a/fs/exec.c b/fs/exec.c
|
||||
index c4010b8..c2b225f 100644
|
||||
--- a/fs/exec.c
|
||||
+++ b/fs/exec.c
|
||||
@@ -104,6 +104,7 @@ bool path_noexec(const struct path *path)
|
||||
@@ -104,6 +104,7 @@ bool path_noexec(const struct path *path
|
||||
return (path->mnt->mnt_flags & MNT_NOEXEC) ||
|
||||
(path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC);
|
||||
}
|
||||
|
@ -32,11 +28,9 @@ index c4010b8..c2b225f 100644
|
|||
|
||||
#ifdef CONFIG_USELIB
|
||||
/*
|
||||
diff --git a/fs/fcntl.c b/fs/fcntl.c
|
||||
index 6f42279..04fd33c 100644
|
||||
--- a/fs/fcntl.c
|
||||
+++ b/fs/fcntl.c
|
||||
@@ -82,6 +82,7 @@ int setfl(int fd, struct file * filp, unsigned long arg)
|
||||
@@ -82,6 +82,7 @@ int setfl(int fd, struct file * filp, un
|
||||
out:
|
||||
return error;
|
||||
}
|
||||
|
@ -44,8 +38,6 @@ index 6f42279..04fd33c 100644
|
|||
|
||||
static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
|
||||
int force)
|
||||
diff --git a/fs/file_table.c b/fs/file_table.c
|
||||
index ad17e05..ae9f267 100644
|
||||
--- a/fs/file_table.c
|
||||
+++ b/fs/file_table.c
|
||||
@@ -147,6 +147,7 @@ over:
|
||||
|
@ -80,11 +72,9 @@ index ad17e05..ae9f267 100644
|
|||
|
||||
void __init files_init(void)
|
||||
{
|
||||
diff --git a/fs/namespace.c b/fs/namespace.c
|
||||
index 4fb1691..97654d2 100644
|
||||
--- a/fs/namespace.c
|
||||
+++ b/fs/namespace.c
|
||||
@@ -463,6 +463,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
|
||||
@@ -463,6 +463,7 @@ void __mnt_drop_write(struct vfsmount *m
|
||||
mnt_dec_writers(real_mount(mnt));
|
||||
preempt_enable();
|
||||
}
|
||||
|
@ -92,7 +82,7 @@ index 4fb1691..97654d2 100644
|
|||
|
||||
/**
|
||||
* mnt_drop_write - give up write access to a mount
|
||||
@@ -1811,6 +1812,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
|
||||
@@ -1811,6 +1812,7 @@ int iterate_mounts(int (*f)(struct vfsmo
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -100,8 +90,6 @@ index 4fb1691..97654d2 100644
|
|||
|
||||
static void cleanup_group_ids(struct mount *mnt, struct mount *end)
|
||||
{
|
||||
diff --git a/fs/notify/group.c b/fs/notify/group.c
|
||||
index d16b62c..53e45b6 100644
|
||||
--- a/fs/notify/group.c
|
||||
+++ b/fs/notify/group.c
|
||||
@@ -22,6 +22,7 @@
|
||||
|
@ -112,7 +100,7 @@ index d16b62c..53e45b6 100644
|
|||
|
||||
#include <linux/fsnotify_backend.h>
|
||||
#include "fsnotify.h"
|
||||
@@ -72,6 +73,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
|
||||
@@ -81,6 +82,7 @@ void fsnotify_get_group(struct fsnotify_
|
||||
{
|
||||
atomic_inc(&group->refcnt);
|
||||
}
|
||||
|
@ -120,7 +108,7 @@ index d16b62c..53e45b6 100644
|
|||
|
||||
/*
|
||||
* Drop a reference to a group. Free it if it's through.
|
||||
@@ -81,6 +83,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
|
||||
@@ -90,6 +92,7 @@ void fsnotify_put_group(struct fsnotify_
|
||||
if (atomic_dec_and_test(&group->refcnt))
|
||||
fsnotify_final_destroy_group(group);
|
||||
}
|
||||
|
@ -128,7 +116,7 @@ index d16b62c..53e45b6 100644
|
|||
|
||||
/*
|
||||
* Create a new fsnotify_group and hold a reference for the group returned.
|
||||
@@ -109,6 +112,7 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
|
||||
@@ -118,6 +121,7 @@ struct fsnotify_group *fsnotify_alloc_gr
|
||||
|
||||
return group;
|
||||
}
|
||||
|
@ -136,11 +124,9 @@ index d16b62c..53e45b6 100644
|
|||
|
||||
int fsnotify_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
diff --git a/fs/notify/mark.c b/fs/notify/mark.c
|
||||
index 7115c5d..ac2bd69 100644
|
||||
--- a/fs/notify/mark.c
|
||||
+++ b/fs/notify/mark.c
|
||||
@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
|
||||
@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_m
|
||||
mark->free_mark(mark);
|
||||
}
|
||||
}
|
||||
|
@ -148,7 +134,7 @@ index 7115c5d..ac2bd69 100644
|
|||
|
||||
/* Calculate mask of events for a list of marks */
|
||||
u32 fsnotify_recalc_mask(struct hlist_head *head)
|
||||
@@ -213,6 +214,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark,
|
||||
@@ -230,6 +231,7 @@ void fsnotify_destroy_mark(struct fsnoti
|
||||
mutex_unlock(&group->mark_mutex);
|
||||
fsnotify_free_mark(mark);
|
||||
}
|
||||
|
@ -156,7 +142,7 @@ index 7115c5d..ac2bd69 100644
|
|||
|
||||
void fsnotify_destroy_marks(struct hlist_head *head, spinlock_t *lock)
|
||||
{
|
||||
@@ -398,6 +400,7 @@ err:
|
||||
@@ -415,6 +417,7 @@ err:
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -164,25 +150,23 @@ index 7115c5d..ac2bd69 100644
|
|||
|
||||
int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group,
|
||||
struct inode *inode, struct vfsmount *mnt, int allow_dups)
|
||||
@@ -498,6 +501,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
|
||||
atomic_set(&mark->refcnt, 1);
|
||||
mark->free_mark = free_mark;
|
||||
@@ -521,6 +524,7 @@ void fsnotify_duplicate_mark(struct fsno
|
||||
new->mask = old->mask;
|
||||
new->free_mark = old->free_mark;
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(fsnotify_init_mark);
|
||||
|
||||
static void fsnotify_mark_destroy(struct work_struct *work)
|
||||
{
|
||||
diff --git a/fs/open.c b/fs/open.c
|
||||
index 081d3d6..b4359e4 100644
|
||||
/*
|
||||
* Nothing fancy, just initialize lists and locks and counters.
|
||||
--- a/fs/open.c
|
||||
+++ b/fs/open.c
|
||||
@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
|
||||
@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, l
|
||||
inode_unlock(dentry->d_inode);
|
||||
return ret;
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(do_truncate);
|
||||
|
||||
long vfs_truncate(struct path *path, loff_t length)
|
||||
long vfs_truncate(const struct path *path, loff_t length)
|
||||
{
|
||||
@@ -678,6 +679,7 @@ int open_check_o_direct(struct file *f)
|
||||
}
|
||||
|
@ -192,11 +176,9 @@ index 081d3d6..b4359e4 100644
|
|||
|
||||
static int do_dentry_open(struct file *f,
|
||||
struct inode *inode,
|
||||
diff --git a/fs/read_write.c b/fs/read_write.c
|
||||
index 0ebcdc5..0a43d7b 100644
|
||||
--- a/fs/read_write.c
|
||||
+++ b/fs/read_write.c
|
||||
@@ -544,6 +544,7 @@ vfs_readf_t vfs_readf(struct file *file)
|
||||
@@ -525,6 +525,7 @@ vfs_readf_t vfs_readf(struct file *file)
|
||||
return new_sync_read;
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
@ -204,7 +186,7 @@ index 0ebcdc5..0a43d7b 100644
|
|||
|
||||
vfs_writef_t vfs_writef(struct file *file)
|
||||
{
|
||||
@@ -555,6 +556,7 @@ vfs_writef_t vfs_writef(struct file *file)
|
||||
@@ -536,6 +537,7 @@ vfs_writef_t vfs_writef(struct file *fil
|
||||
return new_sync_write;
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
@ -212,11 +194,9 @@ index 0ebcdc5..0a43d7b 100644
|
|||
|
||||
ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos)
|
||||
{
|
||||
diff --git a/fs/splice.c b/fs/splice.c
|
||||
index 9326c2a..0606690 100644
|
||||
--- a/fs/splice.c
|
||||
+++ b/fs/splice.c
|
||||
@@ -1124,6 +1124,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
@@ -1124,6 +1124,7 @@ long do_splice_from(struct pipe_inode_in
|
||||
|
||||
return splice_write(pipe, out, ppos, len, flags);
|
||||
}
|
||||
|
@ -224,7 +204,7 @@ index 9326c2a..0606690 100644
|
|||
|
||||
/*
|
||||
* Attempt to initiate a splice from a file to a pipe.
|
||||
@@ -1153,6 +1154,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
|
||||
@@ -1153,6 +1154,7 @@ long do_splice_to(struct file *in, loff_
|
||||
|
||||
return splice_read(in, ppos, pipe, len, flags);
|
||||
}
|
||||
|
@ -232,11 +212,9 @@ index 9326c2a..0606690 100644
|
|||
|
||||
/**
|
||||
* splice_direct_to_actor - splices data directly between two non-pipes
|
||||
diff --git a/fs/xattr.c b/fs/xattr.c
|
||||
index 4861322..c4bb039 100644
|
||||
--- a/fs/xattr.c
|
||||
+++ b/fs/xattr.c
|
||||
@@ -207,6 +207,7 @@ vfs_getxattr_alloc(struct dentry *dentry, const char *name, char **xattr_value,
|
||||
@@ -207,6 +207,7 @@ vfs_getxattr_alloc(struct dentry *dentry
|
||||
*xattr_value = value;
|
||||
return error;
|
||||
}
|
||||
|
@ -244,8 +222,6 @@ index 4861322..c4bb039 100644
|
|||
|
||||
ssize_t
|
||||
vfs_getxattr(struct dentry *dentry, const char *name, void *value, size_t size)
|
||||
diff --git a/kernel/task_work.c b/kernel/task_work.c
|
||||
index 53fa971..bce3211 100644
|
||||
--- a/kernel/task_work.c
|
||||
+++ b/kernel/task_work.c
|
||||
@@ -118,3 +118,4 @@ void task_work_run(void)
|
||||
|
@ -253,8 +229,6 @@ index 53fa971..bce3211 100644
|
|||
}
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(task_work_run);
|
||||
diff --git a/security/commoncap.c b/security/commoncap.c
|
||||
index 48071ed..50a1a40 100644
|
||||
--- a/security/commoncap.c
|
||||
+++ b/security/commoncap.c
|
||||
@@ -1058,12 +1058,14 @@ int cap_mmap_addr(unsigned long addr)
|
||||
|
@ -272,8 +246,6 @@ index 48071ed..50a1a40 100644
|
|||
|
||||
#ifdef CONFIG_SECURITY
|
||||
|
||||
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
|
||||
index 03c1652..f88c84b 100644
|
||||
--- a/security/device_cgroup.c
|
||||
+++ b/security/device_cgroup.c
|
||||
@@ -7,6 +7,7 @@
|
||||
|
@ -284,7 +256,7 @@ index 03c1652..f88c84b 100644
|
|||
#include <linux/list.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/seq_file.h>
|
||||
@@ -849,6 +850,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
|
||||
@@ -849,6 +850,7 @@ int __devcgroup_inode_permission(struct
|
||||
return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
|
||||
access);
|
||||
}
|
||||
|
@ -292,59 +264,57 @@ index 03c1652..f88c84b 100644
|
|||
|
||||
int devcgroup_inode_mknod(int mode, dev_t dev)
|
||||
{
|
||||
diff --git a/security/security.c b/security/security.c
|
||||
index 3644b03..593879b 100644
|
||||
--- a/security/security.c
|
||||
+++ b/security/security.c
|
||||
@@ -433,6 +433,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
|
||||
@@ -434,6 +434,7 @@ int security_path_rmdir(const struct pat
|
||||
return 0;
|
||||
return call_int_hook(path_rmdir, 0, dir, dentry);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(security_path_rmdir);
|
||||
|
||||
int security_path_unlink(struct path *dir, struct dentry *dentry)
|
||||
int security_path_unlink(const struct path *dir, struct dentry *dentry)
|
||||
{
|
||||
@@ -449,6 +450,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
|
||||
@@ -450,6 +451,7 @@ int security_path_symlink(const struct p
|
||||
return 0;
|
||||
return call_int_hook(path_symlink, 0, dir, dentry, old_name);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(security_path_symlink);
|
||||
|
||||
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
|
||||
int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
|
||||
struct dentry *new_dentry)
|
||||
@@ -457,6 +459,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
|
||||
@@ -458,6 +460,7 @@ int security_path_link(struct dentry *ol
|
||||
return 0;
|
||||
return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(security_path_link);
|
||||
|
||||
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
|
||||
struct path *new_dir, struct dentry *new_dentry,
|
||||
@@ -484,6 +487,7 @@ int security_path_truncate(struct path *path)
|
||||
int security_path_rename(const struct path *old_dir, struct dentry *old_dentry,
|
||||
const struct path *new_dir, struct dentry *new_dentry,
|
||||
@@ -485,6 +488,7 @@ int security_path_truncate(const struct
|
||||
return 0;
|
||||
return call_int_hook(path_truncate, 0, path);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(security_path_truncate);
|
||||
|
||||
int security_path_chmod(struct path *path, umode_t mode)
|
||||
int security_path_chmod(const struct path *path, umode_t mode)
|
||||
{
|
||||
@@ -491,6 +495,7 @@ int security_path_chmod(struct path *path, umode_t mode)
|
||||
@@ -492,6 +496,7 @@ int security_path_chmod(const struct pat
|
||||
return 0;
|
||||
return call_int_hook(path_chmod, 0, path, mode);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(security_path_chmod);
|
||||
|
||||
int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
|
||||
int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
|
||||
{
|
||||
@@ -498,6 +503,7 @@ int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
|
||||
@@ -499,6 +504,7 @@ int security_path_chown(const struct pat
|
||||
return 0;
|
||||
return call_int_hook(path_chown, 0, path, uid, gid);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(security_path_chown);
|
||||
|
||||
int security_path_chroot(struct path *path)
|
||||
int security_path_chroot(const struct path *path)
|
||||
{
|
||||
@@ -583,6 +589,7 @@ int security_inode_readlink(struct dentry *dentry)
|
||||
@@ -584,6 +590,7 @@ int security_inode_readlink(struct dentr
|
||||
return 0;
|
||||
return call_int_hook(inode_readlink, 0, dentry);
|
||||
}
|
||||
|
@ -352,7 +322,7 @@ index 3644b03..593879b 100644
|
|||
|
||||
int security_inode_follow_link(struct dentry *dentry, struct inode *inode,
|
||||
bool rcu)
|
||||
@@ -598,6 +605,7 @@ int security_inode_permission(struct inode *inode, int mask)
|
||||
@@ -599,6 +606,7 @@ int security_inode_permission(struct ino
|
||||
return 0;
|
||||
return call_int_hook(inode_permission, 0, inode, mask);
|
||||
}
|
||||
|
@ -360,7 +330,7 @@ index 3644b03..593879b 100644
|
|||
|
||||
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
|
||||
{
|
||||
@@ -736,6 +744,7 @@ int security_file_permission(struct file *file, int mask)
|
||||
@@ -737,6 +745,7 @@ int security_file_permission(struct file
|
||||
|
||||
return fsnotify_perm(file, mask);
|
||||
}
|
||||
|
@ -368,7 +338,7 @@ index 3644b03..593879b 100644
|
|||
|
||||
int security_file_alloc(struct file *file)
|
||||
{
|
||||
@@ -795,6 +804,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
|
||||
@@ -796,6 +805,7 @@ int security_mmap_file(struct file *file
|
||||
return ret;
|
||||
return ima_file_mmap(file, prot);
|
||||
}
|
||||
|
|
|
@ -10,9 +10,9 @@ This standalone version doesn't include making the variable read-only
|
|||
---
|
||||
--- a/include/linux/perf_event.h
|
||||
+++ b/include/linux/perf_event.h
|
||||
@@ -1002,6 +1002,11 @@ extern int perf_cpu_time_max_percent_han
|
||||
loff_t *ppos);
|
||||
|
||||
@@ -1122,6 +1122,11 @@ extern int perf_cpu_time_max_percent_han
|
||||
int perf_event_max_stack_handler(struct ctl_table *table, int write,
|
||||
void __user *buffer, size_t *lenp, loff_t *ppos);
|
||||
|
||||
+static inline bool perf_paranoid_any(void)
|
||||
+{
|
||||
|
@ -24,7 +24,7 @@ This standalone version doesn't include making the variable read-only
|
|||
return sysctl_perf_event_paranoid > -1;
|
||||
--- a/kernel/events/core.c
|
||||
+++ b/kernel/events/core.c
|
||||
@@ -350,8 +350,13 @@ static struct srcu_struct pmus_srcu;
|
||||
@@ -352,8 +352,13 @@ static struct srcu_struct pmus_srcu;
|
||||
* 0 - disallow raw tracepoint access for unpriv
|
||||
* 1 - disallow cpu events for unpriv
|
||||
* 2 - disallow kernel profiling for unpriv
|
||||
|
@ -38,7 +38,7 @@ This standalone version doesn't include making the variable read-only
|
|||
|
||||
/* Minimum for 512 kiB + 1 user control page */
|
||||
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
|
||||
@@ -8345,6 +8350,11 @@ SYSCALL_DEFINE5(perf_event_open,
|
||||
@@ -9181,6 +9186,11 @@ SYSCALL_DEFINE5(perf_event_open,
|
||||
if (flags & ~PERF_FLAG_ALL)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
|
@ -14,14 +14,15 @@ changes to kernel space. ACPI tables contain code invoked by the kernel, so
|
|||
do not allow ACPI tables to be overridden if securelevel is set.
|
||||
|
||||
Signed-off-by: Linn Crosetto <linn@hpe.com>
|
||||
[bwh: Forward-ported to 4.7: ACPI override code moved to drivers/acpi/tables.c]
|
||||
---
|
||||
arch/x86/kernel/setup.c | 12 ++++++------
|
||||
drivers/acpi/osl.c | 6 ++++++
|
||||
drivers/acpi/tables.c | 6 ++++++
|
||||
2 files changed, 12 insertions(+), 6 deletions(-)
|
||||
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1136,6 +1136,12 @@ void __init setup_arch(char **cmdline_p)
|
||||
@@ -1145,6 +1145,12 @@ void __init setup_arch(char **cmdline_p)
|
||||
/* Allocate bigger log buffer */
|
||||
setup_log_buf(1);
|
||||
|
||||
|
@ -33,8 +34,8 @@ Signed-off-by: Linn Crosetto <linn@hpe.com>
|
|||
+
|
||||
reserve_initrd();
|
||||
|
||||
#if defined(CONFIG_ACPI) && defined(CONFIG_BLK_DEV_INITRD)
|
||||
@@ -1146,12 +1152,6 @@ void __init setup_arch(char **cmdline_p)
|
||||
early_initrd_acpi_init();
|
||||
@@ -1153,12 +1159,6 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
io_delay_init();
|
||||
|
||||
|
@ -47,9 +48,17 @@ Signed-off-by: Linn Crosetto <linn@hpe.com>
|
|||
/*
|
||||
* Parse the ACPI tables for possible boot-time SMP configuration.
|
||||
*/
|
||||
--- a/drivers/acpi/osl.c
|
||||
+++ b/drivers/acpi/osl.c
|
||||
@@ -698,6 +698,12 @@ void __init acpi_initrd_override(void *d
|
||||
--- a/drivers/acpi/tables.c
|
||||
+++ b/drivers/acpi/tables.c
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <linux/bootmem.h>
|
||||
#include <linux/earlycpio.h>
|
||||
#include <linux/memblock.h>
|
||||
+#include <linux/security.h>
|
||||
#include "internal.h"
|
||||
|
||||
#ifdef CONFIG_ACPI_CUSTOM_DSDT
|
||||
@@ -539,6 +540,12 @@ static void __init acpi_table_initrd_ini
|
||||
if (table_nr == 0)
|
||||
return;
|
||||
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
From: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||
Date: Mon, 28 Mar 2016 10:03:48 +0200
|
||||
Subject: [PATCH 1/2] ARM: dts: kirkwood: add kirkwood-ds112.dtb to Makefile
|
||||
Origin: http://git.infradead.org/linux-mvebu.git/commitdiff/fc5c796e12511a7c027b5a4438719dde2f796208
|
||||
|
||||
Commit 2d0a7addbd10 ("ARM: Kirkwood: Add support for many Synology
|
||||
NAS devices") created the new file kirkwood-ds112.dts but did not
|
||||
add it to the Makefile.
|
||||
|
||||
Fixes: 2d0a7addbd10 ("ARM: Kirkwood: Add support for many Synology NAS devices")
|
||||
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/Makefile | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||||
index 95c1923..67d5368 100644
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -177,6 +177,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
|
||||
kirkwood-ds109.dtb \
|
||||
kirkwood-ds110jv10.dtb \
|
||||
kirkwood-ds111.dtb \
|
||||
+ kirkwood-ds112.dtb \
|
||||
kirkwood-ds209.dtb \
|
||||
kirkwood-ds210.dtb \
|
||||
kirkwood-ds212.dtb \
|
|
@ -1,26 +0,0 @@
|
|||
From: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||
Date: Mon, 28 Mar 2016 10:38:31 +0200
|
||||
Subject: [PATCH 2/2] ARM: dts: kirkwood: add kirkwood-nsa320.dtb to Makefile
|
||||
Origin: http://git.infradead.org/linux-mvebu.git/commitdiff/9ec423ed62b8278412400fae6c064edb6ce1bb51
|
||||
|
||||
Commit be3d7d023b87 ("ARM: kirkwood: Add DTS file for NSA320")
|
||||
created the new file kirkwood-nsa320.dts but did not
|
||||
add it to the Makefile.
|
||||
|
||||
Fixes: be3d7d023b87 ("ARM: kirkwood: Add DTS file for NSA320")
|
||||
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/Makefile | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -210,6 +210,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
|
||||
kirkwood-ns2mini.dtb \
|
||||
kirkwood-nsa310.dtb \
|
||||
kirkwood-nsa310a.dtb \
|
||||
+ kirkwood-nsa320.dtb \
|
||||
kirkwood-nsa325.dtb \
|
||||
kirkwood-openblocks_a6.dtb \
|
||||
kirkwood-openblocks_a7.dtb \
|
|
@ -1,171 +0,0 @@
|
|||
From: Roger Shimizu <rogershimizu@gmail.com>
|
||||
Date: Wed, 30 Mar 2016 01:11:45 +0900
|
||||
Subject: [PATCH] ARM: dts: orion5x: add device tree for kurobox-pro
|
||||
Origin: http://git.infradead.org/linux-mvebu.git/commitdiff/452cc94458237d4a26aa1e08f23f57f072368e4e
|
||||
|
||||
Add dts file to support Buffalo/Revogear Kurobox-Pro, which is marvell
|
||||
orion5x based 3.5" HDD NAS.
|
||||
|
||||
It's a quite old product and already discontinued. So there's no
|
||||
official website for it. But it was an early product which used marvell
|
||||
orion5x 88F5182 chipset, it's popular in the community.
|
||||
Some unofficial site:
|
||||
- http://buffalo.nas-central.org/wiki/Category:KuroboxPro
|
||||
- http://nice.kaze.com/KUROPRO_ProductSpecifications.pdf
|
||||
|
||||
This device tree is based on the board file:
|
||||
arch/arm/mach-orion5x/kurobox_pro-setup.c
|
||||
However, the probing order of NAND and JEDEC-Flash are different from
|
||||
the original board file, this results in incompatible minor number
|
||||
for a few /dev/mtdX and /dev/mtdblockX devices.
|
||||
So I still want to keep the board file for the time being.
|
||||
|
||||
Signed-off-by: Roger Shimizu <rogershimizu@gmail.com>
|
||||
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
||||
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/Makefile | 1 +
|
||||
arch/arm/boot/dts/orion5x-kuroboxpro.dts | 127 +++++++++++++++++++++++++++++++
|
||||
2 files changed, 128 insertions(+)
|
||||
create mode 100644 arch/arm/boot/dts/orion5x-kuroboxpro.dts
|
||||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -517,6 +517,7 @@ dtb-$(CONFIG_SOC_DRA7XX) += \
|
||||
dra7-evm.dtb \
|
||||
dra72-evm.dtb
|
||||
dtb-$(CONFIG_ARCH_ORION5X) += \
|
||||
+ orion5x-kuroboxpro.dtb \
|
||||
orion5x-lacie-d2-network.dtb \
|
||||
orion5x-lacie-ethernet-disk-mini-v2.dtb \
|
||||
orion5x-linkstation-lsgl.dtb \
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/orion5x-kuroboxpro.dts
|
||||
@@ -0,0 +1,127 @@
|
||||
+/*
|
||||
+ * Device Tree file for Buffalo/Revogear Kurobox Pro
|
||||
+ *
|
||||
+ * Copyright (C) 2016
|
||||
+ * Roger Shimizu <rogershimizu@gmail.com>
|
||||
+ *
|
||||
+ * Based on the board file arch/arm/mach-orion5x/kurobox_pro-setup.c
|
||||
+ * Copyright (C) Ronen Shitrit <rshitrit@marvell.com>
|
||||
+ *
|
||||
+ * This file is dual-licensed: you can use it either under the terms
|
||||
+ * of the GPL or the X11 license, at your option. Note that this dual
|
||||
+ * licensing only applies to this file, and not this project as a
|
||||
+ * whole.
|
||||
+ *
|
||||
+ * a) This file is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation; either version 2 of the
|
||||
+ * License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This file is distributed in the hope that it will be useful
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * Or, alternatively
|
||||
+ *
|
||||
+ * b) Permission is hereby granted, free of charge, to any person
|
||||
+ * obtaining a copy of this software and associated documentation
|
||||
+ * files (the "Software"), to deal in the Software without
|
||||
+ * restriction, including without limitation the rights to use
|
||||
+ * copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
+ * sell copies of the Software, and to permit persons to whom the
|
||||
+ * Software is furnished to do so, subject to the following
|
||||
+ * conditions:
|
||||
+ *
|
||||
+ * The above copyright notice and this permission notice shall be
|
||||
+ * included in all copies or substantial portions of the Software.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
|
||||
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
|
||||
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
+ * OTHER DEALINGS IN THE SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "orion5x-linkstation.dtsi"
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+
|
||||
+/ {
|
||||
+ model = "Buffalo/Revogear Kurobox Pro";
|
||||
+ compatible = "buffalo,kurobox-pro", "marvell,orion5x-88f5182", "marvell,orion5x";
|
||||
+
|
||||
+ soc {
|
||||
+ ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
|
||||
+ <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
|
||||
+ <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x40000>,
|
||||
+ <MBUS_ID(0x01, 0x1e) 0 0xfc000000 0x1000000>;
|
||||
+ };
|
||||
+
|
||||
+ memory { /* 128 MB */
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x00000000 0x8000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pinctrl {
|
||||
+ pmx_power_hdd: pmx-power-hdd {
|
||||
+ marvell,pins = "mpp1";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+
|
||||
+ pmx_power_usb: pmx-power-usb {
|
||||
+ marvell,pins = "mpp9";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&devbus_cs0 {
|
||||
+ status = "okay";
|
||||
+ compatible = "marvell,orion-nand";
|
||||
+ reg = <MBUS_ID(0x01, 0x1e) 0 0x400>;
|
||||
+ cle = <0>;
|
||||
+ ale = <1>;
|
||||
+ bank-width = <1>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ uImage@0 { /* 4 MB */
|
||||
+ reg = <0 0x400000>;
|
||||
+ read-only;
|
||||
+ };
|
||||
+
|
||||
+ rootfs@400000 { /* 64 MB */
|
||||
+ reg = <0x400000 0x4000000>;
|
||||
+ read-only;
|
||||
+ };
|
||||
+
|
||||
+ extra@4400000 { /* 188 MB */
|
||||
+ reg = <0x4400000 0xBC00000>;
|
||||
+ read-only;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&hdd_power {
|
||||
+ gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
|
||||
+};
|
||||
+
|
||||
+&usb_power {
|
||||
+ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
|
||||
+};
|
||||
+
|
||||
+&sata {
|
||||
+ nr-ports = <2>;
|
||||
+};
|
||||
+
|
||||
+&ehci1 {
|
||||
+ status = "okay";
|
||||
+};
|
|
@ -1,89 +0,0 @@
|
|||
From: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
|
||||
Date: Wed, 3 Feb 2016 18:01:36 +0000
|
||||
Subject: MIPS: Octeon: Add Octeon III CN7xxx interface detection
|
||||
Origin: https://git.kernel.org/linus/885872b722b73b2026a48bdff4621f289be2b044
|
||||
|
||||
Add basic CN7XXX interface detection.
|
||||
|
||||
This allows the kernel to boot with ethernet working as it initializes
|
||||
the ethernet ports with SGMII instead of defaulting to RGMII routines.
|
||||
|
||||
Tested on the utm8 from Rhino Labs with a CN7130.
|
||||
|
||||
Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
|
||||
Acked-by: David Daney <david.daney@cavium.com>
|
||||
---
|
||||
arch/mips/cavium-octeon/executive/cvmx-helper.c | 43 +++++++++++++++++++++++++
|
||||
1 file changed, 43 insertions(+)
|
||||
|
||||
diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper.c b/arch/mips/cavium-octeon/executive/cvmx-helper.c
|
||||
index 376701f..ff26d02 100644
|
||||
--- a/arch/mips/cavium-octeon/executive/cvmx-helper.c
|
||||
+++ b/arch/mips/cavium-octeon/executive/cvmx-helper.c
|
||||
@@ -87,6 +87,8 @@ int cvmx_helper_get_number_of_interfaces(void)
|
||||
return 9;
|
||||
if (OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN52XX))
|
||||
return 4;
|
||||
+ if (OCTEON_IS_MODEL(OCTEON_CN7XXX))
|
||||
+ return 5;
|
||||
else
|
||||
return 3;
|
||||
}
|
||||
@@ -260,6 +262,41 @@ static cvmx_helper_interface_mode_t __cvmx_get_mode_octeon2(int interface)
|
||||
}
|
||||
|
||||
/**
|
||||
+ * @INTERNAL
|
||||
+ * Return interface mode for CN7XXX.
|
||||
+ */
|
||||
+static cvmx_helper_interface_mode_t __cvmx_get_mode_cn7xxx(int interface)
|
||||
+{
|
||||
+ union cvmx_gmxx_inf_mode mode;
|
||||
+
|
||||
+ mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
|
||||
+
|
||||
+ switch (interface) {
|
||||
+ case 0:
|
||||
+ case 1:
|
||||
+ switch (mode.cn68xx.mode) {
|
||||
+ case 0:
|
||||
+ return CVMX_HELPER_INTERFACE_MODE_DISABLED;
|
||||
+ case 1:
|
||||
+ case 2:
|
||||
+ return CVMX_HELPER_INTERFACE_MODE_SGMII;
|
||||
+ case 3:
|
||||
+ return CVMX_HELPER_INTERFACE_MODE_XAUI;
|
||||
+ default:
|
||||
+ return CVMX_HELPER_INTERFACE_MODE_SGMII;
|
||||
+ }
|
||||
+ case 2:
|
||||
+ return CVMX_HELPER_INTERFACE_MODE_NPI;
|
||||
+ case 3:
|
||||
+ return CVMX_HELPER_INTERFACE_MODE_LOOP;
|
||||
+ case 4:
|
||||
+ return CVMX_HELPER_INTERFACE_MODE_RGMII;
|
||||
+ default:
|
||||
+ return CVMX_HELPER_INTERFACE_MODE_DISABLED;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
* Get the operating mode of an interface. Depending on the Octeon
|
||||
* chip and configuration, this function returns an enumeration
|
||||
* of the type of packet I/O supported by an interface.
|
||||
@@ -278,6 +315,12 @@ cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int interface)
|
||||
return CVMX_HELPER_INTERFACE_MODE_DISABLED;
|
||||
|
||||
/*
|
||||
+ * OCTEON III models
|
||||
+ */
|
||||
+ if (OCTEON_IS_MODEL(OCTEON_CN7XXX))
|
||||
+ return __cvmx_get_mode_cn7xxx(interface);
|
||||
+
|
||||
+ /*
|
||||
* Octeon II models
|
||||
*/
|
||||
if (OCTEON_IS_MODEL(OCTEON_CN6XXX) || OCTEON_IS_MODEL(OCTEON_CNF71XX))
|
||||
--
|
||||
2.8.0.rc3
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
From: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Date: Wed, 11 May 2016 00:37:42 +0200
|
||||
Subject: MIPS: Octeon: detect and fix byte swapped initramfs
|
||||
Origin: https://git.kernel.org/linus/8f4703aa4df758def78e9a39cc5d1ff73c3ef51f
|
||||
|
||||
Octeon machines support running in little endian mode. U-Boot usually
|
||||
runs in big endian-mode. Therefore the initramfs is loaded in big endian
|
||||
mode, and the kernel later tries to access it in little endian mode.
|
||||
|
||||
This patch fixes that by detecting byte swapped initramfs using either the
|
||||
CPIO header or the header from standard compression methods, and
|
||||
byte swaps it if needed. It first checks that the header doesn't match
|
||||
in the native endianness to avoid false detections. It uses the kernel
|
||||
decompress library so that we don't have to maintain the list of magics
|
||||
if some decompression methods are added to the kernel.
|
||||
|
||||
Cc: Ralf Baechle <ralf@linux-mips.org>
|
||||
Acked-by: David Daney <david.daney@cavium.com>
|
||||
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
||||
---
|
||||
arch/mips/kernel/setup.c | 32 ++++++++++++++++++++++++++++++++
|
||||
1 file changed, 32 insertions(+)
|
||||
|
||||
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
|
||||
index 4f60734..8841d7982 100644
|
||||
--- a/arch/mips/kernel/setup.c
|
||||
+++ b/arch/mips/kernel/setup.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <linux/sizes.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/dma-contiguous.h>
|
||||
+#include <linux/decompress/generic.h>
|
||||
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/bootinfo.h>
|
||||
@@ -250,6 +251,35 @@ disable:
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/* In some conditions (e.g. big endian bootloader with a little endian
|
||||
+ kernel), the initrd might appear byte swapped. Try to detect this and
|
||||
+ byte swap it if needed. */
|
||||
+static void __init maybe_bswap_initrd(void)
|
||||
+{
|
||||
+#if defined(CONFIG_CPU_CAVIUM_OCTEON)
|
||||
+ u64 buf;
|
||||
+
|
||||
+ /* Check for CPIO signature */
|
||||
+ if (!memcmp((void *)initrd_start, "070701", 6))
|
||||
+ return;
|
||||
+
|
||||
+ /* Check for compressed initrd */
|
||||
+ if (decompress_method((unsigned char *)initrd_start, 8, NULL))
|
||||
+ return;
|
||||
+
|
||||
+ /* Try again with a byte swapped header */
|
||||
+ buf = swab64p((u64 *)initrd_start);
|
||||
+ if (!memcmp(&buf, "070701", 6) ||
|
||||
+ decompress_method((unsigned char *)(&buf), 8, NULL)) {
|
||||
+ unsigned long i;
|
||||
+
|
||||
+ pr_info("Byteswapped initrd detected\n");
|
||||
+ for (i = initrd_start; i < ALIGN(initrd_end, 8); i += 8)
|
||||
+ swab64s((u64 *)i);
|
||||
+ }
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
static void __init finalize_initrd(void)
|
||||
{
|
||||
unsigned long size = initrd_end - initrd_start;
|
||||
@@ -263,6 +293,8 @@ static void __init finalize_initrd(void)
|
||||
goto disable;
|
||||
}
|
||||
|
||||
+ maybe_bswap_initrd();
|
||||
+
|
||||
reserve_bootmem(__pa(initrd_start), size, BOOTMEM_DEFAULT);
|
||||
initrd_below_start_ok = 1;
|
||||
|
||||
--
|
||||
2.8.1
|
||||
|
|
@ -28,7 +28,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||
|
||||
--- a/Documentation/kernel-parameters.txt
|
||||
+++ b/Documentation/kernel-parameters.txt
|
||||
@@ -3793,6 +3793,10 @@ bytes respectively. Such letter suffixes
|
||||
@@ -3877,6 +3877,10 @@ bytes respectively. Such letter suffixes
|
||||
|
||||
switches= [HW,M68k]
|
||||
|
||||
|
@ -41,7 +41,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||
on older distributions. When this option is enabled
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -2690,6 +2690,14 @@ config X86_X32
|
||||
@@ -2665,6 +2665,14 @@ config X86_X32
|
||||
elf32_x86_64 support enabled to compile a kernel with this
|
||||
option set.
|
||||
|
||||
|
@ -122,7 +122,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||
+#include <linux/init.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/syscall.h>
|
||||
+#include <asm/alternative.h>
|
||||
+#include <asm/text-patching.h>
|
||||
|
||||
#define __SYSCALL_64_QUAL_(sym) sym
|
||||
#define __SYSCALL_64_QUAL_ptregs(sym) ptregs_##sym
|
||||
|
|
|
@ -44,28 +44,18 @@ debian/snd-pcsp-disable-autoload.patch
|
|||
bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
|
||||
|
||||
# Arch bug fixes
|
||||
bugfix/mips/MIPS-Allow-emulation-for-unaligned-LSDXC1-instructions.patch
|
||||
bugfix/mips/MIPS-Disable-preemption-during-prctl-PR_SET_FP_MODE.patch
|
||||
bugfix/mips/MIPS-Force-CPUs-to-lose-FP-context-during-mode-switc.patch
|
||||
bugfix/powerpc/powerpc-fix-sstep-compile-on-powerpcspe.patch
|
||||
bugfix/arm/dwc3-exynos-fix-deferred-probing-storm.patch
|
||||
|
||||
# Arch features
|
||||
features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
|
||||
features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch
|
||||
features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch
|
||||
features/mips/MIPS-Octeon-Add-Octeon-III-CN7xxx-interface-detection.patch
|
||||
features/mips/MIPS-Octeon-detect-and-fix-byte-swapped-initramfs.patch
|
||||
features/x86/x86-memtest-WARN-if-bad-RAM-found.patch
|
||||
features/x86/x86-make-x32-syscall-support-conditional.patch
|
||||
features/arm/device-tree/ARM-dts-kirkwood-add-kirkwood-ds112.dtb-to-Makefile.patch
|
||||
features/arm/device-tree/ARM-dts-kirkwood-add-kirkwood-nsa320.dtb-to-Makefile.patch
|
||||
features/arm/device-tree/ARM-dts-orion5x-add-device-tree-for-kurobox-pro.patch
|
||||
|
||||
# Miscellaneous bug fixes
|
||||
bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch
|
||||
bugfix/all/disable-some-marvell-phys.patch
|
||||
bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch
|
||||
bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch
|
||||
bugfix/all/module-invalidate-signatures-on-force-loaded-modules.patch
|
||||
bugfix/all/videobuf2-core-fix-crash-after-fixing-cve-2016-4568.patch
|
||||
|
@ -103,12 +93,6 @@ features/all/securelevel/mtd-disable-slram-and-phram-when-securelevel-is-enabled
|
|||
bugfix/all/ptrace-being-capable-wrt-a-process-requires-mapped-uids-gids.patch
|
||||
debian/i386-686-pae-pci-set-pci-nobios-by-default.patch
|
||||
bugfix/all/media-videobuf2-v4l2-verify-planes-array-in-buffer-d.patch
|
||||
bugfix/all/tipc-check-nl-sock-before-parsing-nested-attributes.patch
|
||||
bugfix/x86/kvm-vmx-more-complete-state-update-on-apicv-on-off.patch
|
||||
bugfix/all/usb-usbfs-fix-potential-infoleak-in-devio.patch
|
||||
bugfix/all/alsa-timer-fix-leak-in-sndrv_timer_ioctl_params.patch
|
||||
bugfix/all/alsa-timer-fix-leak-in-events-via-snd_timer_user_cca.patch
|
||||
bugfix/all/alsa-timer-fix-leak-in-events-via-snd_timer_user_tin.patch
|
||||
|
||||
# Tools bug fixes
|
||||
bugfix/all/usbip-document-tcp-wrappers.patch
|
||||
|
@ -126,6 +110,5 @@ bugfix/alpha/alpha-uapi-add-support-for-__sane_userspace_types__.patch
|
|||
bugfix/x86/revert-perf-tools-x86-build-perf-on-older-user-space.patch
|
||||
bugfix/all/lockdep-add-missing-macros.patch
|
||||
bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch
|
||||
bugfix/all/power-cpupower-fix-manpages-NAME.patch
|
||||
bugfix/all/tools-lib-traceevent-fix-use-of-uninitialized-variables.patch
|
||||
bugfix/all/scripts-fix-x.509-pem-support-in-sign-file.patch
|
||||
|
|
Loading…
Reference in New Issue