|
@@ -423,7 +423,7 @@ static void tile_net_pop_all_buffers(int instance, int stack)
|
|
|
/* Provide linux buffers to mPIPE. */
|
|
|
static void tile_net_provide_needed_buffers(void)
|
|
|
{
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
int instance, kind;
|
|
|
for (instance = 0; instance < NR_MPIPE_MAX &&
|
|
|
info->mpipe[instance].has_iqueue; instance++) {
|
|
@@ -585,7 +585,7 @@ static void tile_net_receive_skb(struct net_device *dev, struct sk_buff *skb,
|
|
|
/* Handle a packet. Return true if "processed", false if "filtered". */
|
|
|
static bool tile_net_handle_packet(int instance, gxio_mpipe_idesc_t *idesc)
|
|
|
{
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
struct mpipe_data *md = &mpipe_data[instance];
|
|
|
struct net_device *dev = md->tile_net_devs_for_channel[idesc->channel];
|
|
|
uint8_t l2_offset;
|
|
@@ -651,7 +651,7 @@ drop:
|
|
|
*/
|
|
|
static int tile_net_poll(struct napi_struct *napi, int budget)
|
|
|
{
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
unsigned int work = 0;
|
|
|
gxio_mpipe_idesc_t *idesc;
|
|
|
int instance, i, n;
|
|
@@ -700,7 +700,7 @@ done:
|
|
|
/* Handle an ingress interrupt from an instance on the current cpu. */
|
|
|
static irqreturn_t tile_net_handle_ingress_irq(int irq, void *id)
|
|
|
{
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
napi_schedule(&info->mpipe[(uint64_t)id].napi);
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
@@ -763,7 +763,7 @@ static enum hrtimer_restart tile_net_handle_tx_wake_timer(struct hrtimer *t)
|
|
|
/* Make sure the egress timer is scheduled. */
|
|
|
static void tile_net_schedule_egress_timer(void)
|
|
|
{
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
|
|
|
if (!info->egress_timer_scheduled) {
|
|
|
hrtimer_start(&info->egress_timer,
|
|
@@ -780,7 +780,7 @@ static void tile_net_schedule_egress_timer(void)
|
|
|
*/
|
|
|
static enum hrtimer_restart tile_net_handle_egress_timer(struct hrtimer *t)
|
|
|
{
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
unsigned long irqflags;
|
|
|
bool pending = false;
|
|
|
int i, instance;
|
|
@@ -1996,7 +1996,7 @@ static unsigned int tile_net_tx_frags(struct frag *frags,
|
|
|
/* Help the kernel transmit a packet. */
|
|
|
static int tile_net_tx(struct sk_buff *skb, struct net_device *dev)
|
|
|
{
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
struct tile_net_priv *priv = netdev_priv(dev);
|
|
|
int instance = priv->instance;
|
|
|
struct mpipe_data *md = &mpipe_data[instance];
|
|
@@ -2138,7 +2138,7 @@ static int tile_net_set_mac_address(struct net_device *dev, void *p)
|
|
|
static void tile_net_netpoll(struct net_device *dev)
|
|
|
{
|
|
|
int instance = mpipe_instance(dev);
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
struct mpipe_data *md = &mpipe_data[instance];
|
|
|
|
|
|
disable_percpu_irq(md->ingress_irq);
|
|
@@ -2237,7 +2237,7 @@ static void tile_net_dev_init(const char *name, const uint8_t *mac)
|
|
|
/* Per-cpu module initialization. */
|
|
|
static void tile_net_init_module_percpu(void *unused)
|
|
|
{
|
|
|
- struct tile_net_info *info = &__get_cpu_var(per_cpu_info);
|
|
|
+ struct tile_net_info *info = this_cpu_ptr(&per_cpu_info);
|
|
|
int my_cpu = smp_processor_id();
|
|
|
int instance;
|
|
|
|