* [PATCH 2/2]: Powerpc: Fix EHCA driver on relocatable kernel
@ 2010-08-20 4:10 Sonny Rao
[not found] ` <20100820041019.GT16505-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Sonny Rao @ 2010-08-20 4:10 UTC (permalink / raw)
To: linux-ppc-uLR06cmDAlY/bJ5BZ2RsiQ
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, rolandd-FYB4Gu1CFyUAvxtiuMwx3w,
fenkes-tA70FqPdS9bQT0dZR+AlfA, raisch-tA70FqPdS9bQT0dZR+AlfA,
hnguyen-tA70FqPdS9bQT0dZR+AlfA
the eHCA driver registers a MR for all of kernel memory, but makes the
assumption that valid memory exists at KERNELBASE. This assumption
may not be true in the case of a relocatable kernel, so use KERNELBASE
+ PHYSICAL_START to get the true beginning of usable kernel memory.
This patch depends on the earlier patch which exports the necessary
symbol for PHYSICAL_START in a relocatable kernel.
cc: Joachim Fenkes <fenkes-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
cc: Christoph Raisch <raisch-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
cc: Hoan-Ham Hguyen <hnguyen-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Sonny Rao <sonnyrao-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Index: linux-2.6/drivers/infiniband/hw/ehca/ehca_mrmw.c
===================================================================
--- linux-2.6.orig/drivers/infiniband/hw/ehca/ehca_mrmw.c 2010-08-09 22:16:57.688652613 -0500
+++ linux-2.6/drivers/infiniband/hw/ehca/ehca_mrmw.c 2010-08-19 22:53:03.451507146 -0500
@@ -171,7 +171,7 @@
}
ret = ehca_reg_maxmr(shca, e_maxmr,
- (void *)ehca_map_vaddr((void *)KERNELBASE),
+ (void *)ehca_map_vaddr((void *)(KERNELBASE + PHYSICAL_START)),
mr_access_flags, e_pd,
&e_maxmr->ib.ib_mr.lkey,
&e_maxmr->ib.ib_mr.rkey);
@@ -1636,7 +1636,7 @@
/* register internal max-MR on HCA */
size_maxmr = ehca_mr_len;
- iova_start = (u64 *)ehca_map_vaddr((void *)KERNELBASE);
+ iova_start = (u64 *)ehca_map_vaddr((void *)(KERNELBASE + PHYSICAL_START));
ib_pbuf.addr = 0;
ib_pbuf.size = size_maxmr;
num_kpages = NUM_CHUNKS(((u64)iova_start % PAGE_SIZE) + size_maxmr,
@@ -2209,7 +2209,7 @@
{
/* a MR is treated as max-MR only if it fits following: */
if ((size == ehca_mr_len) &&
- (iova_start == (void *)ehca_map_vaddr((void *)KERNELBASE))) {
+ (iova_start == (void *)ehca_map_vaddr((void *)(KERNELBASE + PHYSICAL_START)))) {
ehca_gen_dbg("this is a max-MR");
return 1;
} else
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread[parent not found: <20100820041019.GT16505-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 2/2]: Powerpc: Fix EHCA driver on relocatable kernel [not found] ` <20100820041019.GT16505-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> @ 2010-08-24 4:45 ` Benjamin Herrenschmidt 2010-10-06 19:57 ` Roland Dreier 1 sibling, 0 replies; 3+ messages in thread From: Benjamin Herrenschmidt @ 2010-08-24 4:45 UTC (permalink / raw) To: Sonny Rao Cc: linux-ppc-uLR06cmDAlY/bJ5BZ2RsiQ, linux-rdma-u79uwXL29TY76Z2rM5mHXA, fenkes-tA70FqPdS9bQT0dZR+AlfA, raisch-tA70FqPdS9bQT0dZR+AlfA On Thu, 2010-08-19 at 23:10 -0500, Sonny Rao wrote: > the eHCA driver registers a MR for all of kernel memory, but makes the > assumption that valid memory exists at KERNELBASE. This assumption > may not be true in the case of a relocatable kernel, so use KERNELBASE > + PHYSICAL_START to get the true beginning of usable kernel memory. > > This patch depends on the earlier patch which exports the necessary > symbol for PHYSICAL_START in a relocatable kernel. I'm going to send patch 1/2 to Linus today or tomorrow, so this patch can then be picked up by the infiniband maintainers. Cheers, Ben. > cc: Joachim Fenkes <fenkes-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> > cc: Christoph Raisch <raisch-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> > cc: Hoan-Ham Hguyen <hnguyen-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> > Signed-off-by: Sonny Rao <sonnyrao-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> > > > Index: linux-2.6/drivers/infiniband/hw/ehca/ehca_mrmw.c > =================================================================== > --- linux-2.6.orig/drivers/infiniband/hw/ehca/ehca_mrmw.c 2010-08-09 22:16:57.688652613 -0500 > +++ linux-2.6/drivers/infiniband/hw/ehca/ehca_mrmw.c 2010-08-19 22:53:03.451507146 -0500 > @@ -171,7 +171,7 @@ > } > > ret = ehca_reg_maxmr(shca, e_maxmr, > - (void *)ehca_map_vaddr((void *)KERNELBASE), > + (void *)ehca_map_vaddr((void *)(KERNELBASE + PHYSICAL_START)), > mr_access_flags, e_pd, > &e_maxmr->ib.ib_mr.lkey, > &e_maxmr->ib.ib_mr.rkey); > @@ -1636,7 +1636,7 @@ > > /* register internal max-MR on HCA */ > size_maxmr = ehca_mr_len; > - iova_start = (u64 *)ehca_map_vaddr((void *)KERNELBASE); > + iova_start = (u64 *)ehca_map_vaddr((void *)(KERNELBASE + PHYSICAL_START)); > ib_pbuf.addr = 0; > ib_pbuf.size = size_maxmr; > num_kpages = NUM_CHUNKS(((u64)iova_start % PAGE_SIZE) + size_maxmr, > @@ -2209,7 +2209,7 @@ > { > /* a MR is treated as max-MR only if it fits following: */ > if ((size == ehca_mr_len) && > - (iova_start == (void *)ehca_map_vaddr((void *)KERNELBASE))) { > + (iova_start == (void *)ehca_map_vaddr((void *)(KERNELBASE + PHYSICAL_START)))) { > ehca_gen_dbg("this is a max-MR"); > return 1; > } else > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org > https://lists.ozlabs.org/listinfo/linuxppc-dev -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2/2]: Powerpc: Fix EHCA driver on relocatable kernel [not found] ` <20100820041019.GT16505-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> 2010-08-24 4:45 ` Benjamin Herrenschmidt @ 2010-10-06 19:57 ` Roland Dreier 1 sibling, 0 replies; 3+ messages in thread From: Roland Dreier @ 2010-10-06 19:57 UTC (permalink / raw) To: Sonny Rao Cc: linux-ppc-uLR06cmDAlY/bJ5BZ2RsiQ, linux-rdma-u79uwXL29TY76Z2rM5mHXA, rolandd-FYB4Gu1CFyUAvxtiuMwx3w, fenkes-tA70FqPdS9bQT0dZR+AlfA, raisch-tA70FqPdS9bQT0dZR+AlfA, hnguyen-tA70FqPdS9bQT0dZR+AlfA thanks, applied. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-10-06 19:57 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-20 4:10 [PATCH 2/2]: Powerpc: Fix EHCA driver on relocatable kernel Sonny Rao
[not found] ` <20100820041019.GT16505-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2010-08-24 4:45 ` Benjamin Herrenschmidt
2010-10-06 19:57 ` Roland Dreier
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox