All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 4.19 0/8] 4.19.145-rc1 review
@ 2020-09-11 12:54 Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection Greg Kroah-Hartman
                   ` (10 more replies)
  0 siblings, 11 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuah, patches,
	ben.hutchings, lkft-triage, stable

This is the start of the stable review cycle for the 4.19.145 release.
There are 8 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Sun, 13 Sep 2020 12:54:13 +0000.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
	https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.19.145-rc1.gz
or in the git tree and branch at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Linux 4.19.145-rc1

Roi Dayan <roid@mellanox.com>
    net/mlx5e: Don't support phys switch id if not in switchdev mode

Jakub Kicinski <kuba@kernel.org>
    net: disable netpoll on fresh napis

Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    tipc: fix shutdown() of connectionless socket

Xin Long <lucien.xin@gmail.com>
    sctp: not disable bh in the whole sctp_get_port_local()

Kamil Lorenc <kamil@re-ws.pl>
    net: usb: dm9601: Add USB ID of Keenetic Plus DSL

Paul Moore <paul@paul-moore.com>
    netlabel: fix problems with mapping removal

Jens Axboe <axboe@kernel.dk>
    block: ensure bdi->io_pages is always initialized

Takashi Sakamoto <o-takashi@sakamocchi.jp>
    ALSA; firewire-tascam: exclude Tascam FE-8 from detection


-------------

Diffstat:

 Makefile                                         |  4 +-
 block/blk-core.c                                 |  2 +
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c |  2 +-
 drivers/net/usb/dm9601.c                         |  4 ++
 net/core/dev.c                                   |  3 +-
 net/core/netpoll.c                               |  2 +-
 net/netlabel/netlabel_domainhash.c               | 59 ++++++++++++------------
 net/sctp/socket.c                                | 16 +++----
 net/tipc/socket.c                                |  9 ++--
 sound/firewire/tascam/tascam.c                   | 30 +++++++++++-
 10 files changed, 83 insertions(+), 48 deletions(-)



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
@ 2020-09-11 12:54 ` Greg Kroah-Hartman
  2020-09-14  7:47   ` Pavel Machek
  2020-09-11 12:54 ` [PATCH 4.19 2/8] block: ensure bdi->io_pages is always initialized Greg Kroah-Hartman
                   ` (9 subsequent siblings)
  10 siblings, 1 reply; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Takashi Sakamoto, Takashi Iwai

From: Takashi Sakamoto <o-takashi@sakamocchi.jp>

Tascam FE-8 is known to support communication by asynchronous transaction
only. The support can be implemented in userspace application and
snd-firewire-ctl-services project has the support. However, ALSA
firewire-tascam driver is bound to the model.

This commit changes device entries so that the model is excluded. In a
commit 53b3ffee7885 ("ALSA: firewire-tascam: change device probing
processing"), I addressed to the concern that version field in
configuration differs depending on installed firmware. However, as long
as I checked, the version number is fixed. It's safe to return version
number back to modalias.

Fixes: 53b3ffee7885 ("ALSA: firewire-tascam: change device probing processing")
Cc: <stable@vger.kernel.org> # 4.4+
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20200823075537.56255-1-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/firewire/tascam/tascam.c | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/sound/firewire/tascam/tascam.c b/sound/firewire/tascam/tascam.c
index d3fdc463a884e..1e61cdce28952 100644
--- a/sound/firewire/tascam/tascam.c
+++ b/sound/firewire/tascam/tascam.c
@@ -225,11 +225,39 @@ static void snd_tscm_remove(struct fw_unit *unit)
 }
 
 static const struct ieee1394_device_id snd_tscm_id_table[] = {
+	// Tascam, FW-1884.
 	{
 		.match_flags = IEEE1394_MATCH_VENDOR_ID |
-			       IEEE1394_MATCH_SPECIFIER_ID,
+			       IEEE1394_MATCH_SPECIFIER_ID |
+			       IEEE1394_MATCH_VERSION,
 		.vendor_id = 0x00022e,
 		.specifier_id = 0x00022e,
+		.version = 0x800000,
+	},
+	// Tascam, FE-8 (.version = 0x800001)
+	// This kernel module doesn't support FE-8 because the most of features
+	// can be implemented in userspace without any specific support of this
+	// module.
+	//
+	// .version = 0x800002 is unknown.
+	//
+	// Tascam, FW-1082.
+	{
+		.match_flags = IEEE1394_MATCH_VENDOR_ID |
+			       IEEE1394_MATCH_SPECIFIER_ID |
+			       IEEE1394_MATCH_VERSION,
+		.vendor_id = 0x00022e,
+		.specifier_id = 0x00022e,
+		.version = 0x800003,
+	},
+	// Tascam, FW-1804.
+	{
+		.match_flags = IEEE1394_MATCH_VENDOR_ID |
+			       IEEE1394_MATCH_SPECIFIER_ID |
+			       IEEE1394_MATCH_VERSION,
+		.vendor_id = 0x00022e,
+		.specifier_id = 0x00022e,
+		.version = 0x800004,
 	},
 	/* FE-08 requires reverse-engineering because it just has faders. */
 	{}
-- 
2.25.1




^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4.19 2/8] block: ensure bdi->io_pages is always initialized
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection Greg Kroah-Hartman
@ 2020-09-11 12:54 ` Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 3/8] netlabel: fix problems with mapping removal Greg Kroah-Hartman
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, OGAWA Hirofumi, Christoph Hellwig,
	Jens Axboe, Sasha Levin

