From: Greg Kroah-Hartman Date: Fri, 1 Mar 2019 12:52:01 +0000 (+0100) Subject: drop unneeded patch from all queues X-Git-Tag: v4.9.162~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f8d1b7022efe33166961f60529791042db5c4019;p=thirdparty%2Fkernel%2Fstable-queue.git drop unneeded patch from all queues --- diff --git a/queue-3.18/series b/queue-3.18/series index e177b923689..5a403a885d9 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -34,7 +34,6 @@ mac80211-fix-miscounting-of-ttl-dropped-frames.patch serial-fsl_lpuart-fix-maximum-acceptable-baud-rate-w.patch scsi-csiostor-fix-null-pointer-dereference-in-csio_v.patch net-altera_tse-fix-connect_local_phy-error-path.patch -sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch ibmveth-do-not-process-frames-after-calling-napi_res.patch mac80211-don-t-initiate-tdls-connection-if-station-i.patch cfg80211-extend-range-deviation-for-dmg.patch diff --git a/queue-3.18/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch b/queue-3.18/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch deleted file mode 100644 index 6908f0c441d..00000000000 --- a/queue-3.18/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch +++ /dev/null @@ -1,98 +0,0 @@ -From bb89ece55cec6219da8c30ae560fe3789601aae9 Mon Sep 17 00:00:00 2001 -From: Edward Cree -Date: Tue, 22 Jan 2019 19:02:17 +0000 -Subject: sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe - -[ Upstream commit 3366463513f544c12c6b88c13da4462ee9e7a1a1 ] - -Use a bitmap to keep track of which partition types we've already seen; - for duplicates, return -EEXIST from efx_ef10_mtd_probe_partition() and - thus skip adding that partition. -Duplicate partitions occur because of the A/B backup scheme used by newer - sfc NICs. Prior to this patch they cause sysfs_warn_dup errors because - they have the same name, causing us not to expose any MTDs at all. - -Signed-off-by: Edward Cree -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin ---- - drivers/net/ethernet/sfc/ef10.c | 29 +++++++++++++++++++++-------- - 1 file changed, 21 insertions(+), 8 deletions(-) - -diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c -index 010009d640174..84a17b41313c9 100644 ---- a/drivers/net/ethernet/sfc/ef10.c -+++ b/drivers/net/ethernet/sfc/ef10.c -@@ -3407,22 +3407,25 @@ static const struct efx_ef10_nvram_type_info efx_ef10_nvram_types[] = { - { NVRAM_PARTITION_TYPE_LICENSE, 0, 0, "sfc_license" }, - { NVRAM_PARTITION_TYPE_PHY_MIN, 0xff, 0, "sfc_phy_fw" }, - }; -+#define EF10_NVRAM_PARTITION_COUNT ARRAY_SIZE(efx_ef10_nvram_types) - - static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - struct efx_mcdi_mtd_partition *part, -- unsigned int type) -+ unsigned int type, -+ unsigned long *found) - { - MCDI_DECLARE_BUF(inbuf, MC_CMD_NVRAM_METADATA_IN_LEN); - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_METADATA_OUT_LENMAX); - const struct efx_ef10_nvram_type_info *info; - size_t size, erase_size, outlen; -+ int type_idx = 0; - bool protected; - int rc; - -- for (info = efx_ef10_nvram_types; ; info++) { -- if (info == -- efx_ef10_nvram_types + ARRAY_SIZE(efx_ef10_nvram_types)) -+ for (type_idx = 0; ; type_idx++) { -+ if (type_idx == EF10_NVRAM_PARTITION_COUNT) - return -ENODEV; -+ info = efx_ef10_nvram_types + type_idx; - if ((type & ~info->type_mask) == info->type) - break; - } -@@ -3435,6 +3438,13 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - if (protected) - return -ENODEV; /* hide it */ - -+ /* If we've already exposed a partition of this type, hide this -+ * duplicate. All operations on MTDs are keyed by the type anyway, -+ * so we can't act on the duplicate. -+ */ -+ if (__test_and_set_bit(type_idx, found)) -+ return -EEXIST; -+ - part->nvram_type = type; - - MCDI_SET_DWORD(inbuf, NVRAM_METADATA_IN_TYPE, type); -@@ -3463,6 +3473,7 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - static int efx_ef10_mtd_probe(struct efx_nic *efx) - { - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX); -+ DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT); - struct efx_mcdi_mtd_partition *parts; - size_t outlen, n_parts_total, i, n_parts; - unsigned int type; -@@ -3491,11 +3502,13 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx) - for (i = 0; i < n_parts_total; i++) { - type = MCDI_ARRAY_DWORD(outbuf, NVRAM_PARTITIONS_OUT_TYPE_ID, - i); -- rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type); -- if (rc == 0) -- n_parts++; -- else if (rc != -ENODEV) -+ rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type, -+ found); -+ if (rc == -EEXIST || rc == -ENODEV) -+ continue; -+ if (rc) - goto fail; -+ n_parts++; - } - - rc = efx_mtd_add(efx, &parts[0].common, n_parts, sizeof(*parts)); --- -2.19.1 - diff --git a/queue-4.14/series b/queue-4.14/series index f4067ee415b..7c61f40d2bb 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -33,7 +33,6 @@ writeback-synchronize-sync-2-against-cgroup-writebac.patch scsi-csiostor-fix-null-pointer-dereference-in-csio_v.patch net-altera_tse-fix-connect_local_phy-error-path.patch hv_netvsc-fix-ethtool-change-hash-key-error.patch -sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch net-usb-asix-ax88772_bind-return-error-when-hw_reset.patch net-dev_is_mac_header_xmit-true-for-arphrd_rawip.patch ibmveth-do-not-process-frames-after-calling-napi_res.patch diff --git a/queue-4.14/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch b/queue-4.14/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch deleted file mode 100644 index e28e3c60dc8..00000000000 --- a/queue-4.14/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch +++ /dev/null @@ -1,98 +0,0 @@ -From ffcf79025fa8805aa07366b85d8ea3e9c6476cee Mon Sep 17 00:00:00 2001 -From: Edward Cree -Date: Tue, 22 Jan 2019 19:02:17 +0000 -Subject: sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe - -[ Upstream commit 3366463513f544c12c6b88c13da4462ee9e7a1a1 ] - -Use a bitmap to keep track of which partition types we've already seen; - for duplicates, return -EEXIST from efx_ef10_mtd_probe_partition() and - thus skip adding that partition. -Duplicate partitions occur because of the A/B backup scheme used by newer - sfc NICs. Prior to this patch they cause sysfs_warn_dup errors because - they have the same name, causing us not to expose any MTDs at all. - -Signed-off-by: Edward Cree -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin ---- - drivers/net/ethernet/sfc/ef10.c | 29 +++++++++++++++++++++-------- - 1 file changed, 21 insertions(+), 8 deletions(-) - -diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c -index 09352ee43b55c..cc3be94d05622 100644 ---- a/drivers/net/ethernet/sfc/ef10.c -+++ b/drivers/net/ethernet/sfc/ef10.c -@@ -5852,22 +5852,25 @@ static const struct efx_ef10_nvram_type_info efx_ef10_nvram_types[] = { - { NVRAM_PARTITION_TYPE_LICENSE, 0, 0, "sfc_license" }, - { NVRAM_PARTITION_TYPE_PHY_MIN, 0xff, 0, "sfc_phy_fw" }, - }; -+#define EF10_NVRAM_PARTITION_COUNT ARRAY_SIZE(efx_ef10_nvram_types) - - static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - struct efx_mcdi_mtd_partition *part, -- unsigned int type) -+ unsigned int type, -+ unsigned long *found) - { - MCDI_DECLARE_BUF(inbuf, MC_CMD_NVRAM_METADATA_IN_LEN); - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_METADATA_OUT_LENMAX); - const struct efx_ef10_nvram_type_info *info; - size_t size, erase_size, outlen; -+ int type_idx = 0; - bool protected; - int rc; - -- for (info = efx_ef10_nvram_types; ; info++) { -- if (info == -- efx_ef10_nvram_types + ARRAY_SIZE(efx_ef10_nvram_types)) -+ for (type_idx = 0; ; type_idx++) { -+ if (type_idx == EF10_NVRAM_PARTITION_COUNT) - return -ENODEV; -+ info = efx_ef10_nvram_types + type_idx; - if ((type & ~info->type_mask) == info->type) - break; - } -@@ -5880,6 +5883,13 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - if (protected) - return -ENODEV; /* hide it */ - -+ /* If we've already exposed a partition of this type, hide this -+ * duplicate. All operations on MTDs are keyed by the type anyway, -+ * so we can't act on the duplicate. -+ */ -+ if (__test_and_set_bit(type_idx, found)) -+ return -EEXIST; -+ - part->nvram_type = type; - - MCDI_SET_DWORD(inbuf, NVRAM_METADATA_IN_TYPE, type); -@@ -5908,6 +5918,7 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - static int efx_ef10_mtd_probe(struct efx_nic *efx) - { - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX); -+ DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT); - struct efx_mcdi_mtd_partition *parts; - size_t outlen, n_parts_total, i, n_parts; - unsigned int type; -@@ -5936,11 +5947,13 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx) - for (i = 0; i < n_parts_total; i++) { - type = MCDI_ARRAY_DWORD(outbuf, NVRAM_PARTITIONS_OUT_TYPE_ID, - i); -- rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type); -- if (rc == 0) -- n_parts++; -- else if (rc != -ENODEV) -+ rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type, -+ found); -+ if (rc == -EEXIST || rc == -ENODEV) -+ continue; -+ if (rc) - goto fail; -+ n_parts++; - } - - rc = efx_mtd_add(efx, &parts[0].common, n_parts, sizeof(*parts)); --- -2.19.1 - diff --git a/queue-4.19/series b/queue-4.19/series index f505fd1b55d..bb485514004 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -50,7 +50,6 @@ net-altera_tse-fix-connect_local_phy-error-path.patch hv_netvsc-fix-ethtool-change-hash-key-error.patch hv_netvsc-refactor-assignments-of-struct-netvsc_devi.patch hv_netvsc-fix-hash-key-value-reset-after-other-ops.patch -sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch nvme-rdma-fix-timeout-handler.patch nvme-multipath-drop-optimization-for-static-ana-grou.patch drm-msm-fix-a6xx-support-for-opp-level.patch diff --git a/queue-4.19/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch b/queue-4.19/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch deleted file mode 100644 index cd5d19fb627..00000000000 --- a/queue-4.19/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 43065648286549fee83fdc0ab9f1132ad8427864 Mon Sep 17 00:00:00 2001 -From: Edward Cree -Date: Tue, 22 Jan 2019 19:02:17 +0000 -Subject: sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe - -[ Upstream commit 3366463513f544c12c6b88c13da4462ee9e7a1a1 ] - -Use a bitmap to keep track of which partition types we've already seen; - for duplicates, return -EEXIST from efx_ef10_mtd_probe_partition() and - thus skip adding that partition. -Duplicate partitions occur because of the A/B backup scheme used by newer - sfc NICs. Prior to this patch they cause sysfs_warn_dup errors because - they have the same name, causing us not to expose any MTDs at all. - -Signed-off-by: Edward Cree -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin ---- - drivers/net/ethernet/sfc/ef10.c | 29 +++++++++++++++++++++-------- - 1 file changed, 21 insertions(+), 8 deletions(-) - -diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c -index 7eeac3d6cfe89..a497aace7e4f4 100644 ---- a/drivers/net/ethernet/sfc/ef10.c -+++ b/drivers/net/ethernet/sfc/ef10.c -@@ -6042,22 +6042,25 @@ static const struct efx_ef10_nvram_type_info efx_ef10_nvram_types[] = { - { NVRAM_PARTITION_TYPE_LICENSE, 0, 0, "sfc_license" }, - { NVRAM_PARTITION_TYPE_PHY_MIN, 0xff, 0, "sfc_phy_fw" }, - }; -+#define EF10_NVRAM_PARTITION_COUNT ARRAY_SIZE(efx_ef10_nvram_types) - - static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - struct efx_mcdi_mtd_partition *part, -- unsigned int type) -+ unsigned int type, -+ unsigned long *found) - { - MCDI_DECLARE_BUF(inbuf, MC_CMD_NVRAM_METADATA_IN_LEN); - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_METADATA_OUT_LENMAX); - const struct efx_ef10_nvram_type_info *info; - size_t size, erase_size, outlen; -+ int type_idx = 0; - bool protected; - int rc; - -- for (info = efx_ef10_nvram_types; ; info++) { -- if (info == -- efx_ef10_nvram_types + ARRAY_SIZE(efx_ef10_nvram_types)) -+ for (type_idx = 0; ; type_idx++) { -+ if (type_idx == EF10_NVRAM_PARTITION_COUNT) - return -ENODEV; -+ info = efx_ef10_nvram_types + type_idx; - if ((type & ~info->type_mask) == info->type) - break; - } -@@ -6070,6 +6073,13 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - if (protected) - return -ENODEV; /* hide it */ - -+ /* If we've already exposed a partition of this type, hide this -+ * duplicate. All operations on MTDs are keyed by the type anyway, -+ * so we can't act on the duplicate. -+ */ -+ if (__test_and_set_bit(type_idx, found)) -+ return -EEXIST; -+ - part->nvram_type = type; - - MCDI_SET_DWORD(inbuf, NVRAM_METADATA_IN_TYPE, type); -@@ -6098,6 +6108,7 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - static int efx_ef10_mtd_probe(struct efx_nic *efx) - { - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX); -+ DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT); - struct efx_mcdi_mtd_partition *parts; - size_t outlen, n_parts_total, i, n_parts; - unsigned int type; -@@ -6126,11 +6137,13 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx) - for (i = 0; i < n_parts_total; i++) { - type = MCDI_ARRAY_DWORD(outbuf, NVRAM_PARTITIONS_OUT_TYPE_ID, - i); -- rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type); -- if (rc == 0) -- n_parts++; -- else if (rc != -ENODEV) -+ rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type, -+ found); -+ if (rc == -EEXIST || rc == -ENODEV) -+ continue; -+ if (rc) - goto fail; -+ n_parts++; - } - - rc = efx_mtd_add(efx, &parts[0].common, n_parts, sizeof(*parts)); --- -2.19.1 - diff --git a/queue-4.20/series b/queue-4.20/series index 3f0eff5ef08..91f9f39d602 100644 --- a/queue-4.20/series +++ b/queue-4.20/series @@ -50,7 +50,6 @@ net-altera_tse-fix-connect_local_phy-error-path.patch hv_netvsc-fix-ethtool-change-hash-key-error.patch hv_netvsc-refactor-assignments-of-struct-netvsc_devi.patch hv_netvsc-fix-hash-key-value-reset-after-other-ops.patch -sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch nvme-rdma-fix-timeout-handler.patch nvme-multipath-drop-optimization-for-static-ana-grou.patch cifs-fix-memory-leak-of-an-allocated-cifs_ntsd-struc.patch diff --git a/queue-4.20/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch b/queue-4.20/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch deleted file mode 100644 index 4929bce8f8d..00000000000 --- a/queue-4.20/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 8ab94631c3e33186e39d076d0fa882ffe9ee8a65 Mon Sep 17 00:00:00 2001 -From: Edward Cree -Date: Tue, 22 Jan 2019 19:02:17 +0000 -Subject: sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe - -[ Upstream commit 3366463513f544c12c6b88c13da4462ee9e7a1a1 ] - -Use a bitmap to keep track of which partition types we've already seen; - for duplicates, return -EEXIST from efx_ef10_mtd_probe_partition() and - thus skip adding that partition. -Duplicate partitions occur because of the A/B backup scheme used by newer - sfc NICs. Prior to this patch they cause sysfs_warn_dup errors because - they have the same name, causing us not to expose any MTDs at all. - -Signed-off-by: Edward Cree -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin ---- - drivers/net/ethernet/sfc/ef10.c | 29 +++++++++++++++++++++-------- - 1 file changed, 21 insertions(+), 8 deletions(-) - -diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c -index 7eeac3d6cfe89..a497aace7e4f4 100644 ---- a/drivers/net/ethernet/sfc/ef10.c -+++ b/drivers/net/ethernet/sfc/ef10.c -@@ -6042,22 +6042,25 @@ static const struct efx_ef10_nvram_type_info efx_ef10_nvram_types[] = { - { NVRAM_PARTITION_TYPE_LICENSE, 0, 0, "sfc_license" }, - { NVRAM_PARTITION_TYPE_PHY_MIN, 0xff, 0, "sfc_phy_fw" }, - }; -+#define EF10_NVRAM_PARTITION_COUNT ARRAY_SIZE(efx_ef10_nvram_types) - - static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - struct efx_mcdi_mtd_partition *part, -- unsigned int type) -+ unsigned int type, -+ unsigned long *found) - { - MCDI_DECLARE_BUF(inbuf, MC_CMD_NVRAM_METADATA_IN_LEN); - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_METADATA_OUT_LENMAX); - const struct efx_ef10_nvram_type_info *info; - size_t size, erase_size, outlen; -+ int type_idx = 0; - bool protected; - int rc; - -- for (info = efx_ef10_nvram_types; ; info++) { -- if (info == -- efx_ef10_nvram_types + ARRAY_SIZE(efx_ef10_nvram_types)) -+ for (type_idx = 0; ; type_idx++) { -+ if (type_idx == EF10_NVRAM_PARTITION_COUNT) - return -ENODEV; -+ info = efx_ef10_nvram_types + type_idx; - if ((type & ~info->type_mask) == info->type) - break; - } -@@ -6070,6 +6073,13 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - if (protected) - return -ENODEV; /* hide it */ - -+ /* If we've already exposed a partition of this type, hide this -+ * duplicate. All operations on MTDs are keyed by the type anyway, -+ * so we can't act on the duplicate. -+ */ -+ if (__test_and_set_bit(type_idx, found)) -+ return -EEXIST; -+ - part->nvram_type = type; - - MCDI_SET_DWORD(inbuf, NVRAM_METADATA_IN_TYPE, type); -@@ -6098,6 +6108,7 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - static int efx_ef10_mtd_probe(struct efx_nic *efx) - { - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX); -+ DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT); - struct efx_mcdi_mtd_partition *parts; - size_t outlen, n_parts_total, i, n_parts; - unsigned int type; -@@ -6126,11 +6137,13 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx) - for (i = 0; i < n_parts_total; i++) { - type = MCDI_ARRAY_DWORD(outbuf, NVRAM_PARTITIONS_OUT_TYPE_ID, - i); -- rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type); -- if (rc == 0) -- n_parts++; -- else if (rc != -ENODEV) -+ rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type, -+ found); -+ if (rc == -EEXIST || rc == -ENODEV) -+ continue; -+ if (rc) - goto fail; -+ n_parts++; - } - - rc = efx_mtd_add(efx, &parts[0].common, n_parts, sizeof(*parts)); --- -2.19.1 - diff --git a/queue-4.4/series b/queue-4.4/series index 711f891c89f..430bd387e3a 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -42,7 +42,6 @@ mac80211-fix-miscounting-of-ttl-dropped-frames.patch serial-fsl_lpuart-fix-maximum-acceptable-baud-rate-w.patch scsi-csiostor-fix-null-pointer-dereference-in-csio_v.patch net-altera_tse-fix-connect_local_phy-error-path.patch -sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch ibmveth-do-not-process-frames-after-calling-napi_res.patch mac80211-don-t-initiate-tdls-connection-if-station-i.patch cfg80211-extend-range-deviation-for-dmg.patch diff --git a/queue-4.4/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch b/queue-4.4/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch deleted file mode 100644 index 4e63c3cbf4a..00000000000 --- a/queue-4.4/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch +++ /dev/null @@ -1,98 +0,0 @@ -From a919627faa376e337f5fec2242fb09cc661f9e83 Mon Sep 17 00:00:00 2001 -From: Edward Cree -Date: Tue, 22 Jan 2019 19:02:17 +0000 -Subject: sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe - -[ Upstream commit 3366463513f544c12c6b88c13da4462ee9e7a1a1 ] - -Use a bitmap to keep track of which partition types we've already seen; - for duplicates, return -EEXIST from efx_ef10_mtd_probe_partition() and - thus skip adding that partition. -Duplicate partitions occur because of the A/B backup scheme used by newer - sfc NICs. Prior to this patch they cause sysfs_warn_dup errors because - they have the same name, causing us not to expose any MTDs at all. - -Signed-off-by: Edward Cree -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin ---- - drivers/net/ethernet/sfc/ef10.c | 29 +++++++++++++++++++++-------- - 1 file changed, 21 insertions(+), 8 deletions(-) - -diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c -index 063aca17e698b..79a1031c3ef77 100644 ---- a/drivers/net/ethernet/sfc/ef10.c -+++ b/drivers/net/ethernet/sfc/ef10.c -@@ -4433,22 +4433,25 @@ static const struct efx_ef10_nvram_type_info efx_ef10_nvram_types[] = { - { NVRAM_PARTITION_TYPE_LICENSE, 0, 0, "sfc_license" }, - { NVRAM_PARTITION_TYPE_PHY_MIN, 0xff, 0, "sfc_phy_fw" }, - }; -+#define EF10_NVRAM_PARTITION_COUNT ARRAY_SIZE(efx_ef10_nvram_types) - - static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - struct efx_mcdi_mtd_partition *part, -- unsigned int type) -+ unsigned int type, -+ unsigned long *found) - { - MCDI_DECLARE_BUF(inbuf, MC_CMD_NVRAM_METADATA_IN_LEN); - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_METADATA_OUT_LENMAX); - const struct efx_ef10_nvram_type_info *info; - size_t size, erase_size, outlen; -+ int type_idx = 0; - bool protected; - int rc; - -- for (info = efx_ef10_nvram_types; ; info++) { -- if (info == -- efx_ef10_nvram_types + ARRAY_SIZE(efx_ef10_nvram_types)) -+ for (type_idx = 0; ; type_idx++) { -+ if (type_idx == EF10_NVRAM_PARTITION_COUNT) - return -ENODEV; -+ info = efx_ef10_nvram_types + type_idx; - if ((type & ~info->type_mask) == info->type) - break; - } -@@ -4461,6 +4464,13 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - if (protected) - return -ENODEV; /* hide it */ - -+ /* If we've already exposed a partition of this type, hide this -+ * duplicate. All operations on MTDs are keyed by the type anyway, -+ * so we can't act on the duplicate. -+ */ -+ if (__test_and_set_bit(type_idx, found)) -+ return -EEXIST; -+ - part->nvram_type = type; - - MCDI_SET_DWORD(inbuf, NVRAM_METADATA_IN_TYPE, type); -@@ -4489,6 +4499,7 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - static int efx_ef10_mtd_probe(struct efx_nic *efx) - { - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX); -+ DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT); - struct efx_mcdi_mtd_partition *parts; - size_t outlen, n_parts_total, i, n_parts; - unsigned int type; -@@ -4517,11 +4528,13 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx) - for (i = 0; i < n_parts_total; i++) { - type = MCDI_ARRAY_DWORD(outbuf, NVRAM_PARTITIONS_OUT_TYPE_ID, - i); -- rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type); -- if (rc == 0) -- n_parts++; -- else if (rc != -ENODEV) -+ rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type, -+ found); -+ if (rc == -EEXIST || rc == -ENODEV) -+ continue; -+ if (rc) - goto fail; -+ n_parts++; - } - - rc = efx_mtd_add(efx, &parts[0].common, n_parts, sizeof(*parts)); --- -2.19.1 - diff --git a/queue-4.9/series b/queue-4.9/series index 144a5f31b10..ed20a9f903e 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -19,7 +19,6 @@ serial-fsl_lpuart-fix-maximum-acceptable-baud-rate-w.patch direct-io-allow-direct-writes-to-empty-inodes.patch scsi-csiostor-fix-null-pointer-dereference-in-csio_v.patch net-altera_tse-fix-connect_local_phy-error-path.patch -sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch net-usb-asix-ax88772_bind-return-error-when-hw_reset.patch ibmveth-do-not-process-frames-after-calling-napi_res.patch mac80211-don-t-initiate-tdls-connection-if-station-i.patch diff --git a/queue-4.9/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch b/queue-4.9/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch deleted file mode 100644 index 5bb764e2ff2..00000000000 --- a/queue-4.9/sfc-suppress-duplicate-nvmem-partition-types-in-efx_.patch +++ /dev/null @@ -1,98 +0,0 @@ -From c28505471f3a7566619d117d5224a896d4e03aaf Mon Sep 17 00:00:00 2001 -From: Edward Cree -Date: Tue, 22 Jan 2019 19:02:17 +0000 -Subject: sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe - -[ Upstream commit 3366463513f544c12c6b88c13da4462ee9e7a1a1 ] - -Use a bitmap to keep track of which partition types we've already seen; - for duplicates, return -EEXIST from efx_ef10_mtd_probe_partition() and - thus skip adding that partition. -Duplicate partitions occur because of the A/B backup scheme used by newer - sfc NICs. Prior to this patch they cause sysfs_warn_dup errors because - they have the same name, causing us not to expose any MTDs at all. - -Signed-off-by: Edward Cree -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin ---- - drivers/net/ethernet/sfc/ef10.c | 29 +++++++++++++++++++++-------- - 1 file changed, 21 insertions(+), 8 deletions(-) - -diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c -index 3d5d5d54c1033..34e2256c93f46 100644 ---- a/drivers/net/ethernet/sfc/ef10.c -+++ b/drivers/net/ethernet/sfc/ef10.c -@@ -5093,22 +5093,25 @@ static const struct efx_ef10_nvram_type_info efx_ef10_nvram_types[] = { - { NVRAM_PARTITION_TYPE_LICENSE, 0, 0, "sfc_license" }, - { NVRAM_PARTITION_TYPE_PHY_MIN, 0xff, 0, "sfc_phy_fw" }, - }; -+#define EF10_NVRAM_PARTITION_COUNT ARRAY_SIZE(efx_ef10_nvram_types) - - static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - struct efx_mcdi_mtd_partition *part, -- unsigned int type) -+ unsigned int type, -+ unsigned long *found) - { - MCDI_DECLARE_BUF(inbuf, MC_CMD_NVRAM_METADATA_IN_LEN); - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_METADATA_OUT_LENMAX); - const struct efx_ef10_nvram_type_info *info; - size_t size, erase_size, outlen; -+ int type_idx = 0; - bool protected; - int rc; - -- for (info = efx_ef10_nvram_types; ; info++) { -- if (info == -- efx_ef10_nvram_types + ARRAY_SIZE(efx_ef10_nvram_types)) -+ for (type_idx = 0; ; type_idx++) { -+ if (type_idx == EF10_NVRAM_PARTITION_COUNT) - return -ENODEV; -+ info = efx_ef10_nvram_types + type_idx; - if ((type & ~info->type_mask) == info->type) - break; - } -@@ -5121,6 +5124,13 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - if (protected) - return -ENODEV; /* hide it */ - -+ /* If we've already exposed a partition of this type, hide this -+ * duplicate. All operations on MTDs are keyed by the type anyway, -+ * so we can't act on the duplicate. -+ */ -+ if (__test_and_set_bit(type_idx, found)) -+ return -EEXIST; -+ - part->nvram_type = type; - - MCDI_SET_DWORD(inbuf, NVRAM_METADATA_IN_TYPE, type); -@@ -5149,6 +5159,7 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx, - static int efx_ef10_mtd_probe(struct efx_nic *efx) - { - MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX); -+ DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT); - struct efx_mcdi_mtd_partition *parts; - size_t outlen, n_parts_total, i, n_parts; - unsigned int type; -@@ -5177,11 +5188,13 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx) - for (i = 0; i < n_parts_total; i++) { - type = MCDI_ARRAY_DWORD(outbuf, NVRAM_PARTITIONS_OUT_TYPE_ID, - i); -- rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type); -- if (rc == 0) -- n_parts++; -- else if (rc != -ENODEV) -+ rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type, -+ found); -+ if (rc == -EEXIST || rc == -ENODEV) -+ continue; -+ if (rc) - goto fail; -+ n_parts++; - } - - rc = efx_mtd_add(efx, &parts[0].common, n_parts, sizeof(*parts)); --- -2.19.1 -