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