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"