From: Jens Axboe <axboe@kernel.dk>

[ Upstream commit de1b0ee490eafdf65fac9eef9925391a8369f2dc ]

If a driver leaves the limit settings as the defaults, then we don't
initialize bdi->io_pages. This means that file systems may need to
work around bdi->io_pages == 0, which is somewhat messy.

Initialize the default value just like we do for ->ra_pages.

Cc: stable@vger.kernel.org
Fixes: 9491ae4aade6 ("mm: don't cap request size based on read-ahead setting")
Reported-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 block/blk-core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/block/blk-core.c b/block/blk-core.c
index ea33d6abdcfc9..ce3710404544c 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1036,6 +1036,8 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,
 
 	q->backing_dev_info->ra_pages =
 			(VM_MAX_READAHEAD * 1024) / PAGE_SIZE;
+	q->backing_dev_info->io_pages =
+			(VM_MAX_READAHEAD * 1024) / PAGE_SIZE;
 	q->backing_dev_info->capabilities = BDI_CAP_CGROUP_WRITEBACK;
 	q->backing_dev_info->name = "block";
 	q->node = node_id;
-- 
2.25.1




^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4.19 3/8] netlabel: fix problems with mapping removal
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 2/8] block: ensure bdi->io_pages is always initialized Greg Kroah-Hartman
@ 2020-09-11 12:54 ` Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 4/8] net: usb: dm9601: Add USB ID of Keenetic Plus DSL Greg Kroah-Hartman
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Stephen Smalley, Paul Moore, David S. Miller

From: Paul Moore <paul@paul-moore.com>

[ Upstream commit d3b990b7f327e2afa98006e7666fb8ada8ed8683 ]

This patch fixes two main problems seen when removing NetLabel
mappings: memory leaks and potentially extra audit noise.

The memory leaks are caused by not properly free'ing the mapping's
address selector struct when free'ing the entire entry as well as
not properly cleaning up a temporary mapping entry when adding new
address selectors to an existing entry.  This patch fixes both these
problems such that kmemleak reports no NetLabel associated leaks
after running the SELinux test suite.

The potentially extra audit noise was caused by the auditing code in
netlbl_domhsh_remove_entry() being called regardless of the entry's
validity.  If another thread had already marked the entry as invalid,
but not removed/free'd it from the list of mappings, then it was
possible that an additional mapping removal audit record would be
generated.  This patch fixes this by returning early from the removal
function when the entry was previously marked invalid.  This change
also had the side benefit of improving the code by decreasing the
indentation level of large chunk of code by one (accounting for most
of the diffstat).

Fixes: 63c416887437 ("netlabel: Add network address selectors to the NetLabel/LSM domain mapping")
Reported-by: Stephen Smalley <stephen.smalley.work@gmail.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/netlabel/netlabel_domainhash.c |   59 ++++++++++++++++++-------------------
 1 file changed, 30 insertions(+), 29 deletions(-)

--- a/net/netlabel/netlabel_domainhash.c
+++ b/net/netlabel/netlabel_domainhash.c
@@ -99,6 +99,7 @@ static void netlbl_domhsh_free_entry(str
 			kfree(netlbl_domhsh_addr6_entry(iter6));
 		}
 #endif /* IPv6 */
+		kfree(ptr->def.addrsel);
 	}
 	kfree(ptr->domain);
 	kfree(ptr);
@@ -550,6 +551,8 @@ int netlbl_domhsh_add(struct netlbl_dom_
 				goto add_return;
 		}
 #endif /* IPv6 */
+		/* cleanup the new entry since we've moved everything over */
+		netlbl_domhsh_free_entry(&entry->rcu);
 	} else
 		ret_val = -EINVAL;
 
@@ -593,6 +596,12 @@ int netlbl_domhsh_remove_entry(struct ne
 {
 	int ret_val = 0;
 	struct audit_buffer *audit_buf;
+	struct netlbl_af4list *iter4;
+	struct netlbl_domaddr4_map *map4;
+#if IS_ENABLED(CONFIG_IPV6)
+	struct netlbl_af6list *iter6;
+	struct netlbl_domaddr6_map *map6;
+#endif /* IPv6 */
 
 	if (entry == NULL)
 		return -ENOENT;
@@ -610,6 +619,9 @@ int netlbl_domhsh_remove_entry(struct ne
 		ret_val = -ENOENT;
 	spin_unlock(&netlbl_domhsh_lock);
 
+	if (ret_val)
+		return ret_val;
+
 	audit_buf = netlbl_audit_start_common(AUDIT_MAC_MAP_DEL, audit_info);
 	if (audit_buf != NULL) {
 		audit_log_format(audit_buf,
@@ -619,40 +631,29 @@ int netlbl_domhsh_remove_entry(struct ne
 		audit_log_end(audit_buf);
 	}
 
-	if (ret_val == 0) {
-		struct netlbl_af4list *iter4;
-		struct netlbl_domaddr4_map *map4;
-#if IS_ENABLED(CONFIG_IPV6)
-		struct netlbl_af6list *iter6;
-		struct netlbl_domaddr6_map *map6;
-#endif /* IPv6 */
-
-		switch (entry->def.type) {
-		case NETLBL_NLTYPE_ADDRSELECT:
-			netlbl_af4list_foreach_rcu(iter4,
-					     &entry->def.addrsel->list4) {
-				map4 = netlbl_domhsh_addr4_entry(iter4);
-				cipso_v4_doi_putdef(map4->def.cipso);
-			}
+	switch (entry->def.type) {
+	case NETLBL_NLTYPE_ADDRSELECT:
+		netlbl_af4list_foreach_rcu(iter4, &entry->def.addrsel->list4) {
+			map4 = netlbl_domhsh_addr4_entry(iter4);
+			cipso_v4_doi_putdef(map4->def.cipso);
+		}
 #if IS_ENABLED(CONFIG_IPV6)
-			netlbl_af6list_foreach_rcu(iter6,
-					     &entry->def.addrsel->list6) {
-				map6 = netlbl_domhsh_addr6_entry(iter6);
-				calipso_doi_putdef(map6->def.calipso);
-			}
+		netlbl_af6list_foreach_rcu(iter6, &entry->def.addrsel->list6) {
+			map6 = netlbl_domhsh_addr6_entry(iter6);
+			calipso_doi_putdef(map6->def.calipso);
+		}
 #endif /* IPv6 */
-			break;
-		case NETLBL_NLTYPE_CIPSOV4:
-			cipso_v4_doi_putdef(entry->def.cipso);
-			break;
+		break;
+	case NETLBL_NLTYPE_CIPSOV4:
+		cipso_v4_doi_putdef(entry->def.cipso);
+		break;
 #if IS_ENABLED(CONFIG_IPV6)
-		case NETLBL_NLTYPE_CALIPSO:
-			calipso_doi_putdef(entry->def.calipso);
-			break;
+	case NETLBL_NLTYPE_CALIPSO:
+		calipso_doi_putdef(entry->def.calipso);
+		break;
 #endif /* IPv6 */
-		}
-		call_rcu(&entry->rcu, netlbl_domhsh_free_entry);
 	}
+	call_rcu(&entry->rcu, netlbl_domhsh_free_entry);
 
 	return ret_val;
 }



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 4.19 4/8] net: usb: dm9601: Add USB ID of Keenetic Plus DSL
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
                   ` (2 preceding siblings ...)
  2020-09-11 12:54 ` [PATCH 4.19 3/8] netlabel: fix problems with mapping removal Greg Kroah-Hartman
@ 2020-09-11 12:54 ` Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 5/8] sctp: not disable bh in the whole sctp_get_port_local() Greg Kroah-Hartman
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Kamil Lorenc, David S. Miller

