linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Willy Tarreau <willy@w.ods.org>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: andersen@codepoet.org, linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Subject: [PATCH] 2.4.x SATA with highmem
Date: Sun, 4 Dec 2005 18:42:40 +0100	[thread overview]
Message-ID: <20051204174240.GA6191@alpha.home.local> (raw)
In-Reply-To: <20051204155911.GA5924@alpha.home.local>

Hi Jeff,

On Sun, Dec 04, 2005 at 04:59:11PM +0100, Willy Tarreau wrote:
> > >libata-core.c:2427: error: for each function it appears in.)
> > >libata-core.c: In function `ata_sg_setup':
> > >libata-core.c:2701: error: `KM_IRQ0' undeclared (first use in this 
> > >function)
> > >make[2]: *** [libata-core.o] Error 1
> > 
> > hmmm, interesting.  Easy enough to fix.  I guess I didn't build on a 
> > highmem box.
> 
> Same problem for me, but unfortunately, I don't know how to fix this. I've
> seen that KM_IRQ* are not defined on x86. I don't know if I can use other
> ones, not what would be the consequences. Would you please enlighten me a
> bit on this, I'm willing to test it but don't know how to build it first.

Well, after finding a good doc on kmap_atomic on lwn.net, I think I
understood how to fix this. I grepped the whole kernel for kmap_atomic()
and found that KM_BIO_IRQ was only used by ntfs, which had a comment
stating that it was used to support highmem. So I thought we could share
the same type and rediffed the patch, and now the kernel builds.

Here is my proposal, I hope it's correct.

Cheers,
Willy


diff -urN linux-2.4.32-libata1/drivers/scsi/libata-core.c linux-2.4.32-libata1-highmem/drivers/scsi/libata-core.c
--- linux-2.4.32-libata1/drivers/scsi/libata-core.c	2005-12-04 16:32:33.000000000 +0100
+++ linux-2.4.32-libata1-highmem/drivers/scsi/libata-core.c	2005-12-04 18:37:28.000000000 +0100
@@ -2424,9 +2424,9 @@
 		sg[qc->orig_n_elem - 1].length += qc->pad_len;
 		if (pad_buf) {
 			struct scatterlist *psg = &qc->pad_sgent;
-			void *addr = kmap_atomic(psg->page, KM_IRQ0);
+			void *addr = kmap_atomic(psg->page, KM_BIO_IRQ);
 			memcpy(addr + psg->offset, pad_buf, qc->pad_len);
-			kunmap_atomic(psg->page, KM_IRQ0);
+			kunmap_atomic(psg->page, KM_BIO_IRQ);
 		}
 	} else {
 		if (sg_dma_len(&sg[0]) > 0)
@@ -2698,9 +2698,9 @@
 		psg->offset = offset_in_page(offset);
 
 		if (qc->tf.flags & ATA_TFLAG_WRITE) {
-			void *addr = kmap_atomic(psg->page, KM_IRQ0);
+			void *addr = kmap_atomic(psg->page, KM_BIO_IRQ);
 			memcpy(pad_buf, addr + psg->offset, qc->pad_len);
-			kunmap_atomic(psg->page, KM_IRQ0);
+			kunmap_atomic(psg->page, KM_BIO_IRQ);
 		}
 
 		sg_dma_address(psg) = ap->pad_dma + (qc->tag * ATA_DMA_PAD_SZ);



  reply	other threads:[~2005-12-04 17:43 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-01 21:48 Final 2.4.x SATA updates Jeff Garzik
2005-12-01 23:10 ` Erik Andersen
2005-12-02  1:41   ` Jeff Garzik
     [not found]     ` <20051202022309.GA10639@codepoet.org>
     [not found]       ` <438FB468.6090504@pobox.com>
2005-12-02 12:35         ` Draft libata GET_IDENTITY and DRIVE_TASKFILE Erik Andersen
2005-12-04 15:59     ` Final 2.4.x SATA updates Willy Tarreau
2005-12-04 17:42       ` Willy Tarreau [this message]
2005-12-04 18:09         ` [PATCH] 2.4.x SATA with highmem Willy Tarreau

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=20051204174240.GA6191@alpha.home.local \
    --to=willy@w.ods.org \
    --cc=andersen@codepoet.org \
    --cc=jgarzik@pobox.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo.tosatti@cyclades.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;
as well as URLs for NNTP newsgroup(s).