* [PATCH v2] PCI/pwrctrl: Do not power off on pwrctrl device removal
@ 2026-02-26 9:22 Chen-Yu Tsai
2026-02-26 9:30 ` Manivannan Sadhasivam
2026-03-23 16:28 ` Bjorn Helgaas
0 siblings, 2 replies; 5+ messages in thread
From: Chen-Yu Tsai @ 2026-02-26 9:22 UTC (permalink / raw)
To: Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas
Cc: Chen-Yu Tsai, linux-pci, linux-kernel, Manivannan Sadhasivam,
Bartosz Golaszewski
With the move to explicit pwrctrl power on/off APIs, the caller, i.e.
the PCI driver should manage the power state. The pwrctrl drivers should
not try to clean up or power off when they are removed, as this might
end up disabling an already disabled regulator, causing a big warning.
This can be triggered if a PCI controller driver's .remove() callback
calls pci_pwrctrl_destroy_devices() after pci_pwrctrl_power_off_devices().
Drop the devm cleanup parts that turn off regulators from the pwrctrl
drivers.
Fixes: b921aa3f8dec ("PCI/pwrctrl: Switch to pwrctrl create, power on/off, destroy APIs")
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
Changes since v1:
- Keep the release function for the PCI slot driver to free the
regulators
I ran into this while integrating the new pci_pwrctrl_*() API into the
MediaTek driver. I am sending this separately since this change is
unrelated and does not conflict with or depend on the other changes for
the driver itself.
I think this should be merged for fixes.
---
drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c | 12 ------------
drivers/pci/pwrctrl/slot.c | 1 -
2 files changed, 13 deletions(-)
diff --git a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
index 0d0377283c37..c7e4beec160a 100644
--- a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
+++ b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
@@ -68,13 +68,6 @@ static int pwrseq_pwrctrl_power_off(struct pci_pwrctrl *pwrctrl)
return pwrseq_power_off(pwrseq->pwrseq);
}
-static void devm_pwrseq_pwrctrl_power_off(void *data)
-{
- struct pwrseq_pwrctrl *pwrseq = data;
-
- pwrseq_pwrctrl_power_off(&pwrseq->pwrctrl);
-}
-
static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
{
const struct pwrseq_pwrctrl_pdata *pdata;
@@ -101,11 +94,6 @@ static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
return dev_err_probe(dev, PTR_ERR(pwrseq->pwrseq),
"Failed to get the power sequencer\n");
- ret = devm_add_action_or_reset(dev, devm_pwrseq_pwrctrl_power_off,
- pwrseq);
- if (ret)
- return ret;
-
pwrseq->pwrctrl.power_on = pwrseq_pwrctrl_power_on;
pwrseq->pwrctrl.power_off = pwrseq_pwrctrl_power_off;
diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/slot.c
index 082af81efe25..b87639253ae2 100644
--- a/drivers/pci/pwrctrl/slot.c
+++ b/drivers/pci/pwrctrl/slot.c
@@ -63,7 +63,6 @@ static void devm_slot_pwrctrl_release(void *data)
{
struct slot_pwrctrl *slot = data;
- slot_pwrctrl_power_off(&slot->pwrctrl);
regulator_bulk_free(slot->num_supplies, slot->supplies);
}
--
2.53.0.414.gf7e9f6c205-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] PCI/pwrctrl: Do not power off on pwrctrl device removal
2026-02-26 9:22 [PATCH v2] PCI/pwrctrl: Do not power off on pwrctrl device removal Chen-Yu Tsai
@ 2026-02-26 9:30 ` Manivannan Sadhasivam
2026-03-23 11:41 ` Chen-Yu Tsai
2026-03-23 16:28 ` Bjorn Helgaas
1 sibling, 1 reply; 5+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-26 9:30 UTC (permalink / raw)
To: Chen-Yu Tsai
Cc: Bartosz Golaszewski, Bjorn Helgaas, linux-pci, linux-kernel,
Manivannan Sadhasivam, Bartosz Golaszewski
On Thu, Feb 26, 2026 at 05:22:33PM +0800, Chen-Yu Tsai wrote:
> With the move to explicit pwrctrl power on/off APIs, the caller, i.e.
> the PCI driver should manage the power state. The pwrctrl drivers should
> not try to clean up or power off when they are removed, as this might
> end up disabling an already disabled regulator, causing a big warning.
> This can be triggered if a PCI controller driver's .remove() callback
> calls pci_pwrctrl_destroy_devices() after pci_pwrctrl_power_off_devices().
>
> Drop the devm cleanup parts that turn off regulators from the pwrctrl
> drivers.
>
> Fixes: b921aa3f8dec ("PCI/pwrctrl: Switch to pwrctrl create, power on/off, destroy APIs")
> Cc: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
- Mani
> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
>
> ---
> Changes since v1:
> - Keep the release function for the PCI slot driver to free the
> regulators
>
> I ran into this while integrating the new pci_pwrctrl_*() API into the
> MediaTek driver. I am sending this separately since this change is
> unrelated and does not conflict with or depend on the other changes for
> the driver itself.
>
> I think this should be merged for fixes.
>
> ---
> drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c | 12 ------------
> drivers/pci/pwrctrl/slot.c | 1 -
> 2 files changed, 13 deletions(-)
>
> diff --git a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> index 0d0377283c37..c7e4beec160a 100644
> --- a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> +++ b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> @@ -68,13 +68,6 @@ static int pwrseq_pwrctrl_power_off(struct pci_pwrctrl *pwrctrl)
> return pwrseq_power_off(pwrseq->pwrseq);
> }
>
> -static void devm_pwrseq_pwrctrl_power_off(void *data)
> -{
> - struct pwrseq_pwrctrl *pwrseq = data;
> -
> - pwrseq_pwrctrl_power_off(&pwrseq->pwrctrl);
> -}
> -
> static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
> {
> const struct pwrseq_pwrctrl_pdata *pdata;
> @@ -101,11 +94,6 @@ static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
> return dev_err_probe(dev, PTR_ERR(pwrseq->pwrseq),
> "Failed to get the power sequencer\n");
>
> - ret = devm_add_action_or_reset(dev, devm_pwrseq_pwrctrl_power_off,
> - pwrseq);
> - if (ret)
> - return ret;
> -
> pwrseq->pwrctrl.power_on = pwrseq_pwrctrl_power_on;
> pwrseq->pwrctrl.power_off = pwrseq_pwrctrl_power_off;
>
> diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/slot.c
> index 082af81efe25..b87639253ae2 100644
> --- a/drivers/pci/pwrctrl/slot.c
> +++ b/drivers/pci/pwrctrl/slot.c
> @@ -63,7 +63,6 @@ static void devm_slot_pwrctrl_release(void *data)
> {
> struct slot_pwrctrl *slot = data;
>
> - slot_pwrctrl_power_off(&slot->pwrctrl);
> regulator_bulk_free(slot->num_supplies, slot->supplies);
> }
>
> --
> 2.53.0.414.gf7e9f6c205-goog
>
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] PCI/pwrctrl: Do not power off on pwrctrl device removal
2026-02-26 9:30 ` Manivannan Sadhasivam
@ 2026-03-23 11:41 ` Chen-Yu Tsai
2026-03-23 11:44 ` Manivannan Sadhasivam
0 siblings, 1 reply; 5+ messages in thread
From: Chen-Yu Tsai @ 2026-03-23 11:41 UTC (permalink / raw)
To: Manivannan Sadhasivam, Bjorn Helgaas
Cc: Bartosz Golaszewski, linux-pci, linux-kernel,
Manivannan Sadhasivam, Bartosz Golaszewski
Ping?
What's going on with this patch? The slot driver got renamed and this
fix is still not merged.
On Thu, Feb 26, 2026 at 5:30 PM Manivannan Sadhasivam <mani@kernel.org> wrote:
>
> On Thu, Feb 26, 2026 at 05:22:33PM +0800, Chen-Yu Tsai wrote:
> > With the move to explicit pwrctrl power on/off APIs, the caller, i.e.
> > the PCI driver should manage the power state. The pwrctrl drivers should
> > not try to clean up or power off when they are removed, as this might
> > end up disabling an already disabled regulator, causing a big warning.
> > This can be triggered if a PCI controller driver's .remove() callback
> > calls pci_pwrctrl_destroy_devices() after pci_pwrctrl_power_off_devices().
> >
> > Drop the devm cleanup parts that turn off regulators from the pwrctrl
> > drivers.
> >
> > Fixes: b921aa3f8dec ("PCI/pwrctrl: Switch to pwrctrl create, power on/off, destroy APIs")
> > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
> > Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
>
> Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
>
> - Mani
>
> > Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> >
> > ---
> > Changes since v1:
> > - Keep the release function for the PCI slot driver to free the
> > regulators
> >
> > I ran into this while integrating the new pci_pwrctrl_*() API into the
> > MediaTek driver. I am sending this separately since this change is
> > unrelated and does not conflict with or depend on the other changes for
> > the driver itself.
> >
> > I think this should be merged for fixes.
> >
> > ---
> > drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c | 12 ------------
> > drivers/pci/pwrctrl/slot.c | 1 -
> > 2 files changed, 13 deletions(-)
> >
> > diff --git a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> > index 0d0377283c37..c7e4beec160a 100644
> > --- a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> > +++ b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> > @@ -68,13 +68,6 @@ static int pwrseq_pwrctrl_power_off(struct pci_pwrctrl *pwrctrl)
> > return pwrseq_power_off(pwrseq->pwrseq);
> > }
> >
> > -static void devm_pwrseq_pwrctrl_power_off(void *data)
> > -{
> > - struct pwrseq_pwrctrl *pwrseq = data;
> > -
> > - pwrseq_pwrctrl_power_off(&pwrseq->pwrctrl);
> > -}
> > -
> > static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
> > {
> > const struct pwrseq_pwrctrl_pdata *pdata;
> > @@ -101,11 +94,6 @@ static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
> > return dev_err_probe(dev, PTR_ERR(pwrseq->pwrseq),
> > "Failed to get the power sequencer\n");
> >
> > - ret = devm_add_action_or_reset(dev, devm_pwrseq_pwrctrl_power_off,
> > - pwrseq);
> > - if (ret)
> > - return ret;
> > -
> > pwrseq->pwrctrl.power_on = pwrseq_pwrctrl_power_on;
> > pwrseq->pwrctrl.power_off = pwrseq_pwrctrl_power_off;
> >
> > diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/slot.c
> > index 082af81efe25..b87639253ae2 100644
> > --- a/drivers/pci/pwrctrl/slot.c
> > +++ b/drivers/pci/pwrctrl/slot.c
> > @@ -63,7 +63,6 @@ static void devm_slot_pwrctrl_release(void *data)
> > {
> > struct slot_pwrctrl *slot = data;
> >
> > - slot_pwrctrl_power_off(&slot->pwrctrl);
> > regulator_bulk_free(slot->num_supplies, slot->supplies);
> > }
> >
> > --
> > 2.53.0.414.gf7e9f6c205-goog
> >
>
> --
> மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] PCI/pwrctrl: Do not power off on pwrctrl device removal
2026-03-23 11:41 ` Chen-Yu Tsai
@ 2026-03-23 11:44 ` Manivannan Sadhasivam
0 siblings, 0 replies; 5+ messages in thread
From: Manivannan Sadhasivam @ 2026-03-23 11:44 UTC (permalink / raw)
To: Bjorn Helgaas, Chen-Yu Tsai
Cc: Bartosz Golaszewski, linux-pci, linux-kernel,
Manivannan Sadhasivam, Bartosz Golaszewski
On Mon, Mar 23, 2026 at 07:41:17PM +0800, Chen-Yu Tsai wrote:
> Ping?
>
> What's going on with this patch? The slot driver got renamed and this
> fix is still not merged.
>
Bjorn, can you please pick this up for v7.0-rcS?
- Mani
> On Thu, Feb 26, 2026 at 5:30 PM Manivannan Sadhasivam <mani@kernel.org> wrote:
> >
> > On Thu, Feb 26, 2026 at 05:22:33PM +0800, Chen-Yu Tsai wrote:
> > > With the move to explicit pwrctrl power on/off APIs, the caller, i.e.
> > > the PCI driver should manage the power state. The pwrctrl drivers should
> > > not try to clean up or power off when they are removed, as this might
> > > end up disabling an already disabled regulator, causing a big warning.
> > > This can be triggered if a PCI controller driver's .remove() callback
> > > calls pci_pwrctrl_destroy_devices() after pci_pwrctrl_power_off_devices().
> > >
> > > Drop the devm cleanup parts that turn off regulators from the pwrctrl
> > > drivers.
> > >
> > > Fixes: b921aa3f8dec ("PCI/pwrctrl: Switch to pwrctrl create, power on/off, destroy APIs")
> > > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
> > > Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> >
> > Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
> >
> > - Mani
> >
> > > Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> > >
> > > ---
> > > Changes since v1:
> > > - Keep the release function for the PCI slot driver to free the
> > > regulators
> > >
> > > I ran into this while integrating the new pci_pwrctrl_*() API into the
> > > MediaTek driver. I am sending this separately since this change is
> > > unrelated and does not conflict with or depend on the other changes for
> > > the driver itself.
> > >
> > > I think this should be merged for fixes.
> > >
> > > ---
> > > drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c | 12 ------------
> > > drivers/pci/pwrctrl/slot.c | 1 -
> > > 2 files changed, 13 deletions(-)
> > >
> > > diff --git a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> > > index 0d0377283c37..c7e4beec160a 100644
> > > --- a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> > > +++ b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> > > @@ -68,13 +68,6 @@ static int pwrseq_pwrctrl_power_off(struct pci_pwrctrl *pwrctrl)
> > > return pwrseq_power_off(pwrseq->pwrseq);
> > > }
> > >
> > > -static void devm_pwrseq_pwrctrl_power_off(void *data)
> > > -{
> > > - struct pwrseq_pwrctrl *pwrseq = data;
> > > -
> > > - pwrseq_pwrctrl_power_off(&pwrseq->pwrctrl);
> > > -}
> > > -
> > > static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
> > > {
> > > const struct pwrseq_pwrctrl_pdata *pdata;
> > > @@ -101,11 +94,6 @@ static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
> > > return dev_err_probe(dev, PTR_ERR(pwrseq->pwrseq),
> > > "Failed to get the power sequencer\n");
> > >
> > > - ret = devm_add_action_or_reset(dev, devm_pwrseq_pwrctrl_power_off,
> > > - pwrseq);
> > > - if (ret)
> > > - return ret;
> > > -
> > > pwrseq->pwrctrl.power_on = pwrseq_pwrctrl_power_on;
> > > pwrseq->pwrctrl.power_off = pwrseq_pwrctrl_power_off;
> > >
> > > diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/slot.c
> > > index 082af81efe25..b87639253ae2 100644
> > > --- a/drivers/pci/pwrctrl/slot.c
> > > +++ b/drivers/pci/pwrctrl/slot.c
> > > @@ -63,7 +63,6 @@ static void devm_slot_pwrctrl_release(void *data)
> > > {
> > > struct slot_pwrctrl *slot = data;
> > >
> > > - slot_pwrctrl_power_off(&slot->pwrctrl);
> > > regulator_bulk_free(slot->num_supplies, slot->supplies);
> > > }
> > >
> > > --
> > > 2.53.0.414.gf7e9f6c205-goog
> > >
> >
> > --
> > மணிவண்ணன் சதாசிவம்
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] PCI/pwrctrl: Do not power off on pwrctrl device removal
2026-02-26 9:22 [PATCH v2] PCI/pwrctrl: Do not power off on pwrctrl device removal Chen-Yu Tsai
2026-02-26 9:30 ` Manivannan Sadhasivam
@ 2026-03-23 16:28 ` Bjorn Helgaas
1 sibling, 0 replies; 5+ messages in thread
From: Bjorn Helgaas @ 2026-03-23 16:28 UTC (permalink / raw)
To: Chen-Yu Tsai
Cc: Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
linux-pci, linux-kernel, Manivannan Sadhasivam,
Bartosz Golaszewski
On Thu, Feb 26, 2026 at 05:22:33PM +0800, Chen-Yu Tsai wrote:
> With the move to explicit pwrctrl power on/off APIs, the caller, i.e.
> the PCI driver should manage the power state. The pwrctrl drivers should
> not try to clean up or power off when they are removed, as this might
> end up disabling an already disabled regulator, causing a big warning.
> This can be triggered if a PCI controller driver's .remove() callback
> calls pci_pwrctrl_destroy_devices() after pci_pwrctrl_power_off_devices().
>
> Drop the devm cleanup parts that turn off regulators from the pwrctrl
> drivers.
>
> Fixes: b921aa3f8dec ("PCI/pwrctrl: Switch to pwrctrl create, power on/off, destroy APIs")
> Cc: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Applied to pci/for-linus for v7.0, thanks!
> ---
> Changes since v1:
> - Keep the release function for the PCI slot driver to free the
> regulators
>
> I ran into this while integrating the new pci_pwrctrl_*() API into the
> MediaTek driver. I am sending this separately since this change is
> unrelated and does not conflict with or depend on the other changes for
> the driver itself.
>
> I think this should be merged for fixes.
>
> ---
> drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c | 12 ------------
> drivers/pci/pwrctrl/slot.c | 1 -
> 2 files changed, 13 deletions(-)
>
> diff --git a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> index 0d0377283c37..c7e4beec160a 100644
> --- a/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> +++ b/drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
> @@ -68,13 +68,6 @@ static int pwrseq_pwrctrl_power_off(struct pci_pwrctrl *pwrctrl)
> return pwrseq_power_off(pwrseq->pwrseq);
> }
>
> -static void devm_pwrseq_pwrctrl_power_off(void *data)
> -{
> - struct pwrseq_pwrctrl *pwrseq = data;
> -
> - pwrseq_pwrctrl_power_off(&pwrseq->pwrctrl);
> -}
> -
> static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
> {
> const struct pwrseq_pwrctrl_pdata *pdata;
> @@ -101,11 +94,6 @@ static int pwrseq_pwrctrl_probe(struct platform_device *pdev)
> return dev_err_probe(dev, PTR_ERR(pwrseq->pwrseq),
> "Failed to get the power sequencer\n");
>
> - ret = devm_add_action_or_reset(dev, devm_pwrseq_pwrctrl_power_off,
> - pwrseq);
> - if (ret)
> - return ret;
> -
> pwrseq->pwrctrl.power_on = pwrseq_pwrctrl_power_on;
> pwrseq->pwrctrl.power_off = pwrseq_pwrctrl_power_off;
>
> diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/slot.c
> index 082af81efe25..b87639253ae2 100644
> --- a/drivers/pci/pwrctrl/slot.c
> +++ b/drivers/pci/pwrctrl/slot.c
> @@ -63,7 +63,6 @@ static void devm_slot_pwrctrl_release(void *data)
> {
> struct slot_pwrctrl *slot = data;
>
> - slot_pwrctrl_power_off(&slot->pwrctrl);
> regulator_bulk_free(slot->num_supplies, slot->supplies);
> }
>
> --
> 2.53.0.414.gf7e9f6c205-goog
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-03-23 16:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-26 9:22 [PATCH v2] PCI/pwrctrl: Do not power off on pwrctrl device removal Chen-Yu Tsai
2026-02-26 9:30 ` Manivannan Sadhasivam
2026-03-23 11:41 ` Chen-Yu Tsai
2026-03-23 11:44 ` Manivannan Sadhasivam
2026-03-23 16:28 ` Bjorn Helgaas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox