public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@sandeen.net>
To: "Darrick J. Wong" <darrick.wong@oracle.com>,
	Eric Sandeen <sandeen@redhat.com>
Cc: linux-xfs <linux-xfs@vger.kernel.org>
Subject: Re: [PATCH] xfs: remove use of do_div with 32-bit dividend in quota debug code
Date: Wed, 19 Apr 2017 14:29:22 -0500	[thread overview]
Message-ID: <615e5f75-282f-affc-fe3b-e6410dedaccf@sandeen.net> (raw)
In-Reply-To: <20170417185959.GA5193@birch.djwong.org>

On 4/17/17 1:59 PM, Darrick J. Wong wrote:
> On Sat, Apr 15, 2017 at 09:46:09AM -0500, Eric Sandeen wrote:
>> The kbuild test robot caught this; in debug code we have another
>> caller of do_div with a 32-bit dividend (j) which is caught now
>> that we are using the kernel-supplied do_div.
>>
>> None of the values used here are 64-bit; just use simple division.
>>
>> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
>> ---
>>
>> diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
>> index b669b12..dedeb7f 100644
>> --- a/fs/xfs/xfs_qm.c
>> +++ b/fs/xfs/xfs_qm.c
>> @@ -851,8 +851,7 @@ struct xfs_qm_isolate {
>>  	 * started afresh by xfs_qm_quotacheck.
>>  	 */
>>  #ifdef DEBUG
>> -	j = XFS_FSB_TO_B(mp, XFS_DQUOT_CLUSTER_SIZE_FSB);
>> -	do_div(j, sizeof(xfs_dqblk_t));
>> +	j = XFS_FSB_TO_B(mp, XFS_DQUOT_CLUSTER_SIZE_FSB) / sizeof(xfs_dqblk_t);
> 
> Uh...
> 
> #define XFS_FSB_TO_B(mp,fsbno)   ((xfs_fsize_t)(fsbno) << (mp)->m_sb.sb_blocklog)
> typedef    __int64_t       xfs_fsize_t;    /* bytes in a file */

Assigned to "int j", riiiiight.  hohum.
 
> So the macro resolves to a 64-bit value, which is then fed directly into
> an integer division, which breaks the i386 build with the usual __divdi3
> complaint.

sandeen--

> --D
> 
>>  	ASSERT(mp->m_quotainfo->qi_dqperchunk == j);
>>  #endif
>>  	dqb = bp->b_addr;
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

  reply	other threads:[~2017-04-19 19:29 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-15 14:46 [PATCH] xfs: remove use of do_div with 32-bit dividend in quota debug code Eric Sandeen
2017-04-17 18:27 ` Bill O'Donnell
2017-04-17 18:59 ` Darrick J. Wong
2017-04-19 19:29   ` Eric Sandeen [this message]
2017-04-19 19:41 ` [PATCH V2] " Eric Sandeen
2017-04-19 20:01   ` Darrick J. Wong
2017-04-19 20:21   ` Bill O'Donnell
2017-04-19 20:23   ` Bill O'Donnell

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=615e5f75-282f-affc-fe3b-e6410dedaccf@sandeen.net \
    --to=sandeen@sandeen.net \
    --cc=darrick.wong@oracle.com \
    --cc=linux-xfs@vger.kernel.org \
    --cc=sandeen@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox