mlx4: Put physical GID and P_Key table sizes in mlx4_phys_caps struct and paravirtual...
[deliverable/linux.git] / drivers / infiniband / hw / mlx4 / mad.c
index 58c45fb5bd3101ffa97e2ec064d75f01751953ae..c27141fef1ab2f6dca170bb07aecd11ecaa3d48b 100644 (file)
@@ -184,8 +184,10 @@ static void smp_snoop(struct ib_device *ibdev, u8 port_num, struct ib_mad *mad,
                        break;
 
                case IB_SMP_ATTR_GUID_INFO:
-                       mlx4_ib_dispatch_event(dev, port_num,
-                                              IB_EVENT_GID_CHANGE);
+                       /* paravirtualized master's guid is guid 0 -- does not change */
+                       if (!mlx4_is_master(dev->dev))
+                               mlx4_ib_dispatch_event(dev, port_num,
+                                                      IB_EVENT_GID_CHANGE);
                        break;
                default:
                        break;
@@ -487,7 +489,9 @@ void handle_port_mgmt_change_event(struct work_struct *work)
                mlx4_ib_dispatch_event(dev, port, IB_EVENT_PKEY_CHANGE);
                break;
        case MLX4_DEV_PMC_SUBTYPE_GUID_INFO:
-               mlx4_ib_dispatch_event(dev, port, IB_EVENT_GID_CHANGE);
+               /* paravirtualized master's guid is guid 0 -- does not change */
+               if (!mlx4_is_master(dev->dev))
+                       mlx4_ib_dispatch_event(dev, port, IB_EVENT_GID_CHANGE);
                break;
        default:
                pr_warn("Unsupported subtype 0x%x for "
This page took 0.028027 seconds and 5 git commands to generate.