Home » International » Russian » поддержка UDEV
поддержка UDEV [message #5812] |
Thu, 31 August 2006 10:09 |
kn1ght
Messages: 17 Registered: May 2006 Location: Piter
|
Junior Member |
|
|
А будет ли поддрержка UDEV ?
а то при активации udev в /dev/ отсутсвует почти все...
|
|
|
|
|
Re: поддержка UDEV [message #5828 is a reply to message #5826] |
Fri, 01 September 2006 05:16 |
dev
Messages: 1693 Registered: September 2005 Location: Moscow
|
Senior Member |
|
|
Quote: | Уважаемый OpenVZ team слишком за виртуализировался и забыл что sysfs надо включать не только для дистрибутивов suse, а для любого который расчитан на 2.6 ядра. (проще уж добавить опцию в конфиг - чем шаманить с именем шаблона/дистрибутива в vzctl).
|
1. Все нормальные дистрибутивы прекрасно работают и без sysfs/udev. Во многих из них, можно даже настраивать как работать.
2. sysfs был сделан опцией, т.к. на ядрах 2.6.x до какого-то момента файловая система sysfs работала так, что dentries/inodes были unreclaimable. Из-за этого sysfs даже в том виде какой он есть у нас занимал >0.5-1Mb/VE. Полный sysfs занимал бы еще в разы больше. В 2.6.16+ (по идее) его теперь можно просто всегда включать.
3. насчет конфига - правильное замечание, это просто где-то потерялось по пути в OpenVZ.
http://bugzilla.openvz.org/show_bug.cgi?id=242
Quote: | Кроме того неплохо бы иметь в sysfs не только class/network с данными по интерфейсам, но еще и class/tty/ptmx. Без этого не создается /dev/ptmx и не работает console multeplexer.
Патч исправляющий это досадное недоразумение приатачен.
|
Огромное спасибо за патч и за то, что помогаете не только словом, но и делом
http://bugzilla.openvz.org/show_bug.cgi?id=243
Quote: |
PS. недавно получилось воспроизвести забавную атаку на OpenVZ. vzctl enter перевел процес в контекст VPS но при этом консоль открылась на хосте. Деталей толком нету - все что известно, это происходит при выходе за какой-то из лимитов скорее всего file limit или proc limit.
|
будем исследовать. Как Вы определили что консоль открылась на хосте? /proc/user_beancounters Вы не смотрели?
http://bugzilla.openvz.org/show_bug.cgi?id=244
|
|
|
|
|
Re: поддержка UDEV [message #5838 is a reply to message #5837] |
Fri, 01 September 2006 10:04 |
Umka
Messages: 56 Registered: September 2006
|
Member |
|
|
[quote]
dev wrote on Fri, 01 September 2006 05:27 |
Quote: |
это было в районе 2.6.3 или где-то типа того. патч под 2.6.8 (stable) и там насколько помню этого нету. Даже если бы и было - минимальное дерево не сожрет много места в памяти. И будет убито при unmount.
|
нет, как раз в 2.6.8 каждая sysfs отнимает по пол метра.
я понимаю, что Вам скорее всего это не критично, а для клиентов которые запускают по 100+ VE, это уже >50-100Mb, т.е. порядка 10% normal zone на i386.
|
по моим наблюдениям тем кому надо 100+ VE ставят миниум 2xPIV 4G, а то и x86_64/4G. Кроме того можно просто бэкпорт нужной фичи в stable. вы многое другое бэкпортите - так почему бы не это?
Quote: |
Quote: |
2) При привышении количества процессов и попытке сделать enter - возвращается:
# vzctl enter 4
Unable to fork: Cannot allocate memory
вместо Too many processes.
|
Такой ошибки не бывает. Есть ENOMEM и ядро еще возвращает EAGAIN (Try again) в случае rlimit'ов.
P.S. такая ошибка есть на SPARC'е...
#define EPROCLIM 67 /* SUNOS: Too many processes */
|
Есть еще и в FreeBSD - с которой я вобщем-то и спутал.
Quote: |
Quote: |
3) в какой-то момент получилась ситуация с 2 раза смотрироваными директориями
none /vz/root/4/dev tmpfs rw 0 0
none /vz/root/4/dev/pts devpts rw 0 0
none /vz/root/4/dev tmpfs rw 0 0
none /vz/root/4/dev/pts devpts rw 0 0
Похоже в отличии от FreeVPS вы не делается force umount для всего VPS mount tree. Собственно OpenVZ не знает что такое disknamespace поэтому возможны такие приколы.
|
disk namespace не используется, т.к. иначе проблематично осуществить доступ к файлам VE из VE0.
На VE stop все должно отмонтироваться... vzctl делает это в цикле пока есть маунты...
|
вот воспроизведение - box 2xPIIIs ядро stable с моим патчем.
# ssh rhel4
Last login: Fri Sep 1 07:56:17 2006 from berloga.shadowland
[root@rhel4 ~]# vzctl mount 4
VPS is mounted
[root@rhel4 ~]# vzctl start 4
Warning: distribution not specified default used /etc/vz/dists/default
Starting VPS ...
VPS is unmounted
VPS is mounted
Setting CPU limit: 0
Setting CPU units: 1000
Set hostname: vps134
VPS start in progress...
[root@rhel4 ~]# cat /proc/mounts
/dev/root / ext3 rw 0 0
none /dev tmpfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
/sys /sys sysfs rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
/dev/hda3 /vservers ext3 rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/vservers/vps134 /vz/root/4 simfs ro 0 0
/proc /vz/root/4/proc proc rw,nodiratime 0 0
/sys /vz/root/4/sys sysfs rw 0 0
none /vz/root/4/dev tmpfs rw 0 0
none /vz/root/4/dev/pts devpts rw 0 0
[root@rhel4 ~]# vzctl restart 4
Restarting VPS
Stopping VPS ...
VPS was stopped
VPS is unmounted
Warning: distribution not specified default used /etc/vz/dists/default
Starting VPS ...
VPS is mounted
Setting CPU limit: 0
Setting CPU units: 1000
Set hostname: vps134
VPS start in progress...
[root@rhel4 ~]# cat /proc/mounts
/dev/root / ext3 rw 0 0
none /dev tmpfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
/sys /sys sysfs rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
/dev/hda3 /vservers ext3 rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/vservers/vps134 /vz/root/4 simfs rw 0 0
/proc /vz/root/4/proc proc rw,nodiratime 0 0
/sys /vz/root/4/sys sysfs rw 0 0
none /vz/root/4/dev tmpfs rw 0 0
none /vz/root/4/dev/pts devpts rw 0 0
[root@rhel4 ~]# cat /proc/mounts
/dev/root / ext3 rw 0 0
none /dev tmpfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
/sys /sys sysfs rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
/dev/hda3 /vservers ext3 rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/vservers/vps134 /vz/root/4 simfs ro 0 0
/proc /vz/root/4/proc proc rw,nodiratime 0 0
/sys /vz/root/4/sys sysfs rw 0 0
none /vz/root/4/dev tmpfs rw 0 0
none /vz/root/4/dev/pts devpts rw 0 0
[root@rhel4 ~]# vzctl restart 4
Restarting VPS
Stopping VPS ...
VPS was stopped
VPS is unmounted
Warning: distribution not specified default used /etc/vz/dists/default
Starting VPS ...
VPS is mounted
Setting CPU limit: 0
Setting CPU units: 1000
Set hostname: vps134
VPS start in progress...
[root@rhel4 ~]# cat /proc/mounts
/dev/root / ext3 rw 0 0
none /dev tmpfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
/sys /sys sysfs rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
/dev/hda3 /vservers ext3 rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/vservers/vps134 /vz/root/4 simfs rw 0 0
/proc /vz/root/4/proc proc rw,nodiratime 0 0
/sys /vz/root/4/sys sysfs rw 0 0
none /vz/root/4/dev tmpfs rw 0 0
none /vz/root/4/dev/pts devpts rw 0 0
none /vz/root/4/dev tmpfs rw 0 0
none /vz/root/4/dev/pts devpts rw 0 0
[root@rhel4 ~]#
|
|
|
|
Re: поддержка UDEV [message #5841 is a reply to message #5840] |
Fri, 01 September 2006 10:33 |
dev
Messages: 1693 Registered: September 2005 Location: Moscow
|
Senior Member |
|
|
если говорить о security, то:
1. disk namespace не улучшает security. host'овый root ВСЕГДА видит всю память, разделы, имеет прямой доступ к железу и может например читать disk partition. Надеюсь не надо объяснять, что человек, которому _НАДО_ владея всеми этими правами все равно получит доступ к файлам. И, в конце концов, наличие vzctl enter также позволяет УВИДЕТЬ ВСЕ что надо с еще меньшими усилиями.
Quote: |
иначе OpenVZ не позволяет хранить конфиденциальные данные
|
Ни одна софтварная технология виртуализации не позволяет хранить конфидециальные данные, которые тем или иным образом не мог бы считать админ машины.
Разница только в требуемых усилиях.
Каковы Ваши предложения? Сделать просто чтобы по умолчанию доступа не было?
2. Обычно когда думают о безопасности не дают VE0 глобальные IP адреса и настраивают как положено доступ, также не запускают в VE0 apache c php, telnet и т.д. Опять же, OpenVZ в данном плане не исключение. Об этом нужно помнить и думать при использовании любой технологии виртуализации.
Могу я поинтересоваться чем Вам так насолила OpenVZ и откуда такая неприязнь? По крайней мере, у меня возникло такое ощущение...
|
|
|
|
|
|
Re: поддержка UDEV [message #5847 is a reply to message #5846] |
Fri, 01 September 2006 12:59 |
dev
Messages: 1693 Registered: September 2005 Location: Moscow
|
Senior Member |
|
|
Quote: |
Thanks. жалко что это нигде не документировано - или я плохо искал?
|
это действительно не документировано. Я думал написать на wiki страничку про security, про соображения насчет VE0 и т.д. но пока руки не доходят :/
Quote: |
Эато нет возможности опреть состояние без парсинга строки ответа.
гораздо логичнее - для такой команды как status вовзращать с кодом возврата текущее состояние VPS, и обработать в скрипте проще и не надо привязываться к текстовым строкам.
Я не прав?
|
И правы, и нет. парсить в скриптах возможно и проще. Хотя, не сказать что существенно.
А вот проблема возникает. Например,
сейчас множество состояний и соответственно кодов это {exist,destroyed}x{mounted,unmounted}x{running,stopped}. Итого, 8 комбинаций. И вот скоро например мы хотим расширить состояния:
{running,stopped,suspended} и {exist,destroyed,migrating}.
Соответственно количество состояний, во-первых, увеличивается в 4 раза, во-вторых, нужно ходить править скрипты и разбираться что имел ввиду автор.
С другой стороны, наверное, все комбинации не бывают и достаточно репортить состояния:
NOT_EXIST STOPPED MOUNTED RUNNING
плюс 1 бит на ошибки.
|
|
|
|
Re: поддержка UDEV [message #5851 is a reply to message #5847] |
Fri, 01 September 2006 14:08 |
Umka
Messages: 56 Registered: September 2006
|
Member |
|
|
Quote: |
И правы, и нет. парсить в скриптах возможно и проще. Хотя, не сказать что существенно.
А вот проблема возникает. Например,
сейчас множество состояний и соответственно кодов это {exist,destroyed}x{mounted,unmounted}x{running,stopped}. Итого, 8 комбинаций. И вот скоро например мы хотим расширить состояния:
{running,stopped,suspended} и {exist,destroyed,migrating}.
Соответственно количество состояний, во-первых, увеличивается в 4 раза, во-вторых, нужно ходить править скрипты и разбираться что имел ввиду автор.
С другой стороны, наверное, все комбинации не бывают и достаточно репортить состояния:
NOT_EXIST STOPPED MOUNTED RUNNING
плюс 1 бит на ошибки.
|
exit(2) возвращает в userland помоему 8 бит.
C учетом планируемых состояний я бы сказал что нужны
группы
EXIST/NO_EXIST
mounted/unmounted
{running,stopped,suspended,migrating}
и того 4 бита в ответе
(3 бита резерв)
крайний бит - флаг ошибки. младшие биты в этом случае код ошибки.
определение ошибки будет элементарным
if( $rc > 127 ) $error = 256 - $rc.
попробую сделать патчик :-\
[Updated on: Fri, 01 September 2006 14:10] Report message to a moderator
|
|
|
|
|
|
|
|
Re: поддержка UDEV [message #5865 is a reply to message #5836] |
Sat, 02 September 2006 09:18 |
Vasily Tarasov
Messages: 1345 Registered: January 2006
|
Senior Member |
|
|
Quote: | UMKA: PS. недавно получилось воспроизвести забавную атаку на OpenVZ. vzctl enter перевел процес в контекст VPS но при этом консоль открылась на хосте. Деталей толком нету - все что известно, это происходит при выходе за какой-то из лимитов скорее всего file limit или proc limit.
DEV: будем исследовать. Как Вы определили что консоль открылась на хосте? /proc/user_beancounters Вы не смотрели?
http://bugzilla.openvz.org/show_bug.cgi?id=244
UMKA: по тому что promt не поменялся. и я как был в /etc/sysconfig на host - так и остался. при этом ps ax показывал процессы VPS.
к сожалению я поздно спохватился и логов не сохранил. Но это была попытка запустить с Virtozzo unlimited.conf - VPS внутри которого RHEL4 с java. явно не хватало и процессов и файлов - но что именно позволило такому событию быть - не скажу.
|
Добрый день,
К сожалению, мнем не удалось воспроизвести ситуацию, о которой вы говорите. Во-первых, пробовал входить в VE так, чтобы в процессе его выполнения превышались лимиты количества процессов и количества открытых файлов. Далее анализировал код vzctl. Судя по описанию, т.к. вы находитесь в той же директории - значит не сработал chroot, но при этом сменился environment. По коду:
if ((ret = vz_chroot(root)))
goto err;
ret = vz_env_create_ioctl(h, veid, VE_ENTER);
if (ret < 0) {
if (errno == ESRCH)
ret = VZ_VE_NOT_RUNNING;
else
ret = VZ_ENVCREATE_ERROR;
goto err;
}
Значит смена environment могла произойти только (!) если удачно прошёл chroot...
Может быть chroot проходил не туда (что-то вроде /)? Проверено такие ситуации обрабатываются и enter проваливается.
Закрываю баг как инвалид, но если вам удастся его воспроизвести переоткройте его, пожалуйста.
С полным описанием как воспроизвести.
Спасибо!
|
|
|
|
Re: поддержка UDEV [message #6390 is a reply to message #5826] |
Fri, 15 September 2006 09:54 |
dev
Messages: 1693 Registered: September 2005 Location: Moscow
|
Senior Member |
|
|
Патч не полный, иногда oops'ится:
Quote: |
Sep 14 20:58:17 titan3 VPS: 111: stopped
Sep 14 20:58:19 titan3 Unable to handle kernel paging request at virtual address 6b6b6b6b6b6b6b6b
Sep 14 20:58:19 titan3 vzmond/112[29586]: Oops 8813272891392 [1]
Sep 14 20:58:19 titan3 Modules linked in: ip_vzredir vzredir vzcompat vzfs vzevent vzlist vznet vzstat ip_vznetstat vznetstat vzmon ipt_length ipt_ttl ipt_tcpmss ipt_TCPMSS iptable_mangle iptable_filter ipt_multiport ipt_limit ipt_tos ipt_REJECT ip_tables vzdquota vzdev af_packet nls_iso8859_1 nls_cp437 vfat fat thermal processor fan button uhci_hcd ehci_hcd shpchp e1000
Sep 14 20:58:19 titan3 Pid: 29586, CPU 4, comm: vzmond/112
Sep 14 20:58:19 titan3 psr : 0000101008126010 ifs : 8000000000000612 ip : [<a0000001002d3e60>] Tainted: P
Sep 14 20:58:19 titan3 ip is at kobject_hotplug+0x100/0x540
Sep 14 20:58:19 titan3 unat: 0000000000000000 pfs : 0000000000000206 rsc : 0000000000000003
Sep 14 20:58:19 titan3 rnat: 0000000000000000 bsps: 0000000000000000 pr : 0000000000069695
Sep 14 20:58:19 titan3 ldrs: 0000000000000000 ccv : 00000000ffff0001 fpsr: 0009804c8a70033f
Sep 14 20:58:19 titan3 csd : 0000000000000000 ssd : 0000000000000000
Sep 14 20:58:19 titan3 b0 : a0000001002d4a10 b6 : a0000001001c2f60 b7 : a0000001001435a0
Sep 14 20:58:19 titan3 f6 : 1003e6b6b6b6b6b6b6b6b f7 : 1003e000000000000000a
Sep 14 20:58:19 titan3 f8 : 1003e0000000000000418 f9 : 100098300000000000000
Sep 14 20:58:19 titan3 f10 : 100029ffffffff3e62c19 f11 : 1003e000000000000000a
Sep 14 20:58:19 titan3 r1 : a000000100db8020 r2 : e00000005ae701a8 r3 : e00000005ae70000
Sep 14 20:58:19 titan3 r8 : e00000014a2c8ce0 r9 : 0000000000100100 r10 : a000000100b3ce90
Sep 14 20:58:19 titan3 r11 : 00000000ffff0001 r12 : e00000014a2cfdf0 r13 : e00000014a2c8000
Sep 14 20:58:19 titan3 r14 : 6b6b6b6b6b6b6b6b r15 : e0000001ffd327d0 r16 : e0000001ffd32790
Sep 14 20:58:19 titan3 r17 : e0000001fff268f8 r18 : e0000001fff26908 r19 : 00000000ffff0001
Sep 14 20:58:19 titan3 r20 : e0000002fffa1f88 r21 : e0000001fff26860 r22 : a000000100bc61a0
Sep 14 20:58:19 titan3 r23 : 0000000000000007 r24 : e00000028326ee40 r25 : 00000000170fc2a5
Sep 14 20:58:19 titan3 r26 : 0000000000000000 r27 : 0000000000000000 r28 : e00000028326ee40
Sep 14 20:58:19 titan3 r29 : e00000028326ee58 r30 : 0000000000000000 r31 : a000000100bd8df0
Sep 14 20:58:19 titan3 Call Trace:
Sep 14 20:58:19 titan3 [<a000000100017380>] show_stack+0x80/0xa0
Sep 14 20:58:19 titan3
Sep 14 20:58:19 titan3 sp=e00000014a2cf980 bsp=e00000014a2c90e8
Sep 14 20:58:19 titan3 [<a000000100017c90>] show_regs+0x890/0x8c0
Sep 14 20:58:20 titan3 sp=e00000014a2cfb50 bsp=e00000014a2c90a0
Sep 14 20:58:20 titan3 [<a000000100027370>] die+0x150/0x240
Sep 14 20:58:20 titan3
Sep 14 20:58:20 titan3 sp=e00000014a2cfb70 bsp=e00000014a2c9060
Sep 14 20:58:20 titan3 [<a00000010004c460>] ia64_do_page_fault+0xb00/0xc40
Sep 14 20:58:20 titan3 sp=e00000014a2cfb70 bsp=e00000014a2c8fe0
Sep 14 20:58:20 titan3 [<a00000010000fc20>] ia64_leave_kernel+0x0/0x260
Sep 14 20:58:20 titan3 sp=e00000014a2cfc20 bsp=e00000014a2c8fe0
Sep 14 20:58:20 titan3 [<a0000001002d3e60>] kobject_hotplug+0x100/0x540
Sep 14 20:58:20 titan3 sp=e00000014a2cfdf0 bsp=e00000014a2c8f50
Sep 14 20:58:20 titan3 [<a0000001002d4a10>] kobject_del+0x30/0x80
Sep 14 20:58:20 titan3 sp=e00000014a2cfe10 bsp=e00000014a2c8f30
Sep 14 20:58:20 titan3 [<a0000001003bc3d0>] class_device_del+0x2f0/0x380
Sep 14 20:58:20 titan3 sp=e00000014a2cfe10 bsp=e00000014a2c8ee0
Sep 14 20:58:20 titan3 [<a0000001003bc480>] class_device_unregister+0x20/0x60
Sep 14 20:58:20 titan3
Sep 14 20:58:20 titan3 sp=e00000014a2cfe10 bsp=e00000014a2c8ec0
Sep 14 20:58:20 titan3 [<a0000001003bd550>] class_simple_device_remove+0x150/0x180
Sep 14 20:58:20 titan3 sp=e00000014a2cfe10 bsp=e00000014a2c8e98
Sep 14 20:58:20 titan3 [<a000000100362350>] fini_ve_tty_class+0x30/0x60
Sep 14 20:58:20 titan3 sp=e00000014a2cfe10 bsp=e00000014a2c8e78
Sep 14 20:58:20 titan3 [<a000000200483540>] fini_ve_sysfs+0x40/0x160 [vzmon]
Sep 14 20:58:20 titan3 sp=e00000014a2cfe10 bsp=e00000014a2c8e30
Sep 14 20:58:20 titan3 [<a00000020048b1c0>] env_cleanup+0x440/0xce0 [vzmon]
Sep 14 20:58:20 titan3 sp=e00000014a2cfe10 bsp=e00000014a2c8dd8
Sep 14 20:58:20 titan3 [<a00000020048c000>] vzmond_helper+0x60/0xa0 [vzmon]
Sep 14 20:58:20 titan3 sp=e00000014a2cfe10 bsp=e00000014a2c8db8
Sep 14 20:58:20 titan3
Sep 14 20:58:20 titan3 [<a000000100019450>] kernel_thread_helper+0xd0/0x100
Sep 14 20:58:20 titan3 sp=e00000014a2cfe30 bsp=e00000014a2c8d90
Sep 14 20:58:20 titan3 [<a000000100009060>] start_kernel_thread+0x20/0x40
Sep 14 20:58:20 titan3 sp=e00000014a2cfe30 bsp=e00000014a2c8d90
Sep 14 20:58:20 titan3 Kernel panic - not syncing: Fatal exception
|
требуется еще виртуализация simple_dev_list:
--- ./drivers/base/class_simple.c.simple 2006-08-23 11:10:16.000000000 +0400
+++ ./drivers/base/class_simple.c 2006-09-15 13:21:11.000000000 +0400
@@ -26,7 +26,11 @@ struct simple_dev {
};
#define to_simple_dev(d) container_of(d, struct simple_dev, class_dev)
+#ifdef CONFIG_VE
+#define simple_dev_list (get_exec_env()->_simple_dev_list)
+#else
static LIST_HEAD(simple_dev_list);
+#endif
static spinlock_t simple_dev_list_lock = SPIN_LOCK_UNLOCKED;
static void release_simple_dev(struct class_device *class_dev)
--- ./include/linux/ve.h.simple 2006-09-15 11:52:53.000000000 +0400
+++ ./include/linux/ve.h 2006-09-15 13:13:25.000000000 +0400
@@ -194,6 +194,7 @@ struct ve_struct {
#endif
struct subsystem *class_subsys;
struct subsystem *class_obj_subsys;
+ struct list_head _simple_dev_list;
struct class *net_class;
struct class_simple *tty_class;
--- ./kernel/vecalls.c.simple 2006-09-15 11:52:53.000000000 +0400
+++ ./kernel/vecalls.c 2006-09-15 13:17:28.000000000 +0400
@@ -1348,6 +1348,7 @@ static int init_ve_struct(struct ve_stru
ve->init_entry = init_tsk;
ve->features = data->feature_mask;
INIT_LIST_HEAD(&ve->vetask_lh);
+ INIT_LIST_HEAD(&ve->_simple_dev_list);
init_rwsem(&ve->op_sem);
ve->ifindex = -1;
--- ./kernel/ve.c.simple 2006-09-15 11:52:53.000000000 +0400
+++ ./kernel/ve.c 2006-09-15 13:21:05.000000000 +0400
@@ -186,6 +186,7 @@ struct ve_struct ve0 = {
._sysctl_local_port_range = { 1024, 4999 },
._tcp_port_rover = 1024 - 1,
#endif
+ ._simple_dev_list = LIST_HEAD_INIT(ve0._simple_dev_list),
};
EXPORT_SYMBOL(ve0);
[Updated on: Fri, 15 September 2006 09:55] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Sun Sep 15 03:35:10 GMT 2024
Total time taken to generate the page: 0.03623 seconds
|