All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Mike Snitzer <snitzer@redhat.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.4 025/132] dm table: Remove BUG_ON(in_interrupt())
Date: Mon, 28 Dec 2020 13:48:29 +0100	[thread overview]
Message-ID: <20201228124847.621854540@linuxfoundation.org> (raw)
In-Reply-To: <20201228124846.409999325@linuxfoundation.org>

From: Thomas Gleixner <tglx@linutronix.de>

[ Upstream commit e7b624183d921b49ef0a96329f21647d38865ee9 ]

The BUG_ON(in_interrupt()) in dm_table_event() is a historic leftover from
a rework of the dm table code which changed the calling context.

Issuing a BUG for a wrong calling context is frowned upon and
in_interrupt() is deprecated and only covering parts of the wrong
contexts. The sanity check for the context is covered by
CONFIG_DEBUG_ATOMIC_SLEEP and other debug facilities already.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/md/dm-table.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index 466158d06ab1b..8eed39dc2036a 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -1154,12 +1154,6 @@ void dm_table_event_callback(struct dm_table *t,
 
 void dm_table_event(struct dm_table *t)
 {
-	/*
-	 * You can no longer call dm_table_event() from interrupt
-	 * context, use a bottom half instead.
-	 */
-	BUG_ON(in_interrupt());
-
 	mutex_lock(&_event_lock);
 	if (t->event_fn)
 		t->event_fn(t->event_context);
-- 
2.27.0




  parent reply	other threads:[~2020-12-28 12:54 UTC|newest]

Thread overview: 137+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-28 12:48 [PATCH 4.4 000/132] 4.4.249-rc1 review Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 001/132] spi: bcm2835aux: Fix use-after-free on unbind Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 002/132] spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 003/132] ARC: stack unwinding: dont assume non-current task is sleeping Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 004/132] platform/x86: acer-wmi: add automatic keyboard background light toggle key as KEY_LIGHTS_TOGGLE Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 005/132] Input: cm109 - do not stomp on control URB Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 006/132] Input: i8042 - add Acer laptops to the i8042 reset list Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 007/132] pinctrl: amd: remove debounce filter setting in IRQ type setting Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 008/132] spi: Prevent adding devices below an unregistering controller Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 009/132] net/mlx4_en: Avoid scheduling restart task if it is already running Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 010/132] tcp: fix cwnd-limited bug for TSO deferral where we send nothing Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 011/132] net: stmmac: delete the eee_ctrl_timer after napi disabled Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 012/132] net: bridge: vlan: fix error return code in __vlan_add() Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 013/132] USB: dummy-hcd: Fix uninitialized array use in init() Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 014/132] USB: add RESET_RESUME quirk for Snapscan 1212 Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 015/132] ALSA: usb-audio: Fix potential out-of-bounds shift Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 016/132] ALSA: usb-audio: Fix control access overflow errors from chmap Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 017/132] xhci: Give USB2 ports time to enter U3 in bus suspend Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 018/132] USB: sisusbvga: Make console support depend on BROKEN Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 019/132] ALSA: pcm: oss: Fix potential out-of-bounds shift Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 020/132] serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 021/132] USB: serial: cp210x: enable usb generic throttle/unthrottle Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 022/132] scsi: bnx2i: Requires MMU Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 023/132] can: softing: softing_netdev_open(): fix error handling Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 024/132] RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait Greg Kroah-Hartman
2020-12-28 12:48 ` Greg Kroah-Hartman [this message]
2020-12-28 12:48 ` [PATCH 4.4 026/132] soc/tegra: fuse: Fix index bug in get_process_id Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 027/132] USB: serial: option: add interface-number sanity check to flag handling Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 028/132] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 029/132] usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 030/132] media: msi2500: assign SPI bus number dynamically Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 031/132] Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt() Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 032/132] drm/gma500: fix double free of gma_connector Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 033/132] ARM: p2v: fix handling of LPAE translation in BE mode Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 034/132] crypto: talitos - Fix return type of current_desc_hdr() Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 035/132] spi: img-spfi: fix reference leak in img_spfi_resume Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 036/132] ASoC: pcm: DRAIN support reactivation Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 037/132] Bluetooth: Fix null pointer dereference in hci_event_packet() Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 038/132] spi: spi-ti-qspi: fix reference leak in ti_qspi_setup Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 039/132] spi: tegra20-slink: fix reference leak in slink ops of tegra20 Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 040/132] spi: tegra20-sflash: fix reference leak in tegra_sflash_resume Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 041/132] spi: tegra114: fix reference leak in tegra spi ops Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 042/132] net: evaluate net.ipvX.conf.all.ignore_routes_with_linkdown Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 043/132] net: evaluate net.ipv4.conf.all.proxy_arp_pvlan Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 044/132] RDMa/mthca: Work around -Wenum-conversion warning Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 045/132] MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 046/132] media: solo6x10: fix missing snd_card_free in error handling case Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 047/132] drm/omap: dmm_tiler: fix return error code in omap_dmm_probe() Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 048/132] Input: ads7846 - fix integer overflow on Rt calculation Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 049/132] Input: ads7846 - fix unaligned access on 7845 Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 050/132] powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32 Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 051/132] soc: ti: knav_qmss: fix reference leak in knav_queue_probe Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 052/132] soc: ti: Fix reference imbalance in knav_dma_probe Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 053/132] drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 054/132] memstick: fix a double-free bug in memstick_check Greg Kroah-Hartman
2020-12-28 12:48 ` [PATCH 4.4 055/132] ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 056/132] ARM: dts: at91: sama5d3_xplained: " Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 057/132] orinoco: Move context allocation after processing the skb Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 058/132] cw1200: fix missing destroy_workqueue() on error in cw1200_init_common Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 059/132] mips: cdmm: fix use-after-free in mips_cdmm_bus_discover Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 060/132] NFSv4.2: condition READDIRs mask for security label based on LSM state Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 061/132] lockd: dont use interval-based rebinding over TCP Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 062/132] NFS: switch nfsiod to be an UNBOUND workqueue Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 063/132] media: saa7146: fix array overflow in vidioc_s_audio() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 064/132] pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 065/132] memstick: r592: Fix error return in r592_probe() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 066/132] ASoC: jz4740-i2s: add missed checks for clk_get() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 067/132] dm ioctl: fix error return code in target_message Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 068/132] clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 069/132] cpufreq: highbank: Add missing MODULE_DEVICE_TABLE Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 070/132] cpufreq: loongson1: Add missing MODULE_ALIAS Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 071/132] cpufreq: scpi: " Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 072/132] scsi: pm80xx: Fix error return in pm8001_pci_probe() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 073/132] seq_buf: Avoid type mismatch for seq_buf_init Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 074/132] scsi: fnic: Fix error return code in fnic_probe() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 075/132] powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 076/132] usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 077/132] usb: oxu210hp-hcd: Fix memory leak in oxu_create Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 078/132] speakup: fix uninitialized flush_lock Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 079/132] nfs_common: need lock during iterate through the list Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 080/132] x86/kprobes: Restore BTF if the single-stepping is cancelled Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 081/132] extcon: max77693: Fix modalias string Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 082/132] ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 083/132] um: chan_xterm: Fix fd leak Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 084/132] nfc: s3fwrn5: Release the nfc firmware Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 085/132] powerpc/ps3: use dma_mapping_error() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 086/132] checkpatch: fix unescaped left brace Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 087/132] net: bcmgenet: Fix a resource leak in an error handling path in the probe functin Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 088/132] net: allwinner: Fix some resources leak in the error handling path of the probe and in the remove function Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 089/132] net: korina: fix return value Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 090/132] clk: ti: Fix memleak in ti_fapll_synth_setup Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 091/132] perf record: Fix memory leak when using --user-regs=? to list registers Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 092/132] qlcnic: Fix error code in probe Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 093/132] clk: s2mps11: Fix a resource leak in error handling paths in the probe function Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 094/132] cfg80211: initialize rekey_data Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 095/132] Input: cros_ec_keyb - send scancodes in addition to key events Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 096/132] Input: goodix - add upside-down quirk for Teclast X98 Pro tablet Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 097/132] media: gspca: Fix memory leak in probe Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 098/132] media: sunxi-cir: ensure IR is handled when it is continuous Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 099/132] media: netup_unidvb: Dont leak SPI master in probe error path Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 100/132] Input: cyapa_gen6 - fix out-of-bounds stack access Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 101/132] Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks" Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 102/132] ACPI: PNP: compare the string length in the matching_id() Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 103/132] ALSA: pcm: oss: Fix a few more UBSAN fixes Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 104/132] s390/dasd: fix list corruption of pavgroup group list Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 105/132] s390/dasd: fix list corruption of lcu list Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 106/132] staging: comedi: mf6x4: Fix AI end-of-conversion detection Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 107/132] powerpc/perf: Exclude kernel samples while counting events in user space Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 108/132] USB: serial: mos7720: fix parallel-port state restore Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 109/132] USB: serial: keyspan_pda: fix dropped unthrottle interrupts Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 110/132] USB: serial: keyspan_pda: fix write deadlock Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 111/132] USB: serial: keyspan_pda: fix stalled writes Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 112/132] USB: serial: keyspan_pda: fix write-wakeup use-after-free Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 113/132] USB: serial: keyspan_pda: fix tx-unthrottle use-after-free Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 114/132] USB: serial: keyspan_pda: fix write unthrottling Greg Kroah-Hartman
2020-12-28 12:49 ` [PATCH 4.4 115/132] btrfs: quota: Set rescan progress to (u64)-1 if we hit last leaf Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 116/132] btrfs: scrub: Dont use inode page cache in scrub_handle_errored_block() Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 117/132] Btrfs: fix selftests failure due to uninitialized i_mode in test inodes Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 118/132] btrfs: fix return value mixup in btrfs_get_extent Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 119/132] ext4: fix a memory leak of ext4_free_data Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 120/132] ceph: fix race in concurrent __ceph_remove_cap invocations Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 121/132] jffs2: Fix GC exit abnormally Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 122/132] jfs: Fix array index bounds check in dbAdjTree Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 123/132] spi: rb4xx: Dont leak SPI master in probe error path Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 124/132] mtd: parser: cmdline: Fix parsing of part-names with colons Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 125/132] iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in rockchip_saradc_resume Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 126/132] iio:pressure:mpl3115: Force alignment of buffer Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 127/132] xen/xenbus: Allow watches discard events before queueing Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 128/132] xen/xenbus: Add will_handle callback support in xenbus_watch_path() Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 129/132] xen/xenbus/xen_bus_type: Support will_handle watch callback Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 130/132] xen/xenbus: Count pending messages for each watch Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 131/132] xenbus/xenbus_backend: Disallow pending watch messages Greg Kroah-Hartman
2020-12-28 12:50 ` [PATCH 4.4 132/132] PCI: Fix pci_slot_release() NULL pointer dereference Greg Kroah-Hartman
2020-12-28 20:24 ` [PATCH 4.4 000/132] 4.4.249-rc1 review Guenter Roeck
2020-12-28 21:08 ` Jon Hunter
2020-12-29  9:47 ` Naresh Kamboju
2020-12-30  9:37 ` Pavel Machek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201228124847.621854540@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=bigeasy@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=snitzer@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.