From: Kamil Lorenc <kamil@re-ws.pl>

[ Upstream commit a609d0259183a841621f252e067f40f8cc25d6f6 ]

Keenetic Plus DSL is a xDSL modem that uses dm9620 as its USB interface.

Signed-off-by: Kamil Lorenc <kamil@re-ws.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/usb/dm9601.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/drivers/net/usb/dm9601.c
+++ b/drivers/net/usb/dm9601.c
@@ -625,6 +625,10 @@ static const struct usb_device_id produc
 	 USB_DEVICE(0x0a46, 0x1269),	/* DM9621A USB to Fast Ethernet Adapter */
 	 .driver_info = (unsigned long)&dm9601_info,
 	},
+	{
+	 USB_DEVICE(0x0586, 0x3427),	/* ZyXEL Keenetic Plus DSL xDSL modem */
+	 .driver_info = (unsigned long)&dm9601_info,
+	},
 	{},			// END
 };
 



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 4.19 5/8] sctp: not disable bh in the whole sctp_get_port_local()
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
                   ` (3 preceding siblings ...)
  2020-09-11 12:54 ` [PATCH 4.19 4/8] net: usb: dm9601: Add USB ID of Keenetic Plus DSL Greg Kroah-Hartman
@ 2020-09-11 12:54 ` Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 6/8] tipc: fix shutdown() of connectionless socket Greg Kroah-Hartman
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ying Xu, Xin Long,
	Marcelo Ricardo Leitner, David S. Miller

From: Xin Long <lucien.xin@gmail.com>

[ Upstream commit 3106ecb43a05dc3e009779764b9da245a5d082de ]

With disabling bh in the whole sctp_get_port_local(), when
snum == 0 and too many ports have been used, the do-while
loop will take the cpu for a long time and cause cpu stuck:

  [ ] watchdog: BUG: soft lockup - CPU#11 stuck for 22s!
  [ ] RIP: 0010:native_queued_spin_lock_slowpath+0x4de/0x940
  [ ] Call Trace:
  [ ]  _raw_spin_lock+0xc1/0xd0
  [ ]  sctp_get_port_local+0x527/0x650 [sctp]
  [ ]  sctp_do_bind+0x208/0x5e0 [sctp]
  [ ]  sctp_autobind+0x165/0x1e0 [sctp]
  [ ]  sctp_connect_new_asoc+0x355/0x480 [sctp]
  [ ]  __sctp_connect+0x360/0xb10 [sctp]

There's no need to disable bh in the whole function of
sctp_get_port_local. So fix this cpu stuck by removing
local_bh_disable() called at the beginning, and using
spin_lock_bh() instead.

The same thing was actually done for inet_csk_get_port() in
Commit ea8add2b1903 ("tcp/dccp: better use of ephemeral
ports in bind()").

Thanks to Marcelo for pointing the buggy code out.

v1->v2:
  - use cond_resched() to yield cpu to other tasks if needed,
    as Eric noticed.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Reported-by: Ying Xu <yinxu@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/sctp/socket.c |   16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -7643,8 +7643,6 @@ static long sctp_get_port_local(struct s
 
 	pr_debug("%s: begins, snum:%d\n", __func__, snum);
 
-	local_bh_disable();
-
 	if (snum == 0) {
 		/* Search for an available port. */
 		int low, high, remaining, index;
@@ -7663,20 +7661,21 @@ static long sctp_get_port_local(struct s
 				continue;
 			index = sctp_phashfn(sock_net(sk), rover);
 			head = &sctp_port_hashtable[index];
-			spin_lock(&head->lock);
+			spin_lock_bh(&head->lock);
 			sctp_for_each_hentry(pp, &head->chain)
 				if ((pp->port == rover) &&
 				    net_eq(sock_net(sk), pp->net))
 					goto next;
 			break;
 		next:
-			spin_unlock(&head->lock);
+			spin_unlock_bh(&head->lock);
+			cond_resched();
 		} while (--remaining > 0);
 
 		/* Exhausted local port range during search? */
 		ret = 1;
 		if (remaining <= 0)
-			goto fail;
+			return ret;
 
 		/* OK, here is the one we will use.  HEAD (the port
 		 * hash table list entry) is non-NULL and we hold it's
@@ -7691,7 +7690,7 @@ static long sctp_get_port_local(struct s
 		 * port iterator, pp being NULL.
 		 */
 		head = &sctp_port_hashtable[sctp_phashfn(sock_net(sk), snum)];
-		spin_lock(&head->lock);
+		spin_lock_bh(&head->lock);
 		sctp_for_each_hentry(pp, &head->chain) {
 			if ((pp->port == snum) && net_eq(pp->net, sock_net(sk)))
 				goto pp_found;
@@ -7773,10 +7772,7 @@ success:
 	ret = 0;
 
 fail_unlock:
-	spin_unlock(&head->lock);
-
-fail:
-	local_bh_enable();
+	spin_unlock_bh(&head->lock);
 	return ret;
 }
 



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 4.19 6/8] tipc: fix shutdown() of connectionless socket
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
                   ` (4 preceding siblings ...)
  2020-09-11 12:54 ` [PATCH 4.19 5/8] sctp: not disable bh in the whole sctp_get_port_local() Greg Kroah-Hartman
@ 2020-09-11 12:54 ` Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 7/8] net: disable netpoll on fresh napis Greg Kroah-Hartman
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, syzbot, Tetsuo Handa, David S. Miller

