<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:47:48 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-11887] OBD_FREE macro issues with OBD_DEBUG_MEMUSAGE and CONFIG_DEBUG_SLAB </title>
                <link>https://jira.whamcloud.com/browse/LU-11887</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;There&apos;s some weirdness with the OBD_FREE family of macros, and at least one bug.&lt;/p&gt;

&lt;p&gt;First item is more of a style thing, but:&lt;br/&gt;
free(), vfree(), and kfree() all accept null pointers without complaint.&#160; This simplifies code in exit paths in many places.&lt;/p&gt;

&lt;p&gt;The OBD_FREE macros do in their default version, and this behavior is used (inconsistently), but if&#160;OBD_DEBUG_MEMUSAGE is on, they do not, because OBD_FREE_PRE asserts the pointer is not null.&lt;/p&gt;

&lt;p&gt;We should fix that in OBD_DEBUG_MEMUSAGE;&lt;/p&gt;


&lt;p&gt;Then, next:&lt;/p&gt;

&lt;p&gt;There are several bugs with POISON_PTR.&lt;/p&gt;

&lt;p&gt;If OBD_DEBUG_MEMUSAGE is on:&lt;br/&gt;
OBD_FREE poisons the PTR twice.&lt;/p&gt;



&lt;p&gt;if CONFIG_DEBUG_SLAB is on, POISON_PTR is enabled...&lt;/p&gt;

&lt;p&gt;And we call it after freeing the pointer in several places:&lt;br/&gt;
#define OBD_FREE(ptr, size) \&lt;br/&gt;
do { \&lt;br/&gt;
 OBD_FREE_PRE(ptr, size, &quot;kfreed&quot;); \&lt;br/&gt;
 kfree(ptr); \&lt;br/&gt;
 POISON_PTR(ptr); \&lt;br/&gt;
} while (0)&lt;/p&gt;

&lt;p&gt;#define OBD_FREE_LARGE(ptr, size) \&lt;br/&gt;
do { \&lt;br/&gt;
 if (is_vmalloc_addr(ptr)) &lt;/p&gt;
{ \
 OBD_FREE_PRE(ptr, size, &quot;vfreed&quot;); \
 vfree(ptr); \
 POISON_PTR(ptr); \
 }
&lt;p&gt; else { &lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Yuck!&#160; I&apos;ll see about doing patches for this at some point.&lt;/p&gt;</description>
                <environment></environment>
        <key id="54665">LU-11887</key>
            <summary>OBD_FREE macro issues with OBD_DEBUG_MEMUSAGE and CONFIG_DEBUG_SLAB </summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="pfarrell">Patrick Farrell</reporter>
                        <labels>
                    </labels>
                <created>Fri, 25 Jan 2019 16:33:04 +0000</created>
                <updated>Wed, 4 Sep 2019 16:36:05 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i00aav:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>