From: Minchan Kim <minchan@kernel.org>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
linux-mm@kvack.org
Subject: Re: zsmalloc: zs_compact refactoring
Date: Thu, 7 Apr 2016 11:39:37 +0900 [thread overview]
Message-ID: <20160407023937.GE15178@bbox> (raw)
In-Reply-To: <20160404203952.GA8379@mwanda>
Hello Dan,
On Mon, Apr 04, 2016 at 11:39:52PM +0300, Dan Carpenter wrote:
> Hello Minchan Kim,
>
> The patch 9a0346061ab8: "zsmalloc: zs_compact refactoring" from Apr
> 2, 2016, leads to the following static checker warning:
>
> mm/zsmalloc.c:1851 handle_from_obj()
> warn: bit shifter 'OBJ_ALLOCATED_TAG' used for logical '&'
>
> mm/zsmalloc.c
> 1622 static unsigned long obj_malloc(struct size_class *class,
> 1623 struct page *first_page, unsigned long handle)
> 1624 {
> 1625 unsigned long obj;
> 1626 struct link_free *link;
> 1627
> 1628 struct page *m_page;
> 1629 unsigned long m_offset;
> 1630 void *vaddr;
> 1631
> 1632 obj = get_freeobj(first_page);
> 1633 objidx_to_page_and_offset(class, first_page, obj,
> 1634 &m_page, &m_offset);
> 1635
> 1636 vaddr = kmap_atomic(m_page);
> 1637 link = (struct link_free *)vaddr + m_offset / sizeof(*link);
> 1638 set_freeobj(first_page, link->next >> OBJ_ALLOCATED_TAG);
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> OBJ_ALLOCATED_TAG is 1. Here it's used as a shifter.
>
> 1639 if (!class->huge)
> 1640 /* record handle in the header of allocated chunk */
> 1641 link->handle = handle | OBJ_ALLOCATED_TAG;
>
> Here it's a bit mask. It's sort of confusing to re-use it like this.
> It's done through out the file.
I will send clean up patch.
Thanks.
>
> 1642 else
> 1643 /* record handle in first_page->private */
> 1644 set_page_private(first_page, handle | OBJ_ALLOCATED_TAG);
> 1645 kunmap_atomic(vaddr);
> 1646 mod_zspage_inuse(first_page, 1);
> 1647
> 1648 obj = location_to_obj(m_page, obj);
> 1649
> 1650 return obj;
> 1651 }
>
> regards,
> dan carpenter
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2016-04-07 2:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-04 20:39 zsmalloc: zs_compact refactoring Dan Carpenter
2016-04-07 2:39 ` Minchan Kim [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160407023937.GE15178@bbox \
--to=minchan@kernel.org \
--cc=dan.carpenter@oracle.com \
--cc=linux-mm@kvack.org \
--cc=sergey.senozhatsky.work@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.