kernel: bump 4.9 to 4.9.187

Refreshed all patches.

Altered patches:
- 021-bridge-multicast-to-unicast.patch

Remove upstreamed:
- 001-um-Allow-building-and-running-on-older-hosts.patch
- 003-um-Fix-check-for-_xstate-for-older-hosts.patch

Fixes:
- CVE-2019-10207
- CVE-2019-13648

Compile-tested on: ar71xx
Runtime-tested on: ar71xx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
Koen Vandeputte 2019-08-05 11:06:09 +02:00
parent 7e4ce0c655
commit 2807f84b62
19 changed files with 127 additions and 272 deletions

View File

@ -2,10 +2,10 @@
LINUX_RELEASE?=1
LINUX_VERSION-4.9 = .186
LINUX_VERSION-4.9 = .187
LINUX_VERSION-4.14 = .134
LINUX_KERNEL_HASH-4.9.186 = 242484430d0729791d8efd92181b7d34b4021050646c6e00cf459866eab94b6a
LINUX_KERNEL_HASH-4.9.187 = 014bcd042cd25e073539c17bd34c616a936b19787a9c6a4c35d36a4f28afd1c7
LINUX_KERNEL_HASH-4.14.134 = 0b21e7b5effd92303a551b5be2380c9703d6fb87cfe5189fe0d795cc73903d2d
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))

View File

