From: Dan Carpenter <dan.carpenter@oracle.com>
To: minchan@kernel.org
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
linux-mm@kvack.org
Subject: re: zsmalloc: zs_compact refactoring
Date: Mon, 4 Apr 2016 23:39:52 +0300 [thread overview]
Message-ID: <20160404203952.GA8379@mwanda> (raw)
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.
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>
next reply other threads:[~2016-04-04 20:40 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-04 20:39 Dan Carpenter [this message]
2016-04-07 2:39 ` zsmalloc: zs_compact refactoring Minchan Kim
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=20160404203952.GA8379@mwanda \
--to=dan.carpenter@oracle.com \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.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.