summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SOURCES/OpenRGB.patch715
-rw-r--r--SOURCES/Patchlist.changelog3
-rw-r--r--SOURCES/filter-aarch64.sh8
-rw-r--r--SOURCES/filter-armv7hl.sh8
-rw-r--r--SOURCES/filter-i686.sh4
-rwxr-xr-xSOURCES/filter-modules.sh20
-rw-r--r--SOURCES/filter-ppc64le.sh4
-rw-r--r--SOURCES/kernel-aarch64-debug-fedora.config1
-rw-r--r--SOURCES/kernel-aarch64-debug-rhel.config1
-rw-r--r--SOURCES/kernel-aarch64-fedora.config1
-rw-r--r--SOURCES/kernel-aarch64-rhel.config1
-rw-r--r--SOURCES/kernel-armv7hl-debug-fedora.config1
-rw-r--r--SOURCES/kernel-armv7hl-fedora.config1
-rw-r--r--SOURCES/kernel-armv7hl-lpae-debug-fedora.config1
-rw-r--r--SOURCES/kernel-armv7hl-lpae-fedora.config1
-rw-r--r--SOURCES/kernel-i686-debug-fedora.config1
-rw-r--r--SOURCES/kernel-i686-fedora.config1
-rw-r--r--SOURCES/kernel-ppc64le-debug-fedora.config1
-rw-r--r--SOURCES/kernel-ppc64le-debug-rhel.config1
-rw-r--r--SOURCES/kernel-ppc64le-fedora.config1
-rw-r--r--SOURCES/kernel-ppc64le-rhel.config1
-rw-r--r--SOURCES/kernel-s390x-debug-fedora.config1
-rw-r--r--SOURCES/kernel-s390x-debug-rhel.config1
-rw-r--r--SOURCES/kernel-s390x-fedora.config1
-rw-r--r--SOURCES/kernel-s390x-rhel.config1
-rw-r--r--SOURCES/kernel-s390x-zfcpdump-rhel.config1
-rw-r--r--SOURCES/kernel-x86_64-debug-fedora.config1
-rw-r--r--SOURCES/kernel-x86_64-debug-rhel.config1
-rw-r--r--SOURCES/kernel-x86_64-fedora.config1
-rw-r--r--SOURCES/kernel-x86_64-rhel.config1
-rw-r--r--SOURCES/patch-5.12-redhat.patch109
-rwxr-xr-xSPECS/kernel.spec17
32 files changed, 790 insertions, 121 deletions
diff --git a/SOURCES/OpenRGB.patch b/SOURCES/OpenRGB.patch
new file mode 100644
index 0000000..5a140ad
--- /dev/null
+++ b/SOURCES/OpenRGB.patch
@@ -0,0 +1,715 @@
+diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
+index 2ddca08f8a76..72647850f08e 100644
+--- a/drivers/i2c/busses/Kconfig
++++ b/drivers/i2c/busses/Kconfig
+@@ -217,6 +217,15 @@ config I2C_CHT_WC
+ combined with a FUSB302 Type-C port-controller as such it is advised
+ to also select CONFIG_TYPEC_FUSB302=m.
+
++config I2C_NCT6775
++ tristate "Nuvoton NCT6775 and compatible SMBus controller"
++ help
++ If you say yes to this option, support will be included for the
++ Nuvoton NCT6775 and compatible SMBus controllers.
++
++ This driver can also be built as a module. If so, the module
++ will be called i2c-nct6775.
++
+ config I2C_NFORCE2
+ tristate "Nvidia nForce2, nForce3 and nForce4"
+ depends on PCI
+diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
+index 25d60889713c..3c2a9b237ac6 100644
+--- a/drivers/i2c/busses/Makefile
++++ b/drivers/i2c/busses/Makefile
+@@ -17,6 +17,7 @@ obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o
+ obj-$(CONFIG_I2C_I801) += i2c-i801.o
+ obj-$(CONFIG_I2C_ISCH) += i2c-isch.o
+ obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o
++obj-$(CONFIG_I2C_NCT6775) += i2c-nct6775.o
+ obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o
+ obj-$(CONFIG_I2C_NFORCE2_S4985) += i2c-nforce2-s4985.o
+ obj-$(CONFIG_I2C_NVIDIA_GPU) += i2c-nvidia-gpu.o
+diff --git a/drivers/i2c/busses/i2c-nct6775.c b/drivers/i2c/busses/i2c-nct6775.c
+new file mode 100644
+index 000000000000..0462f0952043
+--- /dev/null
++++ b/drivers/i2c/busses/i2c-nct6775.c
+@@ -0,0 +1,647 @@
++/*
++ * i2c-nct6775 - Driver for the SMBus master functionality of
++ * Nuvoton NCT677x Super-I/O chips
++ *
++ * Copyright (C) 2019 Adam Honse <calcprogrammer1@gmail.com>
++ *
++ * Derived from nct6775 hwmon driver
++ * Copyright (C) 2012 Guenter Roeck <linux@roeck-us.net>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/jiffies.h>
++#include <linux/platform_device.h>
++#include <linux/hwmon.h>
++#include <linux/hwmon-sysfs.h>
++#include <linux/hwmon-vid.h>
++#include <linux/err.h>
++#include <linux/mutex.h>
++#include <linux/delay.h>
++#include <linux/ioport.h>
++#include <linux/i2c.h>
++#include <linux/acpi.h>
++#include <linux/bitops.h>
++#include <linux/dmi.h>
++#include <linux/io.h>
++#include <linux/nospec.h>
++
++#define DRVNAME "i2c-nct6775"
++
++/* Nuvoton SMBus address offsets */
++#define SMBHSTDAT (0 + nuvoton_nct6793d_smba)
++#define SMBBLKSZ (1 + nuvoton_nct6793d_smba)
++#define SMBHSTCMD (2 + nuvoton_nct6793d_smba)
++#define SMBHSTIDX (3 + nuvoton_nct6793d_smba) //Index field is the Command field on other controllers
++#define SMBHSTCTL (4 + nuvoton_nct6793d_smba)
++#define SMBHSTADD (5 + nuvoton_nct6793d_smba)
++#define SMBHSTERR (9 + nuvoton_nct6793d_smba)
++#define SMBHSTSTS (0xE + nuvoton_nct6793d_smba)
++
++/* Command register */
++#define NCT6793D_READ_BYTE 0
++#define NCT6793D_READ_WORD 1
++#define NCT6793D_READ_BLOCK 2
++#define NCT6793D_BLOCK_WRITE_READ_PROC_CALL 3
++#define NCT6793D_PROC_CALL 4
++#define NCT6793D_WRITE_BYTE 8
++#define NCT6793D_WRITE_WORD 9
++#define NCT6793D_WRITE_BLOCK 10
++
++/* Control register */
++#define NCT6793D_MANUAL_START 128
++#define NCT6793D_SOFT_RESET 64
++
++/* Error register */
++#define NCT6793D_NO_ACK 32
++
++/* Status register */
++#define NCT6793D_FIFO_EMPTY 1
++#define NCT6793D_FIFO_FULL 2
++#define NCT6793D_MANUAL_ACTIVE 4
++
++#define NCT6775_LD_SMBUS 0x0B
++
++/* Other settings */
++#define MAX_RETRIES 400
++
++enum kinds { nct6106, nct6775, nct6776, nct6779, nct6791, nct6792, nct6793,
++ nct6795, nct6796, nct6798 };
++
++struct nct6775_sio_data {
++ int sioreg;
++ enum kinds kind;
++};
++
++/* used to set data->name = nct6775_device_names[data->sio_kind] */
++static const char * const nct6775_device_names[] = {
++ "nct6106",
++ "nct6775",
++ "nct6776",
++ "nct6779",
++ "nct6791",
++ "nct6792",
++ "nct6793",
++ "nct6795",
++ "nct6796",
++ "nct6798",
++};
++
++static const char * const nct6775_sio_names[] __initconst = {
++ "NCT6106D",
++ "NCT6775F",
++ "NCT6776D/F",
++ "NCT6779D",
++ "NCT6791D",
++ "NCT6792D",
++ "NCT6793D",
++ "NCT6795D",
++ "NCT6796D",
++ "NCT6798D",
++};
++
++#define SIO_REG_LDSEL 0x07 /* Logical device select */
++#define SIO_REG_DEVID 0x20 /* Device ID (2 bytes) */
++#define SIO_REG_SMBA 0x62 /* SMBus base address register */
++
++#define SIO_NCT6106_ID 0xc450
++#define SIO_NCT6775_ID 0xb470
++#define SIO_NCT6776_ID 0xc330
++#define SIO_NCT6779_ID 0xc560
++#define SIO_NCT6791_ID 0xc800
++#define SIO_NCT6792_ID 0xc910
++#define SIO_NCT6793_ID 0xd120
++#define SIO_NCT6795_ID 0xd350
++#define SIO_NCT6796_ID 0xd420
++#define SIO_NCT6798_ID 0xd428
++#define SIO_ID_MASK 0xFFF0
++
++static inline void
++superio_outb(int ioreg, int reg, int val)
++{
++ outb(reg, ioreg);
++ outb(val, ioreg + 1);
++}
++
++static inline int
++superio_inb(int ioreg, int reg)
++{
++ outb(reg, ioreg);
++ return inb(ioreg + 1);
++}
++
++static inline void
++superio_select(int ioreg, int ld)
++{
++ outb(SIO_REG_LDSEL, ioreg);
++ outb(ld, ioreg + 1);
++}
++
++static inline int
++superio_enter(int ioreg)
++{
++ /*
++ * Try to reserve <ioreg> and <ioreg + 1> for exclusive access.
++ */
++ if (!request_muxed_region(ioreg, 2, DRVNAME))
++ return -EBUSY;
++
++ outb(0x87, ioreg);
++ outb(0x87, ioreg);
++
++ return 0;
++}
++
++static inline void
++superio_exit(int ioreg)
++{
++ outb(0xaa, ioreg);
++ outb(0x02, ioreg);
++ outb(0x02, ioreg + 1);
++ release_region(ioreg, 2);
++}
++
++/*
++ * ISA constants
++ */
++
++#define IOREGION_ALIGNMENT (~7)
++#define IOREGION_LENGTH 2
++#define ADDR_REG_OFFSET 0
++#define DATA_REG_OFFSET 1
++
++#define NCT6775_REG_BANK 0x4E
++#define NCT6775_REG_CONFIG 0x40
++
++static struct i2c_adapter *nct6775_adapter;
++
++struct i2c_nct6775_adapdata {
++ unsigned short smba;
++};
++
++/* Return negative errno on error. */
++static s32 nct6775_access(struct i2c_adapter * adap, u16 addr,
++ unsigned short flags, char read_write,
++ u8 command, int size, union i2c_smbus_data * data)
++{
++ struct i2c_nct6775_adapdata *adapdata = i2c_get_adapdata(adap);
++ unsigned short nuvoton_nct6793d_smba = adapdata->smba;
++ int i, len, cnt;
++ union i2c_smbus_data tmp_data;
++ int timeout = 0;
++
++ tmp_data.word = 0;
++ cnt = 0;
++ len = 0;
++
++ outb_p(NCT6793D_SOFT_RESET, SMBHSTCTL);
++
++ switch (size) {
++ case I2C_SMBUS_QUICK:
++ outb_p((addr << 1) | read_write,
++ SMBHSTADD);
++ break;
++ case I2C_SMBUS_BYTE_DATA:
++ tmp_data.byte = data->byte;
++ case I2C_SMBUS_BYTE:
++ outb_p((addr << 1) | read_write,
++ SMBHSTADD);
++ outb_p(command, SMBHSTIDX);
++ if (read_write == I2C_SMBUS_WRITE) {
++ outb_p(tmp_data.byte, SMBHSTDAT);
++ outb_p(NCT6793D_WRITE_BYTE, SMBHSTCMD);
++ }
++ else {
++ outb_p(NCT6793D_READ_BYTE, SMBHSTCMD);
++ }
++ break;
++ case I2C_SMBUS_WORD_DATA:
++ outb_p((addr << 1) | read_write,
++ SMBHSTADD);
++ outb_p(command, SMBHSTIDX);
++ if (read_write == I2C_SMBUS_WRITE) {
++ outb_p(data->word & 0xff, SMBHSTDAT);
++ outb_p((data->word & 0xff00) >> 8, SMBHSTDAT);
++ outb_p(NCT6793D_WRITE_WORD, SMBHSTCMD);
++ }
++ else {
++ outb_p(NCT6793D_READ_WORD, SMBHSTCMD);
++ }
++ break;
++ case I2C_SMBUS_BLOCK_DATA:
++ outb_p((addr << 1) | read_write,
++ SMBHSTADD);
++ outb_p(command, SMBHSTIDX);
++ if (read_write == I2C_SMBUS_WRITE) {
++ len = data->block[0];
++ if (len == 0 || len > I2C_SMBUS_BLOCK_MAX)
++ return -EINVAL;
++ outb_p(len, SMBBLKSZ);
++
++ cnt = 1;
++ if (len >= 4) {
++ for (i = cnt; i <= 4; i++) {
++ outb_p(data->block[i], SMBHSTDAT);
++ }
++
++ len -= 4;
++ cnt += 4;
++ }
++ else {
++ for (i = cnt; i <= len; i++ ) {
++ outb_p(data->block[i], SMBHSTDAT);
++ }
++
++ len = 0;
++ }
++
++ outb_p(NCT6793D_WRITE_BLOCK, SMBHSTCMD);
++ }
++ else {
++ return -ENOTSUPP;
++ }
++ break;
++ default:
++ dev_warn(&adap->dev, "Unsupported transaction %d\n", size);
++ return -EOPNOTSUPP;
++ }
++
++ outb_p(NCT6793D_MANUAL_START, SMBHSTCTL);
++
++ while ((size == I2C_SMBUS_BLOCK_DATA) && (len > 0)) {
++ if (read_write == I2C_SMBUS_WRITE) {
++ timeout = 0;
++ while ((inb_p(SMBHSTSTS) & NCT6793D_FIFO_EMPTY) == 0)
++ {
++ if(timeout > MAX_RETRIES)
++ {
++ return -ETIMEDOUT;
++ }
++ usleep_range(250, 500);
++ timeout++;
++ }
++
++ //Load more bytes into FIFO
++ if (len >= 4) {
++ for (i = cnt; i <= (cnt + 4); i++) {
++ outb_p(data->block[i], SMBHSTDAT);
++ }
++
++ len -= 4;
++ cnt += 4;
++ }
++ else {
++ for (i = cnt; i <= (cnt + len); i++) {
++ outb_p(data->block[i], SMBHSTDAT);
++ }
++
++ len = 0;
++ }
++ }
++ else {
++ return -ENOTSUPP;
++ }
++
++ }
++
++ //wait for manual mode to complete
++ timeout = 0;
++ while ((inb_p(SMBHSTSTS) & NCT6793D_MANUAL_ACTIVE) != 0)
++ {
++ if(timeout > MAX_RETRIES)
++ {
++ return -ETIMEDOUT;
++ }
++ usleep_range(250, 500);
++ timeout++;
++ }
++
++ if ((inb_p(SMBHSTERR) & NCT6793D_NO_ACK) != 0) {
++ return -ENXIO;
++ }
++ else if ((read_write == I2C_SMBUS_WRITE) || (size == I2C_SMBUS_QUICK)) {
++ return 0;
++ }
++
++ switch (size) {
++ case I2C_SMBUS_QUICK:
++ case I2C_SMBUS_BYTE_DATA:
++ data->byte = inb_p(SMBHSTDAT);
++ break;
++ case I2C_SMBUS_WORD_DATA:
++ data->word = inb_p(SMBHSTDAT) + (inb_p(SMBHSTDAT) << 8);
++ break;
++ }
++ return 0;
++}
++
++static u32 nct6775_func(struct i2c_adapter *adapter)
++{
++ return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE |
++ I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |
++ I2C_FUNC_SMBUS_BLOCK_DATA;
++}
++
++static const struct i2c_algorithm smbus_algorithm = {
++ .smbus_xfer = nct6775_access,
++ .functionality = nct6775_func,
++};
++
++static int nct6775_add_adapter(unsigned short smba, const char *name, struct i2c_adapter **padap)
++{
++ struct i2c_adapter *adap;
++ struct i2c_nct6775_adapdata *adapdata;
++ int retval;
++
++ adap = kzalloc(sizeof(*adap), GFP_KERNEL);
++ if (adap == NULL) {
++ return -ENOMEM;
++ }
++
++ adap->owner = THIS_MODULE;
++ adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
++ adap->algo = &smbus_algorithm;
++
++ adapdata = kzalloc(sizeof(*adapdata), GFP_KERNEL);
++ if (adapdata == NULL) {
++ kfree(adap);
++ return -ENOMEM;
++ }
++
++ adapdata->smba = smba;
++
++ snprintf(adap->name, sizeof(adap->name),
++ "SMBus NCT67xx adapter%s at %04x", name, smba);
++
++ i2c_set_adapdata(adap, adapdata);
++
++ retval = i2c_add_adapter(adap);
++ if (retval) {
++ kfree(adapdata);
++ kfree(adap);
++ return retval;
++ }
++
++ *padap = adap;
++ return 0;
++}
++
++static void nct6775_remove_adapter(struct i2c_adapter *adap)
++{
++ struct i2c_nct6775_adapdata *adapdata = i2c_get_adapdata(adap);
++
++ if (adapdata->smba) {
++ i2c_del_adapter(adap);
++ kfree(adapdata);
++ kfree(adap);
++ }
++}
++
++//static SIMPLE_DEV_PM_OPS(nct6775_dev_pm_ops, nct6775_suspend, nct6775_resume);
++
++/*
++ * when Super-I/O functions move to a separate file, the Super-I/O
++ * bus will manage the lifetime of the device and this module will only keep
++ * track of the nct6775 driver. But since we use platform_device_alloc(), we
++ * must keep track of the device
++ */
++static struct platform_device *pdev[2];
++
++static int nct6775_probe(struct platform_device *pdev)
++{
++ struct device *dev = &pdev->dev;
++ struct nct6775_sio_data *sio_data = dev_get_platdata(dev);
++ struct resource *res;
++
++ res = platform_get_resource(pdev, IORESOURCE_IO, 0);
++ if (!devm_request_region(&pdev->dev, res->start, IOREGION_LENGTH,
++ DRVNAME))
++ return -EBUSY;
++
++ switch (sio_data->kind) {
++ case nct6791:
++ case nct6792:
++ case nct6793:
++ case nct6795:
++ case nct6796:
++ case nct6798:
++ nct6775_add_adapter(res->start, "", &nct6775_adapter);
++ break;
++ default:
++ return -ENODEV;
++ }
++
++ return 0;
++}
++/*
++static void nct6791_enable_io_mapping(int sioaddr)
++{
++ int val;
++
++ val = superio_inb(sioaddr, NCT6791_REG_HM_IO_SPACE_LOCK_ENABLE);
++ if (val & 0x10) {
++ pr_info("Enabling hardware monitor logical device mappings.\n");
++ superio_outb(sioaddr, NCT6791_REG_HM_IO_SPACE_LOCK_ENABLE,
++ val & ~0x10);
++ }
++}*/
++
++static struct platform_driver i2c_nct6775_driver = {
++ .driver = {
++ .name = DRVNAME,
++// .pm = &nct6775_dev_pm_ops,
++ },
++ .probe = nct6775_probe,
++};
++
++static void __exit i2c_nct6775_exit(void)
++{
++ int i;
++
++ if(nct6775_adapter)
++ nct6775_remove_adapter(nct6775_adapter);
++
++ for (i = 0; i < ARRAY_SIZE(pdev); i++) {
++ if (pdev[i])
++ platform_device_unregister(pdev[i]);
++ }
++ platform_driver_unregister(&i2c_nct6775_driver);
++}
++
++/* nct6775_find() looks for a '627 in the Super-I/O config space */
++static int __init nct6775_find(int sioaddr, struct nct6775_sio_data *sio_data)
++{
++ u16 val;
++ int err;
++ int addr;
++
++ err = superio_enter(sioaddr);
++ if (err)
++ return err;
++
++ val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) |
++ superio_inb(sioaddr, SIO_REG_DEVID + 1);
++
++ switch (val & SIO_ID_MASK) {
++ case SIO_NCT6106_ID:
++ sio_data->kind = nct6106;
++ break;
++ case SIO_NCT6775_ID:
++ sio_data->kind = nct6775;
++ break;
++ case SIO_NCT6776_ID:
++ sio_data->kind = nct6776;
++ break;
++ case SIO_NCT6779_ID:
++ sio_data->kind = nct6779;
++ break;
++ case SIO_NCT6791_ID:
++ sio_data->kind = nct6791;
++ break;
++ case SIO_NCT6792_ID:
++ sio_data->kind = nct6792;
++ break;
++ case SIO_NCT6793_ID:
++ sio_data->kind = nct6793;
++ break;
++ case SIO_NCT6795_ID:
++ sio_data->kind = nct6795;
++ break;
++ case SIO_NCT6796_ID:
++ sio_data->kind = nct6796;
++ break;
++ case SIO_NCT6798_ID:
++ sio_data->kind = nct6798;
++ break;
++ default:
++ if (val != 0xffff)
++ pr_debug("unsupported chip ID: 0x%04x\n", val);
++ superio_exit(sioaddr);
++ return -ENODEV;
++ }
++
++ /* We have a known chip, find the SMBus I/O address */
++ superio_select(sioaddr, NCT6775_LD_SMBUS);
++ val = (superio_inb(sioaddr, SIO_REG_SMBA) << 8)
++ | superio_inb(sioaddr, SIO_REG_SMBA + 1);
++ addr = val & IOREGION_ALIGNMENT;
++ if (addr == 0) {
++ pr_err("Refusing to enable a Super-I/O device with a base I/O port 0\n");
++ superio_exit(sioaddr);
++ return -ENODEV;
++ }
++
++ //if (sio_data->kind == nct6791 || sio_data->kind == nct6792 ||
++ // sio_data->kind == nct6793 || sio_data->kind == nct6795 ||
++ // sio_data->kind == nct6796)
++ // nct6791_enable_io_mapping(sioaddr);
++
++ superio_exit(sioaddr);
++ pr_info("Found %s or compatible chip at %#x:%#x\n",
++ nct6775_sio_names[sio_data->kind], sioaddr, addr);
++ sio_data->sioreg = sioaddr;
++
++ return addr;
++}
++
++static int __init i2c_nct6775_init(void)
++{
++ int i, err;
++ bool found = false;
++ int address;
++ struct resource res;
++ struct nct6775_sio_data sio_data;
++ int sioaddr[2] = { 0x2e, 0x4e };
++
++ err = platform_driver_register(&i2c_nct6775_driver);
++ if (err)
++ return err;
++
++ /*
++ * initialize sio_data->kind and sio_data->sioreg.
++ *
++ * when Super-I/O functions move to a separate file, the Super-I/O
++ * driver will probe 0x2e and 0x4e and auto-detect the presence of a
++ * nct6775 hardware monitor, and call probe()
++ */
++ for (i = 0; i < ARRAY_SIZE(pdev); i++) {
++ address = nct6775_find(sioaddr[i], &sio_data);
++ if (address <= 0)
++ continue;
++
++ found = true;
++
++ pdev[i] = platform_device_alloc(DRVNAME, address);
++ if (!pdev[i]) {
++ err = -ENOMEM;
++ goto exit_device_unregister;
++ }
++
++ err = platform_device_add_data(pdev[i], &sio_data,
++ sizeof(struct nct6775_sio_data));
++ if (err)
++ goto exit_device_put;
++
++ memset(&res, 0, sizeof(res));
++ res.name = DRVNAME;
++ res.start = address;
++ res.end = address + IOREGION_LENGTH - 1;
++ res.flags = IORESOURCE_IO;
++
++ err = acpi_check_resource_conflict(&res);
++ if (err) {
++ platform_device_put(pdev[i]);
++ pdev[i] = NULL;
++ continue;
++ }
++
++ err = platform_device_add_resources(pdev[i], &res, 1);
++ if (err)
++ goto exit_device_put;
++
++ /* platform_device_add calls probe() */
++ err = platform_device_add(pdev[i]);
++ if (err)
++ goto exit_device_put;
++ }
++ if (!found) {
++ err = -ENODEV;
++ goto exit_unregister;
++ }
++
++ return 0;
++
++exit_device_put:
++ platform_device_put(pdev[i]);
++exit_device_unregister:
++ while (--i >= 0) {
++ if (pdev[i])
++ platform_device_unregister(pdev[i]);
++ }
++exit_unregister:
++ platform_driver_unregister(&i2c_nct6775_driver);
++ return err;
++}
++
++MODULE_AUTHOR("Adam Honse <calcprogrammer1@gmail.com>");
++MODULE_DESCRIPTION("SMBus driver for NCT6775F and compatible chips");
++MODULE_LICENSE("GPL");
++
++module_init(i2c_nct6775_init);
++module_exit(i2c_nct6775_exit);
+diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
+index 30ded6422e7b..e25ce84c26af 100644
+--- a/drivers/i2c/busses/i2c-piix4.c
++++ b/drivers/i2c/busses/i2c-piix4.c
+@@ -467,11 +467,11 @@ static int piix4_transaction(struct i2c_adapter *piix4_adapter)
+ if (srvrworks_csb5_delay) /* Extra delay for SERVERWORKS_CSB5 */
+ usleep_range(2000, 2100);
+ else
+- usleep_range(250, 500);
++ usleep_range(25, 50);
+
+ while ((++timeout < MAX_TIMEOUT) &&
+ ((temp = inb_p(SMBHSTSTS)) & 0x01))
+- usleep_range(250, 500);
++ usleep_range(25, 50);
+
+ /* If the SMBus is still busy, we give up */
+ if (timeout == MAX_TIMEOUT) {
+@@ -981,6 +981,11 @@ static int piix4_probe(struct pci_dev *dev, const struct pci_device_id *id)
+ retval = piix4_setup_sb800(dev, id, 1);
+ }
+
++ if (dev->vendor == PCI_VENDOR_ID_AMD &&
++ dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) {
++ retval = piix4_setup_sb800(dev, id, 1);
++ }
++
+ if (retval > 0) {
+ /* Try to add the aux adapter if it exists,
+ * piix4_add_adapter will clean up if this fails */
diff --git a/SOURCES/Patchlist.changelog b/SOURCES/Patchlist.changelog
index 3c544c0..c27ff64 100644
--- a/SOURCES/Patchlist.changelog
+++ b/SOURCES/Patchlist.changelog
@@ -1,3 +1,6 @@
+https://gitlab.com/cki-project/kernel-ark/-/commit/26fb1eba374faf7704bab5126612ae87b9f9f9fa
+ 26fb1eba374faf7704bab5126612ae87b9f9f9fa selinux: Allow context mounts for unpriviliged overlayfs
+
https://gitlab.com/cki-project/kernel-ark/-/commit/b8c43c4d0bdf8d9f4210e9f3263771c9f76d12bc
b8c43c4d0bdf8d9f4210e9f3263771c9f76d12bc Fix up merge issue resulting in dual entries for ALC295_FIXUP_ASUS_DACS
diff --git a/SOURCES/filter-aarch64.sh b/SOURCES/filter-aarch64.sh
index 969c482..49852b5 100644
--- a/SOURCES/filter-aarch64.sh
+++ b/SOURCES/filter-aarch64.sh
@@ -9,10 +9,10 @@
# modifications to the overrides below. If something should be removed across
# all arches, remove it in the default instead of per-arch.
-driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia power ssb soundwire staging tty uio uwb w1"
+driverdirs="atm auxdisplay bcma bluetooth firewire fpga infiniband leds media memstick message mmc mtd nfc ntb pcmcia power ssb soundwire staging tty uio w1"
-ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell micrel myricom neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom"
+ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex marvell micrel myricom neterion nvidia packetengines qlogic rdc sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom"
-drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel pl111 radeon rockchip tegra sun4i sun4i-drm-hdmi tinydrm vc4"
+drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel pl111 radeon rockchip tegra sun4i tiny vc4"
-singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls rnbd-client rnbd-server mlx5_vdpa"
+singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr rnbd-client rnbd-server mlx5_vdpa dfl-emif octeontx2-cpt octeontx2-cptvf"
diff --git a/SOURCES/filter-armv7hl.sh b/SOURCES/filter-armv7hl.sh
index 3602743..03737ed 100644
--- a/SOURCES/filter-armv7hl.sh
+++ b/SOURCES/filter-armv7hl.sh
@@ -9,10 +9,10 @@
# modifications to the overrides below. If something should be removed across
# all arches, remove it in the default instead of per-arch.
-driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn media memstick message nfc ntb pcmcia ssb soundwire staging tty uio uwb w1"
+driverdirs="atm auxdisplay bcma bluetooth firewire fpga infiniband media memstick message nfc ntb pcmcia ssb soundwire staging tty uio w1"
-ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex icplus mellanox micrel myricom natsemi neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis sun tehuti via wiznet xircom"
+ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex mellanox micrel myricom natsemi neterion nvidia packetengines qlogic rdc sfc silan sis sun tehuti via wiznet xircom"
-drmdrvs="amd arm armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm nouveau omapdrm panel pl111 radeon rockchip sti stm sun4i sun4i-drm-hdmi tegra tilcdc tinydrm vc4"
+drmdrvs="amd arm armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm nouveau omapdrm panel pl111 radeon rockchip sti stm sun4i tegra tilcdc tiny vc4"
-singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls bq27xxx_battery_hdq mlx5_vdpa"
+singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr bq27xxx_battery_hdq mlx5_vdpa dfl-emif"
diff --git a/SOURCES/filter-i686.sh b/SOURCES/filter-i686.sh
index 1a13ddf..3ab2f63 100644
--- a/SOURCES/filter-i686.sh
+++ b/SOURCES/filter-i686.sh
@@ -9,6 +9,6 @@
# modifications to the overrides below. If something should be removed across
# all arches, remove it in the default instead of per-arch.
-driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1"
+driverdirs="atm auxdisplay bcma bluetooth firewire fpga infiniband leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio w1"
-singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation hid-sensor-temperature hid-sensor-humidity target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus"
+singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation hid-sensor-temperature hid-sensor-humidity target_core_user sbp_target cxgbit chcr parport_serial regmap-sdw hid-asus"
diff --git a/SOURCES/filter-modules.sh b/SOURCES/filter-modules.sh
index 3e84eeb..5ad908a 100755
--- a/SOURCES/filter-modules.sh
+++ b/SOURCES/filter-modules.sh
@@ -17,29 +17,27 @@
overrides="cec"
# Set the default dirs/modules to filter out
-driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1"
+driverdirs="atm auxdisplay bcma bluetooth firewire fpga infiniband leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio w1"
chardrvs="mwave pcmcia"
-netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless"
+netdrvs="appletalk can dsa hamradio ieee802154 ppp slip usb wireless"
-ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell mellanox neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
+ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex marvell mellanox neterion nvidia packetengines qlogic rdc sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
inputdrvs="gameport tablet touchscreen"
-scsidrvs="aacraid advansys aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf wd719x"
+scsidrvs="aacraid aic7xxx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf"
-usbdrvs="atm image misc serial wusbcore"
+usbdrvs="atm image misc serial"
-fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus jfs jffs2 minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs"
+fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus jfs jffs2 minix nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs"
-netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless"
+netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dsa ieee802154 l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless"
drmdrvs="amd ast bridge gma500 i2c i915 mgag200 nouveau panel radeon"
-iiodrvs="accel adc afe common dac gyro health humidity light magnetometer multiplexer orientation potentiometer potentiostat pressure temperature"
-
-singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus iTCO_wdt rnbd-client rnbd-server mlx5_vdpa"
+singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr parport_serial regmap-sdw hid-asus iTCO_wdt rnbd-client rnbd-server mlx5_vdpa"
# Grab the arch-specific filter list overrides
source ./filter-$2.sh
@@ -93,7 +91,7 @@ done
# Filter the char drivers
for char in ${chardrvs}
do
- filter_dir $1 drivers/char/${input}
+ filter_dir $1 drivers/char/${char}
done
# Filter the ethernet drivers
diff --git a/SOURCES/filter-ppc64le.sh b/SOURCES/filter-ppc64le.sh
index 0701491..972298e 100644
--- a/SOURCES/filter-ppc64le.sh
+++ b/SOURCES/filter-ppc64le.sh
@@ -9,6 +9,6 @@
# modifications to the overrides below. If something should be removed across
# all arches, remove it in the default instead of per-arch.
-driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1"
+driverdirs="atm auxdisplay bcma bluetooth firewire fpga infiniband leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging tty uio w1"
-singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls rnbd-client rnbd-server mlx5_vdpa"
+singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr rnbd-client rnbd-server mlx5_vdpa"
diff --git a/SOURCES/kernel-aarch64-debug-fedora.config b/SOURCES/kernel-aarch64-debug-fedora.config
index 6e70c65..b15a69d 100644
--- a/SOURCES/kernel-aarch64-debug-fedora.config
+++ b/SOURCES/kernel-aarch64-debug-fedora.config
@@ -2665,6 +2665,7 @@ CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_MV64XXX=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
diff --git a/SOURCES/kernel-aarch64-debug-rhel.config b/SOURCES/kernel-aarch64-debug-rhel.config
index 94c1d8b..d2fb3d8 100644
--- a/SOURCES/kernel-aarch64-debug-rhel.config
+++ b/SOURCES/kernel-aarch64-debug-rhel.config
@@ -2093,6 +2093,7 @@ CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/kernel-aarch64-fedora.config b/SOURCES/kernel-aarch64-fedora.config
index 1026a5e..6c747d8 100644
--- a/SOURCES/kernel-aarch64-fedora.config
+++ b/SOURCES/kernel-aarch64-fedora.config
@@ -2649,6 +2649,7 @@ CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_MV64XXX=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
diff --git a/SOURCES/kernel-aarch64-rhel.config b/SOURCES/kernel-aarch64-rhel.config
index 81a8a29..1d40824 100644
--- a/SOURCES/kernel-aarch64-rhel.config
+++ b/SOURCES/kernel-aarch64-rhel.config
@@ -2077,6 +2077,7 @@ CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/kernel-armv7hl-debug-fedora.config b/SOURCES/kernel-armv7hl-debug-fedora.config
index 90dd886..13c0dfa 100644
--- a/SOURCES/kernel-armv7hl-debug-fedora.config
+++ b/SOURCES/kernel-armv7hl-debug-fedora.config
@@ -2691,6 +2691,7 @@ CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_MV64XXX=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
diff --git a/SOURCES/kernel-armv7hl-fedora.config b/SOURCES/kernel-armv7hl-fedora.config
index 61ff6b4..e4aa888 100644
--- a/SOURCES/kernel-armv7hl-fedora.config
+++ b/SOURCES/kernel-armv7hl-fedora.config
@@ -2676,6 +2676,7 @@ CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_MV64XXX=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
diff --git a/SOURCES/kernel-armv7hl-lpae-debug-fedora.config b/SOURCES/kernel-armv7hl-lpae-debug-fedora.config
index c342465..46ebd88 100644
--- a/SOURCES/kernel-armv7hl-lpae-debug-fedora.config
+++ b/SOURCES/kernel-armv7hl-lpae-debug-fedora.config
@@ -2636,6 +2636,7 @@ CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_MV64XXX=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
diff --git a/SOURCES/kernel-armv7hl-lpae-fedora.config b/SOURCES/kernel-armv7hl-lpae-fedora.config
index 9e94fad..21022df 100644
--- a/SOURCES/kernel-armv7hl-lpae-fedora.config
+++ b/SOURCES/kernel-armv7hl-lpae-fedora.config
@@ -2621,6 +2621,7 @@ CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_MV64XXX=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
diff --git a/SOURCES/kernel-i686-debug-fedora.config b/SOURCES/kernel-i686-debug-fedora.config
index 290291a..b51710c 100644
--- a/SOURCES/kernel-i686-debug-fedora.config
+++ b/SOURCES/kernel-i686-debug-fedora.config
@@ -2333,6 +2333,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_NVIDIA_GPU=m
diff --git a/SOURCES/kernel-i686-fedora.config b/SOURCES/kernel-i686-fedora.config
index 9c96ad1..c12a3f6 100644
--- a/SOURCES/kernel-i686-fedora.config
+++ b/SOURCES/kernel-i686-fedora.config
@@ -2316,6 +2316,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_NVIDIA_GPU=m
diff --git a/SOURCES/kernel-ppc64le-debug-fedora.config b/SOURCES/kernel-ppc64le-debug-fedora.config
index a958ce9..de1f853 100644
--- a/SOURCES/kernel-ppc64le-debug-fedora.config
+++ b/SOURCES/kernel-ppc64le-debug-fedora.config
@@ -2166,6 +2166,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
CONFIG_I2C_NVIDIA_GPU=m
diff --git a/SOURCES/kernel-ppc64le-debug-rhel.config b/SOURCES/kernel-ppc64le-debug-rhel.config
index 463038c..73110f6 100644
--- a/SOURCES/kernel-ppc64le-debug-rhel.config
+++ b/SOURCES/kernel-ppc64le-debug-rhel.config
@@ -1939,6 +1939,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/kernel-ppc64le-fedora.config b/SOURCES/kernel-ppc64le-fedora.config
index 6e91bfe..e55626d 100644
--- a/SOURCES/kernel-ppc64le-fedora.config
+++ b/SOURCES/kernel-ppc64le-fedora.config
@@ -2149,6 +2149,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
CONFIG_I2C_NVIDIA_GPU=m
diff --git a/SOURCES/kernel-ppc64le-rhel.config b/SOURCES/kernel-ppc64le-rhel.config
index 209c0ce..644695a 100644
--- a/SOURCES/kernel-ppc64le-rhel.config
+++ b/SOURCES/kernel-ppc64le-rhel.config
@@ -1923,6 +1923,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/kernel-s390x-debug-fedora.config b/SOURCES/kernel-s390x-debug-fedora.config
index fabbe5b..8a4b742 100644
--- a/SOURCES/kernel-s390x-debug-fedora.config
+++ b/SOURCES/kernel-s390x-debug-fedora.config
@@ -2151,6 +2151,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_NFORCE2_S4985 is not set
CONFIG_I2C_NVIDIA_GPU=m
diff --git a/SOURCES/kernel-s390x-debug-rhel.config b/SOURCES/kernel-s390x-debug-rhel.config
index 2548713..2cd5788 100644
--- a/SOURCES/kernel-s390x-debug-rhel.config
+++ b/SOURCES/kernel-s390x-debug-rhel.config
@@ -1925,6 +1925,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/kernel-s390x-fedora.config b/SOURCES/kernel-s390x-fedora.config
index 1e0dbbd..50e601a 100644
--- a/SOURCES/kernel-s390x-fedora.config
+++ b/SOURCES/kernel-s390x-fedora.config
@@ -2134,6 +2134,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_NFORCE2_S4985 is not set
CONFIG_I2C_NVIDIA_GPU=m
diff --git a/SOURCES/kernel-s390x-rhel.config b/SOURCES/kernel-s390x-rhel.config
index 6007e05..172a6be 100644
--- a/SOURCES/kernel-s390x-rhel.config
+++ b/SOURCES/kernel-s390x-rhel.config
@@ -1909,6 +1909,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/kernel-s390x-zfcpdump-rhel.config b/SOURCES/kernel-s390x-zfcpdump-rhel.config
index 0624d73..29b0324 100644
--- a/SOURCES/kernel-s390x-zfcpdump-rhel.config
+++ b/SOURCES/kernel-s390x-zfcpdump-rhel.config
@@ -1924,6 +1924,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/kernel-x86_64-debug-fedora.config b/SOURCES/kernel-x86_64-debug-fedora.config
index 7b3ec53..65a0a44 100644
--- a/SOURCES/kernel-x86_64-debug-fedora.config
+++ b/SOURCES/kernel-x86_64-debug-fedora.config
@@ -2371,6 +2371,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_NVIDIA_GPU=m
diff --git a/SOURCES/kernel-x86_64-debug-rhel.config b/SOURCES/kernel-x86_64-debug-rhel.config
index 2a40e17..c9eb334 100644
--- a/SOURCES/kernel-x86_64-debug-rhel.config
+++ b/SOURCES/kernel-x86_64-debug-rhel.config
@@ -2074,6 +2074,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/kernel-x86_64-fedora.config b/SOURCES/kernel-x86_64-fedora.config
index 96e6ac0..363ffe6 100644
--- a/SOURCES/kernel-x86_64-fedora.config
+++ b/SOURCES/kernel-x86_64-fedora.config
@@ -2354,6 +2354,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_NVIDIA_GPU=m
diff --git a/SOURCES/kernel-x86_64-rhel.config b/SOURCES/kernel-x86_64-rhel.config
index 43966f5..0db54ef 100644
--- a/SOURCES/kernel-x86_64-rhel.config
+++ b/SOURCES/kernel-x86_64-rhel.config
@@ -2058,6 +2058,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NCT6775=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
# CONFIG_I2C_NOMADIK is not set
diff --git a/SOURCES/patch-5.12-redhat.patch b/SOURCES/patch-5.12-redhat.patch
index 8392e61..a082bca 100644
--- a/SOURCES/patch-5.12-redhat.patch
+++ b/SOURCES/patch-5.12-redhat.patch
@@ -35,12 +35,12 @@
include/linux/security.h | 5 +
kernel/crash_core.c | 28 ++++-
kernel/module_signing.c | 9 +-
- net/can/isotp.c | 49 +++++---
security/integrity/platform_certs/load_uefi.c | 6 +-
security/lockdown/Kconfig | 13 +++
security/lockdown/lockdown.c | 1 +
security/security.c | 6 +
- 42 files changed, 652 insertions(+), 193 deletions(-)
+ security/selinux/hooks.c | 3 +-
+ 42 files changed, 621 insertions(+), 178 deletions(-)
diff --git a/Documentation/admin-guide/kdump/kdump.rst b/Documentation/admin-guide/kdump/kdump.rst
index 75a9dd98e76e..3ff3291551f9 100644
@@ -65,7 +65,7 @@ index 75a9dd98e76e..3ff3291551f9 100644
Boot into System Kernel
diff --git a/Makefile b/Makefile
-index 6a73dee7c221..585dfe88d94c 100644
+index d53577db1085..a34665269a9a 100644
--- a/Makefile
+++ b/Makefile
@@ -495,6 +495,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
@@ -1468,95 +1468,6 @@ index 8723ae70ea1f..fb2d773498c2 100644
+ }
+ return ret;
}
-diff --git a/net/can/isotp.c b/net/can/isotp.c
-index 9f94ad3caee9..253b24417c8e 100644
---- a/net/can/isotp.c
-+++ b/net/can/isotp.c
-@@ -1062,27 +1062,31 @@ static int isotp_bind(struct socket *sock, struct sockaddr *uaddr, int len)
- if (len < ISOTP_MIN_NAMELEN)
- return -EINVAL;
-
-+ if (addr->can_addr.tp.tx_id & (CAN_ERR_FLAG | CAN_RTR_FLAG))
-+ return -EADDRNOTAVAIL;
-+
-+ if (!addr->can_ifindex)
-+ return -ENODEV;
-+
-+ lock_sock(sk);
-+
- /* do not register frame reception for functional addressing */
- if (so->opt.flags & CAN_ISOTP_SF_BROADCAST)
- do_rx_reg = 0;
-
- /* do not validate rx address for functional addressing */
- if (do_rx_reg) {
-- if (addr->can_addr.tp.rx_id == addr->can_addr.tp.tx_id)
-- return -EADDRNOTAVAIL;
-+ if (addr->can_addr.tp.rx_id == addr->can_addr.tp.tx_id) {
-+ err = -EADDRNOTAVAIL;
-+ goto out;
-+ }
-
-- if (addr->can_addr.tp.rx_id & (CAN_ERR_FLAG | CAN_RTR_FLAG))
-- return -EADDRNOTAVAIL;
-+ if (addr->can_addr.tp.rx_id & (CAN_ERR_FLAG | CAN_RTR_FLAG)) {
-+ err = -EADDRNOTAVAIL;
-+ goto out;
-+ }
- }
-
-- if (addr->can_addr.tp.tx_id & (CAN_ERR_FLAG | CAN_RTR_FLAG))
-- return -EADDRNOTAVAIL;
--
-- if (!addr->can_ifindex)
-- return -ENODEV;
--
-- lock_sock(sk);
--
- if (so->bound && addr->can_ifindex == so->ifindex &&
- addr->can_addr.tp.rx_id == so->rxid &&
- addr->can_addr.tp.tx_id == so->txid)
-@@ -1164,16 +1168,13 @@ static int isotp_getname(struct socket *sock, struct sockaddr *uaddr, int peer)
- return ISOTP_MIN_NAMELEN;
- }
-
--static int isotp_setsockopt(struct socket *sock, int level, int optname,
-+static int isotp_setsockopt_locked(struct socket *sock, int level, int optname,
- sockptr_t optval, unsigned int optlen)
- {
- struct sock *sk = sock->sk;
- struct isotp_sock *so = isotp_sk(sk);
- int ret = 0;
-
-- if (level != SOL_CAN_ISOTP)
-- return -EINVAL;
--
- if (so->bound)
- return -EISCONN;
-
-@@ -1248,6 +1249,22 @@ static int isotp_setsockopt(struct socket *sock, int level, int optname,
- return ret;
- }
-
-+static int isotp_setsockopt(struct socket *sock, int level, int optname,
-+ sockptr_t optval, unsigned int optlen)
-+
-+{
-+ struct sock *sk = sock->sk;
-+ int ret;
-+
-+ if (level != SOL_CAN_ISOTP)
-+ return -EINVAL;
-+
-+ lock_sock(sk);
-+ ret = isotp_setsockopt_locked(sock, level, optname, optval, optlen);
-+ release_sock(sk);
-+ return ret;
-+}
-+
- static int isotp_getsockopt(struct socket *sock, int level, int optname,
- char __user *optval, int __user *optlen)
- {
diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c
index ee4b4c666854..eff9ff593405 100644
--- a/security/integrity/platform_certs/load_uefi.c
@@ -1634,3 +1545,17 @@ index 5ac96b16f8fa..fc47d6de57ee 100644
#ifdef CONFIG_PERF_EVENTS
int security_perf_event_open(struct perf_event_attr *attr, int type)
{
+diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
+index ddd097790d47..eca9fc0ba764 100644
+--- a/security/selinux/hooks.c
++++ b/security/selinux/hooks.c
+@@ -760,7 +760,8 @@ static int selinux_set_mnt_opts(struct super_block *sb,
+ if (sb->s_user_ns != &init_user_ns &&
+ strcmp(sb->s_type->name, "tmpfs") &&
+ strcmp(sb->s_type->name, "ramfs") &&
+- strcmp(sb->s_type->name, "devpts")) {
++ strcmp(sb->s_type->name, "devpts") &&
++ strcmp(sb->s_type->name, "overlay")) {
+ if (context_sid || fscontext_sid || rootcontext_sid ||
+ defcontext_sid) {
+ rc = -EACCES;
diff --git a/SPECS/kernel.spec b/SPECS/kernel.spec
index d0b0dc4..9c3a491 100755
--- a/SPECS/kernel.spec
+++ b/SPECS/kernel.spec
@@ -106,7 +106,7 @@ Summary: The Linux kernel
%define primary_target rhel
%endif
-%define rpmversion 5.12.8
+%define rpmversion 5.12.9
%define stableversion 5.12
%define pkgrelease 301
@@ -623,7 +623,7 @@ BuildRequires: clang
# exact git commit you can run
#
# xzcat -qq ${TARBALL} | git get-tar-commit-id
-Source0: linux-5.12.8.tar.xz
+Source0: linux-5.12.9.tar.xz
Source1: Makefile.rhelver
@@ -781,6 +781,7 @@ Patch1: patch-%{stableversion}-redhat.patch
# linux-fsync patches
Patch200: zen.patch
Patch201: futex2.patch
+Patch202: OpenRGB.patch
%endif
# empty final patch to facilitate testing of kernel patches
@@ -1281,8 +1282,8 @@ ApplyOptionalPatch()
fi
}
-%setup -q -n kernel-5.12.8 -c
-mv linux-5.12.8 linux-%{KVERREL}
+%setup -q -n kernel-5.12.9 -c
+mv linux-5.12.9 linux-%{KVERREL}
cd linux-%{KVERREL}
cp -a %{SOURCE1} .
@@ -1294,6 +1295,7 @@ ApplyOptionalPatch patch-%{stableversion}-redhat.patch
# linux-fsync patches
ApplyOptionalPatch zen.patch
ApplyOptionalPatch futex2.patch
+ApplyOptionalPatch OpenRGB.patch
%endif
ApplyOptionalPatch linux-kernel-test.patch
@@ -2800,8 +2802,11 @@ fi
#
#
%changelog
-* Wed Jun 02 2021 Jan Drögehoff <sentrycraft123@gmail.com> - 5.12.8-300
-- Linux v5.12.8 futex2 zen
+* Fri Jun 04 2021 Jan Drögehoff <sentrycraft123@gmail.com> - 5.12.9-301.fsync
+- Linux v5.12.8 futex2 zen openrgb
+
+* Thu Jun 03 2021 Justin M. Forbes <jforbes@fedoraproject.org> [5.12.9-0]
+- selinux: Allow context mounts for unpriviliged overlayfs (Vivek Goyal)
* Wed May 26 2021 Justin M. Forbes <jforbes@fedoraproject.org> [5.12.7-0]
- Fix up merge issue resulting in dual entries for ALC295_FIXUP_ASUS_DACS (Justin M. Forbes)