@ -696,7 +696,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -5081,7 +5081,7 @@ static void port_event(struct usb_hub *h
@@ -5088,7 +5088,7 @@ static void port_event(struct usb_hub *h
if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
u16 status = 0, unused;

View File

@ -246,14 +246,14 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
struct igmpv3_report *ih;
struct igmpv3_grec *grec;
int i;
@@ -1068,12 +1101,14 @@ static int br_ip4_multicast_igmp3_report
@@ -1070,12 +1103,14 @@ static int br_ip4_multicast_igmp3_report
continue;
}
+ src = eth_hdr(skb)->h_source;
if ((type == IGMPV3_CHANGE_TO_INCLUDE ||
type == IGMPV3_MODE_IS_INCLUDE) &&
ntohs(grec->grec_nsrcs) == 0) {
nsrcs == 0) {
- br_ip4_multicast_leave_group(br, port, group, vid);
+ br_ip4_multicast_leave_group(br, port, group, vid, src);
} else {
@ -263,7 +263,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
if (err)
break;
}
@@ -1088,6 +1123,7 @@ static int br_ip6_multicast_mld2_report(
@@ -1090,6 +1125,7 @@ static int br_ip6_multicast_mld2_report(
struct sk_buff *skb,
u16 vid)
{
@ -271,9 +271,9 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
struct icmp6hdr *icmp6h;
struct mld2_grec *grec;
int i;
@@ -1139,10 +1175,11 @@ static int br_ip6_multicast_mld2_report(
@@ -1144,10 +1180,11 @@ static int br_ip6_multicast_mld2_report(
grec->grec_type == MLD2_MODE_IS_INCLUDE) &&
ntohs(*nsrcs) == 0) {
nsrcs == 0) {
br_ip6_multicast_leave_group(br, port, &grec->grec_mca,
- vid);
+ vid, src);
@ -285,7 +285,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
if (err)
break;
}
@@ -1458,7 +1495,8 @@ br_multicast_leave_group(struct net_brid
@@ -1462,7 +1499,8 @@ br_multicast_leave_group(struct net_brid
struct net_bridge_port *port,
struct br_ip *group,
struct bridge_mcast_other_query *other_query,
@ -295,7 +295,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
{
struct net_bridge_mdb_htable *mdb;
struct net_bridge_mdb_entry *mp;
@@ -1482,7 +1520,7 @@ br_multicast_leave_group(struct net_brid
@@ -1486,7 +1524,7 @@ br_multicast_leave_group(struct net_brid
for (pp = &mp->ports;
(p = mlock_dereference(*pp, br)) != NULL;
pp = &p->next) {
@ -304,7 +304,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
continue;
rcu_assign_pointer(*pp, p->next);
@@ -1513,7 +1551,7 @@ br_multicast_leave_group(struct net_brid
@@ -1517,7 +1555,7 @@ br_multicast_leave_group(struct net_brid
for (p = mlock_dereference(mp->ports, br);
p != NULL;
p = mlock_dereference(p->next, br)) {
@ -313,7 +313,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
continue;
if (!hlist_unhashed(&p->mglist) &&
@@ -1564,7 +1602,8 @@ out:
@@ -1568,7 +1606,8 @@ out:
static void br_ip4_multicast_leave_group(struct net_bridge *br,
struct net_bridge_port *port,
__be32 group,
@ -323,7 +323,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
@@ -1579,14 +1618,15 @@ static void br_ip4_multicast_leave_group
@@ -1583,14 +1622,15 @@ static void br_ip4_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
@ -341,7 +341,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
@@ -1601,7 +1641,7 @@ static void br_ip6_multicast_leave_group
@@ -1605,7 +1645,7 @@ static void br_ip6_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
@ -350,7 +350,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
}
#endif
@@ -1644,6 +1684,7 @@ static int br_multicast_ipv4_rcv(struct
@@ -1648,6 +1688,7 @@ static int br_multicast_ipv4_rcv(struct
u16 vid)
{
struct sk_buff *skb_trimmed = NULL;
@ -358,7 +358,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
struct igmphdr *ih;
int err;
@@ -1659,13 +1700,14 @@ static int br_multicast_ipv4_rcv(struct
@@ -1663,13 +1704,14 @@ static int br_multicast_ipv4_rcv(struct
}
ih = igmp_hdr(skb);
@ -374,7 +374,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
break;
case IGMPV3_HOST_MEMBERSHIP_REPORT:
err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
@@ -1674,7 +1716,7 @@ static int br_multicast_ipv4_rcv(struct
@@ -1678,7 +1720,7 @@ static int br_multicast_ipv4_rcv(struct
err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
break;
case IGMP_HOST_LEAVE_MESSAGE:
@ -383,7 +383,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
break;
}
@@ -1694,6 +1736,7 @@ static int br_multicast_ipv6_rcv(struct
@@ -1698,6 +1740,7 @@ static int br_multicast_ipv6_rcv(struct
u16 vid)
{
struct sk_buff *skb_trimmed = NULL;
@ -391,7 +391,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
struct mld_msg *mld;
int err;
@@ -1713,8 +1756,10 @@ static int br_multicast_ipv6_rcv(struct
@@ -1717,8 +1760,10 @@ static int br_multicast_ipv6_rcv(struct
switch (mld->mld_type) {
case ICMPV6_MGM_REPORT:
@ -403,7 +403,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
break;
case ICMPV6_MLD2_REPORT:
err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
@@ -1723,7 +1768,8 @@ static int br_multicast_ipv6_rcv(struct
@@ -1727,7 +1772,8 @@ static int br_multicast_ipv6_rcv(struct
err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
break;
case ICMPV6_MGM_REDUCTION:

View File

@ -388,7 +388,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -3236,7 +3236,7 @@ static int bnx2x_poll(struct napi_struct
@@ -3239,7 +3239,7 @@ static int bnx2x_poll(struct napi_struct
* has been updated when NAPI was scheduled.
*/
if (IS_FCOE_FP(fp)) {

View File

@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile
+++ b/Makefile
@@ -1226,7 +1226,6 @@ all: modules
@@ -1227,7 +1227,6 @@ all: modules
PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
@@ -1256,7 +1255,6 @@ _modinst_:
@@ -1257,7 +1256,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi

View File

@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
@@ -650,11 +655,6 @@ KBUILD_CFLAGS += $(call cc-disable-warni
@@ -651,11 +656,6 @@ KBUILD_CFLAGS += $(call cc-disable-warni
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias)

View File

@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <linux/mutex.h>
#include <linux/err.h>
#include <linux/of.h>
@@ -2913,3 +2914,5 @@ static int __init regmap_initcall(void)
@@ -2915,3 +2916,5 @@ static int __init regmap_initcall(void)
return 0;
}
postcore_initcall(regmap_initcall);

View File

@ -15,7 +15,7 @@
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1309,6 +1309,9 @@ int genphy_update_link(struct phy_device
@@ -1315,6 +1315,9 @@ int genphy_update_link(struct phy_device
{
int status;

View File

@ -221,7 +221,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!root_irq_dir)
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
@@ -399,6 +399,9 @@ static int __init init_timer_list_procfs
@@ -400,6 +400,9 @@ static int __init init_timer_list_procfs
{
struct proc_dir_entry *pe;

View File

@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile
+++ b/Makefile
@@ -656,12 +656,12 @@ KBUILD_CFLAGS += $(call cc-option,-fdata
@@ -657,12 +657,12 @@ KBUILD_CFLAGS += $(call cc-option,-fdata
endif
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE

View File

@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int absolute_percpu = 0;
static char symbol_prefix_char = '\0';
static int base_relative = 0;
@@ -446,6 +447,9 @@ static void write_src(void)
@@ -449,6 +450,9 @@ static void write_src(void)
free(markers);
@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
output_label("kallsyms_token_table");
off = 0;
for (i = 0; i < 256; i++) {
@@ -504,6 +508,9 @@ static void *find_token(unsigned char *s
@@ -507,6 +511,9 @@ static void *find_token(unsigned char *s
{
int i;
@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
for (i = 0; i < len - 1; i++) {
if (str[i] == token[0] && str[i+1] == token[1])
return &str[i];
@@ -576,6 +583,9 @@ static void optimize_result(void)
@@ -579,6 +586,9 @@ static void optimize_result(void)
{
int i, best;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* using the '\0' symbol last allows compress_symbols to use standard
* fast string functions */
for (i = 255; i >= 0; i--) {
@@ -764,6 +774,8 @@ int main(int argc, char **argv)
@@ -767,6 +777,8 @@ int main(int argc, char **argv)
symbol_prefix_char = *p;
} else if (strcmp(argv[i], "--base-relative") == 0)
base_relative = 1;

View File

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -998,6 +998,9 @@ void phy_detach(struct phy_device *phyde
@@ -1004,6 +1004,9 @@ void phy_detach(struct phy_device *phyde
struct mii_bus *bus;
int i;

View File

@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static struct amd_chipset_info {
struct pci_dev *nb_dev;
struct pci_dev *smbus_dev;
@@ -511,6 +513,10 @@ void usb_amd_dev_put(void)
@@ -518,6 +520,10 @@ void usb_amd_dev_put(void)
}
EXPORT_SYMBOL_GPL(usb_amd_dev_put);
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/*
* Make sure the controller is completely inactive, unable to
* generate interrupts or do DMA.
@@ -590,8 +596,17 @@ reset_needed:
@@ -597,8 +603,17 @@ reset_needed:
uhci_reset_hc(pdev, base);
return 1;
}
@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
{
u16 cmd;
@@ -1158,3 +1173,4 @@ static void quirk_usb_early_handoff(stru
@@ -1165,3 +1180,4 @@ static void quirk_usb_early_handoff(stru
}
DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);

View File

@ -18,7 +18,7 @@
uart->capabilities = up->capabilities;
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -2254,6 +2254,7 @@ uart_report_port(struct uart_driver *drv
@@ -2259,6 +2259,7 @@ uart_report_port(struct uart_driver *drv
snprintf(address, sizeof(address),
"I/O 0x%lx offset 0x%x", port->iobase, port->hub6);
break;
@ -26,7 +26,7 @@
case UPIO_MEM:
case UPIO_MEM16:
case UPIO_MEM32:
@@ -2926,6 +2927,7 @@ int uart_match_port(struct uart_port *po
@@ -2931,6 +2932,7 @@ int uart_match_port(struct uart_port *po
case UPIO_HUB6:
return (port1->iobase == port2->iobase) &&
(port1->hub6 == port2->hub6);
@ -105,7 +105,7 @@
case UPIO_AU:
p->serial_out(p, offset, value);
p->serial_in(p, UART_LCR); /* safe, no side-effects */
@@ -2758,6 +2778,7 @@ static int serial8250_request_std_resour
@@ -2759,6 +2779,7 @@ static int serial8250_request_std_resour
case UPIO_MEM32BE:
case UPIO_MEM16:
case UPIO_MEM:
@ -113,7 +113,7 @@
if (!port->mapbase)
break;
@@ -2796,6 +2817,7 @@ static void serial8250_release_std_resou
@@ -2797,6 +2818,7 @@ static void serial8250_release_std_resou
case UPIO_MEM32BE:
case UPIO_MEM16:
case UPIO_MEM:

View File

@ -1695,7 +1695,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
EXPORT_SYMBOL(phy_ethtool_get_wol);
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1043,7 +1043,7 @@ int phy_suspend(struct phy_device *phyde
@@ -1049,7 +1049,7 @@ int phy_suspend(struct phy_device *phyde
if (wol.wolopts)
return -EBUSY;
@ -1704,7 +1704,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ret = phydrv->suspend(phydev);
if (ret)
@@ -1060,7 +1060,7 @@ int phy_resume(struct phy_device *phydev
@@ -1066,7 +1066,7 @@ int phy_resume(struct phy_device *phydev
struct phy_driver *phydrv = to_phy_driver(phydev->mdio.dev.driver);
int ret = 0;
@ -1713,7 +1713,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ret = phydrv->resume(phydev);
if (ret)
@@ -1717,7 +1717,7 @@ static int phy_remove(struct device *dev
@@ -1723,7 +1723,7 @@ static int phy_remove(struct device *dev
phydev->state = PHY_DOWN;
mutex_unlock(&phydev->lock);

View File

@ -9133,7 +9133,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
}
if (iv_dma)
@@ -2021,8 +890,7 @@ static void ablkcipher_encrypt_done(stru
@@ -2022,8 +891,7 @@ static void ablkcipher_encrypt_done(stru
dev_err(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err);
#endif
@ -9143,7 +9143,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
if (err)
caam_jr_strstatus(jrdev, err);
@@ -2031,10 +899,10 @@ static void ablkcipher_encrypt_done(stru
@@ -2032,10 +900,10 @@ static void ablkcipher_encrypt_done(stru
print_hex_dump(KERN_ERR, "dstiv @"__stringify(__LINE__)": ",
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
edesc->src_nents > 1 ? 100 : ivsize, 1);
@ -9157,7 +9157,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ablkcipher_unmap(jrdev, edesc, req);
@@ -2062,8 +930,7 @@ static void ablkcipher_decrypt_done(stru
@@ -2065,8 +933,7 @@ static void ablkcipher_decrypt_done(stru
dev_err(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err);
#endif
@ -9167,7 +9167,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
if (err)
caam_jr_strstatus(jrdev, err);
@@ -2071,10 +938,10 @@ static void ablkcipher_decrypt_done(stru
@@ -2074,10 +941,10 @@ static void ablkcipher_decrypt_done(stru
print_hex_dump(KERN_ERR, "dstiv @"__stringify(__LINE__)": ",
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
ivsize, 1);
@ -9181,7 +9181,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ablkcipher_unmap(jrdev, edesc, req);
@@ -2114,7 +981,7 @@ static void init_aead_job(struct aead_re
@@ -2118,7 +985,7 @@ static void init_aead_job(struct aead_re
init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
if (all_contig) {
@ -9190,7 +9190,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
in_options = 0;
} else {
src_dma = edesc->sec4_sg_dma;
@@ -2129,7 +996,7 @@ static void init_aead_job(struct aead_re
@@ -2133,7 +1000,7 @@ static void init_aead_job(struct aead_re
out_options = in_options;
if (unlikely(req->src != req->dst)) {
@ -9199,7 +9199,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
dst_dma = sg_dma_address(req->dst);
out_options = 0;
} else {
@@ -2148,9 +1015,6 @@ static void init_aead_job(struct aead_re
@@ -2152,9 +1019,6 @@ static void init_aead_job(struct aead_re
append_seq_out_ptr(desc, dst_dma,
req->assoclen + req->cryptlen - authsize,
out_options);
@ -9209,7 +9209,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
}
static void init_gcm_job(struct aead_request *req,
@@ -2165,6 +1029,7 @@ static void init_gcm_job(struct aead_req
@@ -2169,6 +1033,7 @@ static void init_gcm_job(struct aead_req
unsigned int last;
init_aead_job(req, edesc, all_contig, encrypt);
@ -9217,7 +9217,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
/* BUG This should not be specific to generic GCM. */
last = 0;
@@ -2176,7 +1041,7 @@ static void init_gcm_job(struct aead_req
@@ -2180,7 +1045,7 @@ static void init_gcm_job(struct aead_req
FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | 12 | last);
/* Append Salt */
if (!generic_gcm)
@ -9226,7 +9226,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
/* Append IV */
append_data(desc, req->iv, ivsize);
/* End of blank commands */
@@ -2191,7 +1056,8 @@ static void init_authenc_job(struct aead
@@ -2195,7 +1060,8 @@ static void init_authenc_job(struct aead
struct caam_aead_alg, aead);
unsigned int ivsize = crypto_aead_ivsize(aead);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
@ -9236,7 +9236,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
OP_ALG_AAI_CTR_MOD128);
const bool is_rfc3686 = alg->caam.rfc3686;
u32 *desc = edesc->hw_desc;
@@ -2214,6 +1080,15 @@ static void init_authenc_job(struct aead
@@ -2218,6 +1084,15 @@ static void init_authenc_job(struct aead
init_aead_job(req, edesc, all_contig, encrypt);
@ -9252,7 +9252,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
if (ivsize && ((is_rfc3686 && encrypt) || !alg->caam.geniv))
append_load_as_imm(desc, req->iv, ivsize,
LDST_CLASS_1_CCB |
@@ -2237,16 +1112,15 @@ static void init_ablkcipher_job(u32 *sh_
@@ -2241,16 +1116,15 @@ static void init_ablkcipher_job(u32 *sh_
int len, sec4_sg_index = 0;
#ifdef DEBUG
@ -9274,7 +9274,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
len = desc_len(sh_desc);
init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
@@ -2262,7 +1136,7 @@ static void init_ablkcipher_job(u32 *sh_
@@ -2266,7 +1140,7 @@ static void init_ablkcipher_job(u32 *sh_
append_seq_in_ptr(desc, src_dma, req->nbytes + ivsize, in_options);
if (likely(req->src == req->dst)) {
@ -9283,7 +9283,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
dst_dma = sg_dma_address(req->src);
} else {
dst_dma = edesc->sec4_sg_dma +
@@ -2270,7 +1144,7 @@ static void init_ablkcipher_job(u32 *sh_
@@ -2274,7 +1148,7 @@ static void init_ablkcipher_job(u32 *sh_
out_options = LDST_SGF;
}
} else {
@ -9292,7 +9292,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
dst_dma = sg_dma_address(req->dst);
} else {
dst_dma = edesc->sec4_sg_dma +
@@ -2297,20 +1171,18 @@ static void init_ablkcipher_giv_job(u32
@@ -2301,20 +1175,18 @@ static void init_ablkcipher_giv_job(u32
int len, sec4_sg_index = 0;
#ifdef DEBUG
@ -9317,7 +9317,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
src_dma = sg_dma_address(req->src);
in_options = 0;
} else {
@@ -2341,87 +1213,100 @@ static struct aead_edesc *aead_edesc_all
@@ -2345,87 +1217,100 @@ static struct aead_edesc *aead_edesc_all
struct crypto_aead *aead = crypto_aead_reqtfm(req);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
struct device *jrdev = ctx->jrdev;
@ -9473,7 +9473,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
edesc->sec4_sg + sec4_sg_index, 0);
}
@@ -2574,13 +1459,9 @@ static int aead_decrypt(struct aead_requ
@@ -2578,13 +1463,9 @@ static int aead_decrypt(struct aead_requ
u32 *desc;
int ret = 0;
@ -9490,7 +9490,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
/* allocate extended descriptor */
edesc = aead_edesc_alloc(req, AUTHENC_DESC_JOB_IO_LEN,
@@ -2620,51 +1501,80 @@ static struct ablkcipher_edesc *ablkciph
@@ -2624,51 +1505,80 @@ static struct ablkcipher_edesc *ablkciph
struct device *jrdev = ctx->jrdev;
gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
GFP_KERNEL : GFP_ATOMIC;
@ -9594,7 +9594,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return ERR_PTR(-ENOMEM);
}
@@ -2674,23 +1584,24 @@ static struct ablkcipher_edesc *ablkciph
@@ -2678,23 +1588,24 @@ static struct ablkcipher_edesc *ablkciph
edesc->sec4_sg = (void *)edesc + sizeof(struct ablkcipher_edesc) +
desc_bytes;
@ -9626,7 +9626,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return ERR_PTR(-ENOMEM);
}
@@ -2702,7 +1613,7 @@ static struct ablkcipher_edesc *ablkciph
@@ -2706,7 +1617,7 @@ static struct ablkcipher_edesc *ablkciph
sec4_sg_bytes, 1);
#endif
@ -9635,7 +9635,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return edesc;
}
@@ -2793,30 +1704,54 @@ static struct ablkcipher_edesc *ablkciph
@@ -2797,30 +1708,54 @@ static struct ablkcipher_edesc *ablkciph
struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
struct caam_ctx *ctx = crypto_ablkcipher_ctx(ablkcipher);
struct device *jrdev = ctx->jrdev;
@ -9706,7 +9706,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
}
/*
@@ -2826,21 +1761,29 @@ static struct ablkcipher_edesc *ablkciph
@@ -2830,21 +1765,29 @@ static struct ablkcipher_edesc *ablkciph
iv_dma = dma_map_single(jrdev, greq->giv, ivsize, DMA_TO_DEVICE);
if (dma_mapping_error(jrdev, iv_dma)) {
dev_err(jrdev, "unable to map IV\n");
@ -9742,7 +9742,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return ERR_PTR(-ENOMEM);
}
@@ -2850,24 +1793,24 @@ static struct ablkcipher_edesc *ablkciph
@@ -2854,24 +1797,24 @@ static struct ablkcipher_edesc *ablkciph
edesc->sec4_sg = (void *)edesc + sizeof(struct ablkcipher_edesc) +
desc_bytes;
@ -9777,7 +9777,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return ERR_PTR(-ENOMEM);
}
edesc->iv_dma = iv_dma;
@@ -2879,7 +1822,7 @@ static struct ablkcipher_edesc *ablkciph
@@ -2883,7 +1826,7 @@ static struct ablkcipher_edesc *ablkciph
sec4_sg_bytes, 1);
#endif
@ -9786,7 +9786,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return edesc;
}
@@ -2890,7 +1833,7 @@ static int ablkcipher_givencrypt(struct
@@ -2894,7 +1837,7 @@ static int ablkcipher_givencrypt(struct
struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
struct caam_ctx *ctx = crypto_ablkcipher_ctx(ablkcipher);
struct device *jrdev = ctx->jrdev;
@ -9795,7 +9795,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
u32 *desc;
int ret = 0;
@@ -2934,7 +1877,6 @@ struct caam_alg_template {
@@ -2938,7 +1881,6 @@ struct caam_alg_template {
} template_u;
u32 class1_alg_type;
u32 class2_alg_type;
@ -9803,7 +9803,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
};
static struct caam_alg_template driver_algs[] = {
@@ -3119,7 +2061,6 @@ static struct caam_aead_alg driver_aeads
@@ -3123,7 +2065,6 @@ static struct caam_aead_alg driver_aeads
.caam = {
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9811,7 +9811,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3141,7 +2082,6 @@ static struct caam_aead_alg driver_aeads
@@ -3145,7 +2086,6 @@ static struct caam_aead_alg driver_aeads
.caam = {
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9819,7 +9819,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3163,7 +2103,6 @@ static struct caam_aead_alg driver_aeads
@@ -3167,7 +2107,6 @@ static struct caam_aead_alg driver_aeads
.caam = {
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9827,7 +9827,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3185,7 +2124,6 @@ static struct caam_aead_alg driver_aeads
@@ -3189,7 +2128,6 @@ static struct caam_aead_alg driver_aeads
.caam = {
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9835,7 +9835,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3207,7 +2145,6 @@ static struct caam_aead_alg driver_aeads
@@ -3211,7 +2149,6 @@ static struct caam_aead_alg driver_aeads
.caam = {
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9843,7 +9843,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3229,7 +2166,6 @@ static struct caam_aead_alg driver_aeads
@@ -3233,7 +2170,6 @@ static struct caam_aead_alg driver_aeads
.caam = {
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9851,7 +9851,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3251,7 +2187,6 @@ static struct caam_aead_alg driver_aeads
@@ -3255,7 +2191,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9859,7 +9859,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3274,7 +2209,6 @@ static struct caam_aead_alg driver_aeads
@@ -3278,7 +2213,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9867,7 +9867,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3297,7 +2231,6 @@ static struct caam_aead_alg driver_aeads
@@ -3301,7 +2235,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9875,7 +9875,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3320,7 +2253,6 @@ static struct caam_aead_alg driver_aeads
@@ -3324,7 +2257,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9883,7 +9883,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3343,7 +2275,6 @@ static struct caam_aead_alg driver_aeads
@@ -3347,7 +2279,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9891,7 +9891,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3366,7 +2297,6 @@ static struct caam_aead_alg driver_aeads
@@ -3370,7 +2301,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9899,7 +9899,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3389,7 +2319,6 @@ static struct caam_aead_alg driver_aeads
@@ -3393,7 +2323,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9907,7 +9907,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3412,7 +2341,6 @@ static struct caam_aead_alg driver_aeads
@@ -3416,7 +2345,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9915,7 +9915,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3435,7 +2363,6 @@ static struct caam_aead_alg driver_aeads
@@ -3439,7 +2367,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9923,7 +9923,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3458,7 +2385,6 @@ static struct caam_aead_alg driver_aeads
@@ -3462,7 +2389,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9931,7 +9931,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3481,7 +2407,6 @@ static struct caam_aead_alg driver_aeads
@@ -3485,7 +2411,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9939,7 +9939,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3504,7 +2429,6 @@ static struct caam_aead_alg driver_aeads
@@ -3508,7 +2433,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9947,7 +9947,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3527,7 +2451,6 @@ static struct caam_aead_alg driver_aeads
@@ -3531,7 +2455,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9955,7 +9955,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
}
},
{
@@ -3550,7 +2473,6 @@ static struct caam_aead_alg driver_aeads
@@ -3554,7 +2477,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9963,7 +9963,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
}
},
@@ -3574,7 +2496,6 @@ static struct caam_aead_alg driver_aeads
@@ -3578,7 +2500,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9971,7 +9971,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3598,7 +2519,6 @@ static struct caam_aead_alg driver_aeads
@@ -3602,7 +2523,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9979,7 +9979,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3622,7 +2542,6 @@ static struct caam_aead_alg driver_aeads
@@ -3626,7 +2546,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9987,7 +9987,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3646,7 +2565,6 @@ static struct caam_aead_alg driver_aeads
@@ -3650,7 +2569,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -9995,7 +9995,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3670,7 +2588,6 @@ static struct caam_aead_alg driver_aeads
@@ -3674,7 +2592,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10003,7 +10003,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3694,7 +2611,6 @@ static struct caam_aead_alg driver_aeads
@@ -3698,7 +2615,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10011,7 +10011,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3718,7 +2634,6 @@ static struct caam_aead_alg driver_aeads
@@ -3722,7 +2638,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10019,7 +10019,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3742,7 +2657,6 @@ static struct caam_aead_alg driver_aeads
@@ -3746,7 +2661,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10027,7 +10027,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3766,7 +2680,6 @@ static struct caam_aead_alg driver_aeads
@@ -3770,7 +2684,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10035,7 +10035,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3790,7 +2703,6 @@ static struct caam_aead_alg driver_aeads
@@ -3794,7 +2707,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10043,7 +10043,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3813,7 +2725,6 @@ static struct caam_aead_alg driver_aeads
@@ -3817,7 +2729,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10051,7 +10051,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3836,7 +2747,6 @@ static struct caam_aead_alg driver_aeads
@@ -3840,7 +2751,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10059,7 +10059,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3859,7 +2769,6 @@ static struct caam_aead_alg driver_aeads
@@ -3863,7 +2773,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10067,7 +10067,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3882,7 +2791,6 @@ static struct caam_aead_alg driver_aeads
@@ -3886,7 +2795,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10075,7 +10075,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3905,7 +2813,6 @@ static struct caam_aead_alg driver_aeads
@@ -3909,7 +2817,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10083,7 +10083,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3928,7 +2835,6 @@ static struct caam_aead_alg driver_aeads
@@ -3932,7 +2839,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10091,7 +10091,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3951,7 +2857,6 @@ static struct caam_aead_alg driver_aeads
@@ -3955,7 +2861,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10099,7 +10099,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -3974,7 +2879,6 @@ static struct caam_aead_alg driver_aeads
@@ -3978,7 +2883,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10107,7 +10107,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -3997,7 +2901,6 @@ static struct caam_aead_alg driver_aeads
@@ -4001,7 +2905,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10115,7 +10115,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -4020,7 +2923,6 @@ static struct caam_aead_alg driver_aeads
@@ -4024,7 +2927,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10123,7 +10123,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -4043,7 +2945,6 @@ static struct caam_aead_alg driver_aeads
@@ -4047,7 +2949,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10131,7 +10131,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
},
},
{
@@ -4066,7 +2967,6 @@ static struct caam_aead_alg driver_aeads
@@ -4070,7 +2971,6 @@ static struct caam_aead_alg driver_aeads
.class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10139,7 +10139,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.geniv = true,
},
},
@@ -4091,7 +2991,6 @@ static struct caam_aead_alg driver_aeads
@@ -4095,7 +2995,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10147,7 +10147,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
},
},
@@ -4116,7 +3015,6 @@ static struct caam_aead_alg driver_aeads
@@ -4120,7 +3019,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_MD5 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10155,7 +10155,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
.geniv = true,
},
@@ -4142,7 +3040,6 @@ static struct caam_aead_alg driver_aeads
@@ -4146,7 +3044,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10163,7 +10163,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
},
},
@@ -4167,7 +3064,6 @@ static struct caam_aead_alg driver_aeads
@@ -4171,7 +3068,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA1 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10171,7 +10171,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
.geniv = true,
},
@@ -4193,7 +3089,6 @@ static struct caam_aead_alg driver_aeads
@@ -4197,7 +3093,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10179,7 +10179,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
},
},
@@ -4218,7 +3113,6 @@ static struct caam_aead_alg driver_aeads
@@ -4222,7 +3117,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA224 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10187,7 +10187,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
.geniv = true,
},
@@ -4244,7 +3138,6 @@ static struct caam_aead_alg driver_aeads
@@ -4248,7 +3142,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10195,7 +10195,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
},
},
@@ -4269,7 +3162,6 @@ static struct caam_aead_alg driver_aeads
@@ -4273,7 +3166,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA256 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10203,7 +10203,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
.geniv = true,
},
@@ -4295,7 +3187,6 @@ static struct caam_aead_alg driver_aeads
@@ -4299,7 +3191,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10211,7 +10211,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
},
},
@@ -4320,7 +3211,6 @@ static struct caam_aead_alg driver_aeads
@@ -4324,7 +3215,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA384 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10219,7 +10219,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
.geniv = true,
},
@@ -4346,7 +3236,6 @@ static struct caam_aead_alg driver_aeads
@@ -4350,7 +3240,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10227,7 +10227,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
},
},
@@ -4371,7 +3260,6 @@ static struct caam_aead_alg driver_aeads
@@ -4375,7 +3264,6 @@ static struct caam_aead_alg driver_aeads
OP_ALG_AAI_CTR_MOD128,
.class2_alg_type = OP_ALG_ALGSEL_SHA512 |
OP_ALG_AAI_HMAC_PRECOMP,
@ -10235,7 +10235,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
.rfc3686 = true,
.geniv = true,
},
@@ -4386,16 +3274,34 @@ struct caam_crypto_alg {
@@ -4390,16 +3278,34 @@ struct caam_crypto_alg {
static int caam_init_common(struct caam_ctx *ctx, struct caam_alg_entry *caam)
{
@ -10273,7 +10273,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return 0;
}
@@ -4422,25 +3328,9 @@ static int caam_aead_init(struct crypto_
@@ -4426,25 +3332,9 @@ static int caam_aead_init(struct crypto_
static void caam_exit_common(struct caam_ctx *ctx)
{
@ -10302,7 +10302,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
caam_jr_free(ctx->jrdev);
}
@@ -4516,7 +3406,6 @@ static struct caam_crypto_alg *caam_alg_
@@ -4520,7 +3410,6 @@ static struct caam_crypto_alg *caam_alg_
t_alg->caam.class1_alg_type = template->class1_alg_type;
t_alg->caam.class2_alg_type = template->class2_alg_type;

View File

@ -156,7 +156,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
int ret;
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -4440,6 +4440,14 @@ hub_port_init(struct usb_hub *hub, struc
@@ -4447,6 +4447,14 @@ hub_port_init(struct usb_hub *hub, struc
else
speed = usb_speed_string(udev->speed);

View File

@ -1,99 +0,0 @@
From 0a987645672ebde7844a9c0732a5a25f3d4bb6c6 Mon Sep 17 00:00:00 2001
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Thu, 25 May 2017 11:36:26 -0700
Subject: [PATCH] um: Allow building and running on older hosts
[ Upstream commit 0a987645672ebde7844a9c0732a5a25f3d4bb6c6 ]
Commit a78ff1112263 ("um: add extended processor state save/restore
support") and b6024b21fec8 ("um: extend fpstate to _xstate to support
YMM registers") forced the use of the x86 FP _xstate and
PTRACE_GETREGSET/SETREGSET. On older hosts, we would neither be able to
build UML nor run it anymore with these two commits applied because we
don't have definitions for struct _xstate nor these two ptrace requests.
We can determine at build time which fp context structure to check
against, just like we can keep using the old i387 fp save/restore if
PTRACE_GETRESET/SETREGSET are not defined.
Fixes: a78ff1112263 ("um: add extended processor state save/restore support")
Fixes: b6024b21fec8 ("um: extend fpstate to _xstate to support YMM registers")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
---
arch/x86/um/os-Linux/registers.c | 12 ++++++++----
arch/x86/um/user-offsets.c | 4 ++++
2 files changed, 12 insertions(+), 4 deletions(-)
--- a/arch/x86/um/os-Linux/registers.c
+++ b/arch/x86/um/os-Linux/registers.c
@@ -26,6 +26,7 @@ int save_i387_registers(int pid, unsigne
int save_fp_registers(int pid, unsigned long *fp_regs)
{
+#ifdef PTRACE_GETREGSET
struct iovec iov;
if (have_xstate_support) {
@@ -34,9 +35,9 @@ int save_fp_registers(int pid, unsigned
if (ptrace(PTRACE_GETREGSET, pid, NT_X86_XSTATE, &iov) < 0)
return -errno;
return 0;
- } else {
+ } else
+#endif
return save_i387_registers(pid, fp_regs);
- }
}
int restore_i387_registers(int pid, unsigned long *fp_regs)
@@ -48,6 +49,7 @@ int restore_i387_registers(int pid, unsi
int restore_fp_registers(int pid, unsigned long *fp_regs)
{
+#ifdef PTRACE_SETREGSET
struct iovec iov;
if (have_xstate_support) {
@@ -56,9 +58,9 @@ int restore_fp_registers(int pid, unsign
if (ptrace(PTRACE_SETREGSET, pid, NT_X86_XSTATE, &iov) < 0)
return -errno;
return 0;
- } else {
+ } else
+#endif
return restore_i387_registers(pid, fp_regs);
- }
}
#ifdef __i386__
@@ -122,6 +124,7 @@ int put_fp_registers(int pid, unsigned l
void arch_init_registers(int pid)
{
+#ifdef PTRACE_GETREGSET
struct _xstate fp_regs;
struct iovec iov;
@@ -129,6 +132,7 @@ void arch_init_registers(int pid)
iov.iov_len = sizeof(struct _xstate);
if (ptrace(PTRACE_GETREGSET, pid, NT_X86_XSTATE, &iov) == 0)
have_xstate_support = 1;
+#endif
}
#endif
--- a/arch/x86/um/user-offsets.c
+++ b/arch/x86/um/user-offsets.c
@@ -50,7 +50,11 @@ void foo(void)
DEFINE(HOST_GS, GS);
DEFINE(HOST_ORIG_AX, ORIG_EAX);
#else
+#if defined(PTRACE_GETREGSET) && defined(PTRACE_SETREGSET)
DEFINE(HOST_FP_SIZE, sizeof(struct _xstate) / sizeof(unsigned long));
+#else
+ DEFINE(HOST_FP_SIZE, sizeof(struct _fpstate) / sizeof(unsigned long));
+#endif
DEFINE_LONGS(HOST_BX, RBX);
DEFINE_LONGS(HOST_CX, RCX);
DEFINE_LONGS(HOST_DI, RDI);

View File

@ -1,46 +0,0 @@
From 2fb44600fe784449404c6639de26af8361999ec7 Mon Sep 17 00:00:00 2001
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Tue, 18 Jul 2017 16:43:47 -0700
Subject: [PATCH] um: Fix check for _xstate for older hosts
Commit 0a987645672e ("um: Allow building and running on older
hosts") attempted to check for PTRACE_{GET,SET}REGSET under the premise
that these ptrace(2) parameters were directly linked with the presence
of the _xstate structure.
After Richard's commit 61e8d462457f ("um: Correctly check for
PTRACE_GETRESET/SETREGSET") which properly included linux/ptrace.h
instead of asm/ptrace.h, we could get into the original build failure
that I reported:
arch/x86/um/user-offsets.c: In function 'foo':
arch/x86/um/user-offsets.c:54: error: invalid application of 'sizeof' to
incomplete type 'struct _xstate'
On this particular host, we do have PTRACE_GETREGSET and
PTRACE_SETREGSET defined in linux/ptrace.h, but not the structure
_xstate that should be pulled from the following include chain: signal.h
-> bits/sigcontext.h.
Correctly fix this by checking for FP_XSTATE_MAGIC1 which is the correct
way to see if struct _xstate is available or not on the host.
Fixes: 61e8d462457f ("um: Correctly check for PTRACE_GETRESET/SETREGSET")
Fixes: 0a987645672e ("um: Allow building and running on older hosts")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
---
arch/x86/um/user-offsets.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/um/user-offsets.c
+++ b/arch/x86/um/user-offsets.c
@@ -50,7 +50,7 @@ void foo(void)
DEFINE(HOST_GS, GS);
DEFINE(HOST_ORIG_AX, ORIG_EAX);
#else
-#if defined(PTRACE_GETREGSET) && defined(PTRACE_SETREGSET)
+#ifdef FP_XSTATE_MAGIC1
DEFINE(HOST_FP_SIZE, sizeof(struct _xstate) / sizeof(unsigned long));
#else
DEFINE(HOST_FP_SIZE, sizeof(struct _fpstate) / sizeof(unsigned long));