port patch set to 4.19.195

This commit is contained in:
Miguel Bernal Marin 2021-06-16 08:22:13 -07:00
parent f0282b430b
commit 8e6b8d7a69
129 changed files with 485 additions and 512 deletions

View File

@ -33,10 +33,10 @@ Signed-off-by: Lili Li <lili.li@intel.com>
2 files changed, 105 insertions(+), 2 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index af35f5caadbe..f9139407fdb5 100644
index d994501d9179..58e65440a9fd 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1481,6 +1481,14 @@ config X86_DIRECT_GBPAGES
@@ -1482,6 +1482,14 @@ config X86_DIRECT_GBPAGES
supports them), so don't confuse the user by printing
that we have them enabled.

View File

@ -43,7 +43,7 @@ index 42e89060cd41..96c7ff63178c 100644
help
Say Y here to enable the MMC block device driver support.
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index c723a1e54b18..c3f38b652f53 100644
index c2c45c148ae7..9696ecb97927 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -44,6 +44,7 @@
@ -54,7 +54,7 @@ index c723a1e54b18..c3f38b652f53 100644
#include <linux/uaccess.h>
@@ -1084,6 +1085,217 @@ static void mmc_blk_issue_drv_op(struct mmc_queue *mq, struct request *req)
@@ -1096,6 +1097,217 @@ static void mmc_blk_issue_drv_op(struct mmc_queue *mq, struct request *req)
blk_mq_end_request(req, ret ? BLK_STS_IOERR : BLK_STS_OK);
}
@ -272,7 +272,7 @@ index c723a1e54b18..c3f38b652f53 100644
static void mmc_blk_issue_discard_rq(struct mmc_queue *mq, struct request *req)
{
struct mmc_blk_data *md = mq->blkdata;
@@ -2916,6 +3128,9 @@ static int mmc_blk_probe(struct mmc_card *card)
@@ -2932,6 +3144,9 @@ static int mmc_blk_probe(struct mmc_card *card)
goto out;
}
@ -282,7 +282,7 @@ index c723a1e54b18..c3f38b652f53 100644
/* Add two debugfs entries */
mmc_blk_add_debugfs(card, md);
@@ -2944,6 +3159,7 @@ static void mmc_blk_remove(struct mmc_card *card)
@@ -2960,6 +3175,7 @@ static void mmc_blk_remove(struct mmc_card *card)
struct mmc_blk_data *md = dev_get_drvdata(&card->dev);
mmc_blk_remove_debugfs(card, md);

View File

@ -74,7 +74,7 @@ index c3bcaaec0fc5..348471f55bf9 100644
/**
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index b2cbdd01ab10..77fa110d5f74 100644
index b18430efb00f..626f4c3d3c46 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -307,16 +307,6 @@ static void ufshcd_scsi_block_requests(struct ufs_hba *hba)
@ -94,7 +94,7 @@ index b2cbdd01ab10..77fa110d5f74 100644
static void ufshcd_add_cmd_upiu_trace(struct ufs_hba *hba, unsigned int tag,
const char *str)
{
@@ -3169,7 +3159,7 @@ int ufshcd_read_desc_param(struct ufs_hba *hba,
@@ -3176,7 +3166,7 @@ int ufshcd_read_desc_param(struct ufs_hba *hba,
enum desc_idn desc_id,
int desc_index,
u8 param_offset,
@ -103,7 +103,7 @@ index b2cbdd01ab10..77fa110d5f74 100644
u8 param_size)
{
int ret;
@@ -3237,7 +3227,7 @@ int ufshcd_read_desc_param(struct ufs_hba *hba,
@@ -3244,7 +3234,7 @@ int ufshcd_read_desc_param(struct ufs_hba *hba,
static inline int ufshcd_read_desc(struct ufs_hba *hba,
enum desc_idn desc_id,
int desc_index,
@ -112,7 +112,7 @@ index b2cbdd01ab10..77fa110d5f74 100644
u32 size)
{
return ufshcd_read_desc_param(hba, desc_id, desc_index, 0, buf, size);
@@ -3255,49 +3245,77 @@ static int ufshcd_read_device_desc(struct ufs_hba *hba, u8 *buf, u32 size)
@@ -3262,49 +3252,77 @@ static int ufshcd_read_device_desc(struct ufs_hba *hba, u8 *buf, u32 size)
return ufshcd_read_desc(hba, QUERY_DESC_IDN_DEVICE, 0, buf, size);
}
@ -217,7 +217,7 @@ index b2cbdd01ab10..77fa110d5f74 100644
goto out;
}
@@ -3305,22 +3323,29 @@ int ufshcd_read_string_desc(struct ufs_hba *hba, int desc_index,
@@ -3312,22 +3330,29 @@ int ufshcd_read_string_desc(struct ufs_hba *hba, int desc_index,
* the descriptor contains string in UTF16 format
* we need to convert to utf-8 so it can be displayed
*/
@ -258,7 +258,7 @@ index b2cbdd01ab10..77fa110d5f74 100644
}
/**
@@ -6307,6 +6332,9 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
@@ -6311,6 +6336,9 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
u8 model_index;
u8 *desc_buf;
@ -268,7 +268,7 @@ index b2cbdd01ab10..77fa110d5f74 100644
buff_len = max_t(size_t, hba->desc_size.dev_desc,
QUERY_DESC_MAX_SIZE + 1);
desc_buf = kmalloc(buff_len, GFP_KERNEL);
@@ -6330,31 +6358,31 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
@@ -6334,31 +6362,31 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
desc_buf[DEVICE_DESC_PARAM_MANF_ID + 1];
model_index = desc_buf[DEVICE_DESC_PARAM_PRDCT_NAME];
@ -314,7 +314,7 @@ index b2cbdd01ab10..77fa110d5f74 100644
static void ufs_fixup_device_setup(struct ufs_hba *hba,
struct ufs_dev_desc *dev_desc)
{
@@ -6363,8 +6391,9 @@ static void ufs_fixup_device_setup(struct ufs_hba *hba,
@@ -6367,8 +6395,9 @@ static void ufs_fixup_device_setup(struct ufs_hba *hba,
for (f = ufs_fixups; f->quirk; f++) {
if ((f->card.wmanufacturerid == dev_desc->wmanufacturerid ||
f->card.wmanufacturerid == UFS_ANY_VENDOR) &&
@ -326,7 +326,7 @@ index b2cbdd01ab10..77fa110d5f74 100644
hba->dev_quirks |= f->quirk;
}
}
@@ -6647,6 +6676,8 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
@@ -6651,6 +6680,8 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
}
ufs_fixup_device_setup(hba, &card);

View File

@ -44,7 +44,7 @@ index e09fe6ab3572..a3c1982b213a 100644
This selects the support for UFS devices in Linux, say Y and make
sure that you know the name of your UFS host adapter (the card
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 77fa110d5f74..75c5014699b3 100644
index 626f4c3d3c46..b1c7dd8afccf 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -37,11 +37,14 @@
@ -62,7 +62,7 @@ index 77fa110d5f74..75c5014699b3 100644
#include "ufshcd.h"
#include "ufs_quirks.h"
#include "unipro.h"
@@ -6261,6 +6264,217 @@ static void ufshcd_init_icc_levels(struct ufs_hba *hba)
@@ -6265,6 +6268,217 @@ static void ufshcd_init_icc_levels(struct ufs_hba *hba)
kfree(desc_buf);
}
@ -280,7 +280,7 @@ index 77fa110d5f74..75c5014699b3 100644
/**
* ufshcd_scsi_add_wlus - Adds required W-LUs
* @hba: per-adapter instance
@@ -6308,6 +6522,8 @@ static int ufshcd_scsi_add_wlus(struct ufs_hba *hba)
@@ -6312,6 +6526,8 @@ static int ufshcd_scsi_add_wlus(struct ufs_hba *hba)
ret = PTR_ERR(sdev_rpmb);
goto remove_sdev_ufs_device;
}
@ -289,7 +289,7 @@ index 77fa110d5f74..75c5014699b3 100644
scsi_device_put(sdev_rpmb);
sdev_boot = __scsi_add_device(hba->host, 0, 0,
@@ -6727,6 +6943,8 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
@@ -6731,6 +6947,8 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
if (ret)
goto out;
@ -299,8 +299,8 @@ index 77fa110d5f74..75c5014699b3 100644
if (ufshcd_is_clkscaling_supported(hba)) {
memcpy(&hba->clk_scaling.saved_pwr_info.info,
@@ -7963,6 +8181,8 @@ int ufshcd_shutdown(struct ufs_hba *hba)
goto out;
}
pm_runtime_get_sync(hba->dev);
+ ufshcd_rpmb_remove(hba);
+

View File

@ -36,7 +36,7 @@ index 348471f55bf9..febed206a1a7 100644
/**
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 75c5014699b3..6708079c04c7 100644
index b1c7dd8afccf..79d21a653f25 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -43,6 +43,7 @@
@ -47,7 +47,7 @@ index 75c5014699b3..6708079c04c7 100644
#include <linux/rpmb.h>
#include "ufshcd.h"
@@ -6423,12 +6424,19 @@ static struct rpmb_ops ufshcd_rpmb_dev_ops = {
@@ -6427,12 +6428,19 @@ static struct rpmb_ops ufshcd_rpmb_dev_ops = {
};
@ -68,7 +68,7 @@ index 75c5014699b3..6708079c04c7 100644
ret = scsi_device_get(hba->sdev_ufs_rpmb);
if (ret)
goto out_put_dev;
@@ -6472,6 +6480,9 @@ static inline void ufshcd_rpmb_remove(struct ufs_hba *hba)
@@ -6476,6 +6484,9 @@ static inline void ufshcd_rpmb_remove(struct ufs_hba *hba)
scsi_device_put(hba->sdev_ufs_rpmb);
hba->sdev_ufs_rpmb = NULL;
@ -78,7 +78,7 @@ index 75c5014699b3..6708079c04c7 100644
spin_unlock_irqrestore(hba->host->host_lock, flags);
}
@@ -6545,7 +6556,7 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
@@ -6549,7 +6560,7 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
{
int err;
size_t buff_len;
@ -87,7 +87,7 @@ index 75c5014699b3..6708079c04c7 100644
u8 *desc_buf;
if (!dev_desc)
@@ -6573,8 +6584,8 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
@@ -6577,8 +6588,8 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
dev_desc->wmanufacturerid = desc_buf[DEVICE_DESC_PARAM_MANF_ID] << 8 |
desc_buf[DEVICE_DESC_PARAM_MANF_ID + 1];
@ -98,7 +98,7 @@ index 75c5014699b3..6708079c04c7 100644
&dev_desc->model, SD_ASCII_STD);
if (err < 0) {
dev_err(hba->dev, "%s: Failed reading Product Name. err = %d\n",
@@ -6582,6 +6593,14 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
@@ -6586,6 +6597,14 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
goto out;
}
@ -113,7 +113,7 @@ index 75c5014699b3..6708079c04c7 100644
/*
* ufshcd_read_string_desc returns size of the string
* reset the error value
@@ -6597,6 +6616,9 @@ static void ufs_put_device_desc(struct ufs_dev_desc *dev_desc)
@@ -6601,6 +6620,9 @@ static void ufs_put_device_desc(struct ufs_dev_desc *dev_desc)
{
kfree(dev_desc->model);
dev_desc->model = NULL;
@ -123,7 +123,7 @@ index 75c5014699b3..6708079c04c7 100644
}
static void ufs_fixup_device_setup(struct ufs_hba *hba,
@@ -6892,7 +6914,6 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
@@ -6896,7 +6918,6 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
}
ufs_fixup_device_setup(hba, &card);
@ -131,7 +131,7 @@ index 75c5014699b3..6708079c04c7 100644
ufshcd_tune_unipro_params(hba);
@@ -6943,7 +6964,7 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
@@ -6947,7 +6968,7 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
if (ret)
goto out;
@ -140,7 +140,7 @@ index 75c5014699b3..6708079c04c7 100644
/* Initialize devfreq after UFS device is detected */
if (ufshcd_is_clkscaling_supported(hba)) {
@@ -6967,6 +6988,8 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
@@ -6971,6 +6992,8 @@ static int ufshcd_probe_hba(struct ufs_hba *hba)
hba->is_init_prefetch = true;
out:

View File

@ -45,7 +45,7 @@ index aea459c65ae1..99f99e87b82b 100644
nvme-fabrics-y += fabrics.o
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index b633ea40430e..1c10782a2cc2 100644
index e64310f2296f..ebdaad47aed0 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -11,7 +11,6 @@
@ -123,7 +123,7 @@ index b633ea40430e..1c10782a2cc2 100644
EXPORT_SYMBOL_GPL(nvme_sec_submit);
#endif /* CONFIG_BLK_SED_OPAL */
@@ -2559,7 +2590,10 @@ int nvme_init_identify(struct nvme_ctrl *ctrl)
@@ -2560,7 +2591,10 @@ int nvme_init_identify(struct nvme_ctrl *ctrl)
ctrl->hmmaxd = le16_to_cpu(id->hmmaxd);
}
@ -135,7 +135,7 @@ index b633ea40430e..1c10782a2cc2 100644
if (ret < 0)
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index 9c2e7a151e40..151a267df871 100644
index 276975506709..d66fd0818417 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -21,6 +21,7 @@
@ -176,10 +176,10 @@ index 9c2e7a151e40..151a267df871 100644
void nvme_remove_namespaces(struct nvme_ctrl *ctrl);
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 3c68a5b35ec1..66fcf86a7e34 100644
index 82d87d2e280c..79a7c215d7c9 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -2306,6 +2306,10 @@ static void nvme_reset_work(struct work_struct *work)
@@ -2321,6 +2321,10 @@ static void nvme_reset_work(struct work_struct *work)
if (result)
goto out;

View File

@ -13,10 +13,10 @@ Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
1 file changed, 1 insertion(+)
diff --git a/block/genhd.c b/block/genhd.c
index 2b2a936cf848..19acb969f408 100644
index 27a410d31087..7f10bf9c2aad 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -1303,6 +1303,7 @@ static void disk_release(struct device *dev)
@@ -1315,6 +1315,7 @@ static void disk_release(struct device *dev)
struct class block_class = {
.name = "block",
};

View File

@ -30,7 +30,7 @@ Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
create mode 100644 drivers/char/rpmb/mux/key_sbl.h
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 8dbc8d4ec8f0..1c6ca4d46d08 100644
index 558332df02a8..fcc756a8c19a 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -745,6 +745,10 @@

View File

@ -105,10 +105,10 @@ Signed-off-by: Tarun Vyas <tarun.vyas@intel.com>
create mode 100755 drivers/staging/igb_avb/startup.sh
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 1abf76be2aa8..89735a5fd9e1 100644
index 58e8140c1f57..c1d6d7740117 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -126,4 +126,6 @@ source "drivers/staging/axis-fifo/Kconfig"
@@ -124,4 +124,6 @@ source "drivers/staging/axis-fifo/Kconfig"
source "drivers/staging/erofs/Kconfig"
@ -116,10 +116,10 @@ index 1abf76be2aa8..89735a5fd9e1 100644
+
endif # STAGING
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index ab0cbe8815b1..f7d9b0acf361 100644
index 6f3065569fa0..82743da3327f 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -53,3 +53,4 @@ obj-$(CONFIG_SOC_MT7621) += mt7621-dts/
@@ -52,3 +52,4 @@ obj-$(CONFIG_SOC_MT7621) += mt7621-dts/
obj-$(CONFIG_STAGING_GASKET_FRAMEWORK) += gasket/
obj-$(CONFIG_XIL_AXIS_FIFO) += axis-fifo/
obj-$(CONFIG_EROFS_FS) += erofs/

View File

@ -125,7 +125,7 @@ index 5261bad11953..e29d03f42c3e 100644
if (err)
return err;
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index f75d892b6f03..adbd5729639d 100644
index 76ef79733a4e..487781d045ee 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -2929,6 +2929,22 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,

View File

