On Wed, Feb 20, 2019 at 12:47:26PM -0800, Matthew Wilcox wrote:
> On Wed, Feb 20, 2019 at 10:43:33AM -0700, Jason Gunthorpe wrote:
> > On Wed, Feb 20, 2019 at 09:14:14AM -0800, Matthew Wilcox wrote:
> > > > void __xa_release(struct xarray *xa, unsigned long index)
> > > > {
> > > >
On Wed, Feb 20, 2019 at 10:43:33AM -0700, Jason Gunthorpe wrote:
> On Wed, Feb 20, 2019 at 09:14:14AM -0800, Matthew Wilcox wrote:
> > > void __xa_release(struct xarray *xa, unsigned long index)
> > > {
> > > XA_STATE(xas, xa, index);
> > > void *curr;
> > >
> > > curr = xas_load();
> > >
On Wed, Feb 20, 2019 at 09:14:14AM -0800, Matthew Wilcox wrote:
> > void __xa_release(struct xarray *xa, unsigned long index)
> > {
> > XA_STATE(xas, xa, index);
> > void *curr;
> >
> > curr = xas_load();
> > if (curr == XA_ZERO_ENTRY)
> > xas_store(, NULL);
> > }
> >
On Tue, Feb 19, 2019 at 08:46:27PM -0700, Jason Gunthorpe wrote:
> On Tue, Feb 19, 2019 at 05:26:09PM -0800, Matthew Wilcox wrote:
> > On Tue, Feb 19, 2019 at 04:53:49PM -0700, Jason Gunthorpe wrote:
> > > Hey Matt,
> > >
> > > Did you intend that xa_release doesn't work on allocating arrays:
> >
On Tue, Feb 19, 2019 at 05:26:09PM -0800, Matthew Wilcox wrote:
> On Tue, Feb 19, 2019 at 04:53:49PM -0700, Jason Gunthorpe wrote:
> > Hey Matt,
> >
> > Did you intend that xa_release doesn't work on allocating arrays:
>
> That surprises me. I'll take a look in the morning.
I think the issue
On Tue, Feb 19, 2019 at 04:53:49PM -0700, Jason Gunthorpe wrote:
> Hey Matt,
>
> Did you intend that xa_release doesn't work on allocating arrays:
That surprises me. I'll take a look in the morning.
(giving me the test case is perfect, btw)
Hey Matt,
Did you intend that xa_release doesn't work on allocating arrays:
xa_init_flags(, XA_FLAGS_ALLOC);
xa_reserve(, 0, GFP_KERNEL);
WARN_ON(xa_empty());
xa_release(, 0);
WARN_ON(!xa_empty());
Triggers the second WARN_ON.
If FLAGS_ALLOC is removed
7 matches
Mail list logo