Страниц: [1]
  Печать  
Автор Тема: Ошибка в e1000 из BSP от 2011-11-24  (Прочитано 4033 раз)
oder
Гость
« : Апреля 19, 2012, 09:08:10 pm »

Мы тут на днях зависон в e1000 из последнего BSP нашли. Благо, он в исходниках шёл.

------------------
diff a/src/hardware/devnp/e1000/event.c b/src/hardware/devnp/e1000/event.c
129a130
>             errors = (uint8_t) (status >> 24);
703d703
<       NW_SIGUNLOCK_P (&ifp->if_snd_ex, iopkt, wtp);
704a705
>       NW_SIGUNLOCK_P (&ifp->if_snd_ex, iopkt, wtp);
diff a/src/hardware/devnp/e1000/transmit.c b/src/hardware/devnp/e1000/transmit.c
747,748c747
<       NW_SIGUNLOCK_P (&ifp->if_snd_ex, iopkt, wtp);
<       return;
---
>       goto unlock_exit;
752,753c751
<       NW_SIGUNLOCK_P (&ifp->if_snd_ex, iopkt, wtp);
<       return;
---
>       goto unlock_exit;
913a912
> unlock_exit:
Common subdirectories: a/src/hardware/devnp/e1000/x86 and b/src/hardware/devnp/e1000/x86
------------------
Записан
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« Ответ #1 : Апреля 20, 2012, 08:52:01 am »

Опция -u к дифу облегчает понимание.

Последнее BSP для x86 датировано 2012-03-22, лежит тут:

http://community.qnx.com/sf/frs/do/viewRelease/projects.bsp/frs.x86_bios.bsp_nto650_x86_bios_trunk?selectedTab=files

Если ошибка всё ещё там, то стоит написать в форум проекта BSP & Drivers.
Записан

oder
Гость
« Ответ #2 : Апреля 20, 2012, 11:07:17 am »

На сапорте её уже приняли. Я здесь для местных выложил, пока обновления BSP нет.
Записан
oder
Гость
« Ответ #3 : Апреля 20, 2012, 01:40:06 pm »

Свежую версию я, вроде, проверял совсем недавно - ещё не было её. Но, всё равно, там ещё не исправлено.
А, вообще, - халявщики они. Даже предупреждение компилятора о неинициализированной переменной не посмотрели за столько времени.
Записан
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« Ответ #4 : Апреля 20, 2012, 04:15:52 pm »

Свежую версию я, вроде, проверял совсем недавно - ещё не было её. Но, всё равно, там ещё не исправлено.
А, вообще, - халявщики они. Даже предупреждение компилятора о неинициализированной переменной не посмотрели за столько времени.
Свежая версия спрятана за вывеской несвежой Smiley

По поводу неинициализированных переменных - меня аж коробит от этого, везде пытаюсь исправить, где вижу, но gcc 4.x часто бывает неправ и вопит про неинициализированную переменную, например, вот в таких местах:

char* a;
extern int some_flag;

if (some_flag)
{
    a=new char[array_size];
}
...
...
...
if (some_flag)
{
    a[0]=0; // тут warning, указатель "a", возможно, неинициализирован.
}

Отчего народ часто не уделяет должного внимания этим предупреждением. У меня есть проект, где таких предупреждений в 6.5 вылезло с две сотни и все они лживые...
« Последнее редактирование: Апреля 20, 2012, 04:17:28 pm от lestat » Записан

oder
Гость
« Ответ #5 : Апреля 20, 2012, 06:48:49 pm »

Свежая версия спрятана за вывеской несвежой Smiley
Нет, ну я уж воробей стреляный! Я и внутри смотрел.

char* a;
extern int some_flag;

if (some_flag)
{
    a=new char[array_size];
}
...
...
...
if (some_flag)
{
    a[0]=0; // тут warning, указатель "a", возможно, неинициализирован.
}

Отчего народ часто не уделяет должного внимания этим предупреждением. У меня есть проект, где таких предупреждений в 6.5 вылезло с две сотни и все они лживые...
Достатточно проинициализировать a нолем при определении и предупреждения уже нет. Не надо одного "xor eax, eax" жмотить
Записан
oder
Гость
« Ответ #6 : Апреля 20, 2012, 06:57:38 pm »

Хотя... Может и не смотрел. Wink
Записан
oder
Гость
« Ответ #7 : Апреля 26, 2012, 09:02:44 pm »

Кстати, procnto в новом BSP уже отсутствует. Типа, кто не успел - тот пролетел?  Wink Huh?
Записан
Страниц: [1]
  Печать  
 
Перейти в: