lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <d9945e6a-b605-a531-cefb-6ba13bd45f1f@arm.com> Date: Tue, 19 Sep 2017 11:07:05 +0100 From: Robin Murphy <robin.murphy@....com> To: "Leizhen (ThunderTown)" <thunder.leizhen@...wei.com>, Nate Watterson <nwatters@...eaurora.org>, joro@...tes.org Cc: iommu@...ts.linux-foundation.org, linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org, dwmw2@...radead.org, lorenzo.pieralisi@....com, ard.biesheuvel@...aro.org, Jonathan.Cameron@...wei.com, ray.jui@...adcom.com Subject: Re: [PATCH v2 3/4] iommu/iova: Extend rbtree node caching On 19/09/17 10:42, Leizhen (ThunderTown) wrote: [...] >>>> static void >>>> __cached_rbnode_delete_update(struct iova_domain *iovad, struct iova >>>> *free) >>>> { >>>> struct iova *cached_iova; >>>> - struct rb_node *curr; >>>> + struct rb_node **curr = NULL; >>>> - if (!iovad->cached32_node) >>>> - return; >>>> - curr = iovad->cached32_node; >>>> - cached_iova = rb_entry(curr, struct iova, node); > > ----------------------------- >>>> + if (free->pfn_hi < iovad->dma_32bit_pfn) >>>> + curr = &iovad->cached32_node; >>>> + if (!curr) >>>> + curr = &iovad->cached_node; >> >> + if (!*curr) >> + return; > Is it necessary for us to try the following adjustment? > + if (free->pfn_hi < iovad->dma_32bit_pfn) > + curr = &iovad->cached32_node; > + else > + curr = &iovad->cached_node; > + > + if (!*curr) { > + *curr = rb_next(&free->node); > + return; > + } Yeah, I spotted that this looked a bit wonky after I posted it. It's already cleaned up in v3, which I'll be posting shortly after I write up some cover letters. Thanks, Robin.
Powered by blists - more mailing lists