Compile and runtime tested on x86/64.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
LINUX_RELEASE?=1
LINUX_VERSION-4.9 = .232
-LINUX_VERSION-4.14 = .193
+LINUX_VERSION-4.14 = .195
LINUX_KERNEL_HASH-4.9.232 = 58f472e82345dc719a1d6d7bae01e5aa73387cd83308acd2c92371f7d5bc4f60
-LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03
+LINUX_KERNEL_HASH-4.14.195 = 394f28798670240baacd9e2cce521fbd79f8da5e1fc191695b0e11381445a021
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
#include "xhci.h"
#include "xhci-trace.h"
-@@ -272,6 +274,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -276,6 +278,458 @@ static void xhci_pme_acpi_rtd3_enable(st
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
#endif /* CONFIG_ACPI */
/* called during probe() after chip reset completes */
static int xhci_pci_setup(struct usb_hcd *hcd)
{
-@@ -310,6 +764,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -314,6 +768,22 @@ static int xhci_pci_probe(struct pci_dev
struct hc_driver *driver;
struct usb_hcd *hcd;
driver = (struct hc_driver *)id->driver_data;
/* For some HW implementation, a XHCI reset is just not enough... */
-@@ -371,6 +841,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -375,6 +845,16 @@ static void xhci_pci_remove(struct pci_d
{
struct xhci_hcd *xhci;
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -222,7 +222,7 @@ static void xhci_pci_quirks(struct devic
+@@ -225,7 +225,7 @@ static void xhci_pci_quirks(struct devic
xhci->quirks |= XHCI_TRUST_TX_LENGTH;
if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
pdev->device == 0x0015)
/**
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -1029,6 +1029,9 @@ static int spi_transfer_one_message(stru
+@@ -1041,6 +1041,9 @@ static int spi_transfer_one_message(stru
list_for_each_entry(xfer, &msg->transfers, transfer_list) {
trace_spi_transfer_start(msg, xfer);
rwlock_t sk_callback_lock;
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -2750,6 +2750,7 @@ void sock_init_data(struct socket *sock,
+@@ -2771,6 +2771,7 @@ void sock_init_data(struct socket *sock,
sk->sk_max_pacing_rate = ~0U;
sk->sk_pacing_rate = ~0U;
--- a/tools/build/Build.include
+++ b/tools/build/Build.include
-@@ -98,4 +98,4 @@ cxx_flags = -Wp,-MD,$(depfile) -Wp,-MT,$
+@@ -99,4 +99,4 @@ cxx_flags = -Wp,-MD,$(depfile) -Wp,-MT,$
###
## HOSTCC C flags
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -3389,6 +3389,8 @@ static __net_initdata struct pernet_oper
+@@ -3410,6 +3410,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6146,7 +6146,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6151,7 +6151,7 @@ static void __ref alloc_node_mem_map(str
mem_map = NODE_DATA(0)->node_mem_map;
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
-@@ -672,6 +672,7 @@ static const struct of_device_id spidev_
+@@ -677,6 +677,7 @@ static const struct of_device_id spidev_
{ .compatible = "lineartechnology,ltc2488" },
{ .compatible = "ge,achc" },
{ .compatible = "semtech,sx1301" },
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -729,7 +729,7 @@ static void spi_set_cs(struct spi_device
+@@ -741,7 +741,7 @@ static void spi_set_cs(struct spi_device
enable = !enable;
if (gpio_is_valid(spi->cs_gpio)) {
--- a/fs/jffs2/dir.c
+++ b/fs/jffs2/dir.c
-@@ -752,6 +752,24 @@ static int jffs2_mknod (struct inode *di
+@@ -756,6 +756,24 @@ static int jffs2_mknod (struct inode *di
return ret;
}
static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry,
struct inode *new_dir_i, struct dentry *new_dentry,
unsigned int flags)
-@@ -762,7 +780,7 @@ static int jffs2_rename (struct inode *o
+@@ -766,7 +784,7 @@ static int jffs2_rename (struct inode *o
uint8_t type;
uint32_t now;
return -EINVAL;
/* The VFS will check for us and prevent trying to rename a
-@@ -828,9 +846,14 @@ static int jffs2_rename (struct inode *o
+@@ -832,9 +850,14 @@ static int jffs2_rename (struct inode *o
if (d_is_dir(old_dentry) && !victim_f)
inc_nlink(new_dir_i);
--- a/fs/jffs2/dir.c
+++ b/fs/jffs2/dir.c
-@@ -777,18 +777,31 @@ static int jffs2_rename (struct inode *o
+@@ -781,18 +781,31 @@ static int jffs2_rename (struct inode *o
int ret;
struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
struct jffs2_inode_info *victim_f = NULL;
victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
if (d_is_dir(new_dentry)) {
struct jffs2_full_dirent *fd;
-@@ -823,7 +836,7 @@ static int jffs2_rename (struct inode *o
+@@ -827,7 +840,7 @@ static int jffs2_rename (struct inode *o
if (ret)
return ret;
/* There was a victim. Kill it off nicely */
if (d_is_dir(new_dentry))
clear_nlink(d_inode(new_dentry));
-@@ -849,6 +862,12 @@ static int jffs2_rename (struct inode *o
+@@ -853,6 +866,12 @@ static int jffs2_rename (struct inode *o
if (flags & RENAME_WHITEOUT)
/* Replace with whiteout */
ret = jffs2_whiteout(old_dir_i, old_dentry);
else
/* Unlink the original */
ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
-@@ -880,7 +899,7 @@ static int jffs2_rename (struct inode *o
+@@ -884,7 +903,7 @@ static int jffs2_rename (struct inode *o
return ret;
}
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1836,6 +1836,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1838,6 +1838,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
/*
* When we registered the protocol we saved the socket in the data
-@@ -1843,6 +1844,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1845,6 +1846,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
/*
* Yank back the headers [hope the device set this
-@@ -1855,7 +1857,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1857,7 +1859,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2082,12 +2084,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2084,12 +2086,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res;
bool is_drop_n_account = false;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2214,12 +2216,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2216,12 +2218,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3313,6 +3315,7 @@ static int packet_create(struct net *net
+@@ -3318,6 +3320,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3935,6 +3938,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3940,6 +3943,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -3987,6 +4000,13 @@ static int packet_getsockopt(struct sock
+@@ -3992,6 +4005,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
u32 cmd_sgl_pos;
u32 cmd_sgl_start;
u32 tx_sgl_pos;
-@@ -462,7 +472,8 @@ alloc_bam_transaction(struct qcom_nand_c
+@@ -464,7 +474,8 @@ alloc_bam_transaction(struct qcom_nand_c
bam_txn_size =
sizeof(*bam_txn) + num_cw *
(sizeof(*bam_txn->data_sgl) * QPIC_PER_CW_DATA_SGL));
bam_txn_buf = devm_kzalloc(nandc->dev, bam_txn_size, GFP_KERNEL);
-@@ -472,6 +483,10 @@ alloc_bam_transaction(struct qcom_nand_c
+@@ -474,6 +485,10 @@ alloc_bam_transaction(struct qcom_nand_c
bam_txn = bam_txn_buf;
bam_txn_buf += sizeof(*bam_txn);
bam_txn->cmd_sgl = bam_txn_buf;
bam_txn_buf +=
sizeof(*bam_txn->cmd_sgl) * QPIC_PER_CW_CMD_SGL * num_cw;
-@@ -489,6 +504,8 @@ static void clear_bam_transaction(struct
+@@ -491,6 +506,8 @@ static void clear_bam_transaction(struct
if (!nandc->props->is_bam)
return;
dma_addr_t base_dma;
struct clk *core_clk;
-@@ -751,6 +761,66 @@ static int prepare_bam_async_desc(struct
+@@ -753,6 +763,66 @@ static int prepare_bam_async_desc(struct
}
/*
* Prepares the data descriptor for BAM DMA which will be used for NAND
* data reads and writes.
*/
-@@ -868,19 +938,22 @@ static int read_reg_dma(struct qcom_nand
+@@ -870,19 +940,22 @@ static int read_reg_dma(struct qcom_nand
{
bool flow_control = false;
void *vaddr;
}
/*
-@@ -897,13 +970,9 @@ static int write_reg_dma(struct qcom_nan
+@@ -899,13 +972,9 @@ static int write_reg_dma(struct qcom_nan
bool flow_control = false;
struct nandc_regs *regs = nandc->regs;
void *vaddr;
if (first == NAND_ERASED_CW_DETECT_CFG) {
if (flags & NAND_ERASED_CW_SET)
vaddr = ®s->erased_cw_detect_cfg_set;
-@@ -920,10 +989,15 @@ static int write_reg_dma(struct qcom_nan
+@@ -922,10 +991,15 @@ static int write_reg_dma(struct qcom_nan
if (first == NAND_DEV_CMD_VLD_RESTORE || first == NAND_DEV_CMD_VLD)
first = dev_cmd_reg_addr(nandc, NAND_DEV_CMD_VLD);
}
/*
-@@ -1187,7 +1261,8 @@ static int submit_descs(struct qcom_nand
+@@ -1189,7 +1263,8 @@ static int submit_descs(struct qcom_nand
}
if (bam_txn->cmd_sgl_pos > bam_txn->cmd_sgl_start) {
if (r)
return r;
}
-@@ -2725,6 +2800,7 @@ static int qcom_nandc_probe(struct platf
+@@ -2728,6 +2803,7 @@ static int qcom_nandc_probe(struct platf
if (IS_ERR(nandc->base))
return PTR_ERR(nandc->base);
}
--- a/drivers/mtd/nand/qcom_nandc.c
+++ b/drivers/mtd/nand/qcom_nandc.c
-@@ -1990,7 +1990,7 @@ static int qcom_nandc_write_oob(struct m
+@@ -1992,7 +1992,7 @@ static int qcom_nandc_write_oob(struct m
struct nand_ecc_ctrl *ecc = &chip->ecc;
u8 *oob = chip->oob_poi;
int data_size, oob_size;
host->use_ecc = true;
-@@ -2027,11 +2027,7 @@ static int qcom_nandc_write_oob(struct m
+@@ -2029,11 +2029,7 @@ static int qcom_nandc_write_oob(struct m
return -EIO;
}
}
static int qcom_nandc_block_bad(struct mtd_info *mtd, loff_t ofs)
-@@ -2081,7 +2077,7 @@ static int qcom_nandc_block_markbad(stru
+@@ -2083,7 +2079,7 @@ static int qcom_nandc_block_markbad(stru
struct qcom_nand_host *host = to_qcom_nand_host(chip);
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
struct nand_ecc_ctrl *ecc = &chip->ecc;
clear_read_regs(nandc);
clear_bam_transaction(nandc);
-@@ -2114,11 +2110,7 @@ static int qcom_nandc_block_markbad(stru
+@@ -2116,11 +2112,7 @@ static int qcom_nandc_block_markbad(stru
return -EIO;
}
--- a/drivers/mtd/nand/qcom_nandc.c
+++ b/drivers/mtd/nand/qcom_nandc.c
-@@ -1725,6 +1725,7 @@ static int qcom_nandc_read_page(struct m
+@@ -1727,6 +1727,7 @@ static int qcom_nandc_read_page(struct m
u8 *data_buf, *oob_buf = NULL;
int ret;
data_buf = buf;
oob_buf = oob_required ? chip->oob_poi : NULL;
-@@ -1750,6 +1751,7 @@ static int qcom_nandc_read_page_raw(stru
+@@ -1752,6 +1753,7 @@ static int qcom_nandc_read_page_raw(stru
int i, ret;
int read_loc;
data_buf = buf;
oob_buf = chip->oob_poi;
-@@ -1850,6 +1852,8 @@ static int qcom_nandc_write_page(struct
+@@ -1852,6 +1854,8 @@ static int qcom_nandc_write_page(struct
u8 *data_buf, *oob_buf;
int i, ret;
clear_read_regs(nandc);
clear_bam_transaction(nandc);
-@@ -1902,6 +1906,9 @@ static int qcom_nandc_write_page(struct
+@@ -1904,6 +1908,9 @@ static int qcom_nandc_write_page(struct
free_descs(nandc);
return ret;
}
-@@ -1916,6 +1923,7 @@ static int qcom_nandc_write_page_raw(str
+@@ -1918,6 +1925,7 @@ static int qcom_nandc_write_page_raw(str
u8 *data_buf, *oob_buf;
int i, ret;
clear_read_regs(nandc);
clear_bam_transaction(nandc);
-@@ -1970,6 +1978,9 @@ static int qcom_nandc_write_page_raw(str
+@@ -1972,6 +1980,9 @@ static int qcom_nandc_write_page_raw(str
free_descs(nandc);
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
-@@ -797,7 +797,7 @@ unlock_out:
+@@ -808,7 +808,7 @@ unlock_out:
clk_core_disable_unprepare(core->parent);
}
/* Set linkdown as the default for each GMAC. Its own MCR would be set
* up with the more appropriate value when mtk_phy_link_adjust call is
-@@ -2569,11 +2571,13 @@ static int mtk_probe(struct platform_dev
+@@ -2571,11 +2573,13 @@ static int mtk_probe(struct platform_dev
}
}
}
for (i = 0; i < 3; i++) {
-@@ -2699,17 +2703,20 @@ static int mtk_remove(struct platform_de
+@@ -2701,17 +2705,20 @@ static int mtk_remove(struct platform_de
static const struct mtk_soc_data mt2701_data = {
.caps = MTK_GMAC1_TRGMII,
if (!xhci->shared_hcd) {
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -283,6 +283,9 @@ static int xhci_pci_setup(struct usb_hcd
+@@ -287,6 +287,9 @@ static int xhci_pci_setup(struct usb_hcd
if (!xhci->sbrn)
pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);