# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Node ID d3427ce2d019077d34cc05be318be101122f49df # Parent bce6df7ec0284fc860df5f17f8136c8039dbe261 Work around for vnif support of xen/ia64 with dom0 vp model. This is a temporal work around until figuring out how to place a new page after grant table page transfer. PATCHNAME: netback_work_around_for_xen_ia64 Signed-off-by: Isaku Yamahata diff -r bce6df7ec028 -r d3427ce2d019 linux-2.6-xen-sparse/drivers/xen/netback/netback.c --- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c Fri Apr 28 11:10:23 2006 +0900 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c Fri Apr 28 11:10:24 2006 +0900 @@ -101,6 +101,7 @@ static unsigned int alloc_index = 0; static unsigned int alloc_index = 0; static spinlock_t mfn_lock = SPIN_LOCK_UNLOCKED; +#ifndef __ia64__ static unsigned long alloc_mfn(void) { unsigned long mfn = 0, flags; @@ -119,6 +120,7 @@ static unsigned long alloc_mfn(void) spin_unlock_irqrestore(&mfn_lock, flags); return mfn; } +#endif static inline void maybe_schedule_tx_action(void) { @@ -234,6 +236,7 @@ static void net_rx_action(unsigned long netif = netdev_priv(skb->dev); vdata = (unsigned long)skb->data; old_mfn = virt_to_mfn(vdata); +#ifndef __ia64__ /* Memory squeeze? Back off for an arbitrary while. */ if ((new_mfn = alloc_mfn()) == 0) { @@ -243,6 +246,7 @@ static void net_rx_action(unsigned long skb_queue_head(&rx_queue, skb); break; } +#endif /* * Set the new P2M table entry before reassigning the old data * page. Heed the comment in pgtable-2level.h:pte_page(). :-) @@ -288,8 +292,10 @@ static void net_rx_action(unsigned long mcl++; } +#ifndef __ia64__ ret = HYPERVISOR_multicall(rx_mcl, mcl - rx_mcl); BUG_ON(ret != 0); +#endif ret = HYPERVISOR_grant_table_op(GNTTABOP_transfer, grant_rx_op, gop - grant_rx_op);