From e8facef17c4c28b96fe9f4c63891635b1aa242cb Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 2 Sep 2013 22:37:45 +0300 Subject: [PATCH] linux: smsdvb: add patch to fix panic on inserting dvb-t stick source: https://linuxtv.org/patch/19727/ thanks keyser8 --- ...ernel-panic-on-inserting-DVB-T-stick.patch | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 packages/linux/patches/3.10.10/linux-999.01-smsdvb-fix-kernel-panic-on-inserting-DVB-T-stick.patch diff --git a/packages/linux/patches/3.10.10/linux-999.01-smsdvb-fix-kernel-panic-on-inserting-DVB-T-stick.patch b/packages/linux/patches/3.10.10/linux-999.01-smsdvb-fix-kernel-panic-on-inserting-DVB-T-stick.patch new file mode 100644 index 0000000000..3a54be72e6 --- /dev/null +++ b/packages/linux/patches/3.10.10/linux-999.01-smsdvb-fix-kernel-panic-on-inserting-DVB-T-stick.patch @@ -0,0 +1,94 @@ +From d78a0599d5b5d4da384eae08bf7da316389dfbe5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= +Date: Wed, 14 Aug 2013 10:24:39 +0200 +Subject: [PATCH] [media] siano: fix divide error on 0 counters +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +ts_packets and ets_packets counters can be 0. Don't fall over +if they are. Fixes: + +[ 846.851711] divide error: 0000 [#1] SMP +[ 846.851806] Modules linked in: smsdvb dvb_core ir_lirc_codec lirc_dev ir_sanyo_decoder ir_mce_kbd_decoder ir_sony_decoder ir_jvc_decoder ir_rc6_decoder ir_rc5_decoder ir_nec_decoder rc_hauppauge smsusb smsmdtv rc_core pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) parport_pc ppdev lp parport cpufreq_userspace cpufreq_powersave cpufreq_stats cpufreq_conservative rfcomm bnep binfmt_misc uinput nfsd auth_rpcgss oid_registry nfs_acl nfs lockd dns_resolver fscache sunrpc ext4 jbd2 fuse tp_smapi(O) thinkpad_ec(O) loop firewire_sbp2 dm_crypt snd_hda_codec_conexant snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm thinkpad_acpi nvram snd_page_alloc hid_generic snd_seq_midi snd_seq_midi_event arc4 usbhid snd_rawmidi uvcvideo hid iwldvm coretemp kvm_intel mac8021 + 1 cdc_wdm +[ 846.853477] cdc_acm snd_seq videobuf2_vmalloc videobuf2_memops videobuf2_core videodev media kvm radeon r852 ttm joydev cdc_ether usbnet pcmcia mii sm_common nand btusb drm_kms_helper tpm_tis acpi_cpufreq bluetooth iwlwifi nand_ecc drm nand_ids i2c_i801 mtd snd_seq_device iTCO_wdt iTCO_vendor_support r592 memstick lpc_ich mperf tpm yenta_socket pcmcia_rsrc pcmcia_core cfg80211 snd_timer snd pcspkr i2c_algo_bit crc16 i2c_core tpm_bios processor mfd_core wmi psmouse mei_me rfkill mei serio_raw soundcore evdev battery button video ac microcode ext3 mbcache jbd md_mod dm_mirror dm_region_hash dm_log dm_mod sg sr_mod sd_mod cdrom crc_t10dif firewire_ohci sdhci_pci sdhci mmc_core firewire_core crc_itu_t thermal thermal_sys ahci libahci ehci_pci uhci_hcd ehci_hcd libata scsi_mod usbcore e1000 + e usb_common +[ 846.855310] ptp pps_core +[ 846.855356] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 3.10-2-amd64 #1 Debian 3.10.5-1 +[ 846.855490] Hardware name: LENOVO 4061WFA/4061WFA, BIOS 6FET92WW (3.22 ) 12/14/2011 +[ 846.855609] task: ffffffff81613400 ti: ffffffff81600000 task.ti: ffffffff81600000 +[ 846.855636] RIP: 0010:[] [] smsdvb_onresponse+0x264/0xa86 [smsdvb] +[ 846.863906] RSP: 0018:ffff88013bc03cf0 EFLAGS: 00010046 +[ 846.863906] RAX: 0000000000000000 RBX: ffff880133bf6000 RCX: 0000000000000000 +[ 846.863906] RDX: 0000000000000000 RSI: ffff88005d3b58c0 RDI: ffff880133bf6000 +[ 846.863906] RBP: ffff88005d1da000 R08: 0000000000000058 R09: 0000000000000015 +[ 846.863906] R10: 0000000000001a0d R11: 000000000000021a R12: ffff88005d3b58c0 +[ 846.863906] R13: ffff88005d1da008 R14: 00000000ffffff8d R15: ffff880036cf5060 +[ 846.863906] FS: 0000000000000000(0000) GS:ffff88013bc00000(0000) knlGS:0000000000000000 +[ 846.863906] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b +[ 846.863906] CR2: 00007f3a4b69ae50 CR3: 0000000036dac000 CR4: 00000000000407f0 +[ 846.863906] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 +[ 846.863906] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 +[ 846.863906] Stack: +[ 846.863906] ffff88007a102000 ffff88005d1da000 ffff88005d3b58c0 0000000000085824 +[ 846.863906] ffffffffa08c5aa3 ffff88005d1da000 ffff8800a6907390 ffff8800a69073b0 +[ 846.863906] ffff8800a6907000 ffffffffa08b642c 000000000000021a ffff8800a69073b0 +[ 846.863906] Call Trace: +[ 846.863906] +[ 846.863906] +[ 846.863906] [] ? smscore_onresponse+0x1d5/0x353 [smsmdtv] +[ 846.863906] [] ? smsusb_onresponse+0x146/0x192 [smsusb] +[ 846.863906] [] ? usb_hcd_giveback_urb+0x6c/0xac [usbcore] +[ 846.863906] [] ? ehci_urb_done+0x62/0x72 [ehci_hcd] +[ 846.863906] [] ? qh_completions+0x91/0x364 [ehci_hcd] +[ 846.863906] [] ? ehci_work+0x8a/0x68e [ehci_hcd] +[ 846.863906] [] ? timekeeping_get_ns.constprop.10+0xd/0x31 +[ 846.863906] [] ? update_cfs_rq_blocked_load+0xde/0xec +[ 846.863906] [] ? run_posix_cpu_timers+0x25/0x575 +[ 846.863906] [] ? ehci_irq+0x211/0x23d [ehci_hcd] +[ 846.863906] [] ? usb_hcd_irq+0x31/0x48 [usbcore] +[ 846.863906] [] ? handle_irq_event_percpu+0x49/0x1a4 +[ 846.863906] [] ? handle_irq_event+0x32/0x4b +[ 846.863906] [] ? handle_fasteoi_irq+0x80/0xb6 +[ 846.863906] [] ? handle_irq+0x18/0x20 +[ 846.863906] [] ? do_IRQ+0x40/0x95 +[ 846.863906] [] ? common_interrupt+0x6d/0x6d +[ 846.863906] +[ 846.863906] +[ 846.863906] [] ? arch_local_irq_enable+0x4/0x8 +[ 846.863906] [] ? cpuidle_enter_state+0x52/0xc1 +[ 846.863906] [] ? cpuidle_idle_call+0xd4/0x143 +[ 846.863906] [] ? arch_cpu_idle+0x5/0x17 +[ 846.863906] [] ? cpu_startup_entry+0x10d/0x187 +[ 846.863906] [] ? start_kernel+0x3e8/0x3f3 +[ 846.863906] [] ? repair_env_string+0x54/0x54 +[ 846.863906] [] ? x86_64_start_kernel+0xf2/0xfd +[ 846.863906] Code: 25 09 00 00 c6 83 da 08 00 00 03 8b 45 54 48 01 83 b6 08 00 00 8b 45 50 48 01 83 db 08 00 00 8b 4d 18 69 c1 ff ff 00 00 03 4d 14 <48> f7 f1 89 83 a8 09 00 00 e9 68 fe ff ff 48 8b 7f 10 e8 79 92 +[ 846.863906] RIP [] smsdvb_onresponse+0x264/0xa86 [smsdvb] +[ 846.863906] RSP + +Reported-by: Johannes Rohr +Reference: http://bugs.debian.org/719623 +Cc: Mauro Carvalho Chehab +Signed-off-by: Bj?rn Mork +--- + drivers/media/common/siano/smsdvb-main.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/media/common/siano/smsdvb-main.c b/drivers/media/common/siano/smsdvb-main.c +index 0862622..63676a8 100644 +--- a/drivers/media/common/siano/smsdvb-main.c ++++ b/drivers/media/common/siano/smsdvb-main.c +@@ -276,7 +276,8 @@ static void smsdvb_update_per_slices(struct smsdvb_client_t *client, + + /* Legacy PER/BER */ + tmp = p->ets_packets * 65535; +- do_div(tmp, p->ts_packets + p->ets_packets); ++ if (p->ts_packets + p->ets_packets) ++ do_div(tmp, p->ts_packets + p->ets_packets); + client->legacy_per = tmp; + } + +-- +1.7.10.4