Wiadomość napisana przez Sergey Kandaurov <pluk...@gmail.com> w dniu 24 wrz 
2013, o godz. 14:04:
> On 24 September 2013 15:44, Edward Tomasz Napierała <tr...@freebsd.org> wrote:
>> Wiadomość napisana przez Sergey Kandaurov <pluk...@gmail.com> w dniu 24 wrz 
>> 2013, o godz. 13:00:
>>> On 24 September 2013 14:40, Sergey Kandaurov <pluk...@gmail.com> wrote:
>>>> On 24 September 2013 11:46, Sergey V. Dyatko <sergey.dya...@gmail.com> 
>>>> wrote:
>>>>> Hi,
>>>>> 
>>>>> today I tried to play a bit with new iscsi
>>>>> 
>>>>> r255812 isn't fully complete fix?
>>>>> 
>>>> [...]
>>>>> run  `kldload iscsi_initiator` and got a panic:
>>>> 
>>>> Something like this quick'n'dirty should work.
>>>> Compile tested only.
>>>> 
>>>> Index: sys/dev/iscsi_initiator/iscsi.c
>>>> ===================================================================
>>>> --- sys/dev/iscsi_initiator/iscsi.c    (revision 255841)
>>>> +++ sys/dev/iscsi_initiator/iscsi.c    (working copy)
>>>> @@ -715,7 +715,8 @@
>>>>     TUNABLE_INT_FETCH("net.iscsi_initiator.max_pdus", &max_pdus);
>>>> 
>>>>     isc =  malloc(sizeof(struct isc_softc), M_ISCSI, M_ZERO|M_WAITOK);
>>>> -     isc->dev = make_dev(&iscsi_cdevsw, max_sessions, UID_ROOT,
>>>> GID_WHEEL, 0600, "iscsi");
>>>> +     isc->dev = make_dev_credf(MAKEDEV_CHECKNAME, &iscsi_cdevsw, 
>>>> max_sessions,
>>>> +                               NULL, UID_ROOT, GID_WHEEL, 0600, "iscsi");
>>>>     isc->dev->si_drv1 = isc;
>>>>     mtx_init(&isc->isc_mtx, "iscsi-isc", NULL, MTX_DEF);
>>> 
>>> Erm, of course it shall be checked against failure.
>> 
>> Sure.  What do you think about this:
>> 
>> Index: sys/dev/iscsi_initiator/iscsi.c
>> ===================================================================
>> --- sys/dev/iscsi_initiator/iscsi.c     (revision 255834)
>> +++ sys/dev/iscsi_initiator/iscsi.c     (working copy)
>> @@ -715,8 +715,14 @@ iscsi_start(void)
>>      TUNABLE_INT_FETCH("net.iscsi_initiator.max_pdus", &max_pdus);
>> 
>>      isc =  malloc(sizeof(struct isc_softc), M_ISCSI, M_ZERO|M_WAITOK);
>> -     isc->dev = make_dev(&iscsi_cdevsw, max_sessions, UID_ROOT, GID_WHEEL, 
>> 0600, "iscsi");
>> -     isc->dev->si_drv1 = isc;
>> +     isc->dev = make_dev_credf(MAKEDEV_CHECKNAME, &iscsi_cdevsw, 
>> max_sessions,
>> +         NULL, UID_ROOT, GID_WHEEL, 0600, "iscsi");
>> +     if (isc->dev == NULL) {
>> +         xdebug("iscsi_initiator: make_dev_credf failed");
>> +         // XXX: don't return; otherwise it would panic on unload
>> +     } else {
>> +            isc->dev->si_drv1 = isc;
>> +     }
>>      mtx_init(&isc->isc_mtx, "iscsi-isc", NULL, MTX_DEF);
>> 
>>      TAILQ_INIT(&isc->isc_sess);
>> 
> 
> LGTM, except there is different indentation where for function calls
> each new line aligned with the first function argument.

Committed in a somewhat different form.  I've also realized the new initiator
had a similar bug; could you please test both to make sure everything is right
now?  Thanks!

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to