All of lore.kernel.org
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: Kurt Garloff <garloff@suse.de>
Cc: Chris Mason <mason@suse.com>, Jens Axboe <axboe@suse.de>,
	Greg Afinogenov <antisthenes@inbox.ru>,
	linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH] bio_uncopy_user mem leak
Date: Fri, 20 Aug 2004 13:19:37 +1000	[thread overview]
Message-ID: <41256DC9.7070500@kolivas.org> (raw)
In-Reply-To: <20040819195521.GC12363@tpkurt.garloff.de>

[-- Attachment #1: Type: text/plain, Size: 1851 bytes --]

Kurt Garloff wrote:
> Hi Chris,
> 
> On Thu, Aug 19, 2004 at 09:51:34AM -0400, Chris Mason wrote:
> 
>>On Thu, 2004-08-19 at 07:07, Con Kolivas wrote:
>>
>>>Ok I just tested this patch discretely and indeed the memory leak goes 
>>>away but it still produces coasters so something is still amuck. Just as 
>>>a data point; burning DVDs and data cds is ok. Burning audio *and 
>>>videocds* is not.
>>
>>It might be the cold medicine talking, but I think we need something
>>like this.  gcc tested it for me, beyond that I make no promises....
>>
>>--- l/fs/bio.c.1	2004-08-19 09:36:13.596858736 -0400
>>+++ l/fs/bio.c	2004-08-19 09:47:46.392537784 -0400
>>@@ -454,6 +454,7 @@
>> 	 */
>> 	if (!ret) {
>> 		if (!write_to_vm) {
>>+			unsigned long p = uaddr;
>> 			bio->bi_rw |= (1 << BIO_RW);
>> 			/*
>> 	 		 * for a write, copy in data to kernel pages
>>@@ -462,8 +463,9 @@
>> 			bio_for_each_segment(bvec, bio, i) {
>> 				char *addr = page_address(bvec->bv_page);
>> 
>>-				if (copy_from_user(addr, (char *) uaddr, bvec->bv_len))
>>+				if (copy_from_user(addr, (char *) p, bvec->bv_len))
>> 					goto cleanup;
>>+				p += bvec->bv_len;
>> 			}
>> 		}
>> 
> 
> 
> Hmm, that patch would make a lot of sense to me.
> 
> It matches the problem description; burning data CDs, we don't
> use bounce buffers, so that does not use this code path. Here,
> it looks like we copied the same userspace page again and again
> into a multisegment BIO. Ouch!
> 
> Not yet tested either :-(

Ok looks like your cold medicine is working well for you ;-). This patch 
on top of the other patch has the memory freeing _and_ burns good cds. 
Well done. I only tested with a video cd. Can someone confirm audio cd 
(although it seems obvious it would help both).

Andrew did you threaten to make a 2.6.8.2 since 2.6.8{,.1} cannot safely 
burn an audio cd?

Cheers,
Con

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

  reply	other threads:[~2004-08-20  3:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-19  9:59 [PATCH] bio_uncopy_user mem leak Greg Afinogenov
2004-08-19 11:07 ` Con Kolivas
2004-08-19 13:51   ` Chris Mason
2004-08-19 19:55     ` Kurt Garloff
2004-08-20  3:19       ` Con Kolivas [this message]
2004-08-20  6:31         ` Andrew Morton
2004-08-20 12:54           ` Kurt Garloff
2004-08-20 20:28           ` sandr8
2004-08-20  7:15         ` Greg Afinogenov
2004-08-20 12:46         ` Kurt Garloff
  -- strict thread matches above, loose matches on Subject: below --
2004-08-17 15:59 Kurt Garloff
2004-08-17 21:08 ` Gene Heskett
2004-08-17 22:50 ` Andrew Morton
2004-08-19  7:16 ` Colin Leroy

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=41256DC9.7070500@kolivas.org \
    --to=kernel@kolivas.org \
    --cc=akpm@osdl.org \
    --cc=antisthenes@inbox.ru \
    --cc=axboe@suse.de \
    --cc=garloff@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mason@suse.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.