From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>

[ Upstream commit 2a63866c8b51a3f72cea388dfac259d0e14c4ba6 ]

syzbot is reporting hung task at nbd_ioctl() [1], for there are two
problems regarding TIPC's connectionless socket's shutdown() operation.

----------
#include <fcntl.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <linux/nbd.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
        const int fd = open("/dev/nbd0", 3);
        alarm(5);
        ioctl(fd, NBD_SET_SOCK, socket(PF_TIPC, SOCK_DGRAM, 0));
        ioctl(fd, NBD_DO_IT, 0); /* To be interrupted by SIGALRM. */
        return 0;
}
----------

One problem is that wait_for_completion() from flush_workqueue() from
nbd_start_device_ioctl() from nbd_ioctl() cannot be completed when
nbd_start_device_ioctl() received a signal at wait_event_interruptible(),
for tipc_shutdown() from kernel_sock_shutdown(SHUT_RDWR) from
nbd_mark_nsock_dead() from sock_shutdown() from nbd_start_device_ioctl()
is failing to wake up a WQ thread sleeping at wait_woken() from
tipc_wait_for_rcvmsg() from sock_recvmsg() from sock_xmit() from
nbd_read_stat() from recv_work() scheduled by nbd_start_device() from
nbd_start_device_ioctl(). Fix this problem by always invoking
sk->sk_state_change() (like inet_shutdown() does) when tipc_shutdown() is
called.

