Thanks, I applied this to branch-1.[456].  1.7 and later switched
module names so this doesn't really apply there.

On Mon, Aug 06, 2012 at 03:40:59PM -0700, Justin Pettit wrote:
> Looks good to me.
> 
> --Justin
> 
> 
> On Aug 6, 2012, at 1:22 PM, Ben Pfaff <b...@nicira.com> wrote:
> 
> > Good idea. Like this?
> > 
> > diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
> > index 03150a8..41edb93 100755
> > --- a/utilities/ovs-ctl.in
> > +++ b/utilities/ovs-ctl.in
> > @@ -49,6 +49,11 @@ insert_openvswitch_mod_if_required () {
> >         return 0
> >     fi
> > 
> > +    if (modprobe --dry-run openvswitch_mod && \
> > +        modprobe --dry-run openvswitch) 2>/dev/null; then
> > +        log_warning_msg "openvswitch_mod.ko and openvswitch.ko modules are 
> > both available.  openvswitch_mod.ko will be preferred."
> > +    fi
> > +
> >     # Load openvswitch_mod.  If that's successful then we're done.
> >     action "Inserting openvswitch module" do_modprobe openvswitch && return > > 0
> > 
> > On Mon, Aug 06, 2012 at 11:21:22AM -0700, Justin Pettit wrote:
> >> Looks reasonable to me.  I worry a bit about preferring "_mod" over
> >> the newer convention, but I can't think of a better way to infer the
> >> user's intention.  If they've gone through the trouble of building
> >> OVS from scratch, it's probably reasonable to think they should be
> >> able to diagnose this themselves.  I suppose one thing we could do
> >> is check for the presence of both with "modprobe --dryrun" and print
> >> a warning if both exist.
> >> 
> >> --Justin
> >> 
> >> 
> >> On Aug 6, 2012, at 10:16 AM, Ben Pfaff <b...@nicira.com> wrote:
> >> 
> >>> Open vSwitch 1.4 and later is compatible with the upstream Linux kernel
> >>> module but the init scripts hadn't been adapted to work with the upstream
> >>> module name.
> >>> 
> >>> Debian bug #684057.
> >>> Signed-off-by: Ben Pfaff <b...@nicira.com>
> >>> ---
> >>> utilities/ovs-ctl.in |   36 ++++++++++++++++++++++++++----------
> >>> 1 files changed, 26 insertions(+), 10 deletions(-)
> >>> 
> >>> diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
> >>> index 527bd60..03150a8 100755
> >>> --- a/utilities/ovs-ctl.in
> >>> +++ b/utilities/ovs-ctl.in
> >>> @@ -30,12 +30,27 @@ done
> >>> ## start ##
> >>> ## ----- ##
> >>> 
> >>> +do_modprobe () {
> >>> +    # First try the name suffixed with _mod, because this is the
> >>> +    # original name used for the out-of-tree kernel module.  If the
> >>> +    # user has a module by that name, then it means that he went to
> >>> +    # some trouble to build it, so presumably he wants to use it.
> >>> +    #
> >>> +    # Then try the name without the _mod suffix, the upstream Linux
> >>> +    # kernel module name and the name used by later versions of Open
> >>> +    # vSwitch.
> >>> +    modprobe ${1}_mod || modprobe $1
> >>> +} 2>/dev/null
> >>> +
> >>> insert_openvswitch_mod_if_required () {
> >>>    # If openvswitch_mod is already loaded then we're done.
> >>> -    test -e /sys/module/openvswitch_mod && return 0
> >>> +    if test -e /sys/module/openvswitch_mod || test -e 
> >>> /sys/module/openvswitch
> >>> +    then
> >>> +        return 0
> >>> +    fi
> >>> 
> >>>    # Load openvswitch_mod.  If that's successful then we're done.
> >>> -    action "Inserting openvswitch module" modprobe openvswitch_mod && 
> >>> return 0
> >>> +    action "Inserting openvswitch module" do_modprobe openvswitch && 
> >>> return 0
> >>> 
> >>>    # If the bridge module is loaded, then that might be blocking
> >>>    # openvswitch_mod.  Try to unload it, if there are no bridges.
> >>> @@ -48,12 +63,12 @@ insert_openvswitch_mod_if_required () {
> >>>    action "removing bridge module" rmmod bridge || return 1
> >>> 
> >>>    # Try loading openvswitch_mod again.
> >>> -    action "Inserting openvswitch module" modprobe openvswitch_mod
> >>> +    action "Inserting openvswitch module" do_modprobe openvswitch
> >>> }
> >>> 
> >>> insert_brcompat_mod_if_required () {
> >>>    test -e /sys/module/brcompat_mod && return 0
> >>> -    action "Inserting brcompat module" modprobe brcompat_mod
> >>> +    action "Inserting brcompat module" do_modprobe brcompat
> >>> }
> >>> 
> >>> insert_mod_if_required () {
> >>> @@ -287,12 +302,13 @@ force_reload_kmod () {
> >>>        action "Removing datapath: $dp" ovs-dpctl del-dp "$dp"
> >>>    done
> >>> 
> >>> -    if test -e /sys/module/brcompat_mod; then
> >>> -        action "Removing brcompat module" rmmod brcompat_mod
> >>> -    fi
> >>> -    if test -e /sys/module/openvswitch_mod; then
> >>> -        action "Removing openvswitch module" rmmod openvswitch_mod
> >>> -    fi
> >>> +    for module in brcompat openvswitch; do
> >>> +        for fullname in ${module}_mod $module; do
> >>> +            if test -e /sys/module/$fullname; then
> >>> +                action "Removing $module module" rmmod $fullname
> >>> +            fi
> >>> +        done
> >>> +    done
> >>> 
> >>>    start
> >>> 
> >>> -- 
> >>> 1.7.2.5
> >>> 
> >>> _______________________________________________
> >>> dev mailing list
> >>> dev@openvswitch.org
> >>> http://openvswitch.org/mailman/listinfo/dev
> >> 
> 
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to