Commit 3c7088b5 authored by Ben Hutchings's avatar Ben Hutchings

Update to 4.16-rc5

parent b6d7061e
linux (4.15.4-2) UNRELEASED; urgency=medium
linux (4.16~rc5-1~exp1) UNRELEASED; urgency=medium
* New upstream release candidate
[ Uwe Kleine-König ]
* netfilter: enable NFT_FIB_NETDEV as module
From: Pierre <pinaraf@pinaraf.info>
Date: Sun, 12 Nov 2017 15:24:32 +0100
Subject: crypto: ecc - Fix NULL pointer deref. on no default_rng
Origin: https://git.kernel.org/linus/4c0e22c90510308433272d7ba281b1eb4eda8209
Bug-Debian: https://bugs.debian.org/886556
If crypto_get_default_rng returns an error, the
function ecc_gen_privkey should return an error.
Instead, it currently tries to use the default_rng
nevertheless, thus creating a kernel panic with a
NULL pointer dereference.
Returning the error directly, as was supposedly
intended when looking at the code, fixes this.
Signed-off-by: Pierre Ducroquet <pinaraf@pinaraf.info>
Reviewed-by: PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---
crypto/ecc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/crypto/ecc.c b/crypto/ecc.c
index 633a9bcdc574..18f32f2a5e1c 100644
--- a/crypto/ecc.c
+++ b/crypto/ecc.c
@@ -964,7 +964,7 @@ int ecc_gen_privkey(unsigned int curve_id, unsigned int ndigits, u64 *privkey)
* DRBG with a security strength of 256.
*/
if (crypto_get_default_rng())
- err = -EFAULT;
+ return -EFAULT;
err = crypto_rng_get_bytes(crypto_default_rng, (u8 *)priv, nbytes);
crypto_put_default_rng();
--
2.11.0
......@@ -16,7 +16,7 @@ correctness.
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -956,6 +956,7 @@ static int m88e1118_config_init(struct p
@@ -928,6 +928,7 @@ static int m88e1118_config_init(struct p
return genphy_soft_reset(phydev);
}
......@@ -24,7 +24,7 @@ correctness.
static int m88e1149_config_init(struct phy_device *phydev)
{
int err;
@@ -981,7 +982,9 @@ static int m88e1149_config_init(struct p
@@ -953,7 +954,9 @@ static int m88e1149_config_init(struct p
return genphy_soft_reset(phydev);
}
......@@ -33,8 +33,8 @@ correctness.
+#if 0
static int m88e1145_config_init_rgmii(struct phy_device *phydev)
{
int temp;
@@ -1063,6 +1066,7 @@ static int m88e1145_config_init(struct p
int err;
@@ -1028,6 +1031,7 @@ static int m88e1145_config_init(struct p
return 0;
}
......@@ -42,7 +42,7 @@ correctness.
/**
* fiber_lpa_to_ethtool_lpa_t
@@ -2059,6 +2063,7 @@ static struct phy_driver marvell_drivers
@@ -2102,6 +2106,7 @@ static struct phy_driver marvell_drivers
.get_strings = marvell_get_strings,
.get_stats = marvell_get_stats,
},
......@@ -50,7 +50,7 @@ correctness.
{
.phy_id = MARVELL_PHY_ID_88E1145,
.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -2077,6 +2082,8 @@ static struct phy_driver marvell_drivers
@@ -2122,6 +2127,8 @@ static struct phy_driver marvell_drivers
.get_strings = marvell_get_strings,
.get_stats = marvell_get_stats,
},
......@@ -59,7 +59,7 @@ correctness.
{
.phy_id = MARVELL_PHY_ID_88E1149R,
.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -2095,6 +2102,8 @@ static struct phy_driver marvell_drivers
@@ -2141,6 +2148,8 @@ static struct phy_driver marvell_drivers
.get_strings = marvell_get_strings,
.get_stats = marvell_get_stats,
},
......@@ -68,7 +68,7 @@ correctness.
{
.phy_id = MARVELL_PHY_ID_88E1240,
.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -2113,6 +2122,7 @@ static struct phy_driver marvell_drivers
@@ -2160,6 +2169,7 @@ static struct phy_driver marvell_drivers
.get_strings = marvell_get_strings,
.get_stats = marvell_get_stats,
},
......@@ -76,7 +76,7 @@ correctness.
{
.phy_id = MARVELL_PHY_ID_88E1116R,
.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -2240,9 +2250,9 @@ static struct mdio_device_id __maybe_unu
@@ -2296,9 +2306,9 @@ static struct mdio_device_id __maybe_unu
{ MARVELL_PHY_ID_88E1111, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK },
......
......@@ -342,7 +342,7 @@ upstream submission.
card->name, firmware->size);
--- a/drivers/media/tuners/tuner-xc2028.c
+++ b/drivers/media/tuners/tuner-xc2028.c
@@ -1370,7 +1370,6 @@ static void load_firmware_cb(const struc
@@ -1368,7 +1368,6 @@ static void load_firmware_cb(const struc
tuner_dbg("request_firmware_nowait(): %s\n", fw ? "OK" : "error");
if (!fw) {
......@@ -352,7 +352,7 @@ upstream submission.
}
--- a/drivers/media/usb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/usb/dvb-usb/dib0700_devices.c
@@ -2411,12 +2411,9 @@ static int stk9090m_frontend_attach(stru
@@ -2415,12 +2415,9 @@ static int stk9090m_frontend_attach(stru
dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80);
......@@ -367,7 +367,7 @@ upstream submission.
stk9090m_config.microcode_B_fe_size = state->frontend_firmware->size;
stk9090m_config.microcode_B_fe_buffer = state->frontend_firmware->data;
@@ -2477,12 +2474,9 @@ static int nim9090md_frontend_attach(str
@@ -2481,12 +2478,9 @@ static int nim9090md_frontend_attach(str
msleep(20);
dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
......@@ -705,7 +705,7 @@ upstream submission.
SMS_ALLOC_ALIGNMENT), GFP_KERNEL | GFP_DMA);
--- a/drivers/media/pci/ttpci/av7110.c
+++ b/drivers/media/pci/ttpci/av7110.c
@@ -1515,13 +1515,8 @@ static int get_firmware(struct av7110* a
@@ -1516,13 +1516,8 @@ static int get_firmware(struct av7110* a
/* request the av7110 firmware, this will block until someone uploads it */
ret = request_firmware(&fw, "dvb-ttpci-01.fw", &av7110->dev->pci->dev);
if (ret) {
......@@ -738,7 +738,7 @@ upstream submission.
release_firmware(fw);
--- a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
@@ -296,10 +296,8 @@ static int ttusb_boot_dsp(struct ttusb *
@@ -295,10 +295,8 @@ static int ttusb_boot_dsp(struct ttusb *
err = request_firmware(&fw, "ttusb-budget/dspbootcode.bin",
&ttusb->dev->dev);
......@@ -752,7 +752,7 @@ upstream submission.
b[0] = 0xaa;
--- a/drivers/media/usb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c
@@ -1344,11 +1344,8 @@ static int ttusb_dec_boot_dsp(struct ttu
@@ -1334,11 +1334,8 @@ static int ttusb_dec_boot_dsp(struct ttu
dprintk("%s\n", __func__);
result = request_firmware(&fw_entry, dec->firmware_name, &dec->udev->dev);
......@@ -796,7 +796,7 @@ upstream submission.
fw_data = (void *)fw_entry->data;
--- a/drivers/media/pci/bt8xx/bttv-cards.c
+++ b/drivers/media/pci/bt8xx/bttv-cards.c
@@ -3909,10 +3909,8 @@ static int pvr_boot(struct bttv *btv)
@@ -3916,10 +3916,8 @@ static int pvr_boot(struct bttv *btv)
int rc;
rc = request_firmware(&fw_entry, "hcwamc.rbf", &btv->c.pci->dev);
......@@ -1003,7 +1003,7 @@ upstream submission.
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -2307,10 +2307,8 @@ static int s2255_probe(struct usb_interf
@@ -2306,10 +2306,8 @@ static int s2255_probe(struct usb_interf
}
/* load the first chunk */
if (request_firmware(&dev->fw_data->fw,
......@@ -1017,7 +1017,7 @@ upstream submission.
pdata = (__le32 *) &dev->fw_data->fw->data[fw_size - 8];
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c
@@ -66,10 +66,8 @@ int s5p_mfc_load_firmware(struct s5p_mfc
@@ -69,10 +69,8 @@ int s5p_mfc_load_firmware(struct s5p_mfc
}
}
......@@ -1156,7 +1156,7 @@ upstream submission.
if (bp->mips_firmware->size < sizeof(*mips_fw) ||
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -13495,11 +13495,8 @@ static int bnx2x_init_firmware(struct bn
@@ -13524,11 +13524,8 @@ static int bnx2x_init_firmware(struct bn
BNX2X_DEV_INFO("Loading %s\n", fw_file_name);
rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev);
......@@ -1171,7 +1171,7 @@ upstream submission.
if (rc) {
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -11355,11 +11355,8 @@ static int tg3_request_firmware(struct t
@@ -11378,11 +11378,8 @@ static int tg3_request_firmware(struct t
{
const struct tg3_firmware_hdr *fw_hdr;
......@@ -1279,7 +1279,7 @@ upstream submission.
for (i = 0; i < fw->size; i++) {
--- a/drivers/net/ethernet/sun/cassini.c
+++ b/drivers/net/ethernet/sun/cassini.c
@@ -817,11 +817,8 @@ static void cas_saturn_firmware_init(str
@@ -818,11 +818,8 @@ static void cas_saturn_firmware_init(str
return;
err = request_firmware(&fw, fw_name, &cp->pdev->dev);
......@@ -1364,7 +1364,7 @@ upstream submission.
fwh = (struct at76_fw_header *)(fwe->fw->data);
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -1162,9 +1162,6 @@ static void ath9k_hif_usb_firmware_cb(co
@@ -1163,9 +1163,6 @@ static void ath9k_hif_usb_firmware_cb(co
if (!ret)
return;
......@@ -1541,7 +1541,7 @@ upstream submission.
adapter->firmware = firmware;
--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -5714,16 +5714,12 @@ static int mwl8k_firmware_load_success(s
@@ -5719,16 +5719,12 @@ static int mwl8k_firmware_load_success(s
static void mwl8k_fw_state_machine(const struct firmware *fw, void *context)
{
struct mwl8k_priv *priv = context;
......@@ -1559,7 +1559,7 @@ upstream submission.
priv->fw_helper = fw;
rc = mwl8k_request_fw(priv, priv->fw_pref, &priv->fw_ucode,
true);
@@ -5758,11 +5754,8 @@ static void mwl8k_fw_state_machine(const
@@ -5763,11 +5759,8 @@ static void mwl8k_fw_state_machine(const
break;
case FW_STATE_LOADING_ALT:
......@@ -1572,7 +1572,7 @@ upstream submission.
priv->fw_ucode = fw;
rc = mwl8k_firmware_load_success(priv);
if (rc)
@@ -5800,10 +5793,8 @@ retry:
@@ -5805,10 +5798,8 @@ retry:
/* Ask userland hotplug daemon for the device firmware */
rc = mwl8k_request_firmware(priv, fw_image, nowait);
......@@ -1741,7 +1741,7 @@ upstream submission.
wl1251_error("nvs size is not multiple of 32 bits: %zu",
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -756,10 +756,8 @@ static int wl12xx_fetch_firmware(struct
@@ -755,10 +755,8 @@ static int wl12xx_fetch_firmware(struct
ret = request_firmware(&fw, fw_name, wl->dev);
......@@ -1850,7 +1850,7 @@ upstream submission.
if (err) {
--- a/drivers/scsi/bfa/bfad.c
+++ b/drivers/scsi/bfa/bfad.c
@@ -1756,7 +1756,6 @@ bfad_read_firmware(struct pci_dev *pdev,
@@ -1755,7 +1755,6 @@ bfad_read_firmware(struct pci_dev *pdev,
const struct firmware *fw;
if (request_firmware(&fw, fw_name, &pdev->dev)) {
......@@ -1898,7 +1898,7 @@ upstream submission.
}
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -6906,8 +6906,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha,
@@ -7238,8 +7238,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha,
/* Load firmware blob. */
blob = qla2x00_request_firmware(vha);
if (!blob) {
......@@ -1907,7 +1907,7 @@ upstream submission.
ql_log(ql_log_info, vha, 0x0084,
"Firmware images can be retrieved from: "QLA_FW_URL ".\n");
return QLA_FUNCTION_FAILED;
@@ -7009,8 +7007,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t *
@@ -7341,8 +7339,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t *
/* Load firmware blob. */
blob = qla2x00_request_firmware(vha);
if (!blob) {
......@@ -1933,7 +1933,7 @@ upstream submission.
if (qla82xx_validate_firmware_blob(vha,
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -6269,8 +6269,6 @@ qla2x00_request_firmware(scsi_qla_host_t
@@ -6496,8 +6496,6 @@ qla2x00_request_firmware(scsi_qla_host_t
goto out;
if (request_firmware(&blob->fw, blob->name, &ha->pdev->dev)) {
......@@ -2015,18 +2015,6 @@ upstream submission.
ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2);
release_firmware(fw);
if (0 != ret) {
--- a/drivers/staging/media/lirc/lirc_zilog.c
+++ b/drivers/staging/media/lirc/lirc_zilog.c
@@ -752,9 +752,6 @@ static int fw_load(struct IR_tx *tx)
/* Request codeset data file */
ret = request_firmware(&fw_entry, "haup-ir-blaster.bin", tx->ir->dev);
if (ret != 0) {
- dev_err(tx->ir->dev,
- "firmware haup-ir-blaster.bin not available (%d)\n",
- ret);
ret = ret < 0 ? ret : -EFAULT;
goto out;
}
--- a/drivers/staging/rtl8192u/r819xU_firmware.c
+++ b/drivers/staging/rtl8192u/r819xU_firmware.c
@@ -245,10 +245,8 @@ bool init_firmware(struct net_device *de
......@@ -2081,7 +2069,7 @@ upstream submission.
*/
--- a/drivers/staging/vt6656/firmware.c
+++ b/drivers/staging/vt6656/firmware.c
@@ -49,11 +49,8 @@ int vnt_download_firmware(struct vnt_pri
@@ -39,11 +39,8 @@ int vnt_download_firmware(struct vnt_pri
dev_dbg(dev, "---->Download firmware\n");
rc = request_firmware(&fw, FIRMWARE_NAME, dev);
......@@ -2168,7 +2156,7 @@ upstream submission.
--- a/drivers/usb/atm/cxacru.c
+++ b/drivers/usb/atm/cxacru.c
@@ -1082,8 +1082,6 @@ static int cxacru_find_firmware(struct c
@@ -1080,8 +1080,6 @@ static int cxacru_find_firmware(struct c
return -ENOENT;
}
......@@ -2505,10 +2493,10 @@ upstream submission.
if (!chip->disabled) {
--- a/sound/pci/korg1212/korg1212.c
+++ b/sound/pci/korg1212/korg1212.c
@@ -2349,7 +2349,6 @@ static int snd_korg1212_create(struct sn
@@ -2348,7 +2348,6 @@ static int snd_korg1212_create(struct sn
err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev);
if (err < 0) {
release_firmware(dsp_code);
- snd_printk(KERN_ERR "firmware not available\n");
snd_korg1212_free(korg1212);
return err;
......@@ -2576,7 +2564,7 @@ upstream submission.
"too short firmware size %d (expected %d)\n",
--- a/sound/soc/codecs/wm2000.c
+++ b/sound/soc/codecs/wm2000.c
@@ -891,10 +891,8 @@ static int wm2000_i2c_probe(struct i2c_c
@@ -890,10 +890,8 @@ static int wm2000_i2c_probe(struct i2c_c
}
ret = request_firmware(&fw, filename, &i2c->dev);
......
......@@ -23,9 +23,9 @@ format to detect missing firmware.
---
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
@@ -450,21 +450,22 @@ fw_get_filesystem_firmware(struct device
rc = kernel_read_file_from_path(path, &buf->data, &size, msize,
id);
@@ -443,21 +443,22 @@ fw_get_filesystem_firmware(struct device
rc = kernel_read_file_from_path(path, &fw_priv->data, &size,
msize, id);
if (rc) {
- if (rc == -ENOENT)
- dev_dbg(device, "loading %s failed with error %d\n",
......@@ -37,23 +37,23 @@ format to detect missing firmware.
+ path, rc);
continue;
}
- dev_dbg(device, "direct-loading %s\n", buf->fw_id);
- dev_dbg(device, "direct-loading %s\n", fw_priv->fw_name);
+ dev_info(device, "firmware: direct-loading firmware %s\n",
+ buf->fw_id);
buf->size = size;
fw_state_done(&buf->fw_st);
+ fw_priv->fw_name);
fw_priv->size = size;
fw_state_done(fw_priv);
break;
}
__putname(path);
+ if (rc)
+ dev_err(device, "firmware: failed to load %s (%d)\n",
+ buf->fw_id, rc);
+ fw_priv->fw_name, rc);
+
return rc;
}
@@ -1112,7 +1113,7 @@ static int fw_load_from_user_helper(stru
@@ -1120,7 +1121,7 @@ static int fw_load_from_user_helper(stru
if (opt_flags & FW_OPT_NOWAIT) {
timeout = usermodehelper_read_lock_wait(timeout);
if (!timeout) {
......
......@@ -7,7 +7,7 @@ Forwarded: not-needed
--- a/.gitignore
+++ b/.gitignore
@@ -61,23 +61,11 @@ modules.builtin
@@ -61,11 +61,6 @@ modules.builtin
/*.spec
#
......@@ -16,8 +16,10 @@ Forwarded: not-needed
-/debian/
-
-#
# tar directory (make tar*-pkg)
# Snap directory (make snap-pkg)
#
/snap/
@@ -76,13 +71,6 @@ modules.builtin
/tar-install/
#
......@@ -31,10 +33,10 @@ Forwarded: not-needed
# Generated include files
#
include/config
@@ -122,3 +110,10 @@ all.config
# Kdevelop4
*.kdev4
@@ -131,3 +119,10 @@ all.config
#Automatically generated by ASN.1 compiler
net/ipv4/netfilter/nf_nat_snmp_basic-asn1.c
net/ipv4/netfilter/nf_nat_snmp_basic-asn1.h
+
+#
+# Debian packaging: ignore everything at the top level, since it isn't
......
......@@ -20,10 +20,11 @@ to avoid when combining the two address mapping APIs. But with XEN
enabled and ARM_LPAE not enabled, as in the armmp config, dma_addr_t
is 64-bit while phys_addr_t is 32-bit.
It also reverts commit fea20995976f4b2e8968f852a18e280487d42f0d
"gpu: host1x: Free the IOMMU domain when there is no device to attach"
and commit 8b3f5ac6b55f5f3f60723a58f14ec235a5b8cfe
"gpu: host1x: Don't fail on NULL bo physical address" which depend on it.
It also reverts commits fea20995976f "gpu: host1x: Free the IOMMU
domain when there is no device to attach", 8b3f5ac6b55f "gpu: host1x:
Don't fail on NULL bo physical address", 1f876c3fcead "gpu: host1x:
Rewrite conditional for better readability" and 41c3068cc2fd "gpu:
host1x: Use IOMMU groups" which depend on it.
---
--- a/drivers/gpu/host1x/cdma.c
......@@ -176,24 +177,31 @@ and commit 8b3f5ac6b55f5f3f60723a58f14ec235a5b8cfe
#include "bus.h"
#include "channel.h"
@@ -218,37 +217,11 @@ static int host1x_probe(struct platform_
@@ -218,44 +217,11 @@ static int host1x_probe(struct platform_
return err;
}
- if (iommu_present(&platform_bus_type)) {
- host->group = iommu_group_get(&pdev->dev);
- if (host->group) {
- struct iommu_domain_geometry *geometry;
- unsigned long order;
-
- host->domain = iommu_domain_alloc(&platform_bus_type);
- if (!host->domain)
- return -ENOMEM;
- if (!host->domain) {
- err = -ENOMEM;
- goto put_group;
- }
-
- err = iommu_attach_group(host->domain, host->group);
- if (err) {
- if (err == -ENODEV) {
- iommu_domain_free(host->domain);
- host->domain = NULL;
- iommu_group_put(host->group);
- host->group = NULL;
- goto skip_iommu;
- }
-
- err = iommu_attach_device(host->domain, &pdev->dev);
- if (err == -ENODEV) {
- iommu_domain_free(host->domain);
- host->domain = NULL;
- goto skip_iommu;
- } else if (err) {
- goto fail_free_domain;
- }
-
......@@ -215,30 +223,33 @@ and commit 8b3f5ac6b55f5f3f60723a58f14ec235a5b8cfe
}
err = clk_prepare_enable(host->clk);
@@ -293,15 +266,6 @@ fail_unprepare_disable:
@@ -300,17 +266,6 @@ fail_unprepare_disable:
clk_disable_unprepare(host->clk);
fail_free_channels:
host1x_channel_list_free(&host->channel_list);
-fail_detach_device:
- if (host->domain) {
- if (host->group && host->domain) {
- put_iova_domain(&host->iova);
- iommu_detach_device(host->domain, &pdev->dev);
- iommu_detach_group(host->domain, host->group);
- }
-fail_free_domain:
- if (host->domain)
- iommu_domain_free(host->domain);
-put_group:
- iommu_group_put(host->group);
-
return err;
}
@@ -315,12 +279,6 @@ static int host1x_remove(struct platform
@@ -324,13 +279,6 @@ static int host1x_remove(struct platform
reset_control_assert(host->rst);
clk_disable_unprepare(host->clk);
- if (host->domain) {
- put_iova_domain(&host->iova);
- iommu_detach_device(host->domain, &pdev->dev);
- iommu_detach_group(host->domain, host->group);
- iommu_domain_free(host->domain);
- iommu_group_put(host->group);
- }
-
return 0;
......@@ -255,10 +266,11 @@ and commit 8b3f5ac6b55f5f3f60723a58f14ec235a5b8cfe
#include <linux/platform_device.h>
#include <linux/reset.h>
@@ -117,10 +115,6 @@ struct host1x {
@@ -117,11 +115,6 @@ struct host1x {
struct clk *clk;
struct reset_control *rst;
- struct iommu_group *group;
- struct iommu_domain *domain;
- struct iova_domain iova;
- dma_addr_t iova_end;
......
......@@ -8,9 +8,9 @@ it by default yet.
--- a/kernel/sched/autogroup.c
+++ b/kernel/sched/autogroup.c
@@ -9,7 +9,7 @@
#include <linux/security.h>
#include <linux/export.h>
@@ -7,7 +7,7 @@
#include "sched.h"
-unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
+unsigned int __read_mostly sysctl_sched_autogroup_enabled = 0;
......
......@@ -9,7 +9,7 @@ are set.
--- a/Makefile
+++ b/Makefile
@@ -1048,7 +1048,7 @@ endif
@@ -1087,7 +1087,7 @@ endif
prepare2: prepare3 prepare-compiler-check outputmakefile asm-generic
prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
......@@ -18,7 +18,7 @@ are set.
$(cmd_crmodverdir)
archprepare: archheaders archscripts prepare1 scripts_basic
@@ -1118,6 +1118,16 @@ define filechk_version.h
@@ -1168,6 +1168,16 @@ define filechk_version.h
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
endef
......@@ -35,7 +35,7 @@ are set.
$(version_h): $(srctree)/Makefile FORCE
$(call filechk,version.h)
$(Q)rm -f $(old_version_h)
@@ -1125,6 +1135,9 @@ $(version_h): $(srctree)/Makefile FORCE
@@ -1175,6 +1185,9 @@ $(version_h): $(srctree)/Makefile FORCE
include/generated/utsrelease.h: include/config/kernel.release FORCE
$(call filechk,utsrelease.h)
......@@ -69,7 +69,7 @@ are set.
printk(KERN_INFO "RSP: %016lx EFLAGS: %08lx\n", PT_REGS_SP(regs),
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -35,6 +35,7 @@
@@ -34,6 +34,7 @@
#include <linux/utsname.h>
#include <linux/tracehook.h>
#include <linux/rcupdate.h>
......@@ -77,7 +77,7 @@ are set.
#include <asm/cpu.h>
#include <asm/delay.h>
@@ -108,9 +109,9 @@ show_regs (struct pt_regs *regs)
@@ -104,9 +105,9 @@ show_regs (struct pt_regs *regs)
print_modules();
printk("\n");
show_regs_print_info(KERN_DEFAULT);
......@@ -86,20 +86,20 @@ are set.
regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(),
- init_utsname()->release);
+ init_utsname()->release, LINUX_PACKAGE_ID);
print_symbol("ip is at %s\n", ip);
printk("ip is at %pS\n", (void *)ip);
printk("unat: %016lx pfs : %016lx rsc : %016lx\n",
regs->ar_unat, regs->ar_pfs, regs->ar_rsc);
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -42,6 +42,7 @@
#include <linux/hw_breakpoint.h>
@@ -43,6 +43,7 @@
#include <linux/uaccess.h>
#include <linux/elf-randomize.h>
#include <linux/pkeys.h>
+#include <generated/package.h>
#include <asm/pgtable.h>
#include <asm/io.h>
@@ -1403,8 +1404,9 @@ void show_regs(struct pt_regs * regs)
@@ -1404,8 +1405,9 @@ void show_regs(struct pt_regs * regs)
printk("NIP: "REG" LR: "REG" CTR: "REG"\n",
regs->nip, regs->link, regs->ctr);
......@@ -145,7 +145,7 @@ are set.
#include <linux/uaccess.h>
#include <asm/sections.h>
@@ -3118,11 +3119,12 @@ void __init dump_stack_set_arch_desc(con
@@ -3288,11 +3289,12 @@ void __init dump_stack_set_arch_desc(con
*/
void dump_stack_print_info(const char *log_lvl)
{
......
......@@ -20,11 +20,9 @@ cc: linux-pci@vger.kernel.org
drivers/pci/syscall.c | 3 ++-
3 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 1eecfa301f7f..e1a3b0e765c2 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -881,6 +881,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj,
@@ -930,6 +930,9 @@ static ssize_t pci_write_config(struct f
loff_t init_off = off;
u8 *data = (u8 *) buf;
......@@ -34,7 +32,7 @@ index 1eecfa301f7f..e1a3b0e765c2 100644
if (off > dev->cfg_size)
return 0;
if (off + count > dev->cfg_size) {
@@ -1175,6 +1178,9 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
@@ -1224,6 +1227,9 @@ static int pci_mmap_resource(struct kobj
enum pci_mmap_state mmap_type;
struct resource *res = &pdev->resource[bar];
......@@ -44,7 +42,7 @@ index 1eecfa301f7f..e1a3b0e765c2 100644
if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start))
return -EINVAL;
@@ -1255,6 +1261,9 @@ static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj,
@@ -1299,6 +1305,9 @@ static ssize_t pci_write_resource_io(str
struct bin_attribute *attr, char *buf,
loff_t off, size_t count)
{
......@@ -54,11 +52,9 @@ index 1eecfa301f7f..e1a3b0e765c2 100644
return pci_resource_io(filp, kobj, attr, buf, off, count, true);
}
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
index 098360d7ff81..a6c53d855daa 100644
--- a/drivers/pci/proc.c
+++ b/drivers/pci/proc.c
@@ -116,6 +116,9 @@ static ssize_t proc_bus_pci_write(struct file *file, const char __user *buf,
@@ -117,6 +117,9 @@ static ssize_t proc_bus_pci_write(struct
int size = dev->cfg_size;
int cnt;
......@@ -68,7 +64,7 @@ index 098360d7ff81..a6c53d855daa 100644
if (pos >= size)
return 0;
if (nbytes >= size)
@@ -195,6 +198,9 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd,
@@ -196,6 +199,9 @@ static long proc_bus_pci_ioctl(struct fi
#endif /* HAVE_PCI_MMAP */
int ret = 0;
......@@ -78,7 +74,7 @@ index 098360d7ff81..a6c53d855daa 100644
switch (cmd) {
case PCIIOC_CONTROLLER:
ret = pci_domain_nr(dev->bus);
@@ -236,7 +242,8 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
@@ -237,7 +243,8 @@ static int proc_bus_pci_mmap(struct file
struct pci_filp_private *fpriv = file->private_data;
int i, ret, write_combine = 0, res_bit = IORESOURCE_MEM;
......@@ -88,11 +84,9 @@ index 098360d7ff81..a6c53d855daa 100644
return -EPERM;
if (fpriv->mmap_state == pci_mmap_io) {
diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c
index 9bf993e1f71e..afa01cc3ceec 100644
--- a/drivers/pci/syscall.c
+++ b/drivers/pci/syscall.c
@@ -92,7 +92,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,
@@ -93,7 +93,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigne
u32 dword;
int err = 0;
......@@ -101,4 +95,4 @@ index 9bf993e1f71e..afa01cc3ceec 100644
+ kernel_is_locked_down("Direct PCI access"))
return -EPERM;
dev = pci_get_bus_and_slot(bus, dfn);
dev = pci_get_domain_bus_and_slot(0, bus, dfn);
From d67849c340aa803f25a1b3720ba399fecd4f88ab Mon Sep 17 00:00:00 2001
From: Jon Hunter <jonathanh@nvidia.com>
Date: Tue, 28 Mar 2017 12:48:38 +0100
Subject: [PATCH] arm64: tegra: Add CPU and PSCI nodes for NVIDIA Tegra210
platforms
Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that
all CPUs can be enabled on boot. This assumes that the PSCI firmware
has been loaded during the initial bootstrap on the device before the
kernel starts (which is typically the case for these platforms). The
PSCI firmware version is set to v0.2 which aligns with the current
shipping version for Tegra.
Reported-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Tested-By: Vagrant Cascadian <vagrant@debian.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 23 +++++++++++++++++++++++
arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi | 23 +++++++++++++++++++++++
2 files changed, 46 insertions(+)
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
index d10d4430537a..212e6634c9ba 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
@@ -297,6 +297,29 @@
};