* [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue reported in smatch
@ 2025-07-01 5:40 Akshay Gupta
2025-07-01 5:40 ` [PATCH v3 2/2] misc: amd-sbi: Address copy_to/from_user() warning " Akshay Gupta
2025-07-01 5:49 ` [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue " Greg KH
0 siblings, 2 replies; 6+ messages in thread
From: Akshay Gupta @ 2025-07-01 5:40 UTC (permalink / raw)
To: linux-kernel
Cc: gregkh, arnd, shyam-sundar.s-k, gautham.shenoy, mario.limonciello,
naveenkrishna.chatradhi, anand.umarji, Akshay Gupta,
Dan Carpenter
Smatch warnings are reported for below commit,
Commit bb13a84ed6b7 ("misc: amd-sbi: Add support for CPUID protocol")
from Apr 28, 2025 (linux-next), leads to the following Smatch static
checker warning:
drivers/misc/amd-sbi/rmi-core.c:132 rmi_cpuid_read() warn: bitwise OR is zero '0xffffffff00000000 & 0xffff'
drivers/misc/amd-sbi/rmi-core.c:132 rmi_cpuid_read() warn: potential integer overflow from user 'msg->cpu_in_out << 32'
drivers/misc/amd-sbi/rmi-core.c:213 rmi_mca_msr_read() warn: bitwise OR is zero '0xffffffff00000000 & 0xffff'
drivers/misc/amd-sbi/rmi-core.c:213 rmi_mca_msr_read() warn: potential integer overflow from user 'msg->mcamsr_in_out << 32'
CPUID thread data from input is available at byte 4 & 5, this
patch fixes to copy the user data correctly in the argument.
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/all/aDVyO8ByVsceybk9@stanley.mountain/
Reviewed-by: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com>
Signed-off-by: Akshay Gupta <akshay.gupta@amd.com>
---
Changes from v1:
- Split patch as per Greg's suggestion
drivers/misc/amd-sbi/rmi-core.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/misc/amd-sbi/rmi-core.c b/drivers/misc/amd-sbi/rmi-core.c
index b653a21a909e..3570f3b269a9 100644
--- a/drivers/misc/amd-sbi/rmi-core.c
+++ b/drivers/misc/amd-sbi/rmi-core.c
@@ -42,7 +42,6 @@
#define RD_MCA_CMD 0x86
/* CPUID MCAMSR mask & index */
-#define CPUID_MCA_THRD_MASK GENMASK(15, 0)
#define CPUID_MCA_THRD_INDEX 32
#define CPUID_MCA_FUNC_MASK GENMASK(31, 0)
#define CPUID_EXT_FUNC_INDEX 56
@@ -129,7 +128,7 @@ static int rmi_cpuid_read(struct sbrmi_data *data,
goto exit_unlock;
}
- thread = msg->cpu_in_out << CPUID_MCA_THRD_INDEX & CPUID_MCA_THRD_MASK;
+ thread = msg->cpu_in_out >> CPUID_MCA_THRD_INDEX;
/* Thread > 127, Thread128 CS register, 1'b1 needs to be set to 1 */
if (thread > 127) {
@@ -210,7 +209,7 @@ static int rmi_mca_msr_read(struct sbrmi_data *data,
goto exit_unlock;
}
- thread = msg->mcamsr_in_out << CPUID_MCA_THRD_INDEX & CPUID_MCA_THRD_MASK;
+ thread = msg->mcamsr_in_out >> CPUID_MCA_THRD_INDEX;
/* Thread > 127, Thread128 CS register, 1'b1 needs to be set to 1 */
if (thread > 127) {
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v3 2/2] misc: amd-sbi: Address copy_to/from_user() warning reported in smatch 2025-07-01 5:40 [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue reported in smatch Akshay Gupta @ 2025-07-01 5:40 ` Akshay Gupta 2025-07-01 5:49 ` Greg KH 2025-07-01 5:49 ` [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue " Greg KH 1 sibling, 1 reply; 6+ messages in thread From: Akshay Gupta @ 2025-07-01 5:40 UTC (permalink / raw) To: linux-kernel Cc: gregkh, arnd, shyam-sundar.s-k, gautham.shenoy, mario.limonciello, naveenkrishna.chatradhi, anand.umarji, Akshay Gupta, Dan Carpenter Smatch warnings are reported for below commit, Commit bb13a84ed6b7 ("misc: amd-sbi: Add support for CPUID protocol") from Apr 28, 2025 (linux-next), leads to the following Smatch static checker warning: drivers/misc/amd-sbi/rmi-core.c:376 apml_rmi_reg_xfer() warn: maybe return -EFAULT instead of the bytes remaining? drivers/misc/amd-sbi/rmi-core.c:394 apml_mailbox_xfer() warn: maybe return -EFAULT instead of the bytes remaining? drivers/misc/amd-sbi/rmi-core.c:411 apml_cpuid_xfer() warn: maybe return -EFAULT instead of the bytes remaining? drivers/misc/amd-sbi/rmi-core.c:428 apml_mcamsr_xfer() warn: maybe return -EFAULT instead of the bytes remaining? copy_to/from_user() returns number of bytes, not copied. In case data not copied, return "-EFAULT". Additionally, fixes the "-EPROTOTYPE" error return as intended. Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Closes: https://lore.kernel.org/all/aDVyO8ByVsceybk9@stanley.mountain/ Reviewed-by: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com> Signed-off-by: Akshay Gupta <akshay.gupta@amd.com> --- Changes from v2: - Update commit message to add, "fix the -EPROTOTYPE error return". Changes from v1: - Split patch as per Greg's suggestion drivers/misc/amd-sbi/rmi-core.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/misc/amd-sbi/rmi-core.c b/drivers/misc/amd-sbi/rmi-core.c index 3570f3b269a9..9048517c088c 100644 --- a/drivers/misc/amd-sbi/rmi-core.c +++ b/drivers/misc/amd-sbi/rmi-core.c @@ -372,7 +372,8 @@ static int apml_rmi_reg_xfer(struct sbrmi_data *data, mutex_unlock(&data->lock); if (msg.rflag && !ret) - return copy_to_user(arg, &msg, sizeof(struct apml_reg_xfer_msg)); + if (copy_to_user(arg, &msg, sizeof(struct apml_reg_xfer_msg))) + return -EFAULT; return ret; } @@ -390,7 +391,9 @@ static int apml_mailbox_xfer(struct sbrmi_data *data, struct apml_mbox_msg __use if (ret && ret != -EPROTOTYPE) return ret; - return copy_to_user(arg, &msg, sizeof(struct apml_mbox_msg)); + if (copy_to_user(arg, &msg, sizeof(struct apml_mbox_msg))) + return -EFAULT; + return ret; } static int apml_cpuid_xfer(struct sbrmi_data *data, struct apml_cpuid_msg __user *arg) @@ -407,7 +410,9 @@ static int apml_cpuid_xfer(struct sbrmi_data *data, struct apml_cpuid_msg __user if (ret && ret != -EPROTOTYPE) return ret; - return copy_to_user(arg, &msg, sizeof(struct apml_cpuid_msg)); + if (copy_to_user(arg, &msg, sizeof(struct apml_cpuid_msg))) + return -EFAULT; + return ret; } static int apml_mcamsr_xfer(struct sbrmi_data *data, struct apml_mcamsr_msg __user *arg) @@ -424,7 +429,9 @@ static int apml_mcamsr_xfer(struct sbrmi_data *data, struct apml_mcamsr_msg __us if (ret && ret != -EPROTOTYPE) return ret; - return copy_to_user(arg, &msg, sizeof(struct apml_mcamsr_msg)); + if (copy_to_user(arg, &msg, sizeof(struct apml_mcamsr_msg))) + return -EFAULT; + return ret; } static long sbrmi_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) -- 2.25.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] misc: amd-sbi: Address copy_to/from_user() warning reported in smatch 2025-07-01 5:40 ` [PATCH v3 2/2] misc: amd-sbi: Address copy_to/from_user() warning " Akshay Gupta @ 2025-07-01 5:49 ` Greg KH 2025-07-01 9:16 ` Gupta, Akshay 0 siblings, 1 reply; 6+ messages in thread From: Greg KH @ 2025-07-01 5:49 UTC (permalink / raw) To: Akshay Gupta Cc: linux-kernel, arnd, shyam-sundar.s-k, gautham.shenoy, mario.limonciello, naveenkrishna.chatradhi, anand.umarji, Dan Carpenter On Tue, Jul 01, 2025 at 05:40:41AM +0000, Akshay Gupta wrote: > Smatch warnings are reported for below commit, > > Commit bb13a84ed6b7 ("misc: amd-sbi: Add support for CPUID protocol") > from Apr 28, 2025 (linux-next), leads to the following Smatch static > checker warning: > > drivers/misc/amd-sbi/rmi-core.c:376 apml_rmi_reg_xfer() warn: maybe return -EFAULT instead of the bytes remaining? > drivers/misc/amd-sbi/rmi-core.c:394 apml_mailbox_xfer() warn: maybe return -EFAULT instead of the bytes remaining? > drivers/misc/amd-sbi/rmi-core.c:411 apml_cpuid_xfer() warn: maybe return -EFAULT instead of the bytes remaining? > drivers/misc/amd-sbi/rmi-core.c:428 apml_mcamsr_xfer() warn: maybe return -EFAULT instead of the bytes remaining? > > copy_to/from_user() returns number of bytes, not copied. > In case data not copied, return "-EFAULT". > Additionally, fixes the "-EPROTOTYPE" error return as intended. > > Reported-by: Dan Carpenter <dan.carpenter@linaro.org> > Closes: https://lore.kernel.org/all/aDVyO8ByVsceybk9@stanley.mountain/ > Reviewed-by: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com> > Signed-off-by: Akshay Gupta <akshay.gupta@amd.com> > --- > Changes from v2: > - Update commit message to add, "fix the -EPROTOTYPE error return". > > Changes from v1: > - Split patch as per Greg's suggestion > > drivers/misc/amd-sbi/rmi-core.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/misc/amd-sbi/rmi-core.c b/drivers/misc/amd-sbi/rmi-core.c > index 3570f3b269a9..9048517c088c 100644 > --- a/drivers/misc/amd-sbi/rmi-core.c > +++ b/drivers/misc/amd-sbi/rmi-core.c > @@ -372,7 +372,8 @@ static int apml_rmi_reg_xfer(struct sbrmi_data *data, > mutex_unlock(&data->lock); > > if (msg.rflag && !ret) > - return copy_to_user(arg, &msg, sizeof(struct apml_reg_xfer_msg)); > + if (copy_to_user(arg, &msg, sizeof(struct apml_reg_xfer_msg))) > + return -EFAULT; > return ret; What commit id does this change fix? thanks, greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] misc: amd-sbi: Address copy_to/from_user() warning reported in smatch 2025-07-01 5:49 ` Greg KH @ 2025-07-01 9:16 ` Gupta, Akshay 0 siblings, 0 replies; 6+ messages in thread From: Gupta, Akshay @ 2025-07-01 9:16 UTC (permalink / raw) To: Greg KH Cc: linux-kernel, arnd, shyam-sundar.s-k, gautham.shenoy, mario.limonciello, naveenkrishna.chatradhi, anand.umarji, Dan Carpenter On 7/1/2025 11:19 AM, Greg KH wrote: > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > On Tue, Jul 01, 2025 at 05:40:41AM +0000, Akshay Gupta wrote: >> Smatch warnings are reported for below commit, >> >> Commit bb13a84ed6b7 ("misc: amd-sbi: Add support for CPUID protocol") >> from Apr 28, 2025 (linux-next), leads to the following Smatch static >> checker warning: >> >> drivers/misc/amd-sbi/rmi-core.c:376 apml_rmi_reg_xfer() warn: maybe return -EFAULT instead of the bytes remaining? >> drivers/misc/amd-sbi/rmi-core.c:394 apml_mailbox_xfer() warn: maybe return -EFAULT instead of the bytes remaining? >> drivers/misc/amd-sbi/rmi-core.c:411 apml_cpuid_xfer() warn: maybe return -EFAULT instead of the bytes remaining? >> drivers/misc/amd-sbi/rmi-core.c:428 apml_mcamsr_xfer() warn: maybe return -EFAULT instead of the bytes remaining? >> >> copy_to/from_user() returns number of bytes, not copied. >> In case data not copied, return "-EFAULT". >> Additionally, fixes the "-EPROTOTYPE" error return as intended. >> >> Reported-by: Dan Carpenter <dan.carpenter@linaro.org> >> Closes: https://lore.kernel.org/all/aDVyO8ByVsceybk9@stanley.mountain/ >> Reviewed-by: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com> >> Signed-off-by: Akshay Gupta <akshay.gupta@amd.com> >> --- >> Changes from v2: >> - Update commit message to add, "fix the -EPROTOTYPE error return". >> >> Changes from v1: >> - Split patch as per Greg's suggestion >> >> drivers/misc/amd-sbi/rmi-core.c | 15 +++++++++++---- >> 1 file changed, 11 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/misc/amd-sbi/rmi-core.c b/drivers/misc/amd-sbi/rmi-core.c >> index 3570f3b269a9..9048517c088c 100644 >> --- a/drivers/misc/amd-sbi/rmi-core.c >> +++ b/drivers/misc/amd-sbi/rmi-core.c >> @@ -372,7 +372,8 @@ static int apml_rmi_reg_xfer(struct sbrmi_data *data, >> mutex_unlock(&data->lock); >> >> if (msg.rflag && !ret) >> - return copy_to_user(arg, &msg, sizeof(struct apml_reg_xfer_msg)); >> + if (copy_to_user(arg, &msg, sizeof(struct apml_reg_xfer_msg))) >> + return -EFAULT; >> return ret; > What commit id does this change fix? I will update the commit message to address this, thank you > > thanks, > > greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue reported in smatch 2025-07-01 5:40 [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue reported in smatch Akshay Gupta 2025-07-01 5:40 ` [PATCH v3 2/2] misc: amd-sbi: Address copy_to/from_user() warning " Akshay Gupta @ 2025-07-01 5:49 ` Greg KH 2025-07-01 9:15 ` Gupta, Akshay 1 sibling, 1 reply; 6+ messages in thread From: Greg KH @ 2025-07-01 5:49 UTC (permalink / raw) To: Akshay Gupta Cc: linux-kernel, arnd, shyam-sundar.s-k, gautham.shenoy, mario.limonciello, naveenkrishna.chatradhi, anand.umarji, Dan Carpenter On Tue, Jul 01, 2025 at 05:40:40AM +0000, Akshay Gupta wrote: > Smatch warnings are reported for below commit, > > Commit bb13a84ed6b7 ("misc: amd-sbi: Add support for CPUID protocol") > from Apr 28, 2025 (linux-next), leads to the following Smatch static > checker warning: > > drivers/misc/amd-sbi/rmi-core.c:132 rmi_cpuid_read() warn: bitwise OR is zero '0xffffffff00000000 & 0xffff' > drivers/misc/amd-sbi/rmi-core.c:132 rmi_cpuid_read() warn: potential integer overflow from user 'msg->cpu_in_out << 32' > drivers/misc/amd-sbi/rmi-core.c:213 rmi_mca_msr_read() warn: bitwise OR is zero '0xffffffff00000000 & 0xffff' > drivers/misc/amd-sbi/rmi-core.c:213 rmi_mca_msr_read() warn: potential integer overflow from user 'msg->mcamsr_in_out << 32' > > CPUID thread data from input is available at byte 4 & 5, this > patch fixes to copy the user data correctly in the argument. > > Reported-by: Dan Carpenter <dan.carpenter@linaro.org> > Closes: https://lore.kernel.org/all/aDVyO8ByVsceybk9@stanley.mountain/ > Reviewed-by: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com> > Signed-off-by: Akshay Gupta <akshay.gupta@amd.com> > --- > Changes from v1: > - Split patch as per Greg's suggestion > > drivers/misc/amd-sbi/rmi-core.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/misc/amd-sbi/rmi-core.c b/drivers/misc/amd-sbi/rmi-core.c > index b653a21a909e..3570f3b269a9 100644 > --- a/drivers/misc/amd-sbi/rmi-core.c > +++ b/drivers/misc/amd-sbi/rmi-core.c > @@ -42,7 +42,6 @@ > #define RD_MCA_CMD 0x86 > > /* CPUID MCAMSR mask & index */ > -#define CPUID_MCA_THRD_MASK GENMASK(15, 0) > #define CPUID_MCA_THRD_INDEX 32 > #define CPUID_MCA_FUNC_MASK GENMASK(31, 0) > #define CPUID_EXT_FUNC_INDEX 56 > @@ -129,7 +128,7 @@ static int rmi_cpuid_read(struct sbrmi_data *data, > goto exit_unlock; > } > > - thread = msg->cpu_in_out << CPUID_MCA_THRD_INDEX & CPUID_MCA_THRD_MASK; > + thread = msg->cpu_in_out >> CPUID_MCA_THRD_INDEX; So this takes a u64 and just moves it over 32 bits and then does what? I guess it makes sense but how did the original code ever work at all? > > /* Thread > 127, Thread128 CS register, 1'b1 needs to be set to 1 */ > if (thread > 127) { > @@ -210,7 +209,7 @@ static int rmi_mca_msr_read(struct sbrmi_data *data, > goto exit_unlock; > } > > - thread = msg->mcamsr_in_out << CPUID_MCA_THRD_INDEX & CPUID_MCA_THRD_MASK; > + thread = msg->mcamsr_in_out >> CPUID_MCA_THRD_INDEX; Same here, was the original code just wrong? And if this wrong, should this get a fixes: line? thanks, greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue reported in smatch 2025-07-01 5:49 ` [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue " Greg KH @ 2025-07-01 9:15 ` Gupta, Akshay 0 siblings, 0 replies; 6+ messages in thread From: Gupta, Akshay @ 2025-07-01 9:15 UTC (permalink / raw) To: Greg KH Cc: linux-kernel, arnd, shyam-sundar.s-k, gautham.shenoy, mario.limonciello, naveenkrishna.chatradhi, anand.umarji, Dan Carpenter On 7/1/2025 11:19 AM, Greg KH wrote: > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > On Tue, Jul 01, 2025 at 05:40:40AM +0000, Akshay Gupta wrote: >> Smatch warnings are reported for below commit, >> >> Commit bb13a84ed6b7 ("misc: amd-sbi: Add support for CPUID protocol") >> from Apr 28, 2025 (linux-next), leads to the following Smatch static >> checker warning: >> >> drivers/misc/amd-sbi/rmi-core.c:132 rmi_cpuid_read() warn: bitwise OR is zero '0xffffffff00000000 & 0xffff' >> drivers/misc/amd-sbi/rmi-core.c:132 rmi_cpuid_read() warn: potential integer overflow from user 'msg->cpu_in_out << 32' >> drivers/misc/amd-sbi/rmi-core.c:213 rmi_mca_msr_read() warn: bitwise OR is zero '0xffffffff00000000 & 0xffff' >> drivers/misc/amd-sbi/rmi-core.c:213 rmi_mca_msr_read() warn: potential integer overflow from user 'msg->mcamsr_in_out << 32' >> >> CPUID thread data from input is available at byte 4 & 5, this >> patch fixes to copy the user data correctly in the argument. >> >> Reported-by: Dan Carpenter <dan.carpenter@linaro.org> >> Closes: https://lore.kernel.org/all/aDVyO8ByVsceybk9@stanley.mountain/ >> Reviewed-by: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com> >> Signed-off-by: Akshay Gupta <akshay.gupta@amd.com> >> --- >> Changes from v1: >> - Split patch as per Greg's suggestion >> >> drivers/misc/amd-sbi/rmi-core.c | 5 ++--- >> 1 file changed, 2 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/misc/amd-sbi/rmi-core.c b/drivers/misc/amd-sbi/rmi-core.c >> index b653a21a909e..3570f3b269a9 100644 >> --- a/drivers/misc/amd-sbi/rmi-core.c >> +++ b/drivers/misc/amd-sbi/rmi-core.c >> @@ -42,7 +42,6 @@ >> #define RD_MCA_CMD 0x86 >> >> /* CPUID MCAMSR mask & index */ >> -#define CPUID_MCA_THRD_MASK GENMASK(15, 0) >> #define CPUID_MCA_THRD_INDEX 32 >> #define CPUID_MCA_FUNC_MASK GENMASK(31, 0) >> #define CPUID_EXT_FUNC_INDEX 56 >> @@ -129,7 +128,7 @@ static int rmi_cpuid_read(struct sbrmi_data *data, >> goto exit_unlock; >> } >> >> - thread = msg->cpu_in_out << CPUID_MCA_THRD_INDEX & CPUID_MCA_THRD_MASK; >> + thread = msg->cpu_in_out >> CPUID_MCA_THRD_INDEX; > So this takes a u64 and just moves it over 32 bits and then does what? > I guess it makes sense but how did the original code ever work at all? CPUID register data(leaf and sub-leaf) is provided to user for the input thread. Previously data is return only for thread 0 and not for other threads. >> /* Thread > 127, Thread128 CS register, 1'b1 needs to be set to 1 */ >> if (thread > 127) { >> @@ -210,7 +209,7 @@ static int rmi_mca_msr_read(struct sbrmi_data *data, >> goto exit_unlock; >> } >> >> - thread = msg->mcamsr_in_out << CPUID_MCA_THRD_INDEX & CPUID_MCA_THRD_MASK; >> + thread = msg->mcamsr_in_out >> CPUID_MCA_THRD_INDEX; > Same here, was the original code just wrong? > > And if this wrong, should this get a fixes: line? I will update the commit message to include the commit ID and the line. > > thanks, > > greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-07-01 9:16 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-07-01 5:40 [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue reported in smatch Akshay Gupta 2025-07-01 5:40 ` [PATCH v3 2/2] misc: amd-sbi: Address copy_to/from_user() warning " Akshay Gupta 2025-07-01 5:49 ` Greg KH 2025-07-01 9:16 ` Gupta, Akshay 2025-07-01 5:49 ` [PATCH v3 1/2] misc: amd-sbi: Address potential integer overflow issue " Greg KH 2025-07-01 9:15 ` Gupta, Akshay
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.