Прислали на проверку патч устраняющий баг, следующего содержания:
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 60f1ce5..8c89f06 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -210,8 +210,18 @@ static int ieee80211_change_mac(struct net_device *dev, void *addr)
return -EBUSY;
ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
- if (ret)
- return ret;
+ if (ret) {
+ struct ieee80211_sub_if_data *tmp;
+ unsigned num_ifcs = 0;
+
+ list_for_each_entry(tmp, &sdata->local->interfaces, list) {
+ num_ifcs++;
+ }
+ if (num_ifcs > 1)
+ return ret;
+
+ SET_IEEE80211_PERM_ADDR(&sdata->local->hw, sa->sa_data);
+ }
ret = eth_mac_addr(dev, sa);
Сохранил, пытаюсь пропатчить:
# patch < iface.c.Kuba.diff
patching file iface.c
Hunk #1 FAILED at 210.
1 out of 1 hunk FAILED -- saving rejects to file iface.c.rej
static int ieee80211_change_mac(struct net_device *dev, void *addr)
{
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct sockaddr *sa = addr;
int ret;
if (ieee80211_sdata_running(sdata))
return -EBUSY;
ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
if (ret)
return ret;
ret = eth_mac_addr(dev, sa);
if (ret == 0)
memcpy(sdata->vif.addr, sa->sa_data, ETH_ALEN);
return ret;
}
Помощь не нужна. Уже внёс изменения вручную, но хотелось бы понять почему не сработало на автомате.
[offtop] Почему-то при предпросмотре, а наверное и после постинга ничего не изменится, не работает подсветка синтаксиса при таком оформлении вышеприведенных листингов: [code=Diff]...[/code], [code=C]...[/code]. В профиле «TeX Paragraphs», в чём ошибка? [/offtop]