@ -17,7 +17,7 @@ Signed-off-by: Greniger, Jacek <jacekx.greniger@intel.com>
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index f0d2f0a4e990..44e4dea865c1 100644
index 1396ee529792..de91a92aa569 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -18,6 +18,7 @@
@ -28,7 +28,7 @@ index f0d2f0a4e990..44e4dea865c1 100644
#include <linux/usb/ch9.h>
#include <linux/usb/gadget.h>
@@ -1869,6 +1870,17 @@ static void dwc3_gadget_setup_nump(struct dwc3 *dwc)
@@ -1892,6 +1893,17 @@ static void dwc3_gadget_setup_nump(struct dwc3 *dwc)
dwc3_writel(dwc->regs, DWC3_DCFG, reg);
}
@ -46,7 +46,7 @@ index f0d2f0a4e990..44e4dea865c1 100644
static int __dwc3_gadget_start(struct dwc3 *dwc)
{
struct dwc3_ep *dep;
@@ -2046,10 +2058,23 @@ static void dwc3_gadget_set_speed(struct usb_gadget *g,
@@ -2069,10 +2081,23 @@ static void dwc3_gadget_set_speed(struct usb_gadget *g,
reg |= DWC3_DCFG_HIGHSPEED;
break;
case USB_SPEED_SUPER:

View File

@ -14,10 +14,10 @@ Signed-off-by: James Morris <james.morris@microsoft.com>
1 file changed, 3 deletions(-)
diff --git a/security/commoncap.c b/security/commoncap.c
index f86557a8e43f..6768077da511 100644
index 876cfe01d939..a48a7777aa4c 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -683,9 +683,6 @@ static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_f
@@ -702,9 +702,6 @@ static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_f
}
rc = bprm_caps_from_vfs_caps(&vcaps, bprm, effective, has_fcap);

View File

@ -62,7 +62,7 @@ index c980dfe9abf1..9842e21afd4a 100644
:maxdepth: 1
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 5e705fa9a913..e919aee77d40 100644
index 317a0762fc5f..1d3ec810afc1 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -140,9 +140,13 @@ struct pid_entry {
@ -80,7 +80,7 @@ index 5e705fa9a913..e919aee77d40 100644
/*
* Count the number of hardlinks for the pid_entry table, excluding the .
@@ -2546,7 +2550,7 @@ static ssize_t proc_pid_attr_read(struct file * file, char __user * buf,
@@ -2553,7 +2557,7 @@ static ssize_t proc_pid_attr_read(struct file * file, char __user * buf,
if (!task)
return -ESRCH;
@ -89,7 +89,7 @@ index 5e705fa9a913..e919aee77d40 100644
(char*)file->f_path.dentry->d_name.name,
&p);
put_task_struct(task);
@@ -2600,7 +2604,9 @@ static ssize_t proc_pid_attr_write(struct file * file, const char __user * buf,
@@ -2611,7 +2615,9 @@ static ssize_t proc_pid_attr_write(struct file * file, const char __user * buf,
if (rv < 0)
goto out_free;
@ -100,8 +100,8 @@ index 5e705fa9a913..e919aee77d40 100644
mutex_unlock(&current->signal->cred_guard_mutex);
out_free:
kfree(page);
@@ -2614,13 +2620,53 @@ static const struct file_operations proc_pid_attr_operations = {
.llseek = generic_file_llseek,
@@ -2627,13 +2633,53 @@ static const struct file_operations proc_pid_attr_operations = {
.release = mem_release,
};
+#define LSM_DIR_OPS(LSM) \
@ -161,7 +161,7 @@ index 5e705fa9a913..e919aee77d40 100644
static int proc_attr_dir_readdir(struct file *file, struct dir_context *ctx)
diff --git a/fs/proc/internal.h b/fs/proc/internal.h
index 95b14196f284..f8579787852e 100644
index 4f14906ef16b..07835bd93562 100644
--- a/fs/proc/internal.h
+++ b/fs/proc/internal.h
@@ -82,6 +82,7 @@ union proc_op {
@ -173,7 +173,7 @@ index 95b14196f284..f8579787852e 100644
struct proc_inode {
diff --git a/include/linux/security.h b/include/linux/security.h
index d2240605edc4..96eb8d4cf764 100644
index 454cc963d145..3c854e63d41d 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -393,8 +393,10 @@ int security_sem_semctl(struct kern_ipc_perm *sma, int cmd);

View File

@ -318,10 +318,10 @@ index 221de4c755c3..9d5d5584d2fa 100644
int may;
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
index accd3846f1e3..09fee3e8df9c 100644
index 4f8c1a272df0..5f415224a6b3 100644
--- a/security/smack/smackfs.c
+++ b/security/smack/smackfs.c
@@ -2222,14 +2222,14 @@ static const struct file_operations smk_logging_ops = {
@@ -2232,14 +2232,14 @@ static const struct file_operations smk_logging_ops = {
static void *load_self_seq_start(struct seq_file *s, loff_t *pos)
{
@ -338,7 +338,7 @@ index accd3846f1e3..09fee3e8df9c 100644
return smk_seq_next(s, v, pos, &tsp->smk_rules);
}
@@ -2276,7 +2276,7 @@ static int smk_open_load_self(struct inode *inode, struct file *file)
@@ -2286,7 +2286,7 @@ static int smk_open_load_self(struct inode *inode, struct file *file)
static ssize_t smk_write_load_self(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{
@ -347,7 +347,7 @@ index accd3846f1e3..09fee3e8df9c 100644
return smk_write_rules_list(file, buf, count, ppos, &tsp->smk_rules,
&tsp->smk_rules_lock, SMK_FIXED24_FMT);
@@ -2428,14 +2428,14 @@ static const struct file_operations smk_load2_ops = {
@@ -2438,14 +2438,14 @@ static const struct file_operations smk_load2_ops = {
static void *load_self2_seq_start(struct seq_file *s, loff_t *pos)
{
@ -364,7 +364,7 @@ index accd3846f1e3..09fee3e8df9c 100644
return smk_seq_next(s, v, pos, &tsp->smk_rules);
}
@@ -2481,7 +2481,7 @@ static int smk_open_load_self2(struct inode *inode, struct file *file)
@@ -2491,7 +2491,7 @@ static int smk_open_load_self2(struct inode *inode, struct file *file)
static ssize_t smk_write_load_self2(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{
@ -373,7 +373,7 @@ index accd3846f1e3..09fee3e8df9c 100644
return smk_write_rules_list(file, buf, count, ppos, &tsp->smk_rules,
&tsp->smk_rules_lock, SMK_LONG_FMT);
@@ -2695,14 +2695,14 @@ static const struct file_operations smk_syslog_ops = {
@@ -2709,14 +2709,14 @@ static const struct file_operations smk_syslog_ops = {
static void *relabel_self_seq_start(struct seq_file *s, loff_t *pos)
{

View File

@ -14,7 +14,7 @@ Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
3 files changed, 34 insertions(+), 29 deletions(-)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 250b725f5754..44e4d2015b0a 100644
index 08833bbb97aa..58a33e6bc37d 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -228,7 +228,7 @@ static inline u32 cred_sid(const struct cred *cred)
@ -44,7 +44,7 @@ index 250b725f5754..44e4d2015b0a 100644
int rc;
rc = avc_has_perm(&selinux_state,
tsec->sid, sbsec->sid, SECCLASS_FILESYSTEM,
@@ -1979,7 +1979,7 @@ static int may_create(struct inode *dir,
@@ -1987,7 +1987,7 @@ static int may_create(struct inode *dir,
struct dentry *dentry,
u16 tclass)
{
@ -53,7 +53,7 @@ index 250b725f5754..44e4d2015b0a 100644
struct inode_security_struct *dsec;
struct superblock_security_struct *sbsec;
u32 sid, newsid;
@@ -2001,7 +2001,7 @@ static int may_create(struct inode *dir,
@@ -2009,7 +2009,7 @@ static int may_create(struct inode *dir,
if (rc)
return rc;
@ -62,7 +62,7 @@ index 250b725f5754..44e4d2015b0a 100644
&dentry->d_name, tclass, &newsid);
if (rc)
return rc;
@@ -2508,8 +2508,8 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm)
@@ -2516,8 +2516,8 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm)
if (bprm->called_set_creds)
return 0;
@ -73,7 +73,7 @@ index 250b725f5754..44e4d2015b0a 100644
isec = inode_security(inode);
/* Default to the current task SID. */
@@ -2673,7 +2673,7 @@ static void selinux_bprm_committing_creds(struct linux_binprm *bprm)
@@ -2681,7 +2681,7 @@ static void selinux_bprm_committing_creds(struct linux_binprm *bprm)
struct rlimit *rlim, *initrlim;
int rc, i;
@ -82,7 +82,7 @@ index 250b725f5754..44e4d2015b0a 100644
if (new_tsec->sid == new_tsec->osid)
return;
@@ -2716,7 +2716,7 @@ static void selinux_bprm_committing_creds(struct linux_binprm *bprm)
@@ -2724,7 +2724,7 @@ static void selinux_bprm_committing_creds(struct linux_binprm *bprm)
*/
static void selinux_bprm_committed_creds(struct linux_binprm *bprm)
{
@ -91,7 +91,7 @@ index 250b725f5754..44e4d2015b0a 100644
struct itimerval itimer;
u32 osid, sid;
int rc, i;
@@ -3019,7 +3019,7 @@ static int selinux_dentry_init_security(struct dentry *dentry, int mode,
@@ -3027,7 +3027,7 @@ static int selinux_dentry_init_security(struct dentry *dentry, int mode,
u32 newsid;
int rc;
@ -100,7 +100,7 @@ index 250b725f5754..44e4d2015b0a 100644
d_inode(dentry->d_parent), name,
inode_mode_to_security_class(mode),
&newsid);
@@ -3039,14 +3039,14 @@ static int selinux_dentry_create_files_as(struct dentry *dentry, int mode,
@@ -3047,14 +3047,14 @@ static int selinux_dentry_create_files_as(struct dentry *dentry, int mode,
int rc;
struct task_security_struct *tsec;
@ -117,7 +117,7 @@ index 250b725f5754..44e4d2015b0a 100644
tsec->create_sid = newsid;
return 0;
}
@@ -3056,7 +3056,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
@@ -3064,7 +3064,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
const char **name,
void **value, size_t *len)
{
@ -126,7 +126,7 @@ index 250b725f5754..44e4d2015b0a 100644
struct superblock_security_struct *sbsec;
u32 newsid, clen;
int rc;
@@ -3066,7 +3066,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
@@ -3074,7 +3074,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
newsid = tsec->create_sid;
@ -135,7 +135,7 @@ index 250b725f5754..44e4d2015b0a 100644
dir, qstr,
inode_mode_to_security_class(inode->i_mode),
&newsid);
@@ -3549,7 +3549,7 @@ static int selinux_inode_copy_up(struct dentry *src, struct cred **new)
@@ -3557,7 +3557,7 @@ static int selinux_inode_copy_up(struct dentry *src, struct cred **new)
return -ENOMEM;
}
@ -144,7 +144,7 @@ index 250b725f5754..44e4d2015b0a 100644
/* Get label from overlay inode and set it in create_sid */
selinux_inode_getsecid(d_inode(src), &sid);
tsec->create_sid = sid;
@@ -3969,7 +3969,7 @@ static int selinux_cred_alloc_blank(struct cred *cred, gfp_t gfp)
@@ -3977,7 +3977,7 @@ static int selinux_cred_alloc_blank(struct cred *cred, gfp_t gfp)
*/
static void selinux_cred_free(struct cred *cred)
{
@ -153,7 +153,7 @@ index 250b725f5754..44e4d2015b0a 100644
/*
* cred->security == NULL if security_cred_alloc_blank() or
@@ -3989,7 +3989,7 @@ static int selinux_cred_prepare(struct cred *new, const struct cred *old,
@@ -3997,7 +3997,7 @@ static int selinux_cred_prepare(struct cred *new, const struct cred *old,
const struct task_security_struct *old_tsec;
struct task_security_struct *tsec;
@ -162,7 +162,7 @@ index 250b725f5754..44e4d2015b0a 100644
tsec = kmemdup(old_tsec, sizeof(struct task_security_struct), gfp);
if (!tsec)
@@ -4004,8 +4004,8 @@ static int selinux_cred_prepare(struct cred *new, const struct cred *old,
@@ -4012,8 +4012,8 @@ static int selinux_cred_prepare(struct cred *new, const struct cred *old,
*/
static void selinux_cred_transfer(struct cred *new, const struct cred *old)
{
@ -173,7 +173,7 @@ index 250b725f5754..44e4d2015b0a 100644
*tsec = *old_tsec;
}
@@ -4021,7 +4021,7 @@ static void selinux_cred_getsecid(const struct cred *c, u32 *secid)
@@ -4029,7 +4029,7 @@ static void selinux_cred_getsecid(const struct cred *c, u32 *secid)
*/
static int selinux_kernel_act_as(struct cred *new, u32 secid)
{
@ -182,7 +182,7 @@ index 250b725f5754..44e4d2015b0a 100644
u32 sid = current_sid();
int ret;
@@ -4046,7 +4046,7 @@ static int selinux_kernel_act_as(struct cred *new, u32 secid)
@@ -4054,7 +4054,7 @@ static int selinux_kernel_act_as(struct cred *new, u32 secid)
static int selinux_kernel_create_files_as(struct cred *new, struct inode *inode)
{
struct inode_security_struct *isec = inode_security(inode);
@ -191,7 +191,7 @@ index 250b725f5754..44e4d2015b0a 100644
u32 sid = current_sid();
int ret;
@@ -4595,7 +4595,7 @@ static int sock_has_perm(struct sock *sk, u32 perms)
@@ -4603,7 +4603,7 @@ static int sock_has_perm(struct sock *sk, u32 perms)
static int selinux_socket_create(int family, int type,
int protocol, int kern)
{
@ -200,7 +200,7 @@ index 250b725f5754..44e4d2015b0a 100644
u32 newsid;
u16 secclass;
int rc;
@@ -4615,7 +4615,7 @@ static int selinux_socket_create(int family, int type,
@@ -4623,7 +4623,7 @@ static int selinux_socket_create(int family, int type,
static int selinux_socket_post_create(struct socket *sock, int family,
int type, int protocol, int kern)
{
@ -209,7 +209,7 @@ index 250b725f5754..44e4d2015b0a 100644
struct inode_security_struct *isec = inode_security_novalidate(SOCK_INODE(sock));
struct sk_security_struct *sksec;
u16 sclass = socket_type_to_security_class(family, type, protocol);
@@ -5499,7 +5499,7 @@ static int selinux_secmark_relabel_packet(u32 sid)
@@ -5507,7 +5507,7 @@ static int selinux_secmark_relabel_packet(u32 sid)
const struct task_security_struct *__tsec;
u32 tsid;
@ -218,7 +218,7 @@ index 250b725f5754..44e4d2015b0a 100644
tsid = __tsec->sid;
return avc_has_perm(&selinux_state,
@@ -6456,7 +6456,7 @@ static int selinux_getprocattr(struct task_struct *p,
@@ -6464,7 +6464,7 @@ static int selinux_getprocattr(struct task_struct *p,
unsigned len;
rcu_read_lock();
@ -227,7 +227,7 @@ index 250b725f5754..44e4d2015b0a 100644
if (current != p) {
error = avc_has_perm(&selinux_state,
@@ -6579,7 +6579,7 @@ static int selinux_setprocattr(const char *name, void *value, size_t size)
@@ -6587,7 +6587,7 @@ static int selinux_setprocattr(const char *name, void *value, size_t size)
operation. See selinux_bprm_set_creds for the execve
checks and may_create for the file creation checks. The
operation will then fail if the context is not permitted. */
@ -236,7 +236,7 @@ index 250b725f5754..44e4d2015b0a 100644
if (!strcmp(name, "exec")) {
tsec->exec_sid = sid;
} else if (!strcmp(name, "fscreate")) {
@@ -6712,7 +6712,7 @@ static int selinux_key_alloc(struct key *k, const struct cred *cred,
@@ -6720,7 +6720,7 @@ static int selinux_key_alloc(struct key *k, const struct cred *cred,
if (!ksec)
return -ENOMEM;

View File

@ -423,7 +423,7 @@ index 44416ebec44f..eee803e1a250 100644
void security_transfer_creds(struct cred *new, const struct cred *old)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 44e4d2015b0a..37cb7743e265 100644
index 58a33e6bc37d..3d278734f2bc 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -213,12 +213,9 @@ static void cred_init_security(void)
@ -441,7 +441,7 @@ index 44e4d2015b0a..37cb7743e265 100644
}
/*
@@ -3949,53 +3946,17 @@ static int selinux_task_alloc(struct task_struct *task,
@@ -3957,53 +3954,17 @@ static int selinux_task_alloc(struct task_struct *task,
sid, sid, SECCLASS_PROCESS, PROCESS__FORK, NULL);
}
@ -498,7 +498,7 @@ index 44e4d2015b0a..37cb7743e265 100644
return 0;
}
@@ -6975,6 +6936,10 @@ static void selinux_bpf_prog_free(struct bpf_prog_aux *aux)
@@ -6983,6 +6944,10 @@ static void selinux_bpf_prog_free(struct bpf_prog_aux *aux)
}
#endif
@ -509,7 +509,7 @@ index 44e4d2015b0a..37cb7743e265 100644
static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
LSM_HOOK_INIT(binder_set_context_mgr, selinux_binder_set_context_mgr),
LSM_HOOK_INIT(binder_transaction, selinux_binder_transaction),
@@ -7057,8 +7022,6 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -7065,8 +7030,6 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
LSM_HOOK_INIT(file_open, selinux_file_open),
LSM_HOOK_INIT(task_alloc, selinux_task_alloc),
@ -518,7 +518,7 @@ index 44e4d2015b0a..37cb7743e265 100644
LSM_HOOK_INIT(cred_prepare, selinux_cred_prepare),
LSM_HOOK_INIT(cred_transfer, selinux_cred_transfer),
LSM_HOOK_INIT(cred_getsecid, selinux_cred_getsecid),
@@ -7214,11 +7177,19 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -7222,11 +7185,19 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
static __init int selinux_init(void)
{

View File

@ -13,7 +13,7 @@ Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
2 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 37cb7743e265..0a28281c7c4b 100644
index 3d278734f2bc..55c32ac3760a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -397,7 +397,7 @@ static int file_alloc_security(struct file *file)
@ -25,7 +25,7 @@ index 37cb7743e265..0a28281c7c4b 100644
file->f_security = NULL;
kmem_cache_free(file_security_cache, fsec);
}
@@ -1910,7 +1910,7 @@ static int file_has_perm(const struct cred *cred,
@@ -1918,7 +1918,7 @@ static int file_has_perm(const struct cred *cred,
struct file *file,
u32 av)
{
@ -34,7 +34,7 @@ index 37cb7743e265..0a28281c7c4b 100644
struct inode *inode = file_inode(file);
struct common_audit_data ad;
u32 sid = cred_sid(cred);
@@ -2254,7 +2254,7 @@ static int selinux_binder_transfer_file(struct task_struct *from,
@@ -2262,7 +2262,7 @@ static int selinux_binder_transfer_file(struct task_struct *from,
struct file *file)
{
u32 sid = task_sid(to);
@ -43,7 +43,7 @@ index 37cb7743e265..0a28281c7c4b 100644
struct dentry *dentry = file->f_path.dentry;
struct inode_security_struct *isec;
struct common_audit_data ad;
@@ -3587,7 +3587,7 @@ static int selinux_revalidate_file_permission(struct file *file, int mask)
@@ -3595,7 +3595,7 @@ static int selinux_revalidate_file_permission(struct file *file, int mask)
static int selinux_file_permission(struct file *file, int mask)
{
struct inode *inode = file_inode(file);
@ -52,7 +52,7 @@ index 37cb7743e265..0a28281c7c4b 100644
struct inode_security_struct *isec;
u32 sid = current_sid();
@@ -3622,7 +3622,7 @@ static int ioctl_has_perm(const struct cred *cred, struct file *file,
@@ -3630,7 +3630,7 @@ static int ioctl_has_perm(const struct cred *cred, struct file *file,
u32 requested, u16 cmd)
{
struct common_audit_data ad;
@ -61,7 +61,7 @@ index 37cb7743e265..0a28281c7c4b 100644
struct inode *inode = file_inode(file);
struct inode_security_struct *isec;
struct lsm_ioctlop_audit ioctl;
@@ -3874,7 +3874,7 @@ static void selinux_file_set_fowner(struct file *file)
@@ -3882,7 +3882,7 @@ static void selinux_file_set_fowner(struct file *file)
{
struct file_security_struct *fsec;
@ -70,7 +70,7 @@ index 37cb7743e265..0a28281c7c4b 100644
fsec->fown_sid = current_sid();
}
@@ -3889,7 +3889,7 @@ static int selinux_file_send_sigiotask(struct task_struct *tsk,
@@ -3897,7 +3897,7 @@ static int selinux_file_send_sigiotask(struct task_struct *tsk,
/* struct fown_struct is never outside the context of a struct file */
file = container_of(fown, struct file, f_owner);
@ -79,7 +79,7 @@ index 37cb7743e265..0a28281c7c4b 100644
if (!signum)
perm = signal_to_av(SIGIO); /* as per send_sigio_to_task */
@@ -3913,7 +3913,7 @@ static int selinux_file_open(struct file *file)
@@ -3921,7 +3921,7 @@ static int selinux_file_open(struct file *file)
struct file_security_struct *fsec;
struct inode_security_struct *isec;
@ -88,7 +88,7 @@ index 37cb7743e265..0a28281c7c4b 100644
isec = inode_security(file_inode(file));
/*
* Save inode label and policy sequence number
@@ -4053,7 +4053,7 @@ static int selinux_kernel_module_from_file(struct file *file)
@@ -4061,7 +4061,7 @@ static int selinux_kernel_module_from_file(struct file *file)
ad.type = LSM_AUDIT_DATA_FILE;
ad.u.file = file;

View File

@ -186,7 +186,7 @@ index eee803e1a250..51d4a0285b28 100644
return rc;
}
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 0a28281c7c4b..11c05ade9404 100644
index 55c32ac3760a..415fde8bdc1b 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -149,7 +149,6 @@ static int __init checkreqprot_setup(char *str)
@ -226,7 +226,7 @@ index 0a28281c7c4b..11c05ade9404 100644
static int superblock_alloc_security(struct super_block *sb)
{
struct superblock_security_struct *sbsec;
@@ -3609,11 +3596,6 @@ static int selinux_file_alloc_security(struct file *file)
@@ -3617,11 +3604,6 @@ static int selinux_file_alloc_security(struct file *file)
return file_alloc_security(file);
}
@ -238,7 +238,7 @@ index 0a28281c7c4b..11c05ade9404 100644
/*
* Check whether a task has the ioctl permission and cmd
* operation to an inode.
@@ -6938,6 +6920,7 @@ static void selinux_bpf_prog_free(struct bpf_prog_aux *aux)
@@ -6946,6 +6928,7 @@ static void selinux_bpf_prog_free(struct bpf_prog_aux *aux)
struct lsm_blob_sizes selinux_blob_sizes = {
.lbs_cred = sizeof(struct task_security_struct),
@ -246,7 +246,7 @@ index 0a28281c7c4b..11c05ade9404 100644
};
static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -7008,7 +6991,6 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -7016,7 +6999,6 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
LSM_HOOK_INIT(file_permission, selinux_file_permission),
LSM_HOOK_INIT(file_alloc_security, selinux_file_alloc_security),
@ -254,7 +254,7 @@ index 0a28281c7c4b..11c05ade9404 100644
LSM_HOOK_INIT(file_ioctl, selinux_file_ioctl),
LSM_HOOK_INIT(mmap_file, selinux_mmap_file),
LSM_HOOK_INIT(mmap_addr, selinux_mmap_addr),
@@ -7211,9 +7193,6 @@ static __init int selinux_init(void)
@@ -7219,9 +7201,6 @@ static __init int selinux_init(void)
sel_inode_cache = kmem_cache_create("selinux_inode_security",
sizeof(struct inode_security_struct),
0, SLAB_PANIC, NULL);

View File

@ -14,7 +14,7 @@ Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
3 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 11c05ade9404..0a030c421b66 100644
index 415fde8bdc1b..6177168f5d4f 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -276,7 +276,7 @@ static int __inode_security_revalidate(struct inode *inode,
@ -88,7 +88,7 @@ index 11c05ade9404..0a030c421b66 100644
u32 task_sid, sid = 0;
u16 sclass;
struct dentry *dentry;
@@ -1831,7 +1831,7 @@ static int inode_has_perm(const struct cred *cred,
@@ -1839,7 +1839,7 @@ static int inode_has_perm(const struct cred *cred,
return 0;
sid = cred_sid(cred);
@ -97,7 +97,7 @@ index 11c05ade9404..0a030c421b66 100644
return avc_has_perm(&selinux_state,
sid, isec->sid, isec->sclass, perms, adp);
@@ -3059,7 +3059,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
@@ -3067,7 +3067,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
/* Possibly defer initialization to selinux_complete_init. */
if (sbsec->flags & SE_SBINITIALIZED) {
@ -106,7 +106,7 @@ index 11c05ade9404..0a030c421b66 100644
isec->sclass = inode_mode_to_security_class(inode->i_mode);
isec->sid = newsid;
isec->initialized = LABEL_INITIALIZED;
@@ -3158,7 +3158,7 @@ static noinline int audit_inode_permission(struct inode *inode,
@@ -3166,7 +3166,7 @@ static noinline int audit_inode_permission(struct inode *inode,
int result)
{
struct common_audit_data ad;
@ -115,7 +115,7 @@ index 11c05ade9404..0a030c421b66 100644
int rc;
ad.type = LSM_AUDIT_DATA_INODE;
@@ -4201,7 +4201,7 @@ static int selinux_task_kill(struct task_struct *p, struct siginfo *info,
@@ -4209,7 +4209,7 @@ static int selinux_task_kill(struct task_struct *p, struct siginfo *info,
static void selinux_task_to_inode(struct task_struct *p,
struct inode *inode)
{
@ -124,7 +124,7 @@ index 11c05ade9404..0a030c421b66 100644
u32 sid = task_sid(p);
spin_lock(&isec->lock);
@@ -6607,7 +6607,7 @@ static void selinux_release_secctx(char *secdata, u32 seclen)
@@ -6615,7 +6615,7 @@ static void selinux_release_secctx(char *secdata, u32 seclen)
static void selinux_inode_invalidate_secctx(struct inode *inode)
{

View File

@ -182,7 +182,7 @@ index bc10f55ffd58..4d2f1d88eef8 100644
int security_dentry_init_security(struct dentry *dentry, int mode,
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 0a030c421b66..ef9d0507f5ef 100644
index 6177168f5d4f..77e1663a15b7 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -148,8 +148,6 @@ static int __init checkreqprot_setup(char *str)
@ -250,7 +250,7 @@ index 0a030c421b66..ef9d0507f5ef 100644
}
static int file_alloc_security(struct file *file)
@@ -6921,6 +6895,7 @@ static void selinux_bpf_prog_free(struct bpf_prog_aux *aux)
@@ -6929,6 +6903,7 @@ static void selinux_bpf_prog_free(struct bpf_prog_aux *aux)
struct lsm_blob_sizes selinux_blob_sizes = {
.lbs_cred = sizeof(struct task_security_struct),
.lbs_file = sizeof(struct file_security_struct),
@ -258,7 +258,7 @@ index 0a030c421b66..ef9d0507f5ef 100644
};
static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -7190,9 +7165,6 @@ static __init int selinux_init(void)
@@ -7198,9 +7173,6 @@ static __init int selinux_init(void)
default_noexec = !(VM_DATA_DEFAULT_FLAGS & VM_EXEC);

View File

@ -105,7 +105,7 @@ index 4d2f1d88eef8..f6238c8489be 100644
int security_sb_copy_data(char *orig, char *copy)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index ef9d0507f5ef..f837dcea3ac6 100644
index 77e1663a15b7..c59135f92089 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -333,7 +333,8 @@ static struct inode_security_struct *backing_inode_security(struct dentry *dentr
@ -218,7 +218,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
if (!(sbsec->flags & SE_SBINITIALIZED)) {
/* Defer initialization until selinux_complete_init,
after the initial policy is loaded and the security
@@ -1914,7 +1904,8 @@ selinux_determine_inode_label(const struct task_security_struct *tsec,
@@ -1922,7 +1912,8 @@ selinux_determine_inode_label(const struct task_security_struct *tsec,
const struct qstr *name, u16 tclass,
u32 *_new_isid)
{
@ -228,7 +228,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
if ((sbsec->flags & SE_SBINITIALIZED) &&
(sbsec->behavior == SECURITY_FS_USE_MNTPOINT)) {
@@ -1945,7 +1936,7 @@ static int may_create(struct inode *dir,
@@ -1953,7 +1944,7 @@ static int may_create(struct inode *dir,
int rc;
dsec = inode_security(dir);
@ -237,7 +237,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
sid = tsec->sid;
@@ -2094,7 +2085,7 @@ static int superblock_has_perm(const struct cred *cred,
@@ -2102,7 +2093,7 @@ static int superblock_has_perm(const struct cred *cred,
struct superblock_security_struct *sbsec;
u32 sid = cred_sid(cred);
@ -246,7 +246,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
return avc_has_perm(&selinux_state,
sid, sbsec->sid, SECCLASS_FILESYSTEM, perms, ad);
}
@@ -2725,11 +2716,6 @@ static int selinux_sb_alloc_security(struct super_block *sb)
@@ -2733,11 +2724,6 @@ static int selinux_sb_alloc_security(struct super_block *sb)
return superblock_alloc_security(sb);
}
@ -258,7 +258,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
static inline int match_prefix(char *prefix, int plen, char *option, int olen)
{
if (plen > olen)
@@ -2826,7 +2812,7 @@ static int selinux_sb_remount(struct super_block *sb, void *data)
@@ -2834,7 +2820,7 @@ static int selinux_sb_remount(struct super_block *sb, void *data)
int rc, i, *flags;
struct security_mnt_opts opts;
char *secdata, **mount_options;
@ -267,7 +267,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
if (!(sbsec->flags & SE_SBINITIALIZED))
return 0;
@@ -3020,7 +3006,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
@@ -3028,7 +3014,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
int rc;
char *context;
@ -276,7 +276,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
newsid = tsec->create_sid;
@@ -3265,7 +3251,7 @@ static int selinux_inode_setxattr(struct dentry *dentry, const char *name,
@@ -3273,7 +3259,7 @@ static int selinux_inode_setxattr(struct dentry *dentry, const char *name,
if (!selinux_state.initialized)
return (inode_owner_or_capable(inode) ? 0 : -EPERM);
@ -285,7 +285,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
if (!(sbsec->flags & SBLABEL_MNT))
return -EOPNOTSUPP;
@@ -6896,6 +6882,7 @@ struct lsm_blob_sizes selinux_blob_sizes = {
@@ -6904,6 +6890,7 @@ struct lsm_blob_sizes selinux_blob_sizes = {
.lbs_cred = sizeof(struct task_security_struct),
.lbs_file = sizeof(struct file_security_struct),
.lbs_inode = sizeof(struct inode_security_struct),
@ -293,7 +293,7 @@ index ef9d0507f5ef..f837dcea3ac6 100644
};
static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -6921,7 +6908,6 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -6929,7 +6916,6 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
LSM_HOOK_INIT(bprm_committed_creds, selinux_bprm_committed_creds),
LSM_HOOK_INIT(sb_alloc_security, selinux_sb_alloc_security),

View File

@ -226,10 +226,10 @@ index f6238c8489be..55dfdc0c428f 100644
void security_sk_clone(const struct sock *sk, struct sock *newsk)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index f837dcea3ac6..6022e1243d10 100644
index c59135f92089..ffb0a0730b9f 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -4479,7 +4479,7 @@ static int socket_sockcreate_sid(const struct task_security_struct *tsec,
@@ -4487,7 +4487,7 @@ static int socket_sockcreate_sid(const struct task_security_struct *tsec,
static int sock_has_perm(struct sock *sk, u32 perms)
{
@ -238,7 +238,7 @@ index f837dcea3ac6..6022e1243d10 100644
struct common_audit_data ad;
struct lsm_network_audit net = {0,};
@@ -4536,7 +4536,7 @@ static int selinux_socket_post_create(struct socket *sock, int family,
@@ -4544,7 +4544,7 @@ static int selinux_socket_post_create(struct socket *sock, int family,
isec->initialized = LABEL_INITIALIZED;
if (sock->sk) {
@ -247,7 +247,7 @@ index f837dcea3ac6..6022e1243d10 100644
sksec->sclass = sclass;
sksec->sid = sid;
/* Allows detection of the first association on this socket */
@@ -4552,8 +4552,8 @@ static int selinux_socket_post_create(struct socket *sock, int family,
@@ -4560,8 +4560,8 @@ static int selinux_socket_post_create(struct socket *sock, int family,
static int selinux_socket_socketpair(struct socket *socka,
struct socket *sockb)
{
@ -258,7 +258,7 @@ index f837dcea3ac6..6022e1243d10 100644
sksec_a->peer_sid = sksec_b->sid;
sksec_b->peer_sid = sksec_a->sid;
@@ -4568,7 +4568,7 @@ static int selinux_socket_socketpair(struct socket *socka,
@@ -4576,7 +4576,7 @@ static int selinux_socket_socketpair(struct socket *socka,
static int selinux_socket_bind(struct socket *sock, struct sockaddr *address, int addrlen)
{
struct sock *sk = sock->sk;
@ -267,7 +267,7 @@ index f837dcea3ac6..6022e1243d10 100644
u16 family;
int err;
@@ -4700,7 +4700,7 @@ static int selinux_socket_connect_helper(struct socket *sock,
@@ -4708,7 +4708,7 @@ static int selinux_socket_connect_helper(struct socket *sock,
struct sockaddr *address, int addrlen)
{
struct sock *sk = sock->sk;
@ -276,7 +276,7 @@ index f837dcea3ac6..6022e1243d10 100644
int err;
err = sock_has_perm(sk, SOCKET__CONNECT);
@@ -4871,9 +4871,9 @@ static int selinux_socket_unix_stream_connect(struct sock *sock,
@@ -4879,9 +4879,9 @@ static int selinux_socket_unix_stream_connect(struct sock *sock,
struct sock *other,
struct sock *newsk)
{
@ -289,7 +289,7 @@ index f837dcea3ac6..6022e1243d10 100644
struct common_audit_data ad;
struct lsm_network_audit net = {0,};
int err;
@@ -4905,8 +4905,8 @@ static int selinux_socket_unix_stream_connect(struct sock *sock,
@@ -4913,8 +4913,8 @@ static int selinux_socket_unix_stream_connect(struct sock *sock,
static int selinux_socket_unix_may_send(struct socket *sock,
struct socket *other)
{
@ -300,7 +300,7 @@ index f837dcea3ac6..6022e1243d10 100644
struct common_audit_data ad;
struct lsm_network_audit net = {0,};
@@ -4948,7 +4948,7 @@ static int selinux_sock_rcv_skb_compat(struct sock *sk, struct sk_buff *skb,
@@ -4956,7 +4956,7 @@ static int selinux_sock_rcv_skb_compat(struct sock *sk, struct sk_buff *skb,
u16 family)
{
int err = 0;
@ -309,7 +309,7 @@ index f837dcea3ac6..6022e1243d10 100644
u32 sk_sid = sksec->sid;
struct common_audit_data ad;
struct lsm_network_audit net = {0,};
@@ -4981,7 +4981,7 @@ static int selinux_sock_rcv_skb_compat(struct sock *sk, struct sk_buff *skb,
@@ -4989,7 +4989,7 @@ static int selinux_sock_rcv_skb_compat(struct sock *sk, struct sk_buff *skb,
static int selinux_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
{
int err;
@ -318,7 +318,7 @@ index f837dcea3ac6..6022e1243d10 100644
u16 family = sk->sk_family;
u32 sk_sid = sksec->sid;
struct common_audit_data ad;
@@ -5049,13 +5049,15 @@ static int selinux_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -5057,13 +5057,15 @@ static int selinux_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
return err;
}
@ -337,7 +337,7 @@ index f837dcea3ac6..6022e1243d10 100644
u32 peer_sid = SECSID_NULL;
if (sksec->sclass == SECCLASS_UNIX_STREAM_SOCKET ||
@@ -5115,34 +5117,27 @@ static int selinux_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *
@@ -5123,34 +5125,27 @@ static int selinux_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *
static int selinux_sk_alloc_security(struct sock *sk, int family, gfp_t priority)
{
@ -376,7 +376,7 @@ index f837dcea3ac6..6022e1243d10 100644
newsksec->sid = sksec->sid;
newsksec->peer_sid = sksec->peer_sid;
@@ -5156,7 +5151,7 @@ static void selinux_sk_getsecid(struct sock *sk, u32 *secid)
@@ -5164,7 +5159,7 @@ static void selinux_sk_getsecid(struct sock *sk, u32 *secid)
if (!sk)
*secid = SECINITSID_ANY_SOCKET;
else {
@ -385,7 +385,7 @@ index f837dcea3ac6..6022e1243d10 100644
*secid = sksec->sid;
}
@@ -5166,7 +5161,7 @@ static void selinux_sock_graft(struct sock *sk, struct socket *parent)
@@ -5174,7 +5169,7 @@ static void selinux_sock_graft(struct sock *sk, struct socket *parent)
{
struct inode_security_struct *isec =
inode_security_novalidate(SOCK_INODE(parent));
@ -394,7 +394,7 @@ index f837dcea3ac6..6022e1243d10 100644
if (sk->sk_family == PF_INET || sk->sk_family == PF_INET6 ||
sk->sk_family == PF_UNIX)
@@ -5181,7 +5176,7 @@ static void selinux_sock_graft(struct sock *sk, struct socket *parent)
@@ -5189,7 +5184,7 @@ static void selinux_sock_graft(struct sock *sk, struct socket *parent)
static int selinux_sctp_assoc_request(struct sctp_endpoint *ep,
struct sk_buff *skb)
{
@ -403,7 +403,7 @@ index f837dcea3ac6..6022e1243d10 100644
struct common_audit_data ad;
struct lsm_network_audit net = {0,};
u8 peerlbl_active;
@@ -5332,8 +5327,8 @@ static int selinux_sctp_bind_connect(struct sock *sk, int optname,
@@ -5340,8 +5335,8 @@ static int selinux_sctp_bind_connect(struct sock *sk, int optname,
static void selinux_sctp_sk_clone(struct sctp_endpoint *ep, struct sock *sk,
struct sock *newsk)
{
@ -414,7 +414,7 @@ index f837dcea3ac6..6022e1243d10 100644
/* If policy does not support SECCLASS_SCTP_SOCKET then call
* the non-sctp clone version.
@@ -5350,7 +5345,7 @@ static void selinux_sctp_sk_clone(struct sctp_endpoint *ep, struct sock *sk,
@@ -5358,7 +5353,7 @@ static void selinux_sctp_sk_clone(struct sctp_endpoint *ep, struct sock *sk,
static int selinux_inet_conn_request(struct sock *sk, struct sk_buff *skb,
struct request_sock *req)
{
@ -423,7 +423,7 @@ index f837dcea3ac6..6022e1243d10 100644
int err;
u16 family = req->rsk_ops->family;
u32 connsid;
@@ -5371,7 +5366,7 @@ static int selinux_inet_conn_request(struct sock *sk, struct sk_buff *skb,
@@ -5379,7 +5374,7 @@ static int selinux_inet_conn_request(struct sock *sk, struct sk_buff *skb,
static void selinux_inet_csk_clone(struct sock *newsk,
const struct request_sock *req)
{
@ -432,7 +432,7 @@ index f837dcea3ac6..6022e1243d10 100644
newsksec->sid = req->secid;
newsksec->peer_sid = req->peer_secid;
@@ -5388,7 +5383,7 @@ static void selinux_inet_csk_clone(struct sock *newsk,
@@ -5396,7 +5391,7 @@ static void selinux_inet_csk_clone(struct sock *newsk,
static void selinux_inet_conn_established(struct sock *sk, struct sk_buff *skb)
{
u16 family = sk->sk_family;
@ -441,7 +441,7 @@ index f837dcea3ac6..6022e1243d10 100644
/* handle mapped IPv4 packets arriving via IPv6 sockets */
if (family == PF_INET6 && skb->protocol == htons(ETH_P_IP))
@@ -5472,7 +5467,7 @@ static int selinux_tun_dev_attach_queue(void *security)
@@ -5480,7 +5475,7 @@ static int selinux_tun_dev_attach_queue(void *security)
static int selinux_tun_dev_attach(struct sock *sk, void *security)
{
struct tun_security_struct *tunsec = security;
@ -450,7 +450,7 @@ index f837dcea3ac6..6022e1243d10 100644
/* we don't currently perform any NetLabel based labeling here and it
* isn't clear that we would want to do so anyway; while we could apply
@@ -5515,7 +5510,7 @@ static int selinux_nlmsg_perm(struct sock *sk, struct sk_buff *skb)
@@ -5523,7 +5518,7 @@ static int selinux_nlmsg_perm(struct sock *sk, struct sk_buff *skb)
unsigned int data_len = skb->len;
unsigned char *data = skb->data;
struct nlmsghdr *nlh;
@ -459,7 +459,7 @@ index f837dcea3ac6..6022e1243d10 100644
u16 sclass = sksec->sclass;
u32 perm;
@@ -5674,7 +5669,7 @@ static unsigned int selinux_ip_output(struct sk_buff *skb,
@@ -5682,7 +5677,7 @@ static unsigned int selinux_ip_output(struct sk_buff *skb,
return NF_ACCEPT;
/* standard practice, label using the parent socket */
@ -468,7 +468,7 @@ index f837dcea3ac6..6022e1243d10 100644
sid = sksec->sid;
} else
sid = SECINITSID_KERNEL;
@@ -5713,7 +5708,7 @@ static unsigned int selinux_ip_postroute_compat(struct sk_buff *skb,
@@ -5721,7 +5716,7 @@ static unsigned int selinux_ip_postroute_compat(struct sk_buff *skb,
if (sk == NULL)
return NF_ACCEPT;
@ -477,7 +477,7 @@ index f837dcea3ac6..6022e1243d10 100644
ad.type = LSM_AUDIT_DATA_NET;
ad.u.net = &net;
@@ -5805,7 +5800,7 @@ static unsigned int selinux_ip_postroute(struct sk_buff *skb,
@@ -5813,7 +5808,7 @@ static unsigned int selinux_ip_postroute(struct sk_buff *skb,
u32 skb_sid;
struct sk_security_struct *sksec;
@ -486,7 +486,7 @@ index f837dcea3ac6..6022e1243d10 100644
if (selinux_skb_peerlbl_sid(skb, family, &skb_sid))
return NF_DROP;
/* At this point, if the returned skb peerlbl is SECSID_NULL
@@ -5834,7 +5829,7 @@ static unsigned int selinux_ip_postroute(struct sk_buff *skb,
@@ -5842,7 +5837,7 @@ static unsigned int selinux_ip_postroute(struct sk_buff *skb,
} else {
/* Locally generated packet, fetch the security label from the
* associated socket. */
@ -495,7 +495,7 @@ index f837dcea3ac6..6022e1243d10 100644
peer_sid = sksec->sid;
secmark_perm = PACKET__SEND;
}
@@ -6882,6 +6877,7 @@ struct lsm_blob_sizes selinux_blob_sizes = {
@@ -6890,6 +6885,7 @@ struct lsm_blob_sizes selinux_blob_sizes = {
.lbs_cred = sizeof(struct task_security_struct),
.lbs_file = sizeof(struct file_security_struct),
.lbs_inode = sizeof(struct inode_security_struct),

View File

@ -202,10 +202,10 @@ index 55dfdc0c428f..c94b0aa70147 100644
int security_sem_associate(struct kern_ipc_perm *sma, int semflg)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 6022e1243d10..7e290cdc3b57 100644
index ffb0a0730b9f..f8b980480b6d 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -5892,51 +5892,22 @@ static int selinux_netlink_send(struct sock *sk, struct sk_buff *skb)
@@ -5900,51 +5900,22 @@ static int selinux_netlink_send(struct sock *sk, struct sk_buff *skb)
return selinux_nlmsg_perm(sk, skb);
}
@ -259,7 +259,7 @@ index 6022e1243d10..7e290cdc3b57 100644
static int ipc_has_perm(struct kern_ipc_perm *ipc_perms,
u32 perms)
{
@@ -5944,7 +5915,7 @@ static int ipc_has_perm(struct kern_ipc_perm *ipc_perms,
@@ -5952,7 +5923,7 @@ static int ipc_has_perm(struct kern_ipc_perm *ipc_perms,
struct common_audit_data ad;
u32 sid = current_sid();
@ -268,7 +268,7 @@ index 6022e1243d10..7e290cdc3b57 100644
ad.type = LSM_AUDIT_DATA_IPC;
ad.u.ipc_id = ipc_perms->key;
@@ -5958,11 +5929,6 @@ static int selinux_msg_msg_alloc_security(struct msg_msg *msg)
@@ -5966,11 +5937,6 @@ static int selinux_msg_msg_alloc_security(struct msg_msg *msg)
return msg_msg_alloc_security(msg);
}
@ -280,7 +280,7 @@ index 6022e1243d10..7e290cdc3b57 100644
/* message queue security operations */
static int selinux_msg_queue_alloc_security(struct kern_ipc_perm *msq)
{
@@ -5971,11 +5937,8 @@ static int selinux_msg_queue_alloc_security(struct kern_ipc_perm *msq)
@@ -5979,11 +5945,8 @@ static int selinux_msg_queue_alloc_security(struct kern_ipc_perm *msq)
u32 sid = current_sid();
int rc;
@ -294,7 +294,7 @@ index 6022e1243d10..7e290cdc3b57 100644
ad.type = LSM_AUDIT_DATA_IPC;
ad.u.ipc_id = msq->key;
@@ -5983,16 +5946,7 @@ static int selinux_msg_queue_alloc_security(struct kern_ipc_perm *msq)
@@ -5991,16 +5954,7 @@ static int selinux_msg_queue_alloc_security(struct kern_ipc_perm *msq)
rc = avc_has_perm(&selinux_state,
sid, isec->sid, SECCLASS_MSGQ,
MSGQ__CREATE, &ad);
@ -312,7 +312,7 @@ index 6022e1243d10..7e290cdc3b57 100644
}
static int selinux_msg_queue_associate(struct kern_ipc_perm *msq, int msqflg)
@@ -6001,7 +5955,7 @@ static int selinux_msg_queue_associate(struct kern_ipc_perm *msq, int msqflg)
@@ -6009,7 +5963,7 @@ static int selinux_msg_queue_associate(struct kern_ipc_perm *msq, int msqflg)
struct common_audit_data ad;
u32 sid = current_sid();
@ -321,7 +321,7 @@ index 6022e1243d10..7e290cdc3b57 100644
ad.type = LSM_AUDIT_DATA_IPC;
ad.u.ipc_id = msq->key;
@@ -6050,8 +6004,8 @@ static int selinux_msg_queue_msgsnd(struct kern_ipc_perm *msq, struct msg_msg *m
@@ -6058,8 +6012,8 @@ static int selinux_msg_queue_msgsnd(struct kern_ipc_perm *msq, struct msg_msg *m
u32 sid = current_sid();
int rc;
@ -332,7 +332,7 @@ index 6022e1243d10..7e290cdc3b57 100644
/*
* First time through, need to assign label to the message
@@ -6098,8 +6052,8 @@ static int selinux_msg_queue_msgrcv(struct kern_ipc_perm *msq, struct msg_msg *m
@@ -6106,8 +6060,8 @@ static int selinux_msg_queue_msgrcv(struct kern_ipc_perm *msq, struct msg_msg *m
u32 sid = task_sid(target);
int rc;
@ -343,7 +343,7 @@ index 6022e1243d10..7e290cdc3b57 100644
ad.type = LSM_AUDIT_DATA_IPC;
ad.u.ipc_id = msq->key;
@@ -6122,11 +6076,8 @@ static int selinux_shm_alloc_security(struct kern_ipc_perm *shp)
@@ -6130,11 +6084,8 @@ static int selinux_shm_alloc_security(struct kern_ipc_perm *shp)
u32 sid = current_sid();
int rc;
@ -357,7 +357,7 @@ index 6022e1243d10..7e290cdc3b57 100644
ad.type = LSM_AUDIT_DATA_IPC;
ad.u.ipc_id = shp->key;
@@ -6134,16 +6085,7 @@ static int selinux_shm_alloc_security(struct kern_ipc_perm *shp)
@@ -6142,16 +6093,7 @@ static int selinux_shm_alloc_security(struct kern_ipc_perm *shp)
rc = avc_has_perm(&selinux_state,
sid, isec->sid, SECCLASS_SHM,
SHM__CREATE, &ad);
@ -375,7 +375,7 @@ index 6022e1243d10..7e290cdc3b57 100644
}
static int selinux_shm_associate(struct kern_ipc_perm *shp, int shmflg)
@@ -6152,7 +6094,7 @@ static int selinux_shm_associate(struct kern_ipc_perm *shp, int shmflg)
@@ -6160,7 +6102,7 @@ static int selinux_shm_associate(struct kern_ipc_perm *shp, int shmflg)
struct common_audit_data ad;
u32 sid = current_sid();
@ -384,7 +384,7 @@ index 6022e1243d10..7e290cdc3b57 100644
ad.type = LSM_AUDIT_DATA_IPC;
ad.u.ipc_id = shp->key;
@@ -6219,11 +6161,8 @@ static int selinux_sem_alloc_security(struct kern_ipc_perm *sma)
@@ -6227,11 +6169,8 @@ static int selinux_sem_alloc_security(struct kern_ipc_perm *sma)
u32 sid = current_sid();
int rc;
@ -398,7 +398,7 @@ index 6022e1243d10..7e290cdc3b57 100644
ad.type = LSM_AUDIT_DATA_IPC;
ad.u.ipc_id = sma->key;
@@ -6231,16 +6170,7 @@ static int selinux_sem_alloc_security(struct kern_ipc_perm *sma)
@@ -6239,16 +6178,7 @@ static int selinux_sem_alloc_security(struct kern_ipc_perm *sma)
rc = avc_has_perm(&selinux_state,
sid, isec->sid, SECCLASS_SEM,
SEM__CREATE, &ad);
@ -416,7 +416,7 @@ index 6022e1243d10..7e290cdc3b57 100644
}
static int selinux_sem_associate(struct kern_ipc_perm *sma, int semflg)
@@ -6249,7 +6179,7 @@ static int selinux_sem_associate(struct kern_ipc_perm *sma, int semflg)
@@ -6257,7 +6187,7 @@ static int selinux_sem_associate(struct kern_ipc_perm *sma, int semflg)
struct common_audit_data ad;
u32 sid = current_sid();
@ -425,7 +425,7 @@ index 6022e1243d10..7e290cdc3b57 100644
ad.type = LSM_AUDIT_DATA_IPC;
ad.u.ipc_id = sma->key;
@@ -6335,7 +6265,7 @@ static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag)
@@ -6343,7 +6273,7 @@ static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag)
static void selinux_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid)
{
@ -434,7 +434,7 @@ index 6022e1243d10..7e290cdc3b57 100644
*secid = isec->sid;
}
@@ -6877,6 +6807,8 @@ struct lsm_blob_sizes selinux_blob_sizes = {
@@ -6885,6 +6815,8 @@ struct lsm_blob_sizes selinux_blob_sizes = {
.lbs_cred = sizeof(struct task_security_struct),
.lbs_file = sizeof(struct file_security_struct),
.lbs_inode = sizeof(struct inode_security_struct),
@ -443,7 +443,7 @@ index 6022e1243d10..7e290cdc3b57 100644
.lbs_sock = sizeof(struct sk_security_struct),
.lbs_superblock = sizeof(struct superblock_security_struct),
};
@@ -6988,24 +6920,20 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -6996,24 +6928,20 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
LSM_HOOK_INIT(ipc_getsecid, selinux_ipc_getsecid),
LSM_HOOK_INIT(msg_msg_alloc_security, selinux_msg_msg_alloc_security),

View File

@ -109,10 +109,10 @@ index c94b0aa70147..ae6ec99807ab 100644
int security_key_permission(key_ref_t key_ref,
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 7e290cdc3b57..8d752d107557 100644
index f8b980480b6d..93c14e0dd876 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -6534,11 +6534,7 @@ static int selinux_key_alloc(struct key *k, const struct cred *cred,
@@ -6542,11 +6542,7 @@ static int selinux_key_alloc(struct key *k, const struct cred *cred,
unsigned long flags)
{
const struct task_security_struct *tsec;
@ -125,7 +125,7 @@ index 7e290cdc3b57..8d752d107557 100644
tsec = selinux_cred(cred);
if (tsec->keycreate_sid)
@@ -6546,18 +6542,9 @@ static int selinux_key_alloc(struct key *k, const struct cred *cred,
@@ -6554,18 +6550,9 @@ static int selinux_key_alloc(struct key *k, const struct cred *cred,
else
ksec->sid = tsec->sid;
@ -144,7 +144,7 @@ index 7e290cdc3b57..8d752d107557 100644
static int selinux_key_permission(key_ref_t key_ref,
const struct cred *cred,
unsigned perm)
@@ -6575,7 +6562,7 @@ static int selinux_key_permission(key_ref_t key_ref,
@@ -6583,7 +6570,7 @@ static int selinux_key_permission(key_ref_t key_ref,
sid = cred_sid(cred);
key = key_ref_to_ptr(key_ref);
@ -153,7 +153,7 @@ index 7e290cdc3b57..8d752d107557 100644
return avc_has_perm(&selinux_state,
sid, ksec->sid, SECCLASS_KEY, perm, NULL);
@@ -6583,7 +6570,7 @@ static int selinux_key_permission(key_ref_t key_ref,
@@ -6591,7 +6578,7 @@ static int selinux_key_permission(key_ref_t key_ref,
static int selinux_key_getsecurity(struct key *key, char **_buffer)
{
@ -162,7 +162,7 @@ index 7e290cdc3b57..8d752d107557 100644
char *context = NULL;
unsigned len;
int rc;
@@ -6808,6 +6795,9 @@ struct lsm_blob_sizes selinux_blob_sizes = {
@@ -6816,6 +6803,9 @@ struct lsm_blob_sizes selinux_blob_sizes = {
.lbs_file = sizeof(struct file_security_struct),
.lbs_inode = sizeof(struct inode_security_struct),
.lbs_ipc = sizeof(struct ipc_security_struct),
@ -172,7 +172,7 @@ index 7e290cdc3b57..8d752d107557 100644
.lbs_msg_msg = sizeof(struct msg_security_struct),
.lbs_sock = sizeof(struct sk_security_struct),
.lbs_superblock = sizeof(struct superblock_security_struct),
@@ -7019,7 +7009,6 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
@@ -7027,7 +7017,6 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
#ifdef CONFIG_KEYS
LSM_HOOK_INIT(key_alloc, selinux_key_alloc),

View File

@ -376,10 +376,10 @@ index aeec03f49b02..d642befd1e0c 100644
/**
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 8d752d107557..f4db0d210fa4 100644
index 93c14e0dd876..441aacf17a9a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -7035,7 +7035,8 @@ static __init int selinux_init(void)
@@ -7043,7 +7043,8 @@ static __init int selinux_init(void)
{
static int finish;

View File

@ -22,7 +22,7 @@ Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
5 files changed, 124 insertions(+), 92 deletions(-)
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 40f5b4dcb927..41b0fb3de711 100644
index 521f6c2091ad..feea936c5619 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1503,15 +1503,15 @@ static int setup_security_options(struct btrfs_fs_info *fs_info,
@ -47,7 +47,7 @@ index 40f5b4dcb927..41b0fb3de711 100644
security_free_mnt_opts(sec_opts);
}
diff --git a/include/linux/security.h b/include/linux/security.h
index 96eb8d4cf764..43f221c253f2 100644
index 3c854e63d41d..a29decd3f9d1 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -185,34 +185,55 @@ static inline const char *kernel_load_data_id_str(enum kernel_load_data_id id)
@ -144,7 +144,7 @@ index d642befd1e0c..468695df6559 100644
EXPORT_SYMBOL(security_sb_set_mnt_opts);
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index f4db0d210fa4..4d8a213b21c4 100644
index 441aacf17a9a..78dfe2fdd7ff 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -590,21 +590,23 @@ static int selinux_get_mnt_opts(const struct super_block *sb,
@ -339,7 +339,7 @@ index f4db0d210fa4..4d8a213b21c4 100644
if (has_comma)
seq_putc(m, '\"');
}
@@ -2835,10 +2836,10 @@ static int selinux_sb_remount(struct super_block *sb, void *data)
@@ -2843,10 +2844,10 @@ static int selinux_sb_remount(struct super_block *sb, void *data)
if (rc)
goto out_free_secdata;

View File

@ -165,7 +165,7 @@ index 28d3ebffca1b..f259cb09958f 100644
#endif /* CONFIG_AUDIT */
diff --git a/include/linux/security.h b/include/linux/security.h
index 43f221c253f2..615f136a32f2 100644
index a29decd3f9d1..2ff982167d57 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -73,6 +73,25 @@ enum lsm_event {
@ -265,10 +265,10 @@ index 72d6435fc16c..51dacbb88886 100644
{
return -ENOSYS;
diff --git a/net/core/filter.c b/net/core/filter.c
index 557bd5cc8f94..f45b9aee82bf 100644
index 01561268d216..a562dc379f15 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -4291,7 +4291,7 @@ static int bpf_ipv4_fib_lookup(struct net *net, struct bpf_fib_lookup *params,
@@ -4288,7 +4288,7 @@ static int bpf_ipv4_fib_lookup(struct net *net, struct bpf_fib_lookup *params,
err = fib_table_lookup(tb, &fl4, &res, FIB_LOOKUP_NOREF);
} else {
fl4.flowi4_mark = 0;
@ -277,7 +277,7 @@ index 557bd5cc8f94..f45b9aee82bf 100644
fl4.flowi4_tun_key.tun_id = 0;
fl4.flowi4_uid = sock_net_uid(net, NULL);
@@ -4402,7 +4402,7 @@ static int bpf_ipv6_fib_lookup(struct net *net, struct bpf_fib_lookup *params,
@@ -4399,7 +4399,7 @@ static int bpf_ipv6_fib_lookup(struct net *net, struct bpf_fib_lookup *params,
f6i = ipv6_stub->fib6_table_lookup(net, tb, oif, &fl6, strict);
} else {
fl6.flowi6_mark = 0;
@ -287,10 +287,10 @@ index 557bd5cc8f94..f45b9aee82bf 100644
fl6.flowi6_uid = sock_net_uid(net, NULL);
diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c
index 5535b722f66d..cc7e8c1072bb 100644
index 6a1b52b34e20..be8a88084508 100644
--- a/net/ipv4/cipso_ipv4.c
+++ b/net/ipv4/cipso_ipv4.c
@@ -1483,7 +1483,7 @@ static int cipso_v4_gentag_loc(const struct cipso_v4_doi *doi_def,
@@ -1474,7 +1474,7 @@ static int cipso_v4_gentag_loc(const struct cipso_v4_doi *doi_def,
buffer[0] = CIPSO_V4_TAG_LOCAL;
buffer[1] = CIPSO_V4_TAG_LOC_BLEN;
@ -299,7 +299,7 @@ index 5535b722f66d..cc7e8c1072bb 100644
return CIPSO_V4_TAG_LOC_BLEN;
}
@@ -1503,7 +1503,7 @@ static int cipso_v4_parsetag_loc(const struct cipso_v4_doi *doi_def,
@@ -1494,7 +1494,7 @@ static int cipso_v4_parsetag_loc(const struct cipso_v4_doi *doi_def,
const unsigned char *tag,
struct netlbl_lsm_secattr *secattr)
{
@ -331,7 +331,7 @@ index 15fe2120b310..551bf3be961b 100644
/**
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c
index c92894c3e40a..780e4b932eb8 100644
index 0067f472367b..86c3c1611641 100644
--- a/net/netlabel/netlabel_unlabeled.c
+++ b/net/netlabel/netlabel_unlabeled.c
@@ -80,7 +80,7 @@ struct netlbl_unlhsh_tbl {
@ -452,7 +452,7 @@ index c92894c3e40a..780e4b932eb8 100644
}
ret_val = security_secid_to_secctx(secid, &secctx, &secctx_len);
@@ -1544,7 +1547,7 @@ int __init netlbl_unlabel_defconf(void)
@@ -1551,7 +1554,7 @@ int __init netlbl_unlabel_defconf(void)
/* Only the kernel is allowed to call this function and the only time
* it is called is at bootup before the audit subsystem is reporting
* messages so don't worry to much about these values. */
@ -490,7 +490,7 @@ index 4a397cde1a48..782ee194fdbd 100644
audit_info->sessionid = audit_get_sessionid(current);
}
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 939f3adf075a..6a12efb4cbbe 100644
index e9aea82f370d..df6bed189d45 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1079,7 +1079,8 @@ static int xfrm_policy_match(const struct xfrm_policy *pol,
@ -522,10 +522,10 @@ index 939f3adf075a..6a12efb4cbbe 100644
return err;
}
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index a649d7c2f48c..f513c6d95592 100644
index 44acc724122b..c34c87049536 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1032,7 +1032,8 @@ xfrm_state_find(const xfrm_address_t *daddr, const xfrm_address_t *saddr,
@@ -1031,7 +1031,8 @@ xfrm_state_find(const xfrm_address_t *daddr, const xfrm_address_t *saddr,
memcpy(&x->mark, &pol->mark, sizeof(x->mark));
x->if_id = if_id;
@ -833,10 +833,10 @@ index 468695df6559..26511761d824 100644
}
#endif /* CONFIG_AUDIT */
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 4d8a213b21c4..2dfcf74a10bd 100644
index 78dfe2fdd7ff..e3317111ac9b 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -3476,15 +3476,15 @@ static int selinux_inode_listsecurity(struct inode *inode, char *buffer, size_t
@@ -3484,15 +3484,15 @@ static int selinux_inode_listsecurity(struct inode *inode, char *buffer, size_t
return len;
}
@ -855,7 +855,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
struct task_security_struct *tsec;
struct cred *new_creds = *new;
@@ -3496,8 +3496,8 @@ static int selinux_inode_copy_up(struct dentry *src, struct cred **new)
@@ -3504,8 +3504,8 @@ static int selinux_inode_copy_up(struct dentry *src, struct cred **new)
tsec = selinux_cred(new_creds);
/* Get label from overlay inode and set it in create_sid */
@ -866,7 +866,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
*new = new_creds;
return 0;
}
@@ -3914,28 +3914,28 @@ static void selinux_cred_transfer(struct cred *new, const struct cred *old)
@@ -3922,28 +3922,28 @@ static void selinux_cred_transfer(struct cred *new, const struct cred *old)
*tsec = *old_tsec;
}
@ -900,7 +900,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
tsec->create_sid = 0;
tsec->keycreate_sid = 0;
tsec->sockcreate_sid = 0;
@@ -4061,9 +4061,9 @@ static int selinux_task_getsid(struct task_struct *p)
@@ -4069,9 +4069,9 @@ static int selinux_task_getsid(struct task_struct *p)
PROCESS__GETSESSION, NULL);
}
@ -912,7 +912,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
}
static int selinux_task_setnice(struct task_struct *p, int nice)
@@ -5088,7 +5088,9 @@ static int selinux_socket_getpeersec_stream(struct socket *sock,
@@ -5096,7 +5096,9 @@ static int selinux_socket_getpeersec_stream(struct socket *sock,
return err;
}
@ -923,7 +923,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
{
u32 peer_secid = SECSID_NULL;
u16 family;
@@ -5110,7 +5112,7 @@ static int selinux_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *
@@ -5118,7 +5120,7 @@ static int selinux_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *
selinux_skb_peerlbl_sid(skb, family, &peer_secid);
out:
@ -932,7 +932,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
if (peer_secid == SECSID_NULL)
return -EINVAL;
return 0;
@@ -5147,14 +5149,14 @@ static void selinux_sk_clone_security(const struct sock *sk, struct sock *newsk)
@@ -5155,14 +5157,14 @@ static void selinux_sk_clone_security(const struct sock *sk, struct sock *newsk)
selinux_netlbl_sk_security_reset(newsksec);
}
@ -950,7 +950,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
}
}
@@ -5393,7 +5395,7 @@ static void selinux_inet_conn_established(struct sock *sk, struct sk_buff *skb)
@@ -5401,7 +5403,7 @@ static void selinux_inet_conn_established(struct sock *sk, struct sk_buff *skb)
selinux_skb_peerlbl_sid(skb, family, &sksec->peer_sid);
}
@ -959,7 +959,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
{
const struct task_security_struct *__tsec;
u32 tsid;
@@ -5402,8 +5404,8 @@ static int selinux_secmark_relabel_packet(u32 sid)
@@ -5410,8 +5412,8 @@ static int selinux_secmark_relabel_packet(u32 sid)
tsid = __tsec->sid;
return avc_has_perm(&selinux_state,
@ -970,7 +970,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
}
static void selinux_secmark_refcount_inc(void)
@@ -5419,7 +5421,7 @@ static void selinux_secmark_refcount_dec(void)
@@ -5427,7 +5429,7 @@ static void selinux_secmark_refcount_dec(void)
static void selinux_req_classify_flow(const struct request_sock *req,
struct flowi *fl)
{
@ -979,7 +979,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
}
static int selinux_tun_dev_alloc_security(void **security)
@@ -6264,10 +6266,11 @@ static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag)
@@ -6272,10 +6274,11 @@ static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag)
return ipc_has_perm(ipcp, av);
}
@ -993,7 +993,7 @@ index 4d8a213b21c4..2dfcf74a10bd 100644
}
static void selinux_d_instantiate(struct dentry *dentry, struct inode *inode)
@@ -6474,16 +6477,18 @@ static int selinux_ismaclabel(const char *name)
@@ -6482,16 +6485,18 @@ static int selinux_ismaclabel(const char *name)
return (strcmp(name, XATTR_SELINUX_SUFFIX) == 0);
}
@ -1438,7 +1438,7 @@ index e162d990b3a8..a1f6af076fae 100644
}
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
index 09fee3e8df9c..aaa71df6d055 100644
index 5f415224a6b3..d3ff7ef25edc 100644
--- a/security/smack/smackfs.c
+++ b/security/smack/smackfs.c
@@ -197,7 +197,7 @@ static void smk_netlabel_audit_set(struct netlbl_audit *nap)
@ -1474,7 +1474,7 @@ index 09fee3e8df9c..aaa71df6d055 100644
if (rc == 0)
rc = count;
@@ -2974,7 +2978,9 @@ static int __init smk_preset_netlabel(struct smack_known *skp)
@@ -2991,7 +2995,9 @@ static int __init smk_preset_netlabel(struct smack_known *skp)
{
skp->smk_netlabel.domain = skp->smk_known;
skp->smk_netlabel.flags =

View File

@ -68,7 +68,7 @@ index 1dc351d8548b..09ec6ff305b4 100644
extern int set_create_files_as(struct cred *, struct inode *);
extern void __init cred_init(void);
diff --git a/include/linux/security.h b/include/linux/security.h
index 615f136a32f2..a30887c379db 100644
index 2ff982167d57..b24bb0240bbd 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -355,7 +355,7 @@ int security_inode_killpriv(struct dentry *dentry);
@ -645,7 +645,7 @@ index 82f341e84fae..d336d403cb88 100644
return;
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index 0b89609a6e9d..e0746858bc96 100644
index 15c9fbcd32f2..157425412d1e 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -333,8 +333,12 @@ static int ctnetlink_dump_secctx(struct sk_buff *skb, const struct nf_conn *ct)
@ -677,7 +677,7 @@ index 0b89609a6e9d..e0746858bc96 100644
return 0;
diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
index 4c94f3ba2ae4..9ebd932f15e0 100644
index da0c9fa381d2..b9dd474c25de 100644
--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
@@ -171,8 +171,12 @@ static void ct_show_secctx(struct seq_file *s, const struct nf_conn *ct)
@ -720,11 +720,11 @@ index f81a3ce0fe48..e91fabdbe9e0 100644
read_unlock_bh(&skb->sk->sk_callback_lock);
#endif
diff --git a/net/netfilter/xt_SECMARK.c b/net/netfilter/xt_SECMARK.c
index 4ad5fe27e08b..afc61be750ef 100644
index 097534dbc622..5e921c451084 100644
--- a/net/netfilter/xt_SECMARK.c
+++ b/net/netfilter/xt_SECMARK.c
@@ -52,12 +52,15 @@ secmark_tg(struct sk_buff *skb, const struct xt_action_param *par)
static int checkentry_lsm(struct xt_secmark_target_info *info)
@@ -51,12 +51,15 @@ secmark_tg(struct sk_buff *skb, const struct xt_secmark_target_info_v1 *info)
static int checkentry_lsm(struct xt_secmark_target_info_v1 *info)
{
int err;
+ struct secids secid;
@ -740,7 +740,7 @@ index 4ad5fe27e08b..afc61be750ef 100644
if (err) {
if (err == -EINVAL)
pr_info_ratelimited("invalid security context \'%s\'\n",
@@ -71,7 +74,7 @@ static int checkentry_lsm(struct xt_secmark_target_info *info)
@@ -70,7 +73,7 @@ static int checkentry_lsm(struct xt_secmark_target_info_v1 *info)
return -ENOENT;
}
@ -763,7 +763,7 @@ index 551bf3be961b..1909995037c1 100644
/**
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c
index 780e4b932eb8..c14bdb2ab5e5 100644
index 86c3c1611641..716b7b2a260c 100644
--- a/net/netlabel/netlabel_unlabeled.c
+++ b/net/netlabel/netlabel_unlabeled.c
@@ -379,7 +379,7 @@ int netlbl_unlhsh_add(struct net *net,
@ -888,7 +888,7 @@ index 780e4b932eb8..c14bdb2ab5e5 100644
if (ret_val != 0)
goto list_cb_failure;
ret_val = nla_put(cb_arg->skb,
@@ -1547,7 +1544,7 @@ int __init netlbl_unlabel_defconf(void)
@@ -1554,7 +1551,7 @@ int __init netlbl_unlabel_defconf(void)
/* Only the kernel is allowed to call this function and the only time
* it is called is at bootup before the audit subsystem is reporting
* messages so don't worry to much about these values. */
@ -962,7 +962,7 @@ index 2020306468af..bd6c63d6a5bc 100644
#else
static inline void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb)
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 6a12efb4cbbe..51cbf842851f 100644
index df6bed189d45..ecc56d6db80e 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1080,7 +1080,7 @@ static int xfrm_policy_match(const struct xfrm_policy *pol,
@ -993,10 +993,10 @@ index 6a12efb4cbbe..51cbf842851f 100644
return err;
}
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index f513c6d95592..cb8cc3900250 100644
index c34c87049536..4adad4bf7cc4 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1033,7 +1033,7 @@ xfrm_state_find(const xfrm_address_t *daddr, const xfrm_address_t *saddr,
@@ -1032,7 +1032,7 @@ xfrm_state_find(const xfrm_address_t *daddr, const xfrm_address_t *saddr,
x->if_id = if_id;
error = security_xfrm_state_alloc_acquire(x, pol->security,

View File

@ -48,7 +48,7 @@ index f259cb09958f..687159d80911 100644
struct sk_buff *skb,
struct secids *secid);
diff --git a/include/linux/security.h b/include/linux/security.h
index a30887c379db..fd9fbd3ee81f 100644
index b24bb0240bbd..a17d7d7517b9 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -1403,8 +1403,10 @@ static inline int security_sock_rcv_skb(struct sock *sk,
@ -141,10 +141,10 @@ index 4158d6d88d67..65e01da41ab9 100644
int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb,
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 2dfcf74a10bd..4a1bb5dbf443 100644
index e3317111ac9b..49aa28c0cd07 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -5050,10 +5050,8 @@ static int selinux_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -5058,10 +5058,8 @@ static int selinux_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
return err;
}
@ -157,7 +157,7 @@ index 2dfcf74a10bd..4a1bb5dbf443 100644
{
int err = 0;
char *scontext;
@@ -5074,18 +5072,12 @@ static int selinux_socket_getpeersec_stream(struct socket *sock,
@@ -5082,18 +5080,12 @@ static int selinux_socket_getpeersec_stream(struct socket *sock,
return err;
if (scontext_len > len) {

View File

@ -33,7 +33,7 @@ the security modules.
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
---
include/linux/lsm_hooks.h | 8 +
include/linux/security.h | 46 ++++-
include/linux/security.h | 34 +++-
include/net/netlabel.h | 8 +
include/uapi/linux/prctl.h | 4 +
kernel/fork.c | 3 +
@ -48,7 +48,7 @@ Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
security/selinux/netlabel.c | 8 +
security/smack/smack_lsm.c | 66 +++++--
security/stacking.c | 119 ++++++++++++
16 files changed, 635 insertions(+), 86 deletions(-)
16 files changed, 626 insertions(+), 83 deletions(-)
create mode 100644 security/stacking.c
diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
@ -76,7 +76,7 @@ index 687159d80911..1b27b8bcc779 100644
+
#endif /* ! __LINUX_LSM_HOOKS_H */
diff --git a/include/linux/security.h b/include/linux/security.h
index fd9fbd3ee81f..aed6376768bb 100644
index a17d7d7517b9..ad146916f19b 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -53,6 +53,7 @@ struct msg_msg;
@ -138,34 +138,7 @@ index fd9fbd3ee81f..aed6376768bb 100644
struct sock;
struct sockaddr;
struct socket;
@@ -828,17 +857,23 @@ static inline int security_inode_killpriv(struct dentry *dentry)
return cap_inode_killpriv(dentry);
}
-static inline int security_inode_getsecurity(struct inode *inode, const char *name, void **buffer, bool alloc)
+static inline int security_inode_getsecurity(struct inode *inode,
+ const char *name, void **buffer,
+ bool alloc)
{
return -EOPNOTSUPP;
}
-static inline int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags)
+static inline int security_inode_setsecurity(struct inode *inode,
+ const char *name,
+ const void *value, size_t size,
+ int flags)
{
return -EOPNOTSUPP;
}
-static inline int security_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size)
+static inline int security_inode_listsecurity(struct inode *inode, char *buffer,
+ size_t buffer_size)
{
return 0;
}
@@ -1080,7 +1115,8 @@ static inline int security_task_prctl(int option, unsigned long arg2,
@@ -1080,7 +1109,8 @@ static inline int security_task_prctl(int option, unsigned long arg2,
return cap_task_prctl(option, arg2, arg3, arg4, arg5);
}
@ -215,10 +188,10 @@ index b17201edfa09..a10d54910652 100644
+
#endif /* _LINUX_PRCTL_H */
diff --git a/kernel/fork.c b/kernel/fork.c
index 3ed29bf8eb29..f670b4bd93f2 100644
index cf535b9d5db7..3651cf9144b5 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1881,6 +1881,9 @@ static __latent_entropy struct task_struct *copy_process(
@@ -1877,6 +1877,9 @@ static __latent_entropy struct task_struct *copy_process(
p->sequential_io = 0;
p->sequential_io_avg = 0;
#endif
@ -229,7 +202,7 @@ index 3ed29bf8eb29..f670b4bd93f2 100644
/* Perform scheduler related setup. Assign this task to a CPU. */
retval = sched_fork(clone_flags, p);
diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c
index cc7e8c1072bb..386523eadbb3 100644
index be8a88084508..6694d30cd470 100644
--- a/net/ipv4/cipso_ipv4.c
+++ b/net/ipv4/cipso_ipv4.c
@@ -43,6 +43,7 @@
@ -269,7 +242,7 @@ index cc7e8c1072bb..386523eadbb3 100644
/*
* Helper Functions
@@ -1483,7 +1496,7 @@ static int cipso_v4_gentag_loc(const struct cipso_v4_doi *doi_def,
@@ -1474,7 +1487,7 @@ static int cipso_v4_gentag_loc(const struct cipso_v4_doi *doi_def,
buffer[0] = CIPSO_V4_TAG_LOCAL;
buffer[1] = CIPSO_V4_TAG_LOC_BLEN;
@ -278,7 +251,7 @@ index cc7e8c1072bb..386523eadbb3 100644
return CIPSO_V4_TAG_LOC_BLEN;
}
@@ -1503,7 +1516,7 @@ static int cipso_v4_parsetag_loc(const struct cipso_v4_doi *doi_def,
@@ -1494,7 +1507,7 @@ static int cipso_v4_parsetag_loc(const struct cipso_v4_doi *doi_def,
const unsigned char *tag,
struct netlbl_lsm_secattr *secattr)
{
@ -288,10 +261,10 @@ index cc7e8c1072bb..386523eadbb3 100644
return 0;
diff --git a/net/netfilter/xt_SECMARK.c b/net/netfilter/xt_SECMARK.c
index afc61be750ef..6af1f4fc837d 100644
index 5e921c451084..08ad57b503b8 100644
--- a/net/netfilter/xt_SECMARK.c
+++ b/net/netfilter/xt_SECMARK.c
@@ -59,7 +59,7 @@ static int checkentry_lsm(struct xt_secmark_target_info *info)
@@ -58,7 +58,7 @@ static int checkentry_lsm(struct xt_secmark_target_info_v1 *info)
err = security_secctx_to_secid(info->secctx, strlen(info->secctx),
&secid);
@ -953,10 +926,10 @@ index 65e01da41ab9..96e795600adb 100644
EXPORT_SYMBOL(security_secmark_relabel_packet);
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 4a1bb5dbf443..35f8a839de72 100644
index 49aa28c0cd07..666f2b631614 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -3240,13 +3240,12 @@ static int selinux_inode_setxattr(struct dentry *dentry, const char *name,
@@ -3248,13 +3248,12 @@ static int selinux_inode_setxattr(struct dentry *dentry, const char *name,
int rc = 0;
if (strcmp(name, XATTR_NAME_SELINUX)) {

View File

@ -49,7 +49,7 @@ index 1b27b8bcc779..381dae9c3ec5 100644
struct flowi *fl);
int (*tun_dev_alloc_security)(void **security);
diff --git a/include/linux/security.h b/include/linux/security.h
index aed6376768bb..2a95fcfc4b14 100644
index ad146916f19b..bb4b8ac9e1b2 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -83,15 +83,9 @@ enum lsm_event {
@ -68,7 +68,7 @@ index aed6376768bb..2a95fcfc4b14 100644
u32 flags;
};
@@ -1321,8 +1315,9 @@ void security_inet_csk_clone(struct sock *newsk,
@@ -1315,8 +1309,9 @@ void security_inet_csk_clone(struct sock *newsk,
void security_inet_conn_established(struct sock *sk,
struct sk_buff *skb);
int security_secmark_relabel_packet(struct secids *secid);
@ -80,7 +80,7 @@ index aed6376768bb..2a95fcfc4b14 100644
int security_tun_dev_alloc_security(void **security);
void security_tun_dev_free_security(void *security);
int security_tun_dev_create(void);
@@ -1500,14 +1495,19 @@ static inline int security_secmark_relabel_packet(struct secids *secid)
@@ -1494,14 +1489,19 @@ static inline int security_secmark_relabel_packet(struct secids *secid)
return 0;
}
@ -103,7 +103,7 @@ index aed6376768bb..2a95fcfc4b14 100644
{
return 0;
diff --git a/include/uapi/linux/netfilter/xt_SECMARK.h b/include/uapi/linux/netfilter/xt_SECMARK.h
index 1f2a708413f5..5245a9748599 100644
index beb2cadba8a9..1f9f1b912d22 100644
--- a/include/uapi/linux/netfilter/xt_SECMARK.h
+++ b/include/uapi/linux/netfilter/xt_SECMARK.h
@@ -12,6 +12,7 @@
@ -143,7 +143,7 @@ index 8018f6cbd9be..498d8942c344 100644
} else {
audit_log_format(ab, " obj=%s", ctx);
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index e0746858bc96..97d0252284b0 100644
index 157425412d1e..a3c80402f7a8 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -335,8 +335,13 @@ static int ctnetlink_dump_secctx(struct sk_buff *skb, const struct nf_conn *ct)
@ -175,7 +175,7 @@ index e0746858bc96..97d0252284b0 100644
ret = security_secid_to_secctx(&secid, NULL, &len);
if (ret)
diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
index 9ebd932f15e0..c85c2e1a3e74 100644
index b9dd474c25de..24df21902d81 100644
--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
@@ -173,8 +173,13 @@ static void ct_show_secctx(struct seq_file *s, const struct nf_conn *ct)
@ -211,10 +211,10 @@ index e91fabdbe9e0..b5fe7f87f180 100644
}
diff --git a/net/netfilter/xt_SECMARK.c b/net/netfilter/xt_SECMARK.c
index 6af1f4fc837d..a4646c301307 100644
index 08ad57b503b8..d46fd431e785 100644
--- a/net/netfilter/xt_SECMARK.c
+++ b/net/netfilter/xt_SECMARK.c
@@ -41,6 +41,9 @@ secmark_tg(struct sk_buff *skb, const struct xt_action_param *par)
@@ -40,6 +40,9 @@ secmark_tg(struct sk_buff *skb, const struct xt_secmark_target_info_v1 *info)
case SECMARK_MODE_SEL:
secmark = info->secid;
break;
@ -224,7 +224,7 @@ index 6af1f4fc837d..a4646c301307 100644
default:
BUG();
}
@@ -59,7 +62,16 @@ static int checkentry_lsm(struct xt_secmark_target_info *info)
@@ -58,7 +61,16 @@ static int checkentry_lsm(struct xt_secmark_target_info_v1 *info)
err = security_secctx_to_secid(info->secctx, strlen(info->secctx),
&secid);
@ -242,7 +242,7 @@ index 6af1f4fc837d..a4646c301307 100644
if (err) {
if (err == -EINVAL)
@@ -80,7 +92,8 @@ static int checkentry_lsm(struct xt_secmark_target_info *info)
@@ -79,7 +91,8 @@ static int checkentry_lsm(struct xt_secmark_target_info_v1 *info)
return err;
}
@ -252,7 +252,7 @@ index 6af1f4fc837d..a4646c301307 100644
return 0;
}
@@ -96,15 +109,23 @@ static int secmark_tg_check(const struct xt_tgchk_param *par)
@@ -95,15 +108,23 @@ secmark_tg_check(const char *table, struct xt_secmark_target_info_v1 *info)
return -EINVAL;
}
@ -279,7 +279,7 @@ index 6af1f4fc837d..a4646c301307 100644
default:
pr_info_ratelimited("invalid mode: %hu\n", info->mode);
return -EINVAL;
@@ -123,8 +144,14 @@ static void secmark_tg_destroy(const struct xt_tgdtor_param *par)
@@ -122,8 +143,14 @@ static void secmark_tg_destroy(const struct xt_tgdtor_param *par)
{
switch (mode) {
case SECMARK_MODE_SEL:
@ -294,7 +294,7 @@ index 6af1f4fc837d..a4646c301307 100644
+ security_secmark_refcount_dec(mode);
}
static struct xt_target secmark_tg_reg __read_mostly = {
static int secmark_tg_check_v0(const struct xt_tgchk_param *par)
diff --git a/net/netlabel/netlabel_user.c b/net/netlabel/netlabel_user.c
index 22474f5c93d7..42ee220f6940 100644
--- a/net/netlabel/netlabel_user.c
@ -412,7 +412,7 @@ index 96e795600adb..5a8047fcb9cd 100644
{
return call_int_hook(tun_dev_alloc_security, 0, security);
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 35f8a839de72..8f807054b58f 100644
index 666f2b631614..02a9aab5e901 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -50,6 +50,7 @@
@ -423,7 +423,7 @@ index 35f8a839de72..8f807054b58f 100644
#include <linux/tty.h>
#include <net/icmp.h>
#include <net/ip.h> /* for local_port_range[] */
@@ -5399,13 +5400,21 @@ static int selinux_secmark_relabel_packet(struct secids *secid)
@@ -5407,13 +5408,21 @@ static int selinux_secmark_relabel_packet(struct secids *secid)
PACKET__RELABELTO, NULL);
}

View File

@ -16,7 +16,7 @@ Signed-off-by: James Morris <james.morris@microsoft.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/seccomp.c b/kernel/seccomp.c
index 56e69203b658..e31a7a925725 100644
index a9dd2325bdda..ae2d70f162a3 100644
--- a/kernel/seccomp.c
+++ b/kernel/seccomp.c
@@ -195,7 +195,7 @@ static u32 seccomp_run_filters(const struct seccomp_data *sd,

View File

@ -13,10 +13,10 @@ Signed-off-by: Casey Schaufler <casey.schaufler@intel.com>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/security.h b/include/linux/security.h
index 2a95fcfc4b14..e98b45ab7a1e 100644
index bb4b8ac9e1b2..c5e7097ea713 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -875,7 +875,7 @@ static inline int security_inode_listsecurity(struct inode *inode, char *buffer,
@@ -869,7 +869,7 @@ static inline int security_inode_listsecurity(struct inode *inode, char *buffer,
static inline void security_inode_getsecid(struct inode *inode,
struct secids *secid)
{
@ -25,7 +25,7 @@ index 2a95fcfc4b14..e98b45ab7a1e 100644
}
static inline int security_inode_copy_up(struct dentry *src, struct cred **new)
@@ -1047,7 +1047,7 @@ static inline int security_task_getsid(struct task_struct *p)
@@ -1041,7 +1041,7 @@ static inline int security_task_getsid(struct task_struct *p)
static inline void security_task_getsecid(struct task_struct *p,
struct secids *secid)
{
@ -34,7 +34,7 @@ index 2a95fcfc4b14..e98b45ab7a1e 100644
}
static inline int security_task_setnice(struct task_struct *p, int nice)
@@ -1122,7 +1122,7 @@ static inline int security_ipc_permission(struct kern_ipc_perm *ipcp,
@@ -1116,7 +1116,7 @@ static inline int security_ipc_permission(struct kern_ipc_perm *ipcp,
static inline void security_ipc_getsecid(struct kern_ipc_perm *ipcp,
struct secids *secid)
{

View File

@ -78,7 +78,7 @@ index b36cdeedb602..12b33ae5ac29 100644
enum tpm2_permanent_handles {
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index ef381caf5f43..9f0daaf3711a 100644
index e71c6b24aed1..18e8268a0997 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -40,129 +40,100 @@ static struct tpm2_hash tpm2_hash_map[] = {

View File

@ -717,10 +717,10 @@ index 280308009784..289ccca35feb 100644
return rc;
}
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index 280d60cba1f8..fcb4326d230c 100644
index c9a5f34097df..ffa3ec6aee7a 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -479,7 +479,7 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len)
@@ -435,7 +435,7 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len)
if (chip->flags & TPM_CHIP_FLAG_TPM2)
dur = tpm2_calc_ordinal_duration(chip, ordinal);
else

View File

@ -108,7 +108,7 @@ index 991260134659..dfbe9c60cbcf 100644
}
-EXPORT_SYMBOL_GPL(tpm1_calc_ordinal_duration);
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 9f0daaf3711a..56ad80a91aa1 100644
index 18e8268a0997..ac9d3f97b956 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -132,7 +132,6 @@ unsigned long tpm2_calc_ordinal_duration(struct tpm_chip *chip, u32 ordinal)
@ -136,10 +136,10 @@ index 289ccca35feb..315a3b4548f7 100644
rc = i2c_nuvoton_wait_for_data_avail(chip, duration, &priv->read_queue);
if (rc) {
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index fcb4326d230c..72f9ca7157fa 100644
index ffa3ec6aee7a..104726bc6492 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -476,11 +476,7 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len)
@@ -432,11 +432,7 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len)
if (chip->flags & TPM_CHIP_FLAG_IRQ) {
ordinal = be32_to_cpu(*((__be32 *) (buf + 6)));

View File

@ -299,7 +299,7 @@ index dfbe9c60cbcf..978946748ea3 100644
+ return 0;
+}
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 56ad80a91aa1..c366a200f03b 100644
index ac9d3f97b956..954dca7a9c74 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -40,6 +40,28 @@ static struct tpm2_hash tpm2_hash_map[] = {

View File

@ -304,10 +304,10 @@ index ec242397e6dc..3bd079587ef5 100644
+}
+EXPORT_SYMBOL_GPL(tpm1_getcap);
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index 72f9ca7157fa..3ceebc0a19a8 100644
index 104726bc6492..0f5e47d58df7 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -667,7 +667,7 @@ static int tpm_tis_gen_interrupt(struct tpm_chip *chip)
@@ -623,7 +623,7 @@ static int tpm_tis_gen_interrupt(struct tpm_chip *chip)
if (chip->flags & TPM_CHIP_FLAG_TPM2)
return tpm2_get_tpm_pt(chip, 0x100, &cap2, desc);
else

View File

@ -408,10 +408,10 @@ index e02f0c1c822f..a69a02366c32 100644
+ return rc;
+}
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index 3ceebc0a19a8..6113a5b77371 100644
index 0f5e47d58df7..c8a11aaa6757 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -1062,7 +1062,7 @@ int tpm_tis_resume(struct device *dev)
@@ -1018,7 +1018,7 @@ int tpm_tis_resume(struct device *dev)
* an error code but for unknown reason it isn't handled.
*/
if (!(chip->flags & TPM_CHIP_FLAG_TPM2))

View File

@ -148,10 +148,10 @@ index 3bd9f1fa77ce..8a84db315676 100644
}
+
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index c366a200f03b..910df422a343 100644
index 954dca7a9c74..dfd9da2704e9 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -952,6 +952,36 @@ static int tpm2_get_cc_attrs_tbl(struct tpm_chip *chip)
@@ -953,6 +953,36 @@ static int tpm2_get_cc_attrs_tbl(struct tpm_chip *chip)
return rc;
}
@ -188,7 +188,7 @@ index c366a200f03b..910df422a343 100644
/**
* tpm2_auto_startup - Perform the standard automatic TPM initialization
* sequence
@@ -963,7 +993,7 @@ int tpm2_auto_startup(struct tpm_chip *chip)
@@ -964,7 +994,7 @@ int tpm2_auto_startup(struct tpm_chip *chip)
{
int rc;
@ -197,7 +197,7 @@ index c366a200f03b..910df422a343 100644
if (rc)
goto out;
@@ -972,7 +1002,7 @@ int tpm2_auto_startup(struct tpm_chip *chip)
@@ -973,7 +1003,7 @@ int tpm2_auto_startup(struct tpm_chip *chip)
goto out;
if (rc == TPM2_RC_INITIALIZE) {

View File

@ -138,7 +138,7 @@ index 6b04648f8184..6f306338953b 100644
u8 dummy_hash[TPM_DIGEST_SIZE] = { 0 };
struct tpm_buf buf;
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 910df422a343..cd8261a8dcf7 100644
index dfd9da2704e9..310f4abddc98 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -175,7 +175,7 @@ struct tpm2_pcr_read_out {
@ -204,19 +204,19 @@ index 4609b94142d4..b49a55cf775f 100644
{
return -ENODEV;
diff --git a/security/integrity/ima/ima_crypto.c b/security/integrity/ima/ima_crypto.c
index f4f3de5f06ca..0b0ecf5351c5 100644
index f0b244989734..65bdd860858a 100644
--- a/security/integrity/ima/ima_crypto.c
+++ b/security/integrity/ima/ima_crypto.c
@@ -651,7 +651,7 @@ int ima_calc_buffer_hash(const void *buf, loff_t len,
@@ -641,7 +641,7 @@ int ima_calc_buffer_hash(const void *buf, loff_t len,
return calc_buffer_shash(buf, len, hash);
}
-static void __init ima_pcrread(int idx, u8 *pcr)
+static void __init ima_pcrread(u32 idx, u8 *pcr)
-static void ima_pcrread(int idx, u8 *pcr)
+static void ima_pcrread(u32 idx, u8 *pcr)
{
if (!ima_tpm_chip)
return;
@@ -667,7 +667,8 @@ static int ima_calc_boot_aggregate_tfm(char *digest,
@@ -657,7 +657,8 @@ static int ima_calc_boot_aggregate_tfm(char *digest,
struct crypto_shash *tfm)
{
u8 pcr_i[TPM_DIGEST_SIZE];

View File

@ -13,7 +13,7 @@ Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index cd8261a8dcf7..09516fba5f93 100644
index 310f4abddc98..e5876cf9fc1f 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -343,10 +343,9 @@ int tpm2_get_random(struct tpm_chip *chip, u8 *dest, size_t max)

View File

@ -141,7 +141,7 @@ index 4888ebc076b7..eb026e2a0537 100644
if (ret) {
dev_err(dev->dev, "hw_reset failed ret = %d\n", ret);
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c
index 5a661cbdf2ae..055c2d89b310 100644
index 66f4d12d0060..6617ba3f7d95 100644
--- a/drivers/misc/mei/interrupt.c
+++ b/drivers/misc/mei/interrupt.c
@@ -75,6 +75,8 @@ static inline int mei_cl_hbm_equal(struct mei_cl *cl,
@ -197,7 +197,7 @@ index 5a661cbdf2ae..055c2d89b310 100644
if (mei_hdr->msg_complete) {
cl_dbg(dev, cl, "completed read length = %zu\n", cb->buf_idx);
@@ -247,6 +256,9 @@ static inline int hdr_is_valid(u32 msg_hdr)
@@ -250,6 +259,9 @@ static inline int hdr_is_valid(u32 msg_hdr)
if (!msg_hdr || mei_hdr->reserved)
return -EBADMSG;
@ -207,7 +207,7 @@ index 5a661cbdf2ae..055c2d89b310 100644
return 0;
}
@@ -267,20 +279,20 @@ int mei_irq_read_handler(struct mei_device *dev,
@@ -270,20 +282,20 @@ int mei_irq_read_handler(struct mei_device *dev,
struct mei_cl *cl;
int ret;
@ -233,7 +233,7 @@ index 5a661cbdf2ae..055c2d89b310 100644
dev_dbg(dev->dev, MEI_HDR_FMT, MEI_HDR_PRM(mei_hdr));
if (mei_slots2data(*slots) < mei_hdr->length) {
@@ -291,6 +303,12 @@ int mei_irq_read_handler(struct mei_device *dev,
@@ -294,6 +306,12 @@ int mei_irq_read_handler(struct mei_device *dev,
goto end;
}
@ -246,7 +246,7 @@ index 5a661cbdf2ae..055c2d89b310 100644
/* HBM message */
if (hdr_is_hbm(mei_hdr)) {
ret = mei_hbm_dispatch(dev, mei_hdr);
@@ -324,7 +342,7 @@ int mei_irq_read_handler(struct mei_device *dev,
@@ -327,7 +345,7 @@ int mei_irq_read_handler(struct mei_device *dev,
goto reset_slots;
}
dev_err(dev->dev, "no destination client found 0x%08X\n",
@ -255,7 +255,7 @@ index 5a661cbdf2ae..055c2d89b310 100644
ret = -EBADMSG;
goto end;
}
@@ -334,9 +352,8 @@ int mei_irq_read_handler(struct mei_device *dev,
@@ -337,9 +355,8 @@ int mei_irq_read_handler(struct mei_device *dev,
reset_slots:
/* reset the number of slots and header */

View File

@ -277,7 +277,7 @@ index 46843bc224a0..b4e00028ad0a 100644
struct mei_bus_message {
u8 hbm_cmd;
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c
index 055c2d89b310..6531e036bb00 100644
index 6617ba3f7d95..d215289edcb1 100644
--- a/drivers/misc/mei/interrupt.c
+++ b/drivers/misc/mei/interrupt.c
@@ -101,6 +101,7 @@ static int mei_cl_irq_read_msg(struct mei_cl *cl,
@ -314,7 +314,7 @@ index 055c2d89b310..6531e036bb00 100644
buf_sz = length + cb->buf_idx;
/* catch for integer overflow */
@@ -303,9 +315,13 @@ int mei_irq_read_handler(struct mei_device *dev,
@@ -306,9 +318,13 @@ int mei_irq_read_handler(struct mei_device *dev,
goto end;
}

View File

@ -105,7 +105,7 @@ index 6dbe8d856fb8..989fc73d241c 100644
!WARN_ON(!cl->rx_flow_ctrl_creds))
cl->rx_flow_ctrl_creds--;
diff --git a/drivers/misc/mei/client.h b/drivers/misc/mei/client.h
index 64e318f589b4..13223b549165 100644
index 0d23efcc74ff..bb74eea3dba5 100644
--- a/drivers/misc/mei/client.h
+++ b/drivers/misc/mei/client.h
@@ -95,8 +95,24 @@ int mei_cl_unlink(struct mei_cl *cl);

View File

@ -156,7 +156,7 @@ index 989fc73d241c..11749f1e90c7 100644
cl_dbg(dev, cl, "No flow control credentials: not sending.\n");
rets = len;
diff --git a/drivers/misc/mei/client.h b/drivers/misc/mei/client.h
index 13223b549165..1ac297f7c81c 100644
index bb74eea3dba5..656eadea32a4 100644
--- a/drivers/misc/mei/client.h
+++ b/drivers/misc/mei/client.h
@@ -96,14 +96,7 @@ int mei_cl_unlink(struct mei_cl *cl);

View File

@ -129,7 +129,7 @@ index 893af8985620..d6e871fb25af 100644
mei_io_cb_free(cb);
return;
diff --git a/drivers/misc/mei/client.h b/drivers/misc/mei/client.h
index 1ac297f7c81c..eb147094b459 100644
index 656eadea32a4..234b75ddf427 100644
--- a/drivers/misc/mei/client.h
+++ b/drivers/misc/mei/client.h
@@ -114,6 +114,7 @@ struct mei_cl_cb *mei_cl_enqueue_ctrl_wr_cb(struct mei_cl *cl, size_t length,

View File

@ -108,7 +108,7 @@ index 24282139a261..289663d76abc 100644
};
ATTRIBUTE_GROUPS(mei_cldev);
diff --git a/drivers/misc/mei/client.h b/drivers/misc/mei/client.h
index eb147094b459..6c9986dfd5a0 100644
index 234b75ddf427..df3f5f65fea2 100644
--- a/drivers/misc/mei/client.h
+++ b/drivers/misc/mei/client.h
@@ -79,6 +79,54 @@ static inline u8 mei_me_cl_ver(const struct mei_me_client *me_cl)

View File

@ -45,7 +45,7 @@ index 363145716a6d..acf06a4f5144 100644
/* Size optimised DRAM/IRAM memcpy */
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 245df1067ba8..f7c832b300d0 100644
index 7b429c0fb4e5..27884c176dc6 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -27,6 +27,7 @@
@ -156,7 +156,7 @@ index 245df1067ba8..f7c832b300d0 100644
return ret;
}
@@ -490,6 +565,7 @@ void cnl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx)
@@ -491,6 +566,7 @@ void cnl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx)
cnl_ipc_free(&ctx->ipc);
ctx->dsp->ops->free(ctx->dsp);

View File

@ -16,10 +16,10 @@ Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index f7c832b300d0..2969e57e3e93 100644
index 27884c176dc6..5eb5ba5e5806 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -533,21 +533,24 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -534,21 +534,24 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
cnl->boot_complete = false;
init_waitqueue_head(&cnl->boot_wait);

View File

@ -27,10 +27,10 @@ index 440bca7afbf1..924c0dfa6ad7 100644
{
struct snd_dma_buffer dmab;
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 2969e57e3e93..a66ed94870b4 100644
index 5eb5ba5e5806..b508426113a7 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -357,6 +357,7 @@ static const struct skl_dsp_fw_ops cnl_fw_ops = {
@@ -358,6 +358,7 @@ static const struct skl_dsp_fw_ops cnl_fw_ops = {
.set_state_D3 = cnl_set_dsp_D3,
.load_fw = cnl_load_base_firmware,
.get_fw_errcode = cnl_get_errno,
@ -38,7 +38,7 @@ index 2969e57e3e93..a66ed94870b4 100644
};
static struct sst_ops cnl_ops = {
@@ -550,9 +551,18 @@ EXPORT_SYMBOL_GPL(cnl_sst_dsp_init);
@@ -551,9 +552,18 @@ EXPORT_SYMBOL_GPL(cnl_sst_dsp_init);
int cnl_sst_init_fw(struct device *dev, struct skl_sst *ctx)
{
struct sst_dsp *sst = ctx->dsp;

View File

@ -71,7 +71,7 @@ index 09bd218df5c4..323cebc4e389 100644
void cnl_ipc_op_int_disable(struct sst_dsp *ctx);
bool cnl_ipc_int_status(struct sst_dsp *ctx);
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index a66ed94870b4..335ec68b6a32 100644
index b508426113a7..797a3053399d 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -27,6 +27,8 @@
@ -83,7 +83,7 @@ index a66ed94870b4..335ec68b6a32 100644
#include <asm/set_memory.h>
#include "../common/sst-dsp.h"
@@ -497,6 +499,118 @@ static int cnl_ipc_init(struct device *dev, struct skl_sst *cnl)
@@ -498,6 +500,118 @@ static int cnl_ipc_init(struct device *dev, struct skl_sst *cnl)
return 0;
}
@ -202,7 +202,7 @@ index a66ed94870b4..335ec68b6a32 100644
int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
const char *fw_name, struct skl_dsp_loader_ops dsp_ops,
struct skl_sst **dsp)
@@ -544,6 +658,12 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -545,6 +659,12 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
return ret;
}
@ -215,7 +215,7 @@ index a66ed94870b4..335ec68b6a32 100644
return 0;
}
EXPORT_SYMBOL_GPL(cnl_sst_dsp_init);
@@ -575,6 +695,7 @@ void cnl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx)
@@ -576,6 +696,7 @@ void cnl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx)
release_firmware(ctx->dsp->fw);
skl_freeup_uuid_list(ctx);

View File

@ -13,10 +13,10 @@ Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 335ec68b6a32..c90870ee8a61 100644
index 797a3053399d..e39e0702f7a2 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -509,7 +509,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -510,7 +510,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
struct cnl_sdw_data *p_data;
int ret = 0, i, j;
/* TODO: This number 4 should come from ACPI */

View File

@ -15,10 +15,10 @@ Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com>
1 file changed, 5 insertions(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index c90870ee8a61..e4d531680a5a 100644
index e39e0702f7a2..4f13eb5e9fae 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -509,7 +509,12 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -510,7 +510,12 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
struct cnl_sdw_data *p_data;
int ret = 0, i, j;
/* TODO: This number 4 should come from ACPI */

View File

@ -14,10 +14,10 @@ Reviewed-on:
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index e4d531680a5a..0caf9bf070a3 100644
index 4f13eb5e9fae..191270e8ac49 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -509,8 +509,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -510,8 +510,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
struct cnl_sdw_data *p_data;
int ret = 0, i, j;
/* TODO: This number 4 should come from ACPI */
@ -27,7 +27,7 @@ index e4d531680a5a..0caf9bf070a3 100644
dsp->num_sdw_controllers = 3;
#else
dsp->num_sdw_controllers = 4;
@@ -574,12 +573,19 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -575,12 +574,19 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
SDW_PORT_BLK_PKG_MODE_BLK_PER_PORT |
SDW_PORT_BLK_PKG_MODE_BLK_PER_CH;
}

View File

@ -14,10 +14,10 @@ Reviewed-on:
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 0caf9bf070a3..f70d70d0822a 100644
index 191270e8ac49..7acc3c19ae70 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -538,7 +538,8 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -539,7 +539,8 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
master[i].retries = CNL_SDW_MAX_CMD_RETRIES;
m_cap->base_clk_freq = 9.6 * 1000 * 1000;
strcpy(master[i].name, "cnl_sdw_mstr");

View File

@ -11,10 +11,10 @@ Signed-off-by: Omair M Abdullah <omair.m.abdullah@intel.com>
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 96800b7c82f6..90a0af79f4f9 100644
index 4e99d9986f11..6667da1bc9b8 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3762,7 +3762,8 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
@@ -3763,7 +3763,8 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
@ -24,7 +24,7 @@ index 96800b7c82f6..90a0af79f4f9 100644
if (source->driver->ops->startup) {
ret = source->driver->ops->startup(&substream, source);
if (ret < 0) {
@@ -3776,7 +3777,8 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
@@ -3777,7 +3778,8 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
if (ret < 0)
goto out;

View File

@ -16,7 +16,7 @@ Tested-by: Shah, Hardik T <hardik.t.shah@intel.com>
1 file changed, 18 insertions(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index f70d70d0822a..b82de714c916 100644
index 7acc3c19ae70..911246d6f5d2 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -37,6 +37,7 @@
@ -42,7 +42,7 @@ index f70d70d0822a..b82de714c916 100644
/* Firmware status window */
#define CNL_ADSP_FW_STATUS CNL_ADSP_SRAM0_BASE
#define CNL_ADSP_ERROR_CODE (CNL_ADSP_FW_STATUS + 0x4)
@@ -629,6 +638,8 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -630,6 +639,8 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
{
struct skl_sst *cnl;
struct sst_dsp *sst;
@ -51,7 +51,7 @@ index f70d70d0822a..b82de714c916 100644
int ret;
ret = skl_sst_ctx_init(dev, irq, fw_name, dsp_ops, dsp, &cnl_dev);
@@ -651,6 +662,13 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -652,6 +663,13 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
CNL_ADSP_W0_UP_SZ, CNL_ADSP_SRAM1_BASE,
CNL_ADSP_W1_SZ);

View File

@ -7502,10 +7502,10 @@ index 312c0437ac15..23c1f6437cda 100644
snd_mask_set(hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT),
SNDRV_PCM_FORMAT_S16_LE);
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index b82de714c916..d888d31d0ea2 100644
index 911246d6f5d2..02e4ccc5200a 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -516,7 +516,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -517,7 +517,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
struct sdw_mstr_dpn_capabilities *dpn_cap;
struct sdw_master *master;
struct cnl_sdw_data *p_data;
@ -7514,7 +7514,7 @@ index b82de714c916..d888d31d0ea2 100644
/* TODO: This number 4 should come from ACPI */
#if defined(CONFIG_SDW_MAXIM_SLAVE) || defined(CONFIG_SND_SOC_MXFPGA)
dsp->num_sdw_controllers = 3;
@@ -561,14 +561,20 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -562,14 +562,20 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
if (!m_cap->sdw_dpn_cap)
return -ENOMEM;
for (j = 0; j < m_cap->num_data_ports; j++) {

View File

@ -46,7 +46,7 @@ index ed0a120d4f08..ff57e4c89de4 100644
struct snd_interval {
unsigned int min, max;
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 7c12b0deb4eb..1180a0dbed69 100644
index db62dbe7eaa8..56ab147c8429 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -727,6 +727,8 @@ static int snd_pcm_hw_params(struct snd_pcm_substream *substream,
@ -58,7 +58,7 @@ index 7c12b0deb4eb..1180a0dbed69 100644
bits = snd_pcm_format_physical_width(runtime->format);
runtime->sample_bits = bits;
@@ -2668,11 +2670,15 @@ static snd_pcm_sframes_t rewind_appl_ptr(struct snd_pcm_substream *substream,
@@ -2673,11 +2675,15 @@ static snd_pcm_sframes_t rewind_appl_ptr(struct snd_pcm_substream *substream,
static snd_pcm_sframes_t snd_pcm_rewind(struct snd_pcm_substream *substream,
snd_pcm_uframes_t frames)
{

View File

@ -42,10 +42,10 @@ index ff57e4c89de4..9120cce11265 100644
#define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */
#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 1180a0dbed69..32f0964996b1 100644
index 56ab147c8429..98beb1c08e24 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -3486,21 +3486,38 @@ static int snd_pcm_mmap(struct file *file, struct vm_area_struct *area)
@@ -3491,21 +3491,38 @@ static int snd_pcm_mmap(struct file *file, struct vm_area_struct *area)
struct snd_pcm_file * pcm_file;
struct snd_pcm_substream *substream;
unsigned long offset;

View File

@ -14,10 +14,10 @@ Signed-off-by: Anil Bhawangirkar <anil.k.bhawangirkar@intel.com>
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index d888d31d0ea2..c5ad9fde2fed 100644
index 02e4ccc5200a..c1a07bc973fc 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -511,7 +511,7 @@ static int cnl_ipc_init(struct device *dev, struct skl_sst *cnl)
@@ -512,7 +512,7 @@ static int cnl_ipc_init(struct device *dev, struct skl_sst *cnl)
static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
void __iomem *mmio_base, int irq)
{
@ -26,7 +26,7 @@ index d888d31d0ea2..c5ad9fde2fed 100644
struct sdw_mstr_dp0_capabilities *dp0_cap;
struct sdw_mstr_dpn_capabilities *dpn_cap;
struct sdw_master *master;
@@ -542,10 +542,21 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -543,10 +543,21 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
master[i].dev.platform_data = p_data;
m_cap = &master[i].mstr_capabilities;
dp0_cap = &m_cap->sdw_dp0_cap;
@ -49,7 +49,7 @@ index d888d31d0ea2..c5ad9fde2fed 100644
strcpy(master[i].name, "cnl_sdw_mstr");
m_cap->highphy_capable = false;
m_cap->monitor_handover_supported = false;
@@ -562,7 +573,17 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -563,7 +574,17 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
return -ENOMEM;
for (j = 0; j < m_cap->num_data_ports; j++) {
dpn_cap = &m_cap->sdw_dpn_cap[j];
@ -67,7 +67,7 @@ index d888d31d0ea2..c5ad9fde2fed 100644
dpn_cap->port_direction = 0x3;
dpn_cap->port_number = j;
dpn_cap->max_word_length = 32;
@@ -588,7 +609,9 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -589,7 +610,9 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
dpn_cap->block_packing_mode_mask =
SDW_PORT_BLK_PKG_MODE_BLK_PER_PORT |
SDW_PORT_BLK_PKG_MODE_BLK_PER_CH;

View File

@ -20,10 +20,10 @@ Signed-off-by: Anil Bhawangirkar <anil.k.bhawangirkar@intel.com>
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index c5ad9fde2fed..18be70b87728 100644
index c1a07bc973fc..1e66a25fe59c 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -583,7 +583,12 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -584,7 +584,12 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
*/
cnl_sdw_get_master_dev_caps(dev, map_data, j);
/* Both Tx and Rx */

View File

@ -10,7 +10,7 @@ Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
1 file changed, 1 insertion(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 18be70b87728..a124dabc353a 100644
index 1e66a25fe59c..1570f1350d30 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -288,6 +288,7 @@ static int cnl_set_dsp_D0(struct sst_dsp *ctx, unsigned int core_id)

View File

@ -14,10 +14,10 @@ Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
1 file changed, 4 insertions(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index a124dabc353a..a81e1b032a96 100644
index 1570f1350d30..bb722c55dcd3 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -509,6 +509,7 @@ static int cnl_ipc_init(struct device *dev, struct skl_sst *cnl)
@@ -510,6 +510,7 @@ static int cnl_ipc_init(struct device *dev, struct skl_sst *cnl)
return 0;
}
@ -25,7 +25,7 @@ index a124dabc353a..a81e1b032a96 100644
static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
void __iomem *mmio_base, int irq)
{
@@ -655,6 +656,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -656,6 +657,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
cnl_sdw_int_enable(dsp->dsp, 1);
return 0;
}
@ -33,7 +33,7 @@ index a124dabc353a..a81e1b032a96 100644
static void skl_unregister_sdw_masters(struct skl_sst *ctx)
{
@@ -723,11 +725,13 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -724,11 +726,13 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
return ret;
}

View File

@ -91,7 +91,7 @@ index 924c0dfa6ad7..2b169b40e6c4 100644
return ret;
}
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index a81e1b032a96..784d92df7ac3 100644
index bb722c55dcd3..19e007e39c94 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -127,7 +127,8 @@ static int cnl_prepare_fw(struct sst_dsp *ctx, const void *fwdata, u32 fwsize)

View File

@ -41,10 +41,10 @@ index 323cebc4e389..5f0653b36308 100644
void cnl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx);
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 784d92df7ac3..ae3c6aa5557e 100644
index 19e007e39c94..344454a0de3e 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -516,13 +516,14 @@ static int cnl_ipc_init(struct device *dev, struct skl_sst *cnl)
@@ -517,13 +517,14 @@ static int cnl_ipc_init(struct device *dev, struct skl_sst *cnl)
#if IS_ENABLED(CONFIG_SND_SOC_RT700)
static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@ -60,7 +60,7 @@ index 784d92df7ac3..ae3c6aa5557e 100644
int ret = 0, i, j, k, wl = 0;
/* TODO: This number 4 should come from ACPI */
#if defined(CONFIG_SDW_MAXIM_SLAVE) || defined(CONFIG_SND_SOC_MXFPGA)
@@ -538,11 +539,18 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -539,11 +540,18 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
dsp->num_sdw_controllers = 0;
}
dsp->mstr = master;
@ -79,7 +79,7 @@ index 784d92df7ac3..ae3c6aa5557e 100644
/* PCI Device is parent of the SoundWire master device */
/* TODO: All these hardcoding should come from ACPI */
master[i].dev.parent = dev;
@@ -651,6 +659,11 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -652,6 +660,11 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
p_data->alh_base = mmio_base + CNL_ALH_BASE;
p_data->inst_id = i;
p_data->irq = irq;
@ -91,7 +91,7 @@ index 784d92df7ac3..ae3c6aa5557e 100644
ret = sdw_add_master_controller(&master[i]);
if (ret) {
dev_err(dev, "Failed to register soundwire master\n");
@@ -676,7 +689,7 @@ static void skl_unregister_sdw_masters(struct skl_sst *ctx)
@@ -677,7 +690,7 @@ static void skl_unregister_sdw_masters(struct skl_sst *ctx)
int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
const char *fw_name, struct skl_dsp_loader_ops dsp_ops,
@ -100,7 +100,7 @@ index 784d92df7ac3..ae3c6aa5557e 100644
{
struct skl_sst *cnl;
struct sst_dsp *sst;
@@ -731,7 +744,7 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -732,7 +745,7 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
}
#if IS_ENABLED(CONFIG_SND_SOC_RT700)

View File

@ -21,10 +21,10 @@ Reviewed-by: Kp, Jeeja <jeeja.kp@intel.com>
2 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index ae3c6aa5557e..790af2489d0e 100644
index 344454a0de3e..ab7e5fe36673 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -526,11 +526,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -527,11 +527,7 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
struct cnl_bra_operation *p_ptr = ptr;
int ret = 0, i, j, k, wl = 0;
/* TODO: This number 4 should come from ACPI */
@ -36,7 +36,7 @@ index ae3c6aa5557e..790af2489d0e 100644
master = devm_kzalloc(dev,
(sizeof(*master) * dsp->num_sdw_controllers),
GFP_KERNEL);
@@ -636,18 +632,18 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -637,18 +633,18 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
switch (i) {
case 0:
p_data->sdw_regs = mmio_base + CNL_SDW_LINK_0_BASE;

View File

@ -21,7 +21,7 @@ Tested-by: Sm, Bhadur A <bhadur.a.sm@intel.com>
1 file changed, 17 insertions(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 790af2489d0e..d5e2c32b3f83 100644
index ab7e5fe36673..bdbbf3d63f86 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -209,8 +209,10 @@ static int cnl_load_base_firmware(struct sst_dsp *ctx)

View File

@ -55,10 +55,10 @@ index 6f9b24c8c211..c1f6d8b6ab79 100644
int ret;
struct skl_ipc_d0ix_msg msg;
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index d5e2c32b3f83..5ee7b350eb7f 100644
index bdbbf3d63f86..e4f7a643252b 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -389,6 +389,8 @@ static unsigned int cnl_get_errno(struct sst_dsp *ctx)
@@ -390,6 +390,8 @@ static unsigned int cnl_get_errno(struct sst_dsp *ctx)
static const struct skl_dsp_fw_ops cnl_fw_ops = {
.set_state_D0 = cnl_set_dsp_D0,
.set_state_D3 = cnl_set_dsp_D3,
@ -67,7 +67,7 @@ index d5e2c32b3f83..5ee7b350eb7f 100644
.load_fw = cnl_load_base_firmware,
.get_fw_errcode = cnl_get_errno,
.load_library = bxt_load_library,
@@ -743,9 +745,14 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -744,9 +746,14 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
return ret;
}

View File

@ -12,7 +12,7 @@ Signed-off-by: Diwakar, Praveen <praveen.diwakar@intel.com>
1 file changed, 10 insertions(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 5ee7b350eb7f..9441a724ea59 100644
index e4f7a643252b..dbb09283e88e 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -272,6 +272,16 @@ static int cnl_load_base_firmware(struct sst_dsp *ctx)

View File

@ -14,10 +14,10 @@ Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 9441a724ea59..c99b2c931202 100644
index dbb09283e88e..b84957d1e8a2 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -755,14 +755,9 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -756,14 +756,9 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
return ret;
}
@ -32,7 +32,7 @@ index 9441a724ea59..c99b2c931202 100644
ret = skl_dsp_acquire_irq(sst);
if (ret < 0)
return ret;
@@ -773,6 +768,12 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
@@ -774,6 +769,12 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
return ret;
}

View File

@ -19,10 +19,10 @@ Tested-by: Sm, Bhadur A <bhadur.a.sm@intel.com>
1 file changed, 2 insertions(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index c99b2c931202..813cd73545e4 100644
index b84957d1e8a2..4aa65f4e313d 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -638,6 +638,8 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
@@ -639,6 +639,8 @@ static int skl_register_sdw_masters(struct device *dev, struct skl_sst *dsp,
dpn_cap->word_length_buffer =
kzalloc(((sizeof(unsigned int)) *
dpn_cap->num_word_length), GFP_KERNEL);

View File

@ -23,7 +23,7 @@ Tested-by: Madiwalar, MadiwalappaX <madiwalappax.madiwalar@intel.com>
1 file changed, 2 insertions(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 813cd73545e4..ea7bec1ad073 100644
index 4aa65f4e313d..bfc4da85c043 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -30,6 +30,7 @@

View File

@ -54,10 +54,10 @@ index dd5453daa562..2eb57d75f1b1 100644
if (ret < 0) {
dev_err(dev, "Load base fw failed: %x\n", ret);
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index ea7bec1ad073..df42b2157b21 100644
index bfc4da85c043..59448c1ba37c 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -795,6 +795,13 @@ int cnl_sst_init_fw(struct device *dev, struct skl_sst *ctx)
@@ -796,6 +796,13 @@ int cnl_sst_init_fw(struct device *dev, struct skl_sst *ctx)
struct sst_dsp *sst = ctx->dsp;
int ret;

View File

@ -30,7 +30,7 @@ Tested-by: Madiwalar, MadiwalappaX <madiwalappax.madiwalar@intel.com>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index a0d1ce0edaf9..8a8ed30cb514 100644
index af14304645ce..f0408a350cba 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -1623,6 +1623,8 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream)

View File

@ -39,7 +39,7 @@ index 859f0de00339..92150322496c 100644
/*
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index df42b2157b21..19398e200cb0 100644
index 59448c1ba37c..c5a89c3e4eb6 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -212,49 +212,56 @@ static int cnl_load_base_firmware(struct sst_dsp *ctx)

View File

@ -94,7 +94,7 @@ index 5f0653b36308..7bc24ee5eecc 100644
int cnl_sst_init_fw(struct device *dev, struct skl_sst *ctx);
void cnl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx);
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 19398e200cb0..52565423c83e 100644
index c5a89c3e4eb6..b6672f9c6bba 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -273,6 +273,10 @@ static int cnl_load_base_firmware(struct sst_dsp *ctx)
@ -108,7 +108,7 @@ index 19398e200cb0..52565423c83e 100644
fw_property = cnl->fw_property;
if (fw_property.memory_reclaimed <= 0) {
dev_err(ctx->dev, "Memory reclaim not enabled:%d\n",
@@ -725,22 +729,25 @@ static void skl_unregister_sdw_masters(struct skl_sst *ctx)
@@ -726,22 +730,25 @@ static void skl_unregister_sdw_masters(struct skl_sst *ctx)
}
int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,

View File

@ -579,7 +579,7 @@ index db823eb92126..5d1cbe428472 100644
#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_CNL_FPGA)
skl_dmic_data.dmic_num = skl_get_dmic_geo(skl);
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 8a8ed30cb514..beb226f6e066 100644
index f0408a350cba..0d03cd870a8a 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -863,7 +863,7 @@ int soc_dai_hw_params(struct snd_pcm_substream *substream,

View File

@ -82,7 +82,7 @@ index 7bc24ee5eecc..5f0653b36308 100644
int cnl_sst_init_fw(struct device *dev, struct skl_sst *ctx);
void cnl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx);
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
index 52565423c83e..19398e200cb0 100644
index b6672f9c6bba..c5a89c3e4eb6 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -273,10 +273,6 @@ static int cnl_load_base_firmware(struct sst_dsp *ctx)
@ -96,7 +96,7 @@ index 52565423c83e..19398e200cb0 100644
fw_property = cnl->fw_property;
if (fw_property.memory_reclaimed <= 0) {
dev_err(ctx->dev, "Memory reclaim not enabled:%d\n",
@@ -729,25 +725,22 @@ static void skl_unregister_sdw_masters(struct skl_sst *ctx)
@@ -730,25 +726,22 @@ static void skl_unregister_sdw_masters(struct skl_sst *ctx)
}
int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,

View File

@ -21,7 +21,7 @@ Tested-by: Dong, Eddie <eddie.dong@intel.com>
1 file changed, 69 insertions(+)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 9a5b6a8e2502..eea4fd4b30e7 100644
index 113b7bdf86dd..861f640c282f 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -42,6 +42,70 @@ struct pci_domain_busn_res {
@ -95,7 +95,7 @@ index 9a5b6a8e2502..eea4fd4b30e7 100644
static struct resource *get_pci_domain_busn_res(int domain_nr)
{
struct pci_domain_busn_res *r;
@@ -2530,6 +2594,11 @@ struct pci_dev *pci_scan_single_device(struct pci_bus *bus, int devfn)
@@ -2531,6 +2595,11 @@ struct pci_dev *pci_scan_single_device(struct pci_bus *bus, int devfn)
return dev;
}

View File

@ -43,10 +43,10 @@ index 0038a2d10a7a..466219296cd6 100644
obj-$(subst m,y,$(CONFIG_HYPERV)) += hyperv/
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index f9139407fdb5..2a3c348f3ca1 100644
index 58e65440a9fd..19a420e40e9a 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -778,6 +778,8 @@ config QUEUED_LOCK_STAT
@@ -779,6 +779,8 @@ config QUEUED_LOCK_STAT
behavior of paravirtualized queued spinlocks and report
them on debugfs.

View File

@ -155,7 +155,7 @@ index 23a363fd4c59..5f0d8827645d 100644
struct pci_dev *dev = msi_desc_to_pci_dev(entry);
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index e9ede82ee2c2..77c831f33f58 100644
index 39725b71300f..5ff2488aa8cc 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -170,6 +170,8 @@ static inline void pci_msix_clear_and_set_ctrl(struct pci_dev *dev, u16 clear, u
@ -316,10 +316,10 @@ index 000000000000..73affd60fc46
+ entry->msg = *msg;
+}
diff --git a/include/linux/msi.h b/include/linux/msi.h
index be8ec813dbfb..9b0de9ed5387 100644
index 5dd171849a27..2dd6c83b991c 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -141,7 +141,15 @@ struct msi_desc *alloc_msi_entry(struct device *dev, int nvec,
@@ -147,7 +147,15 @@ struct msi_desc *alloc_msi_entry(struct device *dev, int nvec,
const struct cpumask *affinity);
void free_msi_entry(struct msi_desc *entry);
void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);

View File

@ -263,7 +263,7 @@ index f6dfc8b795ec..11a75d69062d 100644
enum gmbus_cycle_type {
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
index 46c8b720e336..8523fbc1e494 100644
index 3e3876d141ce..383281a26a2f 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -301,6 +301,46 @@ static int init_service_thread(struct intel_gvt *gvt)
@ -524,7 +524,7 @@ index b1154d803564..1c96e927e91a 100644
void intel_edp_drrs_enable(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state);
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 8d731eb1de69..607500b78c72 100644
index aa8d2aca0f02..0fc9fdc4b4a0 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -33,6 +33,10 @@

View File

@ -26,7 +26,7 @@ Tested-by: Dong, Eddie <eddie.dong@intel.com>
5 files changed, 31 insertions(+)
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
index 8523fbc1e494..25e0a58a24a5 100644
index 383281a26a2f..8091582adbb5 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -511,6 +511,14 @@ int intel_gvt_init_device(struct drm_i915_private *dev_priv)

View File

@ -1044,7 +1044,7 @@ index 000000000000..0799df2ec557
+
+#endif
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
index 25e0a58a24a5..6261af450ee4 100644
index 8091582adbb5..a2babbe1f445 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -44,6 +44,7 @@ struct intel_gvt_host intel_gvt_host;

View File

@ -23,7 +23,7 @@ Tested-by: Dong, Eddie <eddie.dong@intel.com>
3 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
index 6261af450ee4..e4a3823e1226 100644
index a2babbe1f445..290b41d35ad9 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -248,6 +248,8 @@ static void init_device_info(struct intel_gvt *gvt)

View File

@ -62,7 +62,7 @@ index 9c76cab07010..82ab32e87805 100644
};
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 607500b78c72..81900532f7ff 100644
index 0fc9fdc4b4a0..bf08b3bc6741 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5008,6 +5008,70 @@ static void skl_write_wm_level(struct drm_i915_private *dev_priv,

View File

@ -22,7 +22,7 @@ Reviewed-by: Fei Jiang <fei.jiang@intel.com>
3 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
index e4a3823e1226..940443f08dfd 100644
index 290b41d35ad9..b80f510427b7 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -317,22 +317,27 @@ void intel_gvt_init_pipe_info(struct intel_gvt *gvt);
@ -80,7 +80,7 @@ index 9344293ed692..f4d9056175ae 100644
enum {
GVT_FAILSAFE_UNSUPPORTED_GUEST,
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 81900532f7ff..220990e23ac5 100644
index bf08b3bc6741..6f27daf76ef5 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5259,9 +5259,18 @@ skl_compute_ddb(struct drm_atomic_state *state)

View File

@ -332,7 +332,7 @@ index 77c123cc8817..83ed6f56ed56 100644
static void ibx_set_fifo_underrun_reporting(struct drm_device *dev,
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 220990e23ac5..96a0269e80b3 100644
index 6f27daf76ef5..62d8ab6aabab 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3757,7 +3757,6 @@ bool intel_can_enable_sagv(struct drm_atomic_state *state)

View File

@ -27,10 +27,10 @@ Change-Id: Ie16c4bdd19a3df25ca5c4241ded12b87ca5a106a
8 files changed, 71 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index c22062cc9992..9390a332ad65 100644
index 6060b69fa618..44ed41c19baa 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1074,7 +1074,7 @@ drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
@@ -1093,7 +1093,7 @@ drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
crtc->enabled = new_crtc_state->enable;
new_plane_state =
@ -39,7 +39,7 @@ index c22062cc9992..9390a332ad65 100644
if (new_plane_state && new_plane_state->crtc == crtc) {
crtc->x = new_plane_state->src_x >> 16;
@@ -2939,6 +2939,9 @@ int __drm_atomic_helper_set_config(struct drm_mode_set *set,
@@ -2958,6 +2958,9 @@ int __drm_atomic_helper_set_config(struct drm_mode_set *set,
int hdisplay, vdisplay;
int ret;

View File

@ -78,7 +78,7 @@ index 2a13e739569d..7398d6560cf5 100644
port = enc_to_dig_port(
&(connector->encoder->base))->base.port;
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
index 940443f08dfd..3105afe1a6e5 100644
index b80f510427b7..7e6c459739ee 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -389,6 +389,12 @@ void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
@ -628,7 +628,7 @@ index a4b6325c219e..3ed637377ed7 100644
const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state);
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 96a0269e80b3..b4cdb3d85354 100644
index 62d8ab6aabab..b395f1f8802f 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -815,11 +815,14 @@ static int intel_wm_num_levels(struct drm_i915_private *dev_priv)

View File

@ -54,7 +54,7 @@ Reviewed-by: Jiang, Fei <fei.jiang@intel.com>
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index b4cdb3d85354..2cadc471425f 100644
index b395f1f8802f..4e3af2424028 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3810,6 +3810,7 @@ bool intel_can_enable_sagv(struct drm_atomic_state *state)

View File

@ -14,7 +14,7 @@ Signed-off-by: Satyeshwar Singh <satyeshwar.singh@intel.com>
1 file changed, 55 insertions(+), 51 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 2cadc471425f..36ba0394f6ca 100644
index 4e3af2424028..968ac86159f2 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4944,13 +4944,63 @@ static void skl_compute_transition_wm(struct intel_crtc_state *cstate,

View File

@ -15,7 +15,7 @@ Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 36ba0394f6ca..b218b1a2c7f8 100644
index 968ac86159f2..54979509e44c 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4554,6 +4554,11 @@ skl_compute_plane_wm_params(const struct drm_i915_private *dev_priv,

View File

@ -51,7 +51,7 @@ index d73183a23c7d..f3a65581b9fb 100644
case DRM_FORMAT_RGB565:
case DRM_FORMAT_XBGR8888:
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index b218b1a2c7f8..dcf4941aeb9a 100644
index 54979509e44c..39cef1485a2e 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -824,6 +824,11 @@ static bool intel_wm_plane_visible(const struct intel_crtc_state *crtc_state,

View File

@ -34,7 +34,7 @@ index 06e01d87d76a..9929ab59774b 100644
* Wrapper type for pointers to code which uses the non-standard
* calling convention. See PV_CALL_SAVE_REGS_THUNK below.
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 77c831f33f58..0dc0c1822049 100644
index 5ff2488aa8cc..a0a5483a62da 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -9,6 +9,8 @@

View File

@ -1313,7 +1313,7 @@ index 83e5e01fa9ea..338709b6640e 100644
struct drm_dma_handle *phys_handle;
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index a262a64f5625..a803449498f8 100644
index ba24ac698e8b..550359f8c351 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -91,6 +91,13 @@ static bool __i915_error_ok(struct drm_i915_error_state_buf *e)
@ -1339,7 +1339,7 @@ index a262a64f5625..a803449498f8 100644
const char *str)
{
unsigned len;
@@ -871,6 +878,22 @@ int i915_error_state_buf_init(struct drm_i915_error_state_buf *ebuf,
@@ -874,6 +881,22 @@ int i915_error_state_buf_init(struct drm_i915_error_state_buf *ebuf,
return 0;
}

View File

@ -25,7 +25,7 @@ Signed-off-by: Romli, Khairul Anuar <khairul.anuar.romli@intel.com>
4 files changed, 115 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 1a4b44923aec..6df269924ac1 100644
index 281cf9cbb44c..c52be07dbac7 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -1511,11 +1511,9 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
@ -44,7 +44,7 @@ index 1a4b44923aec..6df269924ac1 100644
return connector->funcs->atomic_get_property(connector,
state, property, val);
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 6011d769d50b..8b21a017edaa 100644
index 7bb68ca4aa0b..a729c800af43 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -241,6 +241,7 @@ int drm_connector_init(struct drm_device *dev,
@ -55,7 +55,7 @@ index 6011d769d50b..8b21a017edaa 100644
connector->status = connector_status_unknown;
connector->display_info.panel_orientation =
DRM_MODE_PANEL_ORIENTATION_UNKNOWN;
@@ -1346,6 +1347,42 @@ int drm_connector_attach_content_protection_property(
@@ -1347,6 +1348,42 @@ int drm_connector_attach_content_protection_property(
}
EXPORT_SYMBOL(drm_connector_attach_content_protection_property);
@ -98,7 +98,7 @@ index 6011d769d50b..8b21a017edaa 100644
/**
* drm_mode_create_aspect_ratio_property - create aspect ratio property
* @dev: DRM device
@@ -1578,6 +1615,38 @@ void drm_connector_set_link_status_property(struct drm_connector *connector,
@@ -1579,6 +1616,38 @@ void drm_connector_set_link_status_property(struct drm_connector *connector,
}
EXPORT_SYMBOL(drm_connector_set_link_status_property);
@ -138,10 +138,10 @@ index 6011d769d50b..8b21a017edaa 100644
* drm_connector_init_panel_orientation_property -
* initialize the connecters panel_orientation property
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 97ea41dc678f..9fd96c96d598 100644
index e5f641cdab5a..e268f80578fe 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -915,6 +915,13 @@ struct drm_connector {
@@ -964,6 +964,13 @@ struct drm_connector {
*/
struct drm_property *content_protection_property;
@ -155,7 +155,7 @@ index 97ea41dc678f..9fd96c96d598 100644
/**
* @path_blob_ptr:
*
@@ -1184,20 +1191,24 @@ int drm_connector_attach_scaling_mode_property(struct drm_connector *connector,
@@ -1251,20 +1258,24 @@ int drm_connector_attach_scaling_mode_property(struct drm_connector *connector,
u32 scaling_mode_mask);
int drm_connector_attach_content_protection_property(
struct drm_connector *connector);

View File

@ -20,7 +20,7 @@ Signed-off-by: Romli, Khairul Anuar <khairul.anuar.romli@intel.com>
3 files changed, 52 insertions(+)
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 6df269924ac1..5c6eb8954a9d 100644
index c52be07dbac7..4dac6f035c61 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -1421,6 +1421,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
@ -42,10 +42,10 @@ index 6df269924ac1..5c6eb8954a9d 100644
*val = connector->cp_downstream_blob_ptr ?
connector->cp_downstream_blob_ptr->base.id : 0;
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 8b21a017edaa..60858b76374c 100644
index a729c800af43..27f7375b4f34 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1383,6 +1383,41 @@ int drm_connector_attach_cp_downstream_property(
@@ -1384,6 +1384,41 @@ int drm_connector_attach_cp_downstream_property(
}
EXPORT_SYMBOL(drm_connector_attach_cp_downstream_property);
@ -88,10 +88,10 @@ index 8b21a017edaa..60858b76374c 100644
* drm_mode_create_aspect_ratio_property - create aspect ratio property
* @dev: DRM device
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 9fd96c96d598..dc5f4d217bc0 100644
index e268f80578fe..46d9aa4086d4 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -460,6 +460,12 @@ struct drm_connector_state {
@@ -507,6 +507,12 @@ struct drm_connector_state {
* drm_writeback_signal_completion()
*/
struct drm_writeback_job *writeback_job;
@ -104,7 +104,7 @@ index 9fd96c96d598..dc5f4d217bc0 100644
};
/**
@@ -922,6 +928,12 @@ struct drm_connector {
@@ -971,6 +977,12 @@ struct drm_connector {
struct drm_property *cp_downstream_property;
struct drm_property_blob *cp_downstream_blob_ptr;
@ -117,7 +117,7 @@ index 9fd96c96d598..dc5f4d217bc0 100644
/**
* @path_blob_ptr:
*
@@ -1193,6 +1205,7 @@ int drm_connector_attach_content_protection_property(
@@ -1260,6 +1272,7 @@ int drm_connector_attach_content_protection_property(
struct drm_connector *connector);
int drm_connector_attach_cp_downstream_property(
struct drm_connector *connector);

Some files were not shown because too many files have changed in this diff Show More