The other problem is that tipc_wait_for_rcvmsg() cannot return when
tipc_shutdown() is called, for tipc_shutdown() sets sk->sk_shutdown to
SEND_SHUTDOWN (despite "how" is SHUT_RDWR) while tipc_wait_for_rcvmsg()
needs sk->sk_shutdown set to RCV_SHUTDOWN or SHUTDOWN_MASK. Fix this
problem by setting sk->sk_shutdown to SHUTDOWN_MASK (like inet_shutdown()
does) when the socket is connectionless.

[1] https://syzkaller.appspot.com/bug?id=3fe51d307c1f0a845485cf1798aa059d12bf18b2

Reported-by: syzbot <syzbot+e36f41d207137b5d12f7@syzkaller.appspotmail.com>
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/tipc/socket.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -2565,18 +2565,21 @@ static int tipc_shutdown(struct socket *
 	lock_sock(sk);
 
 	__tipc_shutdown(sock, TIPC_CONN_SHUTDOWN);
-	sk->sk_shutdown = SEND_SHUTDOWN;
+	if (tipc_sk_type_connectionless(sk))
+		sk->sk_shutdown = SHUTDOWN_MASK;
+	else
+		sk->sk_shutdown = SEND_SHUTDOWN;
 
 	if (sk->sk_state == TIPC_DISCONNECTING) {
 		/* Discard any unreceived messages */
 		__skb_queue_purge(&sk->sk_receive_queue);
 
-		/* Wake up anyone sleeping in poll */
-		sk->sk_state_change(sk);
 		res = 0;
 	} else {
 		res = -ENOTCONN;
 	}
+	/* Wake up anyone sleeping in poll. */
+	sk->sk_state_change(sk);
 
 	release_sock(sk);
 	return res;



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 4.19 7/8] net: disable netpoll on fresh napis
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
                   ` (5 preceding siblings ...)
  2020-09-11 12:54 ` [PATCH 4.19 6/8] tipc: fix shutdown() of connectionless socket Greg Kroah-Hartman
@ 2020-09-11 12:54 ` Greg Kroah-Hartman
  2020-09-11 12:54 ` [PATCH 4.19 8/8] net/mlx5e: Dont support phys switch id if not in switchdev mode Greg Kroah-Hartman
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Rob Sherwood, Jakub Kicinski,
	David S. Miller

From: Jakub Kicinski <kuba@kernel.org>

[ Upstream commit 96e97bc07e90f175a8980a22827faf702ca4cb30 ]

napi_disable() makes sure to set the NAPI_STATE_NPSVC bit to prevent
netpoll from accessing rings before init is complete. However, the
same is not done for fresh napi instances in netif_napi_add(),
even though we expect NAPI instances to be added as disabled.

