Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git] / drivers / net / via-velocity.h
index f7b33ae..aa2e69b 100644 (file)
@@ -848,7 +848,7 @@ enum  velocity_owner {
  *     Bits in CHIPGCR register
  */
 
-#define CHIPGCR_FCGMII      0x80
+#define CHIPGCR_FCGMII      0x80       /* enable GMII mode */
 #define CHIPGCR_FCFDX       0x40
 #define CHIPGCR_FCRESV      0x20
 #define CHIPGCR_FCMODE      0x10
@@ -1390,7 +1390,8 @@ enum speed_opt {
        SPD_DPX_100_HALF = 1,
        SPD_DPX_100_FULL = 2,
        SPD_DPX_10_HALF = 3,
-       SPD_DPX_10_FULL = 4
+       SPD_DPX_10_FULL = 4,
+       SPD_DPX_1000_FULL = 5
 };
 
 enum velocity_init_type {
@@ -1504,22 +1505,25 @@ struct velocity_info {
  *     addresses on this chain then we use the first - multi-IP WOL is not
  *     supported.
  *
- *     CHECK ME: locking
  */
 
 static inline int velocity_get_ip(struct velocity_info *vptr)
 {
-       struct in_device *in_dev = (struct in_device *) vptr->dev->ip_ptr;
+       struct in_device *in_dev;
        struct in_ifaddr *ifa;
+       int res = -ENOENT;
 
+       rcu_read_lock();
+       in_dev = __in_dev_get_rcu(vptr->dev);
        if (in_dev != NULL) {
                ifa = (struct in_ifaddr *) in_dev->ifa_list;
                if (ifa != NULL) {
                        memcpy(vptr->ip_addr, &ifa->ifa_address, 4);
-                       return 0;
+                       res = 0;
                }
        }
-       return -ENOENT;
+       rcu_read_unlock();
+       return res;
 }
 
 /**