Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers/net/ethernet/tile: Replace __get_cpu_var uses for address calculation

Replace with this_cpu_ptr.

Acked-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Tejun Heo <tj@kernel.org>

authored by

Christoph Lameter and committed by
Tejun Heo
70b2776a 27d05167

+13 -13
+9 -9
drivers/net/ethernet/tile/tilegx.c
··· 423 423 /* Provide linux buffers to mPIPE. */ 424 424 static void tile_net_provide_needed_buffers(void) 425 425 { 426 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 426 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 427 427 int instance, kind; 428 428 for (instance = 0; instance < NR_MPIPE_MAX && 429 429 info->mpipe[instance].has_iqueue; instance++) { ··· 585 585 /* Handle a packet. Return true if "processed", false if "filtered". */ 586 586 static bool tile_net_handle_packet(int instance, gxio_mpipe_idesc_t *idesc) 587 587 { 588 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 588 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 589 589 struct mpipe_data *md = &mpipe_data[instance]; 590 590 struct net_device *dev = md->tile_net_devs_for_channel[idesc->channel]; 591 591 uint8_t l2_offset; ··· 651 651 */ 652 652 static int tile_net_poll(struct napi_struct *napi, int budget) 653 653 { 654 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 654 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 655 655 unsigned int work = 0; 656 656 gxio_mpipe_idesc_t *idesc; 657 657 int instance, i, n; ··· 700 700 /* Handle an ingress interrupt from an instance on the current cpu. */ 701 701 static irqreturn_t tile_net_handle_ingress_irq(int irq, void *id) 702 702 { 703 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 703 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 704 704 napi_schedule(&info->mpipe[(uint64_t)id].napi); 705 705 return IRQ_HANDLED; 706 706 } ··· 763 763 /* Make sure the egress timer is scheduled. */ 764 764 static void tile_net_schedule_egress_timer(void) 765 765 { 766 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 766 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 767 767 768 768 if (!info->egress_timer_scheduled) { 769 769 hrtimer_start(&info->egress_timer, ··· 780 780 */ 781 781 static enum hrtimer_restart tile_net_handle_egress_timer(struct hrtimer *t) 782 782 { 783 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 783 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 784 784 unsigned long irqflags; 785 785 bool pending = false; 786 786 int i, instance; ··· 1996 1996 /* Help the kernel transmit a packet. */ 1997 1997 static int tile_net_tx(struct sk_buff *skb, struct net_device *dev) 1998 1998 { 1999 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 1999 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 2000 2000 struct tile_net_priv *priv = netdev_priv(dev); 2001 2001 int instance = priv->instance; 2002 2002 struct mpipe_data *md = &mpipe_data[instance]; ··· 2138 2138 static void tile_net_netpoll(struct net_device *dev) 2139 2139 { 2140 2140 int instance = mpipe_instance(dev); 2141 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 2141 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 2142 2142 struct mpipe_data *md = &mpipe_data[instance]; 2143 2143 2144 2144 disable_percpu_irq(md->ingress_irq); ··· 2237 2237 /* Per-cpu module initialization. */ 2238 2238 static void tile_net_init_module_percpu(void *unused) 2239 2239 { 2240 - struct tile_net_info *info = &__get_cpu_var(per_cpu_info); 2240 + struct tile_net_info *info = this_cpu_ptr(&per_cpu_info); 2241 2241 int my_cpu = smp_processor_id(); 2242 2242 int instance; 2243 2243
+4 -4
drivers/net/ethernet/tile/tilepro.c
··· 996 996 PDEBUG("tile_net_register(queue_id %d)\n", queue_id); 997 997 998 998 if (!strcmp(dev->name, "xgbe0")) 999 - info = &__get_cpu_var(hv_xgbe0); 999 + info = this_cpu_ptr(&hv_xgbe0); 1000 1000 else if (!strcmp(dev->name, "xgbe1")) 1001 - info = &__get_cpu_var(hv_xgbe1); 1001 + info = this_cpu_ptr(&hv_xgbe1); 1002 1002 else if (!strcmp(dev->name, "gbe0")) 1003 - info = &__get_cpu_var(hv_gbe0); 1003 + info = this_cpu_ptr(&hv_gbe0); 1004 1004 else if (!strcmp(dev->name, "gbe1")) 1005 - info = &__get_cpu_var(hv_gbe1); 1005 + info = this_cpu_ptr(&hv_gbe1); 1006 1006 else 1007 1007 BUG(); 1008 1008