This causes crashes during driver reconfiguration (enabling XDP,
changing the channel count) - if there is any printk() after
netif_napi_add() but before napi_enable().

To ensure memory ordering is correct we need to use RCU accessors.

Reported-by: Rob Sherwood <rsher@fb.com>
Fixes: 2d8bff12699a ("netpoll: Close race condition between poll_one_napi and napi_disable")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/core/dev.c     |    3 ++-
 net/core/netpoll.c |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -6196,12 +6196,13 @@ void netif_napi_add(struct net_device *d
 		pr_err_once("netif_napi_add() called with weight %d on device %s\n",
 			    weight, dev->name);
 	napi->weight = weight;
-	list_add(&napi->dev_list, &dev->napi_list);
 	napi->dev = dev;
 #ifdef CONFIG_NETPOLL
 	napi->poll_owner = -1;
 #endif
 	set_bit(NAPI_STATE_SCHED, &napi->state);
+	set_bit(NAPI_STATE_NPSVC, &napi->state);
+	list_add_rcu(&napi->dev_list, &dev->napi_list);
 	napi_hash_add(napi);
 }
 EXPORT_SYMBOL(netif_napi_add);
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -161,7 +161,7 @@ static void poll_napi(struct net_device
 	struct napi_struct *napi;
 	int cpu = smp_processor_id();
 
-	list_for_each_entry(napi, &dev->napi_list, dev_list) {
+	list_for_each_entry_rcu(napi, &dev->napi_list, dev_list) {
 		if (cmpxchg(&napi->poll_owner, -1, cpu) == -1) {
 			poll_one_napi(napi);
 			smp_store_release(&napi->poll_owner, -1);



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 4.19 8/8] net/mlx5e: Dont support phys switch id if not in switchdev mode
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
                   ` (6 preceding siblings ...)
  2020-09-11 12:54 ` [PATCH 4.19 7/8] net: disable netpoll on fresh napis Greg Kroah-Hartman
@ 2020-09-11 12:54 ` Greg Kroah-Hartman
  2020-09-11 17:10 ` [PATCH 4.19 0/8] 4.19.145-rc1 review Jon Hunter
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-11 12:54 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Roi Dayan, Saeed Mahameed

From: Roi Dayan <roid@mellanox.com>

Support for phys switch id ndo added for representors and if
we do not have representors there is no need to support it.
Since each port return different switch id supporting this
block support for creating bond over PFs and attaching to bridge
in legacy mode.

This bug doesn't exist upstream as the code got refactored and the
netdev api is totally different.

Fixes: cb67b832921c ("net/mlx5e: Introduce SRIOV VF representors")
Signed-off-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
@@ -198,7 +198,7 @@ int mlx5e_attr_get(struct net_device *de
 	struct mlx5_eswitch_rep *rep = rpriv->rep;
 	struct mlx5_eswitch *esw = priv->mdev->priv.eswitch;
 
-	if (esw->mode == SRIOV_NONE)
+	if (esw->mode != SRIOV_OFFLOADS)
 		return -EOPNOTSUPP;
 
 	switch (attr->id) {



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4.19 0/8] 4.19.145-rc1 review
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
                   ` (7 preceding siblings ...)
  2020-09-11 12:54 ` [PATCH 4.19 8/8] net/mlx5e: Dont support phys switch id if not in switchdev mode Greg Kroah-Hartman
@ 2020-09-11 17:10 ` Jon Hunter
  2020-09-11 22:23 ` Shuah Khan
  2020-09-12  7:50 ` Naresh Kamboju
  10 siblings, 0 replies; 15+ messages in thread
From: Jon Hunter @ 2020-09-11 17:10 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuah, patches,
	ben.hutchings, lkft-triage, stable, linux-tegra

On Fri, 11 Sep 2020 14:54:47 +0200, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.19.145 release.
> There are 8 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
> 
> Responses should be made by Sun, 13 Sep 2020 12:54:13 +0000.
> Anything received after that time might be too late.
> 
> The whole patch series can be found in one patch at:
> 	https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.19.145-rc1.gz
> or in the git tree and branch at:
> 	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
> and the diffstat can be found below.
> 
> thanks,
> 
> greg k-h

All tests passing for Tegra ...

Test results for stable-v4.19:
    14 builds:	14 pass, 0 fail
    22 boots:	22 pass, 0 fail
    38 tests:	38 pass, 0 fail

Linux version:	4.19.145-rc1-gdc4669f837af
Boards tested:	tegra124-jetson-tk1, tegra186-p2771-0000,
                tegra194-p2972-0000, tegra20-ventana,
                tegra210-p2371-2180, tegra30-cardhu-a04

Tested-by: Jon Hunter <jonathanh@nvidia.com>

Jon

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4.19 0/8] 4.19.145-rc1 review
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
                   ` (8 preceding siblings ...)
  2020-09-11 17:10 ` [PATCH 4.19 0/8] 4.19.145-rc1 review Jon Hunter
@ 2020-09-11 22:23 ` Shuah Khan
  2020-09-12  7:50 ` Naresh Kamboju
  10 siblings, 0 replies; 15+ messages in thread
From: Shuah Khan @ 2020-09-11 22:23 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, linux, shuah, patches, ben.hutchings,
	lkft-triage, stable, Shuah Khan

On 9/11/20 6:54 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.19.145 release.
> There are 8 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
> 
> Responses should be made by Sun, 13 Sep 2020 12:54:13 +0000.
> Anything received after that time might be too late.
> 
> The whole patch series can be found in one patch at:
> 	https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.19.145-rc1.gz
> or in the git tree and branch at:
> 	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
> and the diffstat can be found below.
> 
> thanks,
> 
> greg k-h
> 

Compiled and booted on my test system. No dmesg regressions.

Tested-by: Shuah Khan <skhan@linuxfoundation.org>

thanks,
-- Shuah

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4.19 0/8] 4.19.145-rc1 review
  2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
                   ` (9 preceding siblings ...)
  2020-09-11 22:23 ` Shuah Khan
@ 2020-09-12  7:50 ` Naresh Kamboju
  10 siblings, 0 replies; 15+ messages in thread
From: Naresh Kamboju @ 2020-09-12  7:50 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: open list, Shuah Khan, patches, lkft-triage, Ben Hutchings,
	linux- stable, Andrew Morton, Linus Torvalds, Guenter Roeck

On Fri, 11 Sep 2020 at 18:31, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> This is the start of the stable review cycle for the 4.19.145 release.
> There are 8 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun, 13 Sep 2020 12:54:13 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
>         https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.19.145-rc1.gz
> or in the git tree and branch at:
>         git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h

Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.

Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>

Summary
------------------------------------------------------------------------

kernel: 4.19.145-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-4.19.y
git commit: dc4669f837af87843c89b6eaccfe395fd83bc1df
git describe: v4.19.144-9-gdc4669f837af
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-4.19.y/build/v4.19.144-9-gdc4669f837af

No regressions (compared to build v4.19.144)

No fixes (compared to build v4.19.144)

Ran 19565 total tests in the following environments and test suites.

Environments
--------------
- dragonboard-410c - arm64
- hi6220-hikey - arm64
- i386
- juno-r2 - arm64
- qemu_arm
- qemu_arm64
- qemu_i386
- qemu_x86_64
- x15 - arm
- x86_64

Test Suites
-----------
* build
* install-android-platform-tools-r2600
* kselftest
* kselftest/drivers
* kselftest/filesystems
* kselftest/net
* linux-log-parser
* network-basic-tests
* perf
* libhugetlbfs
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-containers-tests
* ltp-controllers-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* ltp-tracing-tests
* v4l2-compliance
* ltp-open-posix-tests
* kselftest-vsyscall-mode-native
* kselftest-vsyscall-mode-native/drivers
* kselftest-vsyscall-mode-native/filesystems
* kselftest-vsyscall-mode-native/net
* kselftest-vsyscall-mode-none
* kselftest-vsyscall-mode-none/drivers
* kselftest-vsyscall-mode-none/filesystems
* kselftest-vsyscall-mode-none/net
* ssuite

-- 
Linaro LKFT
https://lkft.linaro.org

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection
  2020-09-11 12:54 ` [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection Greg Kroah-Hartman
@ 2020-09-14  7:47   ` Pavel Machek
  2020-09-14  7:58     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 15+ messages in thread
From: Pavel Machek @ 2020-09-14  7:47 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: linux-kernel, stable, Takashi Sakamoto, Takashi Iwai

[-- Attachment #1: Type: text/plain, Size: 1035 bytes --]

Hi!

> From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
> 
> Tascam FE-8 is known to support communication by asynchronous transaction
> only. The support can be implemented in userspace application and
> snd-firewire-ctl-services project has the support. However, ALSA
> firewire-tascam driver is bound to the model.

This one is in upstream, but is not marked as such. AFAICT it is
0bd8bce897b6697bbc286b8ba473aa0705fe394b.

Unfortunately it is too late to fix that now.

This one was scheduled to be released at "Responses should be made by
Sun, 13 Sep 2020 12:54:13 +0000.". But it was released day earlier:
"Date: Sat, 12 Sep 2020 14:42:49 +0200".

Could you actually follow published schedule? Could the schedule be
made a bit less agressive over the weekends?

Could you cc me release announcements on pavel@denx.de email?

Thanks and best regards,
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection
  2020-09-14  7:47   ` Pavel Machek
@ 2020-09-14  7:58     ` Greg Kroah-Hartman
  2020-09-16  8:16       ` Pavel Machek
  0 siblings, 1 reply; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-09-14  7:58 UTC (permalink / raw)
  To: Pavel Machek; +Cc: linux-kernel, stable, Takashi Sakamoto, Takashi Iwai

On Mon, Sep 14, 2020 at 09:47:31AM +0200, Pavel Machek wrote:
> Hi!
> 
> > From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
> > 
> > Tascam FE-8 is known to support communication by asynchronous transaction
> > only. The support can be implemented in userspace application and
> > snd-firewire-ctl-services project has the support. However, ALSA
> > firewire-tascam driver is bound to the model.
> 
> This one is in upstream, but is not marked as such. AFAICT it is
> 0bd8bce897b6697bbc286b8ba473aa0705fe394b.
> 
> Unfortunately it is too late to fix that now.
> 
> This one was scheduled to be released at "Responses should be made by
> Sun, 13 Sep 2020 12:54:13 +0000.". But it was released day earlier:
> "Date: Sat, 12 Sep 2020 14:42:49 +0200".
> 
> Could you actually follow published schedule?

If all of the reported testing systems come back successful, there is no
need to wait any longer.

> Could you cc me release announcements on pavel@denx.de email?

Will add you to the list, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection
  2020-09-14  7:58     ` Greg Kroah-Hartman
@ 2020-09-16  8:16       ` Pavel Machek
  0 siblings, 0 replies; 15+ messages in thread
From: Pavel Machek @ 2020-09-16  8:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Pavel Machek, linux-kernel, stable, Takashi Sakamoto, Takashi Iwai

[-- Attachment #1: Type: text/plain, Size: 788 bytes --]

Hi!

> > Unfortunately it is too late to fix that now.
> > 
> > This one was scheduled to be released at "Responses should be made by
> > Sun, 13 Sep 2020 12:54:13 +0000.". But it was released day earlier:
> > "Date: Sat, 12 Sep 2020 14:42:49 +0200".
> > 
> > Could you actually follow published schedule?
> 
> If all of the reported testing systems come back successful, there is no
> need to wait any longer.

Well, then perhaps you should not publish the schedule, as it is confusing?

> > Could you cc me release announcements on pavel@denx.de email?
> 
> Will add you to the list, thanks.

Thank you,
								Pavel
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-09-16  8:16 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-11 12:54 [PATCH 4.19 0/8] 4.19.145-rc1 review Greg Kroah-Hartman
2020-09-11 12:54 ` [PATCH 4.19 1/8] ALSA; firewire-tascam: exclude Tascam FE-8 from detection Greg Kroah-Hartman
2020-09-14  7:47   ` Pavel Machek
2020-09-14  7:58     ` Greg Kroah-Hartman
2020-09-16  8:16       ` Pavel Machek
2020-09-11 12:54 ` [PATCH 4.19 2/8] block: ensure bdi->io_pages is always initialized Greg Kroah-Hartman
2020-09-11 12:54 ` [PATCH 4.19 3/8] netlabel: fix problems with mapping removal Greg Kroah-Hartman
2020-09-11 12:54 ` [PATCH 4.19 4/8] net: usb: dm9601: Add USB ID of Keenetic Plus DSL Greg Kroah-Hartman
2020-09-11 12:54 ` [PATCH 4.19 5/8] sctp: not disable bh in the whole sctp_get_port_local() Greg Kroah-Hartman
2020-09-11 12:54 ` [PATCH 4.19 6/8] tipc: fix shutdown() of connectionless socket Greg Kroah-Hartman
2020-09-11 12:54 ` [PATCH 4.19 7/8] net: disable netpoll on fresh napis Greg Kroah-Hartman
2020-09-11 12:54 ` [PATCH 4.19 8/8] net/mlx5e: Dont support phys switch id if not in switchdev mode Greg Kroah-Hartman
2020-09-11 17:10 ` [PATCH 4.19 0/8] 4.19.145-rc1 review Jon Hunter
2020-09-11 22:23 ` Shuah Khan
2020-09-12  7:50 ` Naresh Kamboju

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.