あいもかわらず「いつもの」です。今回の場合は実はというと検索をかけるとパッチファイルのテキストそのものが見つかってしまったので紹介し直す意味はほとんど無いのですが毎度毎度やっているので「とりあえず」やっておきます。
パッチコードは?というと
linux-3.15_r8168_8.038.00.patch
*** r8168_n.c.orig 2014-07-28 09:21:19.619201658 +0900 --- r8168_n.c 2014-09-21 09:30:00.000000000 +0900 *************** rtl8168_init_one(struct pci_dev *pdev, *** 17542,17548 **** --- 17542,17552 ---- RTL_NET_DEVICE_OPS(rtl8168_netdev_ops); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,1) + dev->ethtool_ops = &rtl8168_ethtool_ops; + #else SET_ETHTOOL_OPS(dev, &rtl8168_ethtool_ops); + #endif dev->watchdog_timeo = RTL8168_TX_TIMEOUT; dev->irq = pdev->irq; *************** static void rtl8168_schedule_work(struct *** 19119,19125 **** --- 19123,19133 ---- { struct rtl8168_private *tp = netdev_priv(dev); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,1) + INIT_DELAYED_WORK(&tp->task, task); + #else PREPARE_DELAYED_WORK(&tp->task, task); + #endif schedule_delayed_work(&tp->task, 4); } #endif
今回も面倒なので8.038系をベースに作っています。そのため、前回パッチとして書いた部分まで一緒に出てきていますのでその場合は8.038系にある元ファイルからパッチを当てる様にしてください。
今回の変更点はどうもSET_ETHTOOL_OPSという補助処理によって設定していたオプションが構造体にそのまま設定できる様になった、というところでしょうか。周りと見た目があわされているので見やすくなったといえばそれまでなのでしょうが、(検索で出てきたパッチではそうでもないのですが)Kernelのバージョンによって分岐するようになっているのでいらないコードが増えている様にしか見えませんね